@font-face{font-family:Teko;font-weight:700;font-display:swap;src:url(/fonts/teko-bold.woff2)format("woff2")}:root{--accent:#fc3;--accent-ink:#1b1405;--primary:#e8402d;--primary-light:#f25a40;--primary-dark:#9c2717;--success:#6be37a;--danger:#ff6b6b;--ink:#0d1b28;--panel-top:#182c40f0;--panel-bottom:#0b1622f2;--panel-border:#ffffff1f;--surface:#ffffff0f;--surface-strong:#ffffff1f;--text-muted:#ffffffad;--hud-plate:#08101a94;--hud-text-shadow:0 2px 0 #00000073, 0 2px 10px #0000008c;--checkered:repeating-conic-gradient(#fff 0 25%, #14222f 0 50%) 0 0 / 10px 10px;--ease-out:cubic-bezier(.22, 1, .36, 1);--title-font:"Teko", system-ui, sans-serif}*{box-sizing:border-box}html,body{color:#fff;background:#0f1e2b;height:100%;margin:0;font-family:system-ui,sans-serif;overflow:hidden}#game-canvas{width:100vw;height:100vh;display:block}#hud{pointer-events:none;position:fixed;inset:0}#hud:empty:after{content:"Chargement…";font-family:var(--title-font);letter-spacing:.08em;text-transform:uppercase;place-items:center;font-size:44px;font-weight:700;animation:.9s ease-in-out infinite alternate loading-pulse;display:grid;position:absolute;inset:0}@keyframes loading-pulse{0%{opacity:.45}to{opacity:1}}@keyframes fade-in{0%{opacity:0}}@keyframes panel-enter{0%{opacity:0;transform:translateY(14px)scale(.98)}}@keyframes drop-in{0%{opacity:0;transform:translateY(-12px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}@keyframes slide-in-from-right{0%{opacity:0;transform:translate(24px)}}@keyframes countdown-pop{0%{opacity:0;transform:scale(1.7)}35%{opacity:1;transform:scale(.94)}60%{transform:scale(1)}to{opacity:1;transform:scale(1)}}@keyframes finish-title-enter{0%{opacity:0;transform:skew(-8deg)scale(1.25)}to{opacity:1;transform:skew(-8deg)scale(1)}}@keyframes record-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes waiting-pulse{0%{opacity:1}to{opacity:.5}}.input-debug-panel{background:#0000008c;border-radius:8px;width:280px;padding:12px 16px;font-size:13px;position:absolute;top:240px;left:16px}.input-debug-panel h2{text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:14px}.input-debug-row{justify-content:space-between;align-items:center;gap:12px;height:24px;display:flex}.centered-bar{background:#fff3;border-radius:4px;width:140px;height:8px;position:relative}.centered-bar>div{background:var(--accent);border-radius:4px;height:100%;position:absolute;top:0}.indicator{background:#fff3;border-radius:50%;width:12px;height:12px}.indicator.active{background:var(--primary)}.input-debug-help{opacity:.7;margin:8px 0 0;font-size:12px}.loading-error{text-align:center;place-items:center;margin:0;padding:24px;font-size:18px;display:grid;position:fixed;inset:0}.menu-screen{border:1px solid var(--panel-border);background:linear-gradient(180deg, var(--panel-top), var(--panel-bottom));pointer-events:auto;width:min(420px,100vw - 32px);animation:panel-enter .26s var(--ease-out) both;border-radius:16px;grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 28px 28px;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 18px 40px #00000059}.menu-screen[hidden]{display:none}.menu-screen h1,.menu-screen h2{font-family:var(--title-font);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:700;line-height:1}.menu-screen h1{font-size:56px}.menu-screen h2{align-items:center;gap:10px;font-size:28px;display:flex}.menu-screen h2:before{content:"";background:var(--accent);border-radius:2px;flex:none;width:6px;height:.7em;transform:skew(-14deg)translateY(-.06em)}.game-title{text-align:center;white-space:nowrap;text-shadow:0 4px 0 var(--primary-dark), 0 8px 18px #00000059;margin-bottom:4px;font-size:76px;transform:skew(-8deg)}.menu-screen .game-title{letter-spacing:.01em;font-size:62px;line-height:.85}.game-title-accent{color:var(--accent)}.game-title:after,.results-screen h1:after,.race-finish h1:after{content:"";background:var(--checkered);border-radius:2px;width:72%;height:10px;margin:6px auto 0;display:block;box-shadow:0 2px 6px #00000059}.results-screen h1:after{width:120px;margin-left:0}.menu-section{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.menu-row{gap:8px;display:flex}.menu-row>input,.menu-row>select{flex:1;width:0;min-width:0}.menu-row>.menu-button{flex:none}.menu-field{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;gap:6px;font-size:12px;font-weight:600;display:grid}.menu-field>input,.menu-field>select,.menu-field>strong{color:#fff;letter-spacing:normal;text-transform:none}.menu-field>strong{font-size:16px}.menu-field>strong[hidden],.menu-field>select[hidden]{display:none}.menu-screen input,.menu-screen select{color:#fff;min-height:44px;font:inherit;background-color:#00000047;border:1px solid #ffffff2e;border-radius:10px;outline:none;padding:10px 12px;font-size:16px;font-weight:500}.menu-screen input::placeholder{color:#fff6}.menu-screen input:focus-visible,.menu-screen select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #ffcc3347}.menu-screen select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M2 5l5 5 5-5' fill='none' stroke='%23ffcc33' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}.menu-screen select option{color:#000}.menu-screen input[data-room-code]{font-family:var(--title-font);letter-spacing:.3em;text-transform:uppercase;padding-top:8px;padding-bottom:4px;font-size:28px;font-weight:700;line-height:1}.menu-screen input[data-room-code]::placeholder{letter-spacing:.2em}.menu-button{background:var(--surface-strong);color:#fff;min-height:44px;font-family:var(--title-font);letter-spacing:.05em;text-align:center;text-transform:uppercase;cursor:pointer;transition:transform .14s var(--ease-out), opacity .14s ease;border:0;border-radius:10px;justify-content:center;align-items:center;padding:7px 18px 3px;font-size:23px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff38,0 4px #00000052}.menu-button.primary{background:linear-gradient(180deg, var(--primary-light), var(--primary));box-shadow:inset 0 1px 0 #ffffff40, 0 4px 0 var(--primary-dark)}.menu-button:focus-visible,.pause-tab:focus-visible,.key-slot:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.menu-button:active:not(:disabled){transform:translateY(3px)scale(.98)}.menu-button[hidden]{display:none}@media (hover:hover){.menu-button:hover:not(:disabled){background:#fff3;transform:translateY(-2px)}.menu-button.primary:hover:not(:disabled){background:linear-gradient(180deg, #ff6c50, var(--primary-light))}.menu-button:active:not(:disabled){transform:translateY(3px)scale(.98)}}.menu-error{color:#ff9a90;min-height:1.2em;margin:0;font-size:14px;font-weight:600}.menu-hint{color:var(--text-muted);margin:0;font-size:14px;line-height:1.4}.home-layout{pointer-events:auto;background:repeating-linear-gradient(115deg,#ffffff09 0 36px,#0000 36px 110px),radial-gradient(120% 90% at 50% 0,#3f93b8 0%,#2c6e8f 42%,#153549 100%);flex-wrap:wrap;place-content:safe center center;align-items:flex-start;gap:20px;padding:16px;display:flex;position:absolute;inset:0;overflow-y:auto}.home-layout>.menu-screen{width:min(420px,100%);position:relative;top:auto;left:auto;translate:none}.home-layout>.leaderboard-panel{flex:540px;min-width:min(400px,100%);max-width:720px;animation-delay:70ms}.lobby-screen{width:min(380px,100vw - 32px);max-height:calc(100vh - 40px);animation-name:slide-in-from-right;top:20px;left:auto;right:20px;overflow-y:auto;translate:none}.lobby-screen h2{font-size:32px}.room-code{color:var(--accent);letter-spacing:.14em;background:#ffcc3324;border-radius:6px;padding:2px 8px 0}.player-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.player-list li{background:var(--surface);border-radius:10px;align-items:center;gap:10px;min-height:42px;padding:6px 10px 6px 12px;font-weight:600;display:flex}.player-color{border-radius:50%;flex:none;width:16px;height:16px;box-shadow:0 0 0 2px #00000059,0 0 0 4px #ffffff40}.player-status{background:var(--surface-strong);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;margin-left:auto;padding:3px 9px 2px;font-size:11px;font-weight:700}.player-status.host{color:var(--accent);background:#fc33}.player-status.ready{color:var(--success);background:#6be37a2e}.player-status.disconnected{color:var(--danger);background:#ff6b6b2e}.results-screen{width:min(600px,100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}.results-table{border-collapse:separate;border-spacing:0 4px;font-variant-numeric:tabular-nums;width:100%;font-size:15px}.results-table th,.results-table td{text-align:left;padding:7px 10px}.results-table th{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding-top:0;padding-bottom:0;font-size:11px;font-weight:700}.results-table td{background:var(--surface)}.results-table td:first-child{width:3.2em;font-family:var(--title-font);border-radius:8px 0 0 8px;padding-top:8px;padding-bottom:4px;font-size:22px;font-weight:700;line-height:1}.results-table td:last-child{border-radius:0 8px 8px 0}.results-table tbody tr:first-child td:first-child{color:#ffd75e}.results-table tbody tr:nth-child(2) td:first-child{color:#d9e2ec}.results-table tbody tr:nth-child(3) td:first-child{color:#e7a46a}.results-table tr.local-player td{background:#fc33}.results-table tr.local-player td:first-child{box-shadow:inset 4px 0 var(--accent)}.leaderboard{gap:8px;display:grid}.leaderboard-panel{width:min(560px,100vw - 32px)}.leaderboard-table{font-size:15px}.leaderboard-table:has(tbody:empty){display:none}.leaderboard-table td:nth-child(2){font-weight:600}.leaderboard-table td:nth-child(5){color:var(--text-muted);white-space:nowrap;font-size:12px}.leaderboard-mode{background:var(--surface-strong);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;vertical-align:1px;border-radius:999px;margin-left:2px;padding:2px 6px 1px;font-size:10px;font-weight:700;display:inline-block}.leaderboard .menu-hint{text-align:center;border:1px dashed #ffffff2e;border-radius:10px;padding:14px}.leaderboard .menu-hint:empty,.leaderboard .menu-hint[hidden]{display:none}.room-notice{z-index:6;pointer-events:auto;max-width:calc(100vw - 32px);animation:drop-in .26s var(--ease-out) both;background:#b0261ef0;border:1px solid #fff3;border-radius:12px;margin:0;padding:12px 18px;font-weight:600;position:absolute;top:20px;left:50%;translate:-50%;box-shadow:0 10px 24px #00000059}.room-notice[hidden]{display:none}.room-notice a{color:#fff;text-underline-offset:3px;margin-left:8px;font-weight:700}.race-panel{border-left:5px solid var(--accent);background:linear-gradient(90deg, var(--hud-plate) 0%, #08101a4d 65%, transparent);font-family:var(--title-font);text-shadow:var(--hud-text-shadow);border-radius:4px;justify-items:start;padding:8px 56px 10px 16px;font-weight:700;line-height:1;display:grid;position:absolute;top:16px;left:16px}.race-position{font-size:64px;line-height:.85}.race-lap{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:28px}.race-time{font-variant-numeric:tabular-nums;font-size:40px}.race-delta{font-variant-numeric:tabular-nums;animation:rise-in .2s var(--ease-out) both;background:#08101a99;border-radius:6px;margin-top:4px;padding:3px 8px 0;font-size:30px}.race-delta[hidden]{display:none}.race-delta.faster{color:var(--success)}.race-delta.slower{color:var(--danger)}.speedometer{border-right:5px solid var(--primary);background:linear-gradient(270deg, var(--hud-plate) 0%, #08101a4d 65%, transparent);text-shadow:var(--hud-text-shadow);border-radius:4px;align-items:baseline;gap:8px;padding:6px 16px 0 48px;display:flex;position:absolute;bottom:16px;right:16px}.speedometer[hidden]{display:none}.speedometer-value{min-width:3ch;font-family:var(--title-font);font-variant-numeric:tabular-nums;text-align:right;font-size:88px;font-weight:700;line-height:.9}.speedometer-unit{color:var(--accent);font-family:var(--title-font);font-size:30px;font-weight:700}.race-countdown{font-family:var(--title-font);text-shadow:0 6px #00000059,0 0 40px #00000073;place-content:center;font-size:220px;font-weight:700;line-height:1;display:grid;position:absolute;inset:0}.race-countdown-value{animation:countdown-pop .42s var(--ease-out) both;display:block}.race-countdown-value.go{color:var(--accent);font-style:italic}.race-finish{text-align:center;pointer-events:auto;background:radial-gradient(at 50% 40%,#08101a80,#08101ad1);align-content:safe center;justify-items:center;gap:16px;padding:24px 16px;animation:.3s both fade-in;display:grid;position:absolute;inset:0;overflow-y:auto}.race-finish[hidden]{display:none}.race-finish h1{font-family:var(--title-font);letter-spacing:.04em;text-transform:uppercase;text-shadow:0 5px 0 var(--primary-dark), 0 10px 24px #00000073;animation:finish-title-enter .42s var(--ease-out) both;margin:0;font-size:120px;font-weight:700;line-height:.8;transform:skew(-8deg)}.race-finish-details,.race-finish .leaderboard{border:1px solid var(--panel-border);background:linear-gradient(180deg, var(--panel-top), var(--panel-bottom));text-align:left;width:min(560px,100vw - 32px);animation:panel-enter .32s var(--ease-out) .12s both;border-radius:14px;padding:14px 22px;box-shadow:0 14px 32px #00000059}.race-finish-details{width:min(460px,100vw - 32px);font-size:18px;display:grid}.race-finish .leaderboard{animation-delay:.2s}.race-finish-line{color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:24px;padding:6px 0 2px;display:flex}.race-finish-line+.race-finish-line{border-top:1px solid #ffffff17}.race-finish-line span,.race-finish-line strong{white-space:nowrap}.race-finish-line strong{color:#fff;font-family:var(--title-font);font-variant-numeric:tabular-nums;font-size:34px;line-height:1}.race-finish-line.faster strong{color:var(--success);text-shadow:0 0 16px #6be37a73;animation:record-pop .52s var(--ease-out) .45s both}.race-finish>p{color:#ffffffd9;background:#08101a99;border-radius:999px;margin:0;padding:8px 16px;font-size:15px}.live-standings{min-width:240px;font-family:var(--title-font);text-shadow:var(--hud-text-shadow);animation:slide-in-from-right .26s var(--ease-out) both;gap:4px;margin:0;padding:0;font-size:24px;font-weight:700;line-height:1.1;list-style:none;display:grid;position:absolute;top:16px;right:16px}.live-standings[hidden]{display:none}.live-standings li{background:var(--hud-plate);border-left:6px solid #fff;border-radius:4px;grid-template-columns:2.2em 1fr auto;align-items:baseline;gap:8px;padding:4px 12px 0 10px;display:grid}.live-standings li.local-player{background:#966c0ab8;box-shadow:inset 0 0 0 2px #ffcc33d9}.live-standings-position{color:var(--accent)}.live-standings li.local-player .live-standings-position{color:#fff}.live-standings-progress{color:#ffffffc7;font-size:20px}.controls-hint{border:1px solid var(--panel-border);width:max-content;max-width:calc(100vw - 32px);animation:rise-in .26s var(--ease-out) both;background:#0a141ec7;border-radius:14px;flex-wrap:wrap;justify-content:center;gap:10px 22px;padding:12px 20px;font-size:15px;font-weight:600;display:flex;position:absolute;bottom:124px;left:50%;translate:-50%;box-shadow:0 10px 24px #0000004d}.controls-hint[hidden]{display:none}.controls-hint-item{align-items:center;gap:8px;display:flex}.controls-hint-keys{gap:2px;display:flex}.input-prompt{vertical-align:middle;width:34px;height:34px}.input-prompt-text{border:2px solid #fff;border-radius:6px;place-content:center;width:auto;min-width:34px;padding:0 6px;font-size:12px;font-weight:700;display:inline-grid}.pause-overlay{z-index:10;text-align:center;pointer-events:auto;background:radial-gradient(at 50% 40%,#060c1480,#060c14c7);place-items:center;padding:16px;animation:.16s both fade-in;display:grid;position:absolute;inset:0;overflow-y:auto}.pause-overlay[hidden]{display:none}.pause-panel{border:1px solid var(--panel-border);background:linear-gradient(180deg, var(--panel-top), var(--panel-bottom));width:min(680px,100vw - 32px);max-height:calc(100vh - 32px);animation:panel-enter .24s var(--ease-out) both;border-radius:16px;justify-items:center;gap:14px;padding:22px 28px 24px;display:grid;overflow-y:auto;box-shadow:0 24px 48px #0006}.pause-overlay h1{font-family:var(--title-font);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 4px 0 var(--primary-dark);margin:0;font-size:76px;font-weight:700;line-height:.8;transform:skew(-8deg)}.pause-overlay p.pause-hint{color:var(--text-muted);margin:0;font-size:15px}.pause-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.pause-tabs{background:#0000004d;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:4px;padding:4px;display:flex}.pause-tab{color:var(--text-muted);font-family:var(--title-font);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 16px 4px;font-size:22px;font-weight:700;line-height:1}.pause-tab.selected{background:var(--accent);color:var(--accent-ink)}@media (hover:hover){.pause-tab:not(.selected):hover{background:var(--surface);color:#fff}}.pause-tab[hidden],.pause-tab-panel[hidden]{display:none}.pause-tab-panel{text-align:left;width:100%;animation:.18s both fade-in}.key-bindings-table{border-collapse:collapse;text-align:left;width:100%}.key-bindings-table th{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding:0 8px 6px;font-size:11px;font-weight:700}.key-bindings-table td{border-top:1px solid #ffffff14;padding:3px 8px;font-size:15px;font-weight:600}.key-bindings-table td:first-child{width:40%}.key-bindings-fixed td{color:var(--text-muted)}.key-slot{background:var(--surface);color:#fff;min-width:56px;min-height:44px;font:inherit;cursor:pointer;transition:transform .14s var(--ease-out);border:1px solid #fff3;border-radius:10px;padding:2px 8px}.key-slot.empty{color:#fff6}.key-slot.waiting{border-color:var(--accent);color:var(--accent);background:#ffcc3324;font-size:13px;animation:.7s ease-in-out infinite alternate waiting-pulse}.key-slot:active{transform:scale(.95)}@media (hover:hover){.key-slot:hover{border-color:var(--accent);background:var(--surface-strong)}}.key-bindings-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.key-bindings-footer .menu-hint{flex:240px}.volume-panel{gap:8px;display:grid}.volume-field{background:var(--surface);border-radius:12px;grid-template-columns:110px 1fr 64px;align-items:center;gap:16px;padding:10px 16px;font-weight:600;display:grid}.volume-field output{font-family:var(--title-font);font-variant-numeric:tabular-nums;text-align:right;font-size:26px;line-height:1}.volume-field input[type=range]{--volume-fill:100%;appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:0}.volume-field input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--volume-fill), #ffffff29 var(--volume-fill));border-radius:999px;height:10px}.volume-field input[type=range]::-webkit-slider-thumb{border:4px solid var(--accent);appearance:none;width:24px;height:24px;transition:transform .14s var(--ease-out);background:#fff;border-radius:50%;margin-top:-7px;box-shadow:0 2px 6px #00000073}.volume-field input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}.volume-field input[type=range]::-moz-range-track{background:#ffffff29;border-radius:999px;height:10px}.volume-field input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:10px}.volume-field input[type=range]::-moz-range-thumb{border:4px solid var(--accent);width:16px;height:16px;transition:transform .14s var(--ease-out);background:#fff;border-radius:50%;box-shadow:0 2px 6px #00000073}.volume-field input[type=range]:active::-moz-range-thumb{transform:scale(1.15)}.volume-field input[type=range]:focus-visible{outline:none}.volume-field input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #fc36}.volume-field input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px #fc36}.credits{gap:4px;margin:0;padding:0;font-size:15px;line-height:1.4;list-style:none;display:grid}.credits li{background:var(--surface);color:#ffffffe0;border-radius:10px;padding:8px 14px}.credits a{color:var(--accent);text-underline-offset:3px;font-weight:700}@media (height<=640px){.menu-screen{gap:12px;padding:18px 24px 22px}.menu-screen .game-title{font-size:56px}.pause-panel{gap:10px;padding:16px 22px 18px}.pause-overlay h1{font-size:60px}.race-finish h1{font-size:92px}.race-countdown{font-size:180px}}@media (prefers-reduced-motion:reduce){.menu-screen,.room-notice,.race-delta,.race-countdown-value,.race-finish-details,.race-finish .leaderboard,.race-finish-line.faster strong,.live-standings,.controls-hint,.pause-panel{animation-name:fade-in}.race-finish h1{animation:.3s both fade-in}#hud:empty:after,.key-slot.waiting{animation:none}.menu-button,.key-slot{transition:none}.volume-field input[type=range]::-webkit-slider-thumb{transition:none}.volume-field input[type=range]::-moz-range-thumb{transition:none}.menu-button:hover:not(:disabled),.menu-button:active:not(:disabled),.key-slot:active{transform:none}.volume-field input[type=range]:active::-webkit-slider-thumb{transform:none}.volume-field input[type=range]:active::-moz-range-thumb{transform:none}}.leaderboard-filter{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;justify-self:start;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:inline-flex}.leaderboard-filter input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.leaderboard-table tr.tool-assisted td{opacity:.72}.tool-assisted-badge{color:var(--danger);cursor:help;background:#ff6b6b38}.tool-assistance-notice{max-width:520px;color:var(--danger);margin:0 auto;font-size:14px}.tool-assistance-notice[hidden]{display:none}.leaderboard-table{table-layout:fixed}.leaderboard-table th{white-space:nowrap}.leaderboard-rank-column{width:40px}.leaderboard-time-column{width:88px}.leaderboard-lap-column{width:122px}.leaderboard-date-column{width:96px}.leaderboard-table th:nth-child(5),.leaderboard-table td:nth-child(5){text-align:right}.leaderboard-replay-column{width:40px}.leaderboard-table td:last-child{text-align:center}.leaderboard-replay-link{background:var(--surface-strong);width:26px;height:26px;color:var(--accent);border-radius:50%;place-content:center;font-size:11px;text-decoration:none;display:inline-grid}@media (hover:hover){.leaderboard-replay-link:hover{background:var(--accent);color:var(--accent-ink)}}.rival-ghost-label{background:var(--hud-plate);color:#cfe8ff;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600;position:absolute;top:20px;left:50%;transform:translate(-50%)}.leaderboard-table td{white-space:nowrap}.leaderboard-pilot{align-items:center;gap:6px;min-width:0;display:flex}.leaderboard-pilot-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.leaderboard-pilot .leaderboard-mode{flex-shrink:0;margin-left:0}.leaderboard{container-type:inline-size}@container (width<=600px){.leaderboard-date-column,.leaderboard-table th:nth-child(5),.leaderboard-table td:nth-child(5){display:none}}.menu-button.danger{color:var(--danger);box-shadow:inset 0 0 0 1px #ff6b6b8c,0 4px #00000052}.menu-button:disabled{opacity:.55;cursor:default}.replay-panel{border:1px solid var(--panel-border);background:linear-gradient(180deg, var(--panel-top), var(--panel-bottom));pointer-events:auto;border-radius:14px;gap:12px;width:min(940px,100vw - 32px);padding:16px 20px;display:grid;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #00000059}.replay-title{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.replay-title strong{font-family:var(--title-font);font-size:30px;line-height:1}.replay-title span:last-child{color:var(--text-muted)}.replay-label{background:var(--accent);color:var(--accent-ink);font-family:var(--title-font);text-transform:uppercase;border-radius:6px;padding:3px 8px 1px;font-size:18px}.replay-timeline{grid-template-columns:auto 1fr;align-items:center;gap:14px;display:grid}.replay-time{font-family:var(--title-font);font-variant-numeric:tabular-nums;font-size:24px}.replay-timeline input{width:100%;accent-color:var(--accent)}.replay-actions{flex-wrap:wrap;gap:10px;display:flex}.replay-actions .menu-button{font-size:19px}.replay-notice{color:var(--text-muted);margin:0;font-size:14px}.replay-notice[hidden]{display:none}.admin-screen{pointer-events:auto;align-content:start;gap:18px;padding:28px max(16px,50vw - 600px);display:grid;position:absolute;inset:0;overflow-y:auto}.admin-header,.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-toolbar{justify-content:flex-start}.admin-toolbar [data-admin-logout]{margin-left:auto}.admin-header h1{font-family:var(--title-font);text-transform:uppercase;margin:0;font-size:56px}.admin-login{gap:12px;width:min(420px,100%);display:grid}.admin-login[hidden],.admin-records[hidden]{display:none}.admin-records{gap:12px;display:grid}.admin-table td{vertical-align:middle}.admin-report-count{font-family:var(--title-font);color:var(--danger);text-align:center;font-size:24px}.admin-actions{flex-wrap:wrap;gap:6px;display:flex}.admin-actions .menu-button{min-height:34px;padding:5px 12px 2px;font-size:16px}
