:root{--ink:#080909;--paper:#eff0e7;--muted:#94978f;--line:rgba(239,240,231,.2);--signal:#ff5a36;--panel:#101211}*{box-sizing:border-box}html{background:#000}body{margin:0;min-height:100vh;background:#000;color:var(--paper);font-family:monospace}.site-shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:34px 0 26px;color:var(--paper)}.site-shell[data-palette=phosphor]{--ink:#03110b;--paper:#d8ffe7;--muted:#76a88a;--line:rgba(216,255,231,.2);--signal:#54ff8a;--panel:#071c11}.site-shell[data-palette=ultraviolet]{--ink:#09071a;--paper:#f0eaff;--muted:#9b91b8;--line:rgba(240,234,255,.2);--signal:#a98cff;--panel:#15102b}button,kbd{font:inherit}button:focus-visible{outline:2px solid var(--paper);outline-offset:4px}.game-header{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:20px}.eyebrow{margin:0 0 5px;color:var(--signal);font-size:.72rem;font-weight:750;letter-spacing:.18em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(3.1rem,8vw,7rem);font-weight:800;letter-spacing:-.08em;line-height:.82}h1 span,.overlay-title span{color:var(--signal)}.header-panel{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.build-status{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:10px 13px;color:var(--muted);font-size:.68rem;letter-spacing:.11em}.status-light,.cpu-indicator span{width:7px;height:7px;background:var(--signal);box-shadow:0 0 14px var(--signal)}.switch{display:flex;border:1px solid var(--line)}.small,.tiny{min-height:34px;border:0;border-right:1px solid var(--line);padding:0 12px;background:transparent;color:var(--muted);font-size:.6rem}.tiny{min-height:28px;padding:0 9px;font-size:.5rem}.small:last-child,.tiny:last-child{border-right:0}.small:hover,.small.is-active{background:var(--paper);color:var(--ink);transform:none}.tiny:hover,.tiny.is-active{background:var(--signal);color:var(--ink);transform:none}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;border-top:1px solid var(--line);padding:13px 0 10px}.scoreboard div{display:flex;align-items:baseline;gap:12px}.scoreboard span,.control-group p{color:var(--muted);font-size:.65rem;letter-spacing:.14em}.scoreboard strong{font-size:1.25rem}.game-state{margin:0;color:var(--signal);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-align:center}.game-state.is-paused{color:var(--paper)}.align-right{justify-content:flex-end;text-align:right}.screen-frame{position:relative;overflow:hidden;border:1px solid rgba(239,240,231,.34);background:var(--ink);box-shadow:0 0 0 8px #111312,0 0 0 9px rgba(239,240,231,.14),0 28px 80px rgba(0,0,0,.7)}canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;background:var(--ink)}canvas:focus-visible{outline:2px solid var(--signal);outline-offset:-4px}.screen-glow{position:absolute;inset:-20%;z-index:2;pointer-events:none;background:radial-gradient(circle,transparent 52%,rgba(0,0,0,.44) 100%)}.scanlines{position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,rgba(0,0,0,.12) 2px,rgba(0,0,0,.12) 4px);mix-blend-mode:screen}.game-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;background:rgba(8,9,9,.78);text-align:center;backdrop-filter:blur(2px)}[hidden]{display:none!important}.overlay-kicker{margin-bottom:12px;color:var(--signal);font-size:clamp(.62rem,1vw,.78rem);font-weight:800;letter-spacing:.2em}.overlay-title{max-width:none;margin-bottom:14px;color:var(--paper);font-size:clamp(2.5rem,7vw,6.8rem);line-height:.9;letter-spacing:-.07em}.overlay-copy,.overlay-score{margin-bottom:24px;color:#a9aca4;font-size:clamp(.62rem,1.1vw,.8rem);font-weight:700;letter-spacing:.12em}.overlay-score{color:var(--paper);font-size:clamp(1.3rem,3vw,2.5rem)}.gameover-overlay{background:rgba(8,9,9,.88)}.control-deck{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;padding:21px 0 34px}.control-group p{margin:0 0 8px;font-size:.62rem}.keys{display:flex;align-items:center;gap:7px}.key-or{color:var(--muted);font-size:.55rem}.cpu-indicator{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:32px;font-size:.65rem}.action-buttons{display:flex;justify-content:center;gap:10px}kbd{display:inline-grid;width:32px;height:32px;place-items:center;border:1px solid rgba(239,240,231,.36);background:var(--panel);color:var(--paper);font-size:.72rem;box-shadow:inset 0 -3px 0 rgba(0,0,0,.45)}button{min-height:42px;border:1px solid var(--signal);padding:0 18px;background:var(--signal);color:var(--ink);cursor:pointer;font-size:.68rem;font-weight:850;letter-spacing:.1em;transition:background .14s,color .14s,transform .14s}button:hover{background:var(--paper);border-color:var(--paper);transform:translateY(-2px)}.button-secondary{border-color:var(--line);background:transparent;color:var(--paper)}.button-secondary[aria-pressed=true]{border-color:var(--signal);color:var(--signal)}.checkpoint{display:grid;grid-template-columns:minmax(220px,.7fr) 1.3fr;gap:clamp(40px,8vw,110px);border-top:1px solid var(--line);padding:42px 0 48px}h2{max-width:420px;margin-bottom:0;font-size:clamp(2rem,5vw,4.5rem);line-height:.95;letter-spacing:-.06em}.checkpoint-copy{align-self:end;max-width:690px}.checkpoint-copy p{color:#c1c3bb;font-family:Arial,sans-serif;font-size:clamp(1rem,1.8vw,1.22rem);line-height:1.65}footer{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding-top:18px;color:#6d706a;font-size:.58rem;letter-spacing:.12em}@media(max-width:700px){.site-shell{width:min(100% - 22px,1180px);padding-top:22px}.game-header{align-items:flex-start}.header-panel{gap:6px}.build-status{padding:8px;font-size:.55rem}.small{min-height:30px;padding:0 8px;font-size:.5rem}.tiny{min-height:26px;padding:0 6px;font-size:.43rem}.scoreboard{gap:10px}.scoreboard span,.game-state{font-size:.52rem}.control-deck{grid-template-columns:1fr 1fr;gap:18px}.action-buttons{grid-column:1/-1;grid-row:2}.checkpoint{grid-template-columns:1fr;gap:26px}footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
