.race-game,.race-forms,.badge-art{--car-red:#dc2626;--car-orange:#ea580c;--car-yellow:#ca8a04;--car-lime:#65a30d;--car-green:#15803d;--car-teal:#0d9488;--car-sky:#0284c7;--car-blue:#2b45d6;--car-violet:#7c3aed;--car-pink:#db2777;--car-glass:#ffffffb8;--road:var(--grid);--road-line:color-mix(in srgb, var(--ink-3) 38%, transparent)}.race-game{gap:14px;display:grid}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .race-game,:root:not([data-theme=light]) .race-forms,:root:not([data-theme=light]) .badge-art{--car-red:#f87171;--car-orange:#fb923c;--car-yellow:#facc15;--car-lime:#a3e635;--car-green:#4ade80;--car-teal:#2dd4bf;--car-sky:#38bdf8;--car-blue:#8e9eff;--car-violet:#c084fc;--car-pink:#f472b6;--car-glass:#0d10188c}}:root[data-theme=dark] .race-game,:root[data-theme=dark] .race-forms,:root[data-theme=dark] .badge-art{--car-red:#f87171;--car-orange:#fb923c;--car-yellow:#facc15;--car-lime:#a3e635;--car-green:#4ade80;--car-teal:#2dd4bf;--car-sky:#38bdf8;--car-blue:#8e9eff;--car-violet:#c084fc;--car-pink:#f472b6;--car-glass:#0d10188c}:is(.race-game,.race-forms,.badge-art) [data-c=red]{--car:var(--car-red)}:is(.race-game,.race-forms,.badge-art) [data-c=orange]{--car:var(--car-orange)}:is(.race-game,.race-forms,.badge-art) [data-c=yellow]{--car:var(--car-yellow)}:is(.race-game,.race-forms,.badge-art) [data-c=lime]{--car:var(--car-lime)}:is(.race-game,.race-forms,.badge-art) [data-c=green]{--car:var(--car-green)}:is(.race-game,.race-forms,.badge-art) [data-c=teal]{--car:var(--car-teal)}:is(.race-game,.race-forms,.badge-art) [data-c=sky]{--car:var(--car-sky)}:is(.race-game,.race-forms,.badge-art) [data-c=blue]{--car:var(--car-blue)}:is(.race-game,.race-forms,.badge-art) [data-c=violet]{--car:var(--car-violet)}:is(.race-game,.race-forms,.badge-art) [data-c=pink]{--car:var(--car-pink)}.race-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;min-height:2.25rem;display:flex}.race-status{color:var(--ink-2);font-weight:600}.race-game[data-phase=race] .race-status,.race-game[data-phase=done] .race-status{color:var(--ink)}.race-wait{color:var(--ink-3);margin-top:-4px;font-size:.9rem}.track{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px 14px;position:relative;overflow:hidden}.lanes{margin:0;padding:0;list-style:none}.lane{border-top:1px dashed var(--line);grid-template-columns:minmax(7rem,11rem) minmax(0,1fr) 6.75rem;align-items:center;gap:12px;padding:6px 0;animation:.35s ease-out lane-in;display:grid}.lane:first-child{border-top:0}@keyframes lane-in{0%{opacity:0;transform:translate(-10px)}}.lane-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);font-size:.88rem;font-weight:600;overflow:hidden}.lane[data-you] .lane-name{color:var(--ink)}.lane-you{color:var(--accent);font-weight:700}.race-badge{vertical-align:middle;margin:-4px 0 -3px 5px;display:inline-flex}.lane-road{background:var(--road);border-radius:8px;height:36px;position:relative;overflow:hidden}.lane[data-you] .lane-road{background:color-mix(in srgb, var(--accent) 13%, var(--road))}.lane-road:before{content:"";border-top:2px dashed var(--road-line);margin-top:-1px;position:absolute;top:50%;left:10px;right:20px}.lane-road:after{content:"";background:repeating-conic-gradient(var(--ink) 0 25%, var(--surface) 0 50%) 0 0 / 6px 6px;opacity:.75;width:12px;position:absolute;top:0;bottom:0;right:0}.racer-slot{z-index:1;width:calc(100% - 50px);height:34px;transform:translateX(calc(var(--p,0) * 100%));margin-top:-17px;transition:transform .25s linear;position:absolute;top:50%;left:2px}.lane[data-out] .racer{opacity:.35;filter:grayscale(.8)}.lane-end{font:500 .84rem/1.2 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.lane[data-done] .lane-end{color:var(--ink);font-weight:700}.lane[data-out] .lane-end{color:var(--ink-3)}.racer{--rider:var(--ink);--rider-b:color-mix(in srgb, var(--ink) 42%, var(--road));--flame:#f97316;--flame-in:#fde047;--cyc:1s;--bob:-.6px;transform-origin:50% 100%;width:46px;height:34px;animation:.42s ease-out racer-pop;display:block;overflow:visible}.racer g{transform-box:view-box}.rf-skin,.rf-dark{fill:var(--rider)}.rf-body{fill:var(--car,var(--ink-3))}.rf-glass{fill:var(--car-glass)}.rf-flame{fill:var(--flame)}.rf-flame-in{fill:var(--flame-in)}.rf-puff{fill:var(--ink-3);opacity:0}.rs-limb,.rs-limb-b,.rs-shirt,.rs-dark,.rs-frame,.rs-spoke,.rs-line{fill:none}.rs-limb,.rs-dark{stroke:var(--rider)}.rs-limb-b,.rs-spoke{stroke:var(--rider-b)}.rs-shirt,.rs-frame{stroke:var(--car,var(--ink-3))}.rs-line{stroke:var(--ink-3);opacity:0}.r-poof circle{fill:var(--ink-3);opacity:0;transform-box:fill-box;transform-origin:50%;animation:.5s ease-out r-poof}@keyframes racer-pop{0%{transform:scale(.6)}60%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes r-poof{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(1.7)}}.racer[data-form=tiptoe]{--cyc:1.3s;--bob:-.8px}.racer[data-form=jog]{--cyc:.66s;--bob:-1px}.racer[data-form=run]{--cyc:.46s;--bob:-1.4px}.racer[data-form=skate]{--cyc:.9s;--bob:-.7px}.racer[data-form=bike]{--cyc:.6s}.racer[data-form=moto]{--cyc:.18s}.racer .a-b{--delay:calc(var(--cyc) / -2)}.racer[data-moving] .a-bob{animation:r-bob var(--cyc) linear infinite}.racer[data-form=tiptoe][data-moving] .a-thigh{animation:tiptoe-thigh var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-form=tiptoe][data-moving] .a-shin{animation:tiptoe-shin var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-form=tiptoe][data-moving] .a-arm{animation:tiptoe-arm var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-form=walk][data-moving] .a-thigh{animation:walk-thigh var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-form=walk][data-moving] .a-shin{animation:walk-shin var(--cyc) linear var(--delay,0s) infinite}.racer[data-form=walk][data-moving] .a-arm{animation:walk-arm var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-form=jog][data-moving] .a-thigh{animation:jog-thigh var(--cyc) linear var(--delay,0s) infinite}.racer[data-form=jog][data-moving] .a-shin{animation:jog-shin var(--cyc) linear var(--delay,0s) infinite}.racer[data-form=jog][data-moving] .a-arm{animation:jog-arm var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-form=run][data-moving] .a-thigh{animation:run-thigh var(--cyc) linear var(--delay,0s) infinite}.racer[data-form=run][data-moving] .a-shin{animation:run-shin var(--cyc) linear var(--delay,0s) infinite}.racer[data-form=run][data-moving] .a-arm{animation:run-arm var(--cyc) ease-in-out var(--delay,0s) infinite}.racer[data-moving] .a-lines path{animation:.5s linear infinite r-lines}.racer[data-moving] .a-lines path:nth-child(2){animation-delay:-.17s}.racer[data-moving] .a-lines path:nth-child(3){animation-delay:-.33s}.racer[data-moving] .a-cruise{transform-origin:30px 31px;animation:1.8s ease-in-out infinite r-cruise}.racer[data-form=bike][data-moving] .a-thigh-f{animation:bike-thigh-f var(--cyc) linear infinite}.racer[data-form=bike][data-moving] .a-shin-f{animation:bike-shin-f var(--cyc) linear infinite}.racer[data-form=bike][data-moving] .a-thigh-b{animation:bike-thigh-b var(--cyc) linear infinite}.racer[data-form=bike][data-moving] .a-shin-b{animation:bike-shin-b var(--cyc) linear infinite}.racer[data-form=bike][data-moving] .a-crank{animation:r-turn var(--cyc) linear infinite}.racer[data-form=bike][data-moving] .a-spin{animation:.5s linear infinite r-turn}.racer[data-form=moto][data-moving] .a-spin{animation:.2s linear infinite r-turn}.racer[data-form=car][data-moving] .a-spin{animation:.16s linear infinite r-turn}.racer[data-moving] .a-shake{animation:.12s linear infinite r-shake}.racer[data-moving] .a-puffs circle{transform-box:fill-box;transform-origin:50%;animation:.7s ease-out infinite r-puff}.racer[data-moving] .a-puffs circle:nth-child(2){animation-delay:-.35s}.racer .a-flame{opacity:0;transition:opacity .2s}.racer[data-moving] .a-flame{opacity:1;animation:.12s ease-in-out infinite alternate r-flame}@keyframes r-bob{0%,50%,to{transform:translateY(0)}25%,75%{transform:translateY(var(--bob))}}@keyframes r-turn{to{transform:rotate(360deg)}}@keyframes r-lines{0%{opacity:0;transform:translate(3px)}30%{opacity:.85}to{opacity:0;transform:translate(-5px)}}@keyframes r-cruise{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}@keyframes r-shake{0%,to{transform:translateY(0)}50%{transform:translateY(-.4px)}}@keyframes r-puff{0%{opacity:.55;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(-7px,-1.5px)scale(1.9)}}@keyframes r-flame{0%{transform:scaleX(.72)}to{transform:scaleX(1.15)}}@keyframes tiptoe-thigh{0%,to{transform:rotate(-55deg)}10%{transform:rotate(-24deg)}62%{transform:rotate(18deg)}80%{transform:rotate(4deg)}}@keyframes tiptoe-shin{0%,to{transform:rotate(62deg)}10%{transform:rotate(6deg)}62%{transform:rotate(16deg)}80%{transform:rotate(64deg)}}@keyframes tiptoe-arm{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes walk-thigh{0%,to{transform:rotate(-20deg)}50%{transform:rotate(20deg)}}@keyframes walk-shin{0%{transform:rotate(3deg)}25%{transform:rotate(8deg)}50%{transform:rotate(12deg)}65%{transform:rotate(32deg)}82%{transform:rotate(24deg)}to{transform:rotate(3deg)}}@keyframes walk-arm{0%,to{transform:rotate(16deg)}50%{transform:rotate(-16deg)}}@keyframes jog-thigh{0%{transform:rotate(-26deg)}15%{transform:rotate(-10deg)}40%{transform:rotate(26deg)}60%{transform:rotate(12deg)}80%{transform:rotate(-22deg)}to{transform:rotate(-26deg)}}@keyframes jog-shin{0%{transform:rotate(12deg)}15%{transform:rotate(22deg)}40%{transform:rotate(18deg)}60%{transform:rotate(70deg)}80%{transform:rotate(55deg)}to{transform:rotate(12deg)}}@keyframes jog-arm{0%,to{transform:rotate(24deg)}50%{transform:rotate(-24deg)}}@keyframes run-thigh{0%{transform:rotate(-30deg)}14%{transform:rotate(-8deg)}34%{transform:rotate(32deg)}52%{transform:rotate(18deg)}72%{transform:rotate(-26deg)}88%{transform:rotate(-40deg)}to{transform:rotate(-30deg)}}@keyframes run-shin{0%{transform:rotate(14deg)}14%{transform:rotate(30deg)}34%{transform:rotate(12deg)}52%{transform:rotate(96deg)}72%{transform:rotate(108deg)}88%{transform:rotate(40deg)}to{transform:rotate(14deg)}}@keyframes run-arm{0%,to{transform:rotate(36deg)}50%{transform:rotate(-36deg)}}@keyframes bike-thigh-f{0%{transform:rotate(0)}8.33%{transform:rotate(16.27deg)}16.67%{transform:rotate(34.95deg)}25%{transform:rotate(40.97deg)}33.33%{transform:rotate(33.89deg)}41.67%{transform:rotate(26.51deg)}50%{transform:rotate(17.63deg)}58.33%{transform:rotate(6.51deg)}66.67%{transform:rotate(-6.28deg)}75%{transform:rotate(-16.61deg)}83.33%{transform:rotate(-18.99deg)}91.67%{transform:rotate(-12.6deg)}to{transform:rotate(0)}}@keyframes bike-shin-f{0%{transform:rotate(0)}8.33%{transform:rotate(-23.28deg)}16.67%{transform:rotate(-48.71deg)}25%{transform:rotate(-48.37deg)}33.33%{transform:rotate(-23deg)}41.67%{transform:rotate(.26deg)}50%{transform:rotate(21.28deg)}58.33%{transform:rotate(38.27deg)}66.67%{transform:rotate(48.23deg)}75%{transform:rotate(48.17deg)}83.33%{transform:rotate(38.11deg)}91.67%{transform:rotate(21.05deg)}to{transform:rotate(0)}}@keyframes bike-thigh-b{0%{transform:rotate(0)}8.33%{transform:rotate(-11.12deg)}16.67%{transform:rotate(-23.91deg)}25%{transform:rotate(-34.24deg)}33.33%{transform:rotate(-36.62deg)}41.67%{transform:rotate(-30.23deg)}50%{transform:rotate(-17.63deg)}58.33%{transform:rotate(-1.36deg)}66.67%{transform:rotate(17.32deg)}75%{transform:rotate(23.34deg)}83.33%{transform:rotate(16.26deg)}91.67%{transform:rotate(8.88deg)}to{transform:rotate(0)}}@keyframes bike-shin-b{0%{transform:rotate(0)}8.33%{transform:rotate(16.99deg)}16.67%{transform:rotate(26.95deg)}25%{transform:rotate(26.89deg)}33.33%{transform:rotate(16.83deg)}41.67%{transform:rotate(-.22deg)}50%{transform:rotate(-21.28deg)}58.33%{transform:rotate(-44.55deg)}66.67%{transform:rotate(-69.98deg)}75%{transform:rotate(-69.65deg)}83.33%{transform:rotate(-44.28deg)}91.67%{transform:rotate(-21.02deg)}to{transform:rotate(0)}}.track-count{z-index:2;pointer-events:none;background:color-mix(in srgb, var(--surface) 55%, transparent);font:800 clamp(3rem, 9vw, 5.25rem)/1 var(--font-display);color:var(--accent);place-items:center;margin:0;font-stretch:118%;animation:.9s ease-out count-pop;display:grid;position:absolute;inset:0}@keyframes count-pop{0%{opacity:0;transform:scale(1.35)}30%{opacity:1;transform:scale(1)}}.race-start{text-align:center;justify-items:center;gap:10px;padding:14px 8px 4px;display:grid}.race-go{border-radius:12px;padding:14px 22px;font-size:1.05rem}.race-start-note{max-width:46ch;color:var(--ink-2);font-size:.9rem}.race-stage{--type-size:calc(1.32rem * var(--type-scale,1));--lh:2em}.race-live{margin-bottom:8px}.race-live .race-progress{margin-left:auto}.race-clock{font-variant-numeric:tabular-nums}.race-clock[data-low]{color:var(--err);font-weight:700}.race-text{font-family:var(--font-mono);font-size:var(--type-size);position:relative}.race-stage:not([data-typing]) .race-text .l{color:var(--ink-3)}.race-stage:not([data-typing]) .race-text .l.ok{color:var(--ink)}.race-source{color:var(--ink-3);margin-top:12px;font-size:.84rem}.race-source cite{color:var(--ink-2);font-style:italic}.race-tap{color:var(--ink-3);margin-top:6px;font-size:.84rem}.race-tap.on-coarse{display:none}@media (hover:none) and (pointer:coarse){.race-tap.on-coarse{display:block}}.race-results{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.race-results h2{font:800 1.5rem/1.15 var(--font-display);letter-spacing:-.01em;font-stretch:118%}.race-results h2:focus{outline:none}.race-mine{color:var(--ink-2);flex-wrap:wrap;gap:8px 28px;margin-top:12px;font-size:.92rem;display:flex}.race-mine b{font:800 1.55rem/1 var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;margin-right:5px}.race-mine-note{color:var(--ink-2);margin-top:10px}.race-ends{color:var(--ink-2);margin-top:14px}.race-ends b{color:var(--ink);font-variant-numeric:tabular-nums}.race-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:.92rem}.race-table th,.race-table td{text-align:left;border:0;border-top:1px solid var(--line);font:400 .92rem/1.35 var(--font-body);letter-spacing:normal;text-transform:none;color:var(--ink-2);font-variant-numeric:tabular-nums;padding:8px 10px}.race-table thead th{font:700 .68rem/1.2 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border-top:0;font-stretch:115%}.race-table tbody th{color:var(--ink);white-space:normal;overflow-wrap:anywhere;font-weight:600}.race-table tr[data-you]{background:var(--accent-soft)}.race-dot{background:var(--car,var(--ink-3));vertical-align:.02em;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.race-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.race-form{background:var(--road);color:var(--ink-2);border-radius:12px;align-items:center;gap:12px;margin-top:14px;padding:8px 14px 8px 8px;display:flex}.race-form .racer{flex:none;width:54px;height:40px}.race-forms{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}@media (min-width:1180px){.race-forms{grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}}.race-forms li{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:12px;justify-items:center;gap:2px;padding:12px 6px 10px;display:grid}.race-forms .racer{width:60px;height:45px;margin-bottom:4px}.race-forms .racer *{animation-play-state:paused!important}.race-forms .r-poof{display:none}.race-forms li:hover .racer *{animation-play-state:running!important}.race-forms b{color:var(--ink);font-size:.9rem}.race-forms span{font:500 .78rem/1.2 var(--font-mono);color:var(--ink-3);white-space:nowrap}@media (min-width:1180px){.race-forms li{padding-inline:2px}.race-forms span{letter-spacing:-.02em;font-size:.72rem}}.race-options{flex-wrap:wrap;justify-content:flex-end;gap:6px 22px;display:flex}.race-guide .key-guide{margin-top:0}@media (max-width:640px){.track{padding:6px 10px}.lane{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name end""road road";gap:4px 10px;padding:7px 0}.lane-name{grid-area:name;font-size:.84rem}.lane-end{grid-area:end;font-size:.8rem}.lane-road{grid-area:road;height:32px}.racer-slot{width:calc(100% - 46px);height:31px;margin-top:-15.5px}.racer{width:42px;height:31px}.race-stage{--type-size:calc(1.1rem * var(--type-scale,1))}.race-results{padding:16px}.race-table th,.race-table td{padding:7px 6px}.race-options{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.racer-slot{transition:none}.lane,.track-count{animation:none}.racer,.racer *,.racer[data-moving] *{animation:none!important}.racer[data-moving] .a-flame{opacity:1}}.race-start-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.race-invite,.race-nope{max-width:54ch;color:var(--ink);font-weight:600}.race-join{color:var(--ink-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:2px;font-size:.9rem;display:flex}.race-join input{border:1px solid var(--line);background:var(--surface);width:10ch;color:var(--ink);font:600 .95rem/1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:8px;padding:6px 10px}.race-join input::placeholder{color:var(--ink-3);opacity:.6}.race-join input[aria-invalid]{border-color:var(--err)}.race-join-bad{text-align:center;color:var(--err);flex-basis:100%;font-size:.84rem}.race-party{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:12px;padding:18px 20px;display:grid}.race-party-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 14px;display:flex}.race-party h2{font:800 1.3rem/1.15 var(--font-display);letter-spacing:-.01em;font-stretch:118%}.race-code{font:700 1.35rem/1 var(--font-mono);letter-spacing:.16em;color:var(--accent);margin:0}.race-party-note{max-width:66ch;color:var(--ink-2)}.race-members{flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;list-style:none;display:flex}.race-members li{align-items:center;gap:6px;font-size:.92rem;display:inline-flex}.race-member-name{overflow-wrap:anywhere}.race-remove{padding:2px 8px;font-size:.78rem}.race-plain{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;font-size:.92rem;display:inline-flex}.race-guest label{color:var(--ink);font-weight:600}.race-join.race-guest input{width:min(16em,100%);font:500 .98rem/1.2 var(--font-body);letter-spacing:normal;text-transform:none}.race-guest-nudge{color:var(--ink-2);margin-top:12px;font-size:.9rem}.race-share{flex-wrap:wrap;gap:8px;display:flex}.race-link{border:1px solid var(--line);background:var(--road);min-width:0;color:var(--ink);font:500 .92rem/1.3 var(--font-mono);border-radius:10px;flex:16rem;padding:8px 12px}.race-party-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.race-party-wait{color:var(--ink-2);margin:0 6px 0 0;font-weight:600}@media (max-width:640px){.race-party{padding:14px 16px}.race-share .btn,.race-party-actions .btn{flex:auto}}.race-tips{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.race-tips li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.race-tips h3{font:700 1rem/1.35 var(--font-body)}.race-tips p{margin-top:6px;font-size:.92rem}
.badge-medal{--size:56px;width:var(--size);height:var(--size);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.badge-medal[data-size=xs]{--size:22px}.badge-medal[data-size=xs] .badge-tag{display:none}.badge-medal[data-size=sm]{--size:40px}.badge-medal[data-size=lg]{--size:76px}.badge-medal .medal{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.medal .m-back{fill:var(--m-mid);stroke:var(--m-lo);stroke-width:.8px;stroke-linejoin:round}.medal .m-back2{fill:var(--m-acc,var(--m-hi));stroke:var(--m-lo);stroke-width:.8px;stroke-linejoin:round}.medal .m-leaf{fill:var(--m-lo)}.medal .m-rim{fill:var(--m-mid);stroke:var(--m-lo);stroke-width:1.5px}.medal .m-face{fill:var(--m-hi);stroke:var(--m-lo);stroke-width:.8px;stroke-opacity:.5}.medal .m-shine{fill:none;stroke:#fff;stroke-width:2.2px;stroke-linecap:round;opacity:.8}.medal .m-spark{fill:var(--m-acc,#fff);stroke:var(--m-lo);stroke-width:.5px}.medal .m-sign{fill:none;stroke:var(--m-ink);stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round}.medal .m-sign .m-fill{fill:var(--m-ink);stroke:none}.badge-medal .badge-art{width:calc(var(--size) * .5);height:calc(var(--size) * .5);flex:none;display:block;position:relative}.badge-art .racer{width:100%;height:100%;animation:none;display:block}.badge-medal .badge-tag{background:var(--m-ink);color:var(--m-hi);box-shadow:0 0 0 1.5px var(--surface);font:800 max(8px, calc(var(--size) * .19))/1 var(--font-body,system-ui, sans-serif);letter-spacing:.01em;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:99px;padding:.2em .45em .16em;position:absolute;bottom:0;left:50%;transform:translate(-50%)}[data-tier=bronze]{--m-hi:#fbe2c6;--m-mid:#df9c61;--m-lo:#a2602b;--m-ink:#683410}[data-tier=silver]{--m-hi:#f6f8fb;--m-mid:#c5ced9;--m-lo:#828fa0;--m-ink:#3a4553}[data-tier=gold]{--m-hi:#fff2bd;--m-mid:#f6c53c;--m-lo:#bf850b;--m-ink:#694600}[data-tier=platinum]{--m-hi:#e8fbfb;--m-mid:#9fdde2;--m-lo:#3a9aaa;--m-ink:#0e4b57}[data-tier=diamond]{--m-hi:#f3eeff;--m-mid:#b8a1ff;--m-lo:#6a4ce0;--m-ink:#2c1a84;--m-acc:#77e0ff}.badge-medal[data-state=locked]{--m-hi:color-mix(in srgb, var(--ink-3) 7%, var(--surface));--m-mid:color-mix(in srgb, var(--ink-3) 22%, var(--surface));--m-lo:color-mix(in srgb, var(--ink-3) 45%, var(--surface));--m-ink:color-mix(in srgb, var(--ink-3) 70%, var(--surface));--m-acc:color-mix(in srgb, var(--ink-3) 12%, var(--surface))}.badge-medal[data-state=locked] .m-shine{display:none}.badge-medal[data-state=locked] .badge-art{filter:grayscale();opacity:.45}.badge-medal[data-state=next]{opacity:.62}@media (prefers-reduced-motion:no-preference){.badge-medal[data-fresh]{animation:.7s cubic-bezier(.2,.9,.3,1.35) both medal-pop;animation-delay:var(--delay,0s)}.badge-medal[data-fresh]:after{content:"";pointer-events:none;animation:1s ease-out both medal-glint;animation-delay:calc(var(--delay,0s) + .5s);background:linear-gradient(115deg,#0000 32%,#ffffffe6 48%,#0000 64%) 160% 0/260% 100% no-repeat;border-radius:50%;position:absolute;inset:16%}}@keyframes medal-pop{0%{opacity:0;transform:scale(.2)rotate(-25deg)}60%{opacity:1;transform:scale(1.14)rotate(5deg)}to{opacity:1;transform:none}}@keyframes medal-glint{0%{background-position:160% 0}to{background-position:-60% 0}}.tier-chip{vertical-align:1px;background:color-mix(in srgb, var(--m-mid) 38%, var(--surface));color:var(--ink);letter-spacing:.02em;white-space:nowrap;border-radius:99px;margin-left:2px;padding:1px 7px;font-size:.72rem;font-weight:700;display:inline-block}.tier-tally{color:var(--ink-2);flex-wrap:wrap;gap:6px 14px;margin:0 0 14px;padding:0;font-size:.88rem;list-style:none;display:flex}.tier-tally li{align-items:center;gap:6px;display:inline-flex}.tier-tally i{background:var(--m-mid);width:14px;height:14px;box-shadow:inset 0 0 0 1.5px var(--m-lo);border-radius:50%;display:block}.tier-tally b{color:var(--ink);font-variant-numeric:tabular-nums}.badge-news{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:10px;margin:12px 0 2px;padding:12px 14px;display:grid}.badge-news-item{align-items:center;gap:12px;font-size:.93rem;line-height:1.35;display:flex}.badge-news-item strong{color:var(--ink)}.badge-news-item>span{color:var(--ink-2)}.badge-news-item .badge-bar{max-width:220px}.badge-news-links{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:2px 0 0;font-size:.9rem;display:flex}.progress-body{gap:28px;margin-top:8px;display:grid}.progress-body>*{min-width:0}.progress-body[aria-busy=true]{min-height:60vh}.progress-body h2{margin:0 0 4px;font-size:1.25rem}.progress-body .sub{color:var(--ink-2);margin:0 0 12px;font-size:.93rem}.progress-summary{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0;display:grid}.progress-summary div{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px}.progress-summary dt{color:var(--ink-2);font-size:.82rem}.progress-summary dd{font:700 1.35rem/1.2 var(--font-display,inherit);color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 0}.progress-note{background:var(--accent-soft,var(--surface));color:var(--ink);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;padding:12px 14px;font-size:.93rem;display:flex}.best-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.best-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-content:start;gap:2px;padding:12px 14px;display:grid}.best-card .best-label{color:var(--ink-2);font-size:.85rem}.best-card .best-wpm{font:700 1.6rem/1.15 var(--font-display,inherit);color:var(--ink);font-variant-numeric:tabular-nums}.best-card .best-wpm small{font:600 .8rem/1 var(--font-body,inherit);color:var(--ink-2);margin-left:3px}.best-card .best-meta{color:var(--ink-2);font-size:.82rem}.best-card[data-empty] .best-wpm{color:var(--ink-3)}.best-card a{font-size:.85rem}.speed-chart{width:100%}.speed-chart svg{width:100%;height:auto;display:block;overflow:visible}.speed-chart .grid line{stroke:var(--line)}.speed-chart .grid text,.speed-chart .axis text{fill:var(--ink-3);font-size:11px}.speed-chart .line{fill:none;stroke:var(--accent);stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round}.speed-chart .dot{fill:var(--accent)}.speed-chart .area{fill:color-mix(in srgb, var(--accent) 10%, transparent)}.year-cal{padding-bottom:4px;overflow-x:auto}.year-cal-grid{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;grid-auto-flow:column;gap:3px;width:max-content;display:grid}.year-cal-grid i,.year-cal-key i{background:var(--grid);border-radius:2px;width:11px;height:11px;display:block}:is(.year-cal-grid,.year-cal-key) i[data-l="1"]{background:color-mix(in srgb, var(--accent) 30%, var(--grid))}:is(.year-cal-grid,.year-cal-key) i[data-l="2"]{background:color-mix(in srgb, var(--accent) 55%, var(--grid))}:is(.year-cal-grid,.year-cal-key) i[data-l="3"]{background:color-mix(in srgb, var(--accent) 78%, var(--grid))}:is(.year-cal-grid,.year-cal-key) i[data-l="4"]{background:var(--accent)}.year-cal-grid i[data-future]{visibility:hidden}.year-cal-months{width:max-content;color:var(--ink-3);grid-auto-columns:11px;grid-auto-flow:column;gap:3px;margin-bottom:4px;font-size:10.5px;display:grid}.year-cal-months span{white-space:nowrap;overflow:visible}.year-cal-key{color:var(--ink-3);align-items:center;gap:3px;margin-top:8px;font-size:.78rem;display:flex}.badge-groups{gap:18px;display:grid}.badge-group h3{color:var(--ink-2);margin:0 0 8px;font-size:.95rem}.badge-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.badge-item{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.badge-item[data-earned]{border-color:color-mix(in srgb, var(--m-lo,var(--accent)) 45%, var(--line))}.badge-item>div>b{color:var(--ink);font-size:.93rem;display:block}.badge-item>div>span{color:var(--ink-2);font-size:.82rem;line-height:1.35;display:block}.badge-bar{background:var(--grid);border-radius:2px;height:4px;margin-top:6px;display:block;overflow:hidden}.badge-bar i{background:var(--accent);height:100%;display:block}.badge-left{margin-top:3px}.badge-next-up,.race-badge-pick{margin:0 0 18px}.race-badge-pick h3{color:var(--ink-2);margin:0 0 4px;font-size:.95rem}.race-badge-options{flex-wrap:wrap;gap:4px;margin:0 0 10px;display:flex}.race-badge-option{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:3px;display:inline-flex}.race-badge-option:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.race-badge-option[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.race-badge-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge-next-up h3{color:var(--ink-2);margin:0 0 8px;font-size:.95rem}.badge-count{color:var(--ink-2);font-weight:600}.race-tally{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:0;display:grid}.race-tally div{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px}.race-tally dt{color:var(--ink-2);font-size:.82rem}.race-tally dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.15rem;font-weight:700}.progress-empty{border:1px dashed var(--line);border-radius:12px;justify-items:start;gap:12px;padding:18px;display:grid}.progress-empty p{color:var(--ink-2);margin:0}.progress-actions{flex-wrap:wrap;gap:8px;display:flex}
