:root{--night:#0a1226;--panel:#091024c7;--line:#96acff38;--fg:#eef2ff;--muted:#a3aed0;--cobalt:#2f5bff;--yellow:#ffc93c;--purple:#b47bff;--green:#3ddc84;--red:#ff3b2f;--display:var(--font-chakra),"Arial Narrow",system-ui,sans-serif;--body:var(--font-plex-sans),system-ui,-apple-system,sans-serif;--mono:var(--font-plex-mono),ui-monospace,Menlo,monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--night);color:var(--fg);font-family:var(--body);-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#scene{width:100%;height:100%;display:block;position:fixed;inset:0}[hidden]{display:none!important}.vignette{pointer-events:none;background:radial-gradient(at 50% 45%,#0000 58%,#04081461 100%);position:fixed;inset:0}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);border-radius:6px}.hud{pointer-events:none;padding:calc(env(safe-area-inset-top,0px) + 14px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 14px) max(16px,env(safe-area-inset-left,0px));grid-template:"brand timing card""tower.card"1fr"map hint speed"/1fr auto 1fr;gap:12px;display:grid;position:fixed;inset:0}.hud>*{pointer-events:auto;min-width:0}.brand{grid-area:brand;place-self:start;gap:8px;padding:10px 12px;display:grid}.brand-name{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:17px;font-weight:700}.brand-role{color:var(--muted);font-size:12px}.brand-actions{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;font-size:12px;font-family:var(--mono);background:0 0;border-radius:4px;padding:5px 9px}.chip:hover{border-color:var(--yellow);color:var(--yellow)}.timing{font-family:var(--mono);grid-area:timing;align-self:start;gap:2px;padding:4px;display:flex}.tcell{gap:2px;min-width:84px;padding:6px 12px;display:grid}.tcell span{letter-spacing:.12em;color:var(--muted);text-transform:uppercase;font-size:10px}.tcell b{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.tcell b.best{color:var(--purple)}.tcell b.pb{color:var(--green)}.lights{align-items:center;gap:8px;padding:8px 12px;display:flex}.lights i{background:#2a0d0b;border:1px solid #4a1a16;border-radius:50%;width:18px;height:18px;display:block}.lights i.on{background:var(--red);box-shadow:0 0 12px var(--red)}.card{-webkit-user-select:text;user-select:text;grid-area:card;place-self:start end;width:330px;max-height:calc(100% - 4px);padding:14px 16px;overflow:auto}.eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--yellow);font-size:11px}.card h2{font-family:var(--display);text-wrap:balance;margin:4px 0 10px;font-size:26px;font-weight:700;line-height:1.05}.card p{color:#d8def2;margin:0 0 10px;font-size:13.5px;line-height:1.5}.roles{gap:12px;margin:0;padding:0;list-style:none;display:grid}.roles li{border-top:1px solid var(--line);gap:2px;padding-top:10px;display:grid}.role-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.role-top b{font-size:14px;font-weight:600}.role-top span{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px}.role-title{color:var(--muted);font-size:12px}.roles p{margin:4px 0 0;font-size:13px}.tags{flex-wrap:wrap;gap:5px;margin:2px 0 10px;display:flex}.tags span{font-family:var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:3px;padding:2px 6px;font-size:11px}.card a{color:var(--yellow)}.copy-row{font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.tower{width:196px;font-family:var(--mono);grid-area:tower;place-self:start;padding:6px 0;font-size:13px}.tower-head{letter-spacing:.14em;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px;padding:2px 10px 6px;font-size:10px}.tower ol{margin:0;padding:0;list-style:none}.tower li{font-variant-numeric:tabular-nums;grid-template-columns:1.4em 3.4em 1fr;align-items:center;gap:6px;padding:4px 10px;display:grid}.tower li .pos{color:var(--muted);text-align:right}.tower li .code{font-family:var(--display);letter-spacing:.06em;border-left:3px solid var(--cobalt);padding-left:6px;font-weight:700}.tower li .gap{text-align:right}.tower li.lead .gap{color:var(--purple)}.tower li.me{background:#ffc93c24}.tower li.me .code{border-left-color:var(--yellow)}.tower li.sep{border-top:1px dashed var(--line);margin-top:2px}.tower li.empty{color:var(--muted);font-family:var(--body);font-size:12px;display:block}.map{grid-area:map;place-self:end start;width:170px;height:170px}.hint{color:var(--muted);flex-wrap:wrap;grid-area:hint;justify-content:center;align-self:end;gap:14px;padding:8px 12px;font-size:12px;display:flex}.hint kbd,.ov kbd{font-family:var(--mono);border:1px solid var(--line);color:var(--fg);border-radius:3px;padding:1px 5px;font-size:11px}.speed{font-family:var(--display);grid-area:speed;grid-template-columns:auto auto;place-self:end;align-items:end;column-gap:14px;padding:8px 16px;display:grid}.speed .v{font-variant-numeric:tabular-nums;text-align:right;min-width:3ch;font-size:46px;font-weight:700;line-height:1}.speed .g{color:var(--yellow);font-size:46px;font-weight:700;line-height:1}.speed small{font-family:var(--mono);color:var(--muted);letter-spacing:.1em;text-align:right;grid-column:1;font-size:11px}.speed .lim{font-family:var(--mono);letter-spacing:.1em;color:#111;background:var(--yellow);text-align:center;border-radius:3px;grid-column:1/-1;margin-top:6px;padding:2px 6px;font-size:11px}.touch{align-self:end;gap:10px;display:none}.touch button{border:1px solid var(--line);background:var(--panel);width:76px;height:76px;font-family:var(--mono);touch-action:none;border-radius:50%;font-size:13px}.touch button.held{background:var(--cobalt)}.touch-steer{grid-area:steer;justify-self:start}.touch-pedals{grid-area:pedals;justify-self:end}@media (pointer:coarse){.hud{grid-template-areas:"brand timing card""tower.card""steer speed pedals"}.map,.hint{display:none}.touch{display:flex}.speed{justify-self:center}}@media (max-width:760px){.hud{grid-template:"brand brand""timing timing""card card"". ."1fr"map speed"/1fr 1fr}.timing{flex-wrap:wrap;justify-self:start}.tcell{min-width:70px;padding:4px 8px}.card{justify-self:stretch;width:auto;max-height:24vh}.tower{display:none}.card h2{font-size:20px}.brand{grid-template-columns:1fr auto;align-items:center}.brand-actions{grid-column:1/-1}.speed .v,.speed .g{font-size:34px}}@media (max-width:760px) and (pointer:coarse){.hud{grid-template-rows:auto auto auto 1fr auto auto;grid-template-areas:"brand brand""timing timing""card card"". .""speed speed""steer pedals"}}.toast{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;background:var(--panel);border:1px solid var(--line);pointer-events:none;opacity:0;text-align:center;border-radius:6px;max-width:calc(100% - 32px);padding:10px 18px;font-size:28px;font-weight:700;transition:opacity .3s;position:fixed;top:32%;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.toast small{font-family:var(--mono);letter-spacing:.04em;text-transform:none;color:var(--muted);margin-top:4px;font-size:13px;font-weight:400;display:block}.ov{padding:calc(env(safe-area-inset-top,0px) + 16px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 16px) max(16px,env(safe-area-inset-left,0px));background:linear-gradient(#080e208c,#080e20e0);place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.ov-box{gap:16px;width:100%;max-width:620px;padding:28px;display:grid}.ov h1{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;text-wrap:balance;margin:0;font-size:clamp(34px,6vw,58px);font-weight:700;line-height:.95}.ov p{color:#d8def2;max-width:60ch;margin:0;font-size:15.5px;line-height:1.55}.controls{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.ov-actions{flex-wrap:wrap;gap:10px;display:flex}.btn{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1px solid var(--line);background:0 0;border-radius:4px;padding:12px 18px;font-size:15px;font-weight:700}.btn.primary{background:var(--yellow);color:#14110a;border-color:var(--yellow)}.btn:hover{filter:brightness(1.08)}.driver{gap:6px;margin:0;display:grid}.driver label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.driver input{font:500 18px var(--display);letter-spacing:.04em;border:1px solid var(--line);color:var(--fg);box-sizing:border-box;-webkit-user-select:text;user-select:text;background:#ffffff0d;border-radius:4px;width:100%;max-width:320px;padding:10px 12px}.driver input:focus{outline:2px solid var(--yellow);outline-offset:1px}.ov .form-note{color:var(--muted);font-size:12.5px}.ov .form-note.err{color:var(--yellow)}.board{border-top:1px solid var(--line);gap:8px;padding-top:14px;display:grid}.board-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.board-src{font-family:var(--mono);color:var(--muted);font-size:11px}.board ol{font-family:var(--mono);gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.board li{background:#ffffff0a;border-radius:3px;grid-template-columns:2.4em minmax(0,1fr) auto;gap:10px;padding:6px 10px;display:grid}.board li span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board li.me{background:#ffc93c24}.board li .t{font-variant-numeric:tabular-nums}.board li:first-child .t{color:var(--purple)}.board li.empty{color:var(--muted);font-family:var(--body);background:0 0;padding:0;font-size:13px;display:block}.resume{background:#080e20f0;place-items:start center}.resume .ov-box{-webkit-user-select:text;user-select:text;max-width:760px}.resume h2{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--yellow);margin:18px 0 4px;font-size:15px}.resume .roles p{color:#d8def2}.resume-head{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:12px;display:flex}@media (prefers-reduced-motion:reduce){.toast{transition:none}}
