@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-opsz-normal-BjhtXyW2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-opsz-normal-BQn1nviT.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-normal-s-izfB6B.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-opsz-italic-DTr-ymY4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-opsz-italic-CSPGnFdO.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-italic-kJKFiXvB.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0d0c0b;--ink:#f3eee3;--muted:#a39d91;--dim:#6f6a60;--rule:#2a2825;--accent:#ff4f1f;--serif:"Newsreader Variable", "Iowan Old Style", Georgia, serif;--mono:"JetBrains Mono Variable", ui-monospace, Menlo, monospace;--face:var(--serif);--face-scale:1;--word-gap:.27em;--scale:1;--anchor:34vw;--edge:clamp(20px, 2.6vw, 44px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=paper]{--bg:#f1ebdd;--ink:#16130e;--muted:#6b6455;--dim:#8a816f;--rule:#d5ccb9;--accent:#d6330a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=forest]{--bg:#0e1a14;--ink:#efe9d8;--muted:#9aa99e;--dim:#6d7f73;--rule:#24332b;--accent:#f2b13c}:root[data-theme=klein]{--bg:#1a2bc4;--ink:#f6f1e4;--muted:#c9cef2;--dim:#8f9ae6;--rule:#3a4ad2;--accent:#ffd23f}:root[data-theme=ash]{--bg:#e4e2dc;--ink:#1a1917;--muted:#5a5751;--dim:#7c7871;--rule:#c9c6bf;--accent:#2448c9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=plum]{--bg:#1d1321;--ink:#f3eaf0;--muted:#b7a3b3;--dim:#806b7d;--rule:#3a2a42;--accent:#ff7aa8}:root[data-theme=sepia]{--bg:#2a2017;--ink:#f2e5cd;--muted:#bda98c;--dim:#88765d;--rule:#3e3224;--accent:#ec8d3e}:root[data-theme=void]{--bg:#000;--ink:#ececec;--muted:#9c9c9c;--dim:#636363;--rule:#1e1e1e;--accent:#45d6c8}:root[data-theme=rosso]{--bg:#951b15;--ink:#fff5ea;--muted:#ffcfc3;--dim:#ef8a7e;--rule:#ab2f28;--accent:#ffe066}:root[data-font=mono]{--face:var(--mono);--face-scale:.8;--word-gap:.6em}:root[data-size=s]{--scale:.78}:root[data-size=l]{--scale:1.24}:root[data-layout=tape]{--fs:calc(clamp(3.4rem, 6.6vw, 7.4rem) * var(--scale) * var(--face-scale));--line:calc(var(--fs) * 1.32)}:root[data-layout=lines]{--fs:calc(clamp(1.9rem, 3vw, 3.2rem) * var(--scale) * var(--face-scale));--line:calc(var(--fs) * 1.5);--measure:min(1120px, 88vw)}:root[data-layout=classic]{--fs:calc(clamp(1.5rem, 2.2vw, 2.3rem) * var(--scale) * var(--face-scale));--line:calc(var(--fs) * 1.6);--measure:min(1040px, 86vw)}:root{--text-small:.86rem;--text-label:.92rem;--text-body:1rem;--text-lead:1.5rem;--text-title:1.9rem;--space-1:6px;--space-2:14px;--space-3:26px;--space-4:44px;--hairline:1px solid var(--rule);--fast:.16s;--fade:.28s;--theme:.5s;--ease-out:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-optical-sizing:auto;font-variant-numeric:lining-nums;padding:0 var(--edge);font-size:1.1875rem;line-height:1.55}a{color:inherit;-webkit-text-decoration-color:var(--dim);text-decoration-color:var(--dim);text-underline-offset:.18em;transition:text-decoration-color var(--fast) ease}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}kbd{font:inherit;font-style:italic}.page-head,.page-foot{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-3) 0;font-size:var(--text-body);color:var(--muted);display:flex}.page-head .logo{letter-spacing:-.015em;color:var(--ink);font-size:22px;font-style:italic;text-decoration:none}.page-head nav,.page-foot nav{gap:var(--space-2);display:flex}.page-body{max-width:40rem;padding:clamp(40px, 9vh, 96px) 0 var(--space-4);margin:0 auto}.page-body.public-profile{gap:var(--space-4);flex-direction:column;max-width:1200px;display:flex}.public-profile .who h2{letter-spacing:-.03em;font-size:clamp(2.6rem,6vw,4.5rem);font-style:italic;font-weight:300;line-height:1}.public-profile .avatar svg{width:56px;height:56px}.public-profile section{border-top:0;margin-top:0;padding-top:0}.public-cta{gap:var(--space-1) var(--space-3);padding-top:var(--space-3);border-top:var(--hairline);flex-wrap:wrap;align-items:baseline;display:flex}.public-cta a{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;font-style:italic;text-decoration-thickness:2px}h1{letter-spacing:-.025em;font-size:clamp(3rem,8vw,5.25rem);font-weight:400;line-height:1.02}.lead{margin-top:var(--space-3);font-size:var(--text-lead);line-height:1.35}.start{margin-top:var(--space-3);font-size:var(--text-lead);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);font-style:italic;text-decoration-thickness:2px;display:inline-block}section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:var(--hairline)}h2{font-size:var(--text-title);letter-spacing:-.01em;margin-bottom:var(--space-2);font-weight:400;line-height:1.2}h3{font-size:inherit;margin-top:var(--space-3);font-weight:500}section p+p,section ul{margin-top:var(--space-2)}section ul{padding-left:1.1em}section li+li{margin-top:var(--space-1)}.modes div{gap:var(--space-2);padding:var(--space-1) 0;border-bottom:var(--hairline);grid-template-columns:6rem 1fr;display:grid}.modes div:last-child{border-bottom:0}.modes dt{color:var(--muted);font-style:italic}.modes dd{margin:0}.page-foot{margin-top:var(--space-4);border-top:var(--hairline)}.board-languages{gap:var(--space-2);margin-top:var(--space-4);padding-bottom:var(--space-1);border-bottom:var(--hairline);color:var(--muted);flex-wrap:wrap;font-style:italic;display:flex}.board-languages a{text-decoration:none}.board-languages a[aria-current]{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.board-status{margin-top:var(--space-2);color:var(--muted)}.board-list{margin-top:var(--space-2);padding:0;list-style:none}.board-list li{align-items:baseline;gap:var(--space-1);padding:var(--space-1) 0;border-bottom:var(--hairline);font-variant-numeric:tabular-nums;grid-template-columns:2.4rem 1fr 3.2rem 3.2rem;display:grid}.board-rank,.board-acc{color:var(--muted)}.board-wpm,.board-acc{text-align:right}.board-who{align-items:baseline;gap:8px;min-width:0;display:flex}.board-who b{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.board-who small{color:var(--muted);font-size:var(--text-small);text-overflow:ellipsis;white-space:nowrap;font-style:italic;overflow:hidden}.board-face{border:var(--hairline);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;align-self:center;overflow:hidden}.keyprint{fill:currentColor;width:100%;height:100%;display:block}body.nf{grid-template-rows:auto 1fr;min-height:100dvh;display:grid;overflow-x:hidden}.nf-main{align-self:center;padding-bottom:12vh;padding-left:clamp(0px,18vw,340px)}.nf-count{font-size:var(--text-lead);color:var(--muted);font-variant-numeric:tabular-nums;font-style:italic}.nf-typed{min-height:1.32em;margin-top:var(--space-1);white-space:pre;align-items:center;font-size:clamp(3rem,6.6vw,7.4rem);line-height:1.32;display:flex}.nf-typed.nf-cut{-webkit-mask-image:linear-gradient(90deg,#000 80%,#0000);mask-image:linear-gradient(90deg,#000 80%,#0000)}.nf-wrong{color:var(--accent)}.nf-caret{background:var(--accent);flex:none;width:3px;height:.95em;margin-left:.04em}.nf-title{margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--hairline);margin-left:calc(-1 * (clamp(0px, 18vw, 340px) + var(--edge)));padding-left:calc(clamp(0px, 18vw, 340px) + var(--edge));margin-right:calc(-1 * var(--edge));font-size:var(--text-lead);letter-spacing:0;font-weight:400;line-height:1.35}.nf-suggest{font-size:var(--text-lead);line-height:1.35}.nf-hint{gap:var(--space-3);margin-top:var(--space-3);font-size:var(--text-body);color:var(--muted);flex-wrap:wrap;display:flex}.nf-hint a{transition:color var(--fast) ease;text-decoration:none}.nf-hint a:hover,.nf-hint kbd{color:var(--ink)}@media (prefers-reduced-motion:reduce){a{transition:none}}.page-body.race{max-width:56rem}.race-start{align-items:baseline;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.race-join{align-items:baseline;gap:var(--space-2);margin-top:var(--space-3);display:flex}.race-start .race-join{margin-top:0}.race-join input{border:0;border-bottom:var(--hairline);width:9rem;color:var(--ink);font:inherit;font-variant-numeric:lining-nums;letter-spacing:.08em;text-transform:uppercase;background:0 0;padding:4px 0}.race-join input[name=race-name]{text-transform:none;letter-spacing:0;width:14rem}.race-join input:focus{border-bottom-color:var(--accent);outline:none}.race-button,.race-start-button,.race-link,.race-option{color:var(--ink);font:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;background:0 0;border:0;padding:0;font-style:italic;text-decoration-thickness:2px}.race-start-button{font-size:var(--text-lead)}.race-link{color:var(--muted);text-decoration-thickness:1px}.race-link:hover{color:var(--ink)}.race-option{color:var(--muted);transition:color var(--fast) ease;text-decoration:none}.race-option:hover:not(:disabled){color:var(--ink)}.race-option[aria-pressed=true]{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.race-option:disabled{cursor:default}.race-option:disabled:not([aria-pressed=true]){color:var(--dim)}.race-note{color:var(--muted);font-style:italic}.race-status{margin-top:var(--space-2);color:var(--muted)}body.in-room .race>.lead{display:none}body.in-room .race>h1{font-size:var(--text-title);color:var(--muted);font-style:italic;font-weight:400}.race-share{align-items:baseline;gap:var(--space-2) var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.race-code{letter-spacing:.14em;font-variant-numeric:lining-nums;font-size:clamp(3rem,9vw,6rem);font-weight:300;line-height:1}.race-matchup{align-items:baseline;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--ink);border-bottom:var(--hairline);grid-template-columns:1fr auto 1fr;display:grid}.race-side{flex-direction:column;gap:2px;min-width:0;display:flex}.race-side:last-child{text-align:right}.race-side b{font-size:var(--text-title);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.race-side small{color:var(--muted);font-style:italic;font-size:var(--text-label)}.race-side.empty b{color:var(--dim);font-style:italic}.race-side.is-ready small{color:var(--accent)}.race-vs{color:var(--muted);font-style:italic}.race-setup{margin-top:var(--space-3)}.race-setup div{gap:var(--space-2);padding:var(--space-1) 0;border-bottom:var(--hairline);grid-template-columns:6rem 1fr;display:grid}.race-setup dt{color:var(--muted);font-style:italic}.race-setup dd{margin:0}.race-setup .race-note{margin-top:var(--space-1);font-size:var(--text-label)}.race-options{gap:var(--space-2);flex-wrap:wrap;display:flex}.race-go{align-items:baseline;gap:var(--space-1) var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.race-stage{width:100vw;margin:var(--space-4) 0 var(--space-3) calc(50% - 50vw)}.race-stage[hidden]{display:none}.race-stage #hud.counting{color:var(--accent);font-style:normal}.race-stage #ghost.on{opacity:1;background:var(--ink)}body.racing .race>h1{display:none}body.racing .page-body.race{padding-top:clamp(24px,6vh,64px)}.race-tracks{margin-top:var(--space-3);padding:0;list-style:none}.race-tracks li{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;grid-template-columns:minmax(6rem,14rem) 1fr;display:grid}.race-tracks b{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.race-track{background:var(--rule);height:1px;position:relative}.race-fill{background:var(--accent);transform-origin:0;transition:transform .15s linear;position:absolute;inset:-1px 0;transform:scaleX(0)}.race-headline{margin-top:var(--space-3)}.race-winner{letter-spacing:-.02em;font-size:clamp(2.6rem,7vw,4.5rem);font-style:italic;font-weight:300;line-height:1.05}.race-results{margin-top:var(--space-3);border-top:1px solid var(--ink);padding:0;list-style:none}.race-results li{align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:var(--hairline);font-variant-numeric:lining-nums tabular-nums;grid-template-columns:7rem 1fr 6rem 3.5rem 4.5rem;display:grid}.race-results b{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.race-place{color:var(--muted);font-style:italic}.race-results li.you .race-place{color:var(--ink)}.race-figure{text-align:right;color:var(--muted)}.race-wpm{color:var(--ink);font-size:var(--text-lead);white-space:nowrap}.race-wpm:after{content:" wpm";color:var(--muted);font-size:var(--text-label);font-style:italic}.race-badge{margin-top:var(--space-2);color:var(--accent);font-style:italic}@media (width<=640px){.race-results li{grid-template-columns:5rem 1fr 4.5rem}.race-results li>:nth-child(n+4){display:none}.race-matchup{grid-template-columns:1fr}.race-side:last-child{text-align:left}}@media (prefers-reduced-motion:reduce){.race-fill{transition:none}}
