:root{--bg:#101214;--panel:#181b1e;--line:#30363b;--text:#f5f1e8;--muted:#8d9599;--gold:#f2b35f;--purple:#a893dc}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif}.landing{display:grid;place-items:center;position:relative;overflow:hidden}.landing:before{content:'';position:absolute;width:500px;height:500px;border:1px solid #24292d;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 80px #131619,0 0 0 81px #24292d}.landing-card{text-align:center;z-index:1}.mini-mark{font-size:40px;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:var(--gold)}h1{font:700 clamp(64px,14vw,130px)/.8 'Space Grotesk',sans-serif;letter-spacing:-.09em;margin:25px 0}h1 span{font-size:.32em;letter-spacing:0;color:var(--gold);vertical-align:middle}.tagline{color:var(--muted);font-size:15px;margin:28px 0 38px}.start-button,.new-round{display:inline-block;background:var(--gold);color:#171311;text-decoration:none;border:0;border-radius:3px;padding:15px 25px;font:700 11px 'Space Grotesk';letter-spacing:.16em;cursor:pointer}.start-button span,.new-round span{font-size:16px;margin-left:8px}.hint{color:#5f686d;font-size:9px;letter-spacing:.18em;margin-top:22px}.corner-note{position:absolute;bottom:25px;color:#4f585c;font:10px 'Space Grotesk';letter-spacing:.16em}.game-shell{width:min(100%,720px);margin:auto;padding:28px 38px 25px;min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px}.brand{font:700 12px 'Space Grotesk';letter-spacing:.12em}.back,.home-link{color:var(--muted);text-decoration:none;font-size:11px}.back span{margin-left:5px;letter-spacing:.12em}.round-count{font:700 10px 'Space Grotesk';letter-spacing:.12em;color:var(--gold)}.game-heading{text-align:center;margin:44px 0 27px}.game-heading h2{font:600 clamp(38px,7vw,58px) 'Space Grotesk';letter-spacing:-.06em;margin:14px 0}.game-heading p:last-child{font-size:11px;font-weight:700;letter-spacing:.17em;color:var(--purple)}.scoreboard{display:grid;grid-template-columns:1fr .75fr 1fr;gap:10px;margin-bottom:24px}.score-card{border:1px solid var(--line);border-radius:5px;padding:13px;text-align:center;background:var(--panel)}.score-card.active{border:2px solid var(--gold);padding:12px}.player-label{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--muted);display:flex;justify-content:center;align-items:center;gap:7px}.sticker{font-size:clamp(40px,8vw,66px);filter:drop-shadow(0 4px 3px #0005)}.sticker.small{font-size:18px}.score-card strong{display:block;font:600 29px 'Space Grotesk';margin-top:4px}.tiny{font-size:13px;color:var(--muted)}.play-area{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:28px clamp(20px,7vw,65px) 31px}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.cell{aspect-ratio:1;border:1px solid var(--line);border-radius:5px;background:#22272b;color:var(--text);cursor:pointer}.cell:hover:not(:disabled){background:#2b3034}.cell:disabled{cursor:default}.cell.winner{background:#33302a;box-shadow:inset 0 0 0 2px var(--gold)}.new-round{display:block;margin:24px auto 0}.home-link{display:block;text-align:center;margin-top:25px;font-size:10px;letter-spacing:.16em}@media(max-width:480px){.game-shell{padding:22px 18px}.game-heading{margin:36px 0 24px}.play-area{padding:20px 17px 25px}}
:root{--overlay:#101214ee}.winner-overlay{position:fixed;inset:0;background:var(--overlay);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s;z-index:5}.winner-overlay.show{opacity:1;pointer-events:auto}.winner-modal{width:min(90%,400px);padding:42px 25px;text-align:center;background:#181b1e;border:1px solid var(--gold);border-radius:8px;box-shadow:0 20px 70px #0008}.winner-modal h2{font:600 48px 'Space Grotesk';letter-spacing:-.06em;margin:12px 0}.winner-modal p:not(.eyebrow){color:var(--muted);margin:0 0 28px}.winner-sticker{font-size:70px;filter:drop-shadow(0 6px 4px #0008);animation:bounce .7s ease both}@keyframes bounce{0%{transform:scale(.4)}70%{transform:scale(1.15)}100%{transform:scale(1)}}

/* Arcade cabinet theme */
:root{--bg:#09051c;--panel:#120d2d;--line:#3d2870;--text:#f8f3ff;--muted:#a99bc9;--gold:#ffd447;--purple:#ff4fd8;--cyan:#39f6ff}
body{font-family:'Courier New',monospace;background:radial-gradient(circle at 50% 12%,#241052 0,#09051c 48%,#05030d 100%);image-rendering:pixelated}.landing:before{border-color:#3d2870;box-shadow:0 0 0 80px #0d0824,0 0 0 81px #3d2870}.mini-mark{filter:drop-shadow(0 0 12px var(--cyan))}.eyebrow,.round-count{color:var(--cyan);text-shadow:0 0 8px var(--cyan)}h1{font-family:'Courier New',monospace;color:var(--gold);text-shadow:4px 4px 0 #b32692,0 0 18px var(--gold);letter-spacing:-.08em}.tagline{color:var(--muted)}.start-button,.new-round{font-family:'Courier New',monospace;background:var(--gold);border:3px solid #fff0a0;box-shadow:0 0 0 3px #b32692,0 0 18px #ff4fd899;text-transform:uppercase}.start-button:hover,.new-round:hover{transform:translateY(-2px);box-shadow:0 0 0 3px #b32692,0 0 28px #ffd447}.topbar{border-color:var(--cyan)}.brand{color:var(--purple);text-shadow:0 0 8px var(--purple)}.game-heading h2{font-family:'Courier New',monospace;color:var(--gold);text-shadow:3px 3px 0 #b32692}.game-heading p:last-child{color:var(--cyan);text-shadow:0 0 8px var(--cyan)}.score-card,.play-area{background:#0d0824;border:2px solid var(--line);box-shadow:inset 0 0 18px #0008,0 0 10px #3d287055}.score-card.active{border-color:var(--gold);box-shadow:0 0 15px #ffd44788}.player-label{color:var(--muted)}.score-card strong{font-family:'Courier New',monospace;color:var(--gold);text-shadow:0 0 8px var(--gold)}.board{gap:12px}.cell{border:2px solid var(--purple);background:#160d38;box-shadow:inset 0 0 12px #0008,0 0 8px #ff4fd855}.cell:hover:not(:disabled){background:#251354;box-shadow:0 0 15px var(--cyan)}.cell.winner{background:#33205a;box-shadow:inset 0 0 0 3px var(--gold),0 0 18px var(--gold)}.sticker{filter:drop-shadow(0 0 8px var(--cyan))}.back,.home-link{color:var(--muted)}.corner-note,.hint{color:#665792}.winner-overlay{background:#09051cee}.winner-modal{background:#120d2d;border:3px solid var(--cyan);box-shadow:0 0 0 4px #b32692,0 0 35px var(--cyan)}.winner-modal h2{font-family:'Courier New',monospace;color:var(--gold);text-shadow:3px 3px 0 #b32692}.winner-sticker{filter:drop-shadow(0 0 12px var(--gold))}
