@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(/assets/press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff")}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-latin-400-normal-wDgJuOC9.woff2)format("woff2"),url(/assets/vt323-latin-400-normal-Dqn9ZSPj.woff)format("woff")}@font-face{font-family:FOT-NewRodin Pro DB;src:url(/fonts/FOT-NewRodinPro-DB.otf)format("opentype");font-weight:400;font-style:normal;font-display:block}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#000;--foreground:#fff;--muted:#999;--garage-surface:#102c43;--garage-accent:#5ce3f2;--item-accent:#ffd34e;--font-pixel:"Press Start 2P", monospace;--font-body:"VT323", monospace;font-family:var(--font-body);font-synthesis:none}*{box-sizing:border-box}html.bg-background,body{background:var(--background);color:var(--foreground)}html,body{width:100%;height:100%;margin:0;overflow:hidden}p,h1,h2{margin:0}button,kbd{font:inherit}button{border-radius:0}button:focus-visible{outline:2px solid var(--foreground);outline-offset:6px}.font-pixel{font-family:var(--font-pixel)}#main-menu{background:var(--background);color:var(--foreground);position:fixed;inset:0}#main-menu.menu-entered{animation:.65s ease-out both garage-enter}.garage-footer{pointer-events:none;color:var(--muted);opacity:.5;letter-spacing:.06em;font-size:16px;line-height:1.5;position:absolute;bottom:20px;right:24px}#main-menu-screen,#multiplayer-screen{z-index:2;background:color-mix(in srgb, var(--garage-surface) 20%, transparent);color:var(--foreground);justify-content:flex-start;align-items:center;padding:5.5%;display:flex;position:fixed;inset:0}.garage-screen{border:2px solid var(--garage-accent);background:color-mix(in srgb, var(--garage-surface) 97%, transparent);width:min(510px,100%);max-height:90dvh;color:var(--foreground);box-shadow:0 12px 0 color-mix(in srgb, var(--background) 25%, transparent);border-radius:14px 4px;flex-direction:column;gap:26px;padding:36px;display:flex;overflow-y:auto}.garage-screen h2{font:18px/1.6 var(--font-pixel);text-wrap:balance}.garage-screen p{text-wrap:pretty;font-size:21px;line-height:1.5}.garage-screen .garage-eyebrow{color:var(--garage-accent);letter-spacing:.15em;font-size:16px}.garage-close{background:var(--garage-accent);color:var(--garage-surface);border:2px solid var(--garage-accent);cursor:pointer;font:18px/1.5 var(--font-body);border-radius:5px;padding:14px 16px}.garage-close:hover{background:var(--foreground);color:var(--garage-surface)}.garage-setting{justify-content:space-between;align-items:center;gap:12px;font-size:20px;line-height:1.5;display:flex}.garage-setting input{accent-color:var(--garage-accent);max-width:120px}.garage-setting input[type=checkbox]{width:20px;height:20px}.garage-setting select{background:var(--garage-surface);color:var(--foreground);border:1px solid var(--garage-accent);font:inherit;border-radius:4px;max-width:145px;padding:6px}.garage-setting output{min-width:42px}@keyframes garage-enter{0%{opacity:0}to{opacity:1}}.mp-options{flex-direction:column;gap:12px;display:flex}.mp-option{border:2px solid var(--garage-accent);cursor:pointer;width:100%;font:22px/1.4 var(--font-body);letter-spacing:.08em;text-align:left;border-radius:5px;padding:14px 16px}.mp-option--primary{color:var(--garage-accent);background:0 0}.mp-option--secondary{color:var(--foreground);background:0 0}.mp-option:hover,.mp-option:focus-visible{background:var(--garage-accent);border-color:var(--garage-accent);color:var(--garage-surface);outline:none}.mp-join{flex-direction:column;gap:14px;display:flex}.mp-join label{color:var(--garage-accent);letter-spacing:.15em;font-size:18px}.mp-code-input{border:2px solid var(--garage-accent);background:var(--background);width:100%;color:var(--foreground);font:30px/1.4 var(--font-pixel);letter-spacing:.4em;text-transform:uppercase;caret-color:var(--garage-accent);border-radius:5px;padding:12px 16px}.mp-code-input::placeholder{color:color-mix(in srgb, var(--foreground) 25%, transparent)}.mp-code-input:focus-visible{outline:2px solid var(--foreground);outline-offset:4px}.garage-screen .mp-hint{color:var(--muted);font-size:19px}.garage-screen .mp-alert{color:var(--item-accent);letter-spacing:.06em;font-size:20px}.garage-screen .mp-code{font:40px/1.3 var(--font-pixel);letter-spacing:.3em;color:var(--garage-accent);font-variant-numeric:tabular-nums}.garage-screen .mp-status{letter-spacing:.08em;font-size:24px}.garage-screen .mp-count{font:22px/1.4 var(--font-pixel);font-variant-numeric:tabular-nums}.net-debug{z-index:100;background:var(--background);color:var(--garage-accent);pointer-events:none;-webkit-user-select:none;user-select:none;padding:8px 12px;position:fixed;bottom:20px;right:24px}.net-debug pre{font:16px/1.4 var(--font-body);letter-spacing:.04em;margin:0}@media (width<=650px){.garage-screen .mp-code{font-size:30px}.mp-code-input{font-size:24px}}.perf-counter{z-index:100;color:#fff;opacity:1;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--font-body);letter-spacing:.06em;white-space:pre;contain:layout style paint;background:#000;padding:6px 10px;font-size:16px;line-height:1.4;position:fixed;bottom:20px;left:24px}@media (width<=650px){.perf-counter{font-size:14px;bottom:14px;left:16px}.garage-footer{font-size:14px;bottom:14px;right:16px}.garage-screen{gap:20px;padding:24px}.garage-setting{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){#main-menu.menu-entered{animation:none}}#game{width:100%;height:100%}canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}[hidden]{display:none!important}#loading{background:var(--background);color:var(--foreground);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex;position:fixed;inset:0}#loading .font-pixel{font-size:20px;line-height:1.6}#loading-detail{color:var(--muted);font-size:20px}.pixel-hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;bottom:28px;right:28px}.hud-speed{background:var(--background);color:var(--foreground);border:2px solid var(--foreground);text-align:right;min-width:140px;padding:20px 20px 16px}.hud-speed strong{font:36px/1.3 var(--font-pixel);font-variant-numeric:tabular-nums;display:block}.hud-speed span{font:20px/1.5 var(--font-body);display:block}.hud-map{background:var(--background);color:var(--foreground);border:2px solid var(--foreground);font:14px/1.5 var(--font-pixel);cursor:pointer;padding:16px;position:fixed;top:28px;left:28px}.hud-map:hover{background:var(--foreground);color:var(--background)}.item-hud{--tone-buff:var(--garage-accent);--tone-debuff:#ff4d6d;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:97px;left:28px}.item-slots{gap:8px;display:flex}.item-slot{background:var(--background);width:72px;height:72px;color:var(--foreground);border:2px solid var(--muted);justify-content:center;align-items:center;display:flex;position:relative}.item-slot[data-state=filled],.item-slot[data-state=using]{border-color:var(--foreground)}.item-slot[data-state=filled]:first-child{border-color:var(--item-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--item-accent) 30%, transparent)}.item-slot[data-state=empty]:after{content:"";border:2px dashed color-mix(in srgb, var(--muted) 55%, transparent);width:18px;height:18px}.item-slot-key{z-index:1;font:8px/1 var(--font-pixel);color:var(--muted);position:absolute;top:4px;left:5px}.item-slot[data-state=filled] .item-slot-key{color:var(--foreground)}.item-slot-icon{justify-content:center;align-items:center;width:58px;height:58px;display:flex}.item-slot-icon:empty{display:none}.item-slot-image{object-fit:contain;width:100%;height:100%;filter:drop-shadow(0 2px 0 var(--background))}.item-slot-name{font:7px/1.3 var(--font-pixel);color:var(--muted);text-align:center;text-wrap:balance;overflow-wrap:anywhere;text-shadow:1px 0 var(--background), -1px 0 var(--background), 0 1px var(--background), 0 -1px var(--background);position:absolute;top:calc(100% + 6px);left:-2px;right:-2px}.item-slot:first-child .item-slot-name{color:var(--foreground)}.item-slot-fail{background:var(--foreground);color:var(--background);font:7px/1.2 var(--font-pixel);text-align:center;opacity:0;padding:4px 2px;position:absolute;inset:auto -12px 50%;translate:0 50%}.item-slot.is-failing{border-color:var(--tone-debuff);animation:.32s steps(2,end) item-slot-shake}.item-slot.is-failing .item-slot-fail{animation:.7s ease-out forwards item-slot-fail}.item-slot.is-entering{animation:.28s ease-out item-slot-in}.item-slot.is-shifting .item-slot-icon{animation:.22s ease-out item-slot-shift}.item-slot[data-state=using] .item-slot-icon{animation:.19s ease-in forwards item-slot-use}@keyframes item-slot-in{0%{border-color:var(--garage-accent);box-shadow:inset 0 0 0 36px color-mix(in srgb, var(--garage-accent) 45%, transparent);transform:scale(.9)}60%{border-color:var(--garage-accent);transform:scale(1.05)}to{transform:scale(1);box-shadow:inset 0 0 0 36px #0000}}@keyframes item-slot-use{to{opacity:0;transform:scale(1.5)}}@keyframes item-slot-shift{0%{opacity:.4;transform:translate(80px)scale(.8)}to{opacity:1;transform:none}}@keyframes item-slot-shake{0%,to{translate:0}25%{translate:-4px}75%{translate:4px}}@keyframes item-slot-fail{0%{opacity:0;scale:.8}15%,75%{opacity:1;scale:1}to{opacity:0}}.item-effects{flex-direction:column;gap:4px;margin:22px 0 0;padding:0;list-style:none;display:flex}.item-effect{background:var(--background);border:2px solid var(--tone-buff);width:152px;color:var(--foreground);align-items:center;gap:8px;padding:4px 8px 6px 4px;display:flex;position:relative}.item-effect[data-tone=debuff]{border-color:var(--tone-debuff)}.item-effect-icon{object-fit:contain;flex:none;width:22px;height:22px}.item-effect-icon.is-blank{background:var(--tone-buff);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}.item-effect[data-tone=debuff] .item-effect-icon.is-blank{background:var(--tone-debuff)}.item-effect-label{font:8px/1.4 var(--font-pixel);letter-spacing:.04em}.item-effect-bar{background:var(--tone-buff);transform-origin:0;height:3px;transform:scaleX(var(--progress,1));position:absolute;bottom:0;left:0;right:0}.item-effect[data-tone=debuff] .item-effect-bar{background:var(--tone-debuff)}@media (prefers-reduced-motion:reduce){.item-slot.is-entering,.item-slot.is-failing,.item-slot.is-shifting .item-slot-icon,.item-slot[data-state=using] .item-slot-icon{animation:none}.item-slot.is-failing .item-slot-fail{opacity:1}}.item-screen{--tone-strike:#ffd21a;--tone-hot:#ff6b2c;--tone-ghost:#7fe3ff;--tone-possess:#c34dff;--tone-ink:#0c0a14;z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.item-screen>*{position:absolute}.item-screen-ink{opacity:0;inset:0}.ink-splat{object-fit:contain;max-width:none;display:block;position:absolute}.item-screen-ink.is-splatting .ink-splat{animation:.15s cubic-bezier(.2,1.35,.4,1) both ink-splat}@keyframes ink-splat{0%{scale:.6}to{scale:1}}.item-screen-ghost{opacity:0;box-shadow:inset 0 0 12vmin 2vmin color-mix(in srgb, var(--tone-ghost) 55%, transparent);background:repeating-linear-gradient(0deg, transparent 0 3px, color-mix(in srgb, var(--tone-ghost) 6%, transparent) 3px 4px);inset:0}.item-screen-ghost.is-ending{animation:.14s steps(2,end) infinite ghost-flicker}@keyframes ghost-flicker{50%{visibility:hidden}}.item-screen-possess{opacity:0;box-shadow:inset 0 0 14vmin 3vmin color-mix(in srgb, var(--tone-possess) 60%, transparent);transition:opacity .18s ease-out;inset:0}.item-screen-possess.is-active{opacity:1;animation:1.4s step-end infinite possess-glitch}.item-screen-possess[data-role=target]{box-shadow:inset 0 0 18vmin 4vmin color-mix(in srgb, var(--tone-possess) 75%, transparent)}@keyframes possess-glitch{0%,to{translate:0}46%{translate:6px}48%{translate:-4px}50%{translate:0}}.item-screen-flash{opacity:0;background:var(--tone-possess);mix-blend-mode:screen;inset:0}.item-screen-flash.is-flashing{animation:.36s ease-out possess-flash}@keyframes possess-flash{0%{opacity:.55}to{opacity:0}}.item-screen-hit,.item-screen-toast{background:var(--background);color:var(--foreground);border:2px solid var(--foreground);white-space:nowrap;opacity:0;margin:0;padding:12px 18px 10px;left:50%;translate:-50%}.item-screen-hit{font-size:clamp(18px,2.6vw,30px);line-height:1.3;top:20%}.item-screen-toast{font-size:12px;line-height:1.4;top:64%}.item-screen [data-tone=strike],.item-screen [data-tone=growth]{color:var(--tone-strike);border-color:var(--tone-strike)}.item-screen [data-tone=bomba],.item-screen [data-tone=pewpew],.item-screen [data-tone=steal]{color:var(--tone-hot);border-color:var(--tone-hot)}.item-screen [data-tone=possession],.item-screen [data-tone=squid],.item-screen [data-tone=oil]{color:var(--tone-possess);border-color:var(--tone-possess)}.item-screen [data-tone=muted]{color:var(--muted);border-color:var(--muted)}.item-screen-hit.is-showing{animation:1.1s cubic-bezier(.2,1.6,.4,1) forwards item-callout}.item-screen-toast.is-showing{animation:.9s cubic-bezier(.2,1.6,.4,1) forwards item-callout}@keyframes item-callout{0%{opacity:0;scale:1.7}14%{opacity:1;scale:1}78%{opacity:1;scale:1}to{opacity:0;scale:.94}}@media (prefers-reduced-motion:reduce){.item-screen-ink.is-splatting .ink-splat,.item-screen-possess.is-active,.item-screen-ghost.is-ending{animation:none}.item-screen-hit.is-showing,.item-screen-toast.is-showing{animation:1s linear forwards item-callout-still}@keyframes item-callout-still{0%,85%{opacity:1}to{opacity:0}}}.race-hud{pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;top:28px;right:28px}.race-position,.race-lap{background:var(--background);color:var(--foreground);border:2px solid var(--foreground)}.race-position{font-family:var(--font-pixel);font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;padding:12px 16px 10px;display:flex}.race-position strong{font-size:36px;line-height:1.2}.race-position span{font-size:14px;line-height:1.2}.race-position small{font:20px/1 var(--font-body);color:var(--muted);margin-left:8px}.race-lap{font:12px/1.5 var(--font-pixel);letter-spacing:.08em;padding:8px 14px}.race-banner{background:var(--background);color:var(--foreground);border:2px solid var(--foreground);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:18px 34px 14px;font-size:clamp(40px,7vw,88px);line-height:1.2;position:fixed;top:32%;left:50%;translate:-50% -50%}.race-banner[data-variant=go]{color:var(--item-accent);border-color:var(--item-accent)}.race-banner[data-variant=finish]{color:var(--garage-accent);border-color:var(--garage-accent);font-size:clamp(22px,3.4vw,40px)}.race-banner.is-popping{animation:.32s cubic-bezier(.2,1.6,.4,1) race-banner-pop}@keyframes race-banner-pop{0%{opacity:0;scale:1.6}to{opacity:1;scale:1}}@media (prefers-reduced-motion:reduce){.race-banner.is-popping{animation:none}}.race-debug{background:color-mix(in srgb, var(--background) 82%, transparent);max-width:calc(100vw - 260px);color:var(--foreground);border:1px solid var(--muted);font:16px/1.3 var(--font-body);white-space:pre;pointer-events:none;margin:0;padding:10px 12px;position:fixed;bottom:28px;left:28px;overflow:hidden}.hud-debug{background:var(--background);color:var(--foreground);border:2px solid var(--foreground);grid-template-columns:1fr auto;gap:4px 24px;margin-top:12px;padding:12px;font-size:20px;line-height:1.4;display:grid}.hud-debug dt{color:var(--muted)}.hud-debug dd{text-align:right;margin:0}.hud-state{background:var(--background);color:var(--foreground);text-align:center;font-size:20px}.visual-controls{z-index:5;background:var(--background);max-width:min(340px,100vw - 32px);max-height:80vh;color:var(--foreground);border:2px solid var(--foreground);font:18px/1.4 var(--font-body);position:fixed;top:28px;right:28px;overflow:auto}.visual-controls summary{cursor:pointer;padding:12px 16px}.visual-controls-body{padding:0 16px 16px}.visual-controls label{justify-content:space-between;align-items:center;gap:16px;min-height:36px;display:flex}.visual-controls input,.visual-controls select{width:104px;font:inherit;background:var(--background);color:var(--foreground);border:1px solid var(--muted)}.visual-controls input[type=checkbox]{width:20px;height:20px;accent-color:var(--foreground)}.visual-controls p{color:var(--muted);max-width:280px;line-height:1.4}.visual-controls :focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.voice-debug{z-index:5;background:var(--background);width:min(360px,100vw - 32px);max-height:70vh;color:var(--foreground);border:2px solid var(--foreground);font:16px/1.4 var(--font-body);position:fixed;top:50%;left:28px;overflow:auto;translate:0 -50%}.voice-debug summary{cursor:pointer;padding:10px 14px}.voice-debug>:not(summary){margin:0 14px 10px}.voice-debug__clip{text-wrap:pretty;min-height:2.8em}.voice-debug__row,.voice-debug__events{flex-wrap:wrap;gap:6px;display:flex}.voice-debug button{font:inherit;background:var(--background);color:var(--foreground);border:1px solid var(--muted);cursor:pointer;padding:2px 8px}.voice-debug button:hover{border-color:var(--foreground)}.voice-debug__force{align-items:center;gap:8px;display:flex}.voice-debug__force input{width:18px;height:18px;accent-color:var(--foreground)}.voice-debug__state,.voice-debug__log{color:var(--muted)}.voice-debug__log{padding-left:20px}.voice-debug :focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px){.pixel-hud{bottom:16px;right:16px}.hud-speed{min-width:116px;padding:12px}.hud-speed strong{font-size:28px}.hud-map{padding:12px;top:16px;left:16px}.item-hud{gap:6px;top:77px;left:16px}.item-slot{width:56px;height:56px}.item-slot-icon{width:44px;height:44px}.item-effect{width:132px}.race-hud{top:16px;right:16px}.race-position strong{font-size:26px}}:root{--select-sky:#2bb8f2;--select-deep:#0b5fc2;--select-ink:#1c2530;--select-gold:#ffd21a;--font-ui:"FOT-NewRodin Pro DB", "Arial Rounded MT Bold", Arial, sans-serif}#select-backdrop{pointer-events:none;background:radial-gradient(55% 50% at 80% 10%, color-mix(in srgb, var(--foreground) 34%, transparent), transparent 70%), radial-gradient(35% 30% at 62% 38%, color-mix(in srgb, var(--foreground) 12%, transparent), transparent 75%), radial-gradient(70% 60% at 0% 100%, color-mix(in srgb, var(--select-deep) 75%, transparent), transparent 75%), linear-gradient(200deg, color-mix(in srgb, var(--select-sky) 72%, var(--foreground)) 0%, var(--select-sky) 38%, color-mix(in srgb, var(--select-sky) 55%, var(--select-deep)) 72%, var(--select-deep) 100%);position:fixed;inset:0;overflow:hidden}.select-backdrop-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.select-screen{z-index:1;font-family:var(--font-ui);color:var(--select-ink);flex-direction:column;animation:.16s ease-out backwards select-in;display:flex;position:fixed;inset:0;overflow:hidden}.select-content{flex-direction:column;flex:1;min-height:0;display:flex}@keyframes select-in{0%{opacity:0}to{opacity:1}}.select-screen #showroom canvas{-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.select-header{justify-content:space-between;align-items:center;gap:16px;padding:24px clamp(16px,4vw,64px) 0;display:flex}.select-title{font:34px/1.15 var(--font-ui);color:var(--foreground);letter-spacing:.01em;text-wrap:balance;text-shadow:0 3px 0 var(--select-deep), 0 0 18px color-mix(in srgb, var(--select-deep) 45%, transparent)}.select-layout{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:clamp(16px,3vw,48px);min-height:0;padding:16px clamp(16px,4vw,64px);display:grid}.select-panel{border:3px solid color-mix(in srgb, var(--foreground) 90%, transparent);background:color-mix(in srgb, var(--foreground) 32%, transparent);max-height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--select-deep) 30%, transparent), 0 14px 34px color-mix(in srgb, var(--select-deep) 35%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:12px;flex-direction:column;justify-self:center;gap:12px;padding:18px;display:flex;overflow:auto}.select-panel-note{color:var(--select-ink);font-size:14px;line-height:1.3}.select-panel-note strong{background:var(--foreground);border-radius:999px;margin-left:6px;padding:3px 10px 2px;font-weight:400}.select-grid{gap:14px;display:grid}.select-grid--roster{--tile:clamp(116px, 10.5vw, 156px);grid-template-columns:repeat(var(--columns,3), var(--tile));gap:22px;padding:10px}.select-tile{cursor:pointer;font-family:var(--font-ui);color:var(--select-ink);background:linear-gradient(180deg, var(--foreground), color-mix(in srgb, var(--foreground) 80%, var(--select-sky)));box-shadow:0 3px 0 color-mix(in srgb, var(--select-deep) 45%, transparent);border:0;border-radius:10px;flex-direction:column;align-items:stretch;gap:8px;padding:8px 8px 10px;transition:transform .12s ease-out,box-shadow .12s ease-out,background-color .12s ease-out;display:flex;position:relative}.select-tile:after{content:"";pointer-events:none;opacity:0;--c:var(--select-gold);--l:24px;--t:5px;background:linear-gradient(var(--c) 0 0) top left / var(--l) var(--t), linear-gradient(var(--c) 0 0) top left / var(--t) var(--l), linear-gradient(var(--c) 0 0) top right / var(--l) var(--t), linear-gradient(var(--c) 0 0) top right / var(--t) var(--l), linear-gradient(var(--c) 0 0) bottom left / var(--l) var(--t), linear-gradient(var(--c) 0 0) bottom left / var(--t) var(--l), linear-gradient(var(--c) 0 0) bottom right / var(--l) var(--t), linear-gradient(var(--c) 0 0) bottom right / var(--t) var(--l);filter:drop-shadow(0 2px 0 color-mix(in srgb, var(--select-ink) 45%, transparent));background-repeat:no-repeat;position:absolute;inset:-8px}.select-tile:hover{box-shadow:0 3px 0 color-mix(in srgb, var(--select-deep) 45%, transparent), 0 0 0 3px color-mix(in srgb, var(--foreground) 70%, transparent)}.select-tile.is-selected{z-index:1;background:linear-gradient(180deg, var(--foreground), color-mix(in srgb, var(--foreground) 70%, var(--select-gold)));box-shadow:0 4px 0 color-mix(in srgb, var(--select-deep) 50%, transparent), 0 0 0 3px var(--select-gold);transform:scale(1.06)}.select-tile.is-selected:after{opacity:1;animation:.7s ease-in-out infinite alternate bracket-pulse}@keyframes bracket-pulse{0%{transform:scale(1)}to{transform:scale(1.035)}}.select-tile:active{transform:scale(1.02)}.select-tile:focus-visible{outline:none}.select-tile:disabled{cursor:not-allowed;opacity:.45;filter:grayscale();transform:none}.tile-art{aspect-ratio:1;background:radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--select-sky) 30%, var(--foreground)), color-mix(in srgb, var(--select-sky) 75%, var(--select-deep)));border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.tile-art>*{grid-area:1/1}.tile-art img{object-fit:contain;width:100%;height:100%;animation:.16s ease-out both select-in}.tile-monogram{font:48px/1 var(--font-ui);color:var(--foreground);text-shadow:0 3px 0 var(--select-deep)}.has-portrait .tile-monogram{visibility:hidden}.select-tile.is-locked .tile-monogram{font-size:64px}.tile-name{text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.3;overflow:hidden}.select-stage{align-self:stretch;min-height:280px;position:relative}#showroom{display:grid;position:absolute;inset:0}#showroom>*{grid-area:1/1}#showroom canvas{transition:opacity .12s ease-out}#showroom.is-loading canvas{opacity:.55}#showroom-status{color:var(--foreground);background:color-mix(in srgb, var(--select-ink) 55%, transparent);border-radius:999px;place-self:end center;margin-bottom:8%;padding:8px 16px 6px;font-size:14px;line-height:1.3}.course-layout{flex:1;justify-content:center;align-items:center;min-height:0;padding:16px clamp(16px,4vw,64px);display:flex}.course-panel{border:3px solid color-mix(in srgb, var(--foreground) 92%, transparent);background:color-mix(in srgb, var(--foreground) 30%, transparent);width:min(1240px,100%);max-height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--select-deep) 30%, transparent), 0 14px 34px color-mix(in srgb, var(--select-deep) 35%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:12px;padding:18px;overflow:auto}.select-grid--courses{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding:8px}.select-tile--course{gap:0;padding:6px 6px 0}.select-tile--course .tile-art{aspect-ratio:16/9;border-radius:6px}.select-tile--course .tile-art img{object-fit:cover}.select-tile--course .tile-name{padding:8px 4px;font-size:15px}.tile-tag{letter-spacing:.04em;background:var(--select-ink);color:var(--foreground);border-radius:4px;padding:4px 8px 3px;font-size:11px;line-height:1.2;position:absolute;top:10px;left:10px}.tile-tag[data-tag=VS\ AI]{background:var(--select-gold);color:var(--select-ink)}.select-bar{flex:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0;height:64px;margin-bottom:18px;display:grid}.bar-name{--cap-left:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='20 225 306 263'%3E%3Cmask id='n'%3E%3Crect x='0' y='0' width='400' height='600' fill='white'/%3E%3Crect width='36' height='38' rx='7' fill='black' transform='translate(242 290) skewX(10.1)'/%3E%3Crect width='36' height='38' rx='7' fill='black' transform='translate(262 395) skewX(10.1)'/%3E%3C/mask%3E%3Cg mask='url(%23n)'%3E%3Crect width='220' height='263' rx='14' transform='translate(228 225) skewX(10.1)'/%3E%3C/g%3E%3Crect width='33' height='30' rx='6' transform='translate(25 243) skewX(10.1)'/%3E%3Crect width='33' height='30' rx='6' transform='translate(47 348) skewX(10.1)'/%3E%3Crect width='33' height='30' rx='6' transform='translate(65 452) skewX(10.1)'/%3E%3Crect width='42' height='39' rx='7' transform='translate(84 289) skewX(10.1)'/%3E%3Crect width='42' height='40' rx='7' transform='translate(104 396) skewX(10.1)'/%3E%3Crect width='57' height='59' rx='9' transform='translate(115 225) skewX(10.1)'/%3E%3Crect width='57' height='54' rx='9' transform='translate(135 335) skewX(10.1)'/%3E%3Crect width='57' height='48' rx='9' transform='translate(155 440) skewX(10.1)'/%3E%3Crect width='52' height='49' rx='8' transform='translate(182 285) skewX(10.1)'/%3E%3Crect width='52' height='49' rx='8' transform='translate(203 390) skewX(10.1)'/%3E%3C/svg%3E");--cap-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='20 225 306 263'%3E%3Cmask id='n'%3E%3Crect x='0' y='0' width='400' height='600' fill='white'/%3E%3Crect width='36' height='38' rx='7' fill='black' transform='translate(242 290) skewX(10.1)'/%3E%3Crect width='36' height='38' rx='7' fill='black' transform='translate(262 395) skewX(10.1)'/%3E%3C/mask%3E%3Cg transform='translate(346 0) scale(-1 1)'%3E%3Cg mask='url(%23n)'%3E%3Crect width='220' height='263' rx='14' transform='translate(228 225) skewX(10.1)'/%3E%3C/g%3E%3Crect width='33' height='30' rx='6' transform='translate(25 243) skewX(10.1)'/%3E%3Crect width='33' height='30' rx='6' transform='translate(47 348) skewX(10.1)'/%3E%3Crect width='33' height='30' rx='6' transform='translate(65 452) skewX(10.1)'/%3E%3Crect width='42' height='39' rx='7' transform='translate(84 289) skewX(10.1)'/%3E%3Crect width='42' height='40' rx='7' transform='translate(104 396) skewX(10.1)'/%3E%3Crect width='57' height='59' rx='9' transform='translate(115 225) skewX(10.1)'/%3E%3Crect width='57' height='54' rx='9' transform='translate(135 335) skewX(10.1)'/%3E%3Crect width='57' height='48' rx='9' transform='translate(155 440) skewX(10.1)'/%3E%3Crect width='52' height='49' rx='8' transform='translate(182 285) skewX(10.1)'/%3E%3Crect width='52' height='49' rx='8' transform='translate(203 390) skewX(10.1)'/%3E%3C/g%3E%3C/svg%3E");min-width:0;height:50px;color:var(--foreground);text-align:center;background:radial-gradient(circle, color-mix(in srgb, var(--foreground) 4%, transparent) .5px, transparent .9px) 0 0 / 4px 4px, color-mix(in srgb, color-mix(in srgb, var(--background) 55%, var(--select-ink)) 66%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-mask:var(--cap-left) left top / auto 100% no-repeat, var(--cap-right) right top / auto 100% no-repeat, linear-gradient(#000 0 0) center top / calc(100% - 114px) 100% no-repeat;mask:var(--cap-left) left top / auto 100% no-repeat, var(--cap-right) right top / auto 100% no-repeat, linear-gradient(#000 0 0) center top / calc(100% - 114px) 100% no-repeat;flex-direction:column;justify-content:center;align-items:center;padding:0 64px 6px;display:flex}.bar-name [data-name]{text-shadow:0 1px 2px color-mix(in srgb, var(--background) 70%, transparent);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:26px;line-height:1.2;overflow:hidden}.bar-name small{color:color-mix(in srgb, var(--foreground) 85%, transparent);font-size:13px;line-height:1.3}.bar-button{--bar-pad:clamp(16px, 3vw, 40px);isolation:isolate;cursor:pointer;height:56px;min-width:calc(125px + 2 * var(--bar-pad) + 11px);font:22px/1 var(--font-ui);color:var(--select-gold);text-shadow:0 1px 0 color-mix(in srgb, var(--background) 80%, transparent);background:0 0;border:0;justify-content:center;align-items:center;gap:12px;display:flex;position:relative}.bar-button:before,.bar-button:after{content:"";z-index:-1;position:absolute}.bar-button:before{background:linear-gradient(180deg, color-mix(in srgb, var(--foreground) 58%, transparent), color-mix(in srgb, var(--foreground) 16%, transparent) 40%, color-mix(in srgb, var(--background) 45%, transparent));border-radius:12px;inset:0}.bar-button:after{background:linear-gradient(180deg, color-mix(in srgb, var(--foreground) 10%, transparent), color-mix(in srgb, var(--foreground) 3%, transparent) 48%, transparent 52%), linear-gradient(180deg, color-mix(in srgb, var(--select-ink) 72%, var(--foreground)), color-mix(in srgb, var(--select-ink) 88%, var(--foreground)) 50%, color-mix(in srgb, var(--select-ink) 82%, var(--background)));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--foreground) 18%, transparent);border-radius:11px;inset:2px 1px 1px}.bar-back{padding:0 calc(var(--bar-pad) + 11px) 0 var(--bar-pad)}.bar-back:before,.bar-back:after{transform:skew(21.45deg)}.bar-back:before{left:-40px;right:11px}.bar-back:after{left:-39px;right:12px}.bar-ok{padding:0 var(--bar-pad) 0 calc(var(--bar-pad) + 11px)}.bar-ok:before,.bar-ok:after{transform:skew(-21.45deg)}.bar-ok:before{left:11px;right:-40px}.bar-ok:after{left:12px;right:-39px}.bar-button:hover{color:var(--foreground)}.bar-button kbd{min-width:34px;height:30px;font:12px/1 var(--font-ui);letter-spacing:.04em;border:2px solid;border-radius:999px;place-items:center;padding:0 8px 1px;display:inline-grid}.select-screen button:focus-visible{outline:3px solid var(--select-gold);outline-offset:4px}#race-confirm{z-index:3;background:color-mix(in srgb, var(--select-ink) 55%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:16px;animation:.14s ease-out both select-in;display:grid;position:absolute;inset:0}.confirm-card{border:3px solid var(--foreground);background:linear-gradient(180deg, color-mix(in srgb, var(--select-sky) 92%, var(--foreground)), color-mix(in srgb, var(--select-sky) 60%, var(--select-deep)));width:min(720px,100%);max-height:100%;box-shadow:0 18px 40px color-mix(in srgb, var(--select-ink) 50%, transparent);border-radius:14px;flex-direction:column;align-items:center;gap:18px;padding:28px clamp(16px,4vw,36px) 22px;animation:.18s cubic-bezier(.2,1.4,.4,1) both confirm-pop;display:flex;overflow:auto}@keyframes confirm-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.confirm-title{font:36px/1.15 var(--font-ui);color:var(--foreground);text-shadow:0 3px 0 var(--select-deep)}.confirm-mode{color:var(--foreground);margin-top:-10px;font-size:15px;line-height:1.4}.confirm-summary{grid-template-columns:1fr 1fr 1.5fr;gap:12px;width:100%;margin:0;display:grid}.confirm-item{background:var(--foreground);box-shadow:0 3px 0 color-mix(in srgb, var(--select-deep) 50%, transparent);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.confirm-item dt{letter-spacing:.06em;color:color-mix(in srgb, var(--select-ink) 65%, transparent);text-transform:uppercase;font-size:12px;line-height:1.2}.confirm-item dd{color:var(--select-ink);flex-direction:column;gap:6px;margin:0;font-size:16px;line-height:1.3;display:flex}.confirm-art{background:radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--select-sky) 30%, var(--foreground)), color-mix(in srgb, var(--select-sky) 75%, var(--select-deep)));border-radius:7px;place-items:center;height:110px;display:grid;overflow:hidden}.confirm-art>*{grid-area:1/1}.confirm-art img{object-fit:contain;width:100%;height:100%}.confirm-item--course .confirm-art img{object-fit:cover}.confirm-error{color:var(--select-ink);background:var(--select-gold);text-wrap:pretty;text-align:center;border-radius:6px;padding:8px 12px;font-size:15px;line-height:1.4}.confirm-ok{cursor:pointer;background:var(--select-ink);clip-path:polygon(9% 0,91% 0,100% 50%,91% 100%,9% 100%,0 50%);border:0;place-items:center;width:min(320px,100%);height:78px;padding:4px;animation:.9s ease-in-out infinite alternate confirm-ok-pulse;display:grid}.confirm-ok span{width:100%;height:100%;font:38px/1 var(--font-ui);letter-spacing:.04em;color:var(--select-ink);background:linear-gradient(180deg, color-mix(in srgb, var(--select-gold) 40%, var(--foreground)) 0%, var(--select-gold) 48%, color-mix(in srgb, var(--select-gold) 82%, var(--select-ink)) 100%);clip-path:polygon(9% 0,91% 0,100% 50%,91% 100%,9% 100%,0 50%);place-items:center;display:grid}.confirm-ok:hover span,.confirm-ok:focus-visible span{background:linear-gradient(180deg, var(--foreground), var(--select-gold))}#race-confirm .confirm-ok:focus-visible{outline:none}@keyframes confirm-ok-pulse{0%{transform:scale(1)}to{transform:scale(1.04)}}.confirm-back{cursor:pointer;font:16px/1 var(--font-ui);color:var(--foreground);background:0 0;border:0;border-radius:999px;align-items:center;gap:10px;padding:6px 12px;display:flex}.confirm-back:hover{background:color-mix(in srgb, var(--select-ink) 30%, transparent)}.confirm-back kbd{font:11px/1 var(--font-ui);border:2px solid;border-radius:999px;padding:4px 8px 3px}@media (width<=1100px){.select-grid--courses{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=860px){.select-layout{grid-template-rows:minmax(220px,1fr) auto;grid-template-columns:1fr;align-items:stretch}.select-stage{order:-1;min-height:220px}.select-panel{justify-self:stretch}.select-grid--roster{grid-template-columns:repeat(var(--columns,3), minmax(0, 1fr))}.select-grid--courses{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.select-title{font-size:26px}.select-grid--courses{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bar-name [data-name]{font-size:20px}.bar-button{gap:8px;min-width:0;font-size:18px}.bar-button kbd{display:none}.confirm-summary{grid-template-columns:1fr 1fr}.confirm-item--course{grid-column:span 2}}@media (height<=760px){.select-header{padding-top:14px}.select-title{font-size:28px}.select-grid--roster{--tile:clamp(100px, 9vw, 132px)}.select-bar{margin-bottom:10px}}@media (prefers-reduced-motion:reduce){.select-screen,#race-confirm,.confirm-card,.tile-art img,.select-tile.is-selected:after,.confirm-ok{animation:none}.select-tile{transition:none}}.vfx-bench{z-index:6;background:var(--background);width:272px;max-height:calc(100vh - 170px);color:var(--foreground);border:2px solid var(--foreground);font:18px/1.4 var(--font-body);-webkit-user-select:none;user-select:none;flex-direction:column;gap:12px;padding:14px;display:flex;position:fixed;top:28px;right:28px;overflow:auto}.vfx-bench button{font:inherit;color:var(--foreground);background:var(--background);border:2px solid var(--muted);cursor:pointer;text-align:left;padding:4px 8px}.vfx-bench button:focus-visible{outline:2px solid var(--garage-accent);outline-offset:2px}.vfx-bench kbd{min-width:18px;font:8px/14px var(--font-pixel);text-align:center;vertical-align:middle;border:1px solid;margin-right:6px;padding:0 3px;display:inline-block}.vfx-bench-head{flex-direction:column;gap:4px;display:flex}.vfx-bench-head p{color:var(--item-accent);font-size:12px;line-height:1.5}.vfx-bench-head span,.vfx-bench-live{color:var(--muted);font-size:16px;line-height:1.4}.vfx-bench-label{font:8px/1.5 var(--font-pixel);color:var(--muted);align-items:center;gap:4px;display:flex}.vfx-bench-label kbd{margin-right:0}.vfx-bench-items button{padding:3px 6px;font-size:16px;line-height:1.3}.vfx-bench .is-selected,.vfx-bench [aria-pressed=true].is-selected{background:var(--item-accent);color:var(--background);border-color:var(--item-accent)}.vfx-bench-target button{text-align:center;min-width:36px}.vfx-bench-target output{text-align:center;color:var(--item-accent);flex:1;font-size:12px;line-height:1.5}.vfx-bench-direction{align-items:center;display:flex}.vfx-bench-direction[aria-pressed=true]{border-color:var(--garage-accent);color:var(--garage-accent)}.vfx-bench .vfx-bench-fire{text-align:center;background:var(--item-accent);color:var(--background);border-color:var(--item-accent);padding:10px;font-size:12px;line-height:1.5}.vfx-bench .vfx-bench-fire:hover{border-color:var(--foreground)}.vfx-bench-row button{flex:1;font-size:16px}.vfx-bench-status{text-wrap:pretty;min-height:1.4em;font-size:17px;line-height:1.4}@media (width<=650px){.vfx-bench{width:min(240px,100vw - 32px);top:16px;right:16px}}.map-setup-debug{z-index:6;background:var(--background);max-width:min(460px,100vw - 56px);color:var(--foreground);border:2px solid var(--foreground);font:16px/1.45 var(--font-body);white-space:pre;pointer-events:none;-webkit-user-select:none;user-select:none;padding:12px 14px;position:fixed;top:96px;left:28px;overflow-x:auto}.map-setup-debug[hidden]{display:none}.vfx-bench{z-index:30;border:2px solid var(--garage-accent);background:color-mix(in srgb, var(--garage-surface) 94%, transparent);width:300px;max-height:calc(100dvh - 32px);color:var(--foreground);font:18px/1.4 var(--font-body);border-radius:10px 3px;flex-direction:column;gap:12px;padding:14px;display:flex;position:fixed;top:16px;right:16px;overflow-y:auto}.vfx-bench[hidden]{display:none}.vfx-bench-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.vfx-bench-head p{color:var(--item-accent);letter-spacing:.08em;font-size:11px}.vfx-bench-head span{color:var(--muted);font-size:15px}.vfx-bench-group{flex-direction:column;gap:6px;display:flex}.vfx-bench-label{font:15px/1.4 var(--font-body);color:var(--garage-accent);letter-spacing:.1em;align-items:center;gap:6px;display:flex}.vfx-bench-label span{flex:1}.vfx-bench kbd{min-width:20px;font:14px/1.2 var(--font-body);border:1px solid;border-radius:3px;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.vfx-bench button{cursor:pointer;border:2px solid color-mix(in srgb, var(--garage-accent) 45%, transparent);background:var(--background);color:var(--foreground);font:16px/1.3 var(--font-body);border-radius:4px;padding:4px 8px}.vfx-bench button:hover{border-color:var(--garage-accent)}.vfx-bench-items{grid-template-columns:1fr 1fr;gap:4px;display:grid}.vfx-bench-items button{text-align:left}.vfx-bench-items button.is-selected{background:var(--item-accent);border-color:var(--item-accent);color:var(--garage-surface)}.vfx-bench-target{align-items:center;gap:6px;display:flex}.vfx-bench-target output{text-align:center;color:var(--item-accent);flex:1;font-size:11px}.vfx-bench-direction{align-items:center;gap:8px;display:flex}.vfx-bench-direction[aria-pressed=true]{border-color:var(--item-accent)}.vfx-bench-fire{justify-content:center;align-items:center;gap:10px;padding:10px;display:flex}.vfx-bench .vfx-bench-fire{background:var(--garage-accent);border-color:var(--garage-accent);color:var(--garage-surface);font:12px/1.4 var(--font-pixel)}.vfx-bench .vfx-bench-fire:hover{background:var(--foreground);border-color:var(--foreground)}.vfx-bench-row{gap:6px;display:flex}.vfx-bench-row button{flex:1}.vfx-bench-status{min-height:22px;color:var(--foreground);font-size:16px}.vfx-bench-status[data-tone=ok]{color:var(--garage-accent)}.vfx-bench-status[data-tone=fail]{color:var(--item-accent)}.vfx-bench-live{color:var(--muted);font-size:14px}
