:root{--bg:#050818;--ink:#eef2ff;--muted:#a7b0d8;--cyan:#57e6ff;--violet:#b16bff;--line:rgba(120,140,255,.22);--glass:rgba(8,12,34,.72)}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Avenir Next",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-x:hidden}
#world{position:fixed;inset:0;width:100vw;height:100vh;display:block}
#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,transparent 46%,rgba(2,4,16,.55) 78%,rgba(2,3,14,.9) 100%);z-index:2}
#loader{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;gap:.8rem;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,#0b1030,#04061a 70%);transition:opacity .8s}
#loader img{width:min(420px,80vw);border-radius:20px;box-shadow:0 0 120px -20px var(--violet);animation:breathe 2.6s ease-in-out infinite}
#loader p{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;font-size:.75rem}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
.hud{position:relative;z-index:5}
.hud--top{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;background:linear-gradient(180deg,rgba(4,6,22,.85),transparent);pointer-events:none}
.hud__brand{display:flex;align-items:center;gap:.7rem;pointer-events:auto}
.hud__brand img{width:52px;height:52px;object-fit:cover;border-radius:14px;box-shadow:0 0 24px rgba(87,230,255,.5)}
.hud__brand strong{display:block;font-size:1.05rem;letter-spacing:.04em}
.hud__brand span{display:block;font-size:.75rem;color:var(--muted)}
.hud__status{font-size:.8rem;color:var(--cyan);background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;backdrop-filter:blur(10px);pointer-events:auto;white-space:nowrap}
#soundBtn{pointer-events:auto;background:var(--glass);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:.45rem .9rem;cursor:pointer;font-size:.78rem}
#quest{margin:.1rem 0 .5rem;padding:.6rem .8rem;border-radius:12px;background:linear-gradient(90deg,rgba(87,230,255,.16),rgba(177,107,255,.16));border:1px solid var(--line);font-size:.86rem;line-height:1.5}
#celebration{position:fixed;top:22%;left:50%;transform:translateX(-50%);z-index:15;text-align:center;background:rgba(8,10,30,.85);border:1px solid var(--cyan);border-radius:18px;padding:1rem 1.6rem;font-size:1.05rem;box-shadow:0 0 80px -10px var(--cyan);backdrop-filter:blur(10px);animation:pop 5s ease forwards}
@keyframes pop{0%{opacity:0;transform:translateX(-50%) scale(.9)}10%{opacity:1;transform:translateX(-50%) scale(1)}80%{opacity:1}100%{opacity:0}}
.hud--panel{position:fixed;left:1rem;bottom:3.2rem;width:min(380px,calc(100vw - 2rem));background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:1rem 1rem .8rem;backdrop-filter:blur(14px);box-shadow:0 20px 60px -20px rgba(177,107,255,.55)}
.tag{margin:.1rem 0 .8rem;color:#d6dbff;font-size:.92rem;line-height:1.45}
.actions{display:flex;gap:.5rem}
#wordInput{flex:1;background:#0b1130;border:1px solid var(--line);color:var(--ink);padding:.7rem 1rem;border-radius:999px;min-width:0}
#wordInput:focus{outline:1px solid var(--cyan)}
#stoneBtn{background:linear-gradient(90deg,var(--cyan),var(--violet));border:0;color:#06121f;font-weight:800;padding:.7rem 1.1rem;border-radius:999px;cursor:pointer;white-space:nowrap;box-shadow:0 6px 26px -6px var(--cyan);transition:transform .15s}
#stoneBtn:hover{transform:translateY(-1px)}
#stoneBtn:active{transform:scale(.97)}
.hint{font-size:.74rem;color:var(--muted);line-height:1.5}
#villager{margin-top:.6rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:14px;background:rgba(17,23,58,.8);font-size:.86rem;line-height:1.5;min-height:3.2em}
#peuple{margin-top:.6rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:14px;background:rgba(20,14,44,.7);font-size:.82rem;line-height:1.5}
#peuple ul{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:9em;overflow:hidden}
#peuple li{opacity:.95}
#deuil{color:var(--muted);font-size:.78rem;margin:.4rem 0 0}
#stones{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-wrap:wrap;gap:.35rem;max-height:5.4em;overflow:hidden}
#stones li{border:1px solid var(--line);border-radius:999px;padding:.2rem .65rem;font-size:.76rem;background:rgba(87,230,255,.08)}
.pacte{margin-top:.6rem;font-size:.8rem;color:var(--muted)}
.pacte summary{cursor:pointer;color:#cfd6ff}
.pacte ol{margin:.5rem 0 0;padding-left:1.2rem;line-height:1.55}
footer{position:fixed;bottom:0;left:0;right:0;z-index:5;text-align:center;padding:.55rem;color:rgba(167,176,216,.75);font-size:.72rem;background:linear-gradient(0deg,rgba(4,6,22,.9),transparent);pointer-events:none}
@media(max-width:640px){.hud--top{flex-direction:column;align-items:flex-start}.hud--panel{left:.6rem;right:.6rem;bottom:2.6rem;width:auto}}
