:root{font-family:Segoe UI,Tahoma,Verdana,sans-serif;color:#f1f1ee;background:#0b0c0e;--hud-edge:20px;--hud-map-size:clamp(150px,15vw,214px);--f-head:"Bahnschrift SemiBold Condensed","Bahnschrift","Franklin Gothic Medium","Arial Narrow",sans-serif;--f-body:"Segoe UI",Tahoma,Verdana,sans-serif;--f-num:"Bahnschrift","Segoe UI",sans-serif;--ink:#f1f1ee;--ink-dim:#b4b8bb;--ink-faint:#80868b;--pa:.95;--pb:.96;--hud-zoom:1;--pan-a:rgb(47 51 56 / var(--pa));--pan-b:rgb(23 25 28 / var(--pb));--bar-a:#4d5359;--bar-b:#2b2e32;--edge:#8b9299;--dark:#050607;--line:#d2d7dc24;--or:#ff8f26;--or-hi:#ffb15a;--or-lo:#f07a12;--good:#82e06e;--bad:#ff6f5c;--blue:#74bde8;--retro-panel:#2f3338f2;--retro-panel-dark:#17191cf5;--retro-border:#050607;--retro-green:#ffb15a;--retro-amber:#ff8f26}*{box-sizing:border-box}html,body,#game-canvas,#app-ui{width:100%;height:100%;margin:0;overflow:hidden}#game-canvas{display:block;outline:none;touch-action:none}#app-ui{position:fixed;inset:0;pointer-events:none;text-shadow:0 1px 2px #000a}#race-status,#race-info,#race-chat,#race-leaderboard,#race-menu,#finish-actions,#gamepad-settings,#keyboard-settings,#ghost-debug,#test-drive-controls,#race-name-entry form{background:linear-gradient(var(--pan-a),var(--pan-b));border:1px solid var(--dark);border-radius:5px;color:var(--ink);box-shadow:inset 0 0 0 1px #d2d7dc3d,inset 0 2px 0 1px #ffffff10,0 8px 22px #0009}.btn-like,#race-start,#race-run-again,#race-return-menu,#race-toolbar button,#keyboard-settings button,#gamepad-settings button,#race-chat button,#ghost-debug button,#race-name-entry button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:36px;padding:0 18px;font:600 14px var(--f-head);letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);background:linear-gradient(#5b6168,#33373c);border:1px solid var(--dark);border-radius:4px;cursor:pointer;box-shadow:inset 0 1px #ffffff47,inset 0 -2px #00000059,0 2px 4px #00000080;text-shadow:0 1px 0 #000a}.btn-like:hover,#race-toolbar button:hover,#keyboard-settings button:hover,#gamepad-settings button:hover,#race-name-entry button:hover{filter:brightness(1.12)}#race-start,#race-name-entry button.save-result{color:#261a05;text-shadow:0 1px 0 #ffffff66;background:linear-gradient(var(--or-hi),var(--or-lo));box-shadow:inset 0 1px #ffffffa6,inset 0 -2px #78360073,0 2px 5px #0000008c}select,input[type=text],input[type=number],input:not([type]){font-family:var(--f-body)}#race-menu select,#gamepad-settings select,#ghost-debug select{min-height:34px;padding:0 10px;color:var(--ink);font:15px var(--f-body);cursor:pointer;background:linear-gradient(#141618,#1f2226);border:1px solid var(--dark);border-radius:3px;box-shadow:inset 0 2px 4px #0000008c,0 1px #d2d7dc47}#race-menu select:hover{border-color:var(--or)}#race-menu select option{color:var(--ink);background:#1d2023}input[type=range]{accent-color:var(--or)}.panel-title,#race-leaderboard>strong{font:600 15px/1 var(--f-head);letter-spacing:2.2px;text-transform:uppercase;color:var(--or)}:focus-visible{outline:2px solid var(--or);outline-offset:2px}#race-hud-left{position:fixed;top:20px;left:var(--hud-edge);width:min(372px,calc(100vw - 32px));z-index:40;display:flex;flex-direction:column;gap:10px}#race-status{position:relative;width:100%;padding:12px 16px;pointer-events:auto;font:13px var(--f-body)}.race-status-title{padding-right:0;color:var(--ink-dim);font:600 12.5px var(--f-head);letter-spacing:1.8px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#race-time{margin:4px 0 10px;color:#fff6e6;font:600 31px/1 var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:1px;text-shadow:0 2px 0 #000a,0 0 14px #ff8f263d}#track-progress{min-height:14px;color:var(--ink-dim);line-height:1.3;font-size:12.5px}#race-info{padding:8px 14px 10px;font:14px/1.5 var(--f-body);pointer-events:auto}#race-info[hidden]{display:none}#race-info summary{color:var(--or);font:600 14px var(--f-head);letter-spacing:2px;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none}#race-info[open] #race-info-text{margin-top:6px}#race-info-text{max-height:84px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}#race-chat{padding:8px 14px 10px;font:13.5px/1.45 var(--f-body);pointer-events:auto}#race-chat summary{color:var(--or);font:600 14px var(--f-head);letter-spacing:2px;text-transform:uppercase;cursor:pointer}#race-chat .chat-messages{max-height:min(180px,25vh);overflow:auto;overflow-wrap:anywhere;overscroll-behavior:contain}#race-chat p{margin:5px 0}#race-chat strong{color:var(--or-hi)}#race-chat .chat-highlight-name{color:var(--or);font-weight:900}#race-chat .chat-link{color:var(--or-hi);text-decoration:underline;overflow-wrap:anywhere}#race-chat form{display:grid;gap:6px;margin-top:8px}#race-chat input{width:100%;min-width:0;padding:7px 9px;color:var(--ink);font:inherit;background:linear-gradient(#141618,#1f2226);border:1px solid var(--dark);border-radius:3px;box-shadow:inset 0 2px 4px #0000008c}#race-chat button{width:100%;min-width:0;min-height:32px}#race-chat :disabled{opacity:.5;cursor:default}#race-chat .chat-status{margin-top:4px;color:var(--ink-faint);font-size:11px}#race-chat .chat-messages .chat-format-bold{color:inherit;font-weight:900}#race-chat .chat-help{margin-top:6px;font-size:11px;overflow-wrap:anywhere}#race-chat .chat-help summary{letter-spacing:0;font:inherit;text-transform:none}#race-chat .chat-help code{color:var(--or-hi);font:inherit}body.mobile-driving #race-chat{font-size:11px}body.mobile-driving:has(#race-toolbar.mobile-open) #race-chat{display:none}body.mobile-driving:has(#race-chat[open]) #race-hud-left{max-height:65vh;overflow:auto}#race-toolbar{display:block}#ghost-debug{position:fixed;z-index:120;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,94vw);max-height:85vh;overflow:auto;padding:16px;font:13px/1.5 var(--f-body)}#ghost-debug[hidden]{display:none}#ghost-debug select{display:block;width:100%;margin:8px 0}#ghost-debug button{margin:3px}#ghost-debug pre{max-height:30vh;overflow:auto;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}#ghost-debug a{display:inline-block;margin:3px;padding:6px;color:var(--or-hi);border:1px solid var(--edge)}#car-tachometer{position:fixed;right:20px;bottom:20px;z-index:45;display:flex;align-items:flex-end;gap:12px;pointer-events:none;filter:drop-shadow(0 6px 12px #000a)}#car-tachometer .tach-dial{display:block;width:clamp(190px,22vw,300px);font-family:var(--f-num)}#car-tachometer .engine-power-graph{order:-1;display:block;width:clamp(217.5px,22.5vw,300px);margin-bottom:10px;font-family:var(--f-num)}@media(max-width:760px){#car-tachometer{right:7px;bottom:7px;gap:5px}#car-tachometer .tach-dial{width:145px}#car-tachometer .engine-power-graph{width:180px}}#race-leaderboard{position:fixed;right:var(--hud-edge);top:calc(34px + var(--hud-map-size));bottom:312px;width:var(--hud-map-size);min-height:120px;overflow:auto;z-index:40;padding:0 0 6px;color:var(--ink);pointer-events:auto;font:12px var(--f-body)}#race-leaderboard>strong{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:6px;height:32px;margin:0 0 4px;padding:0 12px;white-space:nowrap;background:linear-gradient(var(--bar-a),var(--bar-b));border-bottom:1px solid var(--dark);box-shadow:inset 0 1px #ffffff24;border-radius:4px 4px 0 0}#race-leaderboard .online-results-link{font:500 11px var(--f-body);letter-spacing:0;text-transform:none;text-decoration:none;color:var(--ink-dim)}#race-leaderboard .online-results-link:hover{color:var(--or-hi);text-decoration:underline}#race-leaderboard .public-statistics-link{display:block;margin:8px 12px 2px;padding:7px 0 2px;border-top:1px solid var(--line);text-align:center;font:600 12px var(--f-head);letter-spacing:1.6px;text-transform:uppercase;text-decoration:none;color:var(--ink-dim)}#race-leaderboard .public-statistics-link:hover{color:var(--or-hi)}#race-leaderboard ol{margin:0;padding:0 8px;list-style:none;counter-reset:place}#race-leaderboard li{counter-increment:none;position:relative;padding:5px 6px 5px 32px;border-bottom:1px solid var(--line)}#race-leaderboard li:nth-child(2n){background:#ffffff09}#race-leaderboard li:before{content:attr(value) ".";position:absolute;left:4px;top:5px;width:24px;text-align:right;font:600 14px var(--f-head);color:var(--ink-faint)}#race-leaderboard li:nth-child(-n+4):before{color:var(--or)}#race-leaderboard .result-details{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:8px;align-items:baseline}#race-leaderboard li b{color:#fff;font:600 14px var(--f-num);font-variant-numeric:tabular-nums;white-space:nowrap}#race-leaderboard li time{margin-top:2px;color:var(--ink-faint);font-size:10px;white-space:nowrap}#race-leaderboard li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#race-leaderboard .result-driver{color:var(--ink);font-size:13px;font-weight:600}#race-leaderboard .result-car{margin-top:2px;color:var(--ink-dim);font-size:11px}#race-leaderboard p{margin:8px 12px;color:var(--ink-dim)}#race-leaderboard a,#race-leaderboard button{color:var(--or-hi)}#race-leaderboard.race-compact{bottom:auto;min-height:0;max-height:max(100px,calc((100dvh - 10px) / var(--hud-zoom) - 54px - var(--hud-map-size) - clamp(190px,22vw,300px)))}#race-leaderboard.race-compact li time,#race-leaderboard.race-compact .result-car,#race-leaderboard.race-compact>p:not(.live-standing-hint){display:none}#race-leaderboard.race-compact .public-statistics-link{display:none}#race-leaderboard .live-standing-hint{margin:4px 12px;font-size:11px;color:var(--or-hi)}#race-leaderboard .current-driver{background:#ff8f2638!important;box-shadow:inset 0 0 0 1px #ff8f2680}#race-leaderboard .current-driver .result-driver,#race-leaderboard .current-driver b,#race-leaderboard .current-driver:before{color:#ffd9ae}#race-leaderboard .personal-record .result-driver,#race-leaderboard .personal-record:before{color:var(--good)}body[data-race-phase=waiting]:not(.mobile-driving) #race-leaderboard{top:24px;bottom:auto;right:24px;width:min(448px,calc(100vw - 48px));height:min(52vh,470px)}body[data-race-phase=waiting]:not(.mobile-driving) #race-leaderboard .result-details{grid-template-columns:104px minmax(0,1fr) auto;grid-template-areas:"t d dt" "t c c"}body[data-race-phase=waiting]:not(.mobile-driving) #race-leaderboard li b{grid-area:t;font-size:16px}body[data-race-phase=waiting]:not(.mobile-driving) #race-leaderboard .result-driver{grid-area:d}body[data-race-phase=waiting]:not(.mobile-driving) #race-leaderboard li time{grid-area:dt}body[data-race-phase=waiting]:not(.mobile-driving) #race-leaderboard .result-car{grid-area:c}body[data-race-phase=waiting]:not(.mobile-driving) #track-minimap,body[data-race-phase=waiting]:not(.mobile-driving) #car-tachometer{display:none!important}body[data-race-phase=waiting]:not(.mobile-driving) #race-hud-left{display:contents}body[data-race-phase=waiting]:not(.mobile-driving) #race-status{display:none}body[data-race-phase=waiting]:not(.mobile-driving) #race-info{position:fixed;right:24px;top:calc(36px + min(52vh,470px));width:min(448px,calc(100vw - 48px));z-index:40}body[data-race-phase=waiting]:not(.mobile-driving) #race-chat{position:fixed;right:24px;top:calc(156px + min(52vh,470px));width:min(448px,calc(100vw - 48px));z-index:40}body[data-race-phase=waiting]:has(#race-menu.open):not(.mobile-driving) :is(#race-leaderboard,#race-info,#race-chat){display:none}body[data-race-phase=countdown] #race-chat,body[data-race-phase=racing] #race-chat{display:none}#race-name-entry{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#050607b8;pointer-events:auto}#race-name-entry[hidden]{display:none}#race-name-entry form{width:min(440px,calc(100vw - 32px));padding:24px 26px;font-family:var(--f-body)}#race-name-entry h2{margin:0 0 8px;color:var(--or);font:600 22px var(--f-head);letter-spacing:3px;text-transform:uppercase}#race-name-entry strong,#race-name-entry label{display:block;margin:8px 0}#race-name-entry label{margin-top:16px;color:var(--ink-dim);font:600 12px var(--f-head);letter-spacing:2px;text-transform:uppercase}#race-name-entry input:not([type=checkbox]){width:100%;height:46px;padding:0 14px;border:1px solid var(--dark);border-radius:4px;outline:none;color:var(--ink);font:600 22px var(--f-num);letter-spacing:1px;background:linear-gradient(#0f1113,#1a1d20);box-shadow:inset 0 2px 5px #000a,0 1px #d2d7dc4d}#race-name-entry input:focus{border-color:var(--or);box-shadow:inset 0 2px 5px #000a,0 0 0 2px #ff8f2650}#race-name-entry button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:10px;padding:0 14px;min-height:44px;text-align:left}#race-name-entry kbd{flex:none;min-width:46px;padding:2px 8px;border:1px solid currentColor;border-radius:3px;font:600 12px var(--f-num);letter-spacing:.06em;text-align:center;opacity:.85}#race-name-entry p{color:var(--ink-dim);font-size:14px;line-height:1.4}#race-name-entry p.result-hint{margin:14px 0 0;color:var(--ink-faint);font-size:12px}body.mobile-driving #race-name-entry kbd{display:none}#race-name-entry .result-time{margin:6px 0 2px;color:#fff6e6;font:600 56px/1.05 var(--f-num);letter-spacing:1px;text-shadow:0 2px 0 #000a,0 0 14px #ff8f263d}#race-name-entry .result-difference{display:grid;gap:2px;margin:0 0 4px;font:600 16px var(--f-num)}#race-name-entry .result-difference .ahead{color:var(--good)}#race-name-entry .result-difference .behind{color:var(--bad)}#race-name-entry p.result-speed{margin:2px 0 4px;color:var(--ink-dim);font-size:14px}#race-name-entry p.result-speed.ahead{color:var(--good)}#race-name-entry p.result-speed[hidden]{display:none}#race-name-entry label.ghost-choice{display:flex;align-items:center;gap:10px;margin:12px 0 0;color:var(--ink-dim);font:13px var(--f-body);letter-spacing:0;text-transform:none;line-height:1.3;cursor:pointer}#race-name-entry label.ghost-choice input{flex:none;width:20px;height:20px;margin:0;padding:0;accent-color:var(--or)}#race-name-entry button.again-result{color:var(--or-hi)}#race-name-entry button.skip-result{color:var(--ink)}#race-name-entry button:disabled{opacity:.5;cursor:wait}#checkpoint-time{position:fixed;left:50%;top:9%;z-index:55;transform:translate(-50%);padding:8px 18px 9px;opacity:.6;color:#fff6e6;text-shadow:0 2px 0 #000a;font:600 24px/1.15 var(--f-num);letter-spacing:.03em;white-space:pre;text-align:center;pointer-events:none;background:linear-gradient(var(--pan-a),var(--pan-b));border:1px solid var(--dark);border-radius:6px;box-shadow:inset 0 0 0 1px #d2d7dc3d,0 8px 24px #000a}#checkpoint-time.ahead{box-shadow:inset 0 0 0 2px #82e06e8c,0 8px 24px #000a}#checkpoint-time.behind{box-shadow:inset 0 0 0 2px #ff6f5ca6,0 8px 24px #000a}#checkpoint-time:has(.split-comparisons){display:flex;align-items:flex-start;gap:18px;white-space:nowrap;max-width:95vw}.split-comparisons{display:flex;flex-direction:column;gap:4px;padding-top:2px;font-size:.58em;line-height:1.3;letter-spacing:0}#checkpoint-time .ahead{color:var(--good)}#checkpoint-time .behind{color:var(--bad)}#checkpoint-time[hidden]{display:none}#race-countdown{font:600 clamp(60px,12vw,160px)/1 var(--f-num)!important;color:#fff2d8!important;text-shadow:0 4px 0 #4b2406e6,0 0 30px #ff8f2680!important;top:22%!important}#rally-navigation{position:fixed;left:50%;top:20px;z-index:42;opacity:.4;display:grid;place-items:center;width:96px;height:96px;transform:translate(-50%);overflow:hidden;border:1px solid var(--dark);border-radius:6px;background:linear-gradient(var(--pan-a),var(--pan-b));box-shadow:inset 0 0 0 1px #d2d7dc3d,0 8px 22px #0009;color:var(--or);text-shadow:none;pointer-events:none}#rally-navigation[hidden]{display:none}#rally-navigation svg{width:78px;height:78px}#rally-navigation path{fill:none;stroke:var(--or);stroke-width:10;stroke-linecap:round;stroke-linejoin:round}@media(max-width:760px){:root{--hud-edge:7px}#race-leaderboard{bottom:165px}#car-readout{left:7px!important;bottom:48px!important;width:168px!important;padding:7px!important;font-size:9px!important}}@media(max-width:560px){#race-hud-left{width:calc(100vw - var(--hud-map-size) - 30px);min-width:175px}#race-time{font-size:18px}}#touch-controls,#mobile-race-actions,#leaderboard-toggle,#mobile-speed{display:none}#test-drive-controls{position:fixed;left:50%;bottom:16px;z-index:90;display:flex;flex-wrap:wrap;justify-content:center;gap:5px;width:min(560px,calc(100vw - 24px));transform:translate(-50%);padding:6px;pointer-events:auto}#test-drive-controls button{min-width:38px;height:34px;padding:0 8px;font:700 14px var(--f-num)}#test-drive-controls button.pressed{color:#261a05;background:linear-gradient(var(--or-hi),var(--or-lo))}#test-inspection-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;flex-basis:100%}#test-inspection-controls span{flex-basis:100%;text-align:center;color:var(--ink);font:12px var(--f-body)}body.test-free-camera :is(#race-menu,#main-menu,#race-hud-left,#race-leaderboard,#car-tachometer,#rally-navigation,#track-minimap,#car-readout){display:none!important}#teaser-cameras{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:95;display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:center;padding:7px;background:#17191cee;color:#fff;font:13px sans-serif}#teaser-cameras button{padding:6px;cursor:pointer}#teaser-cameras button.pressed{background:var(--or)}#teaser-recording{position:fixed;bottom:90px;left:50%;transform:translate(-50%);z-index:95;display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:center;width:min(850px,95vw);padding:7px;background:#17191cee;color:#fff;font:13px sans-serif}#teaser-recording button{padding:6px;cursor:pointer}#teaser-recording input{width:180px}body.teaser-playback :is(#race-hud-left,#race-menu,#main-menu,#race-leaderboard,#leaderboard-toggle,#car-tachometer,#rally-navigation,#track-minimap,#car-readout,#fps-counter,#test-drive-controls,#race-countdown,#checkpoint-time,#finish-actions){display:none!important}body.teaser-clean :is(#teaser-cameras,#teaser-recording,#race-hud-left,#race-menu,#main-menu,#race-leaderboard,#leaderboard-toggle,#car-tachometer,#rally-navigation,#track-minimap,#car-readout,#fps-counter,#test-drive-controls,#race-countdown,#checkpoint-time,#finish-actions){display:none!important}body.mobile-driving{--hud-edge:max(8px, env(safe-area-inset-right));--hud-map-size:clamp(94px,24vw,130px)}body.mobile-driving #race-hud-left{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));width:min(230px,calc(100vw - var(--hud-map-size) - 25px));min-width:0;gap:6px}body.mobile-driving #race-status{width:min(200px,100%);padding:5px 8px}body.mobile-driving .race-status-title,body.mobile-driving #track-progress{display:none}body.mobile-driving #race-time{margin:0;padding-right:34px;font-size:14px;line-height:1.2;letter-spacing:0;white-space:nowrap}body.mobile-driving #race-info{font-size:11px}body.mobile-driving #race-info-text{max-height:44px}body.mobile-driving #mobile-race-actions{display:flex;position:absolute;right:5px;top:5px;gap:4px}body.mobile-driving #mobile-race-actions button{width:32px;height:32px;padding:0;border:1px solid var(--dark);border-radius:6px;background:linear-gradient(#5b6168,#33373c);color:#fff;font:700 18px var(--f-num);touch-action:manipulation}body.mobile-driving #graphics-mode-toggle{position:static;font-size:12px;letter-spacing:0}body.mobile-driving #car-tachometer,body.mobile-driving #car-readout{display:none!important}body.mobile-driving #fps-counter{left:auto!important;bottom:auto!important;right:max(8px,env(safe-area-inset-right))!important;top:calc(max(8px,env(safe-area-inset-top)) + var(--hud-map-size) + 8px)!important;padding:4px 6px!important;font-size:11px!important}#graphics-debug{position:fixed;left:16px;bottom:70px;z-index:900000;margin:0;max-height:45vh;overflow:auto;pointer-events:none;padding:9px 11px;border:1px solid #66838b;border-radius:5px;background:#061016e8;color:#b9f6c9;box-shadow:0 2px 12px #0008;font:12px/1.35 Consolas,monospace;white-space:pre}body.mobile-driving #graphics-debug{left:8px;bottom:8px;max-height:32vh;font-size:10px}body.mobile-driving #mobile-speed{display:block;position:fixed;top:16px;right:calc(max(8px,env(safe-area-inset-right)) + var(--hud-map-size) + 8px);z-index:40;padding:5px 10px;border:1px solid var(--dark);border-radius:6px;color:var(--ink-dim);background:linear-gradient(var(--pan-a),var(--pan-b));font:600 11px var(--f-body);white-space:nowrap;pointer-events:none}body.mobile-driving #mobile-speed strong{color:#fff6e6;font:600 24px var(--f-num);font-variant-numeric:tabular-nums}body.mobile-driving #checkpoint-time{top:16%;font-size:clamp(13px,3vw,18px);padding:6px 12px}body.mobile-driving #rally-navigation{top:max(8px,env(safe-area-inset-top));width:70px;height:70px}body.mobile-driving #rally-navigation svg{width:58px;height:58px}body.mobile-driving #race-countdown{top:24%!important;font-size:clamp(35px,9vw,75px)!important}body.mobile-driving #race-leaderboard{display:none;left:max(8px,env(safe-area-inset-left));right:auto;top:calc(max(8px,env(safe-area-inset-top)) + 94px);bottom:calc(94px + env(safe-area-inset-bottom));width:min(300px,calc(100vw - 16px));z-index:75;font-size:12px}body.mobile-driving #race-leaderboard.mobile-open{display:block}body.mobile-driving #race-leaderboard.race-compact{bottom:auto;max-height:calc(100dvh - 210px)}body.mobile-driving #leaderboard-toggle{display:block;position:fixed;left:max(8px,env(safe-area-inset-left));top:calc(max(8px,env(safe-area-inset-top)) + 128px);z-index:80;padding:6px 10px;border:1px solid var(--dark);border-radius:5px;background:linear-gradient(#5b6168,#33373c);color:var(--or-hi);font:600 12px var(--f-head);letter-spacing:1.4px;touch-action:manipulation}body.mobile-driving:has(#race-toolbar.mobile-open) #leaderboard-toggle{display:none}body.mobile-driving:has(#race-toolbar.mobile-open) #race-info{display:none}body.mobile-driving #touch-controls{display:block;position:fixed;inset:0;z-index:80;pointer-events:none}body.mobile-driving .touch-steering,body.mobile-driving .touch-pedals{position:absolute;display:flex;gap:10px;pointer-events:none}body.mobile-driving .touch-steering{left:max(10px,env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom))}body.mobile-driving .touch-pedals{right:max(10px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom))}body.mobile-driving #touch-controls button{min-width:80px;height:76px;padding:0 9px;border:1px solid var(--dark);border-radius:12px;color:#fff6e6;background:linear-gradient(#4d535999,#25282cb3);box-shadow:inset 0 0 0 1px #d2d7dc59,inset 0 2px #ffffff2e,0 3px 8px #0008;font:600 19px var(--f-head);letter-spacing:1.5px;text-transform:uppercase;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body.mobile-driving #touch-controls .touch-brake{background:linear-gradient(#ff826e80,#82281cb8)}body.mobile-driving #touch-controls .touch-throttle{background:linear-gradient(#82e06e8c,#287a1ec2)}body.mobile-driving #touch-controls button.pressed{box-shadow:inset 0 0 0 2px var(--or),0 0 14px #ff8f2680;transform:scale(.96)}body.mobile-driving #race-name-entry form{max-height:calc(100dvh - 24px);overflow:auto}@media(max-height:420px){body.mobile-driving #touch-controls button{height:58px;min-width:70px}body.mobile-driving #race-leaderboard{bottom:65px}}@media(max-width:400px){body.mobile-driving #touch-controls button{min-width:clamp(62px,19vw,75px);padding:0 4px}body.mobile-driving #touch-controls .touch-brake,body.mobile-driving #touch-controls .touch-throttle{font-size:13px}}@media(max-width:560px){body.mobile-driving #mobile-speed{top:calc(max(8px,env(safe-area-inset-top)) + 52px)}}#gamepad-settings{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:90;width:min(460px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:18px;font:14px var(--f-body);pointer-events:auto}#gamepad-settings[hidden]{display:none}#gamepad-settings label{display:block;margin:12px 0 4px;color:var(--ink-dim)}#gamepad-settings select{max-width:100%}#gamepad-settings input[type=range]{display:block;width:100%}#gamepad-settings input[type=number]{width:90px;min-height:32px;color:var(--ink);background:linear-gradient(#141618,#1f2226);border:1px solid var(--dark);border-radius:3px;padding:0 8px}#gamepad-settings>p{white-space:pre-line;overflow-wrap:anywhere}#gamepad-settings button{margin:4px 0}#keyboard-settings{position:fixed;inset:5vh auto auto 50%;transform:translate(-50%);width:min(520px,calc(100vw - 24px));max-height:90vh;overflow:auto;padding:18px;font:14px var(--f-body);z-index:200;pointer-events:auto}#keyboard-settings[hidden]{display:none}#keyboard-settings>div>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0;padding:2px 0;border-bottom:1px solid var(--line)}#keyboard-settings>div button{min-width:130px}#race-sectors{margin:0 0 4px}.sector-track{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;height:12px;margin:0}.sector-cell{border-radius:2px;background:linear-gradient(#0a0b0d,#1b1e21);border:1px solid var(--dark);box-shadow:inset 0 1px 3px #000b,0 1px #d2d7dc40}.sector-cell.complete{background:linear-gradient(#5b6168,#3a3e43)}.sector-cell.ahead{background:linear-gradient(#a6f08f,#3da42d);border-color:var(--dark)}.sector-cell.behind{background:linear-gradient(#ff9a86,#c63a26);border-color:var(--dark)}.sector-dot{position:absolute;top:50%;width:11px;height:11px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid #2a1b04;background:linear-gradient(var(--or-hi),var(--or-lo));box-shadow:0 0 6px #ff8f26aa}.sector-deltas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:6px;text-align:center;font:600 14px var(--f-num);font-variant-numeric:tabular-nums}.sector-totals{margin-top:6px;padding-top:7px;border-top:1px solid var(--line);font-size:18px}.sector-deltas .ahead{color:var(--good)}.sector-deltas .behind{color:var(--bad)}#main-menu{position:fixed;left:50px;top:44px;width:min(400px,calc(100vw - 100px));z-index:60;pointer-events:auto;color:var(--ink);font-family:var(--f-body)}#main-menu:before{content:"";position:fixed;left:0;top:0;bottom:0;width:min(620px,100vw);z-index:-1;pointer-events:none;background:linear-gradient(90deg,#000000b8,#00000070 62%,#0000)}#main-menu[hidden]{display:none}#main-menu h1{margin:0;font:600 64px/.95 var(--f-head);letter-spacing:5px;color:#f7f3ea;text-shadow:0 4px 0 #4a2306,0 8px 18px #000b;white-space:nowrap}#main-menu .menu-rule{height:4px;margin:10px 0 8px;background:linear-gradient(90deg,var(--or-hi),var(--or-lo) 55%,#f07a1200);border-radius:2px}#main-menu .menu-car{margin:26px 0 8px}#main-menu .menu-track{margin:0 0 18px;padding-top:10px;border-top:1px solid #ffffff1f}.track-switch .car-current strong{font-size:20px;letter-spacing:2.5px}.track-switch .car-step{height:40px;font-size:30px}.track-switch .car-facts{display:none}:is(#main-menu,#race-menu) .car-step.inactive{visibility:hidden}.track-plan{margin-top:8px;padding:9px 12px 6px;background:linear-gradient(135deg,#17191cd9,#0c0d0fd9);border:1px solid #ffffff1f;border-radius:6px;box-shadow:inset 0 1px #ffffff12,0 6px 16px #0008}.plan-info{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.plan-info dl{display:flex;justify-content:space-between;flex:1;gap:12px;margin:0}.plan-info dt{white-space:nowrap;font:600 11px var(--f-head);letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim)}.plan-info dd{margin:1px 0 0;font:600 21px/1.1 var(--f-num);color:#fff6e6}.plan-legend{display:flex;justify-content:center;gap:16px;margin:2px 0;padding:0;list-style:none;font:500 12px var(--f-body);color:var(--ink-dim)}.plan-legend li:before{content:"";display:inline-block;width:9px;height:9px;margin-right:5px;border:1.5px solid #050607;border-radius:50%;vertical-align:-1px}.plan-legend .start:before{background:#82e06e}.plan-legend .check:before{background:var(--or)}.plan-legend .finish:before{background:#ff6f5c}.plan-map svg{display:block;width:100%;height:170px}.plan-casing,.plan-route{fill:none;stroke-linecap:round;stroke-linejoin:round}.plan-casing{stroke:#050607;stroke-width:7}.plan-route{stroke:#d6d9dc;stroke-width:3}.plan-start,.plan-finish,.plan-check{stroke:#050607;stroke-width:2}.plan-start{fill:#82e06e}.plan-finish{fill:#ff6f5c}.plan-check{fill:var(--or)}@media(max-height:800px){.plan-map svg{height:136px}}@media(max-height:700px){.plan-map svg{height:104px}.plan-legend{display:none}}@media(max-height:600px){#main-menu .track-plan{display:none}}.car-switch{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px 6px}:is(#main-menu,#race-menu) .car-step{height:52px;min-height:0;padding:0;font:400 36px/1 var(--f-body);color:var(--ink);background:none;border:0;border-radius:4px;cursor:pointer;text-shadow:0 2px 6px #000}:is(#main-menu,#race-menu) .car-step:hover{color:var(--or);background:#ffffff12}.car-current{min-width:0;text-align:center}.car-current strong{display:block;font:600 26px/1.1 var(--f-head);letter-spacing:2px;text-transform:uppercase;color:#fff6e6;text-shadow:0 2px 8px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.car-facts{display:block;min-height:20px;margin-top:4px;font:500 14px var(--f-body);color:var(--ink-dim);text-shadow:0 1px 4px #000}.car-switch.busy .car-current{opacity:.6}#race-menu .car-switch{margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.car-dots{grid-column:1 / -1;display:flex;justify-content:center;gap:0;margin-top:8px}:is(#main-menu,#race-menu) .car-dot{box-sizing:border-box;width:24px;height:24px;min-height:0;padding:7px;background:#6a7077;background-clip:content-box;border:0;border-radius:50%;cursor:pointer}:is(#main-menu,#race-menu) .car-dot[data-state=loading]{animation:car-dot-pulse 1s ease-in-out infinite}:is(#main-menu,#race-menu) .car-dot[data-state=error]{background-color:var(--bad)}:is(#main-menu,#race-menu) .car-dot[aria-pressed=true]{background-color:var(--or);box-shadow:0 0 10px #ff8f26aa}@keyframes car-dot-pulse{50%{opacity:.35}}#main-menu .menu-start{display:flex;align-items:center;gap:14px;width:100%;height:58px;padding:0 20px;font:600 22px var(--f-head);letter-spacing:3px;text-transform:uppercase;color:#261a05;text-shadow:0 1px 0 #ffffff66;background:linear-gradient(var(--or-hi),var(--or-lo));border:1px solid var(--dark);border-radius:5px;cursor:pointer;box-shadow:inset 0 1px #ffffffa6,inset 0 -2px #78360066,0 4px 12px #000a}#main-menu .menu-start svg{width:22px;height:22px;flex:none}#main-menu .menu-start:hover{filter:brightness(1.08)}#main-menu .menu-start:disabled{filter:grayscale(.7) brightness(.8);cursor:wait}#main-menu kbd{margin-left:auto;min-width:28px;height:26px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;font:600 14px var(--f-num);letter-spacing:0;color:#1b1a12;background:linear-gradient(#f5efd9,#cfc6a4);border:1px solid #2a261a;border-radius:4px;box-shadow:inset 0 -2px #00000040;text-shadow:none}#main-menu .menu-bars{display:grid;gap:8px}#main-menu .menu-bar{display:flex;align-items:center;gap:14px;width:100%;height:58px;padding:0 20px;font:600 22px var(--f-head);letter-spacing:3px;text-transform:uppercase;text-align:left;color:#f4f1ea;text-shadow:0 2px 6px #000;background:linear-gradient(#2d3034e6,#181a1dee);border:1px solid #ffffff2e;border-radius:5px;cursor:pointer;box-shadow:inset 0 1px #ffffff1c,inset 0 -2px #0006,0 4px 12px #000a}#main-menu .menu-bar:hover,#main-menu .menu-bar:focus-visible{color:var(--or-hi);border-color:var(--or);background:linear-gradient(#3a3d42f0,#1f2226f2)}#main-menu .menu-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:10px}#main-menu .menu-links a{padding:3px 0;font:500 12px var(--f-body);letter-spacing:.3px;color:var(--ink-dim);text-decoration:none;border-bottom:1px solid transparent;cursor:pointer;text-shadow:0 1px 4px #000}#main-menu .menu-links a:hover{color:var(--or-hi);border-bottom-color:var(--or)}body.mobile-driving #main-menu{display:none}@media(max-height:860px){#main-menu .menu-start,#main-menu .menu-bar{height:44px;font-size:18px;letter-spacing:2.5px}#main-menu .menu-bars{gap:6px}#main-menu .menu-links{margin-top:6px}}@media(max-height:780px){#main-menu .menu-start,#main-menu .menu-bar{height:38px;font-size:16px}#main-menu .menu-bars{gap:5px}#main-menu{top:28px}#main-menu h1{font-size:46px}#main-menu .menu-rule{margin:6px 0 4px}#main-menu .menu-car{margin:10px 0 2px}#main-menu .menu-track{margin-bottom:10px;padding-top:6px}.plan-map svg{height:84px}.plan-legend{display:none}.track-plan{margin-top:4px;padding:6px 10px 4px}.plan-info dd{font-size:18px}}#race-menu{position:fixed;left:500px;top:50%;transform:translateY(-50%);width:min(720px,calc(100vw - 540px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;z-index:70;padding:0;pointer-events:auto;font:15px/1.5 var(--f-body)}#race-menu[hidden],#finish-actions[hidden]{display:none}#race-menu:not(.open){display:none}.menu-window-head{display:flex;align-items:center;gap:12px;height:42px;padding:0 14px 0 18px;flex:none;background:linear-gradient(var(--bar-a),var(--bar-b));border-bottom:1px solid var(--dark);box-shadow:inset 0 1px #ffffff24;border-radius:4px 4px 0 0}.menu-window-head h2{margin:0;font:600 19px var(--f-head);letter-spacing:2.6px;text-transform:uppercase;color:var(--or)}.menu-window-head small{margin-left:auto;color:var(--ink-dim);font-size:12px}.menu-window-head button{width:30px;height:30px;padding:0;min-height:0;font-size:18px;letter-spacing:0}.menu-tabs{display:flex;gap:4px;padding:8px 12px 0;flex:none;background:linear-gradient(#25282c,#17191c);border-bottom:1px solid var(--dark)}.menu-tabs button{height:40px;padding:0 18px;font:600 14.5px var(--f-head);letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-dim);background:none;border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0;cursor:pointer}.menu-tabs button:hover{color:var(--ink)}.menu-tabs button[aria-selected=true]{color:var(--or);background:linear-gradient(var(--pan-a),var(--pan-b));border-color:var(--dark);box-shadow:inset 0 1px #ffffff24;height:41px}#race-menu #race-toolbar{display:block;position:static;width:auto;margin:0;padding:16px 22px 8px;border:0;background:none;box-shadow:none;overflow:auto;flex:1 1 auto;min-height:min(300px,40dvh)}.menu-pane{display:none}.menu-pane.on{display:block}.menu-pane h3{margin:14px 0 6px;padding-bottom:6px;font:600 15px var(--f-head);letter-spacing:2px;text-transform:uppercase;color:var(--or);border-bottom:1px solid var(--line)}.menu-pane h3:first-child{margin-top:0}.menu-pane>label{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:12px;min-height:46px;color:var(--ink-dim);border-bottom:1px solid var(--line);white-space:nowrap}.menu-pane>label>select{width:100%;max-width:320px}.menu-pane>label>input[type=range]{width:100%;max-width:320px;min-height:28px;margin:0;cursor:pointer}.menu-pane>label.language-choice{display:grid}.menu-pane>button{display:flex;width:100%;margin:8px 0 0;justify-content:flex-start}.menu-pane>.menu-note{margin:12px 0 0;color:var(--ink-faint);font-size:13px;white-space:normal}#race-menu #graphics-mode-toggle{position:static;width:100%;min-width:0;font-size:15px;letter-spacing:0;text-transform:none}#transmission-control{display:grid!important;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:12px;min-height:46px;color:var(--ink-dim);border-bottom:1px solid var(--line);white-space:nowrap}#transmission-mode{min-height:34px;padding:0 10px;color:var(--ink);font:15px var(--f-body);background:linear-gradient(#141618,#1f2226);border:1px solid var(--dark);border-radius:3px;max-width:320px;cursor:pointer}#race-controls{margin:0;padding:0;border:0;background:none}#race-controls #car-readout{display:block!important;position:static!important;width:100%!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--ink)!important;font:14px/1.7 var(--f-body)!important}body:not(.mobile-driving) .menu-window-foot{display:none}.menu-window-foot{display:flex;align-items:center;gap:12px;flex:none;padding:12px 22px 16px;border-top:1px solid var(--line)}.menu-window-foot .race-start-hint{margin:0;color:var(--ink-faint);font-size:13px;text-align:left}.menu-window-foot #race-start{margin-left:auto;min-width:200px;height:42px}#finish-actions{position:fixed;left:50%;top:17%;z-index:55;transform:translate(-50%);display:flex;gap:10px;padding:12px;max-width:95vw}#finish-actions button{white-space:nowrap}body.mobile-driving #finish-actions{top:26%;flex-wrap:wrap;justify-content:center}body[data-replay-preview=true] :is(#race-menu,#main-menu,#race-hud-left,#race-leaderboard,#leaderboard-toggle,#race-countdown,#checkpoint-time,#rally-navigation,#mobile-race-actions,#touch-controls){display:none!important}body[data-race-phase=waiting] #touch-controls,body[data-race-phase=finished] #touch-controls,body[data-race-phase=countdown] #race-info,body[data-race-phase=racing] #race-info{display:none}body.mobile-driving #race-status #track-progress{display:block;min-height:11px;font-size:10px}body.mobile-driving #race-sectors{margin:5px 0 2px}body.mobile-driving .sector-track{height:8px}body.mobile-driving .sector-dot{width:8px;height:8px}body.mobile-driving .sector-deltas{font-size:10px;margin-top:4px}body.mobile-driving .sector-totals{margin-top:2px;padding-top:2px;font-size:13px}body.mobile-driving #leaderboard-toggle{top:calc(max(8px,env(safe-area-inset-top)) + 115px)}body.mobile-driving:has(#race-info[open]):not([data-race-phase=countdown]):not([data-race-phase=racing]) #leaderboard-toggle{top:calc(max(8px,env(safe-area-inset-top)) + 173px)}body.mobile-driving #race-menu .menu-window-head button{display:none}body.mobile-driving[data-race-phase=waiting] :is(#track-minimap,#mobile-speed,#fps-counter,#leaderboard-toggle){display:none!important}@media(max-height:620px){#race-menu{top:8px;transform:none;max-height:calc(100dvh - 16px)}#race-menu #race-toolbar{padding:10px 16px 4px;min-height:0}.menu-window-foot{padding:8px 16px 10px}}@media(max-width:1180px){#race-menu{left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 32px))}}@media(max-width:1180px)and (max-height:620px){#race-menu{top:8px;transform:translate(-50%)}}body.mobile-driving #race-menu .race-start-hint{display:none}.menu-pane [hidden]{display:none!important}.menu-pane>label.has-output{grid-template-columns:190px minmax(0,1fr) 54px}.menu-pane>label.has-output>input[type=range]{max-width:none}.menu-pane output{font:600 15px var(--f-num);color:var(--ink);text-align:right}.menu-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 26px;margin:12px 0 4px}.menu-check{display:flex;align-items:center;gap:12px;min-height:32px;color:var(--ink);cursor:pointer}.menu-check input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border-radius:3px;cursor:pointer;background:linear-gradient(#141618,#1f2226);border:1px solid var(--dark);box-shadow:inset 0 2px 4px #0000008c,0 1px #d2d7dc47;display:grid;place-items:center}.menu-check input:checked:before{content:"✓";color:var(--or);font:700 18px/1 var(--f-body)}.menu-pane>button{width:auto;align-self:flex-start}#keyboard-settings.embedded,#gamepad-settings.embedded{position:static;transform:none;width:auto;max-height:none;margin:14px 0 0;padding:14px 16px;z-index:auto;box-shadow:inset 0 0 0 1px #d2d7dc2e}#keyboard-settings.embedded[hidden],#gamepad-settings.embedded[hidden]{display:none}.menu-pane>button#keyboard-settings-toggle,.menu-pane>button#gamepad-settings-toggle{width:100%}#race-hud-left,#car-tachometer,#rally-navigation,#track-minimap,#race-leaderboard,#checkpoint-time{zoom:var(--hud-zoom)}body.mobile-driving :is(#race-hud-left,#car-tachometer,#rally-navigation,#track-minimap,#race-leaderboard,#checkpoint-time){zoom:1}body.hud-no-map #track-minimap,body.hud-no-power #car-tachometer .engine-power-graph,body.hud-no-fps #fps-counter{display:none!important}body.hud-no-standings:is([data-race-phase=countdown],[data-race-phase=racing],[data-race-phase=finished]) #race-leaderboard{display:none}
