:root{--pink: #ff2d95;--cyan: #00e5ff;--red: #ff2d3b;--ink: #08010c;--lav: #e7c8ff;--dim: #8a7a9a}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--ink);overflow:hidden}body{display:flex;align-items:center;justify-content:center;font-family:Share Tech Mono,monospace;user-select:none}#frame{position:relative;width:960px;height:600px;overflow:hidden;background:var(--ink);box-shadow:0 0 0 1px #ff2d9540,0 30px 90px #000000b3;transform-origin:center center}#frame canvas{position:absolute;inset:0;width:960px!important;height:600px!important;display:block;cursor:crosshair}.fx{position:absolute;inset:0;pointer-events:none;z-index:5}.scanlines{background:repeating-linear-gradient(0deg,#0000 0px 2px,#00000038 3px,#0000 4px);mix-blend-mode:multiply}.vignette{background:radial-gradient(ellipse at center,#0000 55%,#0000008c)}@keyframes ddflicker{0%,19%,21%,55%,57%,to{opacity:1}20%,56%{opacity:.62}}@keyframes ddglitch{0%{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,-1px)}to{transform:translate(0)}}@keyframes ddpulse{0%,to{opacity:.35}50%{opacity:1}}.overlay{position:absolute;inset:0;z-index:10;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--lav)}.overlay.on{display:flex}.overlay.align-left{align-items:flex-start;text-align:left;padding:0 92px}.menu-bg{background:radial-gradient(ellipse at 50% 38%,#780a5059,#08010ceb 70%)}.briefing-bg{background:linear-gradient(180deg,#08010cf5,#1e021af5)}.dead-bg{background:radial-gradient(ellipse at center,#78001466,#08010cf2 70%)}.clear-bg{background:radial-gradient(ellipse at center,#00786e59,#08010cf2 72%)}.pause-bg{background:#08010cd1}.kicker{font-size:11px;letter-spacing:7px;color:var(--cyan);text-shadow:0 0 10px rgba(0,229,255,.8);animation:ddflicker 4s infinite}.title{font-family:"Press Start 2P",monospace;font-size:58px;line-height:1;letter-spacing:2px;margin:16px 0 6px;color:var(--pink);text-shadow:3px 3px 0 var(--cyan),-2px -1px 0 rgba(160,0,255,.7),0 0 26px rgba(255,45,149,.8);animation:ddglitch 3.5s infinite}.tagline{font-size:15px;letter-spacing:2px;margin-top:14px;max-width:440px}.chapter{font-family:"Press Start 2P",monospace;font-size:20px;letter-spacing:1px;color:var(--cyan);text-shadow:0 0 16px rgba(0,229,255,.7)}.rule{width:64px;height:3px;background:var(--pink);margin:20px 0 26px;box-shadow:0 0 12px var(--pink)}#brief-body p{font-size:17px;line-height:1.9;color:#e9d8f5;max-width:640px;margin:0 0 16px}#brief-body .pink,.pink{color:var(--pink)}#brief-body .cyan,.cyan{color:var(--cyan)}.deadtitle{font-family:"Press Start 2P",monospace;font-size:52px;letter-spacing:2px;color:var(--red);text-shadow:3px 3px 0 rgba(0,0,0,.6),0 0 30px rgba(255,45,59,.8);animation:ddglitch 2.2s infinite}.cleartitle{font-family:"Press Start 2P",monospace;font-size:38px;letter-spacing:2px;color:var(--cyan);text-shadow:3px 3px 0 var(--pink),0 0 28px rgba(0,229,255,.8)}.copy{margin-top:26px;font-size:16px;line-height:1.8;color:#e9d8f5;max-width:540px}.score-line{margin-top:26px;font-size:15px;color:#c9b8d5;letter-spacing:1px}.sub-line{margin-top:8px;font-size:13px;color:var(--dim);letter-spacing:1px}.best-line{margin-top:24px;font-size:12px;letter-spacing:2px;color:var(--pink)}.bright{color:#fff;text-shadow:0 0 10px rgba(255,255,255,.6)}.bright.lg{font-size:22px}.hint{margin-top:22px;font-size:12px;color:#6a5a7a;letter-spacing:2px}.btn{font-family:"Press Start 2P",monospace;font-size:13px;padding:14px 22px;border:none;cursor:pointer;letter-spacing:1px;transition:transform .08s}.btn-pink{color:var(--ink);background:var(--pink);box-shadow:5px 5px #00e5ffd9}.btn-cyan{color:var(--ink);background:var(--cyan);box-shadow:5px 5px #ff2d95d9}.btn-pink:hover,.btn-cyan:hover{transform:translate(-2px,-2px)}.btn-ghost{color:var(--lav);background:transparent;border:2px solid #6a5a7a}.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}.btn.big{font-size:15px;padding:16px 30px;margin-top:34px;box-shadow:0 0 0 2px var(--pink),6px 6px #00e5ffd9}.btn.big:hover{box-shadow:0 0 0 2px var(--pink),8px 8px #00e5ff}.btn-row{display:flex;gap:16px;margin-top:34px}#btn-begin{align-self:flex-start;margin-top:8px}#ov-briefing .hint{align-self:flex-start}.dialog-bg{background:linear-gradient(180deg,#08010ce0,#16031af0 60%,#08010cfa);justify-content:flex-end;cursor:pointer}.dlg-stage{position:absolute;inset:0 0 148px;pointer-events:none}.dlg-char{position:absolute;bottom:-8px;height:372px;image-rendering:pixelated;opacity:0;transition:opacity .25s,transform .25s,filter .18s}.dlg-char.left{left:96px;transform:translateY(14px)}.dlg-char.right{right:96px;transform:translateY(14px) scaleX(-1)}.dlg-char.left.shown{opacity:1;transform:none}.dlg-char.right.shown{opacity:1;transform:scaleX(-1)}.dlg-char.shown:not(.active){filter:brightness(.42) saturate(.55)}.dlg-char.active{filter:drop-shadow(0 0 16px rgba(255,255,255,.22))}.dlg-box{position:relative;z-index:2;width:76%;min-height:120px;margin-bottom:8px;background:#0a0210ed;border:2px solid var(--pink);padding:20px 22px 26px;text-align:left;box-shadow:0 0 26px #000000a6}.dlg-name{position:absolute;top:-12px;left:14px;font-family:"Press Start 2P",monospace;font-size:11px;letter-spacing:1px;background:var(--ink);padding:3px 10px}.dlg-text{font-size:17px;line-height:1.75;color:#e9d8f5;min-height:60px}.dlg-text.inner{color:#b7a5c9;font-style:italic}.dlg-next{position:absolute;right:14px;bottom:8px;color:var(--cyan);font-size:12px;opacity:0}.dlg-next.on{opacity:1;animation:ddpulse 1s infinite}#ov-dialog .hint{margin:10px 0 14px}.remap-list{margin-top:26px;width:460px;border:2px solid #6a5a7a;background:#0a0210d9}.remap-row{display:flex;justify-content:space-between;padding:12px 18px;cursor:pointer;font-size:14px;letter-spacing:1px;border-bottom:1px solid rgba(106,90,122,.35)}.remap-row:last-child{border-bottom:none}.remap-row:hover{background:#00e5ff14}.remap-label{color:var(--lav)}.remap-val{color:var(--cyan)}.remap-row.waiting{background:#ff2d951f}.remap-row.waiting .remap-val{color:var(--pink);animation:ddpulse .8s infinite}.controls-grid{margin-top:30px;display:grid;grid-template-columns:auto auto;gap:4px 22px;font-size:12px;color:var(--dim);letter-spacing:1px;text-align:left}.controls-grid .k{color:var(--cyan);text-align:right}
