:root{--bg:#080808;--panel:#111;--panel-2:#171717;--text:#f7f7f2;--muted:#9b9b94;--line:#2a2a27;--accent:#d8ff3e;--accent-ink:#0a0a08;--danger:#ff5c5c}*{box-sizing:border-box}html{background:var(--bg)}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle at 80% 0%, #d8ff3e14, transparent 32rem), var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}.home{min-height:100vh;padding:28px clamp(22px,5vw,72px) 72px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-bottom:24px;display:flex}.brand{letter-spacing:.12em;font-size:17px;font-weight:900}.tagline{color:var(--muted);font-size:14px}.hero{width:min(1050px,100%);padding:clamp(72px,10vw,140px) 0 88px}.eyebrow{color:var(--accent);letter-spacing:.18em;margin:0 0 22px;font-size:12px;font-weight:900}h1,h2,p{text-wrap:balance}h1{letter-spacing:-.065em;max-width:1000px;margin:0;font-size:clamp(56px,9vw,124px);line-height:.88}.lede{max-width:700px;color:var(--muted);margin:34px 0 0;font-size:clamp(19px,2.3vw,28px);line-height:1.45}.heroActions{flex-wrap:wrap;gap:12px;margin-top:42px;display:flex}.primaryButton,.secondaryButton,.controlButton{border:1px solid var(--accent);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-height:52px;padding:0 22px;font-weight:800;display:inline-flex}.primaryButton,.controlButton{background:var(--accent);color:var(--accent-ink)}.secondaryButton{border-color:var(--line);background:var(--panel)}.controlButton:disabled{opacity:.38;cursor:not-allowed}.proofRow{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:54px;font-size:14px;display:flex}.proofRow i{color:var(--accent);font-style:normal}.featureGrid{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.featureGrid article{border-right:1px solid var(--line);min-height:240px;padding:30px 32px 0 0}.featureGrid article+article{padding-left:32px}.featureGrid article:last-child{border-right:0}.featureNumber{color:var(--accent);font-size:12px;font-weight:900}.featureGrid h2{margin:45px 0 14px;font-size:23px}.featureGrid p{color:var(--muted);margin:0;line-height:1.55}.venueScreen{min-height:100vh;padding:clamp(20px,3vw,44px);overflow:hidden}.screenHeader{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-bottom:20px;display:flex}.roomPill{border:1px solid var(--line);background:var(--panel);border-radius:999px;align-items:baseline;gap:12px;padding:10px 15px;display:flex}.roomPill span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px}.roomPill strong{letter-spacing:.12em;font-size:22px}.lobbyGrid{grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);align-items:center;gap:clamp(24px,4vw,64px);min-height:calc(100vh - 110px);display:grid}.qrPanel{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.qrBox{background:#fff;border-radius:24px;width:min(320px,100%);padding:16px}.qrBox img{width:100%;height:auto;display:block}.qrPlaceholder{aspect-ratio:1;color:#222;place-items:center;font-weight:800;display:grid}.joinCopy{max-width:350px}.joinCopy h2{letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(30px,4vw,50px)}.joinCopy p{color:var(--muted);margin:0;line-height:1.5}.lobbyMain h1{font-size:clamp(52px,7vw,96px)}.playerList{gap:10px;margin:30px 0;display:grid}.playerCard{border:1px solid var(--line);background:var(--panel);border-radius:14px;grid-template-columns:46px 1fr auto;align-items:center;gap:14px;min-height:66px;padding:10px 16px 10px 10px;display:grid}.avatar{background:var(--accent);width:46px;height:46px;color:var(--accent-ink);border-radius:12px;place-items:center;font-weight:900;display:grid}.playerMeta strong{display:block}.playerMeta span,.emptyState{color:var(--muted);font-size:13px}.gameStage{grid-template-rows:auto 1fr;gap:18px;min-height:calc(100vh - 112px);padding-top:26px;display:grid}.gameHud{justify-content:space-between;align-items:center;gap:20px;display:flex}.gameHud h1{font-size:clamp(44px,6vw,82px)}.timer{text-align:right;min-width:120px;color:var(--accent);font-size:clamp(44px,7vw,96px);font-weight:900;line-height:1}.raceBoard{align-content:center;gap:15px;display:grid}.racer{grid-template-columns:minmax(110px,190px) 1fr 72px;align-items:center;gap:14px;display:grid}.racerName{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.track{border:1px solid var(--line);background:var(--panel);border-radius:14px;height:clamp(42px,6vh,70px);overflow:hidden}.progress{background:var(--accent);border-radius:12px;min-width:4px;height:100%;transition:width 80ms linear}.racerScore{text-align:right;font-size:28px;font-weight:900}.countdown{text-align:center;place-items:center;min-height:calc(100vh - 112px);display:grid}.countdownNumber{color:var(--accent);font-size:min(40vw,360px);font-weight:900;line-height:.8}.results{place-items:center;min-height:calc(100vh - 112px);display:grid}.resultsCard{text-align:center;width:min(760px,100%)}.winnerName{letter-spacing:-.06em;margin:10px 0 4px;font-size:clamp(62px,10vw,130px);line-height:.9}.winnerScore{color:var(--accent);margin-bottom:34px;font-size:28px;font-weight:900}.controller{background:radial-gradient(circle at 50% 15%, #d8ff3e1a, transparent 20rem), var(--bg);flex-direction:column;min-height:100svh;padding:22px;display:flex}.controllerHeader{justify-content:space-between;align-items:center;gap:20px;display:flex}.controllerBrand{letter-spacing:.12em;font-size:15px;font-weight:900}.connectionStatus{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.connectionDot{background:#555;border-radius:50%;width:8px;height:8px}.connectionDot.online{background:var(--accent);box-shadow:0 0 12px #d8ff3eb3}.joinForm{width:100%;max-width:520px;margin:auto}.joinForm .eyebrow{margin-bottom:14px}.joinForm h1{font-size:clamp(48px,16vw,80px)}.formFields{gap:12px;margin-top:32px;display:grid}.textInput{border:1px solid var(--line);background:var(--panel);width:100%;height:58px;color:var(--text);border-radius:13px;outline:none;padding:0 17px;font-size:18px}.textInput:focus{border-color:var(--accent)}.joinButton{background:var(--accent);height:58px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:13px;font-weight:900}.joinButton:disabled{opacity:.4}.controllerGame{flex:1;grid-template-rows:auto 1fr auto;gap:18px;padding-top:30px;display:grid}.phoneHud{justify-content:space-between;align-items:flex-end;display:flex}.phoneHud strong{font-size:34px;display:block}.phoneHud span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px}.tapButton{aspect-ratio:1;background:var(--accent);width:min(88vw,480px);color:var(--accent-ink);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;border-radius:50%;place-self:center;font-size:clamp(42px,12vw,72px);font-weight:1000;box-shadow:0 18px 60px #d8ff3e2e}.tapButton:active{transform:scale(.96)}.tapButton:disabled{opacity:.26;transform:none}.phoneMessage{text-align:center;min-height:50px;color:var(--muted);font-size:15px}.errorText{color:var(--danger);margin-top:12px;font-size:14px}@media (max-width:820px){.featureGrid{grid-template-columns:1fr}.featureGrid article,.featureGrid article+article{border-right:0;border-bottom:1px solid var(--line);min-height:auto;padding:28px 0}.featureGrid article:last-child{border-bottom:0}.featureGrid h2{margin-top:24px}.lobbyGrid{grid-template-columns:1fr;padding-top:40px}.qrPanel{text-align:center;align-items:center}.lobbyMain{padding-bottom:40px}}
