:root{--cabinet: #0b0714;--crt: #14081f;--magenta: #ff3d8a;--cyan: #2ee6ff;--amber: #ffb020;--gold: #f5d76e;--paper: #f3eaff;--mist: #9a8bb8;--line: rgba(46, 230, 255, .16);--ink: #0b0714;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(820px 380px at 78% -8%,rgba(255,61,138,.16),transparent 52%),radial-gradient(640px 360px at 8% 108%,rgba(46,230,255,.1),transparent 48%),var(--cabinet);color:var(--paper);font-family:Zen Maru Gothic,Hiragino Sans,sans-serif}#app{width:min(1180px,100%);margin:0 auto;padding:18px 16px 32px;display:grid;gap:14px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{display:flex;gap:12px;align-items:center}.mark{width:46px;height:46px;display:grid;place-items:center;background:linear-gradient(160deg,var(--cyan),#148aa0);color:var(--ink);font-family:Reggae One,sans-serif;font-size:20px;border-radius:10px 3px 12px 4px;box-shadow:0 0 22px #2ee6ff52}.eyebrow{margin:0;color:var(--cyan);font-size:11px;letter-spacing:.22em}h1,h2{margin:0;font-family:Reggae One,sans-serif;font-weight:400;letter-spacing:.04em}h1{font-size:clamp(22px,4vw,30px);line-height:1.2}.stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pill,.ghost,.card button,.swing,.start,.again{font-family:inherit}.pill,.ghost{border:1px solid var(--line);background:#0b07149e;color:var(--paper);border-radius:999px;padding:6px 12px;font-size:13px}.pill.gold{color:var(--amber);border-color:#ffb02073;font-family:Share Tech Mono,monospace}.ghost{cursor:pointer}.ghost:hover{border-color:var(--cyan)}.stage{display:grid;grid-template-columns:minmax(0,.9fr) minmax(260px,.72fr);gap:16px;align-items:start}.cage-wrap{position:relative;max-width:440px;margin:0 auto;width:100%;background:#0e0818;border:3px solid rgba(46,230,255,.28);box-shadow:0 0 0 8px #12081c,0 18px 40px #00000073;overflow:hidden;border-radius:6px}#lane{display:block;width:100%;height:min(72vh,720px);aspect-ratio:400 / 720;background:var(--crt)}.controls{display:grid;gap:8px;padding:10px 12px 12px;background:#12081c;border-top:1px solid var(--line)}.status{margin:0;min-height:1.4em;color:var(--mist);font-size:13px}.actions{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:8px}.swing,.start,.again,.card button{border:0;cursor:pointer;font-weight:700}.swing,.start,.again{min-height:52px;letter-spacing:.08em;font-size:15px;background:var(--cyan);color:var(--ink)}.swing.right{background:var(--magenta);color:var(--paper)}.swing.plunger{background:var(--amber);color:var(--ink)}.swing:hover,.start:hover,.again:hover{filter:brightness(1.08)}.swing:disabled,.start:disabled,.again:disabled,.card button:disabled,.ghost:disabled{opacity:.35;cursor:default;filter:none}.shop{background:#160b22;border:1px solid var(--line);padding:14px 12px 12px;box-shadow:0 18px 40px #00000047}.shop-head h2{font-size:18px}.shop-head p{margin:6px 0 12px;color:var(--mist);font-size:12px;line-height:1.6}.cards{display:grid;gap:10px}.card{padding:10px;background:#0b071480;border:1px dashed rgba(255,61,138,.28)}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.card h3{margin:0;font-size:15px}.lv{font-family:Share Tech Mono,monospace;font-size:15px;color:var(--cyan)}.card p{margin:6px 0 10px;color:var(--mist);font-size:12px;line-height:1.55}.card button{width:100%;padding:9px 10px;background:var(--amber);color:var(--ink);font-size:14px;letter-spacing:.04em}.shop-foot{display:flex;gap:8px;margin-top:12px}.ghost.wide{flex:1;border-radius:8px}.modal{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0b0714c2;padding:16px}.modal.hidden{display:none}.sheet{width:min(26rem,92%);background:#1a0d28;border:1px solid var(--line);padding:22px 20px 18px;text-align:center}.sheet h2{margin:6px 0 10px;font-size:26px}.sheet p{margin:0 0 16px;color:var(--mist);font-size:14px;line-height:1.65}.sheet .big{font-family:Share Tech Mono,monospace;font-size:56px;line-height:.9;color:var(--amber)}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@media(max-width:860px){.stage{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch}.stats{justify-content:flex-start}#lane{height:min(62vh,640px)}}@media(prefers-reduced-motion:reduce){.swing,.mark{transition:none}}
