:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f7f7f5;--surface:#fff;--border:#e0e0dc;--ink:#1c1c1a;--ink-dim:#7d7d78;--pending:#c2c2bc;--ok:#1c1c1a;--bad:#b5473f;--bad-bg:#f5ddd8;--accent:#3454a3;--accent-ink:#fff;--accent-soft:#e1e7f5;--hl-keyword:#3a5f8a;--hl-string:#8a6a1f;--hl-number:#3f7d52;--hl-call:#8a6d1f;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;font-family:var(--font-mono)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#171715;--surface:#202020;--border:#373732;--ink:#f0f0ec;--ink-dim:#96968f;--pending:#4d4d47;--ok:#f0f0ec;--bad:#e8746a;--bad-bg:#331c19;--accent:#8fb0e8;--accent-ink:#0c1a33;--accent-soft:#1c2c47;--hl-keyword:#86b4e0;--hl-string:#e0c078;--hl-number:#9fd8a0;--hl-call:#d8d8d0}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171715;--surface:#202020;--border:#373732;--ink:#f0f0ec;--ink-dim:#96968f;--pending:#4d4d47;--ok:#f0f0ec;--bad:#e8746a;--bad-bg:#331c19;--accent:#8fb0e8;--accent-ink:#0c1a33;--accent-soft:#1c2c47;--hl-keyword:#86b4e0;--hl-string:#e0c078;--hl-number:#9fd8a0;--hl-call:#d8d8d0}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;color:var(--ink);margin:0}.error-boundary{background:var(--surface);text-align:center;border-radius:12px;max-width:1100px;margin:0 auto;padding:40px 32px}.error-boundary h2{color:var(--ink);margin:0 0 8px}.error-boundary p{color:var(--ink-dim);margin:0 0 20px;font-size:13px}.error-boundary button{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:14px}.settings-panel{margin-bottom:var(--space-5);flex-wrap:wrap;align-items:center;gap:14px 18px;display:flex}.settings-options{border:1px solid var(--border);border-radius:var(--radius-lg);gap:2px;padding:3px;display:flex}.settings-options button{border-radius:var(--radius-sm);height:30px;color:var(--ink-dim);cursor:pointer;background:0 0;border:none;align-items:center;padding:0 11px;font-family:inherit;font-size:13px;transition:color .15s,background-color .15s;display:inline-flex}.settings-options button:hover{color:var(--ink);background:var(--accent-soft)}.settings-options button[aria-pressed=true],.settings-options button[aria-pressed=true]:hover{background:var(--accent);color:var(--accent-ink)}.settings-options button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.typing-test{width:100%}.status-bar{margin-bottom:var(--space-4);gap:36px;display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:25px;font-weight:600}.stat span{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.07em;font-size:10px}.stat-time{min-width:4ch}.stat-wpm,.stat-acc{min-width:5ch}.typing-area{padding:var(--space-2) 0;cursor:text;position:relative}.sr-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.stream-viewport{overflow:hidden}.stream{isolation:isolate;color:var(--pending);flex-wrap:wrap;align-content:flex-start;font-size:38px;line-height:68px;transition:transform .15s;display:flex;position:relative}.word{white-space:pre;margin-right:.6em}.word.upcoming,.ch.pending{color:var(--pending)}.ch.ok{color:var(--ok)}.ch.bad{color:var(--bad);background:var(--bad-bg);border-radius:3px}.ch.extra{color:var(--bad);text-decoration:underline}.typing-test.caret-block .ch.caret{color:var(--bg)}.ch.caret-end{vertical-align:-.25em;height:1.2em;display:inline-block}.floating-caret{background:var(--accent);pointer-events:none;opacity:0;transition:transform .1s ease-out,width .1s ease-out,height .1s ease-out,opacity .1s ease-out;position:absolute;top:0;left:0}.floating-caret.visible{opacity:1}.typing-test.caret-block .floating-caret{z-index:-1;border-radius:2px}.typing-test.caret-underline .floating-caret{box-shadow:inset 0 -2px 0 0 var(--accent);background:0 0}.results{text-align:center;padding:32px 0}.results h2{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;margin:0 0 24px;font-size:18px;font-weight:600}.results-grid{justify-content:center;gap:40px;margin-bottom:24px;display:flex}.results-grid div{flex-direction:column;display:flex}.results-grid b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:34px;font-weight:600}.results-grid span{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.results .best{color:var(--ink-dim);margin:-8px 0 0;font-size:13px}.restart-row{align-items:center;gap:var(--space-2);margin-top:var(--space-6);flex-direction:column;display:flex}.restart-btn{border:1.5px solid var(--border);background:var(--surface);width:46px;height:46px;color:var(--ink-dim);cursor:pointer;border-radius:50%;font-family:inherit;font-size:18px;line-height:1;transition:color .15s,border-color .15s,background-color .15s,transform .1s}.restart-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.restart-btn:active{transform:scale(.93)}.restart-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.restart-hint{color:var(--ink-dim);letter-spacing:.04em;font-size:11px}.snippet-viewport{overflow:hidden}.snippet-code{isolation:isolate;color:var(--pending);white-space:pre-wrap;overflow-wrap:break-word;font-size:38px;line-height:68px;transition:transform .15s;position:relative}.snippet-recap{margin-top:var(--space-5);text-align:left}.snippet-empty{color:var(--ink-dim)}.snippet-title{margin:0 0 var(--space-3);font-family:var(--font-sans);color:var(--ink-dim);font-size:14px;font-weight:600}.ch.ok.hl-keyword{color:var(--hl-keyword)}.ch.ok.hl-type{color:var(--accent)}.ch.ok.hl-string{color:var(--hl-string)}.ch.ok.hl-number{color:var(--hl-number)}.ch.ok.hl-call{color:var(--hl-call)}.results .attribution{color:var(--ink-dim);margin:4px 0 0;font-size:13px}.theme-picker{position:relative}.theme-trigger{align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);cursor:pointer;font-family:inherit;font-size:13px;transition:border-color .15s,background-color .15s;display:inline-flex}.theme-trigger:hover{border-color:var(--accent)}.theme-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.theme-chevron{color:var(--ink-dim);margin-left:2px}.theme-swatch{flex-shrink:0;display:inline-flex}.theme-swatch span{border:1px solid #0000001f;border-radius:50%;width:9px;height:9px}.theme-swatch span+span{margin-left:-3px}.theme-menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:200px;max-height:320px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 12px 32px #00000029}.theme-menu button{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-sm);width:100%;color:var(--ink-dim);text-align:left;cursor:pointer;background:0 0;border:none;padding:8px 10px;font-family:inherit;font-size:13px;transition:color .15s,background-color .15s;display:flex}.theme-menu button:hover{color:var(--ink);background:var(--accent-soft)}.theme-menu li[aria-selected=true] button{color:var(--accent);background:var(--accent-soft);font-weight:600}.theme-menu button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.app{width:100%;max-width:1320px;min-height:100dvh;padding:72px 40px var(--space-6);flex-direction:column;margin:0 auto;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6);display:flex}.app h1{align-items:center;gap:var(--space-2);font-family:var(--font-sans);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:46px;font-weight:700;display:flex}.app h1 .accent{color:var(--accent)}.app h1 .logo-icon{color:var(--accent);flex-shrink:0}.app-footer{font-family:var(--font-sans);gap:20px;margin-top:auto;padding-top:48px;font-size:12px;display:flex}.app-footer a{color:var(--ink-dim);align-items:center;gap:6px;text-decoration:none;transition:color .15s;display:inline-flex}.app-footer a svg{flex-shrink:0}.app-footer a:hover{color:var(--accent)}@media (width<=640px){.app{padding:40px var(--space-4) var(--space-4)}}
