:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--neutral-1:oklch(.145 .004 80);--neutral-2:oklch(.175 .004 80);--neutral-3:oklch(.205 .004 80);--neutral-4:oklch(.235 .004 80);--neutral-5:oklch(.265 .004 80);--neutral-6:oklch(.305 .004 80);--neutral-7:oklch(.36 .004 80);--neutral-8:oklch(.48 .004 80);--neutral-10:oklch(.775 .004 80);--neutral-11:oklch(.87 .004 80);--neutral-12:oklch(.97 .004 80);--accent-3:oklch(.26 .05 95);--accent-7:oklch(.5 .1 95);--accent-9:oklch(.88 .17 95);--accent-11:oklch(.9 .14 95);--danger-11:oklch(.79 .121 25);--color-bg-page:var(--neutral-1);--color-bg-sunken:var(--neutral-2);--color-bg-surface:var(--neutral-3);--color-bg-surface-hover:var(--neutral-4);--color-bg-control:var(--neutral-4);--color-bg-control-hover:var(--neutral-5);--color-bg-selected:var(--neutral-6);--color-bg-inverse:var(--neutral-12);--color-bg-overlay:oklch(.145 .004 80/.8);--color-bg-hud:oklch(.145 .004 80/.72);--color-border-subtle:oklch(1 0 0/.07);--color-border:var(--neutral-7);--color-border-strong:var(--neutral-8);--color-text-primary:var(--neutral-12);--color-text-secondary:var(--neutral-11);--color-text-tertiary:var(--neutral-10);--color-text-disabled:var(--neutral-8);--color-text-inverse:var(--neutral-1);--color-accent-subtle:var(--accent-3);--color-accent-border:var(--accent-7);--color-accent-solid:var(--accent-9);--color-accent-solid-hover:var(--accent-11);--color-accent-text:var(--accent-11);--color-danger-text:var(--danger-11);--color-focus-ring:var(--accent-9);--color-rank-1:var(--accent-9);--ring-accent:0 0 0 2px var(--color-accent-solid);--shadow-surface:0 0 0 1px var(--color-border-subtle),0 1px 2px oklch(0 0 0/.3);--shadow-popover:0 0 0 1px oklch(1 0 0/.09),0 24px 64px oklch(0 0 0/.55);--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--sans:"Public Sans",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace}*{box-sizing:border-box}[hidden]{display:none!important}html{scrollbar-gutter:stable;background:var(--color-bg-page)}body{background:var(--color-bg-page);color:var(--color-text-secondary);font:15px/1.55 var(--sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100svh;margin:0}::selection{background:var(--color-accent-solid);color:var(--color-text-inverse)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}p{text-wrap:pretty}h1,h2,h3{color:var(--color-text-primary);text-wrap:balance}h1{letter-spacing:-.035em;margin:0 0 14px;font-size:clamp(42px,7vw,72px);font-weight:700;line-height:1}h2{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600;line-height:1.2}h3{margin:0 0 4px;font-size:15px;font-weight:600;line-height:1.3}.skip{position:fixed;z-index:10;background:var(--color-bg-inverse);color:var(--color-text-inverse);transition:transform .2s var(--ease-out);border-radius:10px;padding:8px 12px;font-weight:600;top:12px;left:12px;transform:translateY(-200%)}.skip:focus{transform:none}.wrap{max-width:1080px;margin:0 auto;padding:0 16px 48px}.bar{display:flex;align-items: center;gap:10px;height:64px}.brand{display:flex;color:var(--color-text-primary);text-decoration:none;align-items: center;gap:8px;font-weight:600}.mark{width:22px;height:22px}.slash{color:var(--color-border)}.crumb{overflow:hidden;color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis}.sr-only{position:absolute;overflow:hidden;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px}.tabs{display:flex;background:var(--color-bg-sunken);box-shadow:inset 0 0 0 1px var(--color-border-subtle);border-radius:12px;gap:2px;margin-left:8px;padding:3px}.tabs a{display:flex;color:var(--color-text-tertiary);text-decoration:none;white-space:nowrap;transition-property:color,background-color,transform;transition-duration:.2s,.2s,.15s;transition-timing-function:var(--ease-out);border-radius:9px;align-items: center;gap:6px;height:30px;padding:0 12px;font-size:14px;font-weight:600}.tabs a:active{transform:scale(.96)}.tabs a[aria-current=page]{background:var(--color-bg-selected);color:var(--color-text-primary)}.badge{display:grid;background:var(--color-accent-solid);color:var(--color-text-inverse);animation:rise .3s var(--ease-out)both;border-radius:6px;place-items: center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800}.badge[hidden]{display:none}.watch-chip{display:inline-flex;color:var(--color-text-secondary);white-space:nowrap;align-items: center;gap:6px;font-size:13px;font-weight:600}.watch-chip svg{color:var(--color-text-primary);width:16px;height:16px}.bar-end{display:flex;align-items: center;gap:6px;margin-left:auto}.me-chip{display:flex;background:var(--color-bg-surface);color:inherit;font:inherit;box-shadow:var(--shadow-surface);cursor:pointer;animation:rise .45s var(--ease-out)both;border:0;border-radius:12px;align-items: center;gap:8px;padding:4px 10px 4px 4px}.me-chip[hidden]{display:none}.me-meta{display:grid;gap:4px}.me-name{overflow:hidden;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:12ch;font-size:13px;font-weight:500;line-height:1}.level{display:grid;background:var(--color-accent-solid);color:var(--color-text-inverse);white-space:nowrap;border-radius:8px;place-items: center;min-width:28px;height:28px;padding:0 6px;font-size:13px;font-weight:700}.level.pulse{animation:pulse .9s var(--ease-out)}@keyframes pulse{30%{transform:scale(1.15);box-shadow:0 0 0 4px var(--color-bg-page),0 0 0 6px var(--color-accent-solid)}}.xp-bar{position:relative;display:block;overflow:hidden;background:var(--color-bg-selected);border-radius:2px;width:72px;height:4px}.xp-bar.big{border-radius:4px;flex:1;width:auto;height:8px}.xp-fill{position:absolute;border-radius:inherit;background:var(--color-accent-solid);transform:scaleX(var(--p,0));transform-origin:left;transition:transform .9s var(--ease-out);inset:0}.icon-btn{display:grid;color:var(--color-text-primary);cursor:pointer;transition-property:transform,background-color;transition-duration:.15s,.2s;transition-timing-function:var(--ease-out);background:0 0;border:0;border-radius:12px;place-items: center;width:36px;height:36px}.icon-btn:active{transform:scale(.96)}.icon-btn svg{grid-area:1/1;width:18px;height:18px;transition-property:opacity,scale,filter;transition-duration:.25s;transition-timing-function:cubic-bezier(.2,0,0,1)}.icon-btn .off,.icon-btn.off .on{opacity:0;filter:blur(4px);scale:.25}.icon-btn.off .off{opacity:1;filter:none;scale:1}.screen{animation:rise .5s var(--ease-out)both}.screen[hidden]{display:none}@keyframes rise{0%{opacity:0;filter:blur(6px);transform:translateY(12px)}}.hero{position:relative;display:flex;overflow:hidden;background:var(--color-bg-sunken);box-shadow:var(--shadow-surface);isolation:isolate;border-radius:24px;align-items: flex-end;min-height:clamp(520px,78svh,700px)}.hero-poster{position:absolute;z-index:-3;object-fit:cover;object-position:62% center;width:100%;height:100%;inset:0}.hero canvas{position:absolute;z-index:-2;opacity:0;transition:opacity .8s var(--ease-out);width:100%;height:100%;inset:0}.hero canvas.ready{opacity:1}.hero:before{content:"";position:absolute;z-index:-1;background:linear-gradient(90deg,oklch(.145 .004 80/.88),oklch(.145 .004 80/.3)55%,transparent),linear-gradient(0deg,oklch(.145 .004 80/.7),transparent 50%);pointer-events:none;inset:0}.hero-content{flex:0 500px;min-width:0;padding:36px}.eyebrow{color:var(--color-text-secondary);letter-spacing:.02em;margin:0 0 14px;font-size:13px;font-weight:600}.lede{color:var(--color-text-secondary);max-width:30em;margin:0 0 24px}.hero-actions{display:flex;flex-wrap:wrap;align-items: center;gap:10px}.hero-secondary{height:44px}.release-pill{display:inline-flex;background:oklch(.145 .004 80/.7);box-shadow:inset 0 0 0 1px oklch(1 0 0/.1);color:var(--color-text-secondary);text-decoration:none;transition-property:background-color,transform;transition-duration:.2s,.15s;transition-timing-function:var(--ease-out);border-radius:10px;align-items: center;gap:8px;max-width:100%;height:32px;margin-bottom:20px;padding:0 10px 0 4px;font-size:13px;font-weight:500}.release-pill:active{transform:scale(.96)}.pill-tag{background:var(--color-accent-solid);color:var(--color-text-inverse);border-radius:6px;flex:none;padding:3px 7px;font-size:12px;font-weight:700;line-height:1.2}.pill-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.release-pill svg{flex:none;width:14px;height:14px}.hero-facts{display:flex;list-style:none;color:var(--color-text-tertiary);flex-wrap:wrap;gap:6px 18px;margin:18px 0 0;padding:0;font-size:13px}.hero-facts li{display:flex;align-items: center;gap:8px}.hero-facts li:before{content:"";background:var(--color-accent-solid);border-radius:2px;width:6px;height:6px}.friend-race{border-top:1px solid var(--color-border-subtle);max-width:440px;margin-top:24px;padding-top:16px}.friend-race summary{color:var(--color-text-secondary);cursor:pointer;width:-moz-fit-content;width:fit-content;margin-bottom:14px;font-weight:600}.friend-race summary::marker{color:var(--color-accent-solid)}.field-label{display:block;color:var(--color-text-secondary);margin-bottom:8px;font-size:13px;font-weight:600}.field{display:flex;background:var(--color-bg-inverse);box-shadow:0 8px 32px oklch(0 0 0/.35);transition:box-shadow .25s var(--ease-out);border-radius:16px;gap:4px;max-width:440px;padding:4px}.field:focus-within{box-shadow:var(--ring-accent),0 8px 32px oklch(0 0 0/.35)}.field input{outline:0;color:var(--color-text-inverse);font:inherit;background:0 0;border:0;flex:1;min-width:0;padding:0 12px;font-size:16px}.field input::placeholder{color:oklch(.5 .03 288)}.btn{position:relative;display:inline-flex;text-decoration:none;background:var(--color-bg-control);color:var(--color-text-primary);font:inherit;white-space:nowrap;cursor:pointer;transition-property:transform,background-color,box-shadow,color;transition-duration:.15s,.2s,.25s,.2s;transition-timing-function:var(--ease-out);border:0;border-radius:12px;justify-content:center;align-items: center;height:36px;padding:0 14px;font-weight:600}.btn:active{transform:scale(.96)}.btn.primary{background:var(--color-accent-solid);color:var(--color-text-inverse);height:44px;padding:0 20px}.btn:disabled,.btn.primary:disabled{background:var(--color-bg-control);color:var(--color-text-disabled);box-shadow:none;cursor:default;transform:none}.btn.small{border-radius:8px;height:32px;padding:0 12px}.swap{display:inline-block;transition:opacity .15s linear}.swap.out{opacity:0}.error{color:var(--color-danger-text);min-height:1.55em;margin:12px 0 0}.hint{color:var(--color-text-tertiary);margin:0;font-size:14px}.hint.center{text-align:center}.fresh{animation:rise .3s var(--ease-out)both}.section{padding-top:64px}.return-card{display:flex;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);border-radius:20px;justify-content:space-between;align-items: center;gap:24px;margin-top:20px;padding:22px 24px}.return-card .eyebrow,.return-card h2{margin-bottom:6px}.return-actions,.dashboard-actions{display:flex;flex-wrap:wrap;gap:8px}.return-actions{flex:none}.profile-screen{padding-top:24px}.profile-head{align-items: flex-end;margin-bottom:28px}.profile-head .eyebrow{margin-bottom:6px}#profile-status{box-shadow:inset 0 0 0 1px var(--color-border-subtle);text-align:center;border-radius:16px;padding:20px}#profile-status:empty{display:none}.dashboard-header{display:flex;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);border-radius:20px;justify-content:space-between;align-items: flex-end;gap:24px;padding:24px}.dashboard-header .eyebrow{margin-bottom:6px}.dashboard-name{letter-spacing:-.025em;margin-bottom:8px;font-size:clamp(28px,4vw,40px)}.dashboard-actions{justify-content:flex-end;max-width:450px}.dashboard-action:not(.primary){height:40px}.dashboard-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:hidden;background:var(--color-border-subtle);box-shadow:var(--shadow-surface);border-radius:16px;gap:1px;margin:12px 0 0}.dashboard-stat{display:grid;background:var(--color-bg-surface);gap:4px;min-width:0;padding:16px}.dashboard-stat-label{color:var(--color-text-tertiary);font-size:12px}.dashboard-stat-value{overflow-wrap:anywhere;color:var(--color-text-primary);min-width:0;margin:0;font-size:17px;font-weight:700}.dashboard-grid,.dashboard-competition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.dashboard-history{grid-column:1/-1}.dashboard-panel{background:var(--color-bg-surface);box-shadow:var(--shadow-surface);border-radius:18px;min-width:0;padding:20px}.dashboard-panel>h2,.dashboard-panel-head h2{margin-bottom:14px;font-size:18px}.dashboard-panel-head{display:flex;justify-content:space-between;align-items: flex-start;gap:12px}.dashboard-panel-head .dashboard-meta{margin-top:-8px}.dashboard-status,.dashboard-you{background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border);color:var(--color-accent-text);border-radius:7px;flex:none;padding:3px 7px;font-size:11px;font-weight:700}.dashboard-goal-list,.dashboard-record-list,.dashboard-history-list,.dashboard-standings{display:grid;list-style:none;gap:8px;margin:0;padding:0}.dashboard-goal{display:grid;gap:8px}.dashboard-goal-copy{display:flex;color:var(--color-text-primary);justify-content:space-between;gap:12px;font-size:14px;font-weight:600}.dashboard-goal-value{color:var(--color-text-tertiary);white-space:nowrap;font-size:12px;font-weight:500}.dashboard-goal progress{overflow:hidden;background:var(--color-bg-selected);color:var(--color-accent-solid);appearance:none;border:0;border-radius:4px;width:100%;height:8px}.dashboard-goal progress::-webkit-progress-bar{background:var(--color-bg-selected)}.dashboard-goal progress::-webkit-progress-value{border-radius:inherit;background:var(--color-accent-solid)}.dashboard-goal progress::-moz-progress-bar{border-radius:inherit;background:var(--color-accent-solid)}.dashboard-record,.dashboard-history-row,.dashboard-standing{display:flex;background:var(--color-bg-control);border-radius:12px;align-items: center;gap:12px;min-width:0;padding:11px 12px}.dashboard-record>div,.dashboard-history-row>div{display:grid;min-width:0}.dashboard-record strong,.dashboard-history-row strong,.dashboard-racer strong,.dashboard-score strong{overflow:hidden;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600}.dashboard-meta{color:var(--color-text-tertiary);font-size:12px}.dashboard-xp{color:var(--color-accent-text);white-space:nowrap;margin-left:auto;font-size:13px;font-weight:700}.dashboard-standing{display:grid;grid-template-columns:24px minmax(0,1fr)auto}.dashboard-standing.is-you{background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border)}.dashboard-rank{color:var(--color-text-tertiary);text-align:center;font-weight:800}.dashboard-racer{display:flex;align-items: center;gap:7px;min-width:0}.dashboard-racer .level{border-radius:6px;min-width:22px;height:20px;font-size:10px}.dashboard-score{display:grid;text-align:right;justify-items:end}.dashboard-empty{box-shadow:inset 0 0 0 1px var(--color-border-subtle);color:var(--color-text-tertiary);text-align:center;border-radius:12px;padding:18px}.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:16px;margin-bottom:20px}.section>h2{margin-bottom:24px}.section p{margin:0;font-size:14px}.section-intro{max-width:34em;margin-bottom:28px}.section-intro .eyebrow{color:var(--color-accent-text);margin-bottom:8px}.section-intro h2{letter-spacing:-.02em;font-size:clamp(24px,3vw,30px)}.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;gap:16px;margin:0;padding:0}.mode{display:flex;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);border-radius:20px;flex-direction:column;padding:6px}.mode img{display:block;aspect-ratio:16/10;background:var(--color-bg-sunken);object-fit:cover;object-position:top;border-radius:14px;width:100%;height:auto}.mode-body{display:flex;flex-direction:column;flex:1;align-items: flex-start;gap:6px;padding:16px 12px 12px}.mode-body h3{margin:0;font-size:17px}.mode-body p{color:var(--color-text-tertiary);flex:1;margin:0 0 12px;font-size:14px}.rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;gap:28px;margin:0;padding:0}.rule svg{box-sizing:content-box;background:var(--color-bg-control);box-shadow:inset 0 0 0 1px var(--color-border-subtle);color:var(--color-accent-solid);border-radius:12px;width:18px;height:18px;margin-bottom:14px;padding:9px}.rule h3{margin-bottom:6px;font-size:15px}.rule p{color:var(--color-text-tertiary);font-size:14px}.news{background:var(--color-bg-surface);box-shadow:var(--shadow-surface);list-style:none;border-radius:20px;margin:0;padding:6px}.news a{display:grid;grid-template-columns:64px minmax(0,1fr)auto;color:var(--color-text-tertiary);text-decoration:none;transition-property:background-color,transform;transition-duration:.2s,.15s;transition-timing-function:var(--ease-out);border-radius:14px;align-items: center;gap:16px;padding:14px;font-size:14px}.news a:active{transform:scale(.99)}.news li+li{border-top:1px solid var(--color-border-subtle)}.news strong{color:var(--color-text-primary);font-weight:600}.version{background:var(--color-bg-control);color:var(--color-text-tertiary);font:500 12px/1.4 var(--mono);white-space:nowrap;border-radius:6px;padding:2px 7px}.page-head{max-width:40em;padding:40px 0 16px}.page-head h1{font-size:clamp(36px,5vw,52px)}.page-head a,.release a{color:var(--color-text-secondary);text-underline-offset:3px}.releases{list-style:none;margin:0;padding:0}.release{display:grid;grid-template-columns:180px minmax(0,1fr);border-top:1px solid var(--color-border-subtle);gap:32px;padding:36px 0;scroll-margin-top:24px}.release-meta{position:sticky;display:flex;flex-direction:column;align-items: flex-start;gap:8px;height:-moz-fit-content;height:fit-content;top:24px}.release-meta time{color:var(--color-text-primary);font-size:14px;font-weight:600}.release-body h2{letter-spacing:-.015em;margin-bottom:8px;font-size:22px}.release-summary{color:var(--color-text-secondary);max-width:40em;margin:0 0 20px}.release-group+.release-group{margin-top:20px}.release-tag{display:inline-block;background:var(--color-bg-control);color:var(--color-text-secondary);letter-spacing:.02em;border-radius:6px;margin:0 0 10px;padding:3px 8px;font-size:12px;font-weight:700}.release-tag-new{background:var(--color-accent-subtle);color:var(--color-accent-text)}.release-group ul{display:grid;list-style:none;gap:8px;max-width:44em;margin:0;padding:0}.release-group li{position:relative;padding-left:18px}.release-group li:before{content:"";position:absolute;background:var(--color-border-strong);border-radius:2px;width:6px;height:6px;top:.62em;left:2px}.release code{background:var(--color-bg-control);color:var(--color-text-primary);font:13px var(--mono);border-radius:6px;padding:1px 6px}.release strong{color:var(--color-text-primary);font-weight:600}.site-footer{display:grid;grid-template-columns:minmax(0,1fr)auto;border-top:1px solid var(--color-border-subtle);gap:32px 48px;margin-top:96px;padding-top:36px}body:has(#race:not([hidden])) .site-footer{display:none}body:has(#room:not([hidden])) .site-footer{display:none}.footer-brand p{color:var(--color-text-tertiary);max-width:22em;margin:12px 0 0;font-size:14px}.footer-links{display:flex;gap:64px}.footer-links div{display:grid;align-content: start;gap:10px}.footer-links h2{color:var(--color-text-primary);margin-bottom:2px;font-size:13px;font-weight:600}.footer-links a{color:var(--color-text-tertiary);text-decoration:none;transition:color .2s var(--ease-out);width:-moz-fit-content;width:fit-content;font-size:14px}.footer-note{grid-column:1/-1;color:var(--color-text-disabled);margin:0;font-size:13px}.seg{--i:1;position:relative;display:grid;grid-template-columns:repeat(3,1fr);background:var(--color-bg-sunken);box-shadow:inset 0 0 0 1px var(--color-border-subtle);border-radius:14px;padding:4px}.seg-thumb{position:absolute;background:var(--color-bg-selected);box-shadow:inset 0 0 0 1px oklch(1 0 0/.08);transform:translateX(calc(var(--i)*100%));transition:transform .3s var(--ease-in-out);border-radius:10px;width:calc(33.3333% - 2.66667px);top:4px;bottom:4px;left:4px}.seg label{position:relative;display:grid;color:var(--color-text-tertiary);white-space:nowrap;cursor:pointer;transition-property:color,transform;transition-duration:.2s,.15s;transition-timing-function:var(--ease-out);border-radius:10px;place-items: center;min-width:76px;height:32px;padding:0 12px;font-size:14px;font-weight:600}.seg label:active{transform:scale(.96)}.seg label:has(input:checked){color:var(--color-text-primary)}.seg label:has(input:focus-visible){outline:2px solid var(--color-focus-ring);outline-offset:-2px}.seg input{position:absolute;opacity:0;pointer-events:none}.seg.readonly label{cursor:default}.seg.readonly label:active{transform:none}.board{display:grid;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);list-style:none;border-radius:20px;min-height:120px;margin:0;padding:6px}.board-row{display:grid;grid-template-columns:36px 1fr repeat(3,76px);transition:background-color .2s var(--ease-out);animation:rise .45s var(--ease-out)both;animation-delay:calc(var(--n)*40ms);border-radius:14px;align-items: center;gap:12px;padding:12px 14px}.board-row+.board-row:not(:nth-child(2)){border-top:1px solid var(--color-border-subtle)}.board-head{box-shadow:none;color:var(--color-text-tertiary);animation:none;background:0 0;padding-top:8px;padding-bottom:8px;font-size:12px}.board-row .num{text-align:right}.board-row strong{color:var(--color-text-primary);font-weight:600}.rank{color:var(--color-text-tertiary);font-weight:700}.board-row:nth-child(2) .rank{color:var(--color-rank-1)}.who{display:flex;align-items: center;gap:10px;min-width:0}.who strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.who .level{border-radius:6px;min-width:24px;height:22px;font-size:11px}.board-empty{display:grid;color:var(--color-text-tertiary);text-align:center;animation:rise .4s var(--ease-out)both;border-radius:14px;place-items: center;padding:32px}.swatch{box-shadow:inset 0 -4px 6px oklch(0 0 0/.25),inset 0 0 0 1px oklch(1 0 0/.15);border-radius:5px;flex:none;width:28px;height:16px}.room-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-top:8px}.garage{position:relative;display:flex;overflow:hidden;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);border-radius:24px;flex-direction:column;min-width:0;min-height:520px}.garage-canvas{cursor:grab;touch-action:pan-y;border-radius:24px 24px 0 0;flex:1;width:100%;min-height:300px}.garage-canvas:active{cursor:grabbing}.garage-canvas:focus-visible{outline-offset:-4px}.garage-controls{display:grid;gap:16px;padding:0 20px 20px}.garage-row h3,.panel-row h3{color:var(--color-text-tertiary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:600}.swatches,.chips{display:flex;flex-wrap:wrap;gap:8px}.pick{position:relative;display:grid;cursor:pointer;transition-property:transform,box-shadow,background-color,color;transition-duration:.15s,.25s,.2s,.2s;transition-timing-function:var(--ease-out);border-radius:12px;place-items: center}.pick:active{transform:scale(.96)}.pick input{position:absolute;opacity:0;pointer-events:none}.pick:has(input:focus-visible){outline:2px solid var(--color-focus-ring);outline-offset:2px}.swatches .pick{box-shadow:inset 0 0 0 1px var(--color-border-subtle);width:40px;height:40px;padding:4px}.swatches .pick span:first-of-type{box-shadow:inset 0 -6px 10px oklch(0 0 0/.3),inset 0 0 0 1px oklch(1 0 0/.15);border-radius:8px;width:100%;height:100%}.swatches .pick:has(input:checked){box-shadow:inset 0 0 0 2px var(--color-text-primary)}.chips .pick{display:flex;background:var(--color-bg-control);color:var(--color-text-secondary);gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:600}.chips .pick:has(input:checked){background:var(--color-bg-inverse);color:var(--color-text-inverse)}.pick.locked{cursor:not-allowed}.swatches .pick.locked span:first-of-type{opacity:.25}.chips .pick.locked{color:var(--color-text-tertiary)}.lock{position:absolute;display:grid;background:var(--color-bg-selected);color:var(--color-text-primary);border-radius:6px;place-items: center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;inset:auto -4px -4px auto}.chips .lock{position:static}.pick.shake{animation:shake .35s var(--ease-out)}@keyframes shake{25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}.room-panel{display:flex;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);border-radius:24px;flex-direction:column;gap:20px;min-width:0;padding:20px}.panel-head{display:flex;justify-content:space-between;align-items: center;gap:12px}.panel-head .watch-chip{margin-left:auto}.panel-title{font-size:17px}.room-grid.spectating{grid-template-columns:1fr;max-width:560px;margin-inline-start:auto;margin-inline-end:auto}.room-grid.spectating .garage,.room-grid.spectating .start{display:none}.slots{display:grid;gap:8px}.slot{display:flex;background:var(--color-bg-control);box-shadow:inset 0 0 0 1px var(--color-border-subtle);border-radius:16px;align-items: center;gap:12px;min-height:56px;padding:10px 12px}.slot.enter{animation:rise .45s var(--ease-out)both}.slot.empty{box-shadow:inset 0 0 0 1.5px var(--color-border-subtle);color:var(--color-text-tertiary);background:0 0;justify-content:center;gap:10px}.slot.empty:before{content:"";background:var(--color-accent-solid);animation:wait 1.4s var(--ease-in-out)infinite;border-radius:4px;width:8px;height:8px}@keyframes wait{50%{opacity:.25;transform:scale(.7)}}.slot-main{display:grid;min-width:0}.slot-name{overflow-wrap:anywhere;color:var(--color-text-primary);font-weight:600}.tags{display:flex;gap:4px;margin-top:2px}.tag{background:var(--color-bg-selected);color:var(--color-text-secondary);border-radius:6px;padding:0 6px;font-size:12px}.slot .level{margin-left:auto}.slots-count{color:var(--color-text-tertiary);font-size:13px}.panel-row .seg{margin-bottom:8px}.share{display:flex;background:var(--color-bg-sunken);box-shadow:inset 0 0 0 1px var(--color-border-subtle);border-radius:12px;align-items: center;gap:8px;padding:4px 4px 4px 14px}.link{overflow-x:auto;white-space:nowrap;color:var(--color-text-primary);font:13px var(--mono);scrollbar-width:none;flex:1;min-width:0}.start{width:100%;margin-top:auto}.stage{position:relative;border-radius:24px}.track-stage{overflow:hidden;background:var(--color-bg-sunken);box-shadow:var(--shadow-surface);isolation:isolate;height:clamp(320px,54svh,540px);margin-top:8px}canvas{display:block;width:100%;height:100%}.hud{position:absolute;color:var(--color-text-primary);pointer-events:none;inset:12px}.hud-chip{display:flex;background:var(--color-bg-hud);border-radius:12px;align-items:baseline;gap:6px;padding:6px 12px;font-weight:700}.hud-chip>span{font-size:26px;line-height:1.1}.hud-chip small{color:var(--color-text-secondary);font-size:12px;font-weight:500}.hud-top{display:flex;gap:8px}.track-bar{position:relative;background:var(--color-bg-hud);border-radius:12px;flex:1;height:44px;padding:0 40px 0 18px}.track-line{position:absolute;background:oklch(1 0 0/.16);border-radius:2px;height:4px;inset:50% 40px auto 18px;transform:translateY(-50%)}.track-fill{position:absolute;border-radius:inherit;background:var(--color-accent-solid);transform:scaleX(var(--p,0));transform-origin:left;inset:0}.flag{position:absolute;color:var(--color-text-primary);width:18px;height:18px;top:50%;right:12px;transform:translateY(-50%)}.markers{position:absolute;inset:0 40px 0 18px}.marker{position:absolute;display:grid;color:var(--color-text-inverse);box-shadow:0 0 0 2px var(--color-bg-page);will-change:transform;border-radius:7px;place-items: center;width:22px;height:22px;margin:-11px 0 0 -11px;font-size:11px;font-weight:800;top:50%;left:0}.marker.me{z-index:2;box-shadow:0 0 0 2px var(--color-bg-page),0 0 0 4px var(--color-text-primary);border-radius:9px;width:28px;height:28px;margin:-14px 0 0 -14px;font-size:12px}.marker.left{opacity:.35}.hud-watch{transition:opacity .2s var(--ease-out);flex:none;align-items: center;gap:6px}.hud-watch>span{font-size:15px}.hud-watch svg{width:16px;height:16px}.hud-watch.none{opacity:0}.hud-togo{flex:none;align-items: center}.tower{position:absolute;list-style:none;width:208px;margin:0;padding:0;top:56px;left:0}.tower-row{position:absolute;display:grid;grid-template-columns:18px 4px 1fr auto;background:var(--color-bg-hud);transform:translateY(calc(var(--rank)*34px));transition:transform .3s var(--ease-in-out);border-radius:10px;align-items: center;gap:8px;width:100%;height:30px;padding:0 10px;font-size:13px;top:0;left:0}.spectating .tower{pointer-events:auto}.spectating .tower-row{cursor:pointer}.tower-row:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.tower-row.me{background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border)}.tower-row.left{opacity:.5}.tower-pos{color:var(--color-text-secondary);text-align:right;font-weight:800}.tower-stripe{border-radius:2px;width:4px;height:16px}.tower-name{overflow:hidden;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600}.tower-gap{color:var(--color-text-secondary);font-size:12px;font-weight:600}.hud-speed,.hud-place{position:absolute;bottom:0}.hud-speed{left:0}.hud-speed>span{text-align:right;min-width:2.4ch}.hud-sub{box-shadow:inset 1px 0 0 oklch(1 0 0/.16);margin-left:6px;padding-left:10px}.hud-place{right:0}.banner{position:absolute;background:var(--color-bg-hud);box-shadow:inset 0 0 0 1px var(--color-accent-border);color:var(--color-text-primary);white-space:nowrap;animation:rise .45s var(--ease-out)both;border-radius:12px;margin:0;padding:8px 14px;font-weight:600;top:56px;left:50%;transform:translate(-50%)}.banner[hidden]{display:none}.countdown{position:absolute;display:grid;color:var(--color-text-primary);text-shadow:0 2px 16px oklch(0 0 0/.6);pointer-events:none;place-items: center;font-size:96px;font-weight:800;inset:0}.countdown span{animation:count .9s var(--ease-out)both}@keyframes count{0%{opacity:0;filter:blur(8px);transform:scale(.6)}60%{opacity:1;filter:blur(0);transform:scale(1)}to{opacity:0;filter:blur(4px);transform:scale(1.15)}}.words{position:relative;overflow:hidden;color:var(--color-text-tertiary);font:var(--words-size,25px)/1.7 var(--mono);cursor:text;height:5.1em;margin-top:20px}.words-inner{transition:transform .25s var(--ease-out)}.word{display:inline-block;white-space:pre}.done{color:var(--color-text-primary);transition:color .12s linear}.wrong,.extra{color:var(--color-danger-text)}.wrong{text-decoration:underline 2px;text-underline-offset:5px}.missed{color:var(--color-danger-text);opacity:.6;text-decoration:underline dotted 2px;text-underline-offset:5px}.caret{position:absolute;background:var(--color-accent-solid);border-radius:1px;width:2px;height:1.2em;transition:transform 80ms linear;top:0;left:0}.caret.over{animation:.3s over}@keyframes over{30%{background:var(--color-danger-text);translate:3px}}.words.idle .caret{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}:root[data-text-size=s]{--words-size:20px}:root[data-text-size=l]{--words-size:31px}.race-tools{display:flex;align-items: center;gap:10px;margin-top:14px}.race-tools .keys{flex:1;min-width:0;margin:0}#race.spectating .text-size{display:none}.seg.compact{border-radius:11px;padding:3px}.seg.compact .seg-thumb{border-radius:8px;width:calc(33.3333% - 2px);top:3px;bottom:3px;left:3px}.seg.compact label{border-radius:8px;min-width:34px;height:26px;padding:0}.aa{line-height:1}.aa.s{font-size:11px}.aa.m{font-size:14px}.aa.l{font-size:17px}.fs-btn{gap:7px}.fs-btn svg{flex:none;width:16px;height:16px}.fs-btn path{transform-box:fill-box;transform-origin:center;transition-property:opacity,scale;transition-duration:.2s;transition-timing-function:var(--ease-out)}.fs-btn .exit,html.fs .fs-btn .enter{opacity:0;scale:.6}html.fs .fs-btn .exit{opacity:1;scale:1}html.fs #race:not([hidden]){position:fixed;z-index:10;background:var(--color-bg-page);inset:0}html.fs #race .track-stage{position:absolute;box-shadow:none;border-radius:0;height:auto;margin:0;inset:0}html.fs #race .words{--panel:oklch(.145 .004 80/.84);position:absolute;z-index:2;background:var(--panel);box-shadow:0 0 0 20px var(--panel),0 16px 40px 20px oklch(0 0 0/.25);border-radius:4px;width:min(940px,100% - 96px);margin:0;bottom:92px;left:50%;translate:-50%}html.fs #race .race-tools{position:absolute;z-index:3;margin:0;top:76px;right:24px}html.fs #race .keys,html.fs #race .spectate-bar{display:none}.spectate-bar{display:flex;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);animation:rise .45s var(--ease-out)both;border-radius:16px;flex-wrap:wrap;align-items: center;gap:12px 16px;margin-top:20px;padding:14px 16px}.spectate-bar[hidden],.keys[hidden]{display:none}.spectate-bar .hint{flex:1;min-width:200px}.page-title{letter-spacing:-.02em;margin:0 0 6px;font-size:32px;line-height:1.1}.live-head{align-items: flex-end;margin:24px 0}.live-list{display:grid;list-style:none;gap:10px;margin:0;padding:0}.live-card{display:grid;grid-template-columns:150px 1fr auto;background:var(--color-bg-surface);box-shadow:var(--shadow-surface);animation:rise .45s var(--ease-out)both;animation-delay:calc(var(--n,0)*50ms);border-radius:16px;align-items: center;gap:20px;padding:16px 18px}.live-meta{display:grid;gap:4px}.status{display:inline-flex;color:var(--color-text-primary);align-items: center;gap:6px;font-size:13px;font-weight:700}.status:before{content:"";background:var(--color-text-tertiary);border-radius:4px;width:8px;height:8px}.status.racing:before{background:var(--color-accent-solid);animation:wait 1.4s var(--ease-in-out)infinite}.status.countdown:before{background:var(--color-rank-1)}.live-code{color:var(--color-text-tertiary);font:13px var(--mono)}.live-racers{display:grid;gap:6px;min-width:0}.live-racer{display:grid;grid-template-columns:20px minmax(0,110px)1fr;align-items: center;gap:10px;font-size:13px}.live-racer .swatch{border-radius:4px;width:20px;height:12px}.live-racer strong{overflow:hidden;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600}.live-track{position:relative;overflow:hidden;background:var(--color-bg-selected);border-radius:3px;height:6px}.live-fill{position:absolute;border-radius:inherit;transform:scaleX(var(--p,0));transform-origin:left;transition:transform 1s linear;inset:0}.live-side{display:flex;align-items: center;gap:14px}.live-empty{display:grid;box-shadow:inset 0 0 0 1.5px var(--color-border-subtle);color:var(--color-text-tertiary);text-align:center;animation:rise .4s var(--ease-out)both;border-radius:16px;justify-items:center;gap:12px;padding:48px 24px}.live-empty strong{color:var(--color-text-primary);font-size:16px}.keys{margin-top:14px;font-size:13px}.ghost{position:fixed;opacity:0;width:1px;height:1px;top:0;left:-100px}.finish{position:fixed;z-index:5;display:grid;overscroll-behavior:contain;background:var(--color-bg-overlay);animation:fade .3s var(--ease-out)both;place-items: center;padding:16px;inset:0}.finish[hidden]{display:none}@keyframes fade{0%{opacity:0}}.finish-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.finish-actions .btn.primary:not([hidden]){grid-column:1/-1}.finish-actions .btn.primary:not([hidden])~.btn.primary:not([hidden]){grid-column:auto;background:var(--color-bg-control);color:var(--color-text-primary);height:36px;padding:0 14px}.card{display:flex;overflow-y:auto;background:var(--color-bg-surface);box-shadow:var(--shadow-popover);animation:rise .5s var(--ease-out)both;border-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:460px;max-height:calc(100svh - 32px);padding:24px}.card:focus{outline:none}.card:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-4px}.card h2{letter-spacing:-.02em;font-size:28px;font-weight:700}.card .hint:empty{display:none}.card .hint{margin-top:-10px}.finish-highlight{background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border);color:var(--color-accent-text);text-align:center;border-radius:12px;margin:0;padding:11px 12px;font-size:14px;font-weight:700}.rows{display:flex;flex-direction:column;gap:6px}.row{display:grid;grid-template-columns:28px auto 1fr auto auto auto;background:var(--color-bg-control);animation:rise .45s var(--ease-out)both;animation-delay:calc(var(--n,0)*60ms);border-radius:12px;align-items: center;gap:10px;padding:10px 12px;font-size:14px}.row.me{box-shadow:inset 0 0 0 1px var(--color-accent-border)}.row .place{color:var(--color-text-secondary);font-weight:800}.row:first-child .place{color:var(--color-rank-1)}.row .swatch{border-radius:4px;width:20px;height:12px}.row strong{overflow:hidden;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600}.finish-xp{display:grid;animation:rise .45s var(--ease-out).2s both;gap:10px}.finish-xp[hidden]{display:none}.xp-line{display:flex;align-items: center;gap:12px}.xp-gain{color:var(--color-text-primary);text-align:right;min-width:7ch;font-weight:700}.unlock{background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent-border);color:var(--color-text-primary);animation:rise .45s var(--ease-out)both;border-radius:12px;margin:0;padding:10px 12px;font-size:14px}.unlock[hidden]{display:none}@media (hover:hover) and (pointer:fine){.tabs a:not([aria-current=page]):hover{color:var(--color-text-primary)}.spectating .tower-row:not(.me):hover{background:oklch(.265 .004 80/.9)}.brand:hover{opacity:.8}.icon-btn:hover{background:oklch(1 0 0/.07)}.btn:hover{background:var(--color-bg-control-hover)}.btn.primary:hover{background:var(--color-accent-solid-hover)}.finish-actions .btn.primary:not([hidden])~.btn.primary:not([hidden]):hover{background:var(--color-bg-control-hover)}.btn:disabled:hover,.btn.primary:disabled:hover{background:var(--color-bg-control);box-shadow:none}.chips .pick:not(:has(input:checked)):hover{background:var(--color-bg-control-hover)}.release-pill:hover{background:oklch(.205 .004 80/.85)}.news a:hover,.board-row:not(.board-head):hover{background:var(--color-bg-surface-hover)}.footer-links a:hover,.page-head a:hover{color:var(--color-text-primary)}}@media (max-width:860px){.modes{grid-template-columns:repeat(2,minmax(0,1fr))}.modes .mode:last-child{grid-column:1/-1}.rules{grid-template-columns:repeat(2,minmax(0,1fr))}.room-grid{grid-template-columns:1fr}.room-panel{order:-1}.garage{min-height:440px}.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.live-card{grid-template-columns:1fr;gap:14px}.live-side{justify-content:space-between}.modes{grid-template-columns:1fr}.release{grid-template-columns:1fr;gap:12px}.release-meta{position:static;flex-direction:row;align-items: center}.board-row{grid-template-columns:24px minmax(80px,1fr)repeat(3,minmax(44px,60px));gap:8px;padding-inline-start:10px;padding-inline-end:10px;font-size:13px}.dashboard-header{flex-direction:column;align-items: flex-start}.dashboard-actions{justify-content:flex-start;max-width:none}.dashboard-grid,.dashboard-competition-grid{grid-template-columns:1fr}.dashboard-history{grid-column:auto}}@media (max-width:560px){.crumb,.me-meta,.brand-text{display:none}.site-footer .brand-text{display:inline}.tabs a{padding:0 10px}.tab-changelog{display:none!important}.board-row{grid-template-columns:20px minmax(0,1fr)auto auto;gap:10px}.board-row>:last-child{display:none}.board-row .num{white-space:nowrap}.hero{min-height:600px}.hero-poster{object-position:70% 30%}.hero-content{padding:20px}.rules{grid-template-columns:1fr;gap:24px}.news a{grid-template-columns:minmax(0,1fr)auto;gap:4px 12px}.news time{grid-column:1/-1;font-size:12px}.site-footer{grid-template-columns:1fr;margin-top:72px}.footer-links{gap:48px}.hero-actions,.hero-actions .btn,.return-actions,.return-actions .btn,.dashboard-actions,.dashboard-actions .btn{width:100%}.friend-race .field{background:var(--color-bg-surface);flex-direction:column;align-items:stretch;padding:6px}.friend-race .field input{background:var(--color-bg-inverse);border-radius:10px;min-height:44px}.return-card{flex-direction:column;align-items:stretch;padding:20px}.profile-head{align-items:stretch}.dashboard-header,.dashboard-panel{padding:18px}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stat{padding:14px}.dashboard-record,.dashboard-history-row{align-items: flex-start}.dashboard-record strong,.dashboard-history-row strong{white-space:normal}.dashboard-standing{grid-template-columns:20px minmax(0,1fr)auto;gap:8px;padding-inline-start:8px;padding-inline-end:8px}.dashboard-you{display:none}.hero:before{background:linear-gradient(0deg,oklch(.145 .004 80/.94),oklch(.145 .004 80/.4)65%,transparent)}.seg label{min-width:0}:root{--words-size:19px}:root[data-text-size=s]{--words-size:16px}:root[data-text-size=l]{--words-size:23px}.fs-btn .swap{display:none}.hud-chip>span{font-size:20px}.hud-chip{gap:4px;padding:5px 8px}.hud-sub{margin-left:2px;padding-left:6px}.hud-togo small{font-size:10px}.tower{width:92px}.tower-row{grid-template-columns:14px 4px 1fr;gap:6px;padding:0 8px}.tower-gap{display:none}.countdown{font-size:72px}.row{grid-template-columns:20px 16px minmax(62px,1fr)repeat(3,minmax(38px,auto));gap:6px;padding-inline-start:8px;padding-inline-end:8px;font-size:12px}.row .swatch{width:16px}.finish-actions{grid-template-columns:1fr}.finish-actions .btn,.finish-actions .btn.primary:not([hidden]),.finish-actions .btn.primary:not([hidden])~.btn.primary:not([hidden]){grid-column:auto}}@media (max-width:360px){.bar{gap:4px}.who .swatch,.brand{display:none}.tabs{margin-left:0}.tabs a{padding-inline-start:7px;padding-inline-end:7px}.row{grid-template-columns:18px minmax(0,1fr)auto;gap:4px 6px;padding-inline-start:6px;padding-inline-end:6px}.row .swatch{display:none}.row .wpm,.row .accuracy,.row .time{white-space:nowrap}.row .place{grid-row:1/span 2}.row .wpm{grid-area:1/3}.row .accuracy{grid-area:2/2}.row .time{grid-area:2/3}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@keyframes rise{0%{opacity:0}}@keyframes count{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes pulse{30%{box-shadow:0 0 0 4px var(--color-bg-page),0 0 0 6px var(--color-accent-solid)}}.pick.shake,.slot.empty:before,.status.racing:before,.caret.over{animation:none}.btn:active,.icon-btn:active,.pick:active,.seg label:active{transform:none}.tower-row,.live-fill,.seg-thumb,.words-inner,.caret{transition-duration:.01ms}.hero canvas{transition:none}}
