.game-section{gap:var(--step-3);display:grid}.game-intro h1{margin:0 0 var(--step-1)}.game-intro p{color:var(--paper-dim);margin:0}.game-intro .online{width:fit-content;margin-top:var(--step-1);font-variant-numeric:tabular-nums;color:var(--badge-ok-ink);background:var(--color-state-success-bg);border:1px solid color-mix(in srgb, var(--go-green-accent) 35%, transparent);border-radius:var(--radius-pill);align-items:center;gap:.45rem;padding:.15rem .7rem .15rem .6rem;font-size:.85rem;font-weight:600;display:flex}.online-dot{background:var(--go-green-accent);border-radius:50%;flex:none;width:.5rem;height:.5rem;position:relative}.online-dot:after{content:"";border-radius:inherit;background:inherit;animation:2.2s cubic-bezier(0,0,.2,1) infinite live-ping;position:absolute;inset:0}@keyframes live-ping{70%,to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.online-dot:after{display:none}}.typing-game{--typed-ok:var(--go-green);--caret:var(--speed-cyan);gap:var(--step-2);padding:var(--step-3);min-width:0;scroll-margin-top:var(--step-2);background:var(--track-kerb);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-game);transition:border-color .3s,box-shadow .3s;display:grid;position:relative}.typing-game:before{content:"";border-radius:inherit;pointer-events:none;opacity:.55;background:linear-gradient(90deg, transparent 4%, var(--speed-cyan) 30%, var(--go-green-accent) 70%, transparent 96%) top / 100% 2px no-repeat;transition:opacity .3s;position:absolute;inset:-1px}.typing-game[data-phase=running]{border-color:color-mix(in srgb, var(--speed-cyan) 45%, var(--surface-border));box-shadow:var(--shadow-game), var(--glow-live)}.typing-game[data-phase=running]:before{opacity:1}@media (prefers-reduced-motion:reduce){.typing-game,.typing-game:before{transition:none}}.game-controls{align-items:center;gap:var(--step-1) var(--step-2);flex-wrap:wrap;display:flex}.game-settings{border:0;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;display:flex}.game-settings label{display:block}.game-settings label>span:first-child,.mode-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.game-settings label[hidden]{display:none}.game-settings select{font:inherit;font-family:var(--font-family);letter-spacing:normal;text-transform:none;color:var(--paper-white);background-color:var(--track-kerb-hi);border:1px solid var(--track-line);border-radius:var(--radius-sm);min-height:var(--touch-target);cursor:pointer;padding:.35rem 2rem .35rem .7rem;font-size:.95rem}.game-settings select:hover:not(:disabled){border-color:color-mix(in srgb, var(--speed-cyan) 60%, var(--track-line))}.game-settings select:disabled{cursor:not-allowed;opacity:.6}.mode-field{display:block}.mode-picker{position:relative}.mode-summary{min-width:13rem;min-height:var(--touch-target);color:var(--paper-white);cursor:pointer;user-select:none;background:var(--track-kerb-hi);border:1px solid var(--track-line);border-radius:var(--radius-sm);align-items:center;gap:.55rem;padding:.35rem .65rem .35rem .7rem;font-size:.95rem;list-style:none;display:flex}.mode-summary::-webkit-details-marker{display:none}.mode-summary .mode-icon{color:var(--color-text-link);flex:none}.mode-summary-name{white-space:nowrap;flex:1;font-weight:600}.mode-summary .icon-chevron{color:var(--paper-dim);transition:transform .15s}.mode-picker[open] .mode-summary{border-color:var(--speed-cyan)}.mode-picker[open] .mode-summary .icon-chevron{transform:rotate(180deg)}.mode-summary:hover:not([aria-disabled]){border-color:color-mix(in srgb, var(--speed-cyan) 60%, var(--track-line))}.mode-summary[aria-disabled=true]{cursor:not-allowed;opacity:.6}.mode-panel{z-index:30;width:min(38rem,100vw - 3rem);max-height:min(70 * var(--vvh) / 100, 34rem);background:var(--track-kerb);border:1px solid var(--track-line);border-radius:var(--radius-md);box-shadow:var(--shadow-float);grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem;padding:.45rem;display:grid;position:absolute;top:calc(100% + .4rem);left:0;overflow:auto}.game-settings .mode-option{min-height:var(--touch-target);cursor:pointer;font-family:var(--font-family);letter-spacing:normal;text-transform:none;color:var(--paper-white);border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:.65rem;padding:.55rem .65rem;font-size:.95rem;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.mode-summary .icon-chevron{transition:none}}.game-toolbar{flex-wrap:wrap;align-items:center;gap:.4rem;margin-left:auto;display:flex}.tool-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}@media (width>=40.01rem){.game-controls:has(.opponent-picker){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"settings view""actions actions";align-items:center;display:grid}.game-controls:has(.opponent-picker) .game-settings{grid-area:settings}.game-controls:has(.opponent-picker) .game-toolbar{display:contents}.game-controls:has(.opponent-picker) .tool-actions{grid-area:actions}.game-controls:has(.opponent-picker) .tool-icons{grid-area:view}}@media (width>=40.01rem) and (width<=79.99rem){.game-controls{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"settings view""actions actions";align-items:center;display:grid}.game-controls .game-settings{grid-area:settings}.game-controls .game-toolbar{display:contents}.game-controls .tool-actions{grid-area:actions}.game-controls .tool-icons{grid-area:view}}.tool-row{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.tool-icons{border-left:1px solid var(--surface-border);margin-left:.1rem;padding-left:.4rem}.tool-icons .tool-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tool-icons .tool-button{min-width:var(--touch-target);border-color:#0000;justify-content:center;padding-inline:.55rem}.tool-icons .sound-controls>summary{gap:.2rem}.tool-icons .sound-controls>summary .icon-chevron{width:12px;height:12px}.opponent-picker{border:1px solid var(--track-line);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.opponent-picker .tool-button{min-height:calc(var(--touch-target) - 6px);border-radius:calc(var(--radius-sm) - 2px);border-color:#0000}.tool-button{min-height:var(--touch-target);font:inherit;cursor:pointer;white-space:nowrap;user-select:none;color:var(--paper-white);border:1px solid var(--track-line);border-radius:var(--radius-sm);background:0 0;align-items:center;gap:.45rem;padding:.35rem .75rem;font-size:.9rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.tool-button .icon{color:var(--paper-dim);flex:none;transition:color .15s,transform .15s}.tool-button:hover:not(:disabled){background:var(--track-kerb-hi);border-color:color-mix(in srgb, var(--speed-cyan) 60%, var(--track-line))}.tool-button:hover:not(:disabled) .icon{color:var(--paper-white)}.tool-button:active:not(:disabled){transform:translateY(1px)}.tool-button[aria-pressed=true]{color:var(--color-text-link);background:var(--color-state-info-bg);border-color:color-mix(in srgb, var(--speed-cyan) 70%, transparent)}.tool-button[aria-pressed=true] .icon{color:var(--color-text-link)}.tool-restart{background:var(--track-kerb-hi);font-weight:600}.tool-restart:hover:not(:disabled) .icon{transform:rotate(-60deg)}@media (prefers-reduced-motion:reduce){.tool-button,.tool-button .icon{transition:none}.tool-restart:hover .icon{transform:none}}.sound-controls{position:relative}.sound-controls>summary{list-style:none}.sound-controls>summary::-webkit-details-marker{display:none}.sound-controls>summary[data-on] .icon-sound{color:var(--go-green)}.sound-controls[open]>summary{background:var(--track-kerb-hi);border-color:var(--speed-cyan)}.sound-controls[open]>summary .icon-chevron{transform:rotate(180deg)}.sound-panel{z-index:20;background:var(--track-kerb);border:1px solid var(--track-line);border-radius:var(--radius-md);min-width:14rem;box-shadow:var(--shadow-float);gap:.15rem;padding:.45rem;font-size:.9rem;display:grid;position:absolute;top:calc(100% + .4rem);right:0}.sound-panel .checkbox{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:.55rem;padding:.35rem .5rem}.sound-panel .checkbox:hover{background:var(--track-kerb-hi)}.sound-panel .checkbox:first-child{border-bottom:1px solid var(--track-line);border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin-bottom:.2rem;padding-bottom:.5rem;font-weight:600}.sound-panel .checkbox:has(input:disabled){color:var(--paper-dim);cursor:default}.live-stats{gap:0;row-gap:var(--step-1);padding:var(--step-2) var(--step-2) var(--step-1);border-radius:var(--radius-md);background:linear-gradient(180deg, var(--track-kerb-hi), color-mix(in srgb, var(--track-kerb-hi) 55%, var(--track-kerb)));border:1px solid var(--surface-border);box-shadow:inset 0 1px 0 var(--edge-light);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.live-stats .stat{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;justify-items:center;gap:.1rem;padding:.2rem .5rem;display:grid}.live-stats .stat+.stat{border-left:1px solid var(--track-line)}.stat-label{font-family:var(--font-mono);font-size:var(--fs-stat-label);text-transform:uppercase;letter-spacing:.06em;color:var(--paper-dim);white-space:nowrap}.stat-value{font-family:var(--font-display);font-size:var(--fs-stat);font-variant-numeric:tabular-nums;white-space:nowrap;min-height:1.15em;font-weight:600;line-height:1.15}@media (width<=22.49rem){.live-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.live-stats .stat:nth-child(odd){border-left:0}.live-stats .stat:nth-child(n+3){border-top:1px solid var(--track-line);padding-top:.4rem}}.stat-value[data-stat=wpm]{color:var(--go-green)}.typing-game[data-phase=running] .stat-value{text-shadow:var(--glow-stat)}.typing-game:is([data-phase=ready],[data-phase=loading]) .stat-value{color:var(--paper-white);transform:none}.typing-game:is([data-phase=ready],[data-phase=loading]) .timer-bar-fill{background:color-mix(in srgb, var(--paper-faint) 45%, transparent)}.stat-value[data-stat=streak],.stat-value[data-stat=points]{color:var(--caution-amber)}.stat-value[data-stat=multiplier]{transition:color .2s,transform .2s}.stat-value[data-stat=multiplier][data-level="2"]{color:var(--color-text-link)}.stat-value[data-stat=multiplier][data-level="3"]{color:var(--caution-amber);transform:scale(1.1)}.stat-value[data-stat=multiplier][data-level="4"]{color:var(--flag-red);transform:scale(1.2)}.stat-value[data-stat=lives]{color:var(--flag-red);letter-spacing:.1em}.mode-hint{color:var(--paper-dim);border-left:2px solid var(--track-line);margin:0;padding-left:.7rem;font-size:.85rem}.round-brief .perk-bar li{background:var(--track-kerb)}.perk-short{display:none}.timer-bar{background:var(--track-line);border-radius:var(--radius-pill);grid-column:1/-1;height:6px;margin-top:.3rem;overflow:hidden}.timer-bar-fill{transform-origin:0;border-radius:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--speed-cyan) 55%, transparent), var(--speed-cyan));height:100%;transition:transform .25s linear}.timer-bar-fill.critical{background:repeating-linear-gradient(135deg, var(--flag-red) 0 6px, color-mix(in srgb, var(--flag-red) 55%, transparent) 6px 12px)}.words{--line:calc(var(--fs-words) * 1.8);height:calc(var(--line) * 3);font-family:var(--font-mono);font-size:var(--fs-words);line-height:var(--line);margin:0;overflow:hidden}.words-frame{cursor:text}.words-loading{color:var(--paper-dim);font-family:var(--font-family);place-items:center;font-size:1rem;display:grid}.start-gate{align-content:center;place-items:center;gap:var(--step-2);font-family:var(--font-family);font-size:1rem;display:grid}.start-gate .game-hint{text-align:center;margin:0}.words-inner{flex-wrap:wrap;column-gap:.65em;display:flex;position:relative}.word{color:var(--paper-dim);white-space:pre}.word.current{--word-mark:color-mix(in srgb, var(--caret) 10%, transparent);background:var(--word-mark);outline:.14em solid var(--word-mark);border-radius:var(--radius-xs)}.word.done.correct{color:var(--go-green)}.word.done.incorrect{color:var(--flag-red);text-underline-offset:.3em;text-decoration:underline wavy}.word.current{color:var(--paper-white)}.char.ok{color:var(--typed-ok)}.char.bad{color:var(--flag-red);background:color-mix(in srgb, var(--flag-red) 12%, transparent);text-underline-offset:.18em;text-decoration:underline 2px}.char.extra{color:var(--flag-red);opacity:.8;text-decoration:line-through}.char.caret{box-shadow:inset 2px 0 0 var(--caret)}.word.current.caret-end{box-shadow:inset -2px 0 0 var(--caret)}@media (forced-colors:active){.typing-game :is(.char.caret,.char.ok,.char.bad,.word.current.caret-end,.word.done){forced-color-adjust:none}.typing-game .char.caret{box-shadow:inset 2px 0 highlight}.typing-game .word.current.caret-end{box-shadow:inset -2px 0 highlight}.typing-game .char.ok{color:linktext}.typing-game .char.bad{color:highlighttext;background:highlight}.typing-game .word.done{color:graytext}}.typing-game[data-phase=ready][data-caret=bar] .char.caret{animation:1.1s step-end infinite caret-blink}@keyframes caret-blink{50%{box-shadow:inset 2px 0 #0000}}.game-input{width:100%;min-width:0;min-height:var(--touch-target);scroll-margin-block:var(--step-3);font-family:var(--font-mono);font-size:var(--fs-input);color:var(--paper-white);background:var(--color-surface-input);border:2px solid var(--track-line);border-radius:var(--radius-sm);padding:.6rem .8rem}.game-input::placeholder{color:var(--paper-faint)}.game-input:focus{border-color:var(--speed-cyan);box-shadow:0 0 0 4px color-mix(in srgb, var(--speed-cyan) 18%, transparent);outline:none}.caps-warning{color:var(--caution-amber);margin:0;font-weight:600}.game-hint{color:var(--paper-dim);margin:0;font-size:.85rem}.key-hint{font-family:var(--font-mono);border:1px solid color-mix(in srgb, currentColor 45%, transparent);border-radius:var(--radius-xs);padding:.2rem .35rem;font-size:.72rem;font-weight:500;line-height:1}@media (hover:none) and (pointer:coarse){#game-keys,.key-hint{display:none}}.touch-hint{display:none}@media (hover:none) and (pointer:coarse){.touch-hint{display:block}}.result-dialog,.challenge-dialog{width:min(34rem, calc(100vw - 2 * var(--gutter)));max-height:calc(var(--vvh) - 2rem);color:var(--paper-white);background:var(--track-kerb);border:1px solid var(--track-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);--dialog-pad:var(--step-4);padding:var(--dialog-pad);overflow:auto}.result-dialog{width:min(38rem, calc(100vw - 2 * var(--gutter)))}.result-dialog::backdrop,.challenge-dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(3px)}:is(.result-dialog,.challenge-dialog,.style-dialog,.keys-dialog)[open]{animation:.32s cubic-bezier(.2,.8,.2,1) dialog-in}:is(.result-dialog,.challenge-dialog,.style-dialog,.keys-dialog)[open]::backdrop{animation:.3s ease-out backdrop-in}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px)scale(.97)}}@keyframes backdrop-in{0%{opacity:0}}.result-dialog h2,.challenge-dialog h2{margin-top:0}.result-hero{margin:calc(-1 * var(--dialog-pad)) calc(-1 * var(--dialog-pad)) var(--step-2);padding:var(--step-3) var(--dialog-pad) var(--step-2);text-align:center;border-bottom:1px solid var(--surface-border);background:radial-gradient(ellipse 70% 100% at 50% -20%, color-mix(in srgb, var(--go-green-accent) 16%, transparent), transparent 72%)}.result-hero h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin:0;font-size:.78rem;font-weight:500}.result-score{flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.5rem;margin:.15rem 0 0;display:flex}.result-score-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--go-green);font-variant-numeric:tabular-nums;text-shadow:var(--glow-score);font-size:clamp(3.2rem,2.2rem + 4vw,4.75rem);font-weight:700;line-height:1}.result-score-unit{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);font-size:.9rem;font-weight:500}.result-round{color:var(--paper-dim);margin:.4rem 0 0;font-size:.9rem}.result-main{margin:0 0 var(--step-2);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.5rem;display:grid}.result-main div{border-radius:var(--radius-sm);background:var(--track-kerb-hi);border:1px solid var(--surface-border);box-shadow:inset 0 1px 0 var(--edge-light);gap:.1rem;padding:.55rem .75rem;display:grid}.result-main dt{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim);overflow-wrap:break-word;font-size:.68rem;line-height:1.3}.result-main dd{font-family:var(--font-display);white-space:nowrap;font-variant-numeric:tabular-nums;align-self:end;margin:0;font-size:1.3rem;font-weight:600;line-height:1.2}.result-curve{margin:0 0 var(--step-2)}.result-curve-head{justify-content:space-between;align-items:baseline;gap:.25rem var(--step-2);flex-wrap:wrap;margin-bottom:.35rem;display:flex}.result-curve h3{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim);margin:0;font-size:.68rem;font-weight:500}.result-curve-legend{color:var(--paper-dim);flex-wrap:wrap;gap:.2rem .9rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.result-curve-legend li,.result-curve-tip>span{align-items:center;gap:.35rem;display:inline-flex}.result-curve .key{background:var(--go-green);border-radius:1px;flex:none;width:14px;height:2px;display:inline-block}.result-curve .key-raw{background:var(--paper-faint);opacity:.6}.result-curve .key-error{width:auto;height:auto;color:var(--flag-red);background:0 0;font-weight:700;line-height:1}.result-curve-plot{border-radius:var(--radius-sm);background:var(--track-kerb-hi);border:1px solid var(--surface-border);touch-action:pan-y;cursor:crosshair;position:relative}.result-curve-plot:focus-visible{outline:2px solid var(--speed-cyan);outline-offset:2px}.result-curve-plot svg{display:block;overflow:visible}.result-curve-plot .grid line{stroke:var(--surface-border);stroke-width:1px}.result-curve-plot .grid:first-child line{stroke:var(--track-line)}.result-curve-plot text{font-family:var(--font-mono);fill:var(--paper-dim);font-variant-numeric:tabular-nums;font-size:10px}.result-curve-plot :is(.line-avg,.line-raw){fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.result-curve-plot .line-avg{stroke:var(--go-green)}.result-curve-plot .line-raw{stroke:var(--paper-faint);opacity:.55}.result-curve-plot .error path{fill:none;stroke:var(--flag-red);stroke-width:2px;stroke-linecap:round}.result-curve-plot .error .halo{stroke:var(--track-kerb-hi);stroke-width:5px}.result-curve-plot .cursor line{stroke:var(--paper-faint);stroke-width:1px;stroke-dasharray:3 3}.result-curve-plot circle{stroke:var(--track-kerb-hi);stroke-width:2px}.result-curve-plot .dot-avg{fill:var(--go-green)}.result-curve-plot .dot-raw{fill:var(--paper-faint)}.result-curve-plot .end text{fill:var(--paper-white);paint-order:stroke;stroke:var(--track-kerb-hi);stroke-width:4px;stroke-linejoin:round;font-size:11px;font-weight:600}.result-curve-tip{z-index:1;white-space:nowrap;border-radius:var(--radius-sm);pointer-events:none;min-width:8.5rem;color:var(--paper-soft);background:var(--track-kerb);border:1px solid var(--track-line);box-shadow:var(--shadow-raised);gap:.1rem;padding:.4rem .6rem;font-size:.75rem;line-height:1.35;display:grid;position:absolute;bottom:1.75rem}.result-curve-tip strong{font-family:var(--font-mono);color:var(--paper-white);font-size:.7rem}.result-curve-tip b{color:var(--paper-white);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:.6rem}.result-curve-table summary{cursor:pointer;color:var(--paper-dim);margin-top:.35rem;font-size:.8rem}.result-curve-table .table-scroll{border-radius:var(--radius-sm);border:1px solid var(--surface-border);max-height:13rem;margin-top:.35rem;overflow:auto}.result-curve-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.8rem}.result-curve-table :is(th,td){text-align:right;border-bottom:1px solid var(--surface-border);padding:.2rem .6rem}.result-curve-table thead th{background:var(--track-kerb);color:var(--paper-dim);font-weight:600;position:sticky;top:0}.result-curve-table tbody th{color:var(--paper-dim);font-weight:500}.result-dialog[open] .result-curve-plot :is(.line-avg,.line-raw){stroke-dasharray:1;animation:1s cubic-bezier(.3,.7,.2,1) .2s backwards curve-draw}.result-dialog[open] .result-curve-plot :is(.area,.end,.error){animation:.5s ease-out .9s backwards curve-fade}@keyframes curve-draw{0%{stroke-dashoffset:1px}}@keyframes curve-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.result-dialog[open] .result-curve-plot *{animation:none}}@media (forced-colors:active){.result-curve-plot .line-avg,.result-curve-plot .dot-avg{stroke:highlight}.result-curve-plot .dot-avg{fill:highlight}.result-curve-plot .line-raw,.result-curve-plot .dot-raw{stroke:graytext;opacity:1}.result-curve-plot .error path:not(.halo){stroke:canvastext}.result-curve-plot text{fill:canvastext}.result-curve .key{forced-color-adjust:none;background:highlight}.result-curve .key-raw{background:graytext}.result-curve .key-error{color:canvastext;background:0 0}}.result-details div{display:grid}.result-details dt{color:var(--paper-dim);font-size:.8rem}.result-details dd{font-variant-numeric:tabular-nums;margin:0}.result-save{padding:var(--step-1) var(--step-2);border-radius:var(--radius-sm);background:var(--track-kerb-hi)}.result-save.ok.updated,.result-save.ok.created{border-left:4px solid var(--go-green)}.result-save.warn{border-left:4px solid var(--caution-amber)}.result-details dl{gap:var(--step-1);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.result-details summary,.result-analysis summary{cursor:pointer;margin-top:var(--step-2);font-weight:600}.analysis-legend{color:var(--paper-dim);font-size:.85rem}.analysis-words{font-family:var(--font-mono);flex-wrap:wrap;gap:.3rem .6rem;display:flex}.seg.correct{color:var(--go-green)}.seg.wrong{color:var(--flag-red)}.seg.missing{color:var(--paper-faint);text-decoration:line-through}.seg.extra{color:var(--caution-amber)}.result-actions{bottom:calc(-1 * var(--dialog-pad));z-index:1;gap:var(--step-1);margin:var(--step-3) calc(-1 * var(--dialog-pad)) calc(-1 * var(--dialog-pad));padding:var(--step-2) var(--dialog-pad);background:var(--track-kerb);border-top:1px solid var(--track-line);flex-wrap:wrap;display:flex;position:sticky}.result-actions .tool-button{white-space:normal;text-align:center;line-height:1.25}.result-actions>:last-child:not(:first-child){margin-left:auto}.challenge-hero{text-align:center;margin:calc(-1 * var(--dialog-pad)) calc(-1 * var(--dialog-pad)) var(--step-2);padding:var(--step-3) var(--dialog-pad) var(--step-2);border-bottom:1px solid var(--surface-border);background:radial-gradient(ellipse 70% 100% at 50% -20%, color-mix(in srgb, var(--sector-purple) 18%, transparent), transparent 72%);justify-items:center;gap:.6rem;display:grid}.challenge-hero h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin:0;font-size:.78rem;font-weight:500}.challenger{text-align:left;color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:inline-flex}.challenger:hover strong{color:var(--color-text-link)}.challenger-avatar{object-fit:cover;border-radius:50%;flex:none;width:64px;height:64px}.challenger-text{gap:.1rem;display:grid}.challenger-text strong{font-family:var(--font-display);font-size:1.3rem;line-height:1.15}.challenger-title{color:var(--badge-purple-ink);font-size:.85rem;font-weight:600}.challenger-level{border-radius:var(--radius-pill);font-family:var(--font-mono);background:var(--sector-purple-soft);color:var(--badge-purple-ink);justify-self:start;padding:.05rem .5rem;font-size:.72rem}.challenge-from{color:var(--paper-soft);margin:0}.challenge-goal{margin:0 0 var(--step-2);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.2rem .5rem;display:flex}.challenge-goal-label{text-align:center;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);flex-basis:100%;font-size:.72rem}.challenge-goal-value{font-family:var(--font-display);color:var(--badge-purple-ink);font-variant-numeric:tabular-nums;font-size:clamp(2.8rem,2rem + 3.5vw,4rem);font-weight:700;line-height:1}.challenge-goal-unit{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);font-size:.9rem}.challenge-stats{margin-bottom:var(--step-1)}.challenge-settings{margin:0 0 var(--step-2);text-align:center}.challenge-same,.challenge-rule{margin:0 0 var(--step-1)}.challenge-start{width:100%;margin-top:var(--step-1)}html[data-focus=on] .site-header,html[data-focus=on] .site-footer,html[data-focus=on] .game-intro,html[data-focus=on] .leaderboard-section{display:none}@media (width<=40rem){.game-section{gap:var(--step-2)}.game-intro{align-items:baseline;column-gap:var(--step-2);flex-wrap:wrap;display:flex}.game-intro h1{margin:0}.game-intro .online{order:1;margin:0 0 0 auto}.typing-game{padding:var(--step-2);gap:.6rem}.live-stats{padding:var(--step-1) .2rem .4rem}.live-stats .stat{padding:.1rem .2rem}.live-stats .stat-label{letter-spacing:.03em}.game-controls{grid-template-columns:minmax(0,1fr);gap:.5rem;display:grid}.game-settings{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;width:100%;display:grid}.game-settings .mode-field{grid-area:1/1}.game-settings label:has(#game-duration){grid-area:1/2}.game-settings label:has(#game-wordlist){grid-area:2/1/auto/-1}.game-settings:has(label[hidden]) .mode-field{grid-column:1/-1}.mode-summary{min-width:0}.mode-panel{grid-template-columns:1fr;width:auto;left:0;right:0}.game-settings select{width:100%}.game-toolbar{gap:.4rem;margin-left:0}.tool-actions{display:contents}.game-toolbar .tool-button:not(.tool-restart)>.tool-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.game-toolbar .tool-button:has(>.tool-label):not(.tool-restart){justify-content:center;min-width:2.75rem;min-height:2.75rem}.game-toolbar .tool-button:has(>.tool-label) .icon{width:18px;height:18px}.tool-icons{border-left:0;gap:.2rem;margin-left:auto;padding-left:0}.game-toolbar .tool-icons .tool-button,.game-toolbar .tool-button:has(>.tool-label):not(.tool-restart){min-width:2.5rem;padding-inline:.4rem}.tool-icons .sound-controls>summary .icon-chevron{display:none}.game-toolbar .opponent-picker{order:1;width:100%}.game-toolbar .opponent-picker .tool-button{flex:1;justify-content:center}.mode-hint{font-size:.8rem}.typing-game .round-brief-name{display:none}.typing-game .round-brief-rules{font-size:.85rem;line-height:1.45}.typing-game .round-brief-tag{color:var(--paper-dim);margin:0;font-size:.88rem;display:block}.typing-game .round-brief-rules[data-collapsed]{display:none}.typing-game .round-brief-toggle{font-size:.85rem;display:inline}.typing-game .round-brief-text{flex-wrap:wrap;align-items:baseline;gap:.1rem .6rem;display:flex}.typing-game .round-brief-rules{flex-basis:100%;order:2}.perk-long{display:none}.perk-short{display:inline}.game-intro p:not(.online):not(.welcome){display:none}.perk-bar{gap:.35rem;font-size:.78rem}.game-input{padding-inline:.7rem}.result-dialog,.challenge-dialog{--dialog-pad:var(--step-3)}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.result-actions .primary{grid-column:1/-1}.result-actions .tool-button{justify-content:center;padding-inline:.5rem}.result-actions>:last-child:not(:first-child){margin-left:0}.result-main:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.result-main div{padding:.45rem .5rem}.result-main dt{letter-spacing:.02em;font-size:.6rem}.result-main dd{font-size:1.15rem}}.word.pending{opacity:.22}.stat-value[data-stat=queue]{color:var(--color-text-link)}.stat-value[data-stat=queue][data-level="8"],.stat-value[data-stat=queue][data-level="9"],.stat-value[data-stat=queue][data-level="10"],.stat-value[data-stat=queue][data-level="11"]{color:var(--flag-red)}.stat-value[data-stat=level],.stat-value[data-stat=words]{color:var(--caution-amber)}.live-stats[data-mode=sprint] .timer-bar-fill,.live-stats[data-mode=avalanche] .timer-bar-fill{background:var(--speed-cyan)}.live-stats[data-mode=avalanche] .timer-bar-fill.critical{background:var(--flag-red)}.ghost-track{padding:var(--step-1) var(--step-2);background:var(--track-kerb-hi);border-radius:var(--radius-sm);gap:.35rem;display:grid}.ghost-lane{gap:var(--step-1);grid-template-columns:minmax(5rem,10rem) 1fr;align-items:center;font-size:.85rem;display:grid}.ghost-name{text-overflow:ellipsis;white-space:nowrap;color:var(--paper-dim);overflow:hidden}.ghost-bar{border-radius:var(--radius-pill);background:var(--track-kerb);height:8px;overflow:hidden}.ghost-fill{transform-origin:0;height:100%;transition:transform .25s linear;display:block}.ghost-lane.you .ghost-fill{background:var(--go-green)}.ghost-lane.ghost .ghost-fill{background:var(--paper-dim);opacity:.7}.ghost-diff{font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.ghost-track[data-lead=ahead] .ghost-diff{color:var(--go-green)}.ghost-track[data-lead=behind] .ghost-diff{color:var(--caution-amber)}.training-banner{padding:var(--step-1) var(--step-2);border-left:4px solid var(--speed-cyan);background:var(--track-kerb-hi);border-radius:var(--radius-sm);margin:0}.result-moments{margin:var(--step-1) 0 0;gap:.3rem;padding:0;list-style:none;display:grid}.moment{padding:.35rem var(--step-2);border-radius:var(--radius-sm);background:var(--track-kerb-hi)}.moment.good{border-left:4px solid var(--go-green);background:color-mix(in srgb, var(--go-green) 7%, var(--track-kerb-hi))}.moment.near{border-left:4px solid var(--caution-amber);background:color-mix(in srgb, var(--caution-amber) 5%, var(--track-kerb-hi))}.result-progress{margin-top:var(--step-2);gap:.4rem;display:grid}.xp-line{gap:var(--step-1);flex-wrap:wrap;align-items:baseline;margin:0;display:flex}.xp-gain{color:var(--go-green);font-family:var(--font-display);font-size:1.3rem}.level-up{color:var(--caution-amber);font-weight:700}.streak-chip{font-variant-numeric:tabular-nums}.result-progress .xp-bar{border-radius:var(--radius-pill);background:var(--track-kerb-hi);height:10px;overflow:hidden;box-shadow:inset 0 1px 2px #0000001f}.result-progress .xp-bar span{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg, color-mix(in srgb, var(--go-green-accent) 70%, var(--speed-cyan)), var(--go-green-accent));height:100%;animation:.9s cubic-bezier(.2,.8,.2,1) .25s both xp-fill;display:block}@keyframes xp-fill{0%{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.result-progress .xp-bar span{animation:none}}.quest-done{margin:0}.badge-gain{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.badge-gain li{border-radius:var(--radius-pill);background:var(--track-kerb-hi);padding:.2rem .6rem;font-size:.9rem}.progress-link{margin:0;font-size:.9rem}.result-training{margin-top:var(--step-2)}.result-training h3{margin:0 0 .4rem;font-size:1rem}.result-training table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.result-training th,.result-training td{text-align:left;padding:.2rem .4rem}.train-char{font-family:var(--font-mono);font-size:1.2rem}.daily-freeze{color:var(--color-text-link);margin-top:0}.typing-game[data-caret=block] .char.caret{box-shadow:none;background:color-mix(in srgb, var(--caret) 45%, transparent);border-radius:2px}.typing-game[data-caret=block] .word.current.caret-end{box-shadow:inset -.5em 0 0 color-mix(in srgb, var(--caret) 45%, transparent)}.typing-game[data-caret=underline] .char.caret{box-shadow:inset 0 -3px 0 var(--caret)}.typing-game[data-caret=underline] .word.current.caret-end{box-shadow:inset -.5em -3px 0 -.25em var(--caret)}.typing-game[data-caret=thick] .char.caret{box-shadow:inset 4px 0 0 var(--caret)}.typing-game[data-caret=thick] .word.current.caret-end{box-shadow:inset -4px 0 0 var(--caret)}.typing-game[data-caret=glow] .char.caret{box-shadow:inset 2px 0 0 var(--caret), -4px 0 10px -3px var(--caret)}.typing-game[data-caret=glow] .word.current.caret-end{box-shadow:inset -2px 0 0 var(--caret), 4px 0 10px -3px var(--caret)}.typing-game[data-caret=frame] .char.caret{box-shadow:inset 0 0 0 2px var(--caret);border-radius:var(--radius-xs)}.typing-game[data-caret=pulse] .char.caret{box-shadow:inset 3px 0 0 var(--caret);animation:1.1s ease-in-out infinite caret-pulse}.typing-game[data-caret=pulse] .word.current.caret-end{box-shadow:inset -3px 0 0 var(--caret);animation:1.1s ease-in-out infinite caret-pulse-end}@keyframes caret-pulse{50%{box-shadow:inset 3px 0 0 var(--caret), -3px 0 12px -2px var(--caret)}}@keyframes caret-pulse-end{50%{box-shadow:inset -3px 0 0 var(--caret), 3px 0 12px -2px var(--caret)}}.typing-game[data-accent=cyan]{--typed-ok:var(--accent-cyan);--caret:var(--accent-cyan)}.typing-game[data-accent=amber]{--typed-ok:var(--accent-amber);--caret:var(--accent-amber)}.typing-game[data-accent=magenta]{--typed-ok:var(--accent-magenta);--caret:var(--accent-magenta)}.typing-game[data-accent=gold]{--typed-ok:var(--accent-gold);--caret:var(--accent-gold)}.typing-game[data-accent=rainbow]{--typed-ok:var(--accent-rainbow);--caret:var(--accent-rainbow)}.typing-game[data-accent=ice]{--typed-ok:var(--accent-ice);--caret:var(--accent-ice)}.typing-game[data-accent=volt]{--typed-ok:var(--accent-volt);--caret:var(--accent-volt)}.typing-game[data-accent=inferno]{--typed-ok:var(--accent-inferno);--caret:var(--accent-inferno)}.typing-game[data-accent=plasma]{--typed-ok:var(--accent-plasma);--caret:var(--accent-plasma)}.typing-game[data-accent=crimson]{--typed-ok:var(--accent-crimson);--caret:var(--accent-crimson)}.typing-game[data-accent=chrome]{--typed-ok:var(--accent-chrome);--caret:var(--accent-chrome)}.typing-game[data-accent=aurora]{--typed-ok:var(--accent-aurora);--caret:var(--accent-aurora)}.typing-game[data-accent=legend]{--typed-ok:var(--accent-legend);--caret:var(--accent-legend)}.typing-game[data-accent=rainbow] .char.ok,.typing-game[data-accent=rainbow] .char.caret,.typing-game[data-accent=rainbow] .word.current.caret-end{animation:4s linear infinite ffr-rainbow}.typing-game[data-accent=aurora] .char.ok,.typing-game[data-accent=aurora] .char.caret,.typing-game[data-accent=aurora] .word.current.caret-end{animation:5s ease-in-out infinite alternate ffr-aurora}.typing-game[data-accent=legend] .char.ok,.typing-game[data-accent=legend] .char.caret,.typing-game[data-accent=legend] .word.current.caret-end{animation:3s ease-in-out infinite alternate ffr-legend}@keyframes ffr-rainbow{to{filter:hue-rotate(360deg)}}@keyframes ffr-aurora{to{filter:hue-rotate(50deg)}}@keyframes ffr-legend{to{filter:hue-rotate(-40deg)}}@media (prefers-reduced-motion:reduce){.typing-game[data-accent] .char.ok,.typing-game[data-accent] .char.caret,.typing-game[data-accent] .word.current.caret-end{animation:none}}.caret-glide{width:var(--cw,.6em);height:var(--ch,1.2em);pointer-events:none;box-shadow:inset 2px 0 0 var(--caret);border-radius:1px;transition:transform .1s cubic-bezier(.25,.8,.3,1);position:absolute;top:0;left:0}.caret-glide.jump{transition:none}.words.glide :is(.char.caret,.word.current.caret-end){box-shadow:none;animation:none}.typing-game .words.glide .char.caret{background:0 0}.typing-game[data-phase=ready][data-caret=bar] .caret-glide{animation:1.1s step-end infinite caret-blink}.typing-game[data-caret=block] .caret-glide{box-shadow:none;background:color-mix(in srgb, var(--caret) 45%, transparent);border-radius:2px}.typing-game[data-caret=underline] .caret-glide{box-shadow:inset 0 -3px 0 var(--caret)}.typing-game[data-caret=thick] .caret-glide{box-shadow:inset 4px 0 0 var(--caret)}.typing-game[data-caret=glow] .caret-glide{box-shadow:inset 2px 0 0 var(--caret), -4px 0 10px -3px var(--caret)}.typing-game[data-caret=frame] .caret-glide{box-shadow:inset 0 0 0 2px var(--caret);border-radius:var(--radius-xs)}.typing-game[data-caret=pulse] .caret-glide{box-shadow:inset 3px 0 0 var(--caret);animation:1.1s ease-in-out infinite caret-pulse}.typing-game[data-accent=rainbow] .caret-glide{animation:4s linear infinite ffr-rainbow}.typing-game[data-accent=aurora] .caret-glide{animation:5s ease-in-out infinite alternate ffr-aurora}.typing-game[data-accent=legend] .caret-glide{animation:3s ease-in-out infinite alternate ffr-legend}@media (prefers-reduced-motion:reduce){.caret-glide{transition:none}.typing-game[data-accent] .caret-glide{animation:none}}@media (forced-colors:active){.typing-game .caret-glide{forced-color-adjust:none;background:0 0;animation:none;box-shadow:inset 2px 0 highlight}}.typing-game[data-font=mono] .words{font-family:var(--font-mono)}.typing-game[data-font=display] .words{font-family:var(--font-display);letter-spacing:.01em}.typing-game[data-arena]:not([data-arena=default]){background-image:var(--arena);background-size:var(--arena-size,auto);background-position:var(--arena-position,0 0);border-color:var(--arena-edge,var(--track-line))}.typing-game[data-arena=legend]{animation:14s ease-in-out infinite alternate arena-shift}@keyframes arena-shift{to{background-position:100% 0,0 0}}@media (prefers-reduced-motion:reduce){.typing-game[data-arena=legend]{animation:none}}.word.masked,.word.current.masked .char{color:#0000}.word.masked{background:color-mix(in srgb, var(--paper-dim) 22%, transparent);border-radius:var(--radius-xs)}.word.current.masked{background:color-mix(in srgb, var(--paper-white) 12%, transparent);border-radius:var(--radius-xs);outline-color:#0000}.word.current.masked .char.typed{color:#0000;background:color-mix(in srgb, var(--caret) 35%, transparent)}.stat-value[data-stat=target][data-level=ok]{color:var(--go-green)}.stat-value[data-stat=target][data-level=low]{color:var(--caution-amber)}.stat-value[data-stat=stage],.stat-value[data-stat=beat]{color:var(--color-text-link)}.stat-value[data-stat=inbeat][data-level=in]{color:var(--go-green)}.stat-value[data-stat=inbeat][data-level=fast],.stat-value[data-stat=inbeat][data-level=slow]{color:var(--caution-amber)}.beat-chip{border-radius:var(--radius-pill);background:var(--track-kerb-hi);justify-self:center;margin:0;padding:.2rem .8rem;font-size:.9rem;font-weight:600}.beat-chip[data-beat=in]{color:var(--go-green)}.beat-chip[data-beat=fast],.beat-chip[data-beat=slow]{color:var(--caution-amber)}.stage-flash{color:var(--go-green);justify-self:center;margin:0;font-weight:700}.race-track{padding:var(--step-1) var(--step-2);background:var(--track-kerb-hi);border-radius:var(--radius-sm);gap:.3rem;display:grid}.race-track .ghost-lane{grid-template-columns:1.5rem minmax(5rem,10rem) 1fr}.race-rank{font-family:var(--font-display);font-variant-numeric:tabular-nums;text-align:center;color:var(--paper-dim)}.race-track .ghost-lane.you .race-rank,.race-track .ghost-lane.you .ghost-name{color:var(--paper-white);font-weight:700}.race-track .ghost-lane.out .ghost-fill{opacity:.4}.race-track .ghost-lane.rival .ghost-fill{background:var(--caution-amber);opacity:.85}.rival-mark{color:var(--badge-warn-ink)}.race-place{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.race-track[data-lead=ahead] .race-place{color:var(--go-green)}.race-track[data-lead=behind] .race-place{color:var(--caution-amber)}.opponent-picker{border:1px solid var(--track-line);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.opponent-picker .tool-button{border:0;border-radius:0}.opponent-picker .tool-button[aria-pressed=true]{font-weight:700}.perk-bar{gap:var(--step-1);flex-wrap:wrap;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.perk-bar li{border-radius:var(--radius-pill);background:var(--track-kerb-hi);padding:.2rem .7rem}.perk-bar .perk-first{color:var(--badge-warn-ink);font-weight:600}.race-result{margin-top:var(--step-2)}.race-result h3{margin:0 0 .3rem;font-size:1rem}.race-result ol{font-variant-numeric:tabular-nums;gap:.15rem;margin:0;padding-left:1.5rem;display:grid}.race-result li.you{color:var(--go-green);font-weight:700}.xp-parts{color:var(--paper-dim);margin:0;font-size:.85rem}.unlock-line{padding:.35rem var(--step-2);border-radius:var(--radius-sm);background:var(--track-kerb-hi);border-left:4px solid var(--sector-purple);margin:0}.goal-line{margin:0}.goal-line.done{color:var(--go-green);font-weight:600}.style-dialog{width:min(44rem, calc(100vw - 2 * var(--gutter)));max-height:calc(var(--vvh) - 2rem);color:var(--paper-white);background:var(--track-kerb);border:1px solid var(--track-line);border-radius:var(--radius-md);box-shadow:var(--shadow-float);--dialog-pad:var(--step-4);padding:var(--dialog-pad);overflow:auto}.style-dialog::backdrop{background:var(--backdrop)}.style-dialog h2{margin-top:0}.style-lead{color:var(--paper-dim)}.style-preview-bar{top:calc(-1 * var(--dialog-pad));z-index:2;margin:0 calc(-1 * var(--dialog-pad));padding:var(--step-1) var(--dialog-pad) var(--step-2);background:var(--track-kerb);border-bottom:1px solid var(--surface-border);position:sticky}.style-preview-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 .35rem;font-size:.68rem}.typing-game.style-preview{--fs-words:clamp(1.1rem, .9rem + 1vw, 1.4rem);padding:var(--step-2) var(--step-3);box-shadow:var(--glow-live);gap:0}.style-preview .words{height:var(--line)}.style-preview .words-inner{flex-wrap:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 80%,#0000);mask-image:linear-gradient(90deg,#000 80%,#0000)}.style-group{margin:var(--step-2) 0 0;border:0;padding:0}.style-group legend{margin-bottom:.4rem;font-weight:700}.style-options{grid-template-columns:repeat(auto-fill,minmax(min(10.5rem,46%),1fr));gap:.4rem;display:grid}.style-option{border:1px solid var(--track-line);border-radius:var(--radius-sm);cursor:pointer;background:var(--track-kerb-hi);flex-wrap:wrap;align-items:center;gap:.2rem .45rem;padding:.4rem .55rem;display:flex;position:relative}.style-option:has(input:checked){border-color:var(--speed-cyan)}.style-option:has(input:focus-visible){outline:2px solid var(--speed-cyan);outline-offset:2px}.style-option.locked{cursor:not-allowed;opacity:.55}.style-option input{opacity:0;pointer-events:none;position:absolute}.style-name{overflow-wrap:break-word;flex:1;min-width:0}.style-lock{color:var(--paper-dim);white-space:nowrap;flex-basis:100%;padding-left:1.85rem;font-size:.75rem}.style-option .swatch{width:1.4rem;height:1rem}.result-dialog .link-button{font:inherit;color:var(--color-text-link);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.result-mode-line{color:var(--paper-dim);margin:0}@media (width<=40rem){.style-dialog{--dialog-pad:var(--step-3)}.style-option{font-size:.9rem}}.result-progress .xp-bar.max span{background:var(--swatch-gold)}.style-look{margin:var(--step-2) 0 0;color:var(--paper-dim);font-size:.9rem}.race-room{gap:var(--step-3);display:grid}.race-room-connection{padding:.5rem var(--step-2);border-radius:var(--radius-sm);background:var(--color-state-warning-bg);color:var(--badge-warn-ink);margin:0;font-size:.9rem}.race-room-lobby{gap:var(--step-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));align-items:start;display:grid}.race-room-panel{gap:var(--step-2);padding:var(--step-3);border:1px solid var(--track-line);border-radius:var(--radius-md);background:var(--track-kerb);display:grid}.race-room-panel h2{margin:0;font-size:1.2rem}.race-room-code{gap:.15rem;margin:0;display:grid}.race-room-code span{text-transform:uppercase;letter-spacing:.08em;color:var(--paper-dim);font-size:.78rem;font-family:var(--font-mono)}.race-room-code strong{font-family:var(--font-mono);letter-spacing:.12em;color:var(--paper-white);font-size:clamp(1.6rem,1.2rem + 1.5vw,2.2rem)}.race-room-hint{color:var(--paper-dim);margin:0;font-size:.9rem}.race-room .invite-url{width:100%;font:inherit;font-family:var(--font-mono);border:1px solid var(--track-line);border-radius:var(--radius-sm);background:var(--track-kerb-hi);color:var(--paper-white);padding:.55rem .7rem;font-size:.85rem}.race-room .invite-qr{justify-items:start;margin:0;display:grid}.race-room .invite-qr .qr{border-radius:var(--radius-sm);background:#fff;width:9rem;height:9rem;padding:.4rem}.race-room .invite-qr .qr svg{width:100%;height:100%;display:block}.race-room-members{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.race-room-members li{border-radius:var(--radius-sm);background:var(--track-kerb-hi);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;padding:.45rem .6rem;display:flex}.race-room-members li[data-me]{outline:1px solid color-mix(in srgb, var(--speed-cyan) 60%, transparent)}.race-member-name{flex-wrap:wrap;align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.race-room-settings .game-settings{margin:0}@media (width>=60rem){.race-room-lobby{grid-template-columns:repeat(3,minmax(0,1fr))}.race-room-invite{order:-1}}@media (width>=40.01rem){.race-room-settings .game-settings{gap:var(--step-1);grid-template-columns:minmax(0,1fr);width:100%;display:grid}.race-room-settings .game-settings>*{grid-area:auto/1/auto/-1}}.race-room-settings .game-settings label,.race-room-settings .mode-field{gap:.3rem;display:grid}.race-room-settings .game-settings label>span:first-child,.race-room-settings .mode-label{clip:auto;white-space:normal;width:auto;height:auto;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim);font-size:.72rem;position:static;overflow:visible}.race-room-settings .game-settings select,.race-room-settings .mode-summary{width:100%;min-width:0}.invite-qr-toggle{justify-self:start}@media (width>=40.01rem){.invite-qr-toggle{display:none}}@media (width<=40rem){.race-room .invite-qr:not([data-open]){display:none}}.race-room-start{justify-self:start}.race-room-roundline{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;display:flex}.race-room-leave-inline{margin-left:auto;font-size:.9rem}.race-room-race{gap:var(--step-2);display:grid}.race-room-countdown{padding:var(--step-2);border-radius:var(--radius-md);background:var(--track-kerb-hi);justify-items:center;gap:.25rem;display:grid}.race-room-countdown p{color:var(--paper-dim);margin:0;font-size:.95rem}.race-room-count{font-family:var(--font-display);color:var(--go-green);font-variant-numeric:tabular-nums;font-size:clamp(3rem,2rem + 5vw,5rem);line-height:1;animation:1s ease-in-out infinite race-count-pulse}@keyframes race-count-pulse{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.race-room[data-locked] .words-frame{visibility:hidden}.race-room-result tr[data-me] td{background:color-mix(in srgb, var(--speed-cyan) 10%, transparent)}.race-room-foot{margin:0}.race-room-closed{gap:var(--step-2);justify-items:start;display:grid}@media (prefers-reduced-motion:reduce){.race-room-count{animation:none}.race-room-lanes .ghost-fill{transition:none}}.party,.party-setup{gap:var(--step-3);display:grid}.party-players{border:1px solid var(--track-line);border-radius:var(--radius-md);padding:var(--step-2) var(--step-3);gap:var(--step-2);justify-items:start;display:grid}.party-players legend{padding:0 .3rem;font-weight:700}.party-players ol{gap:.5rem;width:100%;max-width:28rem;margin:0;padding-left:1.6rem;display:grid}.party-players li{align-items:center;gap:.4rem;display:flex}.party-players input{font:inherit;border:1px solid var(--track-line);border-radius:var(--radius-sm);background:var(--track-kerb);color:var(--paper-white);flex:1;padding:.5rem .7rem}.party-players input:focus-visible{outline:2px solid var(--speed-cyan);outline-offset:1px}.party-options{gap:var(--step-2);display:grid}.party-rounds{border:0;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;display:flex}.party-rounds legend{float:left;margin-right:.5rem;font-weight:500}.party-rounds .segmented label{font-variant-numeric:tabular-nums;justify-content:center;min-width:2.75rem}.party-note{color:var(--paper-dim);margin:0;font-size:.9rem}.party-start{font-size:1.1rem}.party-handover{justify-items:center;gap:var(--step-2);text-align:center;padding:var(--step-4) var(--step-2);border-radius:var(--radius-md);background:var(--track-kerb-hi);display:grid}.party-handover p{margin:0}.party-last{font-family:var(--font-mono);color:var(--go-green)}.party-round{color:var(--paper-dim);margin:0;font-size:.9rem}.party-name{font-family:var(--font-display);margin:0;font-size:clamp(2rem,1.4rem + 3vw,3.4rem)}.party-hint{color:var(--paper-dim)}.party-ready{padding-inline:1.5rem;font-size:1.15rem}.party-play{gap:var(--step-2);display:grid}.party-countdown{place-items:center;min-height:9rem;display:grid}.party-countdown span{font-family:var(--font-display);color:var(--go-green);font-variant-numeric:tabular-nums;font-size:clamp(4rem,3rem + 6vw,7rem);animation:1s ease-in-out infinite race-count-pulse}.party-result{gap:var(--step-2);display:grid}.party-result h2{margin:0}.party-result h2:focus{outline:none}.party-result h3{margin:var(--step-2) 0 0;font-size:1.05rem}.party-podium{gap:var(--step-2);flex-wrap:wrap;align-items:flex-end;margin:0;padding:0;list-style:none;display:flex}.party-podium li{min-width:7rem;padding:var(--step-2);border-radius:var(--radius-md);background:var(--track-kerb-hi);justify-items:center;gap:.2rem;display:grid}.party-podium li[data-place="1"]{padding-block:var(--step-3);border:1px solid color-mix(in srgb, var(--caution-amber) 60%, transparent)}.party-medal{font-size:2rem}.party-more{color:var(--paper-dim);margin:0}.party-abort{margin:0;font-size:.9rem}.party[data-big] .words{font-size:clamp(1.8rem,1.2rem + 2.5vw,3rem)}.party[data-big] .party-name{font-size:clamp(2.6rem,1.8rem + 4vw,4.5rem)}@media (prefers-reduced-motion:reduce){.party-countdown span{animation:none}}.result-dialog.celebrate{overflow:hidden}.result-celebrate{pointer-events:none;height:0;position:absolute;inset:0 0 auto}.result-celebrate span{top:-12px;left:calc(6% + var(--i) * 6.5%);background:conic-gradient(var(--paper-white) 0 25%, var(--track-kerb) 0 50%, var(--paper-white) 0 75%, var(--track-kerb) 0);outline:1px solid var(--track-line);opacity:0;width:9px;height:9px;animation:ffr-flag-fall 1.4s cubic-bezier(.2,.7,.3,1) calc(var(--i) * 45ms) 1 both;border-radius:2px;position:absolute}.result-celebrate span:nth-child(3n){background:var(--caution-amber-soft);outline:none}.result-celebrate span:nth-child(4n){background:var(--go-green-accent);outline:none}.result-score.is-best .result-score-value{color:var(--go-green);animation:.6s ease-out both ffr-best-pop}@keyframes ffr-flag-fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:1}to{opacity:0;transform:translateY(260px) translateX(calc((var(--i) - 7) * 4px)) rotate(calc(var(--i) * 40deg))}}@keyframes ffr-best-pop{0%{transform:scale(.85)}60%{transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.result-celebrate{display:none}.result-score.is-best .result-score-value{animation:none}}.game-intro .welcome{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;display:flex}.game-intro .welcome-streak{color:var(--caution-amber);font-weight:600}.blog-practice{margin-top:var(--step-4)}.practice{gap:var(--step-2);display:grid}.practice-head h2{margin:0 0 .25rem;font-size:1.3rem}.practice-head p{color:var(--paper-dim);margin:0}.typing-game.practice-game{--fs-words:clamp(1.05rem, .95rem + .6vw, 1.3rem);padding:var(--step-2) var(--step-3) var(--step-3);gap:var(--step-2)}.practice-meter{align-items:baseline;gap:.35rem var(--step-2);font-family:var(--font-mono);color:var(--paper-dim);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:auto 1fr;font-size:.8rem;display:grid}.practice-wpm strong{font-family:var(--font-display);letter-spacing:0;color:var(--go-green);font-variant-numeric:tabular-nums;font-size:1.5rem}.practice-time{font-variant-numeric:tabular-nums;justify-self:end}.practice-bar{border-radius:var(--radius-pill);background:var(--track-kerb-hi);grid-column:1/-1;height:4px;overflow:hidden}.practice-bar span{background:var(--speed-cyan);transform-origin:0;height:100%;transition:transform .1s linear;display:block}.practice-result{gap:var(--step-2);display:grid}.practice-result .result-main{margin:0}.practice-error{color:var(--paper-dim);margin:0}@media (prefers-reduced-motion:reduce){.practice-bar span{transition:none}}.keys-dialog{width:min(40rem, calc(100vw - 2 * var(--gutter)));max-height:calc(var(--vvh) - 2rem);color:var(--paper-white);background:var(--track-kerb);border:1px solid var(--track-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:var(--step-4);overflow:auto}.keys-dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(3px)}.keys-dialog h2{margin:0 0 var(--step-2)}.keys-groups{gap:var(--step-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));display:grid}.keys-groups h3{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 .5rem;font-size:.72rem;font-weight:500}.keys-groups dl{gap:.45rem;margin:0;display:grid}.keys-groups dl div{grid-template-columns:6.5rem 1fr;align-items:center;gap:.6rem;display:grid}.keys-groups dt{flex-wrap:wrap;gap:.25rem;display:flex}.keys-groups dd{color:var(--paper-soft);margin:0;font-size:.92rem}.keys-dialog kbd{text-align:center;min-width:1.9rem;font-family:var(--font-mono);color:var(--paper-white);background:var(--track-kerb-hi);border:1px solid var(--track-line);border-radius:var(--radius-xs);border-bottom-width:3px;padding:.15rem .45rem;font-size:.8rem}.keys-actions{margin:var(--step-3) 0 0}@media (width<=40rem){.keys-dialog{padding:var(--step-3)}}.daily-badges[data-astro-cid-qgbekj6r]{margin-top:var(--step-2)}.daily-rules[data-astro-cid-qgbekj6r],.daily-brief[data-astro-cid-qgbekj6r]{margin-bottom:var(--step-3)}.daily-guest[data-astro-cid-qgbekj6r]{justify-content:space-between;align-items:center;gap:var(--step-2);flex-wrap:wrap;display:flex}.daily-guest[data-astro-cid-qgbekj6r] p[data-astro-cid-qgbekj6r]{max-width:52ch;margin:0}.daily-streak[data-astro-cid-qgbekj6r]{gap:var(--step-4);margin:var(--step-2) 0;display:flex}.daily-streak[data-astro-cid-qgbekj6r] dt[data-astro-cid-qgbekj6r]{text-transform:uppercase;letter-spacing:.06em;color:var(--paper-dim);font-size:.75rem}.daily-streak[data-astro-cid-qgbekj6r] dd[data-astro-cid-qgbekj6r]{font-family:var(--font-display);margin:0;font-size:1.6rem}.daily-rank[data-astro-cid-qgbekj6r]{font-size:1rem}.view-switch[data-astro-cid-qgbekj6r]{margin-bottom:var(--step-2);gap:.25rem;display:flex}.view-switch[data-astro-cid-qgbekj6r] a[data-astro-cid-qgbekj6r]{border:1px solid var(--track-kerb-hi);border-radius:var(--radius-pill);color:var(--color-text-link);padding:.35rem .8rem;text-decoration:none}.view-switch[data-astro-cid-qgbekj6r] a[data-astro-cid-qgbekj6r][aria-current=page]{background:var(--track-kerb-hi);color:var(--paper-white);font-weight:700}.key-heatmap-wrap[data-astro-cid-tiliztxy]{min-height:12rem}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-board{margin:var(--step-2) 0;gap:.35rem;max-width:100%;display:grid;overflow-x:auto}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-row{gap:.35rem;display:flex}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-key{border-radius:var(--radius-sm);color:#fff;text-transform:uppercase;flex:none;place-items:center;width:2.4rem;height:2.4rem;font-weight:700;display:inline-grid;box-shadow:inset 0 -3px #00000040}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-key.none{background:var(--track-kerb-hi);color:var(--paper-dim)}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-legend{color:var(--paper-dim);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-legend .swatch{border-radius:var(--radius-xs);width:1rem;height:1rem;display:inline-block}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-legend .swatch.none{background:var(--track-kerb-hi);margin-left:.6rem}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-empty{color:var(--paper-dim)}@media (width<=30rem){.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-key{width:1.75rem;height:2rem;font-size:.85rem}.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-row,.key-heatmap-wrap[data-astro-cid-tiliztxy] .heatmap-board{gap:.2rem}}.race-howto[data-astro-cid-rxdn2hzp]{margin:0 0 var(--step-4);max-width:62ch;color:var(--paper-dim);gap:.35rem;padding-left:1.4rem;display:grid}.race-howto[data-astro-cid-rxdn2hzp] li[data-astro-cid-rxdn2hzp]::marker{color:var(--speed-cyan);font-weight:700}.race-lobby[data-astro-cid-rxdn2hzp]{gap:var(--step-3);margin-top:var(--step-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));align-items:start;display:grid}.race-card[data-astro-cid-rxdn2hzp]{padding:var(--step-3);border:1px solid var(--track-line);border-radius:var(--radius-md);background:var(--track-kerb);gap:var(--step-2);display:grid}.race-card[data-astro-cid-rxdn2hzp] h2[data-astro-cid-rxdn2hzp]{margin:0;font-size:1.25rem}.race-form-row[data-astro-cid-rxdn2hzp] .field[data-astro-cid-rxdn2hzp][hidden]{display:none}.race-form-row[data-astro-cid-rxdn2hzp]{gap:var(--step-2);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.race-code-input[data-astro-cid-rxdn2hzp]{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;font-size:1.3rem}.mode-choice[data-astro-cid-rxdn2hzp]{border:0;min-width:0;margin:0;padding:0}.mode-choice[data-astro-cid-rxdn2hzp] legend[data-astro-cid-rxdn2hzp]{margin-bottom:.4rem;font-weight:600}.mode-grid[data-astro-cid-rxdn2hzp]{grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:.4rem;display:grid}.mode-grid[data-astro-cid-rxdn2hzp] .mode-option[data-astro-cid-rxdn2hzp]{border-color:var(--track-line)}.mode-grid[data-astro-cid-rxdn2hzp] .mode-option[data-astro-cid-rxdn2hzp]:has(input:checked){border-color:color-mix(in srgb, var(--speed-cyan) 55%, transparent)}.notice[data-astro-cid-rxdn2hzp],.form-error[data-astro-cid-rxdn2hzp]{margin-bottom:var(--step-3)}.party-about[data-astro-cid-5exxuofs] ol[data-astro-cid-5exxuofs]{max-width:62ch;color:var(--paper-dim);gap:.35rem;padding-left:1.4rem;display:grid}
