:root{--bg:#0b0b1a;--pink:#ff2e88;--cyan:#19f0ff;--yel:#ffe14d;--panel:#12122a;--line:#2a2a55}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(ellipse at top,#1b1040 0%,var(--bg) 60%),var(--bg);color:#d9dcff;font-family:'JetBrains Mono',monospace;font-size:13px;min-height:100vh}
body::before{content:"";position:fixed;inset:auto 0 0 0;height:40vh;background:linear-gradient(transparent,rgba(255,46,136,.08)),repeating-linear-gradient(90deg,rgba(25,240,255,.08) 0 1px,transparent 1px 60px);pointer-events:none;z-index:-1}
header{text-align:center;padding:24px 12px 8px}
h1{font-family:'Silkscreen',monospace;font-size:clamp(36px,8vw,72px);margin:0;background:linear-gradient(90deg,var(--pink),var(--cyan));-webkit-background-clip:text;color:transparent;animation:glow 2.5s ease-in-out infinite}
@keyframes glow{50%{filter:drop-shadow(0 0 14px var(--pink))}0%,100%{filter:drop-shadow(0 0 4px var(--cyan))}}
.sub{margin:4px 0;font-weight:800}.tag{font-weight:200;opacity:.7;margin:4px 0 10px;font-style:italic}
.badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center}
.badge{border:1px solid var(--cyan);color:var(--cyan);padding:3px 8px;border-radius:2px;font-size:11px}
.progress{max-width:600px;margin:10px auto 4px;height:6px;background:#1c1c3a;border-radius:3px;overflow:hidden}
#progbar{height:100%;width:0;background:linear-gradient(90deg,var(--pink),var(--yel));transition:width .2s}
.status{color:var(--yel);min-height:18px}
main{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:14px;max-width:1400px;margin:auto}
@media(max-width:1100px){main{grid-template-columns:1fr 1fr}#p3{grid-column:1/-1}}
@media(max-width:720px){main{grid-template-columns:1fr}}
.panel{background:rgba(18,18,42,.85);border:1px solid var(--line);border-radius:6px;padding:14px;animation:rise .6s both}
#p2{animation-delay:.12s}#p3{animation-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(20px)}}
h2{font-family:'Silkscreen',monospace;font-size:18px;margin:0 0 10px;color:var(--cyan)}
h3{font-size:12px;font-weight:800;color:var(--pink);margin:12px 0 6px;text-transform:uppercase}
.step{display:inline-block;background:var(--pink);color:var(--bg);width:24px;text-align:center;margin-right:6px}
canvas{display:block;max-width:100%;image-rendering:pixelated;border:1px solid var(--line);background:#000}
#game{width:256px;height:256px;margin:auto}
.btn{font-family:inherit;font-size:12px;background:transparent;border:1px solid var(--cyan);color:var(--cyan);padding:7px 10px;cursor:pointer;border-radius:2px;transition:.15s}
.btn:hover:not(:disabled){background:var(--cyan);color:var(--bg)}
.btn.hot{border-color:var(--pink);color:var(--pink)}.btn.hot:hover:not(:disabled){background:var(--pink);color:#fff}
.btn.ghost{border-color:#555;color:#aaa}
.btn.on{background:var(--pink);color:#fff;border-color:var(--pink)}
.btn:disabled{opacity:.3;cursor:not-allowed}
.row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.touch{display:flex;gap:6px;justify-content:center;margin:8px 0}
.touch button{width:52px;height:44px;font-size:18px;background:#1c1c3a;border:1px solid var(--pink);color:var(--pink);border-radius:4px;touch-action:none;user-select:none}
.hint{opacity:.5;font-size:11px;text-align:center;margin:2px}
.stats{margin:6px 0}.stats b{color:var(--yel)}
.hist{display:flex;gap:6px;align-items:flex-end;height:60px;border-bottom:1px solid var(--line);padding-bottom:2px}
.hist div{flex:1;text-align:center;font-size:10px;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.hist span{display:block;background:linear-gradient(var(--cyan),var(--pink));min-height:1px}
.film{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-top:8px}
.film figure{margin:0;text-align:center;font-size:10px}.film canvas{width:100%}
.arch{font-size:10px;background:#0a0a18;border-left:3px solid var(--pink);padding:6px 8px;line-height:1.6;opacity:.85}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:8px 0}
label{font-size:11px;display:flex;flex-direction:column;gap:2px}label b{color:var(--yel)}
input[type=range]{accent-color:var(--pink);width:100%}
#chart{width:100%;height:110px;margin-top:6px}
.legend{font-size:10px;display:flex;gap:10px}.legend i{font-style:normal}
.recon{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.recon div{display:flex;gap:2px}.recon canvas{width:50%}
.explore{display:flex;gap:10px;align-items:center}#explorer{width:128px;height:128px;flex:none}
#knobs{flex:1}
.crt{position:relative;width:100%;max-width:384px;margin:auto;aspect-ratio:1}
.crt canvas{width:100%;height:100%;border:2px solid var(--pink);box-shadow:0 0 24px rgba(255,46,136,.4)}
.scan{position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 2px,rgba(0,0,0,.1) 2px 4px);pointer-events:none;border-radius:4px}
.touch button.act{background:var(--pink);color:#fff}
.gpad{display:none;justify-content:space-between;align-items:center;margin:10px auto;max-width:300px;user-select:none;-webkit-user-select:none}
body.gworld .gpad{display:flex}body.gworld .touch{display:none}
.joy{width:110px;height:110px;border-radius:50%;border:2px solid var(--cyan);background:radial-gradient(#1c1c3a,#0a0a18);position:relative;touch-action:none}
.knob{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);pointer-events:none}
.gbtns{display:flex;gap:10px}
.gbtn{width:70px;height:70px;border-radius:50%;font-family:'Silkscreen',monospace;font-size:11px;background:#1c1c3a;touch-action:none;user-select:none;cursor:pointer}
.gbtn.atk{border:2px solid var(--pink);color:var(--pink)}.gbtn.run{border:2px solid var(--yel);color:var(--yel)}
.drinkb{width:70px;height:70px;border-radius:50%;font-family:'Silkscreen',monospace;font-size:11px;background:#1c1c3a;border:2px solid var(--cyan);color:var(--cyan);cursor:pointer;touch-action:manipulation}
.drinkb:active{background:var(--cyan);color:#000}
.gbtn.atk.act{background:var(--pink);color:#fff}.gbtn.run.act{background:var(--yel);color:#000}
.dl{position:absolute;top:8px;left:10px;font-family:'Silkscreen';color:var(--cyan);font-size:12px;text-shadow:0 0 6px var(--cyan)}
.meter{display:flex;align-items:center;gap:6px;font-size:10px}
.mbar{flex:1;height:10px;background:#1c1c3a;border-radius:5px;overflow:hidden}
#drift{height:100%;width:0;background:linear-gradient(90deg,#3f3,var(--yel),var(--pink),#a0f);transition:width .2s}
footer{text-align:center;padding:20px;opacity:.7}footer a{color:var(--pink)}