:root{color-scheme:dark;--ink:#eef6ff;--muted:#a3b6c9;--panel:#0c1929ed;--line:#bfdfff26;--accent:#ffb45f;--team:#ffb45f;font-family:'Segoe UI',Arial,sans-serif;background:#060b17;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:600 12px/1.25 'Segoe UI',Arial,sans-serif;cursor:pointer;color:var(--ink);border:1px solid var(--line);background:#18283a;border-radius:8px;min-height:44px;padding:10px 14px}button:hover{background:#253b50}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #fff;outline-offset:3px}button[aria-pressed=true]{border-color:var(--team);background:color-mix(in srgb,var(--team) 14%,#122333)}[hidden]{display:none!important}a{color:#b9ccdf;text-decoration:none}.back{display:inline-block;font-size:12px;line-height:44px}.back:hover{color:#fff;text-decoration:underline}#moonCanvas{position:fixed;inset:0;width:100%;height:100%;display:block}
.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#aecfe8}.setupPanel{position:fixed;z-index:3;top:50%;left:28px;transform:translateY(-50%);width:430px;max-height:calc(100dvh - 40px);overflow:auto;padding:22px 25px;background:linear-gradient(140deg,#0b1628f5,#111e2ef2);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 70px #0007}.setupPanel>.back{margin-top:-12px;margin-bottom:10px}h1{font-size:64px;line-height:.86;letter-spacing:-3px;margin:15px 0 8px;font-weight:900}h1 span{font-size:34px;letter-spacing:-1.5px;color:var(--accent)}.tagline{font-size:14px;color:var(--muted);margin:12px 0 18px}.raceFacts{display:flex;gap:8px;color:#b8cee1;font-size:10px;font-weight:700;letter-spacing:.4px}.raceFacts span{border:1px solid var(--line);border-radius:20px;padding:6px 10px}.setupPanel h2{font-size:14px;margin:22px 0 12px}.teams{display:grid;grid-template-columns:1fr 1fr;gap:8px}.teamCard{padding:9px 10px;display:flex;align-items:center;gap:9px;min-height:62px;text-align:left}.teamMark{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--badge);color:var(--badge);font-size:14px;letter-spacing:-.5px;font-weight:900;border-radius:50%;background:color-mix(in srgb,var(--badge) 12%,#0b1523)}.teamCard strong{display:block;font-size:12px}.teamCard small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.teamDescription{font-size:12px;min-height:38px;margin:12px 0 0;color:var(--team)}.controlChoices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 14px}.controlChoices button{padding:10px 5px}.controlChoices strong{display:block;font-size:12px}.controlChoices span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.primary{width:100%;min-height:48px;background:#ffce7c;color:#17202b;border:0;font-weight:800;font-size:14px}.primary:hover{background:#ffe0a7}.setupHint{font-size:11px;color:var(--muted);line-height:1.6;margin:13px 0}.parody{font-size:9px;line-height:1.5;color:#7f94a9;margin:10px 0 0}#raceError{margin-top:14px;color:#ffcfac;font-size:13px;line-height:1.5}
.broadcastBar{position:fixed;z-index:3;top:16px;left:50%;transform:translateX(-50%);width:410px;display:grid;grid-template-columns:1fr 110px 65px;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 12px}.broadcastBar strong{display:block;font-size:15px;margin-top:4px}.broadcastBar .eyebrow{font-size:8px;letter-spacing:1.4px}.broadcastBar button{padding:8px;font-size:10px}.raceClock{text-align:center}.raceClock b{font-size:24px;font-variant-numeric:tabular-nums;display:block}.raceClock span{font-size:9px;letter-spacing:1px;color:var(--muted)}
#standings{position:fixed;z-index:3;left:18px;top:18px;width:196px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 10px}.towerHeading{font-size:9px;letter-spacing:1px;color:var(--muted);display:flex;justify-content:space-between}.towerHeading span{color:#a6e1b7}#positions{list-style:none;padding:0;margin:9px 0 0}#positions li{display:grid;grid-template-columns:18px 7px 1fr auto;gap:5px;align-items:center;padding:7px 3px;border-bottom:1px solid #b5ccdf13;font-size:11px;min-height:30px}#positions li.mine{background:#ffffff08;border-radius:5px}#positions b{font-size:11px}#positions i{display:block;width:5px;height:19px;border-radius:2px}#positions .racerName{font-weight:650}#positions small{display:block;font-size:8px;color:#9eb0bf;line-height:1.3}#positions .gap{font-size:9px;font-variant-numeric:tabular-nums;color:#b8c9d7}#teamStatus{font-size:10px;color:var(--team);line-height:1.5;margin-top:12px}
#countdown{position:fixed;left:50%;top:43%;transform:translate(-50%,-50%);z-index:3;font-weight:900;font-size:92px;color:#ffdda3;text-shadow:0 6px 30px #0008;pointer-events:none}#raceEvent{position:fixed;z-index:3;top:100px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 480px);padding:8px 14px;border-radius:20px;background:#102034eb;font-size:11px;font-weight:800;letter-spacing:.4px;text-align:center;color:#f3d29c;pointer-events:none}
.raceBottom{position:fixed;z-index:3;bottom:20px;left:20px;right:20px;display:flex;gap:16px;align-items:flex-end;justify-content:space-between;pointer-events:none}.raceBottom>*{pointer-events:auto}#trackStatus{max-width:290px;background:#0c1929cf;border:1px solid var(--line);border-radius:9px;padding:10px 13px;line-height:1.5}#sectorName{display:block;font-size:10px;letter-spacing:1px;color:#dfedf4}#sectorHint{display:block;font-size:10px;color:var(--muted);margin-top:4px}.cameraChoices{display:flex;gap:5px;padding:5px;border:1px solid var(--line);background:var(--panel);border-radius:9px}.cameraChoices button{padding:9px 11px;font-size:10px}.raceBoost{width:138px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px}.raceBoost>span{font-size:8px;letter-spacing:1px;display:block;color:var(--muted);text-align:center}.reserve{height:4px;background:#b5d4ee24;margin:7px 0;border-radius:3px;overflow:hidden}.reserve i{display:block;height:100%;background:var(--team);width:100%}#raceBoost{width:100%;padding:8px;color:var(--team);border-color:var(--team);font-size:11px}#raceBoost.hot{background:var(--team);color:#0b1625}
.scrim{position:fixed;z-index:8;inset:0;display:grid;place-items:center;padding:20px;background:#06102088;backdrop-filter:blur(7px)}.dialog{max-height:calc(100dvh - 40px);overflow:auto;background:#0d1b2af5;border:1px solid var(--line);border-radius:18px;padding:26px;width:min(460px,100%)}.dialog h2{font-size:30px;line-height:1.1;letter-spacing:-.5px;margin:12px 0 20px}.dialog p{font-size:13px;color:var(--muted);line-height:1.5}.dialog>.secondary{display:block;width:100%;margin-top:8px}.dialog>.back{display:block;text-align:center;margin-top:8px}.resultsDialog{width:min(520px,100%)}#cupTable{display:grid;gap:6px;margin:18px 0}#cupTable .cupRow{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--badge);border-radius:6px;font-size:13px}#cupTable .cupRow small{display:block;color:var(--muted);font-size:10px;margin-top:3px}#cupTable b{font-variant-numeric:tabular-nums}.resultsDialog details{margin-bottom:16px;font-size:12px;color:var(--muted)}summary{cursor:pointer;min-height:36px;line-height:36px}#finishOrder{padding-left:24px;line-height:1.8}#finishOrder span{float:right;font-variant-numeric:tabular-nums}
@media(max-width:800px){.setupPanel{left:16px;width:390px;padding:18px 20px}.broadcastBar{left:auto;right:12px;transform:none;width:330px;grid-template-columns:1fr 93px 54px;gap:6px}.broadcastBar strong{font-size:12px}.raceClock b{font-size:20px}#standings{width:162px;left:12px;top:12px;padding:9px 7px}#raceEvent{max-width:calc(100vw - 220px);left:auto;right:14px;transform:none;top:102px;font-size:10px}.raceBottom{left:12px;right:12px;gap:8px}#trackStatus{max-width:225px;padding:8px}.cameraChoices button{padding:8px;font-size:9px}.raceBoost{width:120px}}
@media(max-width:540px){.setupPanel{top:50%;left:12px;right:12px;width:auto;max-height:calc(100dvh - 24px);padding:16px}.setupPanel>.back{margin-bottom:4px}.setupPanel h1{font-size:50px}.setupPanel h1 span{font-size:28px}.tagline{margin:10px 0 14px}.setupPanel h2{margin:15px 0 9px}.teamCard{min-height:59px;padding:7px}.teamMark{width:30px;height:30px;font-size:12px}.teamCard strong{font-size:11px}.teamCard small{font-size:8px}.teamDescription{font-size:11px;min-height:31px}.setupHint{font-size:10px;margin:9px 0}.broadcastBar{left:10px;right:10px;top:10px;width:auto;grid-template-columns:1fr 95px 55px;padding:8px 10px}#standings{top:84px;left:10px;width:132px;padding:8px 6px}.towerHeading{font-size:7px}.towerHeading span{display:none}#positions li{font-size:9px;min-height:25px;padding:5px 0;grid-template-columns:13px 5px 1fr;gap:4px}#positions li .gap{display:none}#positions li small{font-size:7px}#positions b{font-size:9px}#positions i{width:4px;height:16px}#teamStatus{font-size:8px;margin-top:7px}#raceEvent{left:153px;right:10px;max-width:none;top:90px;padding:8px;font-size:9px;border-radius:7px}#countdown{left:64%;font-size:70px}.raceBottom{bottom:max(12px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 113px;gap:7px}#trackStatus{grid-column:1/-1;max-width:none;padding:7px 10px}#sectorHint{font-size:9px}#sectorName{font-size:9px}.cameraChoices{align-self:end;justify-content:center}.cameraChoices button{font-size:9px;min-width:0;padding:8px 6px}.raceBoost{width:113px;padding:6px}.raceBoost>span{font-size:7px}.reserve{margin:5px 0}.dialog{padding:20px}.dialog h2{font-size:26px}}
@media(max-height:700px){.setupPanel h1{font-size:46px;margin-top:8px}.setupPanel h1 span{font-size:26px}.setupPanel .tagline{margin:8px 0 12px}.setupPanel h2{margin:13px 0 9px}.setupPanel .back{margin-bottom:0}.teamDescription{margin-top:8px;min-height:28px}.setupHint{margin-bottom:0}.parody{margin-top:7px;font-size:8px}}
@media(max-height:480px) and (min-width:541px){.setupPanel{left:14px;top:14px;bottom:14px;transform:none;width:440px;max-height:none}.broadcastBar{top:10px;right:10px;width:300px;padding:5px 8px}.broadcastBar .eyebrow{font-size:7px}.raceClock b{font-size:18px}#standings{top:10px;left:10px;width:135px;padding:7px}.towerHeading{font-size:7px}#positions{margin-top:5px}#positions li{min-height:23px;padding:4px 0;font-size:9px;grid-template-columns:13px 4px 1fr auto;gap:3px}#positions b{font-size:9px}#positions small{display:none}#positions i{height:15px;width:4px}#positions .gap{font-size:8px}#teamStatus{font-size:8px;margin-top:7px}#raceEvent{top:82px;right:12px;max-width:200px;padding:6px;font-size:9px}.raceBottom{bottom:10px;left:155px;right:10px;gap:8px}.cameraChoices{padding:3px}.cameraChoices button{font-size:9px;padding:6px;min-height:38px}#trackStatus{display:none}.raceBoost{width:110px;padding:5px}.raceBoost>span{font-size:7px}.raceBoost .reserve{margin:3px 0}#raceBoost{min-height:36px}.dialog{max-height:calc(100dvh - 20px);padding:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media(max-height:640px) and (max-width:540px){
  .setupPanel{padding:13px 16px}.setupPanel>.back{line-height:32px;margin-top:-6px}.setupPanel>.eyebrow{font-size:8px}
  .setupPanel h1{font-size:36px;line-height:1;margin:7px 0 0}.setupPanel h1 br{display:none}.setupPanel h1 span{display:block;font-size:22px;line-height:1.1}
  .setupPanel .tagline{font-size:12px;margin:6px 0 9px}.raceFacts{gap:5px;font-size:9px}.raceFacts span{padding:5px 8px}
  .teamCard{min-height:51px}.teamCard small{display:none}.teamDescription{min-height:27px;margin-top:8px;font-size:10px}
  .controlChoices{margin:7px 0 9px}.controlChoices button{padding:8px 3px}.controlChoices span{font-size:9px}.setupPanel .primary{min-height:44px}
}
@media(max-height:480px) and (min-width:541px){
  .setupPanel{width:min(820px,calc(100vw - 28px));padding:10px 14px;display:grid;grid-template-columns:.8fr 1.2fr;grid-template-areas:'back question' 'title teams' 'facts description' 'controls start' 'hint hint' 'legal legal';gap:4px 14px}
  .setupPanel>.back{grid-area:back;margin:0;line-height:28px}.setupPanel>.eyebrow,.setupPanel>.tagline{display:none}
  .setupPanel h1{grid-area:title;font-size:38px;margin:6px 0;align-self:center;line-height:1}.setupPanel h1 span{font-size:24px;line-height:1.1}.setupPanel h1 br{display:none}.setupPanel h1 span{display:block}
  .setupPanel h2{grid-area:question;margin:5px 0;font-size:12px;align-self:center}.teams{grid-area:teams;gap:6px}.teamCard{min-height:48px;padding:6px;gap:6px}.teamCard strong{font-size:11px}.teamMark{height:28px;width:28px;font-size:11px}.teamCard small{font-size:8px}
  .raceFacts{grid-area:facts;gap:4px;align-self:center;font-size:8px}.raceFacts span{padding:5px 6px}.teamDescription{grid-area:description;min-height:24px;font-size:10px;margin:3px 0;align-self:center}
  .controlChoices{grid-area:controls;margin:0;gap:6px}.controlChoices button{padding:6px 3px}.controlChoices strong{font-size:10px}.controlChoices span{font-size:8px;margin-top:3px}.setupPanel #startRace{grid-area:start;min-height:44px;align-self:center}
  .setupHint{grid-area:hint;font-size:9px;margin:4px 0 0;line-height:1.35}.setupHint br{display:none}.parody{grid-area:legal;margin:0;font-size:7px;line-height:1.3}#raceError{grid-column:1/-1}
}
