:root{--font-ui:Liminal-Drift-Pixel, Liminal-Drift-UI;--font-title:Liminal-Drift-Title, Liminal-Drift-Pixel;--color-text:#2c2631;--color-text-strong:#322936;--color-text-soft:#3e3444a8;--color-bg-start:#b8a5a4;--color-bg-mid:#a3a0ab;--color-bg-end:#6f8585;--color-surface:#dad3c994;--color-surface-soft:#e0dacf3d;--color-surface-hud:#d0c9c066;--color-accent:#c3b36f;--color-accent-hover:#d2c88d;--color-accent-cyan:#70a3a0;--color-accent-mint:#728d7d;--color-accent-warm:#aa9a59;--color-danger:#9e707c;--color-focus-ring:#699794e6;--border-glass:1px solid #e1dacf85;--border-glass-soft:1px solid #d7d0c64d;--radius-control:8px;--radius-pill:999px;--shadow-control:0 12px 30px #2a233038;--shadow-control-hover:0 16px 36px #2b263347;--shadow-panel:0 28px 80px #1f1b266b;--shadow-hud:0 18px 48px #221d2838;--blur-panel:none;--blur-hud:none;--duration-fast:.12s;--duration-normal:.16s;--duration-meter:.24s;--ease-standard:ease;--ease-out:ease-out;--space-safe-page:24px;--space-safe-mobile:12px;--z-scene:0;--z-shell-effect:1;--z-feedback:2;--z-hud:3;--z-overlay:4;--z-impact:5;--z-scene-error:6;--z-display-texture:7}@font-face{font-family:Liminal-Drift-Pixel;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/not-jam-ui-12.ttf)format("truetype")}@font-face{font-family:Liminal-Drift-Title;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/not-jam-faithless-9.ttf)format("truetype")}@font-face{font-family:Liminal-Drift-UI;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/space-grotesk-latin.woff2)format("woff2")}:root{color:var(--color-text);background:var(--color-bg-start);font-family:var(--font-ui);font-synthesis:none;text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input,textarea,select{font:inherit}button{border:0}.ui-button{color:#d9d6c6;cursor:pointer;text-shadow:1px 1px #29202e;background:0 0;border:8px solid #0000;border-image:url(/ui/psx/button-idle.png) 8 fill/8px;border-radius:0;min-width:260px;min-height:56px;padding:7px 26px 9px;font-size:24px;font-weight:400;line-height:1;position:relative}.ui-button:before{content:"";width:28px;height:16px;image-rendering:pixelated;visibility:hidden;background:url(/ui/psx/selection-marker.png) 50%/contain no-repeat;position:absolute;top:calc(50% - 8px);left:-38px}.ui-button:is(:hover,:focus-visible){color:#f0edcc;border-image-source:url(/ui/psx/button-selected.png)}.ui-button:is(:hover,:focus-visible):before{visibility:visible}.ui-button:focus-visible{outline-offset:2px;outline:1px dotted #b7ba9b}.ui-button:active{border-image-source:url(/ui/psx/button-pressed.png);padding-top:9px;padding-bottom:7px}.ui-button--secondary{color:#b6b4a9}.game-shell{isolation:isolate;background:radial-gradient(circle at 18% 12%, #e2d5b08a, transparent 26%), radial-gradient(circle at 86% 18%, #719a9a80, transparent 30%), linear-gradient(180deg, var(--color-bg-start) 0%, var(--color-bg-mid) 42%, var(--color-bg-end) 100%);width:100vw;height:100dvh;position:relative;overflow:hidden}.game-shell:focus{outline:none}.game-shell:after{z-index:var(--z-shell-effect);pointer-events:none;content:"";mix-blend-mode:multiply;background:radial-gradient(circle,#0000 0 48%,#2c233047 100%),linear-gradient(#dcd5cc0f,#485e6238);position:absolute;inset:0}.desktop-required{z-index:var(--z-overlay);place-items:center;width:100%;height:100%;padding:24px;display:grid;position:relative}.desktop-required__panel{width:min(100%,420px);color:var(--color-text);text-align:start;background:#e3ddc7;border-top:4px solid #574044;padding:28px}.desktop-required__kicker{letter-spacing:.14em;color:var(--color-text-soft);text-transform:uppercase;margin-bottom:10px;font-size:.76rem;font-weight:500;display:block}.desktop-required h1{letter-spacing:-.04em;margin:0;font-size:2rem;font-weight:500;line-height:1}.desktop-required p{color:var(--color-text-soft);margin:14px 0 0;font-size:1rem;line-height:1.5}.scene-layer{z-index:var(--z-scene);position:absolute;inset:0}.scene-loading{z-index:var(--z-overlay);color:var(--color-text);text-align:center;opacity:1;transition:opacity .6s var(--ease-out);background:radial-gradient(at 50% 38%,#e5dcc22e,#0000 32%),radial-gradient(circle at 48% 55%,#42374633,#0000 45%),linear-gradient(#86777ef5,#9c8c89f0 46%,#596b6af5);place-content:center;gap:22px;padding:24px;display:grid;position:absolute;inset:0}.scene-loading:after{pointer-events:none;content:"";mix-blend-mode:multiply;background:radial-gradient(circle at 50% 48%,#0000 0 38%,#1f192552 100%),linear-gradient(#f0e1c814,#2b3a3933);position:absolute;inset:0}.scene-loading[data-exiting=true]{opacity:0;pointer-events:none}.scene-loading__cake{z-index:1;aspect-ratio:1.25;filter:drop-shadow(0 28px 58px #1c172275);place-items:center;width:min(420px,62vw);margin-inline:auto;display:grid;position:relative}.scene-loading__cake-canvas{filter:sepia(.58)saturate(1.42)hue-rotate(308deg)brightness(.76)contrast(1.2);width:100%;height:100%;display:block}.scene-loading__cake-fallback{aspect-ratio:1.2;background:radial-gradient(#ddd3bc42,#0000 68%);border-radius:50%;width:min(260px,52vw)}.scene-loading__copy{z-index:1;gap:6px;display:grid;position:relative}.scene-loading__copy strong{color:#292330e0;text-shadow:0 1px 22px #e2d8be3d;font-size:1.08rem;font-weight:700}.scene-loading__copy span{color:#302a389e;text-transform:uppercase;letter-spacing:0;font-size:.76rem}@media (prefers-reduced-motion:reduce){.scene-loading{transition:none}}.scene-error{z-index:var(--z-scene-error);color:var(--color-text);text-align:center;background:radial-gradient(circle at 50% 42%, #fff0b87a, transparent 36%), linear-gradient(180deg, var(--color-bg-start), var(--color-bg-end));place-content:center;gap:18px;padding:24px;display:grid;position:absolute;inset:0}.scene-error strong{font-size:clamp(1.5rem,5vw,3rem)}.scene-layer canvas{z-index:var(--z-scene);position:absolute;inset:0}.hud{inset:calc(30px + env(safe-area-inset-top)) calc(36px + env(safe-area-inset-right)) calc(30px + env(safe-area-inset-bottom)) calc(36px + env(safe-area-inset-left));z-index:var(--z-hud);color:#f2ebd4;text-shadow:0 1px 4px #26232c,0 0 16px #1b192199;font-variant-numeric:tabular-nums;pointer-events:none;position:absolute}.hud:before{z-index:-1;content:"";background:linear-gradient(#1b18205c,#0000 22% 75%,#1b18207a);position:absolute;inset:-30px -36px}.hud:not([data-status=running]){visibility:hidden}.hud__wayfinding{position:absolute;top:0;left:0}.hud__route-mark{letter-spacing:0;text-transform:uppercase;padding-bottom:8px;font-size:24px;font-weight:500;display:block}.hud__road-hint{letter-spacing:0;border-top:1px solid #f2ebd480;padding-top:8px;font-size:12px}.hud__road-hint[data-off-road=true]{color:#ffd09f}.hud__debug-badge{background:#302b35;gap:8px;padding:4px 8px;font-size:.6rem;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.hud__bar-parameters{gap:12px;width:304px;display:grid;position:absolute;bottom:0;left:0}.hud__bar-row{grid-template-columns:92px minmax(0,1fr) 52px;align-items:center;gap:12px;display:grid}.hud__bar-label,.hud__bar-value{white-space:nowrap;font-size:12px;line-height:1.2}.hud__bar-label{letter-spacing:0;text-transform:uppercase}.hud__bar-value{text-align:end}.hud__bar{background:#f2ebd438;height:3px;overflow:hidden;box-shadow:0 1px 3px #1b192180}.hud__bar span{height:100%;transition:inline-size var(--duration-meter) var(--ease-standard);background:#dfd8bd;display:block}.hud__bar--drift span{background:#c6c4d8}.hud__racer-parameters{display:contents}.hud__metric{text-align:end;justify-items:end;gap:3px;display:grid;position:absolute}.hud__metric-label{letter-spacing:0;text-transform:uppercase;font-size:12px}.hud__metric strong{font-size:24px;font-weight:400;line-height:1}.hud__metric small{color:#d9d2bf;font-size:12px}.hud__metric--score{top:0;right:108px}.hud__metric--combo{text-align:start;justify-items:start;bottom:92px;left:0}.hud__metric--combo strong{font-size:24px}.hud__metric--speed{bottom:-2px;right:0}.hud__metric--speed strong{letter-spacing:0;font-size:48px}.hud__metric--distance{bottom:2px;right:148px}.hud[data-low-integrity=true] .hud__bar--integrity span{background:#ee927e}.hud[data-drift-ready=true] .hud__bar--drift span{background:#ffebbb}@media (height<=620px){.hud{inset:22px 26px}.hud__metric--speed strong{font-size:36px}.hud__metric--combo{bottom:80px}}@media (prefers-reduced-motion:reduce){.hud__bar span{transition:none}}.impact-flash,.recovery-shield,.reverse-vignette,.integrity-veil{z-index:var(--z-feedback);pointer-events:none;position:absolute;inset:0}.reverse-vignette{background:radial-gradient(ellipse at 50% 54%, transparent var(--reverse-clear,52%), #040206bf calc(var(--reverse-clear,52%) + 30%), #040206 calc(var(--reverse-clear,52%) + 52%));transition:opacity .16s linear}.impact-flash{background:radial-gradient(#0000 55%,#913e486b);animation:.52s ease-out both impact-flash}.recovery-shield{border:2px solid #ce908166;animation:1.15s ease-out both impact-flash}.integrity-veil{background:radial-gradient(#0000 46%,#772e3e85)}.feedback-toast{z-index:var(--z-feedback);color:#f2ead2;text-align:center;text-shadow:0 1px 4px #28232c,0 0 20px #28232c;pointer-events:none;border-top:1px solid #eee5c88c;align-items:baseline;gap:16px;padding:8px 0;animation:1.4s ease-out both feedback-toast;display:flex;position:absolute;top:24%;left:50%;transform:translate(-50%)}.feedback-toast span{letter-spacing:.06em;font-size:.72rem}.feedback-toast strong{font-size:.85rem;font-weight:500}@keyframes impact-flash{0%{opacity:1}to{opacity:0}}@keyframes feedback-toast{0%{opacity:0}15%,72%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.impact-flash,.recovery-shield{display:none}}.overlay{--overlay-edge-gap:24px;z-index:var(--z-overlay);padding:calc(var(--overlay-edge-gap) + env(safe-area-inset-top)) 28px calc(var(--overlay-edge-gap) + env(safe-area-inset-bottom));animation:overlay-fade-in .18s var(--ease-out) both;background:#151319ad;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.overlay__panel{box-sizing:border-box;width:min(560px,100%);max-block-size:calc(100dvh - var(--overlay-edge-gap) * 2 - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8d9180 #292530;color:#e0dcc4;text-align:center;animation:overlay-panel-enter .22s var(--ease-out) both;border:12px solid #0000;border-image:url(/ui/psx/button-idle.png) 10 fill/12px;padding:30px 34px;overflow-y:auto}.overlay--start{background:linear-gradient(#1e1a208f,#1b191f3d 40%,#19191da6)}.overlay--start .overlay__panel{background:radial-gradient(#1a181e8c,#0000 72%);border:0;width:min(690px,100%);padding:30px 36px 22px}.overlay h1{color:#e0dbc7;font-family:var(--font-title);text-shadow:-2px 0 #87a79073,2px 1px #ae7b847a,0 0 12px #c9d2b24d,0 2px 4px #221e29;margin:0;font-size:45px;font-weight:400;line-height:1.15}.overlay--start h1{letter-spacing:0;font-size:54px}.overlay p{margin:18px 0 0;font-size:12px;font-weight:400;line-height:1.8}.overlay .overlay__whisper{color:#c4c2b1;letter-spacing:1px;text-shadow:1px 1px 2px #251e2b;margin-top:24px;font-size:12px}.overlay__actions{justify-content:center;gap:8px;margin-top:30px;display:grid}.overlay--start .overlay__actions{margin-top:60px}.overlay__controls{text-align:start;border:8px solid #0000;border-image:url(/ui/psx/button-idle.png) 8 fill/8px;width:min(460px,100%);margin:22px auto 0;padding:12px 18px}.overlay__controls>p{margin:0}.controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:14px 0 0;display:grid}.controls dt{color:#b2baab;margin-bottom:5px;font-size:12px}.controls dd{overflow-wrap:anywhere;margin:0;font-size:12px}.overlay .overlay__gamepad-status{color:#bbb8ac;text-shadow:1px 1px 3px #201b25;margin-top:28px;font-size:12px}.overlay__stats{text-align:start;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;margin:28px 0 0;display:grid}.overlay__stat{justify-content:space-between;gap:12px;min-width:0;display:flex}.overlay__stats dt{color:#b7b7a4;font-size:12px}.overlay__stats dd{white-space:nowrap;margin:0;font-size:12px}.overlay .overlay__best-badge{color:#d6d8a2;font-size:18px}.race-control-button{top:calc(24px + env(safe-area-inset-top));right:calc(28px + env(safe-area-inset-right));z-index:var(--z-hud);color:#dedcc7;cursor:pointer;text-shadow:1px 1px #27202b;background:0 0;border:6px solid #0000;border-image:url(/ui/psx/button-idle.png) 8 fill/6px;justify-content:center;align-items:center;gap:10px;min-width:92px;min-height:44px;padding:6px;font-size:12px;display:flex;position:absolute}.race-control-button:is(:hover,:focus-visible){border-image-source:url(/ui/psx/button-selected.png)}.race-control-button:focus-visible{outline-offset:3px;outline:1px dotted #d4d7b5}.race-control-button:active{border-image-source:url(/ui/psx/button-pressed.png)}.race-control-button__icon{display:block}.race-control-button[data-action=start] .race-control-button__icon{border-block:4px solid #0000;border-inline-start:6px solid}.race-control-button[data-action=pause] .race-control-button__icon{border-inline:2px solid;width:6px;height:8px}.overlay[data-exiting=true]{pointer-events:none;animation:overlay-fade-out var(--duration-normal) var(--ease-standard) both}.overlay[data-exiting=true] .overlay__panel{animation:overlay-panel-exit var(--duration-normal) var(--ease-standard) both}.overlay--paused:not([data-exiting=true]),.overlay--paused:not([data-exiting=true]) .overlay__panel{opacity:1;animation:none}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-panel-enter{0%{opacity:0}to{opacity:1}}@keyframes overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes overlay-panel-exit{0%{opacity:1}to{opacity:0}}@media (height<=700px){.overlay__panel{padding:20px 26px}.overlay--start .overlay__panel{padding:18px 30px}.overlay--start h1{font-size:45px}.overlay--start .overlay__actions{margin-top:30px}.overlay__controls{margin-top:16px;padding:8px 12px}.overlay .overlay__gamepad-status{margin-top:18px}.overlay__stats{gap:10px 24px;margin-top:20px}}@media (prefers-reduced-motion:reduce){.overlay,.overlay__panel{animation:none}.overlay[data-exiting=true]{opacity:0}}.display-texture{z-index:var(--z-display-texture);pointer-events:none;background:radial-gradient(#0000 48%,#100c1740 100%),linear-gradient(#a8bb9a06,#543c6009);position:absolute;inset:0;overflow:hidden}.display-texture:before,.display-texture:after{pointer-events:none;content:"";position:absolute;inset:0}.display-texture:before{background:repeating-linear-gradient(#0000 0 2px,#0a070f1f 2px 3px,#0000 3px 4px),repeating-linear-gradient(90deg,#c470720e 0 1px,#77b3850a 1px 2px,#7984bc0e 2px 3px)}.display-texture:after{opacity:.09;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192' height='192' viewBox='0 0 192 192'%3E%3Cfilter id='grain' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch' seed='17'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23888888' d='M0 0h192v192H0z' filter='url(%23grain)'/%3E%3C/svg%3E");background-size:192px 192px}.screen-surface,.screen-tracking,.screen-signal,.screen-color{position:absolute;inset:0}.signal-filter{pointer-events:none;width:0;height:0;position:absolute}.screen-color[data-corruption=true]{animation:signal-color var(--signal-duration) steps(1, end) infinite}.screen-tracking{animation:signal-drift var(--signal-duration) steps(1, end) infinite}.signal-interference,.signal-burst{z-index:var(--z-impact);pointer-events:none;background:linear-gradient(#0000 0 24%,#8cb8adb3 24% 24.6%,#aa749473 24.6% 25.8%,#0000 25.8% 64%,#99b1a999 64% 66%,#0000 66% 82%,#a97e95a6 82% 82.8%,#0000 82.8%),repeating-linear-gradient(#0000 0 3px,#110918cc 3px 5px);position:absolute;inset:0}.signal-interference{opacity:var(--signal-opacity,0);animation:signal-tracking var(--signal-duration) steps(1, end) infinite;background-size:100% 145%,100% 100%}.signal-burst{opacity:0}.signal-blocks{z-index:var(--z-impact);pointer-events:none;opacity:var(--signal-block-opacity);position:absolute;inset:0;overflow:hidden}.signal-block{width:18%;height:6%;transform:scaleX(var(--signal-block-scale));transform-origin:0;animation:signal-dropout var(--signal-duration) steps(1, end) infinite;background:repeating-linear-gradient(#0000 0 3px,#090416b3 3px 5px),linear-gradient(90deg,#ab194b 0 36%,#61bbaa 36% 42%,#541637 42% 88%,#c391a8 88%);position:absolute;top:18%;left:6%}.signal-block:nth-child(2){filter:hue-rotate(48deg);width:27%;height:9%;animation-delay:-650ms;top:65%;left:68%}.signal-block:nth-child(3){filter:hue-rotate(-35deg);width:12%;height:14%;animation-delay:-1200ms;top:9%;left:79%}.signal-block:nth-child(4){width:36%;height:3%;animation-delay:-1800ms;top:82%;left:0}.signal-block:nth-child(5){filter:hue-rotate(160deg);width:22%;height:2%;animation-delay:-2400ms;top:6%;left:40%}.signal-block:nth-child(6){width:13%;height:4%;animation-delay:-3000ms;top:72%;left:37%}.game-shell[data-status=paused] .screen-tracking,.game-shell[data-status=paused] .signal-interference,.game-shell[data-status=paused] .screen-color,.game-shell[data-status=paused] .signal-block{animation-play-state:paused}@keyframes signal-color{0%,68%,to{filter:var(--signal-fringe) hue-rotate(calc(var(--signal-hue) * .18)) saturate(var(--signal-saturation))}72%,79%{filter:var(--signal-fringe) invert(var(--signal-negative)) hue-rotate(var(--signal-hue)) saturate(var(--signal-saturation))}84%,90%{filter:var(--signal-fringe) hue-rotate(calc(var(--signal-hue) * -.6)) saturate(1.3)}}@keyframes signal-dropout{0%,20%,54%,to{opacity:0;translate:0}25%,35%{opacity:1;translate:-8%}40%{opacity:.35;translate:12% 80%}70%,78%{opacity:.8;translate:28% -130%}}@keyframes signal-drift{0%,60%,to{transform:none}64%,82%{transform:translateX(var(--signal-shift)) skewX(var(--signal-skew)) scale(1.004)}70%,90%{transform:translateX(calc(var(--signal-shift) * -.6)) scale(1.004)}}@keyframes signal-tracking{0%,to{background-position:0 0,0 0}28%{background-position:0 65%,0 2px}63%{background-position:0 100%,0 1px}}@media (prefers-reduced-motion:reduce){.screen-tracking,.signal-interference,.screen-color[data-corruption=true],.signal-block{animation:none}.screen-color[data-corruption=true]{filter:hue-rotate(calc(var(--signal-hue) * .12)) saturate(var(--signal-saturation))}.signal-block{opacity:.18}}
