:root{--bg:#07090d;--panel:#080b10b8;--line:#7dffb240;--hud:#7dffb2;--accent:#ff6a1a;--accent-rgb:255, 106, 26;--text:#eef1f5;--dim:#8a93a0;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--display:"Arial Black", "Helvetica Neue", Helvetica, system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--mono);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;margin:0;overflow:hidden}#stage{position:fixed;inset:0}#stage canvas{width:100%;height:100%;display:block}[hidden]{display:none!important}button{font:inherit;color:inherit}#hud{pointer-events:none;position:fixed;inset:0}.hud-panel{background:var(--panel);border:1px solid var(--line);color:var(--hud);text-shadow:0 0 8px #7dffb259;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;padding:10px 14px;position:absolute}.hud-tl{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));min-width:180px}.hud-tr{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));text-align:right}.hud-bl{bottom:max(12px, env(safe-area-inset-bottom));left:max(12px, env(safe-area-inset-left));min-width:180px}.hud-row{justify-content:space-between;gap:18px;font-size:18px;line-height:1.35;display:flex}.hud-k{color:var(--dim);text-shadow:none;letter-spacing:.12em;align-self:center;font-size:13px}.hud-v{font-variant-numeric:tabular-nums;font-weight:700}.hud-splits{color:var(--dim);text-shadow:none;margin-top:6px;font-size:12px}.hud-splits .best{color:var(--accent)}.hud-place{font-family:var(--display);color:var(--text);font-size:38px;font-style:italic}.hud-speed{font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.hud-speed small{color:var(--dim);text-shadow:none;margin-left:6px;font-size:12px}.hud-bar{background:#ffffff14;border-radius:3px;height:5px;margin-top:6px;overflow:hidden}.hud-bar>div{background:linear-gradient(90deg, var(--hud), var(--accent));width:0;height:100%}.hud-banner{opacity:0;font-family:var(--display);color:var(--text);text-align:center;text-shadow:0 3px 0 #0009, 0 0 24px rgba(var(--accent-rgb), .55);white-space:nowrap;font-size:clamp(28px,6vw,56px);font-style:italic;transition:opacity .15s,transform .15s;position:absolute;top:22%;left:50%;transform:translate(-50%,-50%)scale(.9)}.hud-banner.show{opacity:1;transform:translate(-50%,-50%)scale(1)}.hud-banner small{font-family:var(--mono);color:var(--hud);font-size:.4em;font-style:normal;display:block}.hud-banner.count b{font-size:2.2em}.hud-banner.go b{color:var(--accent)}.hud-banner.warn{color:#ff4d4d}.overlay{background:radial-gradient(#07090d59,#07090dd9);justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.overlay.show{display:flex}.overlay.title{background:linear-gradient(90deg,#07090deb 0%,#07090d99 45%,#07090d00 75%);justify-content:flex-start}.title-card{max-width:560px;padding-left:clamp(0px,4vw,48px)}.brand{color:var(--dim);letter-spacing:.25em;text-transform:uppercase;font-size:12px}.logo{font-family:var(--display);letter-spacing:-.02em;flex-direction:column;margin:10px 0 6px;font-size:clamp(54px,10vw,104px);font-style:italic;font-weight:900;line-height:.88;display:flex}.logo span:first-child{background:linear-gradient(#fff 0%,#c9d0da 48%,#7c8593 52%,#e8ecf1 100%);color:#0000;filter:drop-shadow(0 4px #00000080);-webkit-background-clip:text;background-clip:text}.logo span:last-child{color:var(--accent);filter:drop-shadow(0 4px #00000080)}.tagline{color:var(--hud);margin:8px 0 22px;font-size:15px}.track-chip{border-left:3px solid var(--accent);flex-direction:column;gap:2px;margin-bottom:22px;padding:4px 12px;display:inline-flex}.track-chip span{color:var(--dim);font-size:12px}.cta,.ghost{cursor:pointer;letter-spacing:.08em;text-align:left;border-radius:6px;min-width:260px;margin:8px 0;padding:14px 22px;font-weight:800;display:block}.cta{background:var(--accent);color:#0b0e13;border:none;animation:1.6s ease-in-out infinite pulse;box-shadow:0 4px #a33f06}.cta:active{transform:translateY(2px);box-shadow:0 2px #a33f06}.ghost{background:0 0;border:1px solid #fff3}@keyframes pulse{50%{filter:brightness(1.15)}}.controls{color:var(--text);margin-top:22px;font-size:13px;line-height:2}.dim{color:var(--dim)}kbd{text-align:center;border:1px solid #ffffff40;border-bottom-width:3px;border-radius:4px;min-width:22px;margin-right:4px;padding:0 6px;font-size:12px;line-height:20px;display:inline-block}.build-tag{color:var(--dim);letter-spacing:.2em;margin-top:18px;font-size:11px}.card{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;min-width:320px;padding:26px 30px}.card h2{font-family:var(--display);margin:6px 0 14px;font-size:44px;font-style:italic}.results table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:16px}.results td{border-bottom:1px solid #ffffff14;padding:5px 0}.results td:last-child{text-align:right;font-variant-numeric:tabular-nums}.results tr.best td{color:var(--accent)}@media (pointer:coarse){.controls{display:none}}#touch{height:0;position:fixed;inset:auto 0 0}#touch button{bottom:max(18px, env(safe-area-inset-bottom));color:#ffffffd9;touch-action:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0e1473;border:2px solid #ffffff4d;border-radius:50%;width:84px;height:84px;font-size:26px;font-weight:800;position:absolute}#touch button.active{background:rgba(var(--accent-rgb), .55);border-color:var(--accent)}.touch-steer button[data-touch=left]{left:max(16px, env(safe-area-inset-left))}.touch-steer button[data-touch=right]{left:calc(max(16px, env(safe-area-inset-left)) + 100px)}.touch-pedals button.gas{right:max(16px, env(safe-area-inset-right));width:100px;height:100px;font-size:18px}.touch-pedals button.brake{right:calc(max(16px, env(safe-area-inset-right)) + 114px);font-size:15px}body:has(#touch:not([hidden])) .hud-bl{bottom:140px}@media (height<=500px){.hud-panel{padding:6px 10px}.hud-tl{min-width:140px}.hud-row{gap:12px;font-size:14px}.hud-k{font-size:11px}.hud-splits{display:none}.hud-place{font-size:26px}.hud-bl{top:max(8px, env(safe-area-inset-top));text-align:center;min-width:120px;bottom:auto;left:50%;transform:translate(-50%)}body:has(#touch:not([hidden])) .hud-bl{top:max(8px, env(safe-area-inset-top));text-align:center;min-width:120px;bottom:auto;left:50%;transform:translate(-50%)}.hud-speed{font-size:20px}.hud-banner{top:30%}#touch button{width:72px;height:72px;font-size:22px}.touch-steer button[data-touch=right]{left:calc(max(16px, env(safe-area-inset-left)) + 86px)}.touch-pedals button.gas{width:86px;height:86px}.touch-pedals button.brake{right:calc(max(16px, env(safe-area-inset-right)) + 98px)}}.hud-tr{min-width:150px}.hud-placewrap{text-align:right}.hud-standings{color:var(--text);text-shadow:none;margin:6px 0 0;padding:0;font-size:13px;list-style:none}.hud-standings li{counter-increment:pos;align-items:center;gap:8px;line-height:1.7;display:flex}.hud-standings li:before{content:counter(pos);color:var(--dim);text-align:right;width:12px}.hud-standings li i{border-radius:2px;width:10px;height:10px;display:inline-block}.hud-standings li.me{color:var(--accent);font-weight:800}.hud-standings{counter-reset:pos}.hud-ammo{text-shadow:none;gap:10px;margin-top:8px;font-size:12px;display:flex}.hud-ammo .ammo{border:1px solid;border-radius:4px;padding:2px 8px}.hud-ammo .ammo b{margin-left:4px;font-size:14px}.hud-ammo .seek{color:#3fe3ff}.hud-ammo .bad{color:#ff4a5e}.hud-ammo .empty{opacity:.35}.hud-wrong{font-family:var(--display);color:#ff4d4d;text-shadow:0 3px #0009;font-size:clamp(26px,5vw,48px);font-style:italic;animation:.5s steps(2,end) infinite blink;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}@keyframes blink{50%{opacity:.2}}.touch-pedals button.fire{right:max(16px, env(safe-area-inset-right));bottom:calc(max(18px, env(safe-area-inset-bottom)) + 116px)!important;color:#3fe3ff!important;border-color:#3fe3ff99!important;width:64px!important;height:64px!important;font-size:13px!important}.touch-pedals button.drop{right:calc(max(16px, env(safe-area-inset-right)) + 76px);bottom:calc(max(18px, env(safe-area-inset-bottom)) + 116px)!important;color:#ff4a5e!important;border-color:#ff4a5e99!important;width:64px!important;height:64px!important;font-size:13px!important}.results table td:first-child{width:36px;color:var(--dim)}.results tr.me td{color:var(--accent);font-weight:800}.results td i{border-radius:2px;width:10px;height:10px;margin-right:8px;display:inline-block}@media (height<=500px){.hud-standings{font-size:11px}.hud-standings li{line-height:1.45}.hud-ammo{margin-top:4px}.touch-pedals button.fire,.touch-pedals button.drop{bottom:calc(max(18px, env(safe-area-inset-bottom)) + 96px)!important;width:56px!important;height:56px!important}.touch-pedals button.drop{right:calc(max(16px, env(safe-area-inset-right)) + 66px)}}.hud-letters{top:max(12px, env(safe-area-inset-top));font-family:var(--display);gap:4px;font-size:20px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-letters span{color:#ffffff2e;background:#080b1099;border:1px solid #ffffff1a;border-radius:5px;place-items:center;width:26px;height:30px;display:grid}.hud-letters span.on{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px rgba(var(--accent-rgb), .6)}@media (height<=500px){.hud-letters{top:auto;bottom:max(10px, env(safe-area-inset-bottom));font-size:13px}.hud-letters span{width:18px;height:20px}}.overlay{overflow-y:auto}.overlay.side{background:linear-gradient(90deg,#07090de6 0%,#07090d8c 42%,#07090d00 70%);justify-content:flex-start}.card .brand{margin-bottom:4px}.entry,.intro,.shop,.final,.tracks,.board{width:100%;max-width:640px}.field{margin:14px 0;display:block}.field>span{letter-spacing:.2em;color:var(--dim);margin-bottom:6px;font-size:11px;display:block}.field input{width:100%;font:800 26px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#00000059;border-radius:6px;padding:12px 14px}.field input:focus{outline:2px solid var(--accent)}.teams{flex-wrap:wrap;gap:8px;display:flex}.team{cursor:pointer;background:#00000040;border:1px solid #ffffff2e;border-radius:6px;padding:9px 12px;font-size:13px}.team.sel{border-color:var(--accent);background:rgba(var(--accent-rgb), .18);color:#fff}.intro{max-width:460px}.intro .map,.track-pick canvas{background:#00000059;border-radius:8px;width:100%;height:auto;margin:10px 0;display:block}.rivals,.mini-upgrades{flex-wrap:wrap;gap:6px 14px;margin:6px 0;font-size:12px;display:flex}.rivals i,.board i{border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.mini-upgrades span{color:var(--dim)}.mini-upgrades b{color:var(--hud);font-weight:700}.hint{color:var(--hud);font-size:12px}.earned{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.earned div,.big-score{border:1px solid var(--line);background:#0000004d;border-radius:6px;padding:8px 10px}.earned span,.big-score span{letter-spacing:.18em;color:var(--dim);font-size:10px;display:block}.earned b{color:var(--hud);font-size:20px}.word-bonus{color:var(--accent);letter-spacing:.1em;font-weight:800}.credits{color:var(--dim);font-size:14px}.credits b{color:var(--hud);margin-left:6px;font-size:24px}.upgrades{grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px;display:grid}.upgrade{cursor:pointer;text-align:left;border:1px solid var(--line);background:#0000004d;border-radius:8px;flex-direction:column;gap:6px;padding:14px;display:flex}.upgrade:not([disabled]):hover{border-color:var(--accent);background:rgba(var(--accent-rgb), .12)}.upgrade[disabled]{opacity:.45;cursor:default}.u-name{font-weight:800}.u-stat{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:11px}.u-level{color:var(--hud);font-size:13px}.pips{gap:4px;display:flex}.pips i{background:#ffffff26;border-radius:2px;width:18px;height:6px}.pips i.on{background:var(--accent)}.big-score{margin:12px 0}.big-score b{font-family:var(--display);font-size:40px;font-style:italic}.summary{border-collapse:collapse;width:100%;font-size:13px}.summary td{border-bottom:1px solid #ffffff12;padding:4px 6px 4px 0}.rank{color:var(--hud);font-size:16px}.rank b{font-size:24px}.track-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0;display:grid}.track-pick{cursor:pointer;text-align:left;border:1px solid var(--line);background:#0000004d;border-radius:8px;padding:10px}.track-pick:hover{border-color:var(--accent)}.track-pick b{display:block}.track-pick span{color:var(--dim);font-size:11px}.board{max-width:900px}.board table{border-collapse:collapse;width:100%;font-size:13px}.board td{border-bottom:1px solid #ffffff12;padding:4px 8px 4px 0}.board td:last-child{text-align:right;font-variant-numeric:tabular-nums}.board tr.me td{color:var(--accent);font-weight:800}.board h3{letter-spacing:.2em;color:var(--dim);margin:16px 0 6px;font-size:12px}.board h4{margin:0 0 4px;font-size:13px}.board-cols{grid-template-columns:1fr 1fr;gap:24px;display:grid}.laps-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.dnf{color:#ff6b6b}.hud-banner .letter{background:var(--accent);border-radius:50%;place-items:center;width:1.6em;height:1.6em;display:inline-grid}@media (width<=720px){.board-cols,.laps-grid,.upgrades,.track-grid{grid-template-columns:1fr 1fr}.card{min-width:0;padding:18px}}.overlay.smart-bg{background:#04060a}.smart{width:100%;max-width:820px;font-family:var(--mono);color:#c8d0da}.bios{white-space:pre-wrap;color:#9fb0c4;margin:0 0 14px;font-size:13px}.bios.warn{color:#ffb14a;margin-top:14px}.smart-status{font-family:var(--mono);letter-spacing:.04em;margin:0 0 12px;font-size:clamp(22px,4.5vw,40px)}.smart-status span{color:#ff3b3b;animation:.8s steps(2,end) infinite blink}.attrs{border-collapse:collapse;width:100%;font-size:12px}.attrs th{text-align:left;color:#7f8ea3;border-bottom:1px solid #253040;padding:4px 8px 4px 0;font-weight:400}.attrs td{padding:3px 8px 3px 0}.attrs tr.fail td{color:#ff5d5d}@media (width<=720px){.attrs th:nth-child(4),.attrs td:nth-child(4),.attrs th:nth-child(5),.attrs td:nth-child(5){display:none}}.overlay.tv-mode{background:linear-gradient(#07090dd1,#07090db3);align-items:stretch;padding:2.2vw;overflow:hidden}.overlay.tv-mode .tv{height:100%}.tv{flex-direction:column;gap:1.4vw;width:100%;font-size:1.15vw;display:flex}.tv header{justify-content:space-between;align-items:flex-end;display:flex}.tv-logo{flex-direction:row;gap:.6vw;margin:.2vw 0 0;font-size:3.6vw}.tv-updated{color:var(--dim);font-size:.9vw}.tv main{flex:1;grid-template-rows:1fr auto;grid-template-columns:1.25fr 1fr .8fr;gap:1.4vw;min-height:0;display:grid}.tv-panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:.8vw;padding:1.2vw 1.4vw}.tv-panel h2{letter-spacing:.25em;color:var(--dim);margin:0 0 .8vw;font-size:1vw}.tv-panel h2 small{letter-spacing:.05em;font-weight:400}.tv-drivers{grid-area:1/1/span 2;overflow:hidden}.tv-teams{grid-area:1/2;overflow:hidden}.tv-join{grid-area:1/3}.tv-laps{grid-area:2/2/auto/span 2}.tv ol{margin:0;padding:0;list-style:none}.tv li{border-bottom:1px solid #ffffff12;grid-template-columns:2.4vw 1fr auto;align-items:center;gap:.8vw;padding:.55vw 0;display:grid}.tv-drivers li{font-size:1.6vw}.tv-drivers li:first-child .val{color:var(--accent)}.tv .pos{color:var(--dim);font-family:var(--display);font-style:italic}.tv .who small{color:var(--dim);font-size:.6em;display:block}.tv .val{font-variant-numeric:tabular-nums;color:var(--hud);font-weight:800}.tv li.empty{color:var(--dim);display:block}.tv li.new{animation:2.5s ease-out 2 flash-new}@keyframes flash-new{0%{background:rgba(var(--accent-rgb), .45)}to{background:0 0}}.tv-laps>div{grid-template-columns:repeat(4,1fr);gap:1.2vw;display:grid}.tv-track h3{margin:0 0 .4vw;font-size:1vw}.tv-track li{grid-template-columns:1.4vw 1fr auto;font-size:.95vw}.tv-join{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6vw;display:flex}.tv-join .qr{background:#fff;border-radius:.6vw;width:12vw;padding:.6vw}.tv-join .qr svg{width:100%;height:auto;display:block}.tv-join b{font-family:var(--display);color:var(--accent);font-size:1.6vw;font-style:italic}.tv-join span{color:var(--dim);font-size:.9vw}#rotate{display:none}@media (orientation:portrait) and (pointer:coarse){body:has(#hud:not([hidden])) #rotate{background:var(--panel);border:1px solid var(--line);color:var(--hud);white-space:nowrap;pointer-events:none;border-radius:8px;padding:10px 14px;font-size:13px;animation:5s forwards fade-hint;display:block;position:fixed;top:34%;left:50%;transform:translate(-50%)}}@keyframes fade-hint{0%,70%{opacity:1}to{opacity:0;visibility:hidden}}
