:root{--bg:#07090d;--fg:#eef1f7;--muted:#6f7890;--line:#1a1f2a;--yamaha:#1f4fe0;--yamaha-light:#5a80ff;--gold:#d9a441;--bike-w:clamp(76px, 16vw, 190px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Space Grotesk,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(ellipse 70% 45% at 50% 100%, #1f4fe024, transparent 70%), var(--bg);place-items:center;min-height:100svh;margin:0;display:grid;overflow-x:hidden}.app{gap:clamp(32px,7vh,72px);width:min(1100px,100% - 32px);padding-block:48px;display:grid}.eyebrow{text-align:center;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.8rem}.eyebrow strong{color:var(--fg);font-weight:700}.countdown{grid-template-columns:repeat(4,1fr);margin-top:calc(-1*clamp(8px,3vh,40px));display:grid}.unit{justify-items:center;gap:6px;display:grid}.unit+.unit{border-left:1px solid var(--line)}.value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,9vw,6.5rem);font-weight:500;line-height:1}.label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:clamp(.65rem,1.6vw,.8rem)}.finish-msg{text-align:center;margin:0;font-size:clamp(1.6rem,5vw,2.6rem);font-weight:700;animation:.6s cubic-bezier(.34,1.56,.64,1) pop}.lane{--p:0;--park:0;--road-len:calc(100% - 2 * var(--bike-w));height:calc(var(--bike-w) * .6 + 8px);position:relative}.road,.road-fill{border-radius:3px;height:3px;position:absolute;bottom:0}.road{left:var(--bike-w);right:var(--bike-w);background:repeating-linear-gradient(90deg, var(--line) 0 14px, transparent 14px 24px)}.road-fill{left:var(--bike-w);width:calc(var(--p) * var(--road-len));background:linear-gradient(90deg, #1f4fe026, var(--yamaha-light));box-shadow:0 0 14px #5a80ff8c}.start-line,.finish-line{width:2px;height:36%;position:absolute;bottom:0}.start-line{left:var(--bike-w);background:var(--muted);opacity:.5}.finish-line{right:var(--bike-w);background:repeating-conic-gradient(var(--fg) 0 25%, transparent 0 50%) 0 0 / 6px 6px;width:6px}.finish-flag{bottom:0;left:calc(100% - var(--bike-w));width:calc(var(--bike-w) * .3);position:absolute;transform:translate(-7.5%)}.flag{width:100%;display:block}.flag .pole{stroke:var(--muted);stroke-width:2px}.flag .cloth rect{fill:var(--fg)}.flag .cloth .cloth-outline{fill:none;stroke:var(--fg);stroke-width:1px}.flag .cloth{transform-origin:4px 15px;animation:2.4s ease-in-out infinite wave}.rider-wrap{z-index:1;bottom:3px;left:calc(var(--p) * var(--road-len) + var(--park) * var(--bike-w));width:var(--bike-w);position:absolute}.intro .rider-wrap,.intro .road-fill{transition:left var(--intro-ms) cubic-bezier(.45, 0, .2, 1), width var(--intro-ms) cubic-bezier(.45, 0, .2, 1)}.live .rider-wrap,.live .road-fill{transition:left 1s linear,width 1s linear}.crossing .rider-wrap{transition:left var(--cross-ms) cubic-bezier(.2, .7, .3, 1)}.bike{filter:drop-shadow(0 6px 14px #1f4fe040);width:100%;display:block;overflow:visible}.bike .tyre{fill:#0d1016;stroke:#2b3140;stroke-width:1.5px}.bike .rim{fill:none;stroke:var(--yamaha);stroke-width:2.5px}.bike .disc{fill:none;stroke:#8a93a6;stroke-width:1.5px}.bike .spokes line{stroke:#c9d2e3;stroke-width:2.5px;stroke-linecap:round}.bike .hub{fill:#8a93a6}.bike .spokes{transform-box:fill-box;transform-origin:50%;animation:.45s linear infinite spin}.bike .frame{fill:#2a303d}.bike .fork{stroke:var(--gold);stroke-width:5px;stroke-linecap:round}.bike .fender{fill:none;stroke:var(--yamaha);stroke-width:4px;stroke-linecap:round}.bike .body{animation:.22s ease-in-out infinite alternate rumble}.bike .engine{fill:#1c212c}.bike .exhaust{fill:#3b4252}.bike .paint{fill:var(--yamaha)}.bike .taillight{fill:#ff3b4e}.bike .decal{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round}.bike .brand{fill:#fff;letter-spacing:.02em;font-size:8.5px;font-style:italic;font-weight:700}.bike .headlight{fill:#d6f0ff;filter:drop-shadow(0 0 3px #9fd8ff)}.bike .screen{fill:#0f1524;stroke:#394258;stroke-width:1px}.bike .limb{fill:none;stroke:#2a3140;stroke-linecap:round;stroke-linejoin:round}.bike .helmet{fill:#f2f4f8}.bike .helmet-stripe{fill:none;stroke:var(--yamaha);stroke-width:3px;stroke-linecap:round}.bike .visor{fill:#11151f}.speed-line{background:linear-gradient(90deg,#0000,#5a80ffb3);border-radius:2px;width:38%;height:2px;animation:.7s linear infinite whoosh;position:absolute;left:-8%}.speed-line:first-child{top:30%}.speed-line:nth-child(2){width:26%;animation-delay:.25s;top:52%}.speed-line:nth-child(3){animation-delay:.45s;top:72%}.legend{padding-left:var(--bike-w);padding-right:var(--bike-w);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin-top:14px;font-size:clamp(.7rem,1.6vw,.85rem);display:flex}.legend>:first-child{transform:translate(-2px)}.pct{color:var(--fg)}.is-finished .speed-line{display:none}.is-finished .spokes,.is-finished .body{animation:none}.confetti{pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{top:-12px;left:var(--x);width:8px;height:12px;animation:fall var(--t) cubic-bezier(.25, .6, .5, 1) var(--d) forwards;border-radius:2px;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rumble{0%{transform:translateY(0)}to{transform:translateY(-.8px)}}@keyframes whoosh{0%{opacity:0;transform:translate(40%)}30%{opacity:1}to{opacity:0;transform:translate(-60%)}}@keyframes wave{0%,to{transform:skewY(0)scaleX(1)}50%{transform:skewY(-6deg)scaleX(.94)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}}@keyframes fall{to{transform:translate(var(--drift), 105vh) rotate(var(--r))}}@media (width<=600px){.legend{white-space:nowrap;grid-template-columns:1fr 1fr;row-gap:6px;padding-left:0;padding-right:0;display:grid}.legend .pct{text-align:center;grid-area:1/1/auto/-1}.legend>:last-child{text-align:right}.legend>:first-child{transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.speed-line{display:none}}
