:root{color-scheme:dark;--bg:#090b0d;--track:#171b1f;--panel:#11161b;--panel-strong:#1d242a;--text:#f7f8f4;--muted:#a7b0b7;--line:#303941;--line-bright:#59636b;--accent:#ffd34d;--accent-strong:#ffb000;--red:#ec3f35;--green:#4ec45f;--danger:#ff6b6b;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--viewport-visible-width:100vw;--viewport-visible-height:100dvh}*{box-sizing:border-box}body,html{width:100%;max-width:100%;min-height:100%;margin:0;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0 /72px 72px,radial-gradient(circle at 50% -20%,rgba(255,211,77,.14),transparent 34%),var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;overscroll-behavior:none;touch-action:manipulation}body,html{overflow-x:clip}body{min-height:var(--viewport-visible-height);overflow-y:hidden}button,input,select{font:inherit}button{min-height:44px;border:0;border-radius:8px;background:var(--panel-strong);color:#171717;font-weight:700;cursor:pointer;padding:0 18px}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}.app-shell{width:100%;max-width:100%;min-height:var(--viewport-visible-height);padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left));overflow-x:clip;overflow-y:auto;-webkit-overflow-scrolling:touch}.race-home,.race-layout{width:100%;max-width:980px;min-width:0;margin:0 auto}.race-home{display:grid;grid-gap:18px;gap:18px;min-height:calc(var(--viewport-visible-height) - max(32px, var(--safe-top)) - max(32px, var(--safe-bottom)));align-content:center}.race-home-copy,.race-page-head{position:relative;padding-top:28px}.race-home-copy:before,.race-page-head:before{content:"";position:absolute;top:0;left:0;width:min(180px,58vw);height:12px;background:repeating-linear-gradient(90deg,#f7f8f4 0 18px,#101316 18px 36px),#f7f8f4;border-radius:2px}.race-home h1,.race-page-head h1{margin:0;font-size:clamp(42px,13vw,96px);line-height:.9;letter-spacing:0;text-transform:uppercase}.race-home h2,.race-layout h2{margin:0;font-size:clamp(26px,7vw,42px);line-height:1;letter-spacing:0}.race-layout{display:grid;grid-gap:16px;gap:16px}.console-screen{min-height:calc(var(--viewport-visible-height) - max(32px, var(--safe-top)) - max(32px, var(--safe-bottom)));align-content:center}.control-console,.lobby-console{width:100%;max-width:980px;min-width:0;margin:0 auto}.console-topline{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:18px;min-width:0}.console-title-group{display:grid;flex:1 1;grid-gap:6px;gap:6px;min-width:0}.room-console-topline{justify-content:flex-start;align-items:flex-start;gap:6px}.room-console-title-row{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;min-width:0}.room-console-screen-title{font-size:clamp(18px,2.3vw,22px);line-height:1}.console-screen-title{font-size:34px;line-height:.94;font-weight:900;letter-spacing:-.03em}.console-block-title{font-size:18px;line-height:1;font-weight:900}.console-section-head{display:grid;grid-gap:4px;gap:4px}.console-action-grid,.hall-console-grid,.room-console-grid{display:grid;grid-gap:14px;gap:14px}.console-action-card,.console-room-list,.console-section{border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(7,9,11,.48);padding:14px;min-width:0}.console-action-card{justify-content:space-between;min-height:0}.console-button{min-width:0}.compact-row{gap:12px;min-width:0}.compact-row,.track-picker-helper{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.track-picker-helper{gap:10px}.track-editor-entry{min-height:38px;padding:0 14px;font-size:14px}.compact-actions{gap:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.room-lobby-layout{grid-template-columns:minmax(0,1.2fr) minmax(272px,.8fr);align-items:stretch}.room-lobby-screen{align-content:start;gap:4px}.room-lobby-main,.room-lobby-sidebar{min-width:0}.room-lobby-main{gap:6px}.room-lobby-sidebar{gap:4px;height:100%}.room-roster-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;min-height:32px}.color-picker-inline{gap:16px}.color-picker-inline,.vehicle-type-picker-inline{display:inline-flex;align-items:center;min-width:0}.vehicle-type-picker-inline{gap:8px}.color-picker-label{display:inline-flex;align-items:center;gap:6px}.color-picker-label,.vehicle-type-picker-label{color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.color-picker-current{color:rgba(247,248,244,.88);font-size:10px;font-weight:900;letter-spacing:.08em}.color-grid-compact{grid-template-columns:repeat(4,32px);gap:15px}.color-swatch-compact{position:relative;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;border-width:1px;border-radius:999px;box-shadow:none;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,opacity .12s ease;opacity:.52}.color-swatch-compact[aria-pressed=true]{border-color:rgba(247,248,244,.96);box-shadow:0 0 0 2px rgba(244,196,48,.34),inset 0 0 0 1px rgba(255,255,255,.38);transform:scale(1.04);opacity:1}.color-swatch-compact[aria-pressed=true]:after{content:"";position:absolute;inset:7px;border-radius:999px;background:rgba(255,255,255,.3)}.vehicle-type-segmented{display:inline-grid;grid-template-columns:repeat(2,minmax(42px,1fr));gap:3px;padding:3px;border:1px solid rgba(247,248,244,.16);border-radius:8px;background:rgba(6,8,10,.36)}.vehicle-type-option{min-height:34px;border:0;border-radius:6px;padding:0 10px;color:rgba(247,248,244,.58);background:transparent;font-size:12px;font-weight:900}.vehicle-type-option-compact{min-width:42px;min-height:26px;padding:0 7px;font-size:11px}.vehicle-type-option[aria-pressed=true]{color:#111;background:#f3f5ee}.room-driver-grid{gap:4px}.room-driver-grid .driver-card{min-height:60px;padding:7px 8px;gap:3px}.room-driver-grid .driver-card strong{font-size:16px}.room-driver-grid .driver-meta{gap:2px}.room-driver-grid .driver-card span:not(.driver-role):not(.driver-color-chip){font-size:11px}.room-driver-grid[data-roster-density=compact]{gap:3px}.room-driver-grid[data-roster-density=compact] .driver-card{min-height:52px;padding:6px 8px;gap:2px}.room-driver-grid[data-roster-density=compact] .driver-card strong{font-size:14px}.driver-card-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.driver-color-chip{display:inline-block;width:12px;min-width:12px;height:12px;border:1px solid rgba(255,255,255,.62);border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.26)}.room-track-preview{gap:2px;flex:1 1 auto;min-height:0}.room-track-preview-head{align-items:flex-end;gap:4px}.room-track-preview-svg{width:100%;flex:1 1 auto;min-height:108px;height:100%;border-radius:10px;background:linear-gradient(180deg,rgba(13,17,21,.92),rgba(8,11,14,.98))}.room-track-preview-line{fill:none;stroke:rgba(247,248,244,.74);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.room-track-preview-start{fill:var(--accent)}.room-lap-panel{padding-block:6px;gap:6px;align-items:center}.room-lap-target{flex-wrap:nowrap;gap:6px}.room-lap-panel .step-button{min-width:36px;min-height:36px;border-radius:9px}.room-lap-panel .lap-readout{min-width:62px;font-size:18px}.room-actions-panel{gap:0;padding-block:6px}.room-actions-panel .compact-actions{flex-wrap:nowrap;gap:4px}.room-actions-panel .primary-action,.room-actions-panel .secondary-action{min-width:0;flex:1 1;min-height:38px;padding:0 8px;font-size:14px}.room-driver-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-console{width:100%;max-width:980px;min-width:0;margin:0 auto}.result-console-topline{align-items:flex-start}.result-console-controls{display:grid;justify-items:end;align-content:start;grid-gap:12px;gap:12px;flex:0 0 auto;min-width:-moz-fit-content;min-width:fit-content}.result-console-actions{justify-content:flex-end;flex-wrap:wrap}.result-driver-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.track-editor-console{width:100%;max-width:1080px;min-width:0;min-height:calc(var(--viewport-visible-height) - max(32px, var(--safe-top)) - max(32px, var(--safe-bottom)));margin:0 auto}.track-editor-console-shell{overflow:clip}.track-editor-screen{align-content:start}.track-editor-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);grid-gap:14px;gap:14px;min-width:0}.track-editor-main{grid-column:1/-1;gap:12px}.track-editor-main-shell{display:grid;grid-template-columns:78px minmax(0,1fr) 156px;grid-gap:12px;gap:12px;align-items:start;min-height:0}.track-editor-mobile-rail{display:grid;align-content:start;grid-gap:10px;gap:10px;min-width:0}.track-editor-tool-rail{align-content:start}.track-editor-tool-group{display:grid;grid-gap:8px;gap:8px}.track-editor-stage-console{display:grid;min-width:0}.track-editor-actions{flex-wrap:wrap}.track-editor-panel-button,.track-editor-save-button,.track-editor-tool-button{min-width:0;min-height:36px;padding:0 10px;font-size:12px;line-height:1}.track-editor-tool-button{border:1px solid var(--line-bright);border-radius:10px;background:rgba(243,245,238,.96);color:#111;font-weight:700}.track-editor-tool-button-active{border-color:rgba(255,211,77,.72);background:var(--accent);box-shadow:0 6px 0 rgba(0,0,0,.22)}.track-editor-library-close,.track-editor-panel-button{background:rgba(255,255,255,.08);color:var(--text)}.track-editor-stage-shell{position:relative;min-height:clamp(360px,56vh,680px);overflow:hidden;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:radial-gradient(circle at 50% 35%,rgba(255,211,77,.16),transparent 48%),#07090b;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}.track-editor-canvas,.track-editor-stage{width:100%;height:100%;min-height:inherit;display:block;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none}.track-editor-loading{position:absolute;inset:0;z-index:1;display:grid;place-items:center;margin:0;color:var(--muted);background:rgba(7,9,11,.82)}.track-editor-hint{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}.track-editor-hint span{border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.035);padding:5px 8px}.track-editor-hint-compact{display:grid;grid-gap:6px;gap:6px;font-size:11px}.track-editor-hint-compact span{border-radius:10px;padding:6px 8px}.track-editor-status-rail{align-content:stretch;grid-template-rows:auto auto auto auto 1fr}.track-editor-name-field{gap:4px}.track-editor-name-input{min-height:36px;padding:8px 10px}.track-editor-status-copy{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.track-editor-message{font-size:11px}.track-editor-library{width:min(560px,calc(100vw - 32px));max-height:min(620px,calc(var(--viewport-visible-height) - max(32px, var(--safe-top)) - max(32px, var(--safe-bottom))));gap:10px;overflow:auto;border-color:rgba(255,255,255,.14);background:linear-gradient(180deg,rgba(255,211,77,.07),transparent 18%),rgba(12,15,19,.98);box-shadow:0 24px 80px rgba(0,0,0,.45)}.track-editor-library-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left));background:rgba(5,7,10,.68);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.track-editor-library-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.track-editor-library-title{display:grid;grid-gap:4px;gap:4px}.track-editor-library-empty{margin:0}.track-editor-library-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;border-top:1px solid var(--line);padding-top:12px}.track-editor-library-item-copy{display:grid;grid-gap:4px;gap:4px;min-width:0}.track-editor-library-item-copy strong{margin:0;font-size:22px;line-height:1.05;letter-spacing:.04em}.track-editor-library-item-copy span{color:var(--muted)}.track-editor-library-item-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.track-editor-intro{max-width:72ch}.track-editor-back-link{flex:0 0 auto}.race-page-head{display:grid;grid-gap:8px;gap:8px}.identity-field{width:min(100%,280px);max-width:280px;min-width:0}.room-code-head{color:var(--accent);letter-spacing:.08em}.eyebrow,.panel-kicker{margin:0;color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.12em}.stack{display:flex;flex-direction:column;gap:16px;width:100%;min-width:0}.race-panel,.surface{position:relative;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,rgba(255,211,77,.08),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.035),transparent),var(--panel);padding:16px;overflow:hidden}.race-panel:after{content:"";position:absolute;right:-24px;bottom:-26px;width:150px;height:90px;background:url(/racing/sprites/smoke.png) 50%/contain no-repeat;opacity:.08;pointer-events:none}.race-panel-home{min-height:260px;justify-content:end}.action-panel{min-height:210px;justify-content:space-between}.hall-grid{display:grid;grid-gap:14px;gap:14px}.lobby-panel{gap:18px}.lobby-topline,.race-actions,.room-list-item,.tuning-panel{display:flex;gap:12px;align-items:center;justify-content:space-between}.tuning-panel{align-items:flex-start;border-top:1px solid var(--line);padding-top:14px}.tuning-panel-column{display:grid}.driver-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.driver-card{min-height:112px;display:grid;align-content:space-between;grid-gap:6px;gap:6px;border:1px solid var(--line);border-left:6px solid var(--line-bright);border-radius:8px;background:rgba(7,9,11,.52);padding:12px}.driver-meta{display:grid;grid-gap:4px;gap:4px}.driver-grid[data-roster-density=compact]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start}.driver-grid[data-roster-density=compact] .driver-card{min-height:84px;padding:10px;gap:5px}.driver-grid[data-roster-density=compact] .driver-card strong{font-size:17px}.driver-card-empty{border-left-color:rgba(255,255,255,.16);border-style:dashed;background:rgba(255,255,255,.02)}.driver-card-empty span:not(.driver-role),.driver-card-empty strong{color:var(--muted)}.driver-yellow{border-left-color:#f4c430}.driver-green{border-left-color:#52c46b}.driver-purple{border-left-color:#9b6ef3}.driver-red{border-left-color:#ef5350}.driver-card strong{font-size:20px;line-height:1.05}.driver-card span:not(.driver-role){color:var(--muted);font-size:13px}.driver-role,.status-pill{width:-moz-fit-content;width:fit-content;border:1px solid rgba(255,211,77,.42);border-radius:999px;color:var(--accent);background:rgba(255,211,77,.1);padding:5px 9px;font-size:12px;font-weight:900}.room-list-item{min-height:64px;border-top:1px solid var(--line);padding-top:12px}.room-list-item strong{min-width:86px;font-size:22px;letter-spacing:.08em}.room-list-item span{color:var(--muted)}.track-grid-board{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));grid-gap:4px;gap:4px;width:min(100%,640px);aspect-ratio:1;align-self:center;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 0) 0 0 /20% 20%,#07090b;padding:8px}.track-grid-cell{min-width:0;min-height:0;width:100%;height:100%;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:4px;background:rgba(255,255,255,.035);color:#111;font-size:12px;line-height:1;box-shadow:none}.track-grid-cell.is-road{border-color:rgba(255,211,77,.52);background:#d8d2be}.track-grid-cell.is-finish{background:repeating-linear-gradient(45deg,#f7f8f4 0 6px,#111 6px 12px),#f7f8f4;color:var(--accent);text-shadow:0 1px 2px #000}.empty-grid{min-height:150px;display:grid;align-content:center;grid-gap:10px;gap:10px}.row{display:flex;gap:12px;align-items:center}.row-wrap{flex-wrap:wrap}.field{display:grid;grid-gap:6px;gap:6px}.field span{color:var(--muted);font-size:13px}.input{min-height:44px;width:100%;border:1px solid var(--line);border-radius:8px;background:#080b0e;color:var(--text);padding:10px 12px}.room-code-input{font-size:22px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.muted{color:var(--muted);margin:0}.error,.error-banner{color:var(--danger)}.error-banner{border:1px solid rgba(255,107,107,.42);border-radius:8px;background:rgba(255,107,107,.08);padding:12px;margin:0}.loading-copy{color:var(--muted);text-align:center}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;min-width:126px;border-radius:8px;font-weight:700;text-align:center;text-decoration:none}.primary-action{background:var(--accent);color:#111;box-shadow:0 8px 0 rgba(0,0,0,.28)}.secondary-action{border:1px solid var(--line-bright);background:#f3f5ee;color:#111}.step-button{min-width:48px;padding:0;background:#f3f5ee;color:#111}.lap-readout{min-width:72px;text-align:center;font-size:22px}.color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.color-swatch{min-height:58px;border:2px solid rgba(255,255,255,.14);border-radius:8px;color:rgba(0,0,0,.72);padding:8px;text-align:left;box-shadow:inset 0 -16px rgba(0,0,0,.12)}.color-swatch[aria-pressed=true]{border-color:var(--text)}.color-swatch span{display:block;font-size:12px;font-weight:900}.start-hint{border-top:1px solid var(--line);padding-top:12px}.racing-runtime{position:fixed;inset:0;max-width:100dvw;max-height:100dvh;overflow:clip;background:#000}.racing-runtime,.racing-runtime canvas{width:100%;height:100%;touch-action:none}.racing-runtime canvas{display:block}.race-overlay{position:absolute;z-index:20}.race-leaderboard,.race-loading-card,.race-minimap,.race-status-card{border:1px solid var(--line);border-radius:8px;background:rgba(8,11,14,.56);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px}.race-loading-card{right:max(16px,var(--safe-right));grid-gap:8px;gap:8px}.race-loading-card,.race-status-card{top:max(16px,var(--safe-top));left:max(16px,var(--safe-left));display:grid}.race-status-card{grid-gap:6px;gap:6px;min-width:124px}.race-status-card strong{font-size:30px}.race-leaderboard{top:max(16px,var(--safe-top));right:max(16px,var(--safe-right));width:min(320px,calc(100% - 32px));max-width:calc(100% - max(16px, var(--safe-left)) - max(16px, var(--safe-right)));display:grid;grid-gap:10px;gap:10px;min-width:0}.race-leaderboard-head,.race-leaderboard-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.race-leaderboard-list{display:grid;grid-gap:8px;gap:8px}.race-leaderboard-row{border-top:1px solid rgba(255,255,255,.08);padding-top:8px}.race-minimap{right:max(16px,var(--safe-right));bottom:max(16px,var(--safe-bottom));width:150px;display:grid;grid-gap:8px;gap:8px}.race-minimap-svg{width:100%;aspect-ratio:1;overflow:visible}.race-minimap-track{fill:none;stroke:rgba(247,248,244,.65);stroke-width:2.5}.race-minimap-player{stroke:rgba(0,0,0,.58);stroke-width:1.5}.race-minimap-yellow{fill:#f4c430}.race-minimap-green{fill:#52c46b}.race-minimap-purple{fill:#9b6ef3}.race-minimap-red{fill:#ef5350}.race-finish-waiting{color:#f7f8f4;font-size:14px;line-height:1.3}.race-countdown-overlay{inset:0;display:grid;place-items:center;padding:max(24px,var(--safe-top)) max(24px,var(--safe-right)) max(24px,var(--safe-bottom)) max(24px,var(--safe-left));pointer-events:none;background:radial-gradient(circle at center,rgba(255,211,77,.1),transparent 44%),linear-gradient(180deg,rgba(3,5,8,.12),rgba(3,5,8,.34))}.race-countdown-card{min-width:min(420px,100%);display:grid;justify-items:center;grid-gap:10px;gap:10px;padding:18px 24px}.race-countdown-number{position:relative;display:inline-block;font-size:clamp(88px,18vw,180px);font-weight:1000;line-height:.88;letter-spacing:.04em;text-transform:uppercase;color:#fff6d5;text-shadow:0 2px 0 rgba(57,33,0,.9),0 8px 18px rgba(0,0,0,.42),0 16px 48px rgba(255,196,0,.2)}.race-countdown-caption{color:rgba(247,248,244,.82);font-size:14px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.race-countdown-prep .race-countdown-number{color:rgba(247,248,244,.86);transform:perspective(860px) rotateX(16deg) scale(.9);text-shadow:0 2px 0 rgba(0,0,0,.8),0 8px 18px rgba(0,0,0,.38)}.race-countdown-hero .race-countdown-number{color:#ffe88c;transform:perspective(860px) rotateX(18deg) translateZ(0) scale(1.02);text-shadow:0 2px 0 rgba(96,53,0,.9),0 12px 24px rgba(0,0,0,.42),0 0 42px rgba(255,214,84,.52),0 0 74px rgba(255,244,176,.32);animation:race-countdown-thump .7s ease-out both}.race-countdown-hero{background:radial-gradient(circle at center,rgba(255,222,89,.2),transparent 42%),linear-gradient(180deg,rgba(3,5,8,.06),rgba(3,5,8,.24))}.race-countdown-hero .race-countdown-card{border:1px solid rgba(255,227,130,.24);border-radius:20px;background:linear-gradient(180deg,rgba(255,232,140,.1),rgba(255,232,140,.03)),rgba(16,12,4,.16);box-shadow:0 18px 44px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,249,214,.2)}.race-countdown-hero .race-countdown-caption{color:rgba(255,247,205,.96)}.race-countdown-go .race-countdown-number{color:#f7fff1;transform:perspective(920px) rotateX(16deg) scale(1.08);text-shadow:0 2px 0 rgba(17,58,14,.95),0 10px 24px rgba(0,0,0,.55),0 0 42px rgba(82,196,107,.42);animation:race-countdown-go-burst .42s ease-out both}@keyframes race-countdown-thump{0%{opacity:0;transform:perspective(860px) rotateX(20deg) scale(1.24) translateY(16px);filter:blur(8px)}55%{opacity:1;transform:perspective(860px) rotateX(18deg) scale(.96) translateY(0);filter:blur(0)}to{opacity:1;transform:perspective(860px) rotateX(18deg) scale(1.02);filter:blur(0)}}@keyframes race-countdown-go-burst{0%{opacity:0;transform:perspective(920px) rotateX(18deg) scale(1.34);filter:blur(10px)}60%{opacity:1;transform:perspective(920px) rotateX(16deg) scale(1);filter:blur(0)}to{opacity:1;transform:perspective(920px) rotateX(16deg) scale(1.08);filter:blur(0)}}.race-error-banner,.runtime-error{left:max(16px,var(--safe-left));right:max(16px,var(--safe-right));bottom:max(16px,var(--safe-bottom))}.orientation-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left));background:linear-gradient(180deg,rgba(9,11,13,.96),rgba(9,11,13,.98)),var(--bg)}.orientation-gate-card{width:min(100%,420px);display:grid;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,rgba(255,211,77,.12),transparent 34%),rgba(17,22,27,.94);padding:20px;text-align:center}.orientation-gate-card strong{font-size:clamp(28px,7vw,42px);line-height:.95}@media (min-width:720px){.race-home{grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);align-items:center}.console-action-grid,.hall-console-grid,.room-console-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hall-console-grid>.console-room-list{grid-column:1/-1}.hall-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.color-grid,.driver-grid:not(.room-driver-grid):not(.result-driver-grid){grid-template-columns:repeat(4,minmax(0,1fr))}.race-panel,.surface{padding:20px}.race-minimap{bottom:max(16px,var(--safe-bottom))}}@media (max-width:520px){.lobby-topline,.race-actions,.room-list-item,.tuning-panel{align-items:stretch;flex-direction:column}.primary-action,.secondary-action{width:100%}.compact-row,.console-topline{align-items:stretch;flex-direction:column}.result-console-controls{width:100%;justify-items:stretch;gap:10px}.result-console-actions{width:100%;justify-content:stretch}}@media (orientation:landscape) and (max-height:540px){.app-shell{padding:max(10px,var(--safe-top)) max(10px,var(--safe-right)) max(10px,var(--safe-bottom)) max(10px,var(--safe-left));overflow-x:clip;overflow-y:auto}.race-home,.race-layout{width:100%;max-width:1100px;gap:12px}.console-screen{align-content:center}.console-screen,.room-lobby-screen{min-height:calc(var(--viewport-visible-height) - max(20px, var(--safe-top)) - max(20px, var(--safe-bottom)))}.room-lobby-screen{align-content:start;gap:4px}.race-home-copy,.race-page-head{gap:4px;padding-top:16px}.race-home-copy:before,.race-page-head:before{width:min(120px,32vw);height:8px}.race-home h1,.race-page-head h1{font-size:clamp(36px,6vw,60px);line-height:.94}.race-home h2,.race-layout h2{font-size:clamp(16px,3vw,26px)}.driver-card span:not(.driver-role),.field span,.muted,.room-list-item span{font-size:12px}.identity-field{max-width:196px}.control-console,.lobby-console,.result-console{width:100%;max-width:920px}.hall-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.race-leaderboard,.race-loading-card,.race-minimap,.race-panel,.race-status-card,.surface{padding:10px}.action-panel,.race-panel-home{min-height:0}.console-topline{align-items:center;gap:12px}.room-console-topline{align-items:flex-start;gap:6px}.console-title-group{gap:3px}.console-screen-title{font-size:22px;line-height:1}.room-console-title-row{gap:8px}.room-console-screen-title{font-size:18px}.console-block-title{font-size:15px}.console-action-grid,.room-console-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-lobby-layout{grid-template-columns:minmax(0,1.14fr) minmax(232px,.86fr);gap:4px}.console-action-card,.console-room-list,.console-section{padding:10px}.console-action-card{gap:10px}.driver-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.driver-card{min-height:72px;padding:8px 10px}.driver-card strong{font-size:15px}.driver-role,.status-pill{padding:4px 8px;font-size:11px}.room-list-item{min-height:0;gap:8px;padding-top:8px}.room-list-item strong{min-width:48px;font-size:15px;letter-spacing:.1em}.input,button{min-height:38px}.room-code-input{font-size:17px;letter-spacing:.16em}.color-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.color-grid-compact{grid-template-columns:repeat(4,24px);gap:12px}.color-swatch{min-height:40px;padding:5px 6px}.color-swatch-compact{width:16px;min-width:16px;height:16px;min-height:16px;padding:0}.room-roster-head{min-height:28px;gap:4px}.color-picker-label{font-size:10px;gap:4px}.color-picker-current{font-size:9px}.room-driver-grid{gap:3px}.driver-grid[data-roster-density=compact] .room-driver-grid .driver-card,.room-driver-grid .driver-card{min-height:48px;padding:6px 7px;gap:2px}.room-driver-grid .driver-card strong{font-size:13px}.room-driver-grid .driver-card span:not(.driver-role):not(.driver-color-chip){font-size:10px}.driver-color-chip{width:10px;min-width:10px;height:10px}.room-track-preview-svg{min-height:96px}.room-lap-panel .step-button{min-width:30px;min-height:30px}.room-lap-panel .lap-readout{min-width:52px;font-size:16px}.room-actions-panel .compact-actions{flex-wrap:nowrap}.room-actions-panel .primary-action,.room-actions-panel .secondary-action{min-height:32px;font-size:12px;padding:0 6px}.compact-actions{flex-wrap:wrap}.compact-actions .primary-action,.compact-actions .secondary-action{min-width:0;flex:1 1}.start-hint{padding-top:8px}.control-console .driver-card span:not(.driver-role),.control-console .field span,.control-console .muted,.control-console .room-list-item span,.lobby-console .driver-card span:not(.driver-role),.lobby-console .field span,.lobby-console .muted,.lobby-console .room-list-item span{font-size:11px}.race-loading-card,.race-status-card{top:max(8px,var(--safe-top));left:max(8px,var(--safe-left))}.race-status-card{min-width:112px;gap:4px}.race-status-card strong{font-size:24px}.race-status-card .muted{font-size:11px}.race-leaderboard{top:max(8px,var(--safe-top));right:max(8px,var(--safe-right));width:min(286px,calc(100% - 132px));max-width:calc(100% - max(8px, var(--safe-left)) - max(8px, var(--safe-right)));gap:8px}.race-leaderboard-head strong,.race-leaderboard-row strong{font-size:14px}.race-leaderboard-row{gap:8px;padding-top:6px}.race-minimap{right:max(8px,var(--safe-right));left:auto;bottom:max(8px,var(--safe-bottom));width:108px;gap:6px}.race-minimap-track{stroke-width:2}.result-driver-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.track-editor-console{max-width:1120px}.track-editor-grid{grid-template-columns:minmax(0,1fr);gap:10px}.track-editor-main-shell{grid-template-columns:66px minmax(0,1fr) 108px;gap:8px;min-height:0}.track-editor-mobile-rail,.track-editor-tool-group{gap:6px}.track-editor-panel-button,.track-editor-save-button,.track-editor-tool-button{min-height:36px;padding:0 8px;font-size:12px}.track-editor-stage-console{align-items:stretch}.track-editor-stage-shell{min-height:clamp(244px,54vh,360px);aspect-ratio:1.22}.track-editor-status-rail{grid-template-rows:34px 34px auto 42px 1fr;align-content:start}.track-editor-name-input{min-height:34px;font-size:12px}.track-editor-hint-compact,.track-editor-message,.track-editor-status-copy{font-size:11px}.track-editor-library{width:min(520px,calc(100vw - 24px));padding:10px}.track-editor-library-item{gap:10px;padding-top:10px}.track-editor-library-item-copy strong{font-size:16px}.track-grid-board{gap:3px;padding:6px}}html[data-browser-shell=wechat][data-browser-compact=true] .app-shell{padding:max(8px,var(--safe-top)) max(8px,var(--safe-right)) max(8px,var(--safe-bottom)) max(8px,var(--safe-left))}html[data-browser-shell=wechat][data-browser-compact=true] .control-console,html[data-browser-shell=wechat][data-browser-compact=true] .lobby-console,html[data-browser-shell=wechat][data-browser-compact=true] .race-home,html[data-browser-shell=wechat][data-browser-compact=true] .race-layout,html[data-browser-shell=wechat][data-browser-compact=true] .result-console{max-width:none}html[data-browser-shell=wechat][data-browser-compact=true] .race-home{gap:10px}html[data-browser-shell=wechat][data-browser-compact=true] .console-screen,html[data-browser-shell=wechat][data-browser-compact=true] .race-home{align-content:start;min-height:calc(var(--viewport-visible-height) - max(16px, var(--safe-top)) - max(16px, var(--safe-bottom)))}html[data-browser-shell=wechat][data-browser-compact=true] .console-action-card,html[data-browser-shell=wechat][data-browser-compact=true] .console-room-list,html[data-browser-shell=wechat][data-browser-compact=true] .console-section,html[data-browser-shell=wechat][data-browser-compact=true] .race-panel,html[data-browser-shell=wechat][data-browser-compact=true] .surface{padding:10px;border-radius:10px}html[data-browser-shell=wechat][data-browser-compact=true] .stack{gap:10px}html[data-browser-shell=wechat][data-browser-compact=true] .console-topline{align-items:flex-start;gap:10px}html[data-browser-shell=wechat][data-browser-compact=true] .console-title-group{gap:2px}html[data-browser-shell=wechat][data-browser-compact=true] .console-screen-title{font-size:18px;line-height:1}html[data-browser-shell=wechat][data-browser-compact=true] .console-block-title{font-size:14px}html[data-browser-shell=wechat][data-browser-compact=true] .eyebrow,html[data-browser-shell=wechat][data-browser-compact=true] .panel-kicker{font-size:10px;letter-spacing:.08em}html[data-browser-shell=wechat][data-browser-compact=true] .driver-card span:not(.driver-role),html[data-browser-shell=wechat][data-browser-compact=true] .field span,html[data-browser-shell=wechat][data-browser-compact=true] .muted,html[data-browser-shell=wechat][data-browser-compact=true] .room-list-item span{font-size:10px}html[data-browser-shell=wechat][data-browser-compact=true] .identity-field{width:min(100%,152px);max-width:152px}html[data-browser-shell=wechat][data-browser-compact=true] .hall-console-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}html[data-browser-shell=wechat][data-browser-compact=true] .hall-console-grid>.console-room-list{grid-column:auto;max-height:190px;overflow:auto}html[data-browser-shell=wechat][data-browser-compact=true] .hall-console-grid>.console-action-card>.muted{display:none}html[data-browser-shell=wechat][data-browser-compact=true] .hall-console-grid .input,html[data-browser-shell=wechat][data-browser-compact=true] .hall-console-grid button{min-height:34px}html[data-browser-shell=wechat][data-browser-compact=true] .hall-console-grid .room-code-input{font-size:15px}html[data-browser-shell=wechat][data-browser-compact=true] .room-console-grid{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:8px}html[data-browser-shell=wechat][data-browser-compact=true] .room-console-screen-title{font-size:16px}html[data-browser-shell=wechat][data-browser-compact=true] .room-lobby-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .room-roster-head{min-height:24px;gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .color-picker-inline{gap:10px}html[data-browser-shell=wechat][data-browser-compact=true] .color-picker-label{font-size:9px;gap:3px}html[data-browser-shell=wechat][data-browser-compact=true] .color-picker-current{font-size:8px}html[data-browser-shell=wechat][data-browser-compact=true] .driver-grid[data-roster-density=compact] .driver-card,html[data-browser-shell=wechat][data-browser-compact=true] .room-driver-grid .driver-card{min-height:44px;padding:5px 6px}html[data-browser-shell=wechat][data-browser-compact=true] .driver-card strong{font-size:12px}html[data-browser-shell=wechat][data-browser-compact=true] .driver-role,html[data-browser-shell=wechat][data-browser-compact=true] .status-pill{padding:3px 7px;font-size:10px}html[data-browser-shell=wechat][data-browser-compact=true] .color-grid{gap:6px}html[data-browser-shell=wechat][data-browser-compact=true] .color-grid-compact{grid-template-columns:repeat(4,18px);gap:9px}html[data-browser-shell=wechat][data-browser-compact=true] .color-swatch{min-height:32px;padding:4px 5px}html[data-browser-shell=wechat][data-browser-compact=true] .color-swatch-compact{width:18px;min-width:18px;height:18px;min-height:18px;padding:0}html[data-browser-shell=wechat][data-browser-compact=true] .room-track-preview{gap:6px}html[data-browser-shell=wechat][data-browser-compact=true] .room-track-preview-copy{display:none}html[data-browser-shell=wechat][data-browser-compact=true] .room-track-preview-svg{min-height:82px}html[data-browser-shell=wechat][data-browser-compact=true] .driver-color-chip{width:9px;min-width:9px;height:9px}html[data-browser-shell=wechat][data-browser-compact=true] .room-actions-panel .compact-actions{gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .room-actions-panel .primary-action,html[data-browser-shell=wechat][data-browser-compact=true] .room-actions-panel .secondary-action{min-height:30px;font-size:11px}html[data-browser-shell=wechat][data-browser-compact=true] .room-lap-panel .step-button{min-width:28px;min-height:28px}html[data-browser-shell=wechat][data-browser-compact=true] .room-lap-panel .lap-readout{min-width:46px;font-size:15px}html[data-browser-shell=wechat][data-browser-compact=true] .primary-action,html[data-browser-shell=wechat][data-browser-compact=true] .secondary-action,html[data-browser-shell=wechat][data-browser-compact=true] .step-button{min-height:34px}html[data-browser-shell=wechat][data-browser-compact=true] .lap-readout{min-width:54px;font-size:18px}html[data-browser-shell=wechat][data-browser-compact=true] .start-hint{display:none}html[data-browser-shell=wechat][data-browser-compact=true] .result-driver-grid{gap:6px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console{gap:8px;min-height:calc(var(--viewport-visible-height) - max(16px, var(--safe-top)) - max(16px, var(--safe-bottom)));justify-content:flex-start}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .console-topline{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;grid-gap:8px;gap:8px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .result-console-controls{gap:6px;justify-items:end}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .console-title-group{gap:1px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .console-title-group .muted{font-size:9px;line-height:1.1}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .console-title-group .muted:first-of-type{display:none}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .console-section-head{gap:1px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .race-actions{gap:6px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .result-console-actions{flex-direction:column;align-items:stretch}html[data-browser-shell=wechat][data-browser-compact=true] .result-console .race-actions .primary-action,html[data-browser-shell=wechat][data-browser-compact=true] .result-console .race-actions .secondary-action{min-height:32px;width:100%;min-width:92px;font-size:14px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console[data-result-count="4"] .result-driver-grid{gap:5px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console[data-result-count="4"] .result-driver-grid .driver-card{min-height:60px;padding:8px;gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console[data-result-count="4"] .result-driver-grid .driver-card strong{font-size:14px;line-height:1}html[data-browser-shell=wechat][data-browser-compact=true] .result-console[data-result-count="4"] .result-driver-grid .driver-meta{gap:2px}html[data-browser-shell=wechat][data-browser-compact=true] .result-console[data-result-count="4"] .result-driver-grid .driver-role{padding:2px 6px}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard{top:max(6px,var(--safe-top));right:max(6px,var(--safe-right));width:min(228px,calc(100% - 118px));max-width:calc(100% - max(6px, var(--safe-left)) - max(6px, var(--safe-right)));gap:4px;padding:8px;background:rgba(8,11,14,.34);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard-head{gap:6px}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard-head strong{display:none}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard-list{gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard-row{gap:6px;padding-top:4px}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard-row strong{max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}html[data-browser-shell=wechat][data-browser-compact=true] .race-leaderboard-row span{font-size:10px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-grid{grid-template-columns:minmax(0,1fr);gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-main-shell{grid-template-columns:54px minmax(0,1fr) 92px;gap:4px;padding:6px;align-items:start}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-panel-button,html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-save-button,html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-tool-button{min-height:28px;padding:0 6px;font-size:10px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-console-shell{gap:4px;padding:6px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-console-shell .console-topline{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;grid-gap:4px 8px;gap:4px 8px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-console-shell .console-title-group{gap:1px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-console-shell .panel-kicker{font-size:9px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-console-shell .console-screen-title{font-size:16px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-intro{display:none}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-back-link{min-width:84px;min-height:28px;padding:0 8px;font-size:11px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-mobile-rail,html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-tool-group{gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-status-rail{grid-template-rows:auto auto auto 34px 1fr;gap:3px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-name-field{gap:3px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-name-input{min-height:30px;padding:6px 8px;font-size:10px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-hint-compact,html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-message,html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-name-field span,html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-status-copy{font-size:9px;line-height:1.15}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-hint-compact{gap:4px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-hint-compact span{padding:4px 6px;border-radius:8px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-save-button{min-height:36px;font-size:11px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-stage-shell{min-height:clamp(188px,48vh,260px);aspect-ratio:1.14;border-radius:12px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library{width:min(420px,calc(100vw - 18px));max-height:calc(var(--viewport-visible-height) - max(16px, var(--safe-top)) - max(16px, var(--safe-bottom)) - 12px);overflow:auto}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-backdrop{padding:max(8px,var(--safe-top)) max(8px,var(--safe-right)) max(8px,var(--safe-bottom)) max(8px,var(--safe-left))}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-head{gap:8px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-close{min-width:56px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-item{grid-template-columns:minmax(0,1fr);gap:8px;padding-top:8px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-item-copy{gap:2px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-item-copy strong{font-size:16px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-item-actions{justify-content:stretch;gap:6px}html[data-browser-shell=wechat][data-browser-compact=true] .track-editor-library-item-actions .secondary-action{min-width:0;flex:1 1}html[data-browser-shell=wechat][data-browser-compact=true] .track-grid-board{gap:2px;padding:5px}