:root{--font-ui:Liminal-Drift-UI, sans-serif;--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}@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:#2e2631f0;cursor:pointer;background:linear-gradient(180deg, #cfc17eeb, #978852e6), var(--color-accent);border-radius:var(--radius-control);min-height:44px;box-shadow:var(--shadow-control), inset 0 1px 0 #f5ecc43d;transition:background-color var(--duration-normal) var(--ease-standard), box-shadow var(--duration-normal) var(--ease-standard), transform var(--duration-normal) var(--ease-standard);border:1px solid #e8deb185;padding:0 18px}.ui-button:hover{background:linear-gradient(180deg, #d9cd8df0, #a6975eeb), var(--color-accent-hover);box-shadow:var(--shadow-control-hover);transform:translateY(-1px)}.ui-button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:3px}.ui-button--secondary{color:#e6dfcfe6;background:linear-gradient(#e5dabd1f,#27222f5c),#37313dad;border-color:#c7ba8957}.glass-panel{color:var(--color-text);background:linear-gradient(180deg, #e1dacd5c, #5c525e57), var(--color-surface);border:var(--border-glass);border-radius:var(--radius-control);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:var(--blur-panel);backdrop-filter:var(--blur-panel)}.glass-card{border-radius:var(--radius-control);background:linear-gradient(#e5dabd1f,#27222f38),#38323c6b;border:1px solid #cfc2983d;min-width:0}@media (prefers-reduced-motion:reduce){.ui-button{transition:none}.ui-button:hover{transform:none}}.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:center;border:var(--border-glass);box-shadow:var(--shadow-panel);background:#fffceeb8;border-radius:8px;padding:28px}.desktop-required__kicker{letter-spacing:.14em;color:var(--color-text-soft);text-transform:uppercase;margin-bottom:10px;font-size:.76rem;font-weight:800;display:block}.desktop-required h1{margin:0;font-size:2rem;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{--hud-dial-gap:10px;--hud-dial-size:72px;--hud-score-width:156px;--hud-racer-width:calc(var(--hud-score-width) + var(--hud-dial-size) + var(--hud-dial-size) + var(--hud-dial-size) + var(--hud-dial-gap) + var(--hud-dial-gap) + var(--hud-dial-gap));inset:auto auto calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));z-index:var(--z-hud);width:min(var(--hud-racer-width), calc(100vw - 128px));color:#ece4cee6;pointer-events:none;gap:14px;display:grid;position:absolute}.hud__bar-parameters{width:min(var(--hud-racer-width), 100%);gap:7px;display:grid}.hud__debug-badge{color:#e2dad6e0;border-radius:var(--radius-control);background:#38303e94;border:1px solid #ac9e7c6b;grid-template-columns:auto auto;justify-self:start;align-items:center;gap:7px;width:fit-content;max-width:100%;padding:5px 8px;display:inline-grid;overflow:hidden;box-shadow:0 8px 22px #1d18243d}.hud__debug-badge span,.hud__debug-badge strong{text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.58rem;line-height:1;overflow:hidden}.hud__debug-badge span{color:#dacc8fe6;font-weight:840}.hud__debug-badge strong{max-width:170px;font-weight:720}.hud__bar-row{border-radius:var(--radius-control);-webkit-backdrop-filter:var(--blur-hud);backdrop-filter:var(--blur-hud);background:linear-gradient(#e5daba2e,#2d27346b),#302b3585;border:1px solid #cdc09157;grid-template-columns:76px minmax(0,1fr) 64px;align-items:center;gap:9px;padding:6px 8px;display:grid;box-shadow:0 10px 28px #1412183d,inset 0 0 0 1px #ece2c514}.hud__bar-label,.hud__bar-value{text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.64rem;font-weight:760;line-height:1;overflow:hidden}.hud__bar-label{color:#d6c791c2}.hud__bar-value{color:#e9e2cfd1;text-align:end}.hud__bar{border-radius:var(--radius-pill);background:#191c1f61;border:1px solid #ddd1aa3d;height:7px;overflow:hidden}.hud__bar span{border-radius:inherit;height:100%;transition:inline-size var(--duration-meter) var(--ease-standard);display:block}.hud__bar--integrity span{background:linear-gradient(90deg,#5f8477d1,#ae9b5bdb,#895e6ad6)}.hud__bar--drift span{background:linear-gradient(90deg,#ddd6be3d,#6f5b77c7,#beae6fd1)}.hud__bar--checkpoint span{background:linear-gradient(90deg,#ddd6be38,#628b88d1,#beae6fcc)}.hud__racer-parameters{grid-template-columns:var(--hud-score-width) repeat(3, var(--hud-dial-size));gap:var(--hud-dial-gap);align-items:end;display:grid}.hud__dial{width:var(--hud-dial-size);aspect-ratio:1;text-align:center;-webkit-backdrop-filter:var(--blur-hud);backdrop-filter:var(--blur-hud);background:radial-gradient(circle at 50% 38%,#dacfa938,#0000 42%),linear-gradient(#433a44b8,#262b2c9e);border:1px solid #ccbe8b6b;border-radius:50%;align-content:center;place-items:center;padding:8px;display:grid;position:relative;overflow:hidden;box-shadow:0 14px 34px #14121852,inset 0 0 18px #dacfa91f,inset 0 -18px 28px #141b1b3d}.hud__dial--score{width:var(--hud-score-width);aspect-ratio:auto;border-radius:var(--radius-pill);min-height:72px}.hud__dial:before{content:"";border-radius:inherit;border:1px solid #70978f57;position:absolute;inset:7px}.hud__dial-label{z-index:1;color:#d3c489c2;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;max-width:100%;font-size:.5rem;font-weight:760;line-height:1;position:relative;overflow:hidden}.hud__dial--score strong{font-size:1.18rem}.hud__dial--score small{max-width:calc(100% - 16px)}.hud__dial strong{z-index:1;color:#eee8d5f0;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:1rem;line-height:1.05;position:relative;overflow:hidden}.hud__dial small{z-index:1;color:#cfd8cd94;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.48rem;font-weight:680;line-height:1.05;position:relative;overflow:hidden}.hud[data-status=ready]{opacity:.86}.hud[data-status=paused]{opacity:.58}.hud[data-low-integrity=true] .hud__bar--integrity{border-color:#da535f99;box-shadow:0 0 18px #bb3a4985,inset 0 0 10px #da535f2e}.hud[data-low-integrity=true] .hud__bar--integrity span{background:linear-gradient(90deg,#a53a49e6,#da535feb)}.hud[data-drift-ready=true] .hud__bar--drift{box-shadow:0 0 16px #fff0b861,inset 0 0 8px #ffffff47}@media (prefers-reduced-motion:reduce){.hud__bar span{transition:none}}.impact-flash{z-index:var(--z-impact);pointer-events:none;background:radial-gradient(circle at 50% 58%,#c5485357,#582a3947,#0000 62%);animation:.52s ease-out both impact-flash;position:absolute;inset:0}.recovery-shield{z-index:var(--z-overlay);pointer-events:none;border-radius:var(--radius-pill);mix-blend-mode:screen;border:1px solid #da535fb8;animation:1.15s ease-out both recovery-shield;position:absolute;inset:9% 15% 15%;box-shadow:0 0 36px #a631416b,inset 0 0 54px #da535f2e}.integrity-veil{z-index:var(--z-feedback);pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(circle at 50% 55%,#0000 0 46%,#a137487a 100%),linear-gradient(#b5424e1f,#4c273647);animation:.98s ease-in-out infinite alternate integrity-veil;position:absolute;inset:0}.feedback-ripple{z-index:var(--z-feedback);pointer-events:none;border-radius:var(--radius-pill);opacity:0;filter:blur(.2px);mix-blend-mode:lighten;border:1px solid #d3c8a46b;animation:.68s ease-out both feedback-ripple;position:absolute;inset:12% 18% 18%}.feedback-ripple--boost{background:radial-gradient(circle,#5e8e844d,#0000 66%);box-shadow:0 0 36px #46746f57,inset 0 0 44px #c6bb8e1f}.feedback-ripple--checkpoint{background:radial-gradient(circle,#b2a1684d,#0000 66%);box-shadow:0 0 38px #7e6b5357,inset 0 0 44px #cbbe9321}.feedback-ripple--drift{background:radial-gradient(circle,#7760804d,#0000 66%);box-shadow:0 0 40px #50405b66,inset 0 0 44px #c3b5871f}.feedback-ripple--near-miss{background:radial-gradient(circle,#80596752,#0000 66%);box-shadow:0 0 42px #493a466b,inset 0 0 44px #5f847e1c}.feedback-ripple--shard{background:radial-gradient(circle,#57809a57,#0000 66%);box-shadow:0 0 42px #3d5d7666,inset 0 0 44px #beb07e1f}.feedback-toast{z-index:var(--z-hud);color:#e8e0cde6;text-align:center;pointer-events:none;border-radius:var(--radius-control);min-width:148px;-webkit-backdrop-filter:var(--blur-panel);backdrop-filter:var(--blur-panel);background:linear-gradient(#e0d6b92e,#2e273557),#37313ca8;border:1px solid #cabc8b52;gap:2px;padding:10px 14px;animation:.92s ease-out both feedback-toast;display:grid;position:absolute;top:30%;left:50%;transform:translate(-50%);box-shadow:0 18px 44px #2b233338}.feedback-toast span{text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.72rem;overflow:hidden}.feedback-toast strong{font-size:1.18rem;line-height:1}.feedback-toast--boost{background:linear-gradient(#5c8b8157,#2c2b349e),#353f40a8}.feedback-toast--checkpoint{background:linear-gradient(#b1a16852,#2c2b349e),#3e3937a8}.feedback-toast--shard{background:linear-gradient(#57809a57,#2c2b349e),#313a41a8}.feedback-toast--drift,.feedback-toast--near-miss{background:linear-gradient(#715c7d52,#2c2b349e),#39333ea8}@keyframes impact-flash{0%{opacity:1;transform:scale(.98)}to{opacity:0;transform:scale(1.04)}}@keyframes recovery-shield{0%{opacity:0;transform:scale(.82)}18%{opacity:.72}to{opacity:0;transform:scale(1.08)}}@keyframes feedback-ripple{0%{opacity:0;transform:scale(.58)}24%{opacity:.78}to{opacity:0;transform:scale(1.18)}}@keyframes integrity-veil{0%{filter:saturate()}to{filter:saturate(1.28)}}@keyframes feedback-toast{0%{opacity:0;transform:translate(-50%,14px)scale(.96)}18%{opacity:1}74%{opacity:1;transform:translate(-50%,-10px)scale(1)}to{opacity:0;transform:translate(-50%,-18px)scale(.98)}}@media (prefers-reduced-motion:reduce){.feedback-ripple,.impact-flash,.recovery-shield,.feedback-toast{display:none}.integrity-veil{animation:none}}.overlay{--overlay-edge-gap:clamp(14px, 3dvh, 24px);z-index:var(--z-overlay);padding:calc(var(--overlay-edge-gap) + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(var(--overlay-edge-gap) + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));-webkit-backdrop-filter:none;backdrop-filter:none;animation:overlay-fade-in .18s var(--ease-out) both;background:radial-gradient(circle at 50% 42%,#e5dbbe14,#0000 34%),radial-gradient(circle at 50% 64%,#1f272642,#0000 58%),linear-gradient(#231d296b,#1f2b2b7a);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.overlay__panel{--overlay-scrollbar-track:#e4dcca1f;--overlay-scrollbar-thumb:#63817e94;--overlay-scrollbar-thumb-strong:#9a8d68a8;box-sizing:border-box;width:min(560px,100%);max-block-size:calc(100dvh - var(--overlay-edge-gap) - var(--overlay-edge-gap) - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--overlay-scrollbar-thumb) var(--overlay-scrollbar-track);scrollbar-width:thin;animation:overlay-panel-enter .22s var(--ease-out) both;background:linear-gradient(#e2dac657,#2e27356b),linear-gradient(90deg,#71898224,#0000 42%,#a797671f),#3d36408f;border-color:#d8cfb86b;padding:clamp(22px,4dvh,34px);overflow-y:auto;box-shadow:0 30px 90px #15121a7a,inset 0 0 0 1px #eee6cf24,inset 0 -32px 72px #1c262547}.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__panel::-webkit-scrollbar{width:12px}.overlay__panel::-webkit-scrollbar-track{background:linear-gradient(180deg, transparent, var(--overlay-scrollbar-track), transparent);border-radius:var(--radius-control);margin-block:8px}.overlay__panel::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--overlay-scrollbar-thumb-strong), var(--overlay-scrollbar-thumb)) content-box;border-radius:var(--radius-control);border:3px solid #0000}.overlay__panel::-webkit-scrollbar-thumb:hover{background:linear-gradient(#d7ca99c7,#70a4a2b8) content-box content-box}.overlay__panel::-webkit-scrollbar-corner{background:0 0}.overlay__eyebrow{color:#d7ca97d1;letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.78rem}.overlay h1{color:#efe8d1eb;text-shadow:0 1px #2f2734a8,0 12px 38px #15121a5c;margin:0;font-size:3.8rem;font-weight:760;line-height:.96}.overlay p{color:#e1daccc7;max-width:44rem;margin:18px 0 0;font-size:clamp(1rem,2vw,1.12rem);line-height:1.7}.overlay__best-badge{color:#efe8d1e6;border-radius:var(--radius-control);background:#40393e9e;border:1px solid #beb07a75;padding:7px 12px;font-weight:740;line-height:1;display:inline-block;box-shadow:0 14px 34px #15121a47}.overlay__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:22px 0 0;display:grid}.overlay__stat{background:linear-gradient(#e0d8c329,#2e273538),#3c353d5c;border-color:#d5cab042;padding:10px 11px}.overlay__stats dt{color:#d6c891b8;text-transform:uppercase;margin-block-end:4px;font-size:.66rem}.overlay__stats dd{color:#eee8d6e6;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.96rem;font-weight:700;overflow:hidden}.overlay__actions{flex-wrap:wrap;gap:10px;margin-block-start:26px;display:flex}.race-control-button{right:calc(24px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));z-index:var(--z-hud);aspect-ratio:1;color:#eee8d6eb;cursor:pointer;width:58px;-webkit-backdrop-filter:var(--blur-hud);backdrop-filter:var(--blur-hud);transition:background-color var(--duration-normal) var(--ease-standard), box-shadow var(--duration-normal) var(--ease-standard), transform var(--duration-normal) var(--ease-standard);background:radial-gradient(circle at 50% 42%,#d6ca903d,#0000 45%),#302a35b8;border:1px solid #c7ba897a;border-radius:50%;place-items:center;display:grid;position:absolute;box-shadow:0 18px 38px #15121a52,inset 0 0 18px #e6daaa1f}.race-control-button:hover{background:radial-gradient(circle at 50% 42%,#dcd1974d,#0000 45%),#433a40c7;transform:translateY(-1px);box-shadow:0 22px 46px #15121a61,inset 0 0 20px #e6daaa29}.race-control-button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:4px}.race-control-button__icon{color:currentColor;display:block}.race-control-button[data-action=start] .race-control-button__icon{border-block:11px solid #0000;border-inline-start:18px solid;width:0;height:0;margin-inline-start:4px}.race-control-button[data-action=pause] .race-control-button__icon{background:linear-gradient(90deg,currentColor 0 6px,#0000 6px 12px,currentColor 12px 18px);width:18px;height:22px}.controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:28px 0 0;display:grid}.controls__item{padding:12px}.controls dt{color:#d6c891b3;text-transform:uppercase;margin-block-end:4px;font-size:.72rem}.controls dd{overflow-wrap:anywhere;margin:0}.overlay__gamepad-status{color:#e0d8cba8;margin-block-start:14px;font-size:.86rem;line-height:1.5}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-panel-enter{0%{opacity:0;transform:translateY(6px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes overlay-panel-exit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-4px)scale(.996)}}@media (prefers-reduced-motion:reduce){.overlay,.overlay__panel{animation:none}.overlay[data-exiting=true]{opacity:0}.race-control-button{transition:none}.race-control-button:hover{transform:none}}@media (height<=720px){.overlay__panel{padding:20px 24px}.overlay h1{font-size:3rem}.overlay p{margin-block-start:12px;line-height:1.55}.controls,.overlay__actions,.overlay__stats{margin-block-start:16px}}
