:root{--warm: #ffcf7a;--ink: #0b1026;color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#f4efe6}#scene{display:block;width:100%;height:100%;cursor:grab}#scene.dragging{cursor:grabbing}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}#ui>.hidden{pointer-events:none}#ui>.hud-place{pointer-events:none}.loading{position:fixed;inset:0;display:grid;place-content:center;gap:1.25rem;justify-items:center;background:radial-gradient(circle at 50% 60%,#1a2342,#070b1a 70%);transition:opacity .6s ease;text-align:center;padding:2rem}.loading.hidden{opacity:0;pointer-events:none}.loading h1{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:600;letter-spacing:.02em}.loading p{color:#9aa6c4;max-width:34ch;line-height:1.5}.loading .bar{width:min(280px,70vw);height:3px;background:#ffffff1a;border-radius:99px;overflow:hidden}.loading .bar i{display:block;height:100%;width:30%;background:var(--warm);border-radius:99px;animation:sweep 1.1s ease-in-out infinite}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(333%)}}.hud-controls{position:fixed;left:1rem;bottom:1rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.78rem;color:#c9d2e8;background:#0b102699;backdrop-filter:blur(8px);border:1px solid #ffffff14;border-radius:10px;padding:.55rem .7rem;max-width:min(420px,calc(100vw - 2rem))}kbd{font:inherit;font-size:.72rem;background:#ffffff14;border:1px solid #ffffff24;border-bottom-width:2px;border-radius:5px;padding:.1rem .34rem;color:#f4efe6}.hud-quality{position:fixed;right:1rem;bottom:1rem;display:flex;gap:.4rem;align-items:center;font-size:.78rem;color:#c9d2e8;background:#0b102699;backdrop-filter:blur(8px);border:1px solid #ffffff14;border-radius:10px;padding:.45rem .55rem}.hud-quality button{font:inherit;font-size:.74rem;color:#f4efe6;background:#ffffff10;border:1px solid #ffffff20;border-radius:6px;padding:.22rem .5rem;cursor:pointer}.hud-quality button[aria-pressed=true]{background:var(--warm);border-color:var(--warm);color:#231703;font-weight:600}.hud-place{position:fixed;left:50%;top:2.2rem;transform:translate(-50%,-8px);text-align:center;opacity:0;transition:opacity .4s ease,transform .4s ease;text-shadow:0 2px 14px #000000cc;padding:0 1rem}.hud-place.visible{opacity:1;transform:translate(-50%)}.hud-place strong{display:block;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:600;letter-spacing:.01em}.hud-place span{font-size:.82rem;color:#cbb894}.hud-minimap{position:fixed;right:1rem;top:1rem;padding:.4rem;background:#0b1026b3;backdrop-filter:blur(8px);border:1px solid #ffffff14;border-radius:10px;line-height:0}.hud-minimap canvas{display:block;border-radius:6px}.hud-minimap-north{position:absolute;top:.62rem;left:.72rem;font-size:.62rem;font-weight:600;letter-spacing:.08em;line-height:1;color:#9aa6c4;text-shadow:0 1px 3px #000000cc}@media(max-width:640px),(max-height:560px){.hud-minimap{display:none}}.hud-debug{position:fixed;left:1rem;top:1rem;font:.74rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#8ef0b0;background:#0b1026cc;border:1px solid #ffffff14;border-radius:8px;padding:.45rem .6rem;white-space:pre}.error-overlay{position:fixed;inset:0;display:grid;place-content:center;justify-items:start;gap:1rem;background:#070b1af2;padding:2rem;max-width:100%}.error-overlay h2{font-size:clamp(1.2rem,3vw,1.8rem);font-weight:600}.error-overlay p{color:#b9c2d9;max-width:56ch;line-height:1.6}.error-overlay ul{color:#b9c2d9;line-height:1.7;padding-left:1.2rem;max-width:56ch}.error-overlay pre{font:.74rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#ff9b9b;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;padding:.7rem .8rem;max-width:min(72ch,calc(100vw - 4rem));max-height:32vh;overflow:auto;white-space:pre-wrap}.hud-prompt{position:fixed;left:50%;bottom:5.2rem;transform:translate(-50%,6px);font-size:.95rem;color:#f4ead8;background:#0b1026cc;backdrop-filter:blur(8px);border:1px solid #ffcf7a55;border-radius:999px;padding:.5rem 1.1rem;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.hud-prompt.visible{opacity:1;transform:translate(-50%)}.hud-aim{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:1.1rem;opacity:0;pointer-events:none;transition:opacity .2s ease}.hud-aim.visible{opacity:1}.hud-crosshair{position:relative;width:26px;height:26px}.hud-crosshair:before,.hud-crosshair:after{content:"";position:absolute;background:#fff6e2;box-shadow:0 0 6px #000a;transition:background .12s ease}.hud-crosshair:before{left:50%;top:0;width:2px;height:100%;margin-left:-1px;mask:linear-gradient(#000 0 8px,transparent 8px 18px,#000 18px 100%);-webkit-mask:linear-gradient(#000 0 8px,transparent 8px 18px,#000 18px 100%)}.hud-crosshair:after{top:50%;left:0;height:2px;width:100%;margin-top:-1px;mask:linear-gradient(90deg,#000 0 8px,transparent 8px 18px,#000 18px 100%);-webkit-mask:linear-gradient(90deg,#000 0 8px,transparent 8px 18px,#000 18px 100%)}.hud-crosshair.hit:before,.hud-crosshair.hit:after{background:#ffcf7a}.hud-score{font-size:.9rem;font-weight:600;color:#f4ead8;background:#0b1026cc;border:1px solid #ffcf7a55;border-radius:999px;padding:.3rem .85rem;white-space:nowrap}.hud-hit{position:absolute;left:50%;top:-.4rem;font-size:1.15rem;font-weight:700;color:#ffcf7a;text-shadow:0 2px 10px #000000cc;opacity:0}.hud-hit.pop{animation:hud-hit-pop .7s ease-out}@keyframes hud-hit-pop{0%{opacity:0;transform:translate(-50%)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-2.2rem)}}.hud-music{position:fixed;right:1rem;bottom:4.2rem;width:2.1rem;height:2.1rem;display:grid;place-items:center;font:inherit;font-size:.95rem;line-height:1;color:#c9d2e8;background:#0b102699;backdrop-filter:blur(8px);border:1px solid #ffffff14;border-radius:10px;cursor:pointer}.hud-music[aria-pressed=true]{color:#ffcf7a;border-color:#ffcf7a55}@media(max-width:640px){.hud-music{bottom:5.6rem}}
