@font-face{font-family:Kenney Future;src:url(../assets/ui/font/Kenney%20Future.ttf) format("truetype");font-display:swap}@font-face{font-family:Kenney Future Narrow;src:url(../assets/ui/font/Kenney%20Future%20Narrow.ttf) format("truetype");font-display:swap}:root{--grey-edge: #989aaf;--grey-hi: #ffffff;--grey: #dadce7;--grey-lo: #666880;--blue-edge: #167da8;--blue-hi: #36bdf7;--blue: #1c9fd7;--blue-lo: #146587;--green-edge: #029357;--green-hi: #2fd792;--green: #16bb77;--green-lo: #046d41;--red-edge: #cd0b2a;--red-hi: #ff627b;--red: #ee2747;--red-lo: #871023;--yellow-edge: #dea312;--yellow-hi: #ffea9c;--yellow: #ffcc00;--yellow-lo: #b48000;--ink: #3c3e52;--ink-2: #666880;--ink-3: #989aaf;--sky-top: #3d8be0;--sky-low: #a8d5f2;--bg: var(--sky-top);--text: #ffffff;--muted: rgba(255, 255, 255, .9);--faint: rgba(255, 255, 255, .7);--accent: var(--yellow);--good: var(--green);--bad: var(--red);--drop: 0 2px 0 rgba(13, 52, 92, .55);--drop-big: 0 3px 0 var(--blue-lo), 0 5px 0 rgba(13, 52, 92, .35);--display: "Kenney Future", system-ui, sans-serif;--chrome: "Kenney Future Narrow", system-ui, sans-serif;--body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.5, 0, .75, 0);--fast: .12s;--base: .18s;--slow: .24s;--spr-grey: url(../assets/ui/grey-button_rectangle_depth_flat.png);--spr-grey-hover: url(../assets/ui/grey-button_rectangle_depth_gradient.png);--spr-grey-down: url(../assets/ui/grey-button_rectangle_flat.png);--spr-blue: url(../assets/ui/blue-button_rectangle_depth_flat.png);--spr-blue-hover: url(../assets/ui/blue-button_rectangle_depth_gradient.png);--spr-blue-down: url(../assets/ui/blue-button_rectangle_flat.png);--spr-green: url(../assets/ui/green-button_rectangle_depth_flat.png);--spr-green-hover: url(../assets/ui/green-button_rectangle_depth_gradient.png);--spr-green-down: url(../assets/ui/green-button_rectangle_flat.png);--spr-red: url(../assets/ui/red-button_rectangle_depth_flat.png);--spr-red-hover: url(../assets/ui/red-button_rectangle_depth_gradient.png);--spr-red-down: url(../assets/ui/red-button_rectangle_flat.png);--spr-yellow: url(../assets/ui/yellow-button_rectangle_depth_flat.png);--spr-yellow-hover: url(../assets/ui/yellow-button_rectangle_depth_gradient.png);--spr-yellow-down: url(../assets/ui/yellow-button_rectangle_flat.png)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:linear-gradient(180deg,var(--sky-top),var(--sky-low)) fixed;color:var(--text);font-family:var(--body);font-size:15px;overflow:hidden;-webkit-font-smoothing:antialiased}#view{position:fixed;inset:0;width:100%;height:100%;display:block}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.note{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.status{margin:0;min-height:1.4em;font-size:14px;font-weight:600;color:var(--accent)}.status.bad{color:var(--bad)}.label{font-family:var(--chrome);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.stat-block.grow .label,.reward .totals .label{font-family:var(--body);font-weight:700;letter-spacing:.04em}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.panel,.driver-plate,.profile-strip,.scene-tag,.replay-bar,.hud .plate,.hud .timing-box,.hud .spec,.toast,.standings li{--text: var(--ink);--muted: var(--ink-2);--faint: var(--ink-3);--accent: var(--blue-lo);--good: var(--green-lo);--bad: var(--red-edge);color:var(--text);text-shadow:none;border:solid transparent;border-width:8px 8px 12px;border-image:var(--spr-grey) 8 8 12 8 fill / 8px 8px 12px 8px;background:none}.rule{border:0;height:4px;margin:0;background:linear-gradient(var(--grey-edge) 0 2px,var(--grey-hi) 2px 4px)}.ico{display:inline-block;width:1em;height:1em;flex:none;background:var(--src) center / contain no-repeat}.ico-back{--src: url(../assets/ui/grey-arrow_basic_w.png)}.ico-next{--src: url(../assets/ui/grey-arrow_basic_e.png)}.ico-play{--src: url(../assets/ui/extra-icon_play_light.png)}.ico-repeat{--src: url(../assets/ui/extra-icon_repeat_light.png)}.ico-check{--src: url(../assets/ui/grey-icon_checkmark.png)}.ico-cross{--src: url(../assets/ui/grey-icon_cross.png)}.ico-star{--src: url(../assets/ui/yellow-star.png)}button,input,select{font:inherit;color:inherit}button{--b: var(--spr-grey);--b-hover: var(--spr-grey-hover);--b-down: var(--spr-grey-down);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;padding:0 var(--s4) 4px;font-family:var(--chrome);font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);text-shadow:none;border:0;border-radius:0;background:none;cursor:pointer;user-select:none;transition:transform 60ms linear,filter var(--fast) var(--ease-out)}button:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border:solid transparent;border-width:8px 8px 12px;border-image:var(--b) 8 8 12 8 fill / 8px 8px 12px 8px}button:hover:not(:disabled):before,button:focus-visible:before{border-image-source:var(--b-hover)}button:active:not(:disabled){transform:translateY(4px)}button:active:not(:disabled):before{bottom:4px;border-width:8px;border-image:var(--b-down) 8 fill / 8px}button:disabled{--b: var(--spr-grey);cursor:not-allowed;opacity:.6;color:var(--ink-2);text-shadow:none}:focus{outline:none}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px;border-radius:6px}button.primary{--b: var(--spr-green);--b-hover: var(--spr-green-hover);--b-down: var(--spr-green-down);color:#fff;text-shadow:0 2px 0 rgba(4,109,65,.6)}button.danger{--b: var(--spr-red);--b-hover: var(--spr-red-hover);--b-down: var(--spr-red-down);color:#fff;text-shadow:0 2px 0 rgba(135,16,35,.5)}button[aria-pressed=true],button[aria-selected=true],button[aria-checked=true]{--b: var(--spr-blue);--b-hover: var(--spr-blue-hover);--b-down: var(--spr-blue-down);color:#fff;text-shadow:0 2px 0 rgba(20,101,135,.6)}button.ghost{color:var(--text);text-shadow:var(--drop);--b: none;--b-hover: url(../assets/ui/extra-button_rectangle_line.png);--b-down: url(../assets/ui/extra-button_rectangle_line.png)}button.ghost:before{border-width:8px;border-image-slice:8 fill;border-image-width:8px;opacity:.85}button.ghost:hover:not(:disabled):before,button.ghost:focus-visible:before{border-image-slice:8}button.big{min-height:60px;padding:0 var(--s6) 4px;font-family:var(--display);font-size:20px;letter-spacing:.02em}button.big .ico{width:22px;height:22px}button.small{min-height:36px;padding:0 var(--s3) 4px;font-size:13px}button.small:before{border-width:6px 6px 10px;border-image-width:6px 6px 10px 6px}button.back{min-height:40px;padding:0 var(--s3) 4px var(--s2)}button.back .ico{width:20px;height:20px}input,select{min-height:44px;min-width:0;padding:0 var(--s3);color:var(--ink);text-shadow:none;font-size:15px;border:solid transparent;border-width:8px 8px 8px;border-radius:0;border-image:url(../assets/ui/extra-input_rectangle.png) 8 fill / 8px;background:none}input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:0;border-radius:8px}input:disabled,select:disabled{opacity:.6}select{appearance:none;padding-right:30px;cursor:pointer;border-image-slice:8;background:#fff url(../assets/ui/extra-icon_arrow_down_dark.png) right 6px center / 14px no-repeat;background-clip:padding-box}select option{background:#fff;color:var(--ink)}input[type=number]{font-variant-numeric:tabular-nums}input[type=checkbox]{appearance:none;flex:none;width:32px;height:32px;min-height:0;padding:0;margin:0;cursor:pointer;justify-self:start;border:0;border-image:none;background:url(../assets/ui/grey-check_square_grey.png) center / 32px 32px no-repeat;transition:transform var(--fast) var(--ease-out)}input[type=checkbox]:checked{background-image:url(../assets/ui/blue-check_square_color_checkmark.png)}input[type=checkbox]:hover{transform:scale(1.06)}input[type=checkbox]:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}input[type=range]{appearance:none;min-height:34px;padding:0;border:0;border-image:none;background:transparent;cursor:pointer;--fill: 50%}input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--blue-hi) var(--fill),#fff var(--fill));box-shadow:inset 0 0 0 2px #b0b0ba}input[type=range]::-moz-range-track{height:8px;border-radius:4px;background:#fff;box-shadow:inset 0 0 0 2px #b0b0ba}input[type=range]::-moz-range-progress{height:8px;border-radius:4px;background:var(--blue-hi);box-shadow:inset 0 0 0 2px var(--blue-edge)}input[type=range]::-webkit-slider-thumb{appearance:none;width:24px;height:32px;margin-top:-12px;border:0;border-radius:0;background:url(../assets/ui/blue-slide_hangle.png) center / 24px 32px no-repeat;transition:transform var(--fast)}input[type=range]::-moz-range-thumb{width:24px;height:32px;border:0;border-radius:0;background:url(../assets/ui/blue-slide_hangle.png) center / 24px 32px no-repeat}input[type=range]:hover::-webkit-slider-thumb{transform:translateY(-2px)}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{filter:drop-shadow(0 0 0 var(--yellow)) drop-shadow(0 0 3px var(--yellow))}.screen{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;padding:clamp(16px,3.4vw,40px) clamp(16px,4vw,56px);display:flex;flex-direction:column;gap:var(--s5);background:linear-gradient(180deg,var(--sky-top),var(--sky-low));color:var(--text);text-shadow:var(--drop);animation:screen-in var(--slow) var(--ease-out)}body.live .screen{background:linear-gradient(180deg,#145aa06b,#145aa01f 40%,#145aa000)}body.live .screen.rail{background:linear-gradient(90deg,#145aa08c 0,#145aa066 420px,#145aa000 760px)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.screen h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(28px,4vw,40px);letter-spacing:.02em;line-height:1.05;text-shadow:var(--drop-big)}.screen h2{margin:0;font-family:var(--display);font-weight:400;font-size:16px;letter-spacing:.02em;color:var(--text)}.screen h3{margin:0;font-family:var(--display);font-weight:400;font-size:20px}.screen-head{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}.screen-head h1{flex:1 1 auto}.screen-head .aside{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.kicker{display:block;margin-bottom:var(--s1);font-family:var(--chrome);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);text-shadow:var(--drop)}.panel .kicker{text-shadow:none}.body-wide{width:100%;max-width:1240px;display:flex;flex-direction:column;gap:var(--s5)}.rail>*{width:min(500px,100%)}.rail>.scene-tag{width:auto}.panel{padding:var(--s3) var(--s4) var(--s3);display:flex;flex-direction:column;gap:var(--s3);min-width:0}.panel>h2{margin-bottom:var(--s1)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.stack{display:flex;flex-direction:column;gap:var(--s3);min-width:0}.row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.row.spread{justify-content:space-between}.row.end{justify-content:flex-end}.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:var(--s5);align-items:start}@media (max-width: 860px){.cols{grid-template-columns:1fr}}.field{display:grid;grid-template-columns:minmax(7em,11em) minmax(0,1fr) auto;gap:var(--s3);align-items:center;min-height:52px;font-size:14px}.field>span:first-child{color:var(--muted);font-weight:600}.field+.field{border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.field>input:not([type=checkbox]):not([type=range]),.field>select{width:100%}.field .value{min-width:3.5em;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;font-weight:600}.settings fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;min-width:0}.settings legend{padding:0;margin:0 0 var(--s2);font-family:var(--display);font-size:15px;color:var(--accent);letter-spacing:.02em}.tabs{flex:none;display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;padding:2px 2px 4px}.tabs button{min-height:40px;padding:0 var(--s4) 4px;font-size:13px;white-space:nowrap}.rail .tabs button{padding:0 var(--s3) 4px}.segmented{display:flex;flex-wrap:wrap;gap:var(--s2)}.segmented button{flex:1 1 auto}.menu{justify-content:center;gap:var(--s5)}.wordmark{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(44px,7vw,72px);line-height:.95;letter-spacing:.01em;color:#fff;text-shadow:0 4px 0 var(--blue-lo),0 7px 0 rgba(13,52,92,.35)}.wordmark i{display:block;width:96px;height:12px;margin-top:var(--s3);border:solid transparent;border-width:4px 4px 6px;border-image:var(--spr-yellow) 8 8 12 8 fill / 4px 4px 6px 4px}.tagline{margin:var(--s2) 0 0;color:var(--text);font-size:15px;font-weight:600}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}.nav-item{width:100%;min-height:72px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s4);align-items:center;padding:0 var(--s4) 4px var(--s5);text-align:left;text-transform:none;letter-spacing:0}.nav-item b{display:block;font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.02em}.nav-item small{display:block;margin-top:2px;font-family:var(--body);font-size:13px;color:var(--ink-2)}.nav-item .ico{width:26px;height:26px;transition:transform var(--base) var(--ease-out)}.nav-item:hover:not(:disabled),.nav-item:focus-visible{--b: var(--spr-blue);--b-hover: var(--spr-blue-hover);--b-down: var(--spr-blue-down);color:#fff;text-shadow:0 2px 0 rgba(20,101,135,.6);outline:none}.nav-item:hover:not(:disabled) small,.nav-item:focus-visible small{color:#ffffffeb}.nav-item:hover:not(:disabled) .ico,.nav-item:focus-visible .ico{transform:translate(4px)}.nav-item:disabled small{color:var(--red-edge)}.driver-plate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s4);align-items:end;padding:var(--s2) var(--s3) var(--s3)}.driver-plate input{width:100%;margin-top:var(--s1);font-family:var(--display);font-size:18px}.driver-plate .lvl{text-align:right}.driver-plate .lvl b{font-family:var(--display);font-weight:400;font-size:26px;color:var(--ink)}.driver-plate .xpbar{grid-column:1 / -1}.scene-tag{position:absolute;right:clamp(16px,4vw,56px);bottom:clamp(16px,3.4vw,40px);display:flex;align-items:center;gap:var(--s3);padding:0 0 0 var(--s3);font-size:13px;color:var(--muted)}.scene-tag b{color:var(--text);font-weight:700}.scene-tag button.ghost{color:var(--blue-lo);text-shadow:none}@media (max-width: 760px){.scene-tag{display:none}}.code-big{width:100%;min-height:68px;font-family:var(--display);font-size:34px;letter-spacing:.4em;text-align:center;text-transform:uppercase;padding-left:.4em}.rooms{list-style:none;margin:0;padding:0}.rooms li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--s3);align-items:center;min-height:58px;padding:var(--s2) 0;font-size:14px}.rooms li+li{border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.rooms li.empty{display:block;min-height:0;color:var(--muted)}.rooms .room-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.rooms .room-meta{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}.rooms .count{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.room-code{font-family:var(--display);font-size:24px;letter-spacing:.22em;color:var(--accent)}.players{list-style:none;margin:0;padding:0}.players li{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;min-height:54px;padding:var(--s2) 0;font-size:14px}.players li+li{border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.players .pname{font-weight:700}.players .tags{font-size:12px;color:var(--muted)}.players .state{margin-left:auto;font-family:var(--chrome);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.players li.ready .state{color:var(--green-lo)}.players .ping{min-width:4.5em;text-align:right;font-variant-numeric:tabular-nums}.players .dot{width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--grey-edge)}.swatches{display:flex;gap:var(--s2);flex-wrap:wrap}.swatch{width:38px;min-height:0;height:38px;padding:0;border-radius:50%;box-shadow:inset 0 0 0 2px #00000040,inset 0 -4px #0003}.swatch:before{display:none}.swatch:hover:not(:disabled){transform:scale(1.08)}.swatch:active:not(:disabled){transform:scale(.96)}.swatch[aria-checked=true]{box-shadow:inset 0 0 0 2px #00000040,inset 0 -4px #0003,0 0 0 3px #fff,0 0 0 6px var(--blue)}.checks{display:flex;gap:var(--s3) var(--s5);flex-wrap:wrap;font-size:14px;font-weight:600}.checks label{display:flex;gap:var(--s2);align-items:center;cursor:pointer}.garage{padding-bottom:var(--s5)}body.live .screen.garage{background:linear-gradient(180deg,#145aa066,#145aa000 30%)}.garage-grid{display:grid;grid-template-columns:300px minmax(0,1fr) minmax(360px,440px);gap:var(--s5);align-items:start;flex:1 1 auto;min-height:0}.garage-grid>.stage{align-self:end;display:flex;flex-direction:column;gap:var(--s2);padding-bottom:var(--s2)}.stage .car-title{font-family:var(--display);font-size:clamp(30px,4vw,46px);line-height:1;text-shadow:var(--drop-big)}.stage .car-sub{align-self:flex-start;padding:var(--s1) var(--s3);border-radius:6px;background:#146587c7;box-shadow:inset 0 0 0 2px var(--blue-edge);color:#fff;font-size:14px;font-weight:600;text-shadow:none}@media (max-width: 1100px){.garage-grid{grid-template-columns:270px minmax(0,1fr)}.garage-grid>.stage{display:none}}@media (max-width: 720px){.garage-grid{grid-template-columns:1fr}}.profile-strip{display:flex;gap:var(--s5);align-items:center;flex-wrap:wrap;max-width:820px;padding:var(--s1) var(--s4) var(--s2)}.stat-block{display:flex;flex-direction:column;gap:var(--s1)}.stat-block.grow{flex:1 1 220px}.stat-block b{font-family:var(--display);font-weight:400;font-size:26px;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.xpbar,.statbar{height:12px;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 2px #b0b0ba;overflow:hidden}.xpbar>i,.statbar>i{display:block;height:100%;width:0;border-radius:6px;background:var(--yellow);box-shadow:inset 0 0 0 2px var(--yellow-edge),inset 0 -3px #b4800059;transition:width .7s var(--ease-out)}.statbar>i{background:var(--blue-hi);box-shadow:inset 0 0 0 2px var(--blue-edge)}.statbar>i.up{background:var(--green-hi);box-shadow:inset 0 0 0 2px var(--green-edge)}.car-list{list-style:none;margin:0;padding:2px 4px 2px 0;display:flex;flex-direction:column;gap:var(--s1);max-height:min(60vh,640px);overflow-y:auto;scrollbar-width:thin}.car-item{width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:var(--s3);padding:var(--s1) var(--s3) 8px;text-align:left;font-family:var(--body);text-transform:none;letter-spacing:0}.car-item .car-name{font-family:var(--display);font-weight:400;font-size:16px}.car-item .muted{grid-column:1;font-size:12px;color:var(--ink-2)}.car-item .car-tag{grid-column:2;grid-row:1 / span 2;align-self:center;font-family:var(--chrome);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.car-item.driving .car-tag{color:var(--green-lo)}.car-item.locked .car-name,.car-item.locked .muted{opacity:.55}.car-item.selected{--b: var(--spr-blue);--b-hover: var(--spr-blue-hover);--b-down: var(--spr-blue-down);color:#fff;text-shadow:0 2px 0 rgba(20,101,135,.6)}.car-item.selected .muted,.car-item.selected .car-tag{color:#ffffffeb}.stats{display:flex;flex-direction:column;gap:var(--s2)}.stat-row{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:var(--s3);align-items:center;font-size:13px;font-weight:600;color:var(--muted)}.spec-line{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);font-size:13px;color:var(--muted)}.spec-line b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.upgrades{list-style:none;margin:0;padding:0}.upgrades li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s3);padding:var(--s3) 0}.upgrades li+li{border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.upgrades .u-name{font-weight:700;font-size:14px;display:flex;align-items:center;gap:var(--s3)}.upgrades .u-text{grid-column:1;font-size:12px;color:var(--muted);line-height:1.45}.upgrades .u-text em{font-style:normal;color:var(--red-edge)}.upgrades .u-buy{grid-column:2;grid-row:1 / span 2;align-self:center}.pips{display:inline-flex;gap:2px}.pips i{width:16px;height:15px;background:url(../assets/ui/grey-star.png) center / contain no-repeat;opacity:.7}.pips i.on{background-image:url(../assets/ui/yellow-star.png);opacity:1}.paint-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--s2)}.paint-chip{min-height:80px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:var(--s1);padding:var(--s2) var(--s3) 10px;text-transform:capitalize;letter-spacing:.02em;font-family:var(--body);font-weight:700;font-size:13px}.paint-chip i{position:absolute;left:10px;right:10px;top:10px;height:30px;border-radius:4px;box-shadow:inset 0 0 0 2px #00000038,inset 0 -4px #0000002e}.event-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s2)}@media (max-width: 900px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.event-card{min-height:100px;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--s2);padding:var(--s3) var(--s4) 14px;text-align:left;text-transform:none;letter-spacing:0}.event-card b{font-family:var(--display);font-weight:400;font-size:17px}.event-card small{font-family:var(--body);font-size:12px;color:var(--ink-2);line-height:1.35}.event-card[aria-pressed=true] small{color:#ffffffeb}.solo-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s1) var(--s6)}.start-bar{position:sticky;bottom:calc(-1*clamp(16px,3.4vw,40px));margin-top:var(--s2);padding:var(--s3) 0 var(--s1);display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;background:var(--grey);border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.start-bar .grow{flex:1 1 260px;font-size:13px;color:var(--muted)}.start-bar .grow b{color:var(--text)}.settings-body{width:100%;max-width:900px;display:flex;flex-direction:column;gap:var(--s4)}.binds{width:100%;border-collapse:collapse;font-size:14px}.binds th{text-align:left;font-family:var(--chrome);font-weight:400;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:var(--s2) var(--s2) var(--s2) 0}.binds td{padding:var(--s1) var(--s2) var(--s1) 0;border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi);height:54px;font-weight:600}.bind{--b: url(../assets/ui/extra-button_rectangle_depth_line.png);--b-hover: url(../assets/ui/extra-button_rectangle_depth_line.png);min-width:116px;min-height:42px;gap:var(--s2);text-transform:none;letter-spacing:0;font-family:var(--body);font-weight:700;font-size:13px}.bind:hover:not(:disabled){filter:brightness(1.04)}.bind img{width:28px;height:28px;image-rendering:auto}.bind.empty{color:var(--ink-3)}.bind.capturing{--b: var(--spr-yellow);--b-hover: var(--spr-yellow-hover);color:var(--ink);animation:pulse .9s ease-in-out infinite}@keyframes pulse{50%{filter:brightness(1.12)}}.overlay-menu .settings-body{max-height:min(80vh,760px);overflow-y:auto}.settings-body>*{flex-shrink:0}.overlay-menu{justify-content:center;align-items:center;background:#0d345c80!important;animation:fade-in var(--base) var(--ease-out)}.overlay-menu>.panel{width:min(440px,100%);padding:var(--s4) var(--s5) var(--s5);gap:var(--s4);animation:pop-in var(--slow) var(--ease-out)}.overlay-menu>.panel.wide{width:min(900px,100%)}.overlay-menu h1{font-size:30px;color:var(--ink);text-shadow:0 2px 0 #fff}.overlay-menu .stack{display:flex;flex-direction:column;gap:var(--s2)}.overlay-menu .stack button{justify-content:flex-start;min-height:50px;padding-left:var(--s5)}.overlay-menu .stack button.primary{justify-content:center}.overlay-menu p{margin:0}.lap-list{margin:0;padding:0;list-style:none;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.lap-list li{display:flex;justify-content:space-between;padding:var(--s2) 0;border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.lap-list li span{color:var(--muted);font-weight:600}.lap-list li.best{color:var(--green-lo)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.loading{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--s6);padding:clamp(24px,6vw,96px);background:linear-gradient(180deg,var(--sky-top),var(--sky-low));color:#fff;text-shadow:var(--drop);animation:fade-in var(--base) var(--ease-out)}@media (max-width: 760px){.loading{grid-template-columns:1fr}.loading canvas{display:none}}.loading h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(32px,5vw,54px);line-height:1.02;text-shadow:var(--drop-big)}.loading .facts{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin:var(--s4) 0 var(--s6);font-size:14px;font-weight:600;color:var(--muted)}.loading .facts b{display:block;font-family:var(--display);font-weight:400;font-size:19px;color:#fff;letter-spacing:.02em}.steps{list-style:none;margin:0;padding:var(--s3) var(--s4) var(--s4);display:flex;flex-direction:column;gap:var(--s3);max-width:440px;--text: var(--ink);color:var(--ink-3);text-shadow:none;border:solid transparent;border-width:8px 8px 12px;border-image:var(--spr-grey) 8 8 12 8 fill / 8px 8px 12px 8px}.steps li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:var(--s3);align-items:center;font-size:14px;font-weight:600}.steps li:before{content:"";width:20px;height:20px;justify-self:center;background:url(../assets/ui/grey-check_round_color.png) center / contain no-repeat}.steps li.active{color:var(--ink)}.steps li.active:before{width:18px;height:18px;background:none;border:3px solid var(--blue);border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.steps li.done{color:var(--ink-2)}.steps li.done:before{background-image:url(../assets/ui/green-check_square_color_checkmark.png)}.steps li.failed{color:var(--red-edge)}.steps li.failed:before{background-image:url(../assets/ui/red-icon_cross.png);background-size:14px}.steps li .count{font-variant-numeric:tabular-nums;font-size:13px}.steps .bar{grid-column:2 / -1;height:10px;border-radius:5px;background:#fff;box-shadow:inset 0 0 0 2px #b0b0ba;overflow:hidden}.steps .bar>i{display:block;height:100%;width:0;border-radius:5px;background:var(--blue-hi);box-shadow:inset 0 0 0 2px var(--blue-edge);transition:width var(--fast) linear}.loading canvas{width:100%;max-width:520px;aspect-ratio:1;justify-self:center;filter:drop-shadow(0 4px 0 rgba(13,52,92,.35))}@keyframes spin{to{transform:rotate(360deg)}}.results{align-items:center}body.live .results,.results{background:#0d345c73}.results>.panel{width:min(820px,100%);padding:var(--s4) var(--s5) var(--s5);gap:var(--s4)}.result-hero{display:flex;align-items:baseline;gap:var(--s4);flex-wrap:wrap}.result-hero .place{font-family:var(--display);font-size:clamp(56px,9vw,88px);line-height:.9;color:var(--yellow);text-shadow:0 2px 0 var(--yellow-edge),0 5px 0 var(--yellow-lo)}.result-hero .place small{font-size:.4em;margin-left:2px}.result-hero .what{display:flex;flex-direction:column;gap:var(--s1)}.result-hero .what b{font-family:var(--display);font-weight:400;font-size:22px}.timing{width:100%;border-collapse:collapse;font-size:14px;font-weight:600}.timing th{text-align:left;font-family:var(--chrome);font-weight:400;color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:var(--s2)}.timing td{padding:0 var(--s2);height:42px;border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi)}.timing td.pos{width:3em;font-family:var(--display);font-weight:400;font-size:17px}.timing td.num,.timing th.num{text-align:right;font-variant-numeric:tabular-nums}.timing tr.me td{color:#fff;background:var(--blue);box-shadow:inset 0 2px 0 var(--blue-hi);border-top-color:var(--blue-edge)}.timing tbody tr{animation:row-in var(--slow) var(--ease-out) both}.timing tbody tr:nth-child(2){animation-delay:40ms}.timing tbody tr:nth-child(3){animation-delay:80ms}.timing tbody tr:nth-child(4){animation-delay:.12s}.timing tbody tr:nth-child(n+5){animation-delay:.16s}@keyframes row-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.series{margin-top:var(--s2);display:flex;flex-direction:column;gap:var(--s2)}.reward{border-top:2px solid var(--grey-edge);box-shadow:inset 0 2px 0 var(--grey-hi);padding-top:var(--s4);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4) var(--s6);animation:pop-in var(--slow) var(--ease-out)}@media (max-width: 640px){.reward{grid-template-columns:1fr}}.reward ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;font-size:14px}.reward li{display:flex;justify-content:space-between;padding:var(--s1) 0;color:var(--muted);font-weight:600}.reward li b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.reward .totals{display:flex;flex-direction:column;gap:var(--s3)}.reward .big-num{font-family:var(--display);font-weight:400;font-size:32px;color:var(--blue);text-shadow:0 2px 0 var(--blue-lo);font-variant-numeric:tabular-nums;line-height:1}.reward .big-num small{font-family:var(--body);font-weight:700;font-size:13px;color:var(--muted);text-shadow:none;letter-spacing:.06em;margin-left:var(--s2)}.unlock{grid-column:1 / -1;display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4) var(--s3);color:var(--ink);border:solid transparent;border-width:8px 8px 12px;border-image:var(--spr-yellow) 8 8 12 8 fill / 8px 8px 12px 8px;animation:pop-in .4s var(--ease-out) .3s both}.unlock .ico{width:30px;height:28px}.unlock b{font-family:var(--display);font-weight:400;font-size:18px}.banner{position:absolute;top:var(--s3);left:50%;transform:translate(-50%);padding:var(--s1) var(--s4) var(--s2);color:#fff;font-family:var(--chrome);font-size:14px;letter-spacing:.04em;text-shadow:0 2px 0 rgba(135,16,35,.5);border:solid transparent;border-width:8px 8px 12px;border-image:var(--spr-red) 8 8 12 8 fill / 8px 8px 12px 8px;z-index:10;animation:toast-in var(--base) var(--ease-out)}.hud{position:absolute;inset:0;pointer-events:none!important;font-family:var(--chrome);color:#fff}.hud .tower{position:absolute;left:var(--s5);top:var(--s5);display:flex;flex-direction:column;gap:var(--s1)}.hud .plate{display:flex;align-items:baseline;gap:var(--s3);padding:0 var(--s3) var(--s1) var(--s2)}.hud .plate .k{font-size:12px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;min-width:2.6em}.hud .plate .v{font-family:var(--display);font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--blue);text-shadow:0 2px 0 var(--blue-lo)}.hud .plate .v small{font-size:.55em;color:var(--muted);text-shadow:none;margin-left:2px}.hud .plate.sub .v{font-size:20px;color:var(--ink);text-shadow:none}.hud .timing-box{position:absolute;right:var(--s5);top:var(--s5);display:grid;grid-template-columns:auto auto;gap:2px var(--s4);align-items:baseline;padding:var(--s1) var(--s3) var(--s2);font-variant-numeric:tabular-nums;text-align:right}.hud .timing-box .k{font-size:12px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;text-align:left}.hud .timing-box .v{font-family:var(--display);font-size:16px;letter-spacing:.02em}.hud .timing-box .v.main{font-size:24px;color:var(--blue);text-shadow:0 2px 0 var(--blue-lo)}.hud .timing-box .delta{grid-column:1 / -1;justify-self:end;margin-top:var(--s1);padding:0 var(--s2) 2px;font-family:var(--display);font-size:16px;color:#fff;border:solid transparent;border-width:4px 4px 6px}.hud .delta.good{border-image:var(--spr-green) 8 8 12 8 fill / 4px 4px 6px 4px;text-shadow:0 1px 0 var(--green-lo)}.hud .delta.bad{border-image:var(--spr-red) 8 8 12 8 fill / 4px 4px 6px 4px;text-shadow:0 1px 0 var(--red-lo)}.hud .cluster{position:absolute;right:var(--s5);bottom:var(--s5);display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:end;column-gap:var(--s3)}.hud .gear{grid-row:1;align-self:center;display:grid;place-items:center;width:64px;height:64px;padding-bottom:4px;font-family:var(--display);font-size:32px;color:#fff;text-shadow:0 2px 0 var(--blue-lo);background:url(../assets/ui/blue-button_square_depth_flat.png) center / 64px 64px no-repeat}.hud .gear.shift{background-image:url(../assets/ui/yellow-button_square_depth_flat.png);color:var(--ink);text-shadow:0 2px 0 var(--yellow-hi)}.hud .speed{grid-row:1;font-family:var(--display);font-size:76px;line-height:.9;font-variant-numeric:tabular-nums;text-align:right;min-width:3ch;color:#fff;text-shadow:0 4px 0 var(--blue-lo),0 6px 4px rgba(13,52,92,.35)}.hud .unit{grid-column:2;justify-self:end;margin-top:var(--s1);font-size:13px;letter-spacing:.06em;color:#fff;text-transform:uppercase;text-shadow:var(--drop)}.hud .rpm{grid-column:1 / -1;display:grid;grid-template-columns:repeat(24,1fr);gap:3px;width:260px;height:14px;margin-top:var(--s2);padding:3px;justify-self:end;border-radius:7px;background:#fff;box-shadow:inset 0 0 0 2px #b0b0ba,0 3px #0d345c59}.hud .rpm i{border-radius:2px;background:var(--grey)}.hud .rpm i.on{background:var(--blue-hi)}.hud .rpm i.band{background:#fbeab2}.hud .rpm i.band.on{background:var(--yellow)}.hud .rpm i.red{background:#f9c4cc}.hud .rpm i.red.on{background:var(--red)}.hud .minimap{position:absolute;left:var(--s5);bottom:calc(var(--s5) + 5px);width:184px;height:184px;border-radius:50%;background:var(--grey);box-shadow:inset 0 0 0 2px var(--grey-edge),inset 0 0 0 4px var(--grey-hi),0 5px 0 var(--grey-lo)}.hud .center{position:absolute;left:50%;top:24%;transform:translate(-50%);text-align:center}.hud .count{font-family:var(--display);font-size:128px;line-height:1;color:#fff;text-shadow:0 6px 0 var(--blue-lo),0 10px 8px rgba(13,52,92,.35);animation:count-in .9s var(--ease-out) both}.hud .count.go{color:var(--yellow);text-shadow:0 6px 0 var(--yellow-lo),0 10px 8px rgba(13,52,92,.35)}@keyframes count-in{0%{opacity:0;transform:scale(1.5)}20%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(.92)}}.hud .warn{padding:var(--s1) var(--s5) var(--s2);color:#fff;font-family:var(--display);font-size:26px;text-shadow:0 2px 0 var(--red-lo);border:solid transparent;border-width:8px 8px 12px;border-image:var(--spr-red) 8 8 12 8 fill / 8px 8px 12px 8px;animation:pop-in var(--base) var(--ease-out)}.hud .warn.small{font-family:var(--chrome);font-size:16px;letter-spacing:.04em}.hud .chain{position:absolute;left:50%;top:13%;transform:translate(-50%);font-family:var(--display);font-size:36px;color:var(--yellow);text-shadow:0 3px 0 var(--yellow-lo),0 5px 4px rgba(13,52,92,.35)}.hud .spec{position:absolute;left:50%;bottom:var(--s5);transform:translate(-50%);padding:var(--s1) var(--s4) var(--s2);font-size:14px;letter-spacing:.04em;white-space:nowrap}@media (max-width: 640px){.hud .minimap{width:120px;height:120px}.hud .speed{font-size:54px}.hud .rpm{width:180px}.hud .tower,.hud .timing-box{top:var(--s3)}}.toasts{position:absolute;left:50%;top:var(--s5);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--s2);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--s3);padding:0 var(--s4) var(--s1);font-family:var(--chrome);font-size:15px;letter-spacing:.03em;white-space:nowrap;animation:toast-in var(--base) var(--ease-out)}.toast.accent{border-image-source:var(--spr-yellow);--text: var(--ink);--muted: var(--ink)}.toast.accent b{color:var(--ink)}.toast.good{border-image-source:var(--spr-green);color:#fff;text-shadow:0 2px 0 var(--green-lo)}.toast.bad{border-image-source:var(--spr-red);color:#fff;text-shadow:0 2px 0 var(--red-lo)}.toast b{font-family:var(--display);font-weight:400;font-size:17px}.toast.out{animation:toast-out var(--base) var(--ease-in) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(-6px)}}.standings{position:absolute;left:var(--s5);top:150px;pointer-events:none!important;font-family:var(--chrome);font-size:13px}.standings ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.standings li{display:grid;grid-template-columns:1.8em 9em 5em;gap:var(--s2);align-items:center;height:30px;padding:0 var(--s1) 2px;border-width:4px 4px 6px;border-image-width:4px 4px 6px 4px;transition:transform var(--base) var(--ease-out)}.standings li b{font-family:var(--display);font-weight:400;text-align:center}.standings li.me{border-image-source:var(--spr-yellow)}.standings em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.standings li.me em{color:inherit}.standings.tall{top:214px}.standings li.out{opacity:.5}.standings span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.standings{display:none}}.netdebug{position:absolute;right:var(--s3);top:200px;margin:0;padding:var(--s2) var(--s3);background:#000000bf;border-radius:4px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:#cfe;pointer-events:none!important;white-space:pre}.replay{position:absolute;inset:0;pointer-events:none!important}.replay>*{pointer-events:auto}.replay-tag{position:absolute;left:var(--s5);top:var(--s5);display:flex;align-items:center;gap:var(--s2);padding:0 var(--s3) var(--s1);color:#fff;font-family:var(--chrome);font-size:14px;letter-spacing:.06em;text-shadow:0 2px 0 var(--red-lo);border:solid transparent;border-width:8px 8px 12px;border-image:var(--spr-red) 8 8 12 8 fill / 8px 8px 12px 8px;pointer-events:none}.replay-tag:before{content:"";width:10px;height:10px;border-radius:50%;background:#fff;animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:0}}.replay-bar{position:absolute;left:50%;bottom:var(--s4);transform:translate(-50%);width:min(920px,calc(100% - 32px));padding:var(--s2) var(--s3) var(--s2);display:flex;flex-direction:column;gap:var(--s2);font-size:13px;font-weight:600}.replay-bar input[type=range]{flex:1 1 200px}.replay-time{min-width:10.5em;font-variant-numeric:tabular-nums}.replay-car{min-width:6em;text-align:center;font-weight:700}
