*{margin:0;padding:0;box-sizing:border-box}:root{--bg-navy: #0d0d1a;--accent-orange: #ff6600;--accent-yellow: #ffd700;--accent-blue: #3498db;--text-muted: #888;--border: #444;--safe-top: 0px;--safe-top: constant(safe-area-inset-top);--safe-top: env(safe-area-inset-top, 0px);--safe-right: 0px;--safe-right: constant(safe-area-inset-right);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: 0px;--safe-bottom: constant(safe-area-inset-bottom);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: 0px;--safe-left: constant(safe-area-inset-left);--safe-left: env(safe-area-inset-left, 0px)}html{height:100%;height:-webkit-fill-available}body{background:var(--bg-navy);color:#eee;font-family:"Press Start 2P",monospace;overflow:hidden;height:100%;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh}body.hide-cursor,body.hide-cursor *{cursor:none!important}@media(max-width:767px),(pointer:coarse){html,body,#app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,.input-field{-webkit-user-select:text;user-select:text}button,.btn,.menu-item,.track-card,.touch-steer-btn,.touch-reverse-zone{-webkit-tap-highlight-color:transparent}#race-viewport,#game-container,#game-container canvas{touch-action:none}}#app{position:relative;display:flex;flex-direction:column;width:100vw;height:100%;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh;overflow:hidden;background:#12121f}#race-viewport{flex:1;min-height:0;position:relative;overflow:hidden;border-top:3px solid #444;border-bottom:3px solid #444;box-shadow:inset 0 0 40px #00000073}#game-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:1}.race-chrome{flex-shrink:0;z-index:10;pointer-events:none}.race-chrome>*{pointer-events:auto}#race-top-bar{position:relative;height:52px;display:flex;align-items:center;padding:0 260px 0 12px;background:#0a0a14;border-bottom:3px solid #333}#race-info-banner{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 16px 14px;pointer-events:none;text-align:center;background:linear-gradient(180deg,#0a0a14d1,#0a0a1473 55%,#0a0a1400)}#race-track-name{font-size:10px;color:#f39c12;letter-spacing:1px;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.85)}#race-level-center{font-size:9px;color:#5dade2;letter-spacing:2px;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.85)}#race-viewport:has(#rear-mirror-frame:not(.hidden)) #race-info-banner{align-items:flex-start;text-align:left;padding-right:min(36vw,240px)}#race-bottom-bar{height:72px;display:flex;align-items:center;justify-content:center;background:#0a0a14;border-top:3px solid #333}#game-container canvas,#game-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.rear-mirror-frame{position:absolute;top:10px;left:50%;transform:translate(-50%);width:min(30vw,220px);aspect-ratio:100 / 35;border:3px solid #2a2a3a;border-radius:8px;box-shadow:inset 0 0 14px #000000a6,0 3px 8px #00000073;pointer-events:none;z-index:2;background:transparent}.respawn-notice{position:absolute;bottom:9%;left:50%;transform:translate(-50%) translateY(6px);padding:10px 16px;border:2px solid #f0a04b;border-radius:10px;background:#12101ae6;color:#f7d9a8;font-family:"Press Start 2P",monospace;font-size:11px;letter-spacing:.5px;pointer-events:none;z-index:6;opacity:0;transition:opacity .14s ease,transform .14s ease}.respawn-notice.visible{opacity:1;transform:translate(-50%) translateY(0)}.rear-mirror-frame:before{content:"";position:absolute;inset:-8px -10px auto -10px;height:8px;background:linear-gradient(180deg,#1a1a2a,#12121f);border-radius:6px 6px 0 0;box-shadow:0 2px 4px #00000059}#ui-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}#ui-overlay>*{pointer-events:auto}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a0a14d9;gap:20px;padding:20px}.screen h1{font-size:28px;color:var(--accent-yellow);text-shadow:3px 3px 0 var(--accent-orange);text-align:center;line-height:1.6}.screen h2{font-size:14px;color:#3498db;margin-bottom:8px}.btn{font-family:inherit;font-size:12px;padding:14px 24px;background:#2c3e50;color:#ecf0f1;border:3px solid #34495e;cursor:pointer;transition:background .15s,transform .1s;min-width:260px;text-align:center}.btn:active{transform:scale(.97)}.btn.post-race-btn-pending{opacity:0;pointer-events:none}.btn.post-race-btn-reveal{animation:post-race-btn-in .14s ease forwards}@keyframes post-race-btn-in{0%{opacity:0}to{opacity:1}}.btn-primary{background:#c0392b;border-color:#e74c3c}.btn-label{display:block}.btn-subtitle{display:block;margin-top:4px;font-size:9px;color:#f5b7b1;letter-spacing:1px}.input-field{font-family:inherit;font-size:12px;padding:12px 16px;background:#1a1a2e;color:#ecf0f1;border:3px solid #34495e;width:260px;text-align:center}.input-field:focus{outline:none}button:focus-visible,.menu-item:focus-visible,.track-card:focus-visible,.lap-option:focus-visible,.record-tile:focus-visible,.top-btn:focus-visible{outline:3px solid #f0a04b;outline-offset:2px}.track-grid{display:flex;flex-wrap:nowrap;gap:12px;justify-content:flex-start;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:4px max(8px,calc(50% - 84px)) 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.track-grid::-webkit-scrollbar{height:6px}.track-grid::-webkit-scrollbar-thumb{background:var(--border)}.track-card{background:#2c3e50;border:3px solid #34495e;padding:12px;cursor:pointer;flex:0 0 auto;width:168px;text-align:center;scroll-snap-align:center;transition:border-color .15s}.track-card.selected{border-color:#f39c12}.track-card canvas{width:128px;height:96px;image-rendering:pixelated;margin-bottom:8px}.track-card span{font-size:10px}.lap-select-label{margin:16px 0 8px;font-size:12px;text-align:center}.lap-options{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.lap-option{font-family:inherit;font-size:12px;color:#ecf0f1;background:#2c3e50;border:3px solid #34495e;padding:10px 18px;cursor:pointer;transition:border-color .15s}.lap-option.selected{border-color:#f39c12}.track-config-section{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:8px;scroll-margin-top:12px}.track-start-btn{width:100%;max-width:320px;font-size:14px;padding:18px 28px;margin-top:12px}.lobby-copy-link{width:100%;max-width:320px;margin:0 auto 12px}.challenge-highscores{width:100%;max-width:360px;margin:8px auto 16px}.challenge-score-table{max-height:240px;overflow-y:auto}.challenge-remove-btn{margin-top:8px;opacity:.65;font-size:11px;letter-spacing:.06em}.challenge-remove-btn:hover,.challenge-remove-btn:focus-visible{opacity:1}.lobby-settings{display:flex;flex-direction:column;align-items:center;gap:4px;margin:12px 0 16px;padding:12px 0;border-top:2px solid rgba(255,255,255,.08);border-bottom:2px solid rgba(255,255,255,.08)}.lobby-settings-note{margin:0 0 8px;font-size:9px;letter-spacing:.08em;color:var(--text-muted);text-align:center}.lobby-settings--readonly .lap-select-label{color:var(--text-muted)}.lobby-settings--readonly .lap-option{opacity:.45;cursor:not-allowed;color:var(--text-muted);background:#1a2530;border-color:#2a3642;pointer-events:none}.lobby-settings--readonly .lap-option.selected{opacity:.55;border-color:#5a4a2a;color:#95a5a6;box-shadow:none}.lobby-settings .lap-option:disabled{opacity:.45;cursor:not-allowed}.lobby-info{font-size:10px;line-height:2;text-align:center}.lobby-code-row{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 12px}.lobby-code{font-size:28px;letter-spacing:.35em;font-weight:700;padding-left:.35em}.player-list{list-style:none;font-size:10px;line-height:2}.player-list li{display:flex;align-items:center;gap:8px;justify-content:center}.color-dot{width:12px;height:12px;display:inline-block}.hud{background:#000000bf;border:3px solid #555;padding:12px 20px;font-size:10px;display:flex;gap:24px;align-items:center;pointer-events:none}.hud-timer{font-size:16px;color:#f39c12}.adventure-health{display:flex;flex-direction:column;gap:4px;min-width:140px}.adventure-health-kicker{font-size:9px;letter-spacing:.08em;color:#b8b8b8}.adventure-health-track{width:140px;height:10px;background:#2a2a2a;border:2px solid #666;overflow:hidden}.adventure-health-fill{height:100%;width:100%;background:linear-gradient(90deg,#2ecc71,#27ae60);transition:width 80ms linear,background .12s ease}.adventure-health.low .adventure-health-fill{background:linear-gradient(90deg,#f39c12,#e67e22)}.adventure-health.critical .adventure-health-fill{background:linear-gradient(90deg,#c0392b,#e74c3c)}.adventure-health-label{font-size:12px;color:#ecf0f1}.menu-title-road{cursor:default;user-select:none;-webkit-user-select:none;touch-action:manipulation}.adventure-outro-copy{max-width:28rem;margin:.75rem auto 1rem;line-height:1.45;text-align:center;opacity:.9}.adventure-premise{max-width:32rem;margin:.25rem auto .85rem;font-size:.82em;line-height:1.5;text-align:center;opacity:.78}.adventure-recap{max-width:32rem;margin:0 auto .9rem;padding:.6rem .85rem;border-left:3px solid rgba(243,156,18,.7);background:#1e140a73;text-align:left}.adventure-recap-kicker,.adventure-next-kicker,.adventure-brief-label{display:block;font-size:.62em;letter-spacing:.16em;color:#f39c12;opacity:.85}.adventure-recap-copy{margin:.35rem 0 0;font-size:.8em;line-height:1.45;opacity:.9}.adventure-chapter-map{display:flex;flex-direction:column;gap:.5rem;max-width:32rem;margin:0 auto .85rem;max-height:min(44vh,22rem);overflow-y:auto}.adventure-chapter{padding:.5rem .7rem;border:2px solid rgba(196,120,48,.4);background:#140e0880;text-align:left}.adventure-chapter.locked{opacity:.4}.adventure-chapter.cleared{border-color:#2ecc7173}.adventure-chapter-head{display:flex;align-items:baseline;gap:.5rem}.adventure-chapter-num{font-size:1.3em;color:#f39c12;min-width:1.2rem}.adventure-chapter-title{flex:1;font-size:.85em;letter-spacing:.1em}.adventure-chapter-state{font-size:.6em;letter-spacing:.14em;opacity:.7}.adventure-chapter-parts{display:flex;flex-direction:column;gap:.25rem;margin-top:.4rem}.adventure-part{display:flex;align-items:center;gap:.6rem;text-align:left;font-size:.78em;padding:.35rem .6rem}.adventure-part-num{opacity:.6}.adventure-part-title{flex:1;text-align:left}.adventure-part.selected{border-color:#f39c12;color:#f39c12}.adventure-part.locked{opacity:.4}.adventure-next-up{max-width:32rem;margin:0 auto;text-align:center}.adventure-next-title{margin:.2rem 0 .15rem;font-size:1em;letter-spacing:.08em}.adventure-next-objective{margin:0;font-size:.82em;line-height:1.4;opacity:.9}.adventure-brief-row{max-width:32rem;margin:0 auto .7rem;padding:.5rem .8rem;border-left:3px solid rgba(196,120,48,.5);background:#140e0873;text-align:left}.adventure-brief-row.objective{border-left-color:#f39c12}.adventure-brief-row.threat{border-left-color:#c0392b}.adventure-brief-row.threat .adventure-brief-label{color:#e07a6a}.adventure-brief-value{margin:.25rem 0 0;font-size:.85em;line-height:1.45}.cutscene-screen{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:8}.cutscene-bar{position:absolute;left:0;right:0;height:11vh;background:#000}.cutscene-bar-top{top:0}.cutscene-bar-bottom{bottom:0}.cutscene-caption{position:absolute;left:max(24px,var(--safe-left));right:max(24px,var(--safe-right));top:50%;bottom:auto;transform:translateY(-50%);max-width:42rem;margin:0 auto;text-align:center;padding:1.1rem 1.4rem;background:radial-gradient(ellipse at center,rgba(8,6,4,.55) 0%,rgba(8,6,4,.28) 55%,transparent 78%)}.cutscene-speaker{font-size:.68em;letter-spacing:.22em;color:#f39c12;margin-bottom:.3rem}.cutscene-text{margin:0;font-size:1.05em;line-height:1.5;color:#f5e6c8;text-shadow:0 2px 10px rgba(0,0,0,.9);min-height:3em}.cutscene-dots{position:absolute;left:0;right:0;bottom:calc(11vh - 18px);display:flex;justify-content:center;gap:6px}.cutscene-dot{width:18px;height:3px;background:#f5e6c840}.cutscene-dot.done{background:#f5e6c88c}.cutscene-dot.current{background:#f39c12}.cutscene-skip{position:absolute;right:max(20px,var(--safe-right));bottom:calc(11vh + 12px);font-size:.68em;padding:.35rem .7rem;opacity:.7;pointer-events:auto;touch-action:manipulation}.cutscene-skip:hover{opacity:1}@media(max-width:767px),(pointer:coarse){.cutscene-skip{letter-spacing:.08em}}.adventure-caption{position:absolute;left:max(16px,var(--safe-left));right:max(16px,var(--safe-right));bottom:calc(88px + var(--safe-bottom, 0px));padding:.55rem .9rem;text-align:center;font-size:14px;line-height:1.35;color:#f5e6c8;background:#140e08b8;border:2px solid rgba(196,120,48,.55);pointer-events:auto;touch-action:manipulation;cursor:pointer;z-index:6;animation:adventure-caption-in .35s ease-out}@keyframes adventure-caption-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.countdown-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:72px;color:#f39c12;text-shadow:4px 4px 0 #c0392b;pointer-events:none}.countdown-overlay--go{animation:countdown-go-out .25s ease-in forwards}@keyframes countdown-go-out{0%,30%{opacity:1}to{opacity:0}}.touch-steer-controls{position:absolute;inset:auto 0 calc(16px + var(--safe-bottom)) 0;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:0 max(16px,var(--safe-left)) 0 max(16px,var(--safe-right));pointer-events:none;z-index:3}.touch-reverse-zone{position:relative;flex:1;align-self:flex-end;height:76px;min-width:48px;margin:0 8px;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;border:none;padding:0;background:transparent;opacity:0;-moz-appearance:none;appearance:none;-webkit-appearance:none}@media(pointer:fine){.touch-steer-controls{display:none}}.touch-steer-btn{position:relative;flex-shrink:0;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;width:76px;height:76px;border:3px solid #f39c12;border-radius:12px;background:#0a0a14b8;color:#f39c12;font-family:"Press Start 2P",monospace;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 4px #8e5a0a}.touch-steer-btn.is-pressed,.touch-steer-btn:active{background:#f39c1259;transform:translateY(3px);box-shadow:0 1px #8e5a0a}.touch-steer-btn:after,.touch-reverse-zone:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px}.pause-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c;pointer-events:auto;z-index:40}.pause-overlay[hidden]{display:none!important}.menu-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c;pointer-events:auto;z-index:200}.menu-dialog-overlay--maintenance{background:#000000c7}.menu-dialog-overlay[hidden]{display:none!important}.menu-dialog-panel{display:flex;flex-direction:column;align-items:center;gap:18px;padding:28px 32px;background:#0a0a14f0;border:3px solid #555;min-width:min(92vw,340px);max-width:min(92vw,420px);text-align:center}.menu-dialog-panel h2{font-size:18px;color:#f39c12;text-shadow:2px 2px 0 #c0392b;line-height:1.4}.menu-dialog-message{font-size:10px;color:#ecf0f1;line-height:1.6;letter-spacing:.03em}.menu-dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%}.menu-dialog-actions .btn{min-width:96px}.pause-menu-panel{display:flex;flex-direction:column;align-items:center;gap:20px;padding:28px 32px;background:#0a0a14eb;border:3px solid #555;min-width:300px}.pause-resume-btn{width:100%;min-width:0}.pause-menu-panel h2{font-size:32px;color:#f39c12;text-shadow:3px 3px 0 #c0392b}.pause-menu-panel .hint{margin-top:-8px}.volume-control{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.volume-control label{font-size:10px;color:#ecf0f1}.volume-control-row{display:flex;align-items:center;gap:10px;width:100%}.pause-mute-btn{flex-shrink:0}.volume-control-row .volume-slider{flex:1;min-width:0}.volume-slider{width:100%;accent-color:#f39c12;cursor:pointer}.pause-menu-actions{display:flex;flex-direction:column;gap:12px;width:100%}.pause-menu-actions[hidden],.pause-menu-actions .btn[hidden]{display:none!important}.pause-menu-actions .btn{min-width:0;width:100%;transition:none}.pause-menu-actions .btn:active{transform:none}.results-table{font-size:10px;line-height:1.8;text-align:left;width:100%;max-width:360px;margin:0 auto}.results-row{display:grid;grid-template-columns:36px 1fr 72px;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.results-header{color:#7f8c8d;font-size:9px;text-transform:uppercase;border-bottom:2px solid rgba(255,255,255,.15)}.results-row-me{background:#f39c1226;border-left:3px solid #f39c12}.results-row-podium-1 .pos{color:#f1c40f}.results-row-podium-2 .pos{color:#bdc3c7}.results-row-podium-3 .pos{color:#cd7f32}.results-table .pos{font-weight:700;text-align:center}.results-table .name{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}.results-table .results-name-text{overflow:hidden;text-overflow:ellipsis;min-width:0}.results-kind-tag{flex-shrink:0;font-size:8px;font-weight:700;letter-spacing:.1em;line-height:1;padding:2px 4px;color:#1a1208;background:var(--accent-yellow)}.results-table .time{text-align:right;font-variant-numeric:tabular-nums}.results-table .car-dot{flex-shrink:0}.results-screen h1{margin-bottom:20px}.finished-banner{display:none}.race-standings-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:18;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px 72px;background:#080c12d1;pointer-events:auto}.race-standings-title{margin:0 0 12px;font-size:14px;letter-spacing:.08em}.race-standings-table{width:min(520px,96%);max-height:52vh;overflow-y:auto}.race-standings-table .results-header,.race-standings-table .results-row{grid-template-columns:36px 1fr 64px 44px 48px}.race-standings-table .pts,.race-standings-table .total-pts{text-align:center;font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;color:#f1c40f}.race-standings-footer{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;padding:12px 16px 16px;gap:16px}.race-standings-footer-left{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.race-standings-countdown{font-size:9px;color:#f1c40f;letter-spacing:.06em}.race-standings-leave{font-size:9px;padding:6px 10px;min-width:0}.race-standings-ready{flex:1;max-width:220px;min-height:52px;font-size:12px;letter-spacing:.1em}.race-standings-ready.ready-active{opacity:.75}.btn-small{font-size:9px;padding:6px}.race-standings-spectator-hint{margin:8px 0 0;font-size:9px;color:#95a5a6;text-align:center}@media(max-width:767px),(pointer:coarse){.race-standings-footer{gap:10px;padding:10px 12px 14px}.race-standings-footer-left{flex:0 1 auto;min-width:0;max-width:38%}.race-standings-leave{padding:4px 8px;font-size:9px;width:auto}.race-standings-ready{flex:1 1 auto;min-width:0;max-width:none;min-height:44px;font-size:11px}.race-standings-table .results-header,.race-standings-table .results-row{grid-template-columns:28px 1fr 56px 36px 40px;gap:4px;padding:6px}.session-standings-table .results-header,.session-standings-table .results-row{grid-template-columns:28px 1fr 64px 40px;gap:4px;padding:6px}}.host-skip-hud{display:none}.session-winner-screen{position:relative;overflow:hidden;min-height:100%}.session-fireworks{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.firework-burst{position:absolute;width:6px;height:6px;border-radius:50%;animation:firework-pop ease-out infinite;box-shadow:0 0 #e74c3c,28px -36px #3498db,-32px -40px #2ecc71,36px 12px #9b59b6,-24px 18px #e67e22,14px 32px #f1c40f,-40px 8px #1abc9c}@keyframes firework-pop{0%{transform:scale(.2);opacity:0}15%{opacity:1}to{transform:scale(3.6);opacity:0}}.session-winner-heading{position:relative;z-index:1;margin-top:48px;color:#f1c40f}.session-winner-hero{position:relative;z-index:1;font-size:18px;margin:8px 0}.session-winner-name{font-size:16px;letter-spacing:.08em}.session-winner-name-celebrate{display:inline-block;animation:winner-name-pulse 1s ease-in-out infinite alternate}@keyframes winner-name-pulse{0%{transform:scale(1);text-shadow:0 0 6px currentColor;opacity:.85}to{transform:scale(1.1);text-shadow:0 0 18px currentColor,0 0 36px currentColor;opacity:1}}.session-winner-points,.session-winner-time,.session-winner-countdown{position:relative;z-index:1}.session-standings-table{position:relative;z-index:1;width:min(520px,96%);margin-top:16px}.session-standings-table .results-header,.session-standings-table .results-row{grid-template-columns:36px 1fr 72px 48px}.session-standings-table .pts{text-align:center;font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;color:#f1c40f}.session-winner-leave{position:relative;z-index:1;margin-top:4px;min-width:0}.session-winner-actions{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:20px}.session-winner-lobby{min-width:200px}.hint{font-size:9px;color:#7f8c8d;text-align:center}.error-toast{position:absolute;left:50%;bottom:56px;transform:translate(-50%);z-index:20;max-width:min(90%,420px);padding:10px 14px;background:#280c0cf0;border:2px solid #e74c3c;color:#ffb4ac;font-size:10px;letter-spacing:.04em;text-align:center;pointer-events:none}.error-toast-join{bottom:88px;max-width:min(96%,520px);padding:12px 18px}.connecting{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;font-size:12px}.hidden{display:none!important}#top-controls{position:absolute;top:0;right:12px;bottom:-3px;z-index:25;display:flex;align-items:center;gap:8px}.top-btn{position:relative;font-family:inherit;font-size:9px;padding:8px 10px;background:#2c3e50e6;color:#ecf0f1;border:2px solid #34495e;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:40px;box-sizing:border-box}.top-btn-label{line-height:1}.top-btn-shortcut{position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);width:11px;height:11px;display:flex;align-items:center;justify-content:center;font-size:8px;line-height:1;color:#bdc3c7;background:#0a0a14f2;border:1px solid #4a6278;pointer-events:none;z-index:1}.icon-btn{width:40px;padding:0}.top-btn-icon-wrap{display:flex;align-items:center;justify-content:center}.top-btn-icon{width:26px;height:26px;display:block}.mute-control{position:relative;display:inline-flex;align-items:center}.volume-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:60;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(240px,calc(100vw - 24px));padding:12px;background:#141c28f5;border:2px solid #34495e;box-shadow:0 10px 28px #0000008c;pointer-events:auto}.volume-popover[hidden]{display:none!important}.volume-popover label{font-size:9px;color:#ecf0f1;text-align:center}#pause-abort-btn{flex-shrink:0;margin-right:10px}#pause-abort-btn.icon-btn{width:auto;padding:8px 10px;gap:6px}#pause-abort-btn .pause-abort-label{display:inline}#pause-abort-btn .top-btn-shortcut{display:none}@media(pointer:fine)and (min-width:768px){#pause-abort-btn .top-btn-shortcut{display:flex}}.credits-body{font-size:9px;line-height:2;text-align:center;max-width:420px}.credits-body a{color:#3498db}.campaign-map-screen{justify-content:flex-start;overflow-y:auto;padding-top:40px;padding-bottom:40px}.campaign-chapters{display:flex;flex-direction:column;gap:16px;width:min(720px,100%);max-height:60vh;overflow-y:auto}.campaign-chapter{background:#1e2432e6;border:3px solid #34495e;padding:12px 14px}.campaign-chapter h3{font-size:10px;color:#ecf0f1;margin-bottom:10px}.campaign-chapter.theme-sunset{border-color:#e67e22}.campaign-chapter.theme-desert{border-color:#d4a017}.campaign-chapter.theme-jungle{border-color:#27ae60}.campaign-chapter.theme-snow{border-color:#85c1e9}.campaign-chapter.theme-night{border-color:#e91e63}.campaign-level-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}.campaign-level{font-family:inherit;font-size:9px;min-width:0;width:100%;padding:10px 2px;background:#2c3e50;color:#ecf0f1;border:2px solid #34495e;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}.campaign-level.current{border-color:#f39c12;box-shadow:0 0 0 1px #f39c12}.campaign-level.locked{opacity:.45;cursor:not-allowed}.campaign-level-title{font-size:12px;color:#f39c12}.campaign-goal{text-align:center;max-width:360px}.campaign-goal strong{font-size:11px;color:#ecf0f1}.campaign-minimap{image-rendering:pixelated;border:3px solid #34495e}.campaign-brief-panel{width:min(440px,100%);flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 24px 24px;background:#161a26f2;border:4px solid #34495e;box-shadow:0 8px #00000059}.campaign-brief-panel.theme-sunset{border-color:#e67e22}.campaign-brief-panel.theme-desert{border-color:#d4a017}.campaign-brief-panel.theme-jungle{border-color:#27ae60}.campaign-brief-panel.theme-snow{border-color:#85c1e9}.campaign-brief-panel.theme-night{border-color:#e91e63}.campaign-brief-level{font-size:12px;color:#5dade2;letter-spacing:2px;margin:0;font-weight:700}.campaign-brief-title{font-size:22px;color:#f39c12;text-shadow:2px 2px 0 #c0392b;text-align:center;line-height:1.4;margin:0}.campaign-brief-chapter{font-size:11px;color:#bdc3c7;margin:-4px 0 0;letter-spacing:1px}.campaign-results-context{color:#5dade2!important;font-size:10px!important;letter-spacing:1px}.cup-complete-screen{position:relative;overflow:hidden;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 16px}.cup-complete-heading{position:relative;z-index:1;color:#f1c40f;font-size:28px;text-align:center;text-shadow:3px 3px 0 #c0392b;margin:0;animation:winner-name-pulse 1s ease-in-out infinite alternate}.cup-complete-cup{position:relative;z-index:1;font-size:14px;color:#ecf0f1;letter-spacing:2px;text-align:center;margin:0}.cup-complete-next-hint{position:relative;z-index:1;font-size:11px;color:#5dade2;letter-spacing:1px;text-align:center;margin:8px 0 0}.cup-complete-actions{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:24px;width:min(320px,100%)}.cup-complete-actions .btn{min-width:260px}.campaign-brief-objective{width:100%;text-align:center;padding:14px 16px;background:#2c3e50b3;border:3px solid #3d566e}.campaign-brief-goal-label{display:block;font-size:9px;color:#95a5a6;letter-spacing:1px;margin-bottom:6px}.campaign-brief-goal{font-size:14px;color:#ecf0f1;margin:0;line-height:1.5}.campaign-brief-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%}.campaign-brief-stat{font-size:10px;color:#ecf0f1;background:#2c3e50;border:2px solid #3d566e;padding:8px 12px}.campaign-brief-actions{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;margin-top:4px}.campaign-brief-actions .btn{min-width:280px;font-size:13px;padding:16px 28px}.track-editor{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:220px 1fr;background:#12121f;z-index:20;font-family:"Press Start 2P",monospace;color:#eee}.track-editor-sidebar{display:flex;flex-direction:column;border-right:3px solid #333;background:#0a0a14;min-height:0;overflow:hidden}.track-editor-sidebar h2{font-size:11px;padding:14px 12px;color:#f39c12;border-bottom:2px solid #333}.track-editor-list{flex:1;overflow-y:auto;padding:8px}.track-editor-list-group{font-size:8px;color:#888;margin:10px 4px 6px;text-transform:uppercase}.track-editor-list-item{display:block;width:100%;text-align:left;font-family:inherit;font-size:8px;line-height:1.4;padding:8px;margin-bottom:4px;background:#1a1a2e;border:2px solid #333;color:#ddd;cursor:pointer}.track-editor-list-item-active{border-color:#f39c12;background:#2a2110;color:#f39c12;box-shadow:inset 3px 0 #f39c12}.track-editor-main{display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px;gap:10px}.track-editor-toolbar,.track-editor-options,.track-editor-actions,.track-editor-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.track-editor-tool-active{border-color:#f39c12!important;color:#f39c12!important}.track-editor-chip{font-size:9px!important;padding:8px 10px!important;min-width:0!important}.track-editor-canvas-wrap{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:center;background:#0a0a14;border:3px solid #333;overflow:hidden;gap:0}.track-editor-canvas-wrap-split{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.4fr)}.track-editor-paint-pane,.track-editor-preview-host{position:relative;flex:1;width:100%;height:100%;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.track-editor-preview-host{background:#12121f;border-left:2px solid #333}.track-editor-canvas-wrap:not(.track-editor-canvas-wrap-split) .track-editor-paint-pane{flex:1 1 auto}.track-editor-preview-host.hidden{display:none}.track-editor-pane-label{position:absolute;top:6px;left:8px;z-index:2;font-size:8px;color:#aaa;pointer-events:none;background:#0a0a14b3;padding:4px 6px}.track-editor-canvas{image-rendering:pixelated;image-rendering:crisp-edges;cursor:crosshair;max-width:100%;max-height:100%}.track-editor-preview-canvas{display:block;width:100%;height:100%;cursor:crosshair}.track-editor-meta label{font-size:8px;color:#aaa}.track-editor-meta .input-field,.track-editor-theme{font-family:inherit;font-size:10px;padding:8px;background:#1a1a2e;border:2px solid #444;color:#eee;max-width:220px}.track-editor-status{font-size:9px;color:#8fd3a0;min-height:1.2em}.track-editor-status-error{color:#e74c3c}.track-editor-actions .btn{min-width:120px}.dev-dock{margin-top:12px;padding-top:10px;border-top:2px solid #2a6a66;width:100%;flex-shrink:0}.dev-dock-label{font-size:8px;color:#4ecdc4;letter-spacing:.25em;margin-bottom:10px;text-align:center}.dev-dock-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.circuit-race-tabs{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0}.circuit-race-tab{min-width:44px;font-size:11px;padding:6px 8px}.circuit-race-preview{display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:center;margin:8px 0}.circuit-race-preview canvas{border:2px solid #444;image-rendering:pixelated}.score-strip-label{color:#3498db;font-size:9px;letter-spacing:.12em;margin-bottom:6px;text-align:center}.menu-hub .menu-mode-list{display:flex;flex-direction:column;gap:10px;width:min(360px,92vw);margin:20px auto 12px}.menu-mode-btn{display:flex;justify-content:space-between;align-items:center;min-height:52px;text-align:left;padding:12px 16px}.menu-mode-btn.locked{opacity:.4}.menu-mode-btn .btn-subtitle{font-size:9px;opacity:.8}.menu-secondary-actions{display:flex;gap:8px;justify-content:center;margin-top:8px}.btn-small{font-size:10px;padding:8px 6px}.btn-small.selected{border-color:#f39c12;color:#f39c12}.unlock-flash{color:#f39c12;font-size:12px;letter-spacing:.08em;animation:unlock-pulse .6s ease-in-out infinite alternate}@keyframes unlock-pulse{0%{opacity:.7}to{opacity:1}}.menu-player{margin-top:8px;font-size:9px}.dev-strip{margin-top:24px;padding-top:12px;border-top:2px solid #2a4a4a;width:min(480px,94vw)}.dev-strip-label{font-size:8px;color:#4ecdc4;letter-spacing:.2em;margin-bottom:8px}.dev-strip-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.btn-dev{font-size:8px;padding:6px 10px;border-color:#4ecdc4;color:#4ecdc4;background:#4ecdc414;opacity:.75}.tutorial-prompt h2{margin-bottom:16px}.tutorial-tip{position:absolute;top:14%;left:50%;transform:translate(-50%);background:#0a0a14eb;border:3px solid #f39c12;padding:14px 20px;text-align:center;pointer-events:none;z-index:15;min-width:200px;max-width:88vw;animation:tutorial-tip-in .18s ease}@keyframes tutorial-tip-in{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tutorial-tip-title{font-size:14px;color:#f39c12;margin-bottom:6px}.tutorial-tip-sub{font-size:9px;color:#ccc;line-height:1.5}.top-score-toggle{display:flex;gap:6px;justify-content:center;margin:12px 0 8px}.top-score-board{width:min(280px,90vw);margin:0 auto 12px;font-size:10px}.top-score-label{color:#3498db;font-size:10px;margin-bottom:6px;letter-spacing:.1em}.top-score-rows{display:flex;flex-direction:column;gap:3px}.top-score-row{display:grid;grid-template-columns:20px 1fr 48px;gap:6px;color:#ccc}.top-score-you{margin-top:4px;color:#f39c12}.top-score-rank{text-align:right;color:#888}.top-score-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-score-time{text-align:right;font-variant-numeric:tabular-nums}.result-stat{font-size:12px;letter-spacing:.06em;color:#ddd;margin:4px 0;font-variant-numeric:tabular-nums}.result-stat-record,.result-stat-circuit{color:var(--accent-yellow, #f1c40f)}.circuit-record-celebrate{margin:12px 0 8px;padding:12px 16px;border:2px solid var(--accent-yellow, #f1c40f);background:#f1c40f1f;animation:circuit-record-pop .7s ease-out,circuit-record-glow 1.4s ease-in-out infinite alternate}.circuit-record-title{margin:0;font-size:16px;letter-spacing:.14em;color:var(--accent-yellow, #f1c40f)}.circuit-record-sub{margin:6px 0 0;font-size:11px;letter-spacing:.08em;color:#f8e9a0;font-variant-numeric:tabular-nums}@keyframes circuit-record-pop{0%{transform:scale(.86);opacity:0}60%{transform:scale(1.06);opacity:1}to{transform:scale(1)}}@keyframes circuit-record-glow{0%{box-shadow:0 0 8px #f1c40f40}to{box-shadow:0 0 22px #f1c40f8c}}.circuit-hub-body{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(480px,94vw);margin:0 auto}.circuit-board-primary{width:100%}.circuit-board-primary .career-standings-label{color:var(--accent-yellow, #f1c40f)}.circuit-your-best{margin:0;color:#f5d76e;font-variant-numeric:tabular-nums}.circuit-run-btn{width:100%;padding:14px 16px;font-size:13px}.circuit-singles{width:100%;padding:10px;border:2px solid #333;border-radius:10px;background:#00000047}.circuit-singles .score-strip-label{margin-bottom:2px}.circuit-single-btn{width:100%}.circuit-singles .btn:disabled,.circuit-singles .btn.disabled-seq{opacity:.45;cursor:not-allowed;pointer-events:none}.circuit-board-secondary{margin-top:8px}.circuit-board-secondary .career-standings-toggle{border-color:#3a3a46;background:#00000040}.circuit-board-secondary .career-standings-label{color:#9aa7b4}.circuit-theme-picker{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:10px}.circuit-race-row.selected{border-color:#f39c12}.circuit-race-play{font-size:12px;padding:4px 8px;border:2px solid #555;background:#0006;color:#f39c12;cursor:pointer;font-family:inherit}.menu-circuits .circuit-menu-grid{display:grid;grid-template-columns:1fr;gap:10px;width:min(420px,92vw);margin:16px auto}.circuit-menu-btn{min-height:64px;text-align:left;padding:12px 16px;border-width:3px}.circuit-menu-btn.locked{opacity:.45}.circuit-menu-label{display:block;font-size:14px;letter-spacing:.04em}.menu-secondary{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.circuit-hub .circuit-race-list{display:flex;flex-direction:column;gap:8px;width:min(480px,94vw);margin:12px auto}.circuit-race-row{display:grid;grid-template-columns:72px 1fr auto;gap:10px;align-items:center;padding:8px;background:#00000059;border:2px solid #444;color:#eee;cursor:pointer;font-family:inherit}.circuit-race-row.disabled-seq{opacity:.55;cursor:default}.circuit-race-row canvas{width:72px;height:48px}.track-gen-lab{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:280px 1fr;background:#12121f;z-index:20;font-family:"Press Start 2P",monospace;color:#eee}.track-gen-lab-sidebar{display:flex;flex-direction:column;gap:10px;border-right:3px solid #333;background:#0a0a14;min-height:0;overflow-y:auto;padding:14px 12px 18px}.track-gen-lab-sidebar h2{font-size:11px;color:#f39c12;margin:0}.track-gen-lab-controls{display:flex;flex-direction:column;gap:10px}.track-gen-lab-row{display:flex;flex-direction:column;gap:4px;font-size:9px;color:#bbb}.track-gen-lab-select,.track-gen-lab-row .input-field{font-family:inherit;font-size:9px;padding:8px;background:#1a1a2e;border:2px solid #333;color:#eee}.track-gen-lab-meta{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:2px solid #333;border-bottom:2px solid #333}.track-gen-lab-meta-row{display:flex;flex-direction:column;gap:2px;font-size:8px;line-height:1.4}.track-gen-lab-meta-label{color:#888;text-transform:uppercase}.track-gen-lab-meta-value{color:#f5d76e;word-break:break-all}.track-gen-lab-status{margin:0;min-height:2.4em}.track-gen-lab-status-error{color:#e74c3c}.track-gen-lab-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto}.track-gen-lab-actions .btn{width:100%}.track-gen-lab-main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:12px}.track-gen-lab-preview-host{position:relative;flex:1;min-height:0;background:#0d1520;border:3px solid #333;overflow:hidden}.track-gen-lab-preview-host canvas{display:block;width:100%!important;height:100%!important}.track-gen-lab-pane-label{position:absolute;top:8px;left:10px;z-index:2;font-size:8px;color:#aaa;pointer-events:none}.rules-admin-form{display:flex;flex-direction:column;gap:10px;width:min(420px,92vw);margin:12px auto}.rules-admin-row{display:flex;flex-direction:column;gap:4px;font-size:10px}.hud-splits{font-size:9px;opacity:.85}.circuit-day-key{font-size:13px;letter-spacing:.08em;opacity:.9;margin-bottom:4px}.circuit-hub .circuit-day-key{color:#f5d76e}.menu-screen{background:var(--bg-navy);padding:0;justify-content:stretch;overflow:hidden}.menu-screen>*{position:relative;z-index:1}.menu-screen.campaign-brief-screen{justify-content:center;justify-content:safe center;overflow-x:hidden;overflow-y:auto;padding:max(24px,calc(var(--safe-top) + 16px)) max(16px,var(--safe-right)) max(24px,calc(var(--safe-bottom) + 16px)) max(16px,var(--safe-left))}.menu-shell{width:min(420px,100vw);height:100%;margin:0 auto;display:flex;flex-direction:column;padding:max(12px,var(--safe-top)) max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left));overflow:hidden}.menu-header{text-align:center;padding:16px 12px 8px;flex-shrink:0}.menu-title{font-size:18px;color:var(--accent-yellow);text-shadow:2px 2px 0 var(--accent-orange);line-height:1.6;white-space:pre-line}.menu-subtitle{font-size:9px;color:var(--accent-blue);letter-spacing:.12em;margin-top:6px}#app.menu-overlay-mode #race-top-bar,#app.menu-overlay-mode #race-bottom-bar,#app.menu-overlay-mode #race-info-banner{display:none}#app.menu-overlay-mode #race-viewport{border:none;box-shadow:none}#app.cutscene-mode #race-top-bar,#app.cutscene-mode #race-bottom-bar,#app.cutscene-mode #race-info-banner{display:none}#app.menu-overlay-mode #race-top-bar{display:flex;position:fixed;top:0;left:0;right:0;height:auto;min-height:calc(40px + var(--safe-top));padding:0 max(12px,var(--safe-right)) 0 max(12px,var(--safe-left));background:transparent;border:none;pointer-events:none;z-index:50}#app.menu-overlay-mode #race-top-bar #pause-abort-btn{display:none}#app.menu-overlay-mode #race-top-bar #top-controls{position:fixed;top:max(8px,var(--safe-top));right:max(12px,var(--safe-right));bottom:auto;pointer-events:auto;z-index:51}#app.menu-overlay-mode #camera-btn{display:none}#app.menu-overlay-mode .menu-header{padding-top:max(16px,calc(max(8px,var(--safe-top)) + 48px - max(12px,var(--safe-top))))}#app.menu-overlay-mode .campaign-brief-screen{padding-top:max(24px,calc(max(8px,var(--safe-top)) + 52px))}@media(max-width:767px),(pointer:coarse){#race-top-bar{min-height:calc(52px + var(--safe-top));height:auto}#app:not(.menu-overlay-mode) #race-top-bar{align-items:flex-start;padding-top:max(8px,var(--safe-top));padding-left:max(12px,var(--safe-left))}#race-info-banner{padding-left:max(12px,var(--safe-left));padding-right:max(12px,var(--safe-right))}#top-controls{top:max(8px,var(--safe-top));right:max(12px,var(--safe-right))}#camera-btn{display:none!important}#app:not(.menu-overlay-mode) #camera-btn{display:inline-flex!important}#top-controls .top-btn-shortcut{display:none}}.menu-body{flex:1;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:8px 4px;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.menu-footer{flex-shrink:0;display:flex;justify-content:space-between;gap:12px;padding:12px 8px 4px;border-top:2px solid var(--border)}.menu-footer-btn{font-family:inherit;font-size:10px;padding:10px 16px;background:#2c3e50;color:#ecf0f1;border:3px solid #34495e;cursor:pointer;min-width:100px}.menu-footer-select{background:var(--accent-orange);border-color:#f83;color:#fff;margin-left:auto}.menu-footer-select:disabled{opacity:.45;cursor:not-allowed}.menu-footer-history{background:#34495e;border-color:#4a6278;color:#ecf0f1;flex:1;max-width:140px}.menu-shell{position:relative}.career-season-countdown{position:absolute;top:8px;left:8px;z-index:2;font-size:9px;letter-spacing:.04em;color:#bdc3c7;background:#00000059;padding:4px 8px;border:1px solid rgba(255,255,255,.08);pointer-events:none}.career-season-countdown.expired{color:#e67e22}.career-history-empty{text-align:center;color:#95a5a6;font-size:11px;padding:24px 12px}.career-history-screen .menu-body{overflow:auto;min-height:0}.menu-list{display:flex;flex-direction:column;gap:6px;width:100%;padding:6px 6px 0}.menu-item-group-start{margin-top:14px}.menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:64px;padding:14px 16px;background:#00000059;border:3px solid var(--border);color:#ecf0f1;font-family:inherit;font-size:11px;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.menu-item-challenge{width:auto;margin-left:18px;margin-right:18px;min-height:52px;padding:10px 14px;font-size:10px}.menu-item.selected{background:var(--accent-orange);border-color:#f83;color:#fff}.menu-item.locked{opacity:.45;cursor:not-allowed}.menu-item.coming-soon{touch-action:manipulation}.menu-item.coming-soon:active{background:#00000059;border-color:var(--border)}.menu-item-label-wrap{display:flex;flex-direction:column;gap:3px}.menu-item-label-row{display:flex;align-items:center;gap:14px}.menu-item-season{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 7px;background:linear-gradient(90deg,color-mix(in srgb,var(--season-accent, var(--accent-orange)) 22%,transparent),#00000052);border:1px solid rgba(255,214,0,.22);border-left:3px solid var(--season-accent, var(--accent-orange));box-shadow:inset 0 1px #ffffff0d;line-height:1;flex-shrink:0}.menu-item-season-kicker{font-size:9px;font-weight:700;letter-spacing:.14em;color:#ffd600cc;text-transform:uppercase}.menu-item-season-value{min-width:1.4em;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--accent-yellow);text-align:center;text-shadow:1px 1px 0 rgba(0,0,0,.45)}.menu-item.selected .menu-item-season{background:linear-gradient(90deg,#1a120847,#1a12081f);border-color:#1a120859;border-left-color:var(--season-accent, var(--accent-orange));box-shadow:inset 0 1px #ffffff1f}.menu-item.selected .menu-item-season-kicker{color:#1a12089e}.menu-item.selected .menu-item-season-value{color:#fff3a0;text-shadow:none}.menu-item-subtitle{font-size:9px;color:var(--text-muted);letter-spacing:.06em}.main-menu-online{margin-top:4px;padding:8px 10px 2px;display:flex;flex-direction:column;gap:8px}.main-menu-online-count{margin:0;align-self:center;padding:0;border:none;background:none;font:inherit;text-align:center;font-size:9px;letter-spacing:.14em;color:var(--text-muted);opacity:.85;cursor:pointer}.main-menu-online-count.expanded{color:var(--accent-yellow);opacity:1}.main-menu-online-table{display:flex;flex-direction:column;gap:3px}.main-menu-online-table[hidden]{display:none!important}.main-menu-online-row{display:grid;grid-template-columns:minmax(72px,.9fr) minmax(0,1.6fr);gap:8px;align-items:center;padding:3px 2px;font-size:9px;letter-spacing:.04em;color:var(--text-muted)}.main-menu-online-row-me .main-menu-online-name-text{color:var(--accent-yellow)}.main-menu-online-name{font-weight:700;text-transform:uppercase;min-width:0;overflow:hidden}.main-menu-online-name-with-tag{display:inline-flex;align-items:center;gap:5px;max-width:100%}.main-menu-online-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-menu-online-you-tag{flex-shrink:0;font-size:8px;font-weight:700;letter-spacing:.1em;line-height:1;padding:2px 4px;color:#1a1208;background:var(--accent-yellow)}.main-menu-online-location{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.9}.menu-item.selected .menu-item-subtitle{color:#ffffffbf}.menu-item-aside{flex-shrink:0;margin-left:auto;padding:4px 8px;font-size:9px;font-weight:700;color:var(--accent-yellow);letter-spacing:.06em;text-transform:uppercase;background:#0000008c;border:2px solid var(--accent-yellow);line-height:1}.menu-item.selected .menu-item-aside{color:#1a1208;background:#fff3a0;border-color:#1a1208}.career-cups-list .menu-item-aside,.career-cups-list .menu-item.selected .menu-item-aside{padding:0;background:transparent;border:none;color:var(--accent-yellow)}.menu-item-aside+.menu-item-arrow{margin-left:10px}.menu-item-arrow{font-size:10px;color:#fff}.menu-item-lock{font-size:12px}.menu-item.has-badge{position:relative;padding-right:52px}.menu-item.has-badge .menu-item-arrow{align-self:flex-end;margin-bottom:2px}.menu-item-badge{position:absolute;top:6px;right:6px;z-index:1;display:flex;align-items:center;justify-content:center;pointer-events:none;font-family:inherit;font-weight:700;letter-spacing:.04em;line-height:1;text-transform:uppercase}.menu-item-badge-new{width:38px;height:38px;color:#1a1208;font-size:9px;background:var(--accent-yellow);transform:rotate(-12deg);box-shadow:1px 1px #00000059;clip-path:polygon(50% 0%,63% 12%,79% 6%,82% 23%,98% 29%,90% 44%,100% 58%,84% 66%,82% 84%,65% 80%,50% 96%,35% 80%,18% 84%,16% 66%,0% 58%,10% 44%,2% 29%,18% 23%,21% 6%,37% 12%)}.menu-item.selected .menu-item-badge-new{background:#fff3a0;color:#1a1208}.menu-item-badge-rank{min-width:28px;height:22px;padding:0 4px;color:#1a1208;font-size:9px;background:var(--accent-yellow);border:2px solid #1a1208;box-shadow:1px 1px #00000059}.menu-item.selected .menu-item-badge-rank{background:#fff3a0;border-color:#1a1208;color:#1a1208}.menu-item-badge-next{height:20px;padding:0 6px;color:#f4faff;font-size:9px;background:var(--accent-blue);border:2px solid #0b1d2a;box-shadow:1px 1px #00000059}.menu-item-next{border-color:var(--accent-blue)}.menu-item-primary{min-height:76px;background:#ff66002e;border-color:var(--accent-orange)}.menu-item-primary .menu-item-label{font-size:16px;color:var(--accent-yellow)}.menu-item.has-notify,.btn.has-notify{position:relative;overflow:visible}.menu-item-notify{position:absolute;top:0;right:0;transform:translate(50%,-50%);z-index:3;width:12px;height:12px;border-radius:50%;background:#ff6602;border:2px solid #ffd700;box-shadow:0 0 0 1px #00000073;pointer-events:none}.notification-toast{position:fixed;top:calc(var(--safe-top, 0px) + 12px);left:50%;transform:translate(-50%);z-index:120;display:flex;flex-direction:column;align-items:center;gap:4px;width:min(440px,calc(100vw - 24px));max-width:min(92%,440px);box-sizing:border-box;padding:12px 16px;background:#121c26f5;border:2px solid var(--accent-yellow, #f1c40f);color:#fff3a0;font-family:inherit;text-align:center;cursor:pointer;box-shadow:0 4px 16px #00000073}.notification-toast-type{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-yellow, #f1c40f)}.notification-toast-message{font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1.35;color:#fff3a0}@media(max-width:767px),(pointer:coarse){.notification-toast{width:calc(100vw - max(12px,var(--safe-left)) - max(12px,var(--safe-right)));max-width:none}}.notification-toast:hover{background:#182430fa}.notification-toast:hover .notification-toast-message{color:#fff}.journey-banner{font-size:9px;color:var(--accent-blue);text-align:center;letter-spacing:.1em;padding:4px 8px;border:2px dashed var(--border)}.menu-tab-bar{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.menu-tab{font-family:inherit;font-size:9px;padding:8px 10px;background:#0006;border:2px solid var(--border);color:#ccc;cursor:pointer}.menu-tab.selected{border-color:var(--accent-orange);color:var(--accent-orange)}.menu-setting-panel{display:flex;flex-direction:column;gap:6px;width:100%}.menu-setting-card{display:flex;flex-direction:column;gap:10px;width:100%;padding:14px 16px;background:#00000059;border:3px solid var(--border);color:#ecf0f1}.menu-setting-card.locked{opacity:.45}.menu-setting-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%}.menu-setting-card .menu-item-label{font-size:11px}.menu-setting-options{justify-content:flex-start}.menu-setting-options .menu-tab:disabled{cursor:not-allowed;opacity:.7}.settings-slider{width:100%;accent-color:var(--accent-orange)}.settings-name-input{width:100%;box-sizing:border-box;text-align:left}.car-preview-host{width:100%;display:flex;justify-content:center}.car-preview-scene{width:min(360px,100%);height:min(220px,32vh);pointer-events:none;flex-shrink:0}.car-preview-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.menu-setting-card:has(.car-design-grid){min-width:0;overflow:hidden}.car-design-grid{display:flex;flex-wrap:nowrap;gap:10px;justify-content:flex-start;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding:4px max(8px,calc(50% - 56px)) 8px;margin:0 -4px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.car-design-grid::-webkit-scrollbar{height:6px}.car-design-grid::-webkit-scrollbar-thumb{background:var(--border)}.car-design-card{font-family:inherit;font-size:11px;color:var(--text);background:#2c3e50;border:3px solid #34495e;padding:14px 10px;cursor:pointer;flex:0 0 auto;width:112px;text-align:center;scroll-snap-align:center;transition:border-color .15s}.car-design-card.selected{border-color:var(--accent-orange)}.car-design-card-label{display:block;letter-spacing:.04em}.car-color-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.car-color-swatch{width:100%;aspect-ratio:1;min-height:36px;border:3px solid var(--border);background:#888;cursor:pointer;padding:0}.car-color-swatch.selected{border-color:var(--accent-orange);outline:2px solid var(--accent-orange);outline-offset:1px}.career-circuit-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:4px}.career-circuit-btn{font-family:inherit;font-size:10px;padding:10px 4px;background:#0006;border:2px solid var(--border);color:#eee;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}.career-circuit-btn.current{border-color:var(--accent-orange)}.career-circuit-btn.locked{opacity:.4;cursor:not-allowed}.achievement-list{display:flex;flex-direction:column;gap:8px}.achievement-row{display:flex;gap:10px;align-items:flex-start;padding:8px;border:2px solid var(--border);background:#0000004d;opacity:.5}.achievement-row.unlocked{opacity:1;border-color:var(--accent-orange)}.achievement-icon{font-size:16px}.achievement-text{display:flex;flex-direction:column;gap:3px}.achievement-title{font-size:9px;color:var(--accent-yellow)}.achievement-desc{font-size:9px;color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stats-tile{display:flex;flex-direction:column;gap:4px;padding:12px 8px;border:2px solid var(--border);background:#00000059;text-align:center}.stats-tile-label{font-size:9px;color:var(--accent-blue);letter-spacing:.08em}.stats-tile-value{font-size:14px;color:var(--accent-yellow)}.leaderboard-section{margin-bottom:12px}.leaderboard-theme{font-size:9px;color:var(--accent-orange);margin-bottom:4px}.leaderboard-row{display:grid;grid-template-columns:24px 1fr 56px;gap:6px;font-size:9px;padding:3px 0;border-bottom:1px solid var(--border)}.leaderboard-row-me,.leaderboard-row-me .lb-rank{color:#f39c12}.lb-time{text-align:right;font-variant-numeric:tabular-nums}.career-cups-screen .menu-body,.career-circuits-screen .menu-body{overflow:hidden;min-height:0}.career-season-standings{flex-shrink:0;display:flex;flex-direction:column;padding:0 6px 6px}.campaign-brief-standings{width:100%;padding:8px 0 0;text-align:left}.campaign-brief-standings .career-standings-toggle{text-align:left}.career-standings-toggle{width:100%;cursor:pointer;border-color:var(--accent-orange)}.career-standings-toggle:hover:not(:disabled){border-color:var(--accent-orange)}.career-standings-toggle .menu-item-season-kicker{font-size:9px}.career-standings-toggle .menu-item-season-value{font-size:12px}.career-standings-label-row{gap:10px}.career-standings-label{letter-spacing:.04em}.career-standings-toggle.expanded{border-color:var(--accent-orange);border-bottom-width:0}.career-standings-toggle.expanded+.career-standings-list:before{content:"";display:block;flex-shrink:0;height:2px;background:#ff660047}.career-standings-list{display:flex;flex-direction:column;max-height:min(240px,36vh);overflow-x:hidden;overflow-y:auto;background:#00000047;border:3px solid var(--accent-orange);border-top:none}.career-standings-list[hidden]{display:none!important}.career-standings-header,.career-standings-row{display:grid;grid-template-columns:22px minmax(0,1fr) 68px 44px;column-gap:10px;align-items:center;width:100%;box-sizing:border-box;padding-left:12px;padding-right:14px;font-size:9px}.career-standings-list-compact .career-standings-header,.career-standings-list-compact .career-standings-row{grid-template-columns:22px minmax(0,1fr) 68px}.career-standings-header>*,.career-standings-row>*{min-width:0}.career-standings-header{position:sticky;top:0;z-index:1;padding-top:7px;padding-bottom:7px;color:#ffd600b8;letter-spacing:.04em;text-transform:uppercase;background:#0000008c;border-bottom:1px solid rgba(255,255,255,.1)}.career-standings-header .lb-level,.career-standings-header .lb-time{font-size:9px;letter-spacing:.02em;line-height:1.15}.career-standings-header .lb-level{text-align:center}.career-standings-header .lb-time{text-align:right;white-space:nowrap}.career-standings-row{padding-top:6px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.06)}.career-standings-row:last-child{border-bottom:none}.career-standings-row-gold .lb-rank{color:var(--accent-yellow)}.career-standings-row-silver .lb-rank{color:#b8c4ce}.career-standings-row-bronze .lb-rank{color:#cd7f32}.career-standings-row-me{background:#ff66002e}.career-standings-row-me .lb-rank{color:var(--accent-yellow)}.career-standings-row-me .lb-name{display:flex;align-items:center;gap:6px;min-width:0;color:#fff;font-weight:700}.career-standings-you-tag{flex-shrink:0;font-size:8px;font-weight:700;letter-spacing:.1em;line-height:1;padding:2px 4px;color:#1a1208;background:var(--accent-yellow)}.career-standings-row-me .lb-level,.career-standings-row-me .lb-time{color:#fff}.career-standings-row .lb-rank{font-weight:700;font-variant-numeric:tabular-nums;color:#ffffff8c}.career-standings-row .lb-name{min-width:0;color:#ecf0f1}.career-standings-row .lb-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.career-standings-row .lb-name-with-tag{display:flex;align-items:center;gap:6px}.career-standings-row .lb-level{text-align:center;color:#ecf0f1;font-size:9px;font-weight:700;font-variant-numeric:tabular-nums}.career-standings-row .lb-time{text-align:right;color:#ffffffeb;font-weight:700;font-variant-numeric:tabular-nums}.career-standings-list-compact .career-standings-row .lb-time{color:#ecf0f1;font-size:9px}.career-standings-gap{padding:4px 12px 2px;font-size:9px;letter-spacing:.2em;text-align:center;color:#ffffff47}.career-standings-empty{font-size:9px;text-align:center;padding:14px 12px;color:var(--text-muted);letter-spacing:.06em}.career-prep-screen .menu-shell{max-width:min(96vw,520px)}.career-prep-crew{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 14px}.career-prep-emoji{font-size:28px;line-height:1;animation:career-prep-bob 1.6s ease-in-out infinite}@keyframes career-prep-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.career-prep-emoji{animation:none}}.career-prep-status{font-size:11px;letter-spacing:.08em;text-align:center;color:#f1c40f;min-height:2.6em;margin:0;transition:opacity .25s ease}.career-prep-progress{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:center;margin-bottom:10px}.career-prep-progress-track{height:10px;background:#ffffff14;border:2px solid rgba(255,255,255,.12);border-radius:2px;overflow:hidden}.career-prep-progress-fill{height:100%;width:0;background:linear-gradient(90deg,#e67e22,#f1c40f);transition:width .18s ease-out}.career-prep-progress-label{font-size:9px;letter-spacing:.12em;color:#ffffffb8;min-width:2.5em;text-align:right}.career-prep-hint{font-size:9px;line-height:1.55;letter-spacing:.05em;color:var(--text-muted);text-align:center;margin:0 0 14px}.career-prep-error{font-size:9px;letter-spacing:.06em;color:#e74c3c;text-align:center;margin:8px 0 16px}.boot-loading-screen .menu-shell{max-width:min(96vw,480px)}.boot-loading-crew{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 14px}.boot-loading-emoji{font-size:30px;line-height:1;animation:career-prep-bob 1.6s ease-in-out infinite}.boot-loading-status{font-size:11px;letter-spacing:.08em;text-align:center;color:#f1c40f;min-height:2.6em;margin:0}.boot-loading-hint{font-size:9px;line-height:1.55;letter-spacing:.05em;color:var(--text-muted);text-align:center;margin:12px 0 0}.boot-loading-progress{margin-bottom:0}.career-cups-list{flex:1;min-height:0;overflow-y:auto}.career-cups-list .menu-list{padding-top:0}.splash-screen{padding:0;background:var(--bg-navy);cursor:pointer}.splash-backdrop{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;padding-bottom:clamp(56px,10vh,88px);position:relative;overflow:hidden}.splash-checkered,.menu-screen:before{top:0;right:0;bottom:0;left:0;opacity:.08;background-image:linear-gradient(45deg,var(--accent-orange) 25%,transparent 25%),linear-gradient(-45deg,var(--accent-orange) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--accent-orange) 75%),linear-gradient(-45deg,transparent 75%,var(--accent-orange) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;pointer-events:none}.splash-checkered{position:absolute}.menu-screen:before{content:"";position:fixed;z-index:0}.splash-car-scene{position:relative;left:auto;bottom:auto;transform:none;width:min(460px,94vw);height:min(280px,38vh);z-index:0;pointer-events:none;animation:splash-fade-in 1s ease-out .25s both;flex-shrink:0}.splash-car-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 8px 16px rgba(0,0,0,.5))}.splash-logo-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;z-index:1;animation:splash-fade-in .8s ease-out}.splash-flags{position:relative;width:120px;height:90px;transform:translate(15px)}.splash-flag{position:absolute;bottom:0;left:50%;width:80px;height:80px;margin-left:-40px;display:block;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(2px 2px 0 var(--accent-orange));transform-origin:24% 92%}.splash-flag--right{transform:translate(-8px) rotate(30deg);z-index:2}.splash-flag--left{transform:translate(8px) scaleX(-1) rotate(30deg);z-index:1}.splash-flag-cloth{transform-origin:13px 16px;animation:splash-flag-wave 1.4s ease-in-out infinite alternate}@keyframes splash-flag-wave{0%{transform:scaleX(1)}to{transform:scaleX(1.05)}}.splash-logo{font-size:26px;color:var(--accent-yellow);text-shadow:4px 4px 0 var(--accent-orange);text-align:center;line-height:1.5;white-space:pre-line}.splash-tagline{font-size:9px;color:var(--accent-blue);letter-spacing:.2em}.splash-hint{font-size:10px;color:var(--text-muted);letter-spacing:.15em;z-index:1;position:absolute;bottom:clamp(16px,4vh,32px);left:50%;transform:translate(-50%);animation:unlock-pulse 1.2s ease-in-out infinite alternate}@keyframes splash-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.splash-screen .splash-hint{font-size:10px;color:var(--text-muted);text-align:center;animation:unlock-pulse 1.2s ease-in-out infinite alternate}.credits-body{font-size:9px;line-height:1.8;text-align:center;color:#ccc}.credits-body a{color:var(--accent-blue)}.btn-primary{background:var(--accent-orange);border-color:#f83}.pause-menu-panel{border-color:var(--accent-orange);background:#0d0d1af2}.results-screen{background:#0d0d1ae6}.results-screen h1,.hud,#race-track-name{color:var(--accent-yellow)}#race-info-banner #race-level-center{color:var(--accent-blue)}#race-top-bar{background:var(--bg-navy)}.name-screen .menu-body,.join-screen .menu-body{align-items:center}.join-keypad{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:8px;width:100%;max-width:260px}.join-key{font-family:inherit;font-size:9px;padding:10px 4px;background:#0006;border:2px solid var(--border);color:#eee;cursor:pointer}.join-key-del{grid-column:span 2;display:flex;align-items:center;justify-content:center;font-size:inherit}.join-key-del-icon{width:20px;height:20px;display:block}@media(max-width:767px),(pointer:coarse){.join-key-del-icon{width:26px;height:26px}}.lobby-player-ready{color:#8fd3a0}.lobby-player-wait{color:var(--text-muted)}.campaign-brief-best{font-size:9px;color:var(--accent-yellow);text-align:center;margin-bottom:8px}.tutorial-screen .menu-shell{justify-content:center;gap:16px}.tutorial-screen .menu-body{flex:0 0 auto;justify-content:center;align-items:stretch}.tutorial-screen .menu-body .btn{width:100%}.tutorial-controls{display:flex;flex-direction:column;gap:2px;padding:6px 14px;border:2px solid #333;border-radius:10px;background:#0000004d;margin-bottom:4px}.tutorial-control-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:8px 0}.tutorial-control-row+.tutorial-control-row{border-top:1px solid #2a2a33}.tutorial-control-label{font-size:10px;color:#e8e8ef;letter-spacing:.08em}.tutorial-control-keys{font-size:10px;color:#f39c12;white-space:nowrap;text-align:right}@media(hover:hover)and (pointer:fine){.btn:hover{background:#34495e;transform:scale(1.03)}.input-field:focus-visible{border-color:#3498db}.track-card:hover{border-color:#f39c12}.lap-option:hover:not(:disabled){border-color:#f39c12}.pause-menu-actions .btn:hover{transform:none}.top-btn:hover{background:#34495e}.track-editor-list-item:hover{border-color:#f39c12;color:#fff}.btn-dev:hover{opacity:1;background:#4ecdc42e;transform:scale(1.02)}.menu-footer-btn:hover{border-color:var(--accent-blue)}.menu-item:hover:not(:disabled):not(.coming-soon){border-color:var(--accent-blue)}.btn-primary:hover{background:#f83}}@media(pointer:coarse){button:focus:not(:focus-visible),.menu-item:focus:not(:focus-visible),.track-card:focus:not(:focus-visible),.lap-option:focus:not(:focus-visible),.record-tile:focus:not(:focus-visible),.top-btn:focus:not(:focus-visible){outline:none}}
