:root{color-scheme:light;--bg:#f5f6f1;--ink:#253c34;--muted:#66736b;--line:#e0e5dc;--paper:#ffffff;--green:#305c47;--error:#ad3e3e;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--panel:#fcfdf9;--language-selected:#e6ebe1;--selected:#e6efdd;--pending:#65736b;--correct:#294f3c;--error-bg:#fae8e6;--caret:#5b8c48;--hint-bg:#ffffffee;--key-bg:#fbfcf9;--status:#8aab6d;--error-muted:#8b5e56;--badge-bg:#edf5e3;--primary-bg:#253c34;--primary-fg:#ffffff;--primary-hover:#365344;--tip-icon:#8b9e7e;--toast-bg:#253c34;--toast-fg:#ffffff;--progress-track:#f0f3eb;--progress-fill:#a5c27f;--focus:#557a3d;--card-shadow:#243b3410;--hint-shadow:#253c3410;--toast-shadow:#253c3428;}
:root[data-theme="dark"]{color-scheme:dark;--bg:#111714;--ink:#e5eee7;--muted:#afbbb2;--line:#35483b;--paper:#19231e;--green:#bddf9f;--error:#ffb0a8;--panel:#1d2922;--language-selected:#2c3d30;--selected:#2c3d30;--pending:#98a99e;--correct:#d3e8ca;--error-bg:#3f282c;--caret:#c3eb9e;--hint-bg:#19231ef5;--key-bg:#202d25;--status:#a7d887;--error-muted:#d4a69f;--badge-bg:#293e2c;--primary-bg:#bfdc9f;--primary-fg:#152114;--primary-hover:#d0eab6;--tip-icon:#9eaf95;--toast-bg:#e5eee7;--toast-fg:#18211b;--progress-track:#26342b;--progress-fill:#9fc87a;--focus:#bddf9f;--card-shadow:#00000033;--hint-shadow:#00000044;--toast-shadow:#00000055;}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button{touch-action:manipulation}button svg{flex:none}svg{display:block} [hidden]{display:none!important}
.shell{width:min(100% - 64px,1040px);margin:auto}.header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;align-items:center;gap:18px;min-width:0}.parent-brand{display:inline-flex;align-items:center;flex-shrink:0;padding:10px 12px;border-radius:10px;background:#142735;text-decoration:none}.parent-brand img{display:block;width:170px;height:auto}.header-right{display:flex;align-items:center;gap:14px}.lang-group{display:flex;gap:4px}.lang-group button{border:0;background:none;font-size:12px;font-weight:650;letter-spacing:.06em;padding:8px 10px;color:var(--muted);border-radius:7px}.lang-group button[aria-pressed=true]{background:var(--language-selected);color:var(--ink)}
main{padding-top:48px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}h1{font-size:clamp(30px,4vw,43px);line-height:1.12;letter-spacing:-.04em;font-weight:650;margin:0 0 14px}.lead{font-size:15px;line-height:1.6;color:var(--muted);margin:0;max-width:590px}.best-box{text-align:right;white-space:nowrap;padding-bottom:4px}.best-label{display:block;color:var(--muted);font-size:11px;margin-bottom:8px}.best-number{font-family:var(--mono);font-size:21px;font-weight:600}.best-unit{font-size:11px;color:var(--muted);margin-left:4px}
.test-card{background:var(--paper);border:1px solid var(--line);border-radius:19px;overflow:hidden;box-shadow:0 6px 26px var(--card-shadow)}.settings{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 28px;border-bottom:1px solid var(--line);background:var(--panel)}.settings-left{display:flex;align-items:center;flex-wrap:wrap;gap:23px}.segment{display:flex;align-items:center;gap:4px}.segment button{border:none;border-radius:7px;background:none;padding:8px 11px;color:var(--muted);font-size:12px;white-space:nowrap}.segment button[aria-pressed=true]{background:var(--selected);color:var(--green);font-weight:650}.divider{width:1px;height:18px;background:var(--line)}.restart{display:flex;align-items:center;gap:8px;padding:8px 0 8px 10px;background:none;border:0;color:var(--muted);font-size:12px;white-space:nowrap}.restart:hover{color:var(--green)}
.metrics{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;padding:26px 32px 22px;gap:16px}.metric{border-right:1px solid var(--line);padding-left:18px}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.metric-value{display:flex;align-items:baseline;gap:5px;margin-top:8px;font:400 37px/1.1 var(--mono);letter-spacing:-.06em;font-variant-numeric:tabular-nums}.metric-value small{font:12px var(--sans);color:var(--muted);letter-spacing:0}.metric.timer .metric-value{color:var(--green)}.progress{height:2px;background:var(--progress-track)}.progress-fill{width:100%;height:100%;background:var(--progress-fill);transform-origin:left;transition:transform .1s linear}
.typing-area{position:relative;padding:28px 32px 19px;min-height:229px;cursor:text}.text-window{height:132px;overflow:hidden;position:relative;user-select:none}.passage{font-family:var(--mono);font-size:25px;line-height:44px;letter-spacing:.01em;position:relative;color:var(--pending)}.word{display:inline-block;white-space:pre}.char{position:relative;white-space:pre}.char.correct{color:var(--correct)}.char.incorrect{color:var(--error);background:var(--error-bg);border-radius:2px}.char.incorrect.space{box-shadow:inset 0 -3px var(--error)}.cursor{position:absolute;top:7px;left:0;width:2px;height:30px;border-radius:1px;background:var(--caret);pointer-events:none;transition:transform .07s ease;z-index:1;display:none}.typing-area.focused .cursor{display:block;animation:blink 1s step-end infinite}.typing-area.running .cursor{animation:none}.typing-area:not(.focused) .passage{opacity:.4}.capture{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:3;resize:none;cursor:text;font-size:16px;border:0;outline:0}.focus-hint{position:absolute;inset:0;display:grid;place-items:center;z-index:4;pointer-events:none;padding:24px}.focus-hint button{pointer-events:auto;cursor:pointer;font:inherit;line-height:1.4;display:flex;align-items:center;gap:9px;padding:12px 18px;background:var(--hint-bg);border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 18px var(--hint-shadow);color:var(--ink);font-size:13px;text-align:center}.typing-area.focused .focus-hint{display:none}.typing-note{font-size:11px;color:var(--muted);margin-top:15px;display:flex;justify-content:space-between;gap:12px;line-height:1.5}.typing-note .key{font-family:var(--mono);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:10px;background:var(--key-bg)}.card-bottom{padding:14px 29px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.status{display:flex;align-items:center;gap:7px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--status)}.error-count{color:var(--error-muted);font-variant-numeric:tabular-nums}
.result{padding:28px 32px 29px;min-height:229px}.result-top{display:flex;justify-content:space-between;align-items:center;gap:14px}.result h2{margin:0;font-weight:600;font-size:23px;letter-spacing:-.03em}.result-meta{font-size:12px;color:var(--muted);margin:10px 0 19px;line-height:1.6}.result-details{display:flex;gap:24px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:23px}.result-details strong{color:var(--ink);font-weight:600}.record-badge{color:var(--green);background:var(--badge-bg);padding:7px 10px;font-size:10px;font-weight:650;border-radius:6px;white-space:nowrap}.result-actions{display:flex;gap:10px}.primary,.secondary{border-radius:9px;padding:12px 17px;font-size:12px;font-weight:550;min-height:41px}.primary{background:var(--primary-bg);color:var(--primary-fg);border:1px solid var(--primary-bg)}.primary:hover{background:var(--primary-hover)}.secondary{background:var(--paper);color:var(--ink);border:1px solid var(--line)}.secondary:hover{background:var(--bg)}
.below{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;padding:28px 2px 31px}.tip{display:flex;gap:11px;align-items:flex-start}.tip-icon{color:var(--tip-icon);flex:none;margin-top:1px}.tip h2{font-size:12px;font-weight:600;margin:0 0 6px}.tip p{font-size:11px;line-height:1.7;margin:0;color:var(--muted)}.faq{border-top:1px solid var(--line);padding:20px 0 30px}.faq details{max-width:810px}.faq summary{font-size:12px;color:var(--muted);cursor:pointer;padding:6px 0}.faq p{font-size:12px;line-height:1.8;color:var(--muted);margin:12px 0}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--toast-bg);color:var(--toast-fg);padding:13px 20px;border-radius:10px;font-size:12px;z-index:20;box-shadow:0 5px 24px var(--toast-shadow);max-width:calc(100% - 32px);text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes blink{50%{opacity:0}}
@media(max-width:720px){.shell{width:calc(100% - 32px)}.header{height:75px}.header-right{gap:8px}main{padding-top:31px}.intro{align-items:flex-start;margin-bottom:24px;gap:12px}.best-box{padding-top:4px}.best-label{font-size:10px}.best-number{font-size:18px}.best-unit{display:block;margin:4px 0 0}h1{font-size:31px}.lead{font-size:13px;max-width:400px}.settings{padding:13px 17px;gap:8px}.settings-left{gap:10px}.segment{gap:1px}.segment button{padding:7px 8px;font-size:11px}.divider{display:none}.restart span{display:none}.restart{padding:7px}.metrics{padding:22px 22px 19px;gap:10px}.metric{padding-left:8px}.metric-label{font-size:10px}.metric-value{font-size:29px;gap:2px}.metric-value small{font-size:10px}.typing-area{padding:24px 22px 17px;min-height:211px}.passage{font-size:21px;line-height:40px}.text-window{height:120px}.cursor{height:26px}.typing-note{font-size:10px}.typing-note .shortcut{display:none}.focus-hint button{font-size:12px;padding:11px 12px}.card-bottom{padding:13px 21px;font-size:10px}.below{gap:17px;padding-top:25px}.tip{display:block}.tip-icon{margin-bottom:9px}.tip h2{font-size:11px}.tip p{font-size:10px}.result{padding:25px 22px}.result h2{font-size:21px}.result-details{gap:12px}.result-top{align-items:flex-start}}
@media(max-width:400px){.header-right{gap:0}.lang-group button{padding:7px 8px}.intro{display:block}.best-box{text-align:left;display:flex;align-items:baseline;gap:6px;margin-top:17px}.best-label{margin:0}.best-unit{display:inline}.metric-value{font-size:25px}.metrics{padding:21px 16px}.metric-label{font-size:9px}.segment button{padding:7px 6px}.settings-left{gap:8px}.below{grid-template-columns:1fr;gap:17px}.tip{display:flex}.tip-icon{margin-bottom:0}.tip h2{font-size:12px}.tip p{font-size:11px}.result-actions{flex-wrap:wrap}}
@media(max-width:720px){.metric-value{flex-wrap:wrap;row-gap:3px}.metric-value small{flex-basis:100%;font-size:9px;letter-spacing:0}.metric-label{min-height:24px}}

@media(max-width:720px){.brand{gap:13px}.parent-brand{padding:9px 10px}.parent-brand img{width:146px}}
@media(max-width:560px){.header{height:108px}.brand{flex-direction:column;align-items:flex-start;gap:6px}.parent-brand img{width:144px}.header-right{gap:0;align-self:center}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.noscript{padding:24px;text-align:center;font-size:14px}

.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:12px;line-height:1;flex-shrink:0}
.theme-toggle:not(:disabled):hover{background:var(--selected)}
.theme-toggle[aria-pressed="true"]{background:var(--selected);border-color:var(--green)}
.theme-moon{display:none}:root[data-theme="dark"] .theme-sun{display:none}:root[data-theme="dark"] .theme-moon{display:block}
@media(max-width:820px){.theme-label{display:none}.theme-toggle{width:38px;height:38px;padding:9px}.header-right{gap:8px}}
@media(max-width:400px){.header{gap:8px}.parent-brand img{width:124px}.header-right{gap:4px}.lang-group button{padding:7px 6px}}
