*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#03000c;color:#e8f6ff;font-family:ui-monospace,Menlo,Consolas,monospace;touch-action:none;user-select:none;-webkit-tap-highlight-color:transparent}
canvas{position:fixed;inset:0;display:block}
.scanlines{position:fixed;inset:0;z-index:5;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,.13) 3px);mix-blend-mode:multiply}
.vignette{position:fixed;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse at center,transparent 34%,rgba(0,0,16,.78) 100%)}
#brand{position:fixed;right:10px;top:calc(12px + env(safe-area-inset-top,0px));z-index:10;text-align:right;pointer-events:none}
.brand-tag{font:700 11px Inter,-apple-system,sans-serif;color:#fff;margin-bottom:3px}
.brand-tag .vw{display:inline-block}.vw-vect,.vw-a1{color:#f2f6ff}.vw-r{color:#00e5ff}.vw-c{color:#b026ff}.vw-a2{color:#ff00aa}.vw-d{color:#ff8c00}.vw-e{color:#ffd400}
.brand-title{font:900 16px -apple-system,sans-serif;letter-spacing:.11em;color:#00e5ff;text-shadow:0 0 12px #00e5ff}
.bt-vecta{color:#fff}.rcade-rainbow{background:linear-gradient(90deg,#00e5ff,#b026ff,#ff00aa,#ff8c00,#ffd400);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
#lvl{position:fixed;left:10px;top:calc(13px + env(safe-area-inset-top,0px));z-index:10;font:900 12px -apple-system,sans-serif;letter-spacing:.2em;color:#b55cff;text-shadow:0 0 10px #b026ff;pointer-events:none}
#m-lives{position:fixed;left:10px;top:calc(34px + env(safe-area-inset-top,0px));z-index:10;font:900 14px -apple-system,sans-serif;letter-spacing:.08em;color:#ff72d0;text-shadow:0 0 9px #ff00aa;pointer-events:none}
#score-chip{position:fixed;left:10px;top:calc(56px + env(safe-area-inset-top,0px));z-index:10;font:800 10px -apple-system,sans-serif;letter-spacing:.16em;color:#9fc7dd;pointer-events:none}
#mission{position:fixed;left:50%;top:calc(5.8% + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:10;width:min(82vw,460px);text-align:center;pointer-events:none}
#enemy-count{display:block;font:950 clamp(29px,7.7vw,54px)/.96 -apple-system,sans-serif;letter-spacing:.03em;color:#ffd400;text-shadow:0 0 20px rgba(255,212,0,.8),2px 2px 0 #7d1cff}
#threat{display:block;margin-top:7px;font:900 11px -apple-system,sans-serif;letter-spacing:.18em;color:#00ffee;text-transform:uppercase}
#threat.hot{color:#ff3355;text-shadow:0 0 12px #ff3355;animation:threatPulse .45s ease-in-out infinite alternate}
#cue{display:block;margin-top:6px;font:800 10px -apple-system,sans-serif;letter-spacing:.15em;color:#a7c9e5;text-transform:uppercase}
@keyframes threatPulse{to{transform:scale(1.035)}}
#orbs{position:fixed;left:50%;bottom:calc(1.4% + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:10;display:flex;align-items:center;gap:5px;pointer-events:none}
#orbs i{width:9px;height:9px;border-radius:50%;background:#00ffee;box-shadow:0 0 9px #00ffee}
#orbs i.spent{background:rgba(255,255,255,.12);box-shadow:none}
#orbs b{font:900 10px -apple-system,sans-serif;letter-spacing:.15em;color:#00ffee;margin-left:4px}
#orbs.low i,#orbs.low b{color:#ff3355;background:#ff3355;box-shadow:0 0 9px #ff3355}
#boom-chip{position:fixed;right:10px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:10;text-align:right;pointer-events:none;font:900 10px -apple-system,sans-serif;letter-spacing:.14em;color:#9fc7dd}
#boom-pips{display:flex;gap:3px;justify-content:flex-end;margin-top:4px}
#boom-pips i{display:block;width:13px;height:5px;border:1px solid rgba(255,212,0,.38);background:rgba(255,212,0,.06)}
#boom-pips i.on{background:#ffd400;box-shadow:0 0 8px #ffd400}
#hint{position:fixed;left:50%;top:17.5%;transform:translateX(-50%);z-index:10;width:min(90vw,500px);text-align:center;font:900 11px -apple-system,sans-serif;letter-spacing:.11em;color:#cce8ff;opacity:0;pointer-events:none;text-transform:uppercase}
#hint.show{opacity:.95}
#callout{position:fixed;left:50%;top:43%;transform:translate(-50%,-50%);z-index:15;opacity:0;pointer-events:none;text-align:center;font:950 clamp(24px,7vw,48px)/1 -apple-system,sans-serif;letter-spacing:.06em;color:#ffd400;text-shadow:0 0 22px #ffd400,2px 2px 0 #b026ff;text-transform:uppercase}
#callout.on{opacity:1}
#act{display:none}
.overlay{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8%;opacity:0;pointer-events:none;transition:opacity .2s;text-align:center}
.overlay.visible{opacity:1;pointer-events:auto}
#overlay-start{background:radial-gradient(ellipse at center,rgba(255,45,160,.12),rgba(0,0,17,.96) 70%);cursor:pointer}
#overlay-end{background:radial-gradient(ellipse at center,rgba(44,0,14,.94),rgba(0,0,17,.985) 72%);cursor:pointer}
#overlay-pause{background:rgba(0,0,18,.84);cursor:pointer}
.ov-tag{font:800 11px -apple-system,sans-serif;letter-spacing:.48em;color:#ff8c00;text-transform:uppercase;margin-bottom:12px}
.ov-title{font:950 clamp(38px,10vw,76px)/.95 -apple-system,sans-serif;color:#ffd400;text-shadow:0 0 24px #ffd400,3px 3px 0 #b026ff;text-transform:uppercase}
.ov-sub{max-width:500px;margin-top:14px;font:600 14px/1.65 -apple-system,sans-serif;color:#d5eaff}
.ov-sub b{color:#ffd400}
.ov-keys{margin-top:13px;font:700 11px/1.7 ui-monospace,monospace;color:#72e9ff}
.ov-cta{margin-top:18px;padding:15px 30px;border:1px solid #ffd400;background:rgba(255,212,0,.08);box-shadow:0 0 24px rgba(255,212,0,.34);font:900 13px -apple-system,sans-serif;letter-spacing:.28em;color:#fff;text-transform:uppercase;animation:pulse 1.25s ease-in-out infinite}
.ov-stats{margin:15px 0 5px;font:800 13px/1.8 ui-monospace,monospace;color:#8af8ff;text-transform:uppercase}.ov-stats span{color:#ffd400}
.ov-tease{font:900 12px -apple-system,sans-serif;letter-spacing:.14em;color:#b5d5ec;text-transform:uppercase}.ov-tease b{color:#ff8c00}
.ov-newbest{display:none;margin:12px 0 0;font:950 17px -apple-system,sans-serif;letter-spacing:.25em;color:#7cff00;text-shadow:0 0 15px #7cff00}
.ov-cta-secondary{display:inline-block;margin-top:12px;padding:9px 18px;border:1px solid rgba(0,229,255,.5);background:rgba(0,229,255,.05);font:800 11px -apple-system,sans-serif;letter-spacing:.24em;color:#7cf3ff;text-decoration:none;text-transform:uppercase;cursor:pointer}
#ov-build{margin-top:10px;font:700 10px ui-monospace,monospace;letter-spacing:.16em;color:#7f8daa}
#boon-overlay{background:radial-gradient(ellipse at center,rgba(10,0,28,.96),rgba(0,0,17,.995) 72%);z-index:32;backdrop-filter:blur(3px)}
#boon-title{font:950 clamp(30px,8vw,54px) -apple-system,sans-serif;color:#ffd400;text-shadow:0 0 20px #ffd400;text-transform:uppercase}
#boon-sub{margin:7px 0 18px;font:800 11px -apple-system,sans-serif;letter-spacing:.18em;color:#8adfff;text-transform:uppercase}
#boon-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(760px,94vw)}
.boon-card{min-height:160px;padding:17px 14px;border:1px solid rgba(0,255,238,.55);background:linear-gradient(180deg,rgba(3,14,31,.95),rgba(24,3,36,.96));box-shadow:0 0 18px rgba(0,229,255,.12);color:#fff;cursor:pointer;text-align:left}
.boon-card:hover,.boon-card:focus{outline:none;border-color:#ffd400;box-shadow:0 0 25px rgba(255,212,0,.3);transform:translateY(-2px)}
.boon-card em{display:block;font:900 10px -apple-system,sans-serif;letter-spacing:.18em;color:#ff8c00;text-transform:uppercase;font-style:normal}
.boon-card strong{display:block;margin:8px 0;font:950 clamp(16px,4vw,23px) -apple-system,sans-serif;color:#ffd400;text-transform:uppercase}
.boon-card span{font:600 12px/1.45 -apple-system,sans-serif;color:#d7edff}
@keyframes pulse{50%{box-shadow:0 0 38px rgba(255,212,0,.7)}}
@media(max-width:640px){#score-chip{display:none}#boon-cards{grid-template-columns:1fr;gap:7px}.boon-card{min-height:0;padding:12px 14px}.boon-card strong{margin:5px 0}.ov-sub{font-size:13px;line-height:1.55}.overlay{padding:6%}}
@media(prefers-reduced-motion:reduce){.ov-cta,#threat.hot{animation:none}.boon-card{transition:none}}
