@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(./barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(./barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:italic;font-display:swap;font-weight:800;src:url(./barlow-condensed-latin-800-italic-Cnej2eWp.woff2)format("woff2"),url(./barlow-condensed-latin-800-italic-B5BpsPSY.woff)format("woff")}:root{--ink:#0b0d10;--panel:#12161b;--panel-2:#1b2128;--line:#2a323b;--text:#f2f4f6;--muted:#9aa5b1;--accent:#ff5a14;--accent-ink:#160600;--good:#3ddc84;--bad:#ff4d4d;--skew:-12deg;--font:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;touch-action:none;margin:0;overflow:hidden}#app,#viewport{position:fixed;inset:0}#viewport canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.loading{background:radial-gradient(circle at 50% 120%, #1d2a1c 0%, var(--ink) 60%);z-index:50;place-items:center;transition:opacity .4s;display:grid;position:fixed;inset:0}.loading.done{opacity:0;pointer-events:none}.loading-inner{width:min(560px,86vw)}.brand{align-items:center;gap:14px;margin-bottom:26px;display:flex}.brand-mark{background:var(--accent);width:34px;height:34px;transform:skewX(var(--skew))}.brand-name{letter-spacing:.02em;text-transform:uppercase;font-size:46px;font-style:italic;font-weight:800}.loading-bar{background:var(--panel-2);height:8px;transform:skewX(var(--skew));overflow:hidden}.loading-fill{background:var(--accent);width:0%;height:100%;transition:width .2s}.loading-status{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:10px;font-size:18px;font-weight:500}.loading-tip{color:var(--text);min-height:2.6em;margin-top:26px;font-size:20px;font-weight:500}.debug-overlay{color:#d7f5d7;white-space:pre;pointer-events:none;z-index:40;background:#080a0cd1;padding:8px 10px;font:12px/1.35 ui-monospace,Consolas,monospace;position:fixed;bottom:8px;left:8px}.fatal{background:var(--ink);z-index:100;text-align:center;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.fatal h1{text-transform:uppercase;margin:0 0 12px;font-size:40px;font-style:italic;font-weight:800}.fatal p{color:var(--muted);max-width:640px;font-size:20px}.pn-root{position:fixed;inset:0;pointer-events:none!important}.pn-strip{align-items:center;gap:8px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.pn-strip.pn-hidden{display:none}.pn-tile{border-top:4px solid var(--text);width:100px;height:96px;transform:skewX(var(--skew));opacity:.92;background:#0b0d10db;grid-template-rows:1fr auto;grid-template-columns:1fr auto;align-items:center;padding:4px 8px 6px 4px;display:grid;position:relative}.pn-tile.pn-next{opacity:1;width:124px;height:112px}.pn-tile>*{transform:skewX(calc(-1 * var(--skew)))}.pn-tile.pn-caution-1{border-top-color:var(--accent)}.pn-tile.pn-caution-2,.pn-tile.pn-caution-3{border-top-color:var(--bad);background:#3c0808e0}.pn-arrow{grid-area:1/1;width:100%;height:100%;max-height:70px}.pn-stem{fill:none;stroke:var(--text);stroke-width:9px;stroke-linecap:square;stroke-linejoin:miter}.pn-head{fill:var(--text);stroke:var(--text);stroke-width:3px;stroke-linejoin:miter}.pn-caution-1 .pn-stem,.pn-caution-1 .pn-head{stroke:var(--accent)}.pn-caution-1 .pn-head{fill:var(--accent)}.pn-grade{color:var(--text);grid-area:1/2;align-self:start;font-size:30px;font-style:italic;font-weight:800;line-height:1}.pn-next .pn-grade{font-size:36px}.pn-hazard{text-align:center;letter-spacing:.02em;grid-area:1/1/auto/span 2;align-self:center;font-size:20px;font-style:italic;font-weight:800;line-height:1}.pn-mods{letter-spacing:.06em;color:var(--accent);text-align:center;grid-area:2/1/auto/span 2;font-size:11px;font-weight:700;line-height:1.05}.pn-link{color:var(--text);background:#0b0d10db;padding:2px 6px;font-size:18px;font-style:italic;font-weight:800}.pn-subtitle{transform:translateX(-50%) skewX(var(--skew));border-left:5px solid var(--accent);letter-spacing:.04em;white-space:nowrap;opacity:0;background:#0b0d10d1;padding:6px 18px;font-size:clamp(18px,2.2vw,28px);font-weight:700;transition:opacity .15s;position:absolute;bottom:14vh;left:50%}.pn-subtitle.on{opacity:1}body.screen-open .pn-subtitle{display:none}.bench-result{border-left:4px solid var(--accent);font-family:var(--font);white-space:pre;z-index:40;background:#0b0d10e6;margin:0;padding:12px 16px;font-size:16px;font-weight:700;line-height:1.35;position:fixed;top:16px;left:16px}.screens{z-index:30;position:fixed;inset:0;pointer-events:none!important}.screen{pointer-events:auto;position:absolute;inset:0}.screen.hidden,.hidden{display:none!important}.btn{appearance:none;font:800 italic 30px/1 var(--font);letter-spacing:.03em;color:var(--text);transform:skewX(var(--skew));cursor:pointer;text-align:left;background:#1b2128eb;border:0;border-left:6px solid #0000;outline:none;margin:0;padding:12px 26px 11px;transition:background 80ms,color 80ms;display:block}.btn>span{transform:skewX(calc(-1 * var(--skew)));display:inline-block}.btn:hover{border-left-color:var(--accent)}.btn:focus{background:var(--text);color:var(--ink);border-left-color:var(--accent)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:focus{background:var(--text);color:var(--ink)}.btn-small{padding:8px 16px;font-size:18px}.btn.fs{position:absolute;top:18px;right:22px}.btn-row{flex-wrap:wrap;gap:14px;margin-top:18px;display:flex}.menu-main{background:linear-gradient(90deg,#0b0d10f0 0%,#0b0d10b8 30%,#0b0d1000 58%)}.menu-side{width:min(420px,86vw);position:absolute;top:50%;left:max(28px,5vw);transform:translateY(-50%)}.menu-side .brand{margin-bottom:6px}.menu-side .brand-name{font-size:clamp(44px,6vw,72px);line-height:.95}.menu-tagline{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 30px 48px;font-size:20px;font-weight:700}.menu-nav{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.menu-nav .btn{min-width:300px}.menu-card{align-items:stretch;gap:14px;display:flex;position:absolute;bottom:max(22px,5vh);right:max(22px,4vw)}.card-block{border-top:4px solid var(--accent);background:#0b0d10db;min-width:230px;max-width:320px;padding:12px 18px 14px}.card-kicker{letter-spacing:.16em;color:var(--accent);font-size:14px;font-weight:800}.card-title{text-transform:uppercase;margin-top:2px;font-size:30px;font-style:italic;font-weight:800;line-height:1.05}.card-pick{appearance:none;color:var(--text);font-family:var(--font);cursor:pointer;text-align:left;background:0 0;border:0;outline:none;padding:0}.card-pick:focus{color:var(--accent)}.card-line{color:var(--muted);margin-top:4px;font-size:17px;font-weight:500}.card-best{letter-spacing:.06em;margin-top:10px;font-size:18px;font-weight:800}.menu-hint{color:var(--muted);font-size:17px;font-weight:500;position:absolute;bottom:22px;left:max(28px,5vw)}.menu-panel{touch-action:pan-y;background:#080a0c99;flex-direction:column;align-items:center;padding:3vh 0;display:flex;overflow-y:auto}.menu-panel>:first-child{margin-top:auto}.menu-panel.pause>*{width:min(480px,92vw)}.menu-panel>:last-child{margin-bottom:auto}.menu-panel>*{background:#0b0d10f2;width:min(980px,92vw);padding-left:30px;padding-right:30px}.menu-panel>.btn.fs{background:#1b2128eb;width:auto;padding:8px 16px}.menu-panel>.btn.fs:focus{background:var(--text)}.panel-head{border-top:5px solid var(--accent);padding-top:18px;padding-bottom:10px}.panel-head h1{text-transform:uppercase;margin:0;font-size:clamp(36px,5vw,54px);font-style:italic;font-weight:800;line-height:1}.panel-sub{color:var(--muted);margin-top:6px;font-size:18px;font-weight:500}.menu-panel>.btn-row{margin-top:0;padding-top:16px;padding-bottom:22px}.menu-panel>.menu-nav{padding-top:12px;padding-bottom:24px}.tabs{outline:none;flex-wrap:wrap;gap:6px;padding-top:6px;padding-bottom:10px;display:flex}.tab{letter-spacing:.04em;background:var(--panel-2);color:var(--muted);transform:skewX(var(--skew));cursor:pointer;padding:7px 16px 6px;font-size:20px;font-style:italic;font-weight:800}.tab.on{color:var(--text);box-shadow:inset 0 -4px 0 var(--accent)}.tabs:focus .tab.on{background:var(--accent);color:var(--accent-ink);box-shadow:none}.panel-body{max-height:58vh;padding-top:4px;padding-bottom:6px;overflow-y:auto}.row{border-bottom:1px solid var(--line);grid-template-columns:1fr minmax(240px,360px);align-items:center;gap:16px;padding:6px 0;display:grid}.row-label{font-size:21px;font-weight:700}.row-note{color:var(--muted);padding:10px 0 4px;font-size:16px;font-weight:500}.ctl{appearance:none;font:800 italic 20px/1 var(--font);color:var(--text);background:var(--panel-2);transform:skewX(var(--skew));cursor:pointer;border:0;outline:none;height:38px}.ctl:focus{background:var(--text);color:var(--ink)}.ctl.capturing{background:var(--accent);color:var(--accent-ink)}.stepper{grid-template-columns:34px 1fr 34px;align-items:center;padding:0;display:grid}.stepper .arrow{color:var(--accent);transform:skewX(calc(-1 * var(--skew)));font-size:30px;font-style:normal}.stepper .val{text-align:center;letter-spacing:.04em;transform:skewX(calc(-1 * var(--skew)))}.slider{touch-action:none;grid-template-columns:1fr 64px;align-items:center;gap:10px;padding:0 10px;display:grid}.slider .track{background:#ffffff24;height:8px;position:relative}.slider .fill{background:var(--accent);transform-origin:0;position:absolute;inset:0}.slider .val{text-align:right;transform:skewX(calc(-1 * var(--skew)))}.slider:focus .track{background:#0003}.controls-cols{grid-template-columns:1fr 1fr;gap:8px 34px;padding-top:8px;padding-bottom:8px;display:grid}.controls-col .card-kicker{margin-bottom:6px}.key-row{grid-template-columns:150px 1fr;align-items:center;gap:12px;padding:3px 0;display:grid}.keycap{letter-spacing:.04em;border:2px solid var(--muted);transform:skewX(var(--skew));white-space:nowrap;justify-self:start;padding:2px 9px 1px;font-size:16px;font-weight:800}.key-action{font-size:19px;font-weight:500}.controls-assists{padding-top:8px}.credits-body{outline:none}.credits-body:focus{box-shadow:inset 4px 0 0 var(--accent)}.credit-callout{border-left:5px solid var(--accent);margin:8px 0;padding:4px 12px;font-size:20px;font-weight:800}.credit{border-bottom:1px solid var(--line);padding:8px 0}.credit-title{font-size:19px;font-weight:700}.credit-line{color:var(--muted);font-size:16px;font-weight:500}.credit-src{color:var(--muted);word-break:break-all;font-size:14px}.finish-time{font-variant-numeric:tabular-nums;padding-top:6px;font-size:clamp(64px,10vw,112px);font-style:italic;font-weight:800;line-height:1}.finish-badge{letter-spacing:.06em;color:var(--accent);padding-top:4px;font-size:24px;font-weight:800}.finish-sub{color:var(--muted);font-size:20px;font-weight:600}.finish-table{padding-top:12px;padding-bottom:6px}.finish-row{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;grid-template-columns:1fr 160px 110px;gap:12px;padding:5px 0;font-size:22px;font-weight:700;display:grid}.finish-row:last-child{border-bottom:0;font-size:26px}.finish-value,.finish-delta{text-align:right}.finish-pen{color:var(--muted);padding:2px 0 2px 12px;font-size:17px}.good{color:var(--good)}.bad{color:var(--bad)}.notice-text{margin:0;padding-top:6px;padding-bottom:6px;font-size:21px;font-weight:500;line-height:1.35}.toast{z-index:60;border-left:5px solid var(--accent);transform:skewX(var(--skew));background:#0b0d10eb;padding:9px 16px;font-size:18px;font-weight:700;transition:opacity .4s;position:fixed;bottom:22px;left:22px}.toast.out{opacity:0}.hud{font-variant-numeric:tabular-nums;position:fixed;inset:0;pointer-events:none!important}.hud.off{display:none}.hud-time{border-left:5px solid var(--accent);transform:skewX(var(--skew));background:#0b0d10d6;min-width:250px;padding:8px 18px 10px 16px;position:absolute;top:18px;left:22px}.hud-time>*{transform:skewX(calc(-1 * var(--skew)))}.hud-row{align-items:baseline;gap:12px;display:flex}.hud-label{letter-spacing:.14em;color:var(--accent);font-size:14px;font-weight:800}.hud-clock{font-size:44px;font-style:italic;font-weight:800;line-height:1}.hud-pen{color:var(--bad);letter-spacing:.06em;font-size:16px;font-weight:800}.hud-pen:empty{display:none}.hud-split{align-items:baseline;gap:12px;margin-top:2px;display:none}.hud-split.on{display:flex}.hud-split-value{font-size:28px;font-style:italic;font-weight:800}.hud-progress{background:#ffffff29;height:6px;margin-top:8px;position:relative}.rect-canvas{position:absolute;top:0;left:0}.hud-cluster{border-right:5px solid var(--accent);width:270px;transform:skewX(var(--skew));background:#0b0d10d6;padding:10px 16px 12px;position:absolute;bottom:22px;right:24px}.hud-cluster>*{transform:skewX(calc(-1 * var(--skew)))}.hud-gmeter{border-left:5px solid var(--accent);width:122px;height:140px;transform:skewX(var(--skew));background:#0b0d10d6;padding:8px 10px 6px;position:absolute;bottom:22px;left:30px}.hud-gmeter-plot{width:100%;height:100%;transform:skewX(calc(-1 * var(--skew)));position:relative}.hud-leds{height:9px;margin-bottom:6px;position:relative}.hud-main{justify-content:space-between;align-items:flex-end;display:flex}.hud-speed{align-items:baseline;gap:8px;display:flex}.hud-speed-value{text-align:right;min-width:2.2ch;font-size:64px;font-style:italic;font-weight:800;line-height:.9}.hud-speed-unit{letter-spacing:.1em;color:var(--muted);font-size:16px;font-weight:800}.hud-gear{text-align:center;background:var(--text);min-width:56px;color:var(--ink);padding:2px 6px 0;font-size:58px;font-style:italic;font-weight:800;line-height:1}.hud-rev{background:#ffffff24;height:6px;margin-top:8px;position:relative}.hud-lights{transform:translateX(-50%) skewX(var(--skew));background:#0b0d10e6;gap:16px;padding:14px 22px;display:none;position:absolute;top:19vh;left:50%}.hud-lights.on{display:flex}.hud-lamp{width:46px;height:46px;transform:skewX(calc(-1 * var(--skew)));background:#2a0b0b;border-radius:50%;box-shadow:inset 0 -4px #0006}.hud-lamp.red{background:#ff2a1a;box-shadow:0 0 22px 4px #ff2814b3}.hud-lamp.green{background:#2cff6a;box-shadow:0 0 22px 4px #28ff64b3}.hud-banner{transform:translateX(-50%) skewX(var(--skew));letter-spacing:.02em;white-space:nowrap;border-bottom:5px solid var(--accent);opacity:0;background:#0b0d10e6;padding:10px 30px;font-size:clamp(30px,4vw,52px);font-style:italic;font-weight:800;transition:opacity .2s;position:absolute;top:31vh;left:50%}.hud-banner.on{opacity:1}.hud-banner.bad{border-bottom-color:var(--bad)}.hud-banner.good{border-bottom-color:var(--good)}.hud-notices{flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;top:150px;left:22px}.hud-notice{border-left:5px solid var(--bad);letter-spacing:.04em;transform:skewX(var(--skew));background:#3c0808e6;padding:6px 14px;font-size:19px;font-weight:800;transition:opacity .5s}.hud-notice.out{opacity:0}.hud-prompt{transform:translateX(-50%) skewX(var(--skew));border-left:5px solid var(--accent);letter-spacing:.04em;white-space:nowrap;background:#0b0d10e6;padding:8px 18px;font-size:22px;font-weight:800;display:none;position:absolute;bottom:25vh;left:50%}.hud-prompt.on{display:block}@media (max-width:760px){.row{grid-template-columns:1fr;gap:6px}.controls-cols{grid-template-columns:1fr}.menu-card{flex-direction:column;left:16px;right:16px}.menu-main{background:#0b0d10bf}.menu-side{top:78px;transform:none}.menu-side .brand-name{font-size:44px}.menu-tagline{margin-bottom:18px}.menu-card{bottom:54px}.btn.fs{top:14px;right:14px}.menu-nav .btn{width:100%;min-width:0}.hud-cluster{transform:scale(.75) skewX(var(--skew));transform-origin:100% 100%}.hud-time{transform:scale(.8) skewX(var(--skew));transform-origin:0 0}.finish-row{grid-template-columns:1fr 110px 80px;font-size:18px}}.touch{z-index:20;touch-action:none;position:fixed;inset:0;pointer-events:none!important}.touch.off{display:none}.touch>*{pointer-events:auto}.touch-steer{width:46%;height:72%;position:absolute;bottom:0;left:0}.touch-steer-track{width:min(240px,30vw);height:8px;transform:skewX(var(--skew));background:#ffffff38;position:absolute;bottom:max(26px,5vh);left:max(28px,4vw)}.touch-steer-knob{background:#f2f4f6d9;border-radius:50%;width:54px;height:54px;margin:-27px 0 0 -27px;transition:transform 60ms;position:absolute;top:50%;left:50%;box-shadow:0 0 0 4px #0b0d1080}.touch-steer.on .touch-steer-knob{background:var(--accent);transition:none}.touch-btn{letter-spacing:.06em;color:var(--text);transform:skewX(var(--skew));-webkit-user-select:none;user-select:none;background:#0b0d108c;border:2px solid #f2f4f68c;place-items:center;font-size:18px;font-style:italic;font-weight:800;display:grid}.touch-btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.touch-pedals{align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:max(16px,4vh);right:max(16px,3vw)}.touch-gas{width:96px;height:140px}.touch-brake{width:88px;height:104px}.touch-hand{width:78px;height:78px;font-size:15px}.touch-shift{gap:12px;display:flex;position:absolute;bottom:calc(max(16px,4vh) + 156px);right:max(16px,3vw)}.touch-shift .touch-btn{width:64px;height:52px;font-size:30px;font-style:normal}.touch-top{gap:8px;display:flex;position:absolute;top:10px;right:12px}.touch-small{min-width:64px;height:40px;padding:0 10px;font-size:15px}.touch-pause{justify-content:center;align-items:center;gap:6px;min-width:44px;display:flex}.touch-pause span{background:var(--text);width:5px;height:18px}.touch-rotate{display:none}@media (orientation:portrait){.touch:not(.off) .touch-rotate{text-align:center;z-index:2;background:#0b0d10eb;place-items:center;padding:24px;font-size:26px;font-style:italic;font-weight:800;display:grid;position:absolute;inset:0}}body.touch-on .hud-gmeter{display:none!important}body.touch-on .hud-cluster{transform:translateX(-50%) scale(.72) skewX(var(--skew));transform-origin:bottom;bottom:12px;left:50%;right:auto}body.touch-on .pn-subtitle{bottom:30vh}@media (max-height:520px){.hud-time{transform:scale(.72) skewX(var(--skew));transform-origin:0 0}.pn-strip{transform-origin:top;transform:translate(-50%)scale(.72)}.hud-lights{top:26vh}}
