:root{--bg:#04060d;--pan:#1a2040;--ink:#f4f1ea;--mut:#a3a9c9;--k:#0b0e1d;--sun:#ffd166;--mint:#3ddc97;--sky:#5ab0ff;--coral:#ff6b6b;color-scheme:dark}
*{box-sizing:border-box;margin:0}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font:15px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}
.m{font-family:ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace}
canvas#gl{position:fixed;inset:0;width:100%;height:100%;touch-action:none;display:block}
#bed{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
#glow{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;mix-blend-mode:screen;background:radial-gradient(circle,rgba(255,214,120,.95) 0,rgba(255,150,50,.38) 18%,rgba(255,110,30,.1) 40%,transparent 66%)}
#lab{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.lb{position:absolute;left:0;top:0;pointer-events:auto;cursor:pointer;font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.08em;color:var(--ink);background:#0b0e1dcc;border:2px solid var(--k);padding:2px 8px;white-space:nowrap;transition:opacity .3s}
.lb.dim{opacity:.4}.lb.mo{color:var(--sun);font-size:10px}.lb:hover{opacity:1;background:var(--sun);color:#121629}
#top{position:fixed;top:env(safe-area-inset-top,0px);left:0;padding:16px 20px;font-size:12px;display:flex;flex-direction:column;gap:2px;pointer-events:none;z-index:5}
#top b{font-size:14px;letter-spacing:.12em}#top span{color:var(--mut)}#top i{font-style:normal;color:var(--mint)}
#top .tl{pointer-events:auto;display:flex;align-items:center;gap:10px;margin-top:6px;font-size:11px;letter-spacing:.14em;font-weight:700}
#top .tl a{color:var(--sun);text-decoration:none}#top .tl a:hover,#top .tl a:focus-visible{color:var(--mint)}
#ctl{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:16px;display:flex;gap:8px;z-index:6}
#ctl button,.btn{font:700 14px ui-monospace,Menlo,monospace;width:40px;height:40px;background:var(--pan);color:var(--ink);border:3px solid var(--k);box-shadow:3px 3px 0 var(--k);cursor:pointer}
#ctl button:hover{background:var(--sun);color:#121629}#ctl button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--k)}
#dock{position:fixed;left:50%;bottom:calc(34px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;gap:6px;max-width:calc(100vw - 20px);overflow-x:auto;padding:6px;background:#0b0e1dd9;border:3px solid var(--k);z-index:6;scrollbar-width:none}
#dock button{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;background:var(--pan);color:var(--ink);border:3px solid var(--k);cursor:pointer;font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.06em}
#dock button i{width:14px;height:14px;border-radius:50%;border:2px solid var(--k)}#dock button small{font-size:9px;color:var(--mut);font-weight:400}
#dock button:hover,#dock button.on{background:var(--sun);color:#121629}#dock button:hover small,#dock button.on small{color:#121629}
@media(max-width:640px){#dock button small{display:none}}
#hint{position:fixed;left:0;right:0;bottom:calc(8px + env(safe-area-inset-bottom,0px));text-align:center;font-size:10px;color:var(--mut);pointer-events:none;letter-spacing:.1em;z-index:5}
#panel{position:fixed;right:16px;top:calc(68px + env(safe-area-inset-top,0px));bottom:100px;width:min(400px,calc(100vw - 32px));overflow:auto;background:var(--pan);border:3px solid var(--k);box-shadow:8px 8px 0 var(--k);padding:22px;z-index:7;animation:pin .35s steps(6)}
#panel[hidden]{display:none}@keyframes pin{from{transform:translateX(40px);opacity:0}}
@media(max-width:700px){#panel{left:10px;right:10px;width:auto;top:auto;bottom:calc(92px + env(safe-area-inset-bottom,0px));max-height:46vh}}
#panel .x{position:absolute;right:10px;top:10px;width:32px;height:32px;font-size:18px;background:var(--k);color:var(--ink);border:3px solid var(--k);cursor:pointer}
.tg{display:inline-block;font-size:11px;font-weight:700;color:#121629;padding:3px 10px;border:3px solid var(--k);letter-spacing:.08em}
#panel h2{font-size:24px;line-height:1.15;margin:12px 0 8px;letter-spacing:-.02em;padding-right:30px}
#panel img{width:100%;max-height:200px;object-fit:cover;object-position:50% 20%;border:3px solid var(--k);margin:6px 0 8px}
#panel p{color:var(--mut)}#panel ul{margin:12px 0 0 18px;display:grid;gap:5px;color:var(--ink)}#panel li::marker{color:var(--mint)}
.mn{margin:18px 0 8px;font-size:11px;color:var(--mint);letter-spacing:.12em}
.ch{display:flex;flex-wrap:wrap;gap:8px}
.ch button,.bk,.lk a{font:700 12px ui-monospace,Menlo,monospace;padding:7px 12px;background:var(--k);color:var(--ink);border:3px solid var(--k);cursor:pointer;text-decoration:none;display:inline-block}
.ch button:hover,.bk:hover,.lk a:hover{background:var(--sun);color:#121629}
.bk{margin-top:18px;background:var(--sky);color:#121629}.lk{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.lk a{background:var(--mint);color:#121629}
#intro{position:fixed;inset:0;z-index:20;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,#04060dcc 0,#04060d66 55%,transparent 80%);transition:opacity 1.6s,visibility 1.6s}
#intro.off{opacity:0;visibility:hidden;pointer-events:none}#intro h1{font:900 clamp(40px,9vw,96px)/1 system-ui,sans-serif;letter-spacing:-.04em;margin:14px 0;text-shadow:0 0 40px #000}#intro small{color:var(--sun);letter-spacing:.35em;font-size:12px}
#nogl{position:fixed;inset:0;z-index:30;background:var(--bg);display:grid;place-items:center;text-align:center;padding:20px}#nogl[hidden]{display:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
#intro .go{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:26px 0 14px}
#intro .btn{width:auto;height:auto;padding:13px 24px;font-size:13px;letter-spacing:.1em;background:var(--sun);color:#121629}#intro .btn.b{background:var(--sky)}
#intro .btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--k)}#intro .hp{display:block;color:var(--mut);letter-spacing:.3em;font-size:10px}
#intro .btn.hi{position:relative;z-index:1;animation:hi-glow 1.8s ease-in-out infinite}
#intro .btn.hi::before,#intro .btn.hi::after{content:"";position:absolute;inset:-5px;border:3px solid #ffe9a3;pointer-events:none;animation:hi-ring 1.8s ease-out infinite}
#intro .btn.hi::after{animation-delay:.6s}
#intro .btn.hi:hover,#intro .btn.hi:focus-visible{animation:none}
#intro .btn.hi:hover::before,#intro .btn.hi:hover::after,#intro .btn.hi:focus-visible::before,#intro .btn.hi:focus-visible::after{animation:none;opacity:0}
@keyframes hi-glow{0%,100%{box-shadow:3px 3px 0 var(--k),0 0 0 0 rgba(255,209,102,0)}50%{box-shadow:3px 3px 0 var(--k),0 0 24px 5px rgba(255,209,102,.5)}}
@keyframes hi-ring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.12)}}
#sd.off{color:var(--coral)}

/* extras */
body.ship,body.ship *{cursor:none!important}
#ship{position:fixed;left:0;top:0;z-index:99;pointer-events:none}#ship .fl{opacity:calc(.3 + var(--f,0)*.7)}
#wp{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}
#cap{position:fixed;left:50%;bottom:calc(112px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(640px,calc(100vw - 32px));text-align:center;font:600 15px/1.55 ui-monospace,Menlo,monospace;color:#6d7396;background:#0b0e1dd9;border:3px solid var(--k);padding:10px 16px;z-index:8;opacity:0;pointer-events:none;transition:opacity .3s}
#cap.on{opacity:1}#cap span.on{color:var(--ink)}
@media(max-width:700px){#cap{bottom:auto;top:calc(64px + env(safe-area-inset-top,0px));font-size:13px}}
.lb.tk{pointer-events:none;color:var(--mint);font-size:10px;background:#0b0e1d99}
.lb.sec{pointer-events:auto;color:var(--coral);animation:gl 1.3s steps(2) infinite}@keyframes gl{50%{opacity:.3}}
#msg{position:fixed;left:50%;top:calc(70px + env(safe-area-inset-top,0px));transform:translate(-50%,-20px);background:var(--sun);color:#121629;font:700 12px ui-monospace,monospace;padding:9px 16px;border:3px solid var(--k);box-shadow:4px 4px 0 var(--k);z-index:60;opacity:0;pointer-events:none;transition:.25s}#msg.on{opacity:1;transform:translate(-50%,0)}
.sr{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.sh{font:700 11px ui-monospace,Menlo,monospace;padding:7px 10px;background:var(--k);color:var(--mut);border:3px solid var(--k);cursor:pointer}.sh:hover{background:var(--mint);color:#121629}
#ctl button.act{background:var(--mint);color:#121629}#cc{font-size:11px}#cc.off{opacity:.45}
#gm{position:fixed;inset:0;z-index:35;display:none;background:#04060df0}#gm.on{display:block}#gm canvas{width:100%;height:100%;display:block;touch-action:none}
.gx{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:16px;font:700 12px ui-monospace,monospace;padding:10px 14px;background:var(--pan);color:var(--ink);border:3px solid var(--k);cursor:pointer}
.gr{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--pan);border:3px solid var(--k);box-shadow:8px 8px 0 var(--k);padding:28px;text-align:center;width:min(420px,90vw)}.gr[hidden]{display:none}.gr h2{font-size:28px;margin-bottom:6px}.gr p{color:var(--mut);margin-bottom:16px}.gr .btn{width:auto;height:auto;padding:11px 18px;margin:4px;font-size:12px}
