:root{
  --void:#04050c;--glass:rgba(9,11,28,.66);--line:rgba(120,126,200,.24);
  --dust:#e2dff7;--dim:#9a97c2;--ice:#8fd0ff;--sun:#ffb454;
  --f-disp:"Unbounded",system-ui,sans-serif;--f-text:"Golos Text",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%;overflow:hidden;background:var(--void);color:var(--dust);font:400 15px/1.5 var(--f-text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
#gl{position:fixed;inset:0;width:100vw;height:100vh;display:block;touch-action:none}
#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.lbl{position:absolute;left:0;top:0;font:500 12px var(--f-mono);letter-spacing:.04em;color:var(--dust);white-space:nowrap;pointer-events:auto;cursor:pointer;padding:4px 6px;text-shadow:0 1px 6px #000;will-change:transform}
.lbl::before{content:"";position:absolute;left:-7px;top:50%;width:5px;height:5px;margin-top:-2.5px;border:1px solid currentColor;border-radius:50%}
.lbl.target{color:var(--sun)}
button{font:inherit;color:inherit}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:99px;border:1px solid var(--sun);background:var(--sun);color:#1a1006;font:600 15px var(--f-text);cursor:pointer}
.btn.ghost{background:rgba(9,11,28,.7);color:var(--dust);border-color:var(--line)}
.hud{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:16px;right:120px;display:grid;gap:8px;pointer-events:none}
.h-row{display:flex;gap:22px;flex-wrap:wrap}
.h-stat{display:grid;gap:1px}
.h-stat span{font:500 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.h-stat b{font:600 17px var(--f-text);font-variant-numeric:tabular-nums;text-shadow:0 1px 8px #000}
.h-auto{pointer-events:auto;font:500 12.5px var(--f-mono);color:var(--sun)}
.h-auto button{background:none;border:0;color:var(--dim);text-decoration:underline;cursor:pointer;padding:6px}
.langs{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:16px;display:flex;gap:4px;background:rgba(8,10,26,.7);border:1px solid var(--line);border-radius:99px;padding:3px;z-index:5}
.langs button{border:0;background:none;color:var(--dim);font:500 12px var(--f-mono);padding:6px 10px;border-radius:99px;cursor:pointer}
.langs button[aria-pressed=true]{background:var(--sun);color:#1a1006}
.ctl{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;z-index:4}
.throttle{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));display:grid;justify-items:center;gap:6px;font:500 10.5px var(--f-mono);text-transform:uppercase;color:var(--dim);z-index:4;touch-action:none}
.th-track{position:relative;width:46px;height:190px;border-radius:99px;background:rgba(9,11,28,.7);border:1px solid var(--line);overflow:hidden;touch-action:none}
.th-track i{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(255,180,84,.55),rgba(255,180,84,.15))}
.th-track b{position:absolute;left:5px;right:5px;height:6px;border-radius:9px;background:var(--sun)}
.stick{position:fixed;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:1px solid var(--line);background:rgba(9,11,28,.35);pointer-events:none;z-index:3}
.stick i{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(143,208,255,.35);border:1px solid var(--ice)}
.card{position:fixed;left:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:min(360px,calc(100% - 96px));background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:16px 16px 12px;z-index:3}
.card h2{margin:0 0 8px;font:700 20px var(--f-disp)}
.card dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0 0 8px;font-size:13px}
.card dt{color:var(--dim)}
.card dd{margin:0}
.card p{margin:0;font-size:13.5px;color:var(--dust)}
.menu{position:fixed;inset:0;background:rgba(3,4,12,.6);display:grid;place-items:center;z-index:10}
.menu-in{width:min(420px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;padding:18px}
.menu h2{margin:0 0 12px;font:700 20px var(--f-disp)}
.menu-list{display:grid;gap:6px}
.menu-list button{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer;text-align:start}
.menu-list button span{font:500 12px var(--f-mono);color:var(--dim)}
.intro{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 60%,rgba(4,5,12,.35),rgba(4,5,12,.85));z-index:20;padding:16px}
.intro-in{width:min(520px,100%);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:22px;padding:24px 22px}
.intro h1{margin:0 0 10px;font:700 clamp(26px,7vw,38px)/1.1 var(--f-disp)}
.intro p{margin:0 0 12px;color:var(--dust)}
.intro .how{color:var(--dim);font-size:14px}
.intro .credits{margin:16px 0 0;font-size:11.5px;color:var(--dim)}
.intro .btn{margin-top:6px;min-width:160px}
@media (max-width:640px){
  .card{top:calc(112px + env(safe-area-inset-top,0px));bottom:auto;left:16px;right:16px;width:auto;padding:10px 14px;cursor:pointer}
  .card h2{font-size:16px;margin:0 0 4px}
  .card dl{display:none;font-size:12px}
  .card.open dl{display:grid}
  .card p{font-size:12.5px}
}
