:root{--bg:#0b0b1a;--mag:#ff2bd6;--cy:#2bf0ff;--ink:#e8e6ff;--dim:#7d79a8;--card:#13132b}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'JetBrains Mono',monospace;min-height:100vh}
.bg-grid{position:fixed;inset:0;z-index:-1;background:
 linear-gradient(transparent 0 97%,rgba(255,43,214,.15) 97%) 0 0/100% 32px,
 linear-gradient(90deg,transparent 0 97%,rgba(43,240,255,.1) 97%) 0 0/32px 100%,
 radial-gradient(ellipse at 50% 0,#2a0b3d,transparent 70%)}
header{text-align:center;padding:24px 12px 8px}
h1{font-family:'Press Start 2P';font-size:clamp(22px,6vw,52px);margin:0;color:var(--cy);text-shadow:0 0 18px var(--cy),4px 4px 0 var(--mag)}
h1 span{color:var(--mag);text-shadow:0 0 18px var(--mag),4px 4px 0 #3b1060;margin-left:.3em}
.sub{color:var(--dim);font-style:italic;margin:10px 0}
.pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:8px 0}
.pill{border:1px solid var(--cy);border-radius:99px;padding:3px 10px;font-size:12px;color:var(--cy)}
.tabs{display:flex;justify-content:center;gap:8px;margin:14px 0;flex-wrap:wrap}
.tab,.btn{font-family:'Press Start 2P';font-size:11px;background:#1d1d3c;color:var(--ink);border:2px solid var(--mag);padding:12px 14px;cursor:pointer;box-shadow:0 5px 0 #6b0f5a;transition:transform .05s,box-shadow .05s;border-radius:4px}
.tab:active,.btn:active{transform:translateY(4px);box-shadow:0 1px 0 #6b0f5a}
.tab.active{background:var(--mag);color:#0b0b1a}
.btn.sm{font-size:9px;padding:9px 10px}
.btn.big{font-size:14px;padding:16px 20px}
.btn.glow{box-shadow:0 5px 0 #6b0f5a,0 0 22px rgba(255,43,214,.5)}
.btn.danger{border-color:#ff5a5a}
.btn:disabled{opacity:.4}
main{max-width:1280px;margin:0 auto;padding:0 12px 100px}
.panel{display:none}.panel.active{display:block;animation:in .3s}
@keyframes in{from{opacity:0;transform:translateY(10px)}}
.row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.grow{flex:1;min-width:300px}
.side{flex:0 0 300px;display:flex;flex-direction:column;gap:12px}
.card{background:var(--card);border:1px solid #2c2c5a;padding:14px;border-radius:6px;display:flex;flex-direction:column;gap:10px}
.card.btns{flex-direction:row;flex-wrap:wrap}
.label{font-family:'Press Start 2P';font-size:10px;color:var(--cy);margin:4px 0 8px}
.label em{color:var(--dim);font-family:'JetBrains Mono';font-style:normal}
.screen-wrap{flex:0 1 512px;max-width:100%}
.screen{width:100%;max-width:512px;aspect-ratio:1;image-rendering:pixelated;border:3px solid var(--cy);box-shadow:0 0 25px rgba(43,240,255,.4);display:block;background:#000}
.crt{position:relative}
.crt::after{content:'';position:absolute;left:0;right:0;top:26px;aspect-ratio:1;max-width:512px;pointer-events:none;background:repeating-linear-gradient(transparent 0 3px,rgba(0,0,0,.18) 3px 4px)}
.crt .screen{border-color:var(--mag);box-shadow:0 0 30px rgba(255,43,214,.5)}
.mono{font-family:'JetBrains Mono'}.small{font-size:12px;color:var(--dim)}
label{font-size:13px;display:flex;flex-direction:column;gap:4px}
label.toggle{flex-direction:row;align-items:center;gap:8px}
input[type=range]{accent-color:var(--mag)}
#filmstrip{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}
#filmstrip figure{margin:0;text-align:center;font-size:10px;color:var(--mag)}
#filmstrip canvas{width:64px;height:64px;image-rendering:pixelated;border:1px solid #333}
.chart{width:100%;background:#000;border:1px solid #1f4}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tiles figure{margin:0;text-align:center;font-size:11px;color:var(--dim)}
.tiles canvas{width:100%;image-rendering:pixelated;border:1px solid var(--cy)}
.meter{height:16px;background:#000;border:1px solid var(--mag)}
#meterFill{height:100%;width:0;background:linear-gradient(90deg,var(--cy),var(--mag));transition:width .2s}
#dpad{display:none;position:fixed;bottom:50px;right:14px;width:150px;height:150px}
#dpad button{position:absolute;width:50px;height:50px;font-size:20px;background:rgba(255,43,214,.3);color:#fff;border:2px solid var(--mag);border-radius:8px;touch-action:none}
#dpad .u{left:50px;top:0}#dpad .d{left:50px;top:100px}#dpad .l{left:0;top:50px}#dpad .r{left:100px;top:50px}
@media (hover:none),(max-width:700px){#dpad{display:block}.side{flex:1 1 100%}}
footer{text-align:center;color:var(--dim);font-size:12px;padding:20px;border-top:1px solid #222}
footer a{color:var(--mag)}
#quickMsg{min-height:16px;margin-top:8px}