:root{--ink:#eef2f7;--dim:#8b95a5;--accent:#f2c14e;--hot:#e8552f;--panel:#0c0f149e;--font-display:"Avenir Next Condensed", "HelveticaNeue-CondensedBold", "Roboto Condensed", "Liberation Sans Narrow", system-ui, sans-serif;--font-figure:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--font-ui:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--step-0:11px;--step-1:13px;--step-2:16px;--step-3:22px;--step-4:30px;--track-wide:.22em;--track-ui:.08em}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#0c0f14;margin:0;overflow:hidden}#app{width:100vw;height:100vh;height:100dvh;position:relative}#view{width:100%;height:100%;display:block}#hud{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:absolute;inset:0}.hud-corner{padding:18px 22px;position:absolute}.hud-tl{top:0;left:0}.hud-bl{bottom:0;left:0}.hud-br{text-align:right;bottom:0;right:0}.hud-br .rpm,.hud-br .cluster{background:var(--panel);border-radius:5px;padding:2px 12px}.hud-br .rpm{padding:0}.readout{letter-spacing:.08em;text-transform:uppercase;background:var(--panel);border-radius:3px;margin-bottom:6px;padding:4px 10px;font-size:13px;display:inline-block}.readout.dim{color:var(--dim)}.help{white-space:nowrap;background:var(--panel);max-width:300px;color:var(--dim);letter-spacing:.05em;text-shadow:0 1px 2px #000000e6;border-radius:4px;padding:6px 10px;font-size:11px}.help b{color:var(--ink);font-weight:600}.cluster{justify-content:flex-end;align-items:baseline;gap:14px;display:flex}.speed{font-family:var(--font-figure);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-shadow:0 2px 10px #000000e6,0 0 22px #0000008c;font-size:60px;font-weight:700;line-height:.9}.speed em{color:var(--dim);letter-spacing:.1em;margin-left:6px;font-size:15px;font-style:normal}.gear{color:var(--accent);text-align:center;text-shadow:0 2px 10px #000000e6;min-width:34px;font-size:40px;font-weight:700}.rpm{background:#ffffff1f;border-radius:3px;width:260px;height:6px;margin:0 0 10px auto;overflow:hidden}.rpm-fill{background:var(--accent);width:0;height:100%;transition:background-color 90ms linear}.rpm-fill.redline{background:var(--hot)}.drift{letter-spacing:.14em;height:22px;color:var(--accent);text-shadow:0 2px 8px #000000e6;margin-top:8px;font-size:15px;font-weight:700}.drift.big{color:var(--hot)}.tuning{pointer-events:auto;background:#0a0d12f0;border-left:1px solid #ffffff1a;flex-direction:column;width:330px;max-height:100vh;font-size:12px;display:none;position:absolute;top:0;right:0}.tuning.is-open{display:flex}.tuning header,.tuning footer{letter-spacing:.1em;border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;padding:10px 14px;display:flex}.tuning footer{border-top:1px solid #ffffff1a;border-bottom:none}.tuning .muted{color:var(--dim);letter-spacing:.04em;font-size:11px}.tuning button{font:inherit;color:var(--ink);cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:3px;padding:5px 10px}.tuning button:hover{background:#ffffff29}.tuning-body{padding:4px 14px 12px;overflow-y:auto}.tuning-body::-webkit-scrollbar{width:8px}.tuning-body::-webkit-scrollbar-thumb{background:#ffffff29}.tuning h4{letter-spacing:.16em;color:var(--accent);text-transform:uppercase;margin:14px 0 4px;font-size:11px}.tuning .hint{color:var(--dim);margin:0 0 8px;font-size:10.5px;line-height:1.45}.tuning-row{grid-template-columns:108px 1fr 48px;align-items:center;gap:8px;margin-bottom:5px;display:grid}.tuning-name{color:var(--dim);font-size:11px}.tuning-value{text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.tuning-value.changed{color:var(--accent);font-weight:700}.tuning input[type=range]{appearance:none;background:#ffffff2e;border-radius:2px;width:100%;height:3px}.tuning input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:12px;height:12px}.tuning-telemetry{background:#ffffff08;border-bottom:1px solid #ffffff1a;padding:10px 14px}.tel-row{justify-content:space-between;margin-bottom:3px;display:flex}.tel-row span{color:var(--dim)}.tel-row b{font-variant-numeric:tabular-nums}.tel-row b.under{color:#6fa8ff}.tel-row b.over{color:var(--hot)}.tuning table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px}.tuning th{color:var(--dim);text-align:right;letter-spacing:.08em;font-size:10px;font-weight:400}.tuning td{text-align:right;padding:1px 0}.tuning td:first-child,.tuning th:first-child{text-align:left;color:var(--dim)}.tuning td.hot{color:var(--hot);font-weight:700}#hud.has-tuning .hud-br,#hud.has-tuning .minimap{right:330px}#hud.has-tuning .hud-tl{left:0}.race{pointer-events:none;position:absolute;inset:0}.race-top{background:var(--panel);text-align:center;border-radius:5px;min-width:250px;padding:8px 18px 10px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.race-stage{letter-spacing:.18em;color:var(--dim);text-shadow:0 1px 4px #000000f2;margin-bottom:4px;font-size:11px}.race-clock{font-family:var(--font-figure);font-variant-numeric:tabular-nums;text-shadow:0 2px 10px #000000b3;font-size:40px;font-weight:700;line-height:1}.race-clock.staged{color:var(--dim)}.race-status{text-align:center;width:min(340px,100vw - 680px);position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.race-progress{background:#00000073;border-radius:2px;height:4px;margin:0 0 6px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff24}#race-progress-fill{background:var(--accent);width:0;height:100%}.race-cps{justify-content:center;gap:6px;display:flex}.race-cps span{color:var(--dim);background:var(--panel);font-variant-numeric:tabular-nums;border-radius:2px;flex:1;padding:3px 0;font-size:11px}.race-cps span.done{color:var(--ink);background:#f2c14e38}.race-panel{text-align:center;opacity:0;visibility:hidden;background:#0a0d12ed;border:1px solid #ffffff24;border-radius:6px;min-width:300px;padding:26px 34px;transition:opacity .18s,transform .18s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.96)}.race-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.finish-medal{letter-spacing:.28em;color:var(--accent);font-size:14px}.medal-author .finish-medal{color:#b06bff}.medal-gold .finish-medal{color:#f2c14e}.medal-silver .finish-medal{color:#c8d0d9}.medal-bronze .finish-medal{color:#cd8642}.medal-finish .finish-medal{color:var(--dim)}.finish-time{font-variant-numeric:tabular-nums;margin:6px 0 16px;font-size:46px;font-weight:700}.finish-medals{text-align:left}.medal-row{color:var(--dim);font-variant-numeric:tabular-nums;grid-template-columns:1fr auto 62px;gap:10px;padding:3px 0;font-size:12px;display:grid}.medal-row span{letter-spacing:.12em;text-transform:uppercase}.medal-row i{text-align:right;font-style:normal}.medal-row.beaten{color:var(--ink)}.medal-row.beaten i{color:#4fd6a0}.medal-row.earned{font-weight:700}.finish-hint{color:var(--dim);letter-spacing:.1em;margin-top:16px;font-size:11px}.finish-hint b{color:var(--ink)}.finish-actions{pointer-events:auto;justify-content:center;gap:10px;margin-top:20px;display:flex}.finish-btn{appearance:none;min-height:44px;font:700 var(--step-1)/1 var(--font-ui);letter-spacing:var(--track-ui);color:#0c0f14;background:var(--accent);cursor:pointer;border:0;border-radius:5px;flex:1 1 0;padding:11px 18px;transition:filter .12s,transform 60ms}.finish-btn.ghost{color:var(--ink);background:#ffffff14;box-shadow:inset 0 0 0 1px #fff3}.finish-btn:hover{filter:brightness(1.12)}.finish-btn:active{transform:scale(.97)}.finish-btn i{letter-spacing:.18em;opacity:.62;margin-top:4px;font-size:9px;font-style:normal;display:block}#hud:has(.touch.is-on) .finish-btn i{display:none}@media (max-height:500px){.race-panel{touch-action:pan-y;min-width:240px;max-height:92%;padding:12px 18px;overflow-y:auto}.finish-actions{background:#0a0d12f7;margin-top:12px;padding:8px 0 10px;position:sticky;bottom:-12px}}.race-delta{font-variant-numeric:tabular-nums;letter-spacing:.04em;text-shadow:0 2px 8px #000c;height:22px;font-size:19px;font-weight:700}.race-delta.ahead{color:#4fd6a0}.race-delta.behind{color:var(--hot)}.race-best{letter-spacing:.14em;color:var(--dim);font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000000f2;font-size:11px;line-height:1.3}.race-best.none{opacity:.6}.race-times{background:var(--panel);text-align:left;border-radius:4px;min-width:132px;padding:6px 10px;position:absolute;top:72px;left:18px}.race-times:not(:has(>:not([hidden]))){display:none}.race-wr{letter-spacing:.14em;color:#f2c14ec7;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000000f2;text-overflow:ellipsis;white-space:nowrap;max-width:min(40vw,240px);font-size:11px;line-height:1.3;display:block;overflow:hidden}.race-wr[hidden]{display:none}.race-wr b{letter-spacing:var(--track-ui);opacity:.75;font-weight:700}.race-wr span{color:var(--dim)}.race-cps span.ahead{color:#4fd6a0;background:#4fd6a029}.race-cps span.behind{color:var(--hot);background:#e8552f29}.race-cps span.missed{color:var(--hot);box-shadow:inset 0 0 0 1px var(--hot);background:#e8552f47}.race-missed{text-align:center;letter-spacing:.12em;color:var(--hot);text-shadow:0 2px 10px #000000d9;opacity:0;pointer-events:none;font-size:26px;font-weight:800;transition:opacity .14s;position:absolute;top:34%;left:0;right:0}.race-missed.show{opacity:1;animation:1s ease-in-out infinite missed-pulse}@keyframes missed-pulse{0%,to{opacity:1}50%{opacity:.45}}.finish-record{letter-spacing:.2em;color:#4fd6a0;font-variant-numeric:tabular-nums;margin-bottom:10px;font-size:12px;font-weight:700}.damage{background:var(--panel);pointer-events:none;border-radius:4px;width:168px;padding:12px 14px;position:absolute;top:132px;left:18px}.damage-title{letter-spacing:.2em;color:var(--dim);margin-bottom:8px;font-size:10px}.damage-car{width:84px;margin:0 auto 6px;display:block}.damage-car rect{fill:#29d646;stroke:#00000073;stroke-width:1px;transition:fill .22s}.damage-car rect.critical{animation:.9s steps(2,end) infinite damage-flash}@keyframes damage-flash{0%{opacity:1}50%{opacity:.35}to{opacity:1}}.damage-worst{text-align:center;font-variant-numeric:tabular-nums;min-height:15px;margin-bottom:8px;font-size:11px}.gauge{letter-spacing:.1em;color:var(--dim);grid-template-columns:34px 1fr 34px;align-items:center;gap:6px;margin-bottom:4px;font-size:9.5px;display:grid}.gauge b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.gauge-bar{background:#ffffff26;border-radius:2px;height:4px;overflow:hidden}.gauge-bar i{background:#4fd6a0;width:0;height:100%;transition:width .2s linear;display:block}.gauge-bar i.hot{background:var(--hot)}.damage-toasts{width:210px;margin-top:8px;position:absolute;top:100%;left:0}.damage-toast{letter-spacing:.08em;border-left:2px solid var(--accent);background:#0c0f14d9;border-radius:3px;margin-bottom:4px;padding:4px 9px;font-size:11px;animation:.18s toast-in}.damage-toast.severe{border-left-color:var(--hot);color:var(--hot);font-weight:700}@keyframes toast-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.finish-retired .finish-medal{color:var(--hot)}.finish-reason{color:var(--dim);letter-spacing:.08em;margin-top:4px;font-size:12px}.finish-bill{text-align:left;margin-top:14px}.finish-bill .bill-row{color:var(--dim);font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;font-size:11.5px;display:flex}.finish-bill .bill-total{border-top:1px solid #ffffff24;justify-content:space-between;margin-top:6px;padding-top:6px;font-size:13px;font-weight:700;display:flex}.finish-bill .bill-total b{color:var(--hot)}.garage{pointer-events:auto;background:#080a0ef5;display:none;position:absolute;inset:0;overflow-y:auto}.garage.is-open{display:block}.garage-inner{max-width:1180px;margin:0 auto;padding:28px 32px 32px}.garage-head{border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:flex-end;padding-bottom:14px;display:flex}.garage-title{font-family:var(--font-display);font-size:var(--step-3);letter-spacing:var(--track-wide);font-weight:700}.garage-sub{color:var(--dim);letter-spacing:.06em;margin-top:4px;font-size:12px}.garage-sub .bad{color:var(--hot);font-weight:700}.garage-money{text-align:right}.garage-money span{letter-spacing:.2em;color:var(--dim);font-size:10px;display:block}.garage-money b{font-family:var(--font-figure);font-size:var(--step-4);font-variant-numeric:tabular-nums;color:var(--accent)}.garage-cols{grid-template-columns:1.25fr 1fr 1fr;align-items:start;gap:26px;margin-top:22px;display:grid}.garage-tabs{display:none}@media (max-width:1000px){.garage-cols{grid-template-columns:1fr}.garage-tabs{gap:6px;margin-top:16px;display:flex}.garage-tabs button{letter-spacing:.12em;color:var(--dim);background:#00000040;border:1px solid #ffffff24;border-radius:3px;flex:1;padding:11px 6px;font-size:11px}.garage-tabs button.on{border-color:var(--accent);color:var(--accent);background:#f2c14e24}.garage-tabs button b{color:var(--bad,#e8552f);font-weight:700}.garage-cols>section{display:none}.garage-cols[data-tab-active=stages]>[data-tab=stages],.garage-cols[data-tab-active=repairs]>[data-tab=repairs],.garage-cols[data-tab-active=car]>[data-tab=car]{display:block}}.garage h3{letter-spacing:.22em;color:var(--accent);margin:0 0 10px;font-size:11px;font-weight:600}.garage .dim{color:var(--dim)}.garage .pad{padding:10px 0;font-size:12px;line-height:1.5}.garage button{font:inherit;color:var(--ink);cursor:pointer;letter-spacing:.06em;white-space:nowrap;background:#ffffff17;border:1px solid #ffffff2e;border-radius:3px;padding:6px 12px;font-size:11.5px}.garage button:hover:not(:disabled){border-color:var(--accent);background:#f2c14e38}.garage button:disabled{opacity:.35;cursor:not-allowed}.garage button.wide{width:100%;margin-top:8px;padding:9px;display:block}.garage button.warn{border-color:var(--hot);color:var(--hot)}.stage-row{border-left:2px solid var(--accent);background:#ffffff0a;border-radius:4px;grid-template-columns:26px 54px 1fr auto auto;align-items:center;gap:12px;margin-bottom:8px;padding:11px 12px;display:grid}.stage-row.locked{opacity:.72;border-left-color:#ffffff26}.stage-key{color:var(--dim);text-align:center;font-size:15px;font-weight:700}.stage-name{font-family:var(--font-display);letter-spacing:.04em;font-size:14px;font-weight:700}.stage-meta{color:var(--dim);font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px}.stage-pay{text-align:right;font-variant-numeric:tabular-nums;font-size:10.5px}.stage-pay b{font-size:13px}.repair-list{max-height:210px;overflow-y:auto}.repair-row{font-variant-numeric:tabular-nums;grid-template-columns:1fr 54px 40px auto 46px;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:grid}.repair-row .repair-name{color:var(--dim)}.repair-row button{padding:3px 8px;font-size:10px}.repair-health{background:#ffffff1f;border-radius:3px;height:5px;overflow:hidden}.repair-health i{border-radius:3px;height:100%;display:block}.repair-row em{text-align:right;font-size:10.5px;font-style:normal;font-weight:700}.repair-row.dead .repair-name{color:var(--text);font-weight:700}.repair-total{font-variant-numeric:tabular-nums;border-top:1px solid #ffffff24;justify-content:space-between;margin-top:8px;padding-top:8px;font-size:14px;font-weight:700;display:flex}.repair-total b{color:var(--hot)}.upgrade-list{max-height:420px;padding-right:4px;overflow-y:auto}.upgrade-row{border-bottom:1px solid #ffffff12;padding:9px 0}.upgrade-head{justify-content:space-between;align-items:center;font-size:12.5px;font-weight:700;display:flex}.upgrade-desc{color:var(--dim);margin:3px 0 6px;font-size:10.5px;line-height:1.45}.pips{gap:3px;display:flex}.pips i{background:#ffffff2e;border-radius:1px;width:9px;height:5px}.pips i.on{background:var(--accent)}.garage-foot{color:var(--dim);letter-spacing:.08em;border-top:1px solid #ffffff1f;justify-content:space-between;align-items:center;margin-top:22px;padding-top:14px;font-size:11px;display:flex}.garage-foot b{color:var(--ink)}.finish-ledger{text-align:left;margin-top:14px}.finish-ledger .ledger-row{color:var(--dim);font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;font-size:12px;display:flex}.finish-ledger .ledger-row b{color:var(--ink)}.finish-ledger .ledger-row.gain b{color:#4fd6a0}.finish-ledger .ledger-row.loss b{color:var(--hot)}.finish-ledger .ledger-net{font-variant-numeric:tabular-nums;border-top:1px solid #ffffff24;justify-content:space-between;margin-top:6px;padding-top:6px;font-size:14px;font-weight:700;display:flex}#hud.in-garage .race,#hud.in-garage .damage,#hud.in-garage .minimap,#hud.in-garage .hud-corner,#hud.in-garage .tuning{display:none}.garage-warnings{background:#e8552f17;border:1px solid #e8552f59;border-radius:4px;margin-top:18px;padding:12px 16px}.warn-row{letter-spacing:.03em;align-items:center;gap:10px;padding:3px 0;font-size:12.5px;display:flex}.warn-row i{border-radius:50%;flex:none;width:6px;height:6px}.warn-row.fatal{color:var(--hot);font-weight:700}.warn-row.fatal i{background:var(--hot)}.warn-row.severe{color:#ffb27a}.warn-row.severe i{background:#ffb27a}.warn-row.caution{color:var(--dim)}.warn-row.caution i{background:var(--dim)}.race-pace{letter-spacing:.14em;height:16px;color:var(--dim);font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000000f2;margin-bottom:2px;font-size:11px}.race-pace.medal-author{color:#b06bff}.race-pace.medal-gold{color:#f2c14e}.race-pace.medal-silver{color:#c8d0d9}.race-pace.medal-bronze{color:#cd8642}.race-pace.medal-finish{color:var(--dim)}.locked-note{color:var(--hot);letter-spacing:.08em}.race-notes{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:74px;left:18px}.note{border-left:3px solid var(--ink-dim);font-variant-numeric:tabular-nums;background:#0c0f14b8;border-radius:6px;grid-template-columns:26px 22px auto;align-items:center;gap:8px;padding:6px 12px 6px 8px;display:grid}.note.next{opacity:1;transform:scale(1)}.note.after{transform-origin:0;opacity:.6;transform:scale(.82)}.note b{color:var(--ink);font-size:19px;font-weight:700}.note span{color:var(--ink-dim);font-size:11px}.note.tight{border-left-color:var(--hot)}.note.mid{border-left-color:#f2c14e}.note.fast{border-left-color:#7fd6a0}.note.tight b{color:var(--hot)}.note.mid b{color:#f2c14e}.note.fast b{color:#7fd6a0}.note-arrow{width:26px;height:22px;color:var(--ink);-webkit-mask:var(--arrow) center / contain no-repeat;-webkit-mask:var(--arrow) center / contain no-repeat;mask:var(--arrow) center / contain no-repeat;--arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Cpath d='M6 21 L6 11 Q6 4 13 4 L19 4' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round'/%3E%3Cpath d='M17 0 L24 4 L17 8 Z' fill='black'/%3E%3C/svg%3E");background:currentColor}.note-arrow.left{transform:scaleX(-1)}.note.tight .note-arrow{color:var(--hot)}.note.mid .note-arrow{color:#f2c14e}.note.fast .note-arrow{color:#7fd6a0}.stage-map{width:100%;height:100%;display:block;overflow:visible}.map-route{fill:none;stroke:#ffffff38;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.map-done{fill:none;stroke:#f2c14e;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.map-cp{fill:#ffffff80}.map-start{fill:#4fd6a0}.map-finish{fill:var(--hot)}.map-car{fill:#fff;stroke:#0c0f14;stroke-width:1px}.stage-profile{width:100%;height:34px;margin-top:4px;display:block;overflow:visible}.prof-fill{fill:#7fa85e38;stroke:none}.prof-line{fill:none;stroke:#9fc27a;stroke-width:1.4px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.prof-gate{stroke:#f2c14e80;stroke-width:1px;vector-effect:non-scaling-stroke}.prof-car{fill:#fff;stroke:#0c0f14;stroke-width:1px;vector-effect:non-scaling-stroke}.profile-label{letter-spacing:.04em;color:var(--dim);text-align:right;white-space:nowrap;margin-top:1px;font-size:9px}.minimap{pointer-events:none;background:#0c0f148c;border-radius:8px;width:132px;height:186px;padding:8px;position:absolute;top:18px;right:18px}.stage-map-thumb{opacity:.85;width:54px;height:54px}.stage-map-thumb .map-done{display:none}.stage-profile-thumb{max-width:240px;margin-top:3px}.stage-profile-thumb .stage-profile{height:20px;margin:0}.stage-climb{color:#9fc27a}.minimap .stage-map{aspect-ratio:1;height:auto}.hud-basic{pointer-events:none;position:absolute;inset:0}.garage-car-slot{background:linear-gradient(#ffffff0d,#00000040);border-radius:6px;width:300px;height:150px;margin:0 24px -14px;overflow:hidden}.garage-car{cursor:grab;width:100%;height:100%}.garage-car:active{cursor:grabbing}.garage-car canvas{width:100%;height:100%;display:block}.lobby{pointer-events:auto;background:#080a0ef7;display:none;position:absolute;inset:0;overflow-y:auto}.lobby.is-open{display:block}.lobby-inner{max-width:900px;margin:0 auto;padding:28px 32px 32px}.lobby-head{border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:flex-end;padding-bottom:14px;display:flex}.lobby-title{font-family:var(--font-display);font-size:var(--step-3);letter-spacing:var(--track-wide);font-weight:700}.lobby-sub{color:var(--dim);letter-spacing:.06em;margin-top:4px;font-size:12px}.lobby h3{letter-spacing:.22em;color:var(--accent);margin:18px 0 10px;font-size:11px;font-weight:600}.lobby-hint{color:var(--dim);margin:10px 0;font-size:12px;line-height:1.6}.lobby-code{font-family:var(--mono,ui-monospace, "SF Mono", Menlo, Consolas, monospace);letter-spacing:.18em;color:var(--accent);-webkit-user-select:all;user-select:all;margin:6px 0 4px;font-size:34px;font-weight:700}.lobby-room{box-sizing:border-box;width:100%;font-family:var(--mono,ui-monospace, "SF Mono", Menlo, Consolas, monospace);letter-spacing:.16em;text-align:center;text-transform:uppercase;color:var(--ink);background:#0000004d;border:1px solid #ffffff29;border-radius:4px;margin:8px 0 10px;padding:12px 14px;font-size:24px;display:block}.lobby-room:focus{border-color:var(--accent);outline:none}.room-slots{justify-content:center;gap:6px;margin:8px 0 10px;display:flex}.room-slots b{width:38px;font-family:var(--mono,ui-monospace, "SF Mono", Menlo, Consolas, monospace);text-align:center;color:var(--dim);border:1px solid var(--line);background:#0000004d;border-radius:6px;flex:none;padding:8px 0;font-size:24px;font-weight:700}.room-slots b.is-set{color:var(--ink);border-color:var(--accent)}.room-pad{grid-template-columns:repeat(8,1fr);gap:5px;margin-bottom:12px;display:grid}.room-pad button{min-height:40px;font-family:var(--mono,ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:var(--step-0);touch-action:manipulation;padding:0;font-weight:700}.room-pad .room-wide{grid-column:span 4}@media (max-height:460px){.room-pad button{min-height:30px}.room-slots b{width:32px;padding:5px 0;font-size:19px}}.lobby-status{border-left:2px solid var(--accent);letter-spacing:.04em;background:#f2c14e14;margin-top:18px;padding:10px 12px;font-size:12px}.lobby-cols{grid-template-columns:1fr 1fr;align-items:start;gap:26px;margin-top:18px;display:grid}@media (max-width:820px){.lobby-cols{grid-template-columns:1fr}}.lobby button{font:inherit;color:var(--ink);cursor:pointer;letter-spacing:.08em;background:#ffffff0f;border:1px solid #fff3;border-radius:3px;padding:8px 14px}.lobby button:hover:not(:disabled){border-color:var(--accent);background:#f2c14e38}.lobby button:disabled{opacity:.35;cursor:not-allowed}.lobby button.wide{width:100%;margin-top:12px;padding:10px;display:block}.lobby-actions{gap:12px;margin-top:20px;display:flex}.lobby textarea{width:100%;height:92px;color:var(--dim);resize:vertical;word-break:break-all;background:#0006;border:1px solid #ffffff29;border-radius:3px;margin:6px 0 10px;padding:8px;font:11px/1.35 ui-monospace,monospace;display:block}.lobby-field{color:var(--dim);margin-bottom:10px;font-size:12px;display:block}.lobby-field select option{color:var(--ink);background:#1b2129}.lobby-field select{width:100%;font:inherit;color:var(--ink);background:#1b2129;border:1px solid #fff3;border-radius:3px;margin-top:4px;padding:7px;font-size:13px;display:block}.lobby-players{margin:0;padding:0;list-style:none}.lobby-players li{border-bottom:1px solid #ffffff14;align-items:baseline;gap:8px;padding:7px 0;font-size:13px;display:flex}.lobby-players li b{color:var(--accent);letter-spacing:.1em}.lobby-players li span{color:var(--dim);letter-spacing:.1em;margin-left:auto;font-size:11px}.tags{pointer-events:none;position:absolute;inset:0;overflow:hidden}.tag{letter-spacing:.08em;white-space:nowrap;background:#080a0e99;border-radius:3px;padding:2px 6px;font-size:11px;position:absolute;transform:translate(-50%,-100%)}#hud.in-garage .tags{display:none}.lobby-field input{width:100%;max-width:260px;font:inherit;color:var(--ink);background:#ffffff0f;border:1px solid #fff3;border-radius:3px;margin-top:4px;padding:7px;font-size:13px;display:block}.race-standings{text-align:left;min-width:150px;position:absolute;top:200px;right:18px}.standing{letter-spacing:.06em;background:#0c0f1480;border-left:2px solid #fff3;align-items:baseline;gap:8px;margin-bottom:2px;padding:3px 8px;font-size:12px;display:flex}.standing b{color:var(--dim);font-variant-numeric:tabular-nums}.standing span{color:var(--dim);font-variant-numeric:tabular-nums;margin-left:auto}.standing.you{border-left-color:var(--accent)}.standing.you b{color:var(--accent)}.stage-fee{letter-spacing:.06em;color:var(--dim);margin-top:2px;font-size:11px}.stage-fee.bad{color:var(--hot)}.garage-foot-right{align-items:center;gap:8px;display:flex}.reset-warn{color:var(--hot);letter-spacing:.06em;font-size:11px}.menu{pointer-events:auto;background:radial-gradient(120% 90% at 50% 0,#f2c14e1a,#0000 60%),#06080bf7;display:none;position:absolute;inset:0;overflow-y:auto}.menu.is-open{display:block}.menu-inner{max-width:780px;margin:0 auto;padding:8vh 32px 40px}.menu-head{justify-content:space-between;align-items:baseline;display:flex}.menu-mark{letter-spacing:.6em;color:var(--accent);font-size:13px;font-weight:700}.menu-title{font-family:var(--font-display);letter-spacing:.16em;margin:6px 0 0;font-size:clamp(26px,4.2vw,46px);font-weight:700}.menu-title.small{font-size:var(--step-4);letter-spacing:var(--track-wide)}.menu-strap{color:var(--dim);margin:10px 0 30px;font-size:13px;line-height:1.6}.menu-choices{gap:12px;display:grid}.menu-choice{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-left:2px solid #ffffff38;border-radius:4px;padding:16px 18px;transition:background .12s,border-color .12s;display:block}.menu-choice:hover{border-left-color:var(--accent);background:#f2c14e24}.menu-choice b{font-family:var(--font-display);letter-spacing:.14em;font-size:21px;display:block}.menu-choice span{color:var(--dim);margin-top:6px;font-size:12px;line-height:1.55;display:block}.menu-choice em{letter-spacing:.14em;color:var(--accent);margin-top:8px;font-size:11px;font-style:normal;display:block}.menu-rows{gap:4px;display:grid}.menu-row{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:#ffffff0a;border:0;border-left:2px solid #0000;border-radius:3px;align-items:baseline;gap:10px;padding:9px 12px;font-size:13px;display:flex}.menu-row:hover{border-left-color:var(--accent);background:#f2c14e29}.menu-row b{min-width:170px}.menu-row-best{letter-spacing:.08em;color:var(--dim);margin-left:auto;font-size:11px}.menu-row.has-board{display:block}.menu-row-head{align-items:baseline;gap:10px;width:100%;display:flex}.menu-board{letter-spacing:.04em;color:var(--dim);font-variant-numeric:tabular-nums;gap:14px;margin-top:3px;font-size:10.5px;display:flex}.menu-board i{align-items:baseline;gap:5px;font-style:normal;display:inline-flex}.menu-board u{color:var(--accent);opacity:.75;font-weight:700;text-decoration:none}.menu-board b{color:var(--ink);min-width:0;font-weight:400}.lobby-board{color:var(--dim);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:12px;margin:-2px 0 10px;font-size:10.5px;display:flex}.lobby-board u{color:var(--accent);font-weight:700;text-decoration:none}.lobby-board b{color:var(--ink);font-weight:400}.finish-board{font-variant-numeric:tabular-nums;border-top:1px solid #ffffff24;margin-top:12px;padding-top:10px}.finish-board h4{letter-spacing:.14em;color:var(--dim);text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:700}.board-row{align-items:baseline;gap:8px;padding:2px 0;font-size:12.5px;display:flex}.board-row u{min-width:16px;color:var(--dim);font-size:11px;font-weight:700;text-decoration:none}.board-row span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.board-row b{font-weight:700}.board-row.is-you,.board-row.is-you u{color:var(--accent)}.board-note{color:var(--dim);margin-top:5px;font-size:10.5px}.board-rivals{margin-top:8px}.board-rivals h4{margin-top:0}.name-entry{flex-direction:column;gap:10px;max-width:320px;display:flex}.name-entry input{font:inherit;letter-spacing:.06em;color:var(--ink);background:#00000052;border:1px solid #ffffff38;border-radius:3px;padding:10px 12px;font-size:16px}.name-entry input:focus{border-color:var(--accent);outline:none}.name-entry input.is-bad{border-color:var(--hot)}.menu-strap .link{font:inherit;font-size:inherit;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.menu button[data-action=back]{font:inherit;color:var(--ink);cursor:pointer;background:#ffffff0f;border:1px solid #fff3;border-radius:3px;padding:7px 14px}.menu-foot{letter-spacing:.08em;color:var(--dim);border-top:1px solid #ffffff1f;margin-top:30px;padding-top:14px;font-size:11px}.menu-foot b{color:var(--ink)}.menu-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.menu-aux{appearance:none;width:100%;font:600 12px/1 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);cursor:pointer;background:#eef2f70d;border:0;border-radius:6px;margin-top:10px;padding:11px 16px;transition:color .12s ease-out,background .12s ease-out;display:block;box-shadow:inset 0 0 0 1px #eef2f724}.menu-aux:hover{color:var(--ink);background:#eef2f71c}.help-doc{text-align:left;max-width:560px;color:var(--dim);margin:0 auto;font-size:13px;line-height:1.55}.help-doc h2{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:22px 0 8px;font-size:11px}.help-doc p{margin:0 0 10px}.help-doc b{color:var(--ink)}.help-doc ul{margin:0 0 10px;padding-left:18px}.help-doc li{margin-bottom:4px}.help-doc dl{margin:0}.help-doc dt{color:var(--ink);margin-top:10px;font-weight:700}.help-doc dd{margin:2px 0 0}.help-keys{border-collapse:collapse;width:100%;margin-bottom:10px}.help-keys th{text-align:left;letter-spacing:.14em;text-transform:uppercase;color:#8b95a5b3;padding-bottom:4px;font-size:10px;font-weight:600}.help-keys td{vertical-align:top;padding:3px 10px 3px 0}.help-keys td:first-child{color:var(--ink);white-space:nowrap}.help-keys tr+tr td{border-top:1px solid #ffffff0f}#hud.in-menu .race,#hud.in-menu .damage,#hud.in-menu .minimap,#hud.in-menu .hud-corner,#hud.in-menu .tags,#hud.in-menu .hud-basic,#hud.in-menu .tuning{display:none}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{cursor:pointer;background:0 0;border:1px solid #ffffff38;border-radius:3px;width:40px;height:26px;padding:0;display:flex;overflow:hidden}.swatch i{height:100%;display:block}.swatch i:first-child{flex:3}.swatch i:last-child{flex:1}.swatch.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.swatch-name{letter-spacing:.12em;color:var(--dim);margin-top:6px;font-size:11px}.race-numbers{flex-wrap:wrap;gap:6px;display:flex}.garage .race-number{font-variant-numeric:tabular-nums;min-width:38px;padding:5px 8px}.garage .race-number.is-on{border-color:var(--accent);color:var(--accent)}.replay{pointer-events:none;position:absolute;bottom:0;left:0;right:0}.replay-bar{background:#ffffff24;border-radius:2px;height:3px;margin:0 24px 8px;overflow:hidden}.replay-fill{background:var(--accent);height:100%}.replay-keys{letter-spacing:.08em;color:var(--dim);align-items:baseline;gap:18px;padding:0 24px 16px;font-size:11px;display:flex}.replay-keys b{color:var(--ink);font-variant-numeric:tabular-nums}#hud.in-replay .race,#hud.in-replay .damage,#hud.in-replay .minimap,#hud.in-replay .hud-corner,#hud.in-replay .hud-basic,#hud.in-replay .tags,#hud.in-replay .tuning,#hud.no-chrome .replay{display:none}.race-lights{text-align:center;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.lights-row{justify-content:center;gap:14px;display:flex}.lights-row i{background:#ffffff14;border:1px solid #ffffff2e;border-radius:50%;width:26px;height:26px}.lights-row i.lit{background:#ff3b21;border-color:#ff8a72;box-shadow:0 0 18px #ff3b21cc}.lights-row i.go{background:#4fd6a0;border-color:#9df0cd;box-shadow:0 0 22px #4fd6a0e6}.lights-word{font-family:var(--font-display);letter-spacing:.4em;color:var(--dim);text-shadow:0 2px 8px #000000e6;margin-top:10px;font-size:15px}.lights-word.go{color:#4fd6a0;font-size:26px;animation:.45s ease-out go-pop}@keyframes go-pop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.18)}to{opacity:1;transform:scale(1)}}.awards{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.award{text-align:center;padding:18px 46px;animation:.42s cubic-bezier(.16,1.2,.3,1) award-in;position:relative}.award-title{font-family:var(--font-display);letter-spacing:.2em;color:var(--ink);text-shadow:0 4px 24px #000000f2,0 0 40px #0009;font-size:46px;font-weight:700}.award-detail{letter-spacing:.22em;color:var(--dim);text-shadow:0 2px 10px #000000f2;margin-top:6px;font-size:13px}.award.author .award-title{color:#b06bff}.award.gold .award-title{color:#f2c14e}.award.silver .award-title{color:#c8d0d9}.award.bronze .award-title{color:#cd8642}.award.record .award-title{color:#4fd6a0}.award-flash{background:radial-gradient(closest-side,#ffffff8c,#0000 70%);width:10px;height:96px;animation:.5s ease-out forwards award-flash;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.award.w2 .award-title{font-size:58px}.award.w3 .award-title{letter-spacing:.14em;font-size:68px}.award.w3{animation-duration:.55s}.award-title{position:relative}.award.w1 .award-title:before,.award.w2 .award-title:before,.award.w3 .award-title:before{content:attr(data-text);z-index:-1;color:inherit;filter:blur(16px);opacity:.55;will-change:opacity;animation:1.6s ease-in-out infinite award-glow;position:absolute;inset:0}.award.w2 .award-title:before{filter:blur(20px);animation-duration:1.25s}.award.w3 .award-title{color:#0000;background:linear-gradient(100deg,#b06bff 0%,#f2c14e 22%,#fff6d0 38%,#f2c14e 52%,#ff8a3d 70%,#b06bff 100%) 0 0/260% 100%;-webkit-background-clip:text;background-clip:text;animation:2.4s ease-in-out infinite award-sweep;position:relative}.award.w3 .award-title:before{color:#f2c14e;filter:blur(22px);opacity:.9;animation-duration:1.1s}.award-rays{opacity:.6;will-change:transform;background:repeating-conic-gradient(#f2c14e38 0deg 6deg,#0000 6deg 18deg);width:720px;height:720px;animation:15s linear infinite award-turn,.8s ease-out award-rays-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(closest-side,#000 10%,#0000 68%);mask-image:radial-gradient(closest-side,#000 10%,#0000 68%)}.award-sparks{width:0;height:0;position:absolute;top:50%;left:50%}.award-sparks i{width:5px;height:5px;transform:rotate(var(--a)) translateX(0);animation:1.1s cubic-bezier(.15,.85,.25,1) forwards award-spark;animation-delay:var(--d);background:#fff6d0;border-radius:50%;margin:-2.5px 0 0 -2.5px;position:absolute;box-shadow:0 0 12px 3px #f2c14ee6}@keyframes award-glow{0%,to{opacity:.45}50%{opacity:1}}@keyframes award-sweep{0%{background-position:120% 0}to{background-position:-60% 0}}@keyframes award-turn{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes award-rays-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}@keyframes award-spark{0%{transform:rotate(var(--a)) translateX(30px) scale(1);opacity:1}to{transform:rotate(var(--a)) translateX(calc(360px * var(--r))) scale(.2);opacity:0}}@media (prefers-reduced-motion:reduce){.award-rays{animation:none}.award-sparks{display:none}.award.w1 .award-title,.award.w2 .award-title,.award.w3 .award-title,.award.w3 .award-title:before{animation:none}}@keyframes award-in{0%{opacity:0;filter:blur(6px);transform:scale(.72)translateY(14px)}60%{opacity:1;filter:blur();transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes award-flash{0%{opacity:.95;width:10px}to{opacity:0;width:780px}}#hud:has(.award) .race-panel{opacity:.12;transition:opacity .25s}.race-panel{transition:opacity .35s .15s}#hud.in-garage .awards,#hud.in-menu .awards,#hud.in-replay .awards{display:none}.sweeps{gap:6px;display:grid}.sweep{letter-spacing:.12em;color:var(--dim);grid-template-columns:74px 1fr 44px;align-items:center;gap:10px;font-size:11px;display:grid}.sweep b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.sweep-bar{background:#ffffff17;border-radius:3px;height:5px;overflow:hidden}.sweep-bar i{height:100%;display:block}.sweep.is-done b{color:var(--accent)}.lobby-swatch{vertical-align:-1px;border-radius:2px;width:.85em;height:.85em;margin-right:.5em;display:inline-block;box-shadow:inset 0 0 0 1px #0006}.replay-slug{text-align:center;font:700 clamp(22px, 4.4vw, 54px)/1 var(--display,ui-monospace, monospace);letter-spacing:.18em;color:#ffd9a0;text-shadow:0 2px 18px #000000d9;pointer-events:none;animation:.35s ease-out replay-slug-in;position:absolute;top:12%;left:0;right:0}@keyframes replay-slug-in{0%{opacity:0;transform:translateY(-12px)scale(.94)}to{opacity:1;transform:none}}.lights-word.launch-perfect{color:#7ef0a2}.lights-word.launch-clean{color:#bfe8a0}.lights-word.launch-late{color:#e8c86a}.lights-word.launch-bogged{color:#d67a63}.touch{pointer-events:none;z-index:40;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:none;position:absolute;inset:0}.touch.is-on{display:block}#hud.in-menu .touch,#hud.in-garage .touch,#hud.in-lobby .touch,#hud.in-replay .touch{display:none}#hud:has(.race-panel.is-open) .touch{display:none}.touch-steer{pointer-events:auto;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;width:38%;height:62%;padding-bottom:max(3vmin,10px);display:flex;position:absolute;bottom:0;left:0}.touch-steer span{font:600 var(--step-0)/1 var(--font-ui);letter-spacing:var(--track-wide);color:#eef2f759;text-transform:uppercase}.touch-wheel{background:#0c0f146b;border-radius:999px;justify-content:center;align-items:center;width:min(52vmin,260px);height:9vmin;max-height:46px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #eef2f729}.touch-wheel i{will-change:transform;background:#f2c14ed1;border-radius:999px;width:22%;height:62%}.touch-pedals{pointer-events:auto;flex-direction:column-reverse;gap:2vmin;display:flex;position:absolute;bottom:max(3vmin,10px);right:max(3vmin,10px)}.touch-btn{appearance:none;font:700 var(--step-1)/1 var(--font-ui);letter-spacing:var(--track-ui);color:var(--ink);background:#0c0f1480;border:0;border-radius:999px;width:max(19vmin,74px);height:max(19vmin,74px);transition:transform 60ms ease-out,background 60ms ease-out;box-shadow:inset 0 0 0 1px #eef2f72e}.touch-gas{background:#7ef0a233;box-shadow:inset 0 0 0 1px #7ef0a280}.touch-brake{background:#e8552f33;box-shadow:inset 0 0 0 1px #e8552f80}.touch-hand{width:max(15vmin,60px);height:max(15vmin,60px);font-size:var(--step-0);align-self:flex-end}.touch-btn.is-held{background:#eef2f742;transform:scale(.93)}.touch-tilt{pointer-events:auto;appearance:none;min-width:max(13vmin,52px);height:max(11vmin,44px);font:700 var(--step-0)/1 var(--font-ui);letter-spacing:var(--track-ui);color:#eef2f78c;background:#0c0f1480;border:0;border-radius:10px;padding:0 8px;transition:color .12s ease-out,background .12s ease-out;position:absolute;top:max(2vmin,8px);right:calc(max(2vmin,8px) + max(11vmin,44px) + 6px);box-shadow:inset 0 0 0 1px #eef2f72e}.touch-tilt.is-on{color:var(--ink);background:#f2c14e38;box-shadow:inset 0 0 0 1px #f2c14e99}.touch-tilt[hidden]{display:none}.touch-menu{pointer-events:auto;appearance:none;width:max(11vmin,44px);height:max(11vmin,44px);font-size:var(--step-2);color:var(--ink);background:#0c0f1480;border:0;border-radius:10px;position:absolute;top:max(2vmin,8px);right:max(2vmin,8px);box-shadow:inset 0 0 0 1px #eef2f72e}.touch-restart{pointer-events:auto;appearance:none;width:max(11vmin,44px);height:max(11vmin,44px);font-size:var(--step-1);color:#eef2f7c7;background:#0c0f1480;border:0;border-radius:10px;line-height:1;transition:transform 60ms ease-out,background 60ms ease-out;position:absolute;top:calc(max(2vmin,8px) + max(11vmin,44px) + max(1.4vmin,6px));right:max(2vmin,8px);box-shadow:inset 0 0 0 1px #eef2f72e}.touch-restart[hidden]{display:none}.touch-restart:active{background:#eef2f742;transform:scale(.93)}@media (max-height:500px){:root{--step-0:9px;--step-1:10px;--step-2:13px;--step-3:17px;--step-4:22px}.hud-corner{padding:8px 10px}.help{display:none}.race-top{min-width:0;padding:4px 12px 6px;top:4px}.race-stage{display:none}.race-clock{font-size:30px}.race-cps span{padding:2px 8px}.race-status{width:auto;bottom:max(2vmin,8px);left:38%;right:max(23vmin,92px);transform:none}.race-times{min-width:0;padding:3px 7px;top:32px;left:8px}.race-wr,.race-best{font-size:10px}.damage{width:108px;padding:6px 8px;top:78px;left:8px}.hud-tl{font-size:var(--step-0);height:24px;padding:3px 10px;line-height:1.2}.hud-tl .readout.dim{display:none}.damage-car{width:52px;margin-bottom:3px}.damage-toasts{width:150px;margin-top:5px}.damage-toast{margin-bottom:2px;padding:2px 6px;font-size:9px}.minimap{width:84px;height:84px;padding:5px;top:8px;right:8px}.touch.is-on~.minimap,.touch.is-on+* .minimap{right:62px}:is(.touch.is-on:has(.touch-tilt:not([hidden]))~.minimap,.touch.is-on:has(.touch-tilt:not([hidden]))+* .minimap){right:calc(max(2vmin,8px) + max(11vmin,44px) + 12px + max(13vmin,52px))}.hud-br{padding-right:10px}.speed{font-size:30px}.rpm{width:120px}#hud:has(.touch.is-on) .hud-br{padding-right:max(23vmin,92px)}#hud:has(.touch.is-on) .minimap{right:max(13vmin,56px)}#hud:has(.touch.is-on .touch-tilt:not([hidden])) .minimap{right:calc(max(2vmin,8px) + max(11vmin,44px) + 12px + max(13vmin,52px))}}.menu-scroll,.menu-inner,.garage,.garage-inner,.lobby,.lobby-inner,.tuning-body,.repair-list,.upgrade-list,textarea{touch-action:pan-y;-webkit-overflow-scrolling:touch}textarea,input{-webkit-user-select:text;user-select:text}@media (max-height:500px){.menu-inner{padding:14px 16px 24px}.menu-title{margin:2px 0 0;font-size:clamp(18px,3.4vw,26px)}.menu-mark{letter-spacing:.4em;font-size:10px}.menu-strap{margin:6px 0 12px;font-size:10px;line-height:1.4}.menu-choice{padding:9px 12px}.menu-choice b{font-size:15px}.menu-choice span{margin-top:2px;font-size:10px;line-height:1.35}.menu-choice em{margin-top:3px;font-size:9px}.menu-row{padding:7px 10px}.garage-inner,.lobby-inner{padding:12px 16px 20px}.lobby textarea{min-height:54px;font-size:11px}}.rotate-me{display:none}.rotate-me.is-on{z-index:90;color:var(--ink);text-align:center;background:#0c0f14;justify-content:center;align-items:center;position:fixed;inset:0}@media (orientation:portrait) and (max-width:700px){.rotate-me.is-on{display:flex}}.rotate-me b{color:var(--accent);font-size:56px;animation:2.4s ease-in-out infinite rotate-hint;display:block}.rotate-me span{font-size:var(--step-2);letter-spacing:var(--track-ui);color:var(--dim);margin-top:18px;display:block}@keyframes rotate-hint{0%,45%{transform:rotate(0)}60%,to{transform:rotate(90deg)}}.ios-fs{display:none}.ios-fs.is-on{top:calc(env(safe-area-inset-top) + 6px);z-index:95;border:1px solid var(--line);max-width:min(560px,92vw);color:var(--dim);font-size:var(--step--1);pointer-events:none;background:#0c0f14eb;border-radius:8px;align-items:center;gap:10px;padding:7px 8px 7px 12px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ios-fs b{color:var(--ink)}.ios-fs button{pointer-events:auto;font-size:var(--step--1);flex:none;padding:5px 10px}:is(#hud:has(.touch.is-on) .menu-foot,#hud:has(.touch.is-on) .help){display:none}.lobby-raw{margin:6px 0 14px}.lobby-raw summary{font-size:var(--step-0);letter-spacing:var(--track-ui);color:var(--dim);cursor:pointer;min-height:30px;padding:6px 0}.lobby-raw summary:hover{color:var(--ink)}.lobby-raw textarea{margin-top:6px}.lobby button.primary{background:var(--accent);color:#0c0f14;border:0;min-height:44px;font-weight:700}.lobby button.primary:hover{filter:brightness(1.12)}.lobby button.primary:disabled{filter:none;opacity:.45}.update-bar[hidden]{display:none}.update-bar{z-index:300;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;color:#1b2129;letter-spacing:.06em;background:#f2c14ef0;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.update-bar button{color:#f2c14e;font:inherit;letter-spacing:.1em;cursor:pointer;background:#1b2129;border:0;border-radius:3px;padding:6px 14px}.lobby-results{margin:6px 0 4px}.lobby-results li{border-bottom:1px solid #ffffff12;align-items:baseline;gap:10px;padding:7px 0;font-size:13px;display:flex}.lobby-results li:last-child{border-bottom:0}.lobby-results .pos{width:22px;color:var(--accent);font-weight:700}.lobby-results .who{flex:1}.lobby-results .at{font-variant-numeric:tabular-nums}.lobby-results .gap{color:var(--dim);font-variant-numeric:tabular-nums}.lobby-results .out{color:var(--dim);font-style:italic}.lobby-results li.mine .who{color:var(--accent)}.lobby-waiting{color:var(--dim);margin:10px 0;font-size:12px}.menu-volume{letter-spacing:.18em;max-width:340px;color:var(--dim);align-items:center;gap:12px;margin:18px auto 0;font-size:11px;display:flex}.menu-volume input[type=range]{accent-color:var(--accent);flex:1;height:22px}.menu-volume b{text-align:right;min-width:52px;color:var(--accent);font-variant-numeric:tabular-nums}.pad-focus{outline:2px solid var(--accent);outline-offset:2px}.menu-aux-row{gap:8px;display:flex}.menu-aux-row .menu-aux{flex:1}.pad-status{color:var(--dim);margin:4px 0 12px;font-size:13px}.pad-list{flex-direction:column;gap:6px;display:flex}.pad-row{background:#eef2f70d;border-radius:6px;grid-template-columns:1fr 1.4fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.pad-row.is-waiting{box-shadow:inset 0 0 0 1px var(--accent)}.pad-action{font-weight:600}.pad-binding{color:var(--dim);font-variant-numeric:tabular-nums}.pad-row.is-waiting .pad-binding{color:var(--accent)}.pad-binding em{color:var(--accent);margin-left:6px;font-size:11px;font-style:normal}.pad-foot{color:var(--dim);align-items:center;gap:14px;margin-top:14px;font-size:12px;display:flex}.menu-look{font:600 12px/1 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);align-items:center;gap:12px;margin-top:12px;display:flex}.look-choices{flex-wrap:wrap;flex:1;gap:6px;display:flex}.look-choice{appearance:none;font:600 12px/1 var(--font-ui);letter-spacing:.06em;color:var(--dim);cursor:pointer;white-space:nowrap;background:#eef2f70d;border:0;border-radius:6px;flex:1;padding:9px 10px;box-shadow:inset 0 0 0 1px #eef2f724}.look-choice:hover{color:var(--ink);background:#eef2f71c}.look-choice.is-on{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}:root{--paper-ink:#1e1b17;--paper-faded:#6a6152;--paper-red:#b8342a;--paper-tab:#e2d6bb;--paper-hi:#f1c24a99;--font-stencil:"Big Shoulders Stencil Display", Impact, "Arial Narrow", sans-serif;--font-type:"Special Elite", "Courier New", ui-monospace, monospace;--paper:repeating-linear-gradient(0deg, transparent 0 31px, #967d5029 31px 32px), radial-gradient(ellipse at 30% 15%, #ffffff59, transparent 60%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.18 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E"), #ece3cf}.menu{background:var(--paper);color:var(--paper-ink)}.menu[data-screen=main]{background:0 0;overflow:hidden}.menu .menu-inner.book{background:var(--paper);max-width:980px;min-height:100%;color:var(--paper-ink);margin:0 auto;padding:34px 44px 48px 96px;position:relative}.menu[data-screen=main] .menu-inner.book{clip-path:polygon(0 0,100% 0,97% 100%,0 100%);width:min(600px,58vw);max-width:none;margin:0;padding:34px 44px 56px 90px;position:absolute;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:18px 0 40px #00000073}.book-holes{pointer-events:none;flex-direction:column;justify-content:space-around;height:max(100%,100vh);display:flex;position:absolute;top:0;left:24px}.book-holes i{background:#1a1612;border-radius:50%;width:18px;height:18px;box-shadow:inset 2px 2px 3px #000c}.book-margin{pointer-events:none;background:#b8342a73;width:2px;height:max(100%,100vh);position:absolute;top:0;left:66px}.book-stamp{border:3px double var(--paper-red);color:var(--paper-red);font:700 17px/1 var(--font-stencil);text-transform:uppercase;letter-spacing:.06em;opacity:.8;pointer-events:none;padding:6px 10px 4px;position:absolute;top:40px;right:40px;transform:rotate(-11deg)}.menu .menu-title{font:900 64px/.9 var(--font-stencil);color:var(--paper-ink);text-transform:uppercase;letter-spacing:.02em;margin:0}.menu .menu-title small{font:700 26px/1 var(--font-stencil);color:var(--paper-red);letter-spacing:.14em;margin-top:6px;display:block}.menu .menu-title.small{font-size:46px}.menu .menu-head{border-bottom:3px solid var(--paper-ink);margin-bottom:14px;padding-bottom:8px}.menu .menu-strap{font:15px/1.55 var(--font-type);color:var(--paper-faded);margin:12px 0 20px}.menu .dim{color:var(--paper-faded)}.menu .menu-choices{gap:0}.menu .menu-choice{isolation:isolate;text-align:left;color:var(--paper-ink);background:0 0;border:0;border-bottom:1.5px dashed #1e1b1759;border-radius:0;grid-template-columns:58px 1fr;column-gap:8px;padding:12px 6px 13px;display:grid;position:relative}.menu .menu-choice u{font:900 42px/1 var(--font-stencil);color:var(--paper-faded);grid-row:1/span 3;text-decoration:none}.menu .menu-choice b{font:900 34px/1 var(--font-stencil);letter-spacing:.02em;text-transform:uppercase;color:var(--paper-ink)}.menu .menu-choice span{font:14px/1.4 var(--font-type);color:var(--paper-faded);margin-top:4px}.menu .menu-choice em{font:12px/1.3 var(--font-ui);letter-spacing:.02em;color:var(--paper-ink);border:1.5px solid var(--paper-ink);justify-self:start;margin-top:7px;padding:3px 7px;font-style:normal}.menu .menu-choice:before,.menu .menu-row:before{content:"";z-index:-1;background:var(--paper-hi);opacity:0;border-radius:3px 8px 4px 9px;transition:opacity .12s ease-out;position:absolute;inset:8px -8px;transform:rotate(-.6deg)}.menu .menu-choice:hover:before,.menu .menu-choice.pad-focus:before,.menu .menu-row:hover:before,.menu .menu-row.pad-focus:before{opacity:1}.menu .menu-choice:hover,.menu .menu-row:hover{background:0 0}.menu .menu-choice:hover u,.menu .menu-choice.pad-focus u{color:var(--paper-red)}.menu .pad-focus{outline:none}.menu .menu-look,.menu .menu-volume{font:14px/1.4 var(--font-type);color:var(--paper-faded);text-transform:none;letter-spacing:0}.menu .menu-look>span,.menu .menu-volume>span{min-width:64px}.menu .look-choice{font:14px/1.2 var(--font-type);color:var(--paper-ink);box-shadow:none;letter-spacing:0;background:0 0;border:0;flex:none;padding:4px 8px 4px 2px}.menu .look-choice:before{content:"☐ ";font-size:16px}.menu .look-choice.is-on{color:var(--paper-ink);box-shadow:none}.menu .look-choice.is-on:before{content:"☒ ";color:var(--paper-red)}.menu .look-choice.pad-focus{background:var(--paper-hi)}.menu .menu-volume input[type=range]{accent-color:var(--paper-red)}.menu .menu-volume b{color:var(--paper-ink);font-family:var(--font-ui)}.menu .menu-aux-row{margin-top:18px}.menu .menu-aux{font:14px/1 var(--font-type);text-transform:none;letter-spacing:0;color:var(--paper-ink);background:var(--paper-tab);border-radius:7px 7px 0 0;flex:none;padding:8px 16px 9px;box-shadow:0 -2px 5px #00000029,inset 0 -1px #1e1b1733}.menu .menu-aux:hover,.menu .menu-aux.pad-focus{background:var(--paper-hi)}.menu .menu-more{font:14px/1 var(--font-type);color:var(--paper-ink);border-radius:4px;justify-content:center;align-items:center;gap:10px;margin-top:18px;padding:8px 12px;text-decoration:none;display:flex}.menu .menu-more:hover,.menu .menu-more.pad-focus{background:var(--paper-hi)}.menu .menu-more:hover span{text-decoration:underline}.mjrfx-logo{flex:none;width:auto;height:15px;display:block}.mjrfx-logo .mjrfx-accent{stroke:#ff5a36}.menu .menu-foot{font:12px/1.5 var(--font-type);color:var(--paper-faded);border:0}.menu .menu-foot b{color:var(--paper-ink)}.menu button[data-action=back],.menu .pad-foot button,.menu .pad-row button{font:14px/1 var(--font-type);color:var(--paper-ink);border:1.5px solid var(--paper-ink);letter-spacing:0;text-transform:none;background:0 0;border-radius:2px}.menu button[data-action=back]:hover,.menu button.pad-focus{background:var(--paper-hi)}.menu .menu-rows{gap:0}.menu .menu-row{isolation:isolate;color:var(--paper-ink);text-align:left;background:0 0;border:0;border-bottom:1px solid #1e1b1747;border-radius:0;padding:10px 8px;position:relative}.menu .menu-row-head{align-items:center;gap:12px}.menu .menu-row-head u{min-width:40px;font:900 28px/1 var(--font-stencil);color:var(--paper-faded);text-decoration:none}.menu .menu-row b{min-width:200px;font:900 22px/1 var(--font-stencil);text-transform:uppercase}.menu .menu-row .dim{font:12px/1.3 var(--font-type)}.menu .menu-board{font-family:var(--font-ui);color:var(--paper-faded);padding-left:52px}.menu .menu-board b{color:var(--paper-ink);font:12px var(--font-ui);text-transform:none;min-width:0}.menu .menu-board u{color:var(--paper-red)}.menu .menu-strap .link{font-family:var(--font-type);color:var(--paper-ink)}.menu .stamp,.garage .stamp{width:48px;height:48px;font:9px/1.1 var(--font-ui);text-transform:uppercase;text-align:center;opacity:.85;border:2px solid;border-radius:50%;place-items:center;display:inline-grid;transform:rotate(-8deg)}.menu .stamp.medal-author,.garage .stamp.medal-author{color:#6a3d9a}.menu .stamp.medal-gold,.garage .stamp.medal-gold{color:#9a7412}.menu .stamp.medal-silver,.garage .stamp.medal-silver{color:#666b72}.menu .stamp.medal-bronze,.garage .stamp.medal-bronze{color:#8a5a32}.menu .stamp.medal-finish,.garage .stamp.medal-finish{color:var(--paper-faded)}.menu .stamp.empty,.garage .stamp.empty{color:#1e1b174d;border-style:dashed}.menu .help-doc{font:15px/1.6 var(--font-type);color:var(--paper-ink)}.menu .help-doc h2{font:900 26px/1 var(--font-stencil);text-transform:uppercase;color:var(--paper-ink);margin-top:22px}.menu .help-doc b,.menu .help-doc dt{color:var(--paper-ink)}.menu .help-doc th,.menu .help-doc td{color:var(--paper-ink);border-bottom:1px solid #1e1b1740}.menu .name-entry input{font:24px/1.2 var(--font-type);color:var(--paper-ink);border:0;border-bottom:2px solid var(--paper-ink);background:0 0;border-radius:0}.menu .name-entry button.wide{font:900 26px/1 var(--font-stencil);text-transform:uppercase;color:var(--paper-red);border:3px solid var(--paper-red);background:0 0;transform:rotate(-2deg)}.menu .pad-row{background:#fff3;border-bottom:1px solid #1e1b1733}.menu .pad-status,.menu .pad-foot,.menu .pad-binding{font-family:var(--font-type);color:var(--paper-faded)}.menu[data-screen=main] .menu-title{font-size:54px}.menu[data-screen=main] .menu-title small{font-size:22px}.menu[data-screen=main] .menu-strap{margin:8px 0;font-size:14px}.menu[data-screen=main] .menu-choice{padding:8px 6px 9px}.menu[data-screen=main] .menu-choice b{font-size:30px}.menu[data-screen=main] .menu-choice em{margin-top:4px}.menu .menu-aux-row{justify-content:flex-start;margin:12px 0 6px}.menu .menu-aux-row .menu-aux{flex:none;width:auto;margin-top:0}.menu[data-screen=main] .menu-look,.menu[data-screen=main] .menu-volume{margin-top:4px}@media (max-height:500px){.menu .menu-inner.book{padding:14px 18px 24px 58px}.menu[data-screen=main] .menu-inner.book{width:min(520px,64vw);padding:14px 24px 28px 56px}.book-holes{left:12px}.book-holes i{width:12px;height:12px}.book-margin{left:40px}.book-stamp{display:none}.menu .menu-title{font-size:30px}.menu .menu-title small{margin-top:2px;font-size:14px}.menu .menu-title.small{font-size:26px}.menu .menu-strap{margin:6px 0 8px;font-size:11px}.menu .menu-choice{grid-template-columns:36px 1fr;padding:6px 4px 7px}.menu .menu-choice u{font-size:26px}.menu .menu-choice b{font-size:20px}.menu .menu-choice span{margin-top:1px;font-size:10px}.menu .menu-choice em{margin-top:3px;padding:1px 5px;font-size:9px}.menu .menu-look,.menu .menu-volume,.menu .look-choice{font-size:11px}.menu .menu-aux{padding:6px 10px 7px;font-size:11px}.menu .menu-row b{min-width:130px;font-size:16px}.menu .menu-row-head u{min-width:26px;font-size:20px}.menu .stamp,.garage .stamp{width:36px;height:36px;font-size:7px}.menu .menu-board{padding-left:38px}.menu[data-screen=main] .menu-title{font-size:28px}.menu[data-screen=main] .menu-title small{font-size:13px}.menu[data-screen=main] .menu-strap{margin:4px 0;font-size:10px}.menu[data-screen=main] .menu-choice{padding:5px 4px 6px}.menu[data-screen=main] .menu-choice b{font-size:18px}.menu[data-screen=main] .menu-choice em{margin-top:2px}.menu .menu-aux{min-height:36px;padding:10px 14px}}.garage{--ink:var(--paper-ink);--dim:var(--paper-faded);--accent:var(--paper-red);--hot:var(--paper-red);--panel:#ffffff47;background:var(--paper);color:var(--paper-ink)}.garage .garage-inner{position:relative}.garage .stage-body .stamp{float:right;margin:0 2px 4px 8px}.garage-topbar{z-index:3;background:var(--paper);border-bottom:1px solid #1e1b172e;justify-content:flex-start;padding:8px max(32px,50% - 558px);display:flex;position:sticky;top:0}@media (max-height:500px){.garage-topbar{padding:6px 16px}}.garage .garage-title{font:900 52px/.9 var(--font-stencil);letter-spacing:.04em;text-transform:uppercase;color:var(--paper-ink)}.garage .garage-sub,.garage .dim,.garage .hint,.garage .stage-meta,.garage .upgrade-desc,.garage .locked-note{font-family:var(--font-type);color:var(--paper-faded)}.garage h3{font:900 22px/1 var(--font-stencil);letter-spacing:.08em;color:var(--paper-red);border-bottom:2px solid var(--paper-ink);padding-bottom:4px}.garage .garage-money{font-family:var(--font-stencil);color:var(--paper-ink);font-weight:900}.garage .stage-name{font:900 22px/1 var(--font-stencil);text-transform:uppercase;color:var(--paper-ink)}.garage .stage-row,.garage .repair-row,.garage .upgrade-row{box-shadow:none;background:#ffffff38;border:0;border-bottom:1px solid #1e1b1740;border-radius:0}.garage .stage-row:hover,.garage .stage-row.pad-focus{background:var(--paper-hi)}.garage button{font-family:var(--font-type);color:var(--paper-ink);border:1.5px solid var(--paper-ink);box-shadow:none;text-transform:none;letter-spacing:0;background:#ffffff4d;border-radius:2px}.garage button:hover,.garage button.pad-focus{background:var(--paper-hi)}.garage button.warn,.garage .garage-tabs button.is-on{color:var(--paper-red);border-color:var(--paper-red);background:#b8342a12}.garage button:disabled{opacity:.45}.garage .garage-warnings{font-family:var(--font-type);color:var(--paper-red);border:2px dashed var(--paper-red);background:#b8342a12}.garage .stage-name{white-space:nowrap;font-size:18px}.garage .stage-pay b{color:#9a7412!important}.garage .garage-car-slot{box-shadow:0 6px 18px #00000059}@media (max-height:500px){.garage .garage-title{font-size:30px}.garage h3,.garage .stage-name{font-size:16px}}
