:root{--bg:#0b0d12;--panel:#0d0f16b8;--panel-strong:#0d0f16e6;--line:#ffffff17;--text:#f5f3ee;--muted:#a3a8b5;--accent:#ffb21e;--accent-2:#ff6a2a;--cyan:#2ef2ff;--good:#3ddc84;--danger:#ff4d4d;--purple:#b47bff;--radius:12px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}kbd{background:#ffffff14;border:1px solid #ffffff40;border-bottom-width:2px;border-radius:5px;padding:1px 7px;font:600 .78em/1.5 ui-monospace,Cascadia Mono,Consolas,monospace;display:inline-block}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Mono,SF Mono,Consolas,monospace}.muted{color:var(--muted)}.app,.race-screen,.attract{touch-action:none;position:fixed;inset:0}.game-host{background:#000;position:absolute;inset:0}.game-canvas{width:100%;height:100%;display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px)saturate(1.2);box-shadow:0 10px 30px #00000040}.overlay{z-index:20;place-items:center;display:grid;position:fixed;inset:0}.btn{letter-spacing:.02em;border:0;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-weight:800;transition:transform .12s,filter .12s,background .12s;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#1a1206;box-shadow:0 8px 24px #ff8c1e59,inset 0 1px #ffffff73}.btn.primary:hover{filter:brightness(1.07)}.btn.primary kbd{background:#0000001a;border-color:#00000040}.btn.ghost{border:1px solid var(--line);background:#ffffff12}.btn.ghost:hover{background:#ffffff21}.btn.big{text-transform:uppercase;padding:14px 30px 14px 20px;font-size:1.2rem;font-style:italic}.icon-btn{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;place-items:center;width:42px;height:42px;display:grid}.icon-btn svg{width:20px;height:20px;fill:var(--text);stroke:var(--text)}.overlay.flow-overlay{touch-action:pan-y;flex-direction:column;justify-content:safe center;align-items:center;gap:clamp(12px,3vh,28px);padding:72px 16px 24px;display:flex;overflow-y:auto}.landing{flex-direction:column;align-items:center;gap:clamp(20px,5vh,44px);animation:.6s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.landing .logo{width:min(460px,82vw)}.no-intro .landing{animation:none}.start-race{text-transform:uppercase;letter-spacing:.04em;border-radius:16px;padding:20px 56px;font-size:clamp(1.4rem,4vw,2rem);font-style:italic;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{to{opacity:.55}}.bmac-link{color:#ffffffb3;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s,border-color .15s,transform .12s;display:inline-flex}.bmac-link:hover{color:#fd0;background:#ffdd001a;border-color:#ffdd0059;transform:translateY(-1px)}.bmac-icon{font-size:1rem}.menu-footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:4px;display:flex}.footer-text-btn{color:#ffffff8c;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600;transition:color .15s,background .15s}.footer-text-btn:hover{color:#fff;background:#ffffff14}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#05060aa6;padding:16px;animation:.25s both fade;overflow-y:auto}.modal-card{background:var(--panel-strong);border:1px solid var(--line);border-radius:14px;flex-direction:column;width:min(540px,100%);max-height:calc(100dvh - 32px);animation:.35s cubic-bezier(.2,.8,.2,1) both rise;display:flex;box-shadow:0 20px 50px #0009}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-head h2{letter-spacing:-.01em;margin:0;font-size:1.35rem;font-style:italic;font-weight:800}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.1rem;transition:color .15s,background .15s}.modal-close:hover{color:#fff;background:#ffffff1a}.modal-body{color:#ffffffd9;flex-direction:column;gap:18px;padding:20px 24px;font-size:.92rem;line-height:1.55;display:flex;overflow-y:auto}.about-section h3{color:var(--accent);margin:0 0 6px;font-size:1rem;font-weight:700}.about-section p{margin:0 0 8px}.about-section p:last-child{margin-bottom:0}.inline-link{color:#ffd25e;text-underline-offset:3px;text-decoration:underline}.inline-link:hover{color:#fff}.legal-disclaimer{color:var(--muted);background:#ffffff08;border-left:3px solid #fff3;border-radius:8px;padding:10px 14px;font-size:.82rem;line-height:1.45}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;padding:14px 24px 18px;display:flex}.results-bmac{justify-content:center;margin-top:14px;display:flex}.flow-head{z-index:2;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 16px;display:grid;position:fixed;top:0;left:0;right:0}.flow-head .logo{justify-self:center;width:150px}.flow-back{justify-self:start;padding:8px 14px 8px 8px}.landing-logo-wrap{justify-content:center;align-items:center;gap:12px;display:flex;position:relative}.head-logo-wrap{justify-content:center;align-items:center;gap:8px;display:flex}.beta-pill{letter-spacing:.1em;text-transform:uppercase;color:#ff9800;background:#ff980024;border:1px solid #ff980059;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:800;box-shadow:0 0 12px #ff98002e}.beta-pill.mini{letter-spacing:.08em;padding:1px 6px;font-size:.58rem}.portrait-hint{color:#ffe680;background:#ffc8321a;border:1px solid #ffc83247;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:.86rem;font-weight:600;animation:.3s both rise;display:flex}.portrait-hint-icon{font-size:1.1rem}.portrait-hint-dismiss{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.95rem;transition:opacity .12s}.portrait-hint-dismiss:hover{opacity:1}.flow-back svg,.carousel-arrow svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.flow-dots{justify-self:end;gap:6px;margin:0;padding:0;list-style:none;display:flex}.flow-dots li{background:#ffffff38;border-radius:50%;width:8px;height:8px;transition:width .2s,background .2s}.flow-dots li.is-done{background:#ffb21e99}.flow-dots li.is-on{background:var(--accent);border-radius:4px;width:22px}.flow-card,.track-step{animation:.45s cubic-bezier(.2,.8,.2,1) both rise}.flow-card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(460px,100%);padding:clamp(18px,3vh,28px);display:flex}.flow-card h2,.track-step h2{text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:clamp(1.3rem,3.4vw,1.7rem);font-style:italic;font-weight:900}.flow-next,.go-button{text-transform:uppercase;min-width:min(280px,100%);padding:14px 40px;font-size:1.1rem;font-style:italic}.car-preview{border-radius:var(--radius);background:radial-gradient(at 50% 70%,#ffb21e29,#0000 70%);width:100%;height:clamp(150px,26vh,220px)}.car-preview canvas{width:100%;height:100%;display:block}.swatches{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.swatch{border:2px solid #ffffff2e;border-radius:50%;width:38px;height:38px;padding:0;transition:transform .15s,box-shadow .15s}.swatch:hover{transform:scale(1.08)}.swatch.is-on{box-shadow:0 0 0 3px var(--accent);border-color:#fff}.driver-name{width:100%}.name-input{text-align:center;width:100%;font-size:1.2rem;font-weight:800}.driver-step .field-hint{margin:-6px 0 0}.mode-step{width:min(720px,100%)}.mode-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%;display:grid}.mode-tile{border:1px solid var(--line);background:var(--panel-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:22px 12px 18px;transition:transform .15s,border-color .15s,background .15s;display:flex}.mode-tile svg{fill:none;width:44px;height:44px;stroke:var(--accent);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.mode-tile strong{text-transform:uppercase;font-size:1.05rem;font-style:italic;font-weight:900}.mode-tile span{color:#c4c0b8;font-size:.8rem;line-height:1.35}.mode-tile:hover{border-color:#ffb21e99;transform:translateY(-3px)}.mode-tile.is-on{border-color:var(--accent);background:linear-gradient(180deg, #ffb21e2e, var(--panel-strong))}.track-step{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.carousel{width:100%;max-width:1100px;position:relative}.carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;gap:18px;padding:18px calc(50% - min(150px,38vw));display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.carousel-track::-webkit-scrollbar{display:none}.track-slide{scroll-snap-align:center;border:1px solid var(--line);color:var(--text);text-align:left;-webkit-backdrop-filter:blur(14px)brightness(.7);opacity:.55;border-radius:18px;flex-direction:column;flex:0 0 min(300px,76vw);gap:6px;padding:16px;transition:transform .25s,opacity .25s,box-shadow .25s,border-color .25s;display:flex;transform:scale(.9)}.track-slide.is-on{opacity:1;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 18px 40px #00000073;transform:none}.slide-map{width:100%;height:clamp(110px,20vh,160px);display:block}.slide-name{font-size:1.3rem;font-style:italic;font-weight:900}.slide-tagline{color:#e0dcd4;min-height:2.7em;font-size:.82rem;line-height:1.35}.slide-records{font-variant-numeric:tabular-nums;background:#00000052;border-radius:12px;flex-direction:column;gap:3px;min-height:92px;margin-top:4px;padding:10px 12px;font-size:.85rem;display:flex}.slide-records-title{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.66rem;font-weight:800}.slide-records-empty{color:var(--muted)}.slide-record{grid-template-columns:1.4em 1fr auto;gap:8px;display:grid}.carousel-arrow{z-index:2;border:1px solid var(--line);background:var(--panel-strong);width:46px;height:46px;color:var(--text);border-radius:50%;place-items:center;margin-top:-23px;display:grid;position:absolute;top:50%}.carousel-arrow.is-prev{left:max(4px,50% - 230px)}.carousel-arrow.is-next{right:max(4px,50% - 230px)}.carousel-arrow:hover{border-color:var(--accent)}.settings-step{width:min(560px,100%)}.settings-summary{color:#d8d4cb;align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.settings-summary .chip{border-radius:50%;width:14px;height:14px}.settings-grid{text-align:left;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;width:100%;display:grid}.go-button{padding:16px 48px;font-size:1.3rem}@media (width<=760px){.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-head .logo{width:110px}.carousel-arrow{display:none}}@media (height<=760px){.overlay.flow-overlay{gap:10px;padding:58px 12px 10px}.flow-head{padding:8px 12px}.flow-card{gap:10px;padding:14px 16px}.car-preview{height:clamp(92px,21dvh,200px)}.swatch{width:34px;height:34px}.flow-next,.go-button{padding:12px 32px}.track-step{gap:8px}.carousel-track{padding-top:10px;padding-bottom:10px}.slide-map{height:clamp(72px,15dvh,140px)}.slide-records{min-height:0}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.menu-footer{margin-top:0}.menu-footer .bmac-link,.menu-footer .footer-text-btn{padding:4px 10px;font-size:.78rem}}@media (pointer:coarse) and (height<=760px){.settings-step .controls-hint{display:none}}@media (height<=520px) and (orientation:landscape){.overlay.flow-overlay{gap:8px;padding:48px 12px 8px}.flow-head{padding:6px 12px}.flow-card{gap:8px;padding:12px 16px}.flow-card h2,.track-step h2{font-size:1.1rem}.driver-step{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px 18px;width:min(760px,100%);display:grid}.driver-step>*{grid-column:2}.driver-step .car-preview{grid-area:1/1/span 6;height:100%;min-height:150px}.driver-step .field-hint{display:none}.mode-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mode-tile{padding:12px 8px}.mode-tile svg{width:30px;height:30px}.mode-tile span{display:none}.track-step{gap:6px}.carousel-track{padding-top:6px;padding-bottom:6px}.track-slide{gap:4px;padding:10px 12px}.slide-map{height:70px}.slide-tagline,.slide-records{display:none}.settings-step{width:min(760px,100%)}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-step .controls-hint,.settings-step .portrait-hint,.menu-footer{display:none}}.attract:after{content:"";pointer-events:none;background:radial-gradient(#06070c14 0%,#06070c59 55%,#06070cc7 100%);position:absolute;inset:0}.menu-overlay{touch-action:pan-y;place-items:stretch stretch;overflow-y:auto}.menu{flex-direction:column;gap:clamp(14px,2.4vh,22px);width:min(720px,100%);padding:clamp(18px,4vh,44px) clamp(16px,4vw,48px);animation:.6s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.logo{filter:drop-shadow(0 6px 18px #00000080);width:min(420px,100%);height:auto;display:block}.logo text{font-family:system-ui,Segoe UI,sans-serif}.logo-car{animation:3.2s cubic-bezier(.45,0,.2,1) infinite zoom}.tagline{color:#d8d4cb;letter-spacing:.02em;margin:6px 0 0;font-weight:600}.menu-tracks{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.track-card{text-align:left;width:100%;color:var(--text);font:inherit;border-radius:var(--radius);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 10px 12px;transition:transform .15s,border-color .15s,box-shadow .15s;display:block;position:relative;overflow:hidden}button.track-card:hover{border-color:#ffffff4d;transform:translateY(-2px)}.track-card.is-on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 8px 24px #ffb21e40}.track-card.is-static{opacity:.82}.track-card.theme-canyon,.track-slide.theme-canyon{background:linear-gradient(160deg,#de965a6b,#3c1c10bf)}.track-card.theme-forest,.track-slide.theme-forest{background:linear-gradient(160deg,#64aa5a6b,#122818c7)}.track-card.theme-docks,.track-slide.theme-docks{background:linear-gradient(160deg,#783cdc73,#0a0e28d1)}.track-card.theme-alpine,.track-slide.theme-alpine{background:linear-gradient(160deg,#bedcf56b,#1e3046cc)}.track-card.theme-dusk,.track-slide.theme-dusk{background:linear-gradient(160deg,#ff965a6b,#3c183ccc)}.track-card.theme-harbor,.track-slide.theme-harbor{background:linear-gradient(160deg,#5aaae66b,#10243ccc)}.track-card.theme-aurora,.track-slide.theme-aurora{background:linear-gradient(160deg,#3ce6aa61,#081028d9)}.track-card.theme-beach,.track-slide.theme-beach{background:linear-gradient(160deg,#fadc9673,#145a82cc)}.track-card.theme-suburb,.track-slide.theme-suburb{background:linear-gradient(160deg,#96c8786b,#283246cc)}.track-card.theme-city,.track-slide.theme-city{background:linear-gradient(160deg,#ff5aa06b,#080a24db)}.track-card .round{color:var(--accent);font:italic 900 .8rem system-ui;position:absolute;top:8px;left:10px}.track-svg{width:100%;height:74px;margin:4px 0 8px;display:block}.track-meta{flex-direction:column;display:flex}.track-meta .track-name{margin:0;font-size:.95rem;font-weight:800}.track-meta .track-tagline{color:#d0ccc4;margin:3px 0 6px;font-size:.76rem;line-height:1.3}.track-meta .laps{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:800}.menu-options{flex-direction:column;gap:14px;padding:12px 16px;display:flex}.menu-options summary{cursor:pointer;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:800}.menu-options[open] summary{margin-bottom:14px}.menu-driver{grid-template-columns:minmax(180px,1fr) auto;align-items:start;gap:16px;padding:16px;display:grid}.driver-name .text-input{font-size:1.1rem;font-weight:700}.text-input.is-invalid{border-color:var(--danger)}.field-hint{color:var(--muted);font-size:.75rem}.field-hint.is-error{color:var(--danger);font-weight:700}.menu-modes{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.mode-card{text-align:left;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:4px;padding:12px;transition:border-color .15s,background .15s;display:flex}.mode-card strong{font-size:.95rem;font-weight:800}.mode-card span{color:#c4c0b8;font-size:.76rem;line-height:1.35}.mode-card:hover{border-color:#ffffff4d}.mode-card.is-on{border-color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent);background:#ffb21e24}.mode-card.mode-online{border-style:dashed}.menu-track-picker{flex-direction:column;gap:8px;display:flex}.menu-track-picker h2{margin:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.seo-static{color:#d8d4cb;max-width:680px;margin:0 auto;padding:32px 24px;line-height:1.55}.seo-static h1,.seo-static a{color:var(--accent)}.hud-recent{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;gap:4px 10px;margin:2px 0 0;padding:0;font-size:.75rem;list-style:none;display:flex}.hud-recent .best,.lap-list .best{color:var(--purple);font-weight:800}.lap-list{columns:3 120px;margin:0;padding-left:2.2em;font-size:.95rem;line-height:1.7}.solo-results{width:min(620px,100vw - 24px)}.leaderboard{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.leaderboard h3{margin:0}.leaderboard-note{margin:0;font-size:.85rem}.leaderboard-list{font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.leaderboard-list li{border-radius:6px;grid-template-columns:2.2em 1fr auto 5.5em;align-items:baseline;gap:8px;padding:4px 6px;display:grid}.leaderboard-list li:nth-child(odd){background:#ffffff0a}.leaderboard-list li.is-player{box-shadow:inset 2px 0 0 var(--accent);background:#ffb21e29}.lb-rank{color:var(--accent);font-style:italic;font-weight:900}.lb-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.lb-meta{color:var(--muted);font-size:.72rem}.lb-time{text-align:right}.solo-results .leaderboard{background:#00000040;margin-top:12px}.btn.small{align-self:flex-start;padding:6px 12px;font-size:.82rem}.end-session{height:44px;padding:0 14px}.option{flex-direction:column;gap:7px;display:flex}.option-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;display:grid}.option-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:800}.paints{flex-wrap:wrap;gap:8px;display:flex}.paint{border:1px solid var(--line);background:#ffffff0a;border-radius:10px;padding:6px 8px;transition:transform .15s,border-color .15s,background .15s}.paint:hover{transform:translateY(-2px)}.paint.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:#ffb21e24}.segmented{border:1px solid var(--line);background:#00000059;border-radius:10px;padding:3px;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1;padding:7px 8px;font-size:.85rem;font-weight:700}.segmented button.is-on{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent);background:#ffffff24}.menu-start{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.controls-hint{color:#c4c0b8;margin:0;font-size:.82rem;line-height:1.7}.hud{pointer-events:none;z-index:5;font-variant-numeric:tabular-nums;position:absolute;inset:0}.hud .label{letter-spacing:.14em;color:var(--muted);font-size:.64rem;font-weight:800}.hud-top-left{grid-template-columns:auto auto;align-items:stretch;gap:8px;display:grid;position:absolute;top:14px;left:14px}.hud-position{align-items:baseline;padding:4px 14px 6px;font-style:italic;display:flex}.pos-num{background:linear-gradient(#fff,#ffd38a);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:3rem;font-weight:900;line-height:1}.pos-suffix{color:var(--accent);margin-left:2px;font-size:1rem;font-weight:900}.pos-total{color:var(--muted);margin-left:6px;font-weight:700}.hud-lap{flex-direction:column;justify-content:center;padding:6px 14px;display:flex}.hud-lap .value{font-size:1.7rem;font-style:italic;font-weight:900;line-height:1.05}.hud-lap small{color:var(--muted);font-size:.95rem}.hud-tower{grid-column:1/-1;min-width:230px;margin:0;padding:6px;list-style:none}.hud-tower li{border-radius:7px;grid-template-columns:18px 6px 1fr auto;align-items:center;gap:8px;padding:5px 8px;font-size:.85rem;font-weight:650;transition:background .2s;display:grid}.hud-tower li.is-player{box-shadow:inset 2px 0 0 var(--accent);background:#ffb21e29}.tower-pos{color:var(--muted);font-style:italic;font-weight:900}.tower-chip{border-radius:2px;width:6px;height:18px}.tower-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tower-gap{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:.75rem}.tower-gap.is-off{color:var(--danger);font-weight:800}.hud-top-right{flex-direction:column;gap:8px;width:230px;display:flex;position:absolute;top:14px;right:14px}.hud-map{padding:8px 10px 10px}.map-head{justify-content:space-between;margin-bottom:4px;font-size:.72rem;font-weight:800;display:flex}.map-svg{width:100%;height:120px;display:block}.map-dot circle{fill:var(--dot,#fff);stroke:#111;stroke-width:.5px;transition:r .2s}.map-dot.is-player circle{r:2.4;stroke:#fff;stroke-width:.7px}.hud-times{grid-template-columns:1.3fr 1fr 1fr;gap:6px;padding:8px 12px;display:grid}.hud-times>div{flex-direction:column;display:flex}.hud-times .value{font-size:1.05rem;font-weight:800}.hud-times .value.small{margin-top:3px;font-size:.82rem}.hud-times .best{color:var(--purple)}.hud-lights{border:1px solid var(--line);background:#08090cd9;border-radius:16px;gap:14px;padding:14px 18px;display:flex;position:absolute;top:18%;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #00000073}.light{background:radial-gradient(circle at 35% 30%,#3b1414,#1c0808);border-radius:50%;width:34px;height:34px;transition:background 80ms,box-shadow 80ms;box-shadow:inset 0 0 6px #000c}.light.is-on{background:radial-gradient(circle at 35% 30%,#ffb3a6,#ff2a1a 55%,#a80d05);box-shadow:0 0 22px #ff321ee6,0 0 50px #ff281480}.hud-go{color:var(--good);text-shadow:0 0 30px #3ddc84b3,0 6px #00000059;font:italic 900 clamp(3rem,9vw,6rem) system-ui;animation:1s ease-out both go;position:absolute;top:16%;left:50%;transform:translate(-50%)}.hud-hint{border:1px solid var(--line);white-space:nowrap;background:#08090cb8;border-radius:999px;padding:9px 16px;font-size:.85rem;position:absolute;bottom:22%;left:50%;transform:translate(-50%)}.hud-meters{position:absolute;bottom:14px;left:14px}.meter-panel{grid-template-rows:auto auto;grid-template-columns:auto 180px;align-items:center;gap:6px 14px;padding:10px 14px;display:grid}.speed{flex-direction:column;grid-row:1/span 3;align-items:flex-start;display:flex}.speed .value{min-width:3ch;font-size:2.1rem;font-style:italic;font-weight:900;line-height:1}.meter{flex-direction:column;gap:4px;display:flex}.bar{background:#ffffff1a;border-radius:4px;height:8px;position:relative;overflow:hidden}.bar .fill{transform-origin:0;background:linear-gradient(90deg,#3ddc84,#a8f04a);border-radius:4px;transition:transform 60ms linear;position:absolute;inset:0}.bar .fill.throttle{background:linear-gradient(90deg,#ffb21e,#ff6a2a)}.bar.load .fill{background:linear-gradient(90deg,#3ddc84,#3ddc84)}.bar.load.is-edge .fill{background:linear-gradient(90deg,#3ddc84,#ffd23f)}.bar.load.is-warn .fill{background:linear-gradient(90deg,#ffd23f,#ff8a1e)}.bar.load.is-danger .fill{background:linear-gradient(90deg,#ff8a1e,#ff3030);animation:.25s ease-in-out infinite alternate pulse}.bar.slide .fill{background:linear-gradient(90deg,#ffd23f,#ff3030)}.bar.slide.is-danger .fill{animation:.2s ease-in-out infinite alternate pulse}.bar .limit{background:#ffffffbf;width:2px;position:absolute;top:-2px;bottom:-2px}.race-controls{z-index:6;gap:8px;display:flex;position:absolute;bottom:14px;right:14px}.toasts{pointer-events:none;z-index:7;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:30%;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);background:#08090cc7;border-radius:10px;flex-direction:column;align-items:center;padding:8px 22px;animation:1.7s both toast;display:flex}.toast strong{letter-spacing:.04em;font:italic 900 1.35rem system-ui}.toast span{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.toast-best strong{color:var(--purple)}.toast-final strong{color:var(--accent)}.toast-deslot strong{color:var(--danger)}.toast-finish strong{color:var(--good);font-size:2rem}.touch-throttle{z-index:4;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;position:absolute;inset:0}.touch-pedal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;transform-origin:50% 100%;background:linear-gradient(#ffffff1f,#ffffff08);border:2px solid #ffffff38;border-radius:18px 18px 26px 26px;flex-direction:column;justify-content:flex-end;align-items:center;width:84px;height:116px;padding-bottom:12px;transition:transform 80ms,background 80ms,border-color 80ms,box-shadow 80ms;display:flex;position:absolute;bottom:74px;right:18px}.touch-pedal-ribs{background:repeating-linear-gradient(#ffffff59 0 4px,#0000 4px 11px);border-radius:4px;flex:1;width:54%;margin:14px 0 10px}.touch-throttle.is-active .touch-pedal{background:linear-gradient(#ffb21e8c,#ff6a2a4d);border-color:#ffb21ed9;transform:perspective(300px)rotateX(18deg)scale(.96);box-shadow:0 0 28px #ff8c1e73}.touch-label{letter-spacing:.1em;color:#ffffffd9;white-space:nowrap;font-size:.62rem;font-weight:900}.pause-overlay,.results-overlay,.final-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05060a73;animation:.3s both fade}.pause-card{background:var(--panel-strong);flex-direction:column;gap:10px;min-width:260px;padding:24px;display:flex}.pause-card h2{margin:0 0 6px;font-style:italic;font-weight:900}.results-overlay{grid-template-columns:minmax(0,1fr)}.results-card{background:var(--panel-strong);width:min(920px,100% - 24px);min-width:0;max-width:calc(100% - 24px);max-height:calc(100vh - 24px);padding:clamp(16px,3vw,28px);animation:.45s cubic-bezier(.2,.8,.2,1) both rise;overflow:auto}.results-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:800}.results-head h2{margin:4px 0 0;font:italic 900 clamp(1.6rem,4vw,2.4rem) system-ui}.points-badge{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#1a1206;border-radius:10px;padding:8px 14px;font:italic 900 1.2rem system-ui}.points-badge.is-champion{background:linear-gradient(135deg,#ffd25e,#c98a14);box-shadow:0 4px 18px #ffb40040}.results-head-subtitle{color:var(--muted);margin:4px 0 0;font-size:.95rem;font-weight:500}.results-podium{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:12px;margin:6px 0 16px;display:flex}.podium-card{border:1px solid var(--line);background:#ffffff0a;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:120px;padding:10px 18px;animation:.4s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.podium-card.place-1{background:linear-gradient(#ffc8322e,#ffb21e0d);border-color:#ffc8328c;transform:translateY(-4px);box-shadow:0 4px 18px #ffb40026}.podium-card.place-2{background:linear-gradient(#d2dceb1f,#d2dceb0a);border-color:#d2dceb59}.podium-card.place-3{background:linear-gradient(#cd8c501f,#cd8c500a);border-color:#cd8c5059}.podium-card.is-player{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.podium-rank{letter-spacing:.05em;text-transform:uppercase;font-size:.8rem;font-weight:800}.podium-card.place-1 .podium-rank{color:#ffd25e}.results-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;display:grid}.final-results-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr)}.results-grid>section{min-width:0;overflow-x:auto}.results-grid h3{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.72rem;font-weight:800}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:.66rem;font-weight:800}.table td{border-bottom:1px solid #ffffff0d;padding:8px}.table tr.is-player td{background:#ffb21e1f}.table tr.is-player td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.table tr.is-champion-row td{background:#ffc83217}.table tr.is-champion-row td:first-child{box-shadow:inset 3px 0 #ffd25e}.table tr.is-player.is-champion-row td{background:#ffbe2829}.table tr.is-player.is-champion-row td:first-child{box-shadow:inset 4px 0 #ffd25e}.champion-tag{color:#2a1a02;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;background:linear-gradient(135deg,#ffd25e,#c98a14);border-radius:4px;margin-left:6px;padding:1px 6px;font-size:.62rem;font-weight:900;display:inline-block}.table .num{text-align:right}.table .pos{width:34px;font:italic 900 1.1rem system-ui}.table .strong{font-weight:900}.table .best{color:var(--purple)}.table .tag{background:var(--purple);color:#160b26;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:.6rem;font-weight:900}.driver{align-items:center;gap:8px;font-weight:700;display:inline-flex}.chip{border-radius:2px;width:8px;height:18px}.results-trail{color:var(--muted);font-size:.75rem}.results-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.results-actions.center{justify-content:center}.results-actions .retry-action{margin-right:auto}.final-card{text-align:center;width:min(720px,100vw);padding:24px;animation:.6s cubic-bezier(.2,.8,.2,1) both rise}.final-title{background:linear-gradient(#fff 20%,#ffc65a);color:#0000;filter:drop-shadow(0 6px 20px #00000080);-webkit-background-clip:text;background-clip:text;margin:6px 0;font:italic 900 clamp(2.6rem,8vw,4.6rem) system-ui}.podium{justify-content:center;align-items:flex-end;gap:12px;margin:26px 0 8px;display:flex}.podium-step{flex-direction:column;align-items:center;gap:4px;width:150px;animation:.6s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.podium-step.place-1{animation-delay:.3s}.podium-step.place-2{animation-delay:.15s}.podium-name{font-weight:800}.podium-pts{color:var(--muted);font-size:.8rem}.podium-block{border:1px solid var(--line);background:linear-gradient(#fff3,#ffffff0d);border-radius:10px 10px 0 0;place-items:center;width:100%;margin-top:6px;font:italic 900 2rem system-ui;display:grid}.podium-step.place-1 .podium-block{color:#2a1a02;background:linear-gradient(#ffd25e,#c98a14)}.podium-step.is-player .podium-name{color:var(--accent)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}@keyframes go{0%{opacity:0;transform:translate(-50%)scale(1.6)}20%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(.95)}}@keyframes toast{0%{opacity:0;transform:translateY(10px)scale(.96)}12%{opacity:1;transform:none}80%{opacity:1}to{opacity:0;transform:translateY(-8px)}}@keyframes zoom{0%{transform:translate(-370px)}55%,to{transform:translate(80px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=900px){.results-grid{grid-template-columns:1fr}}@media (width<=760px),(height<=520px){.attract:after{background:radial-gradient(#06070c33 0%,#06070ccc 100%)}.menu-tracks{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.track-meta .track-tagline{display:none}.menu-driver{grid-template-columns:1fr;gap:12px}.menu-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mode-card{padding:10px}.end-session{height:38px}.track-svg{height:56px}.hud-top-left{gap:6px;top:8px;left:8px}.hud-tower{min-width:0;font-size:.8rem}.hud-tower li{grid-template-columns:14px 5px 1fr;padding:3px 6px}.tower-gap{display:none}.pos-num{font-size:2.2rem}.hud-top-right{width:150px;top:8px;right:8px}.map-svg{height:80px}.hud-times{grid-template-columns:1fr;gap:2px}.hud-times>div:not(:first-child){flex-direction:row;justify-content:space-between}.hud-meters{bottom:8px;left:8px}.meter-panel{grid-template-columns:auto 92px;column-gap:10px;padding:8px 10px}.speed .value{font-size:1.6rem}.race-controls{gap:6px;bottom:8px;right:8px}.icon-btn{width:38px;height:38px}.map-head .muted{display:none}.hud-meters.is-touch{bottom:60px}.table{font-size:.8rem}.table .driver svg{display:none}}@media (height<=520px){.hud-tower{display:none}.hud-top-right{width:200px}.map-svg{height:52px}.hud-times{grid-template-columns:1.3fr 1fr 1fr;gap:4px;padding:6px 10px}.hud-times>div:not(:first-child){flex-direction:column;justify-content:flex-start}.hud-times .value{font-size:.9rem}.hud-times .value.small{font-size:.75rem}.hud-meters.is-touch{bottom:8px}.hud-lights{gap:10px;padding:10px 14px;top:12%}.light{width:26px;height:26px}.touch-pedal{right:max(12px, env(safe-area-inset-right));bottom:calc(56px + env(safe-area-inset-bottom));width:72px;height:84px}.hud-top-left,.hud-meters{left:max(8px, env(safe-area-inset-left))}.hud-top-right,.race-controls{right:max(8px, env(safe-area-inset-right))}.hud-meters,.race-controls{bottom:max(8px, env(safe-area-inset-bottom))}}.multiplayer-overlay{z-index:12}.multiplayer-panel,.waiting-card,.multiplayer-card{background:var(--panel-strong);flex-direction:column;gap:18px;width:min(560px,100vw - 28px);padding:clamp(18px,3vw,28px);animation:.4s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.server-notice{color:var(--muted);background:#ffffff08;border-left:3px solid #ff9800;border-radius:4px;margin:-6px 0 2px;padding:8px 12px;font-size:.85rem;line-height:1.4}.invite-overlay{background:#05060a73;padding:16px;overflow-y:auto}.invite-panel{border-radius:8px;width:min(400px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.invite-panel h2{margin:0;font:italic 900 1.6rem system-ui}.multiplayer-head{align-items:center;gap:18px;display:flex}.multiplayer-head>div{flex:1}.multiplayer-head h1,.waiting-card h2{margin:4px 0 0;font:italic 900 1.8rem system-ui}.text-input{border:1px solid var(--line);width:100%;min-width:0;color:var(--text);-webkit-user-select:text;user-select:text;background:#00000061;border-radius:9px;padding:11px 12px;font:600 1rem ui-monospace,Cascadia Mono,Consolas,monospace}.text-input:focus{outline-offset:1px;outline:2px solid #ffb21eb8}.multiplayer-actions,.invite-copy{gap:10px;display:flex}.multiplayer-actions>*{flex:1}.multiplayer-note,.online-error{color:var(--muted);margin:0;font-size:.84rem;line-height:1.5}.online-error{color:#ff887d}.online-waiting{z-index:5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#05060a3d;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.waiting-card{width:min(440px,100vw - 28px)}.waiting-card .muted{margin:0;line-height:1.55}.wait-countdown{flex-direction:column;gap:8px;display:flex}.wait-countdown p{margin:0}.wait-countdown strong{color:var(--accent);font-variant-numeric:tabular-nums;font:italic 900 1.25rem system-ui}.wait-countdown .fill{background:linear-gradient(90deg,#ffb21e,#ff6a2a);transition:transform .25s linear}.waiting-drivers{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.waiting-drivers li{background:#ffffff0d;border-radius:8px;grid-template-columns:38px 1fr 10px;align-items:center;gap:10px;padding:8px 10px;font-weight:700;display:grid}.waiting-lane{color:var(--accent);font:italic 900 .82rem system-ui}.connected-dot{background:var(--good);border-radius:50%;width:8px;height:8px;box-shadow:0 0 9px #3ddc8499}.invite-copy .text-input{font-size:.72rem}.online-hud{z-index:5;pointer-events:none;position:absolute;inset:0}.online-status{justify-content:space-between;align-items:center;gap:8px;width:230px;padding:10px 12px;display:flex;position:absolute;top:14px;right:14px}.online-status>div{flex-direction:column;gap:4px;display:flex}.online-status strong{font-size:.88rem}.online-actions{gap:5px;display:flex}.online-status .icon-btn{pointer-events:auto}.online-tower{width:230px;margin:0;padding:6px;list-style:none;position:absolute;top:92px;right:14px}.online-tower li{grid-template-columns:18px 6px 1fr auto;align-items:center;gap:8px;padding:6px 7px;font-size:.82rem;display:grid}.online-tower .tower-gap{font-size:.64rem}.online-controls{white-space:nowrap;padding:9px 14px;font-size:.8rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.online-result{background:var(--panel-strong);pointer-events:none;flex-direction:column;align-items:center;gap:4px;padding:12px 22px;display:flex;position:absolute;top:34%;left:50%;transform:translate(-50%)}.online-result strong{color:var(--accent);font:italic 900 1.7rem system-ui}.online-result span{color:var(--muted);font-size:.8rem}@media (width<=760px){.multiplayer-actions{flex-direction:column}.multiplayer-head h1,.waiting-card h2{font-size:1.5rem}.online-status{width:170px;padding:7px 8px;top:8px;right:8px}.online-tower{width:170px;top:78px;right:8px}.online-tower li{grid-template-columns:14px 5px 1fr;gap:6px;padding:4px 5px}.online-tower .tower-gap{display:none}.online-controls{white-space:normal;line-height:1.6;bottom:10px;left:8px;right:108px;transform:none}}.admin-page-container{background:var(--bg);min-height:100vh;color:var(--text);box-sizing:border-box;flex-direction:column;gap:18px;padding:clamp(14px,3vw,28px);display:flex;overflow-y:auto}.admin-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding-bottom:14px;display:flex}.admin-header-title{align-items:center;gap:12px;display:flex}.admin-header-title h1{letter-spacing:-.02em;margin:0;font:italic 900 1.6rem system-ui}.admin-badge{color:#fff;letter-spacing:.08em;text-transform:uppercase;background:#d32f2f;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:900;display:inline-block}.admin-header-actions{gap:10px;display:flex}.admin-alert{border-radius:8px;padding:10px 16px;font-size:.9rem;font-weight:600;animation:.25s both rise}.admin-alert.error{color:#ff8080;background:#dc323226;border:1px solid #dc323266}.admin-alert.success{color:#80ffaa;background:#32c86426;border:1px solid #32c86466}.admin-login-card{text-align:center;flex-direction:column;gap:16px;max-width:440px;margin:40px auto;padding:28px;display:flex}.admin-login-form{flex-direction:column;gap:16px;display:flex}.admin-main{flex-direction:column;gap:16px;width:100%;max-width:1200px;margin:0 auto;display:flex}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:flex}.admin-filter-group{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.filter-label{text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:.72rem;font-weight:800;display:block}.admin-select{border:1px solid var(--line);color:#fff;background:#0006;border-radius:8px;padding:8px 12px;font-size:.9rem;font-weight:600}.admin-search{min-width:200px}.admin-stats{color:var(--muted);font-size:.85rem}.admin-stats strong{color:var(--accent)}.admin-table-wrap{padding:0;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:#0003;padding:10px 14px;font-size:.68rem;font-weight:800}.admin-table td{vertical-align:middle;border-bottom:1px solid #ffffff0d;padding:10px 14px}.admin-table tr:hover td{background:#ffffff05}.admin-table .num{text-align:right}.admin-track-name{color:#e0deda;font-weight:700}.admin-driver-name{color:var(--accent);font-weight:800}.admin-mode-pill{text-transform:uppercase;color:#bbb;background:#ffffff14;border-radius:4px;padding:2px 7px;font-size:.7rem;font-weight:800;display:inline-block}.admin-mode-pill.time-attack{color:#d8b4fe;background:#b464ff2e}.admin-mode-pill.multiplayer{color:#7dd3fc;background:#32b4ff2e}.admin-mode-pill.single{color:#fde047;background:#ffb4322e}.actions-col{text-align:right;white-space:nowrap}.admin-btn-action{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;margin-left:6px;padding:4px 10px;font-size:.78rem;font-weight:700;transition:all .15s}.admin-btn-action.delete-lap{color:#f99;background:#ff646414;border-color:#ff646440}.admin-btn-action.delete-lap:hover{background:#ff646440;border-color:#ff646480}.admin-btn-action.purge-driver{color:#fff;background:#dc3232b3;border-color:#d32f2f}.admin-btn-action.purge-driver:hover{background:#d32f2f}.admin-empty{text-align:center;padding:30px}.consent-bar{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));z-index:40;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:min(420px,100vw - 24px);color:var(--muted);flex-direction:column;gap:8px;padding:10px 12px;font-size:.8rem;line-height:1.35;display:flex;position:fixed}.consent-bar p{margin:0}.consent-actions{justify-content:flex-end;gap:8px;display:flex}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}
