:root{color-scheme:dark;--bg: #323437;--surface: #2c2e31;--line: #414448;--text: #d1d0c5;--muted: #7a7c80;--sub: var(--muted);--sub-alt: var(--surface);--caret: #e2b714;--main: #e2b714;--on-main: #323437;--on-caret: #323437;--cursor-text: var(--on-caret);--confirm: var(--text);--mistake: #7b7d80;--error: #ca4754;--error-extra: #7e2a33;--colorful-error: #ca4754;--colorful-error-extra: #7e2a33;--typed-correct: var(--text);--soft-error: var(--mistake);--power-accent: var(--caret);--power-peak: var(--main);--power-glow: var(--confirm);--font-sans: Inter, -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, "PingFang SC", monospace;--latin-practice-font: "SFMono-Regular", "Cascadia Mono", "Cascadia Code", "Segoe UI Mono", Consolas, ui-monospace, monospace;font-family:var(--font-sans)}body[data-platform=windows]{--font-sans: "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-mono: "Segoe UI", "Segoe UI Variable Text", "Microsoft YaHei UI", "Microsoft YaHei", "Cascadia Mono", Consolas, monospace;--latin-practice-font: "Segoe UI", "Segoe UI Variable Text", "Cascadia Mono", Consolas, sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-sans);background-color:var(--bg);color:var(--text);scrollbar-gutter:stable;transition:background-color .24s ease,color .24s ease}body[data-theme="9009"]{color-scheme:light}button{font:inherit}.primary-button,.secondary-button,.toolbar-button,.theme-trigger,.home-changelog-trigger,.source-option,.mode-option,.mini-button,.challenge-display-name-button,.icon-button,.text-button,.icon-text-button,.custom-text-option,.effect-option,.theme-option,.word-count-option{touch-action:manipulation}.app-shell{width:min(1120px,calc(100vw - 32px));min-height:100vh;margin:0 auto;padding:28px 0 48px;color:var(--text);background-color:var(--bg);transition:background-color .24s ease,color .24s ease}body[data-theme=olivia],.app-shell[data-theme=olivia]{--bg: #302c2d;--surface: #393335;--line: #51484a;--text: #f1d4cc;--muted: #ad8b8a;--caret: #e6baaf;--main: #e6baaf;--on-main: #302c2d;--on-caret: #302c2d;--confirm: var(--text);--mistake: #b79b91;--error: #d58a8a;--error-extra: #8f5656;--colorful-error: #e88989;--colorful-error-extra: #b46262;--typed-correct: var(--text);--power-accent: #e6baaf;--power-peak: #f1d4cc;--power-glow: #e6baaf}body[data-theme=modern_dolch],.app-shell[data-theme=modern_dolch]{--bg: #2d2e30;--surface: #242527;--line: #45494d;--text: #e3e6eb;--muted: #54585c;--caret: #7eddd3;--main: #7eddd3;--on-main: #242527;--on-caret: #242527;--confirm: #7eddd3;--mistake: #9aa2aa;--error: #d36a7b;--error-extra: #994154;--colorful-error: #d36a7b;--colorful-error-extra: #994154;--typed-correct: var(--confirm);--power-accent: #7eddd3;--power-peak: #e3e6eb;--power-glow: #7eddd3}body[data-theme=catppuccin],.app-shell[data-theme=catppuccin]{--bg: #1e1e2e;--surface: #181825;--line: #45475a;--text: #cdd6f4;--muted: #7f849c;--caret: #b4befe;--main: #cba6f7;--on-main: #181825;--on-caret: #181825;--confirm: #a6e3a1;--mistake: #a6adc8;--error: #f38ba8;--error-extra: #eba0ac;--colorful-error: #f38ba8;--colorful-error-extra: #eba0ac;--typed-correct: var(--confirm);--power-accent: #b4befe;--power-peak: #cba6f7;--power-glow: #cba6f7}body[data-theme=miami_nights],.app-shell[data-theme=miami_nights]{--bg: #18181a;--surface: #0f0f10;--line: #315f63;--text: #ffffff;--muted: #47bac0;--caret: #e4609b;--main: #e4609b;--on-main: #18181a;--on-caret: #18181a;--confirm: #47bac0;--mistake: #a0a3ab;--error: #fff591;--error-extra: #b6af68;--colorful-error: #fff591;--colorful-error-extra: #b6af68;--typed-correct: var(--confirm);--power-accent: #e4609b;--power-peak: #47bac0;--power-glow: #47bac0}body[data-theme=alpine],.app-shell[data-theme=alpine]{--bg: #4d4960;--surface: #393647;--line: #645d7c;--text: #fbf9ff;--muted: #cdc6dd;--caret: #f6f4ff;--main: #efeaff;--on-main: #413c52;--on-caret: #413c52;--confirm: #e6dff0;--mistake: #d8d1e5;--error: #e32b2b;--error-extra: #a62626;--colorful-error: #e32b2b;--colorful-error-extra: #a62626;--typed-correct: var(--confirm);--power-accent: #f6f4ff;--power-peak: #efeaff;--power-glow: #e6dff0}body[data-theme=nord],.app-shell[data-theme=nord]{--bg: #242933;--surface: #2e3440;--line: #3b4252;--text: #d8dee9;--muted: #929aaa;--caret: #eceff4;--main: #88c0d0;--on-main: #242933;--on-caret: #242933;--confirm: #8fbcbb;--mistake: #a7afbf;--error: #bf616a;--error-extra: #793e44;--colorful-error: #bf616a;--colorful-error-extra: #793e44;--typed-correct: var(--confirm);--power-accent: #88c0d0;--power-peak: #eceff4;--power-glow: #8fbcbb}body[data-theme=mizu],.app-shell[data-theme=mizu]{color-scheme:light;--bg: #95b2c7;--surface: #86a8be;--line: #7591a8;--text: #1a2633;--muted: #55798f;--caret: #fcfbf6;--main: #1f3f5b;--on-main: #fcfbf6;--on-caret: #1a2633;--confirm: #fcfbf6;--mistake: #678194;--error: #fcfbf6;--error-extra: #132d44;--colorful-error: #fcfbf6;--colorful-error-extra: #132d44;--typed-correct: var(--main);--soft-error: #fcfbf6;--power-accent: #1f3f5b;--power-peak: #132d44;--power-glow: #426a83}body[data-theme=mizu] .required-space,.app-shell[data-theme=mizu] .required-space{color:var(--confirm)}body[data-theme=mizu] .required-space.is-required-hit,.app-shell[data-theme=mizu] .required-space.is-required-hit{text-shadow:0 0 10px color-mix(in srgb,var(--confirm) 46%,transparent)}body[data-theme=lavender],.app-shell[data-theme=lavender]{--bg: #96939a;--surface: #88848f;--line: #77727f;--text: #211d2f;--muted: #524c63;--caret: #d8d2ea;--main: #6f63a3;--on-main: #f2eef8;--on-caret: #211d2f;--confirm: #524c63;--mistake: #6d6778;--error: #f2eef8;--error-extra: #6f6688;--colorful-error: #f2eef8;--colorful-error-extra: #6f6688;--typed-correct: var(--confirm);--soft-error: #f2eef8;--power-accent: #6f63a3;--power-peak: #524c63;--power-glow: #d8d2ea}body[data-theme=beige],.app-shell[data-theme=beige]{color-scheme:light;--bg: #c1baa8;--surface: #b4ac98;--line: #9e9683;--text: #1d1b17;--muted: #554f43;--caret: #1d1b17;--main: #1d1b17;--on-main: #c1baa8;--on-caret: #c1baa8;--cursor-text: var(--bg);--confirm: #1d1b17;--mistake: #817a6a;--error: #817a6a;--error-extra: #554f43;--colorful-error: #817a6a;--colorful-error-extra: #554f43;--typed-correct: var(--confirm);--soft-error: #817a6a;--power-accent: #1d1b17;--power-peak: #554f43;--power-glow: #1d1b17}body[data-theme=oblivion],.app-shell[data-theme=oblivion]{--bg: #313231;--surface: #3a3b3b;--line: #4a4d4d;--text: #f7f5f1;--muted: #5d6263;--caret: #a5a096;--main: #a5a096;--on-main: #313231;--on-caret: #313231;--confirm: #c9c4b8;--mistake: #8d9494;--error: #dd452e;--error-extra: #9e3423;--colorful-error: #dd452e;--colorful-error-extra: #9e3423;--power-accent: #a5a096;--power-peak: #f7f5f1;--power-glow: #c9c4b8}body[data-theme="9009"],.app-shell[data-theme="9009"]{--bg: #c5c1b8;--surface: #b9b5ad;--line: #a5a096;--text: #242420;--muted: #7b7664;--caret: #5f825f;--main: #242420;--on-main: #c5c1b8;--on-caret: #242420;--confirm: #5f825f;--mistake: #777466;--error: #ad675f;--error-extra: #874f49;--colorful-error: #ad675f;--colorful-error-extra: #874f49;--typed-correct: var(--confirm);--soft-error: var(--error);--power-accent: #5f825f;--power-peak: #242420;--power-glow: #5f825f}.top-bar{min-height:44px;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);align-items:center;gap:16px;color:var(--muted);font-family:var(--font-mono)}.brand{border:0;padding:0;color:var(--text);background:transparent;cursor:pointer;font:inherit;text-align:left}.brand:hover{color:var(--main)}.brand:focus-visible{outline:2px solid color-mix(in srgb,var(--main) 72%,transparent);outline-offset:4px;border-radius:4px}.mode-label,.eyebrow{color:var(--main)}.mode-label{justify-self:center}.top-actions{justify-self:end;min-width:0;display:inline-flex;align-items:center;justify-content:flex-end;gap:10px}.theme-controls{position:relative;display:inline-flex;align-items:center;max-width:100%}.effects-controls{position:relative;display:inline-flex;align-items:center}.theme-trigger{width:148px;min-height:34px;min-width:0;border:1px solid var(--line);border-radius:6px;padding:0 10px;color:var(--muted);background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;transition:border-color .2s ease,color .2s ease,background-color .2s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.theme-trigger svg{flex:0 0 auto}.theme-trigger-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.theme-trigger:focus-visible,.toolbar-button:focus-visible,.home-changelog-trigger:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.word-count-option:focus-visible,.source-option:focus-visible,.mini-button:focus-visible,.icon-text-button:focus-visible,.custom-field textarea:focus-visible,.custom-field input:focus-visible,.custom-draft-row input:focus-visible{outline:2px solid color-mix(in srgb,var(--main) 78%,transparent);outline-offset:3px}.toolbar-button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:0 10px;color:var(--muted);background:transparent;cursor:pointer;transition:border-color .16s ease,color .16s ease,background-color .16s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.restart-slot{width:84px}.restart-slot.is-layout-placeholder{visibility:hidden;pointer-events:none}.toolbar-button.is-active{border-color:color-mix(in srgb,var(--main) 72%,var(--line));color:var(--text);background:color-mix(in srgb,var(--main) 12%,transparent)}.icon-toolbar-button{width:34px;padding:0}.effects-panel,.theme-panel{position:absolute;z-index:20;top:calc(100% + 10px);right:0;width:min(340px,calc(100vw - 32px));display:grid;gap:8px;border:1px solid color-mix(in srgb,var(--line) 68%,transparent);border-radius:8px;padding:10px;background:var(--surface);box-shadow:0 12px 28px color-mix(in srgb,#000 18%,transparent);transform-origin:top right;animation:panel-enter .15s cubic-bezier(.2,.68,.18,1) both}.effects-panel.is-panel-closing,.theme-panel.is-panel-closing{animation:panel-exit .14s ease-in both}.theme-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.effect-option{position:relative;min-height:58px;display:grid;gap:4px;overflow:hidden;border:1px solid transparent;border-radius:6px;padding:10px 12px;color:var(--muted);background:transparent;cursor:pointer;text-align:left;transition:border-color .16s ease,color .16s ease,background-color .16s ease,box-shadow .16s ease,filter .16s ease,transform .19s linear}.home-changelog-trigger svg{flex:0 0 auto}.effect-option:before,.theme-option:before{position:absolute;inset:0;z-index:0;content:"";border-radius:inherit;opacity:0;pointer-events:none;transform:translate3d(-8px,0,0) scaleX(.96);transform-origin:left center;transition:opacity .19s ease,transform .22s linear}.effect-option:before{background:color-mix(in srgb,var(--main) 8%,var(--surface))}.effect-option:hover{border-color:color-mix(in srgb,var(--main) 24%,var(--line));color:var(--text);transform:translateY(-1px)}.theme-option:hover:before,.theme-option.is-active:before{opacity:1;transform:translateZ(0) scaleX(1)}.effect-option:hover:before{opacity:.35;transform:translateZ(0) scaleX(1)}.effect-option:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.effect-option.is-active{border-color:color-mix(in srgb,var(--main) 70%,var(--line));color:var(--text);background:color-mix(in srgb,var(--main) 5%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--main) 28%,transparent),0 0 0 3px color-mix(in srgb,var(--main) 10%,transparent)}.effect-option.is-active:before{opacity:1;transform:translateZ(0) scaleX(1)}.effect-option.is-active:hover{border-color:color-mix(in srgb,var(--main) 82%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--main) 34%,transparent),0 0 0 3px color-mix(in srgb,var(--main) 14%,transparent);transform:translateY(-1px)}.effect-option-title,.effect-option-description{position:relative;z-index:1}.effect-option-title{color:var(--text);transition:color .16s ease}.effect-option.is-active .effect-option-title{color:var(--main)}.effect-option-description{font-size:12px;line-height:1.45}.theme-option{position:relative;min-height:58px;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;overflow:hidden;border:1px solid transparent;border-radius:6px;padding:8px;color:var(--preview-swatch-2);background:var(--preview-bg);cursor:pointer;text-align:left;min-width:0;transition:border-color .16s ease,box-shadow .16s ease,transform .19s linear,filter .16s ease}.theme-option:before{background:color-mix(in srgb,var(--preview-swatch-1) 11%,var(--preview-bg))}.theme-option-label{position:relative;z-index:1;min-width:0;overflow-wrap:anywhere;line-height:1.15;transition:color .16s ease}.theme-option:hover{border-color:color-mix(in srgb,var(--preview-swatch-1) 44%,var(--preview-swatch-2));filter:brightness(1.06);transform:translateY(-1px)}.theme-option:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.theme-option.is-active{border-color:color-mix(in srgb,var(--preview-swatch-1) 76%,var(--preview-swatch-2));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--preview-swatch-1) 36%,transparent),0 0 0 3px color-mix(in srgb,var(--preview-swatch-1) 14%,transparent);filter:brightness(1.04)}.theme-option.is-active .theme-option-label{color:var(--preview-swatch-1)}.theme-option.is-active:hover{border-color:color-mix(in srgb,var(--preview-swatch-1) 86%,var(--preview-swatch-2));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--preview-swatch-1) 42%,transparent),0 0 0 3px color-mix(in srgb,var(--preview-swatch-1) 18%,transparent);transform:translateY(-1px)}.theme-swatch{position:relative;z-index:1;height:30px;display:grid;grid-template-columns:1.1fr .95fr .85fr;overflow:hidden;border-radius:4px;background:var(--preview-bg)}.theme-swatch span:nth-child(1){background:var(--preview-swatch-1)}.theme-swatch span:nth-child(2){background:var(--preview-swatch-2)}.theme-swatch span:nth-child(3){background:var(--preview-swatch-3)}.start-panel{display:grid;gap:16px;padding-top:18vh}.view-surface{animation:view-enter .22s ease-out both;transform-origin:50% 18px}.view-surface.is-view-exiting{animation:view-exit .14s ease-in both}.test-view-surface{display:grid;gap:14px;padding-top:clamp(28px,7vh,76px)}.eyebrow,.intro-copy{margin:0;color:var(--muted)}h1{margin:0;font-size:clamp(44px,8vw,92px);line-height:1;letter-spacing:0}.intro-copy{max-width:680px;font-size:18px;line-height:1.7}.primary-button{width:fit-content;min-height:44px;border:1px solid var(--main);border-radius:6px;padding:0 18px;color:var(--on-main);background:var(--main);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:border-color .16s ease,color .16s ease,background-color .16s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.primary-button:not(:disabled):not([aria-disabled=true]):hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--main) 16%,transparent),0 0 18px color-mix(in srgb,var(--main) 18%,transparent);filter:brightness(1.08);transform:translateY(-1px)}.primary-button:not(:disabled):not([aria-disabled=true]):active,.primary-button.is-confirming{box-shadow:0 0 0 4px color-mix(in srgb,var(--main) 16%,transparent),0 0 14px color-mix(in srgb,var(--main) 14%,transparent);filter:brightness(.96);transform:translateY(1px) scale(.985)}.primary-button:disabled,.primary-button[aria-disabled=true]{border-color:var(--line);color:var(--muted);background:color-mix(in srgb,var(--surface) 78%,var(--bg));cursor:not-allowed}.home-changelog-dock{position:fixed;right:max(16px,calc((100vw - 1120px)/2));bottom:24px;z-index:5;display:grid;justify-items:end;gap:10px}.home-changelog{width:min(328px,calc(100vw - 48px));display:grid;gap:10px;border:1px solid color-mix(in srgb,var(--line) 56%,transparent);border-radius:8px;padding:12px;color:var(--muted);background:color-mix(in srgb,var(--bg) 94%,var(--surface));box-shadow:0 14px 36px color-mix(in srgb,#000000 12%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:changelog-panel-in .16s cubic-bezier(.2,.68,.18,1) both;transform-origin:100% 100%}.home-changelog.is-panel-closing{animation:changelog-panel-out .14s ease-in both}.home-changelog-trigger{width:148px;min-height:34px;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;border:1px solid var(--line);border-radius:6px;padding:0 10px;color:var(--muted);background:color-mix(in srgb,var(--bg) 88%,var(--surface));box-shadow:0 10px 28px color-mix(in srgb,#000000 10%,transparent);cursor:pointer;font-family:var(--font-mono);transition:border-color .2s ease,color .2s ease,background-color .2s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.theme-trigger:hover,.toolbar-button:not(.is-layout-placeholder):hover,.toolbar-button:not(.is-layout-placeholder).is-active:hover,.home-changelog-trigger:hover,.home-changelog-trigger[aria-expanded=true]{border-color:color-mix(in srgb,var(--main) 72%,var(--line));color:var(--text);background:color-mix(in srgb,var(--main) 12%,transparent);transform:translateY(-1px)}.toolbar-button.restart-slot:not(.is-layout-placeholder):hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--main) 16%,transparent),0 0 18px color-mix(in srgb,var(--main) 18%,transparent);filter:brightness(1.08)}.toolbar-button:not(.is-layout-placeholder):active,.theme-trigger:active,.home-changelog-trigger:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.home-changelog-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.home-changelog h2{margin:0;color:var(--text);font-size:14px;font-weight:600;line-height:1.2}.home-changelog-header span{color:var(--muted);font-family:var(--font-mono);font-size:12px}.home-changelog-scroll{max-height:min(34vh,300px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-color:color-mix(in srgb,var(--main) 48%,var(--line)) transparent;scrollbar-width:thin}.home-changelog-group{display:grid;gap:8px}.home-changelog-group+.home-changelog-group{margin-top:14px}.home-changelog-group time{color:var(--text);font-family:var(--font-mono);font-size:12px}.home-changelog-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.home-changelog-list li{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:baseline;gap:10px;min-height:28px;border-top:1px solid color-mix(in srgb,var(--line) 62%,transparent);padding-top:8px;font-size:13px;line-height:1.55}.home-changelog-tag{color:var(--main);font-family:var(--font-mono);font-size:12px;white-space:nowrap}.content-source-panel{width:min(680px,100%);display:grid;gap:10px;margin:4px 0 2px}.mode-content{display:grid;gap:16px}.mode-content.is-mode-fading-out,.content-source-panel.is-mode-fading-out{animation:mode-content-fade-out .12s ease-in both}.mode-content.is-mode-fading-in,.content-source-panel.is-mode-fading-in{animation:mode-content-fade-in .14s ease-out both}.practice-mode-toggle{position:relative;width:fit-content;min-height:52px;display:inline-grid;grid-template-columns:repeat(2,minmax(92px,1fr));gap:4px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:8px;padding:6px;background:color-mix(in srgb,var(--surface) 58%,transparent);isolation:isolate}.mode-toggle-thumb{position:absolute;z-index:-1;top:8px;bottom:8px;left:6px;width:calc((100% - 16px)/2);border:1px solid color-mix(in srgb,var(--main) 52%,transparent);border-radius:6px;background:color-mix(in srgb,var(--main) 10%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--main) 8%,transparent);transition:transform .18s cubic-bezier(.2,.68,.18,1),border-color .18s ease,background-color .18s ease;pointer-events:none}.mode-toggle-thumb.is-word{transform:translate(calc(100% + 4px))}.mode-option{min-height:34px;border:1px solid transparent;border-radius:6px;padding:0 12px;color:var(--muted);background:transparent;cursor:pointer;font-family:inherit;font-size:14px;white-space:nowrap;position:relative;z-index:1;transition:color .16s ease,filter .16s ease,transform .16s ease}.mode-option.is-active{border-color:transparent;color:var(--text)}.mode-option:hover,.source-option:hover{color:var(--text);filter:brightness(1.04);transform:translateY(-1px)}.mode-option:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.source-shelf{width:100%;min-height:52px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:8px;padding:6px;background:color-mix(in srgb,var(--surface) 58%,transparent)}.sentence-source-shelf{width:fit-content;min-height:52px;grid-template-columns:auto auto;gap:16px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:8px;padding:6px;background:color-mix(in srgb,var(--surface) 58%,transparent)}.word-source-shelf{grid-template-columns:minmax(0,1fr) auto}.word-source-shelf.is-panel-open{transform-origin:top center;animation:panel-enter .15s cubic-bezier(.2,.68,.18,1) both}.word-source-copy{min-width:0;display:inline-flex;align-items:baseline;gap:10px}.word-count-selector{position:relative;display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;padding-inline:4px;color:var(--muted);font-family:var(--font-mono);font-size:13px;white-space:nowrap}.word-count-selector.is-in-test{justify-content:flex-start;font-size:15px}.word-count-choice{position:relative;display:inline-flex;align-items:center;gap:8px}.word-count-separator{color:color-mix(in srgb,var(--muted) 46%,transparent);-webkit-user-select:none;user-select:none;pointer-events:none}.word-count-option{min-width:20px;min-height:28px;border:1px solid transparent;border-radius:6px;padding:0;color:var(--muted);background:transparent;cursor:pointer;font:inherit;font-weight:500;line-height:1;transition:color .16s ease,text-shadow .16s ease,transform .16s ease}.word-count-option.is-active{color:var(--main);font-weight:650;text-shadow:0 0 12px color-mix(in srgb,var(--main) 26%,transparent)}.word-count-option:hover{color:var(--text);text-shadow:0 0 10px color-mix(in srgb,var(--main) 18%,transparent);transform:translateY(-1px)}.word-count-option.is-active:hover{color:var(--main)}.word-count-option:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.pre-toolbar-row.is-label-quake .word-count-option{animation:label-quake .26s cubic-bezier(.2,.02,.18,1.58)}.pre-toolbar-row.is-label-quake .word-count-choice:nth-child(2) .word-count-option{animation-delay:26ms}.pre-toolbar-row.is-label-quake .word-count-choice:nth-child(3) .word-count-option{animation-delay:52ms}.pre-toolbar-row.is-label-quake .word-count-choice:nth-child(4) .word-count-option{animation-delay:78ms}.source-toggle{position:relative;width:fit-content;display:inline-grid;grid-template-columns:repeat(2,minmax(92px,1fr));gap:4px;border-radius:8px;isolation:isolate}.source-toggle-thumb{position:absolute;z-index:-1;top:0;bottom:0;left:0;width:calc((100% - 4px)/2);border:1px solid color-mix(in srgb,var(--main) 52%,transparent);border-radius:6px;background:color-mix(in srgb,var(--main) 10%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--main) 8%,transparent);transition:transform .18s cubic-bezier(.2,.68,.18,1),border-color .18s ease,background-color .18s ease;pointer-events:none}.source-toggle-thumb.is-custom{transform:translate(calc(100% + 4px))}.source-option,.mini-button,.icon-button,.icon-text-button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;padding:0 12px;color:var(--muted);background:transparent;cursor:pointer;font-family:inherit;font-size:14px;line-height:1;white-space:nowrap;transition:border-color .16s ease,color .16s ease,background-color .16s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.source-option:active,.mini-button:active,.icon-button:active,.icon-text-button:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.source-option{min-width:92px;position:relative;z-index:1}.sentence-source-shelf .source-shelf-status{display:none}.source-option.is-active{border-color:transparent;color:var(--text)}.custom-text-option:hover{border-color:color-mix(in srgb,var(--main) 42%,var(--line));color:var(--text);background:color-mix(in srgb,var(--main) 8%,transparent);transform:translateY(-1px)}.source-shelf-status{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:12px;color:var(--muted);font-size:14px;line-height:1.35}.source-shelf-title{min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.source-shelf-count{flex:0 0 auto;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.custom-source-drawer,.custom-import-panel{width:min(680px,100%);border-radius:8px}.custom-source-drawer{display:grid;gap:12px;border:1px solid color-mix(in srgb,var(--line) 58%,transparent);padding:14px 18px 16px;background:color-mix(in srgb,var(--surface) 28%,transparent);transform-origin:top center}.custom-source-drawer-empty{border-color:transparent;padding:2px 4px 0;background:transparent}.custom-source-drawer.is-panel-open,.custom-import-panel.is-panel-open{animation:panel-enter .15s cubic-bezier(.2,.68,.18,1) both}.custom-source-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.custom-source-kicker{color:var(--muted);font-size:13px;line-height:1.4}.custom-source-empty{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px 12px;min-height:32px}.custom-source-empty-copy{max-width:420px;color:var(--muted);font-size:13px;line-height:1.5}.custom-source-count,.custom-text-message,.custom-import-meta{color:var(--muted);font-size:13px}.custom-source-actions,.custom-import-actions{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.custom-delete-confirm{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;border:1px solid color-mix(in srgb,var(--error) 34%,var(--line));border-radius:6px;padding:0 10px;color:var(--muted);background:color-mix(in srgb,var(--error) 8%,transparent);font-size:13px;animation:panel-enter .15s cubic-bezier(.2,.68,.18,1) both}.custom-delete-actions{display:inline-flex;align-items:center;gap:10px}.custom-text-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.custom-text-list li{min-width:0}.custom-text-option{width:100%;min-height:38px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:6px;padding:0 14px;color:var(--muted);background:color-mix(in srgb,var(--surface) 42%,transparent);cursor:pointer;font-family:inherit;font-size:15px;line-height:1.35;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .16s ease,color .16s ease,background-color .16s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.custom-text-option.is-active{border-color:var(--main);color:var(--text);background:color-mix(in srgb,var(--main) 12%,transparent)}.custom-text-option:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.custom-text-option span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-button,.icon-button,.text-button,.icon-text-button{border-color:var(--line)}.mini-button:hover,.icon-button:hover,.text-button:hover,.icon-text-button:hover{border-color:color-mix(in srgb,var(--main) 42%,var(--line));color:var(--text)}.mini-button.is-primary{border-color:var(--main);color:var(--on-main);background:var(--main)}.mini-button.is-primary:hover{border-color:var(--main);color:var(--on-main);background:var(--main);box-shadow:0 0 0 3px color-mix(in srgb,var(--main) 14%,transparent),0 0 14px color-mix(in srgb,var(--main) 16%,transparent);filter:brightness(1.08);transform:translateY(-1px)}.mini-button.is-primary:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.mini-button.is-active{border-color:color-mix(in srgb,var(--main) 62%,var(--line));color:var(--text);background:color-mix(in srgb,var(--main) 12%,transparent)}.icon-button{width:34px;padding:0;color:var(--muted);background:color-mix(in srgb,var(--surface) 24%,transparent)}.icon-button.is-active{border-color:color-mix(in srgb,var(--main) 62%,var(--line));color:var(--text);background:color-mix(in srgb,var(--main) 12%,transparent)}.text-button{min-height:28px;border:0;padding:0;color:var(--muted);background:transparent;cursor:pointer;font:inherit;transition:color .16s ease,filter .16s ease,transform .16s ease}.text-button:active{filter:brightness(.96);transform:translateY(1px) scale(.985)}.text-button.is-danger{color:color-mix(in srgb,var(--error) 72%,var(--text))}.custom-import-panel{display:grid;gap:12px;padding:14px 18px 16px;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);background:color-mix(in srgb,var(--surface) 62%,transparent);transform-origin:top center}.custom-field{display:grid;gap:6px;color:var(--muted);font-size:13px}.custom-field textarea,.custom-field input,.custom-draft-row input{width:100%;border:1px solid var(--line);border-radius:6px;color:var(--text);background:color-mix(in srgb,var(--bg) 62%,var(--surface));font:inherit}.custom-field textarea{min-height:100px;resize:vertical;padding:10px;line-height:1.6;scrollbar-color:color-mix(in srgb,var(--main) 48%,var(--line)) transparent;scrollbar-width:thin}.custom-field input,.custom-draft-row input{min-height:34px;padding:0 10px}.custom-import-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.custom-draft-list{display:grid;gap:8px}.custom-draft-row{display:grid;grid-template-columns:minmax(88px,.8fr) minmax(160px,1.5fr) auto auto;align-items:center;gap:8px}.custom-draft-hanzi{color:var(--text);overflow-wrap:anywhere}.custom-draft-punctuation{color:var(--main);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.custom-import-actions{justify-content:flex-end}.test-view{display:grid;gap:14px;padding-top:0}.pre-toolbar-row{--label-scale: 1;min-height:28px;display:flex;align-items:center;transition:color .18s ease,text-shadow .18s ease}.test-toolbar{min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 28px;color:var(--muted);font-family:var(--font-mono)}.metric-main{color:var(--main)}.toolbar-stat{--label-scale: 1;display:inline-block;transform-origin:center;transform:scale(var(--label-scale));transition:color .18s ease,text-shadow .18s ease,transform .18s ease}.toolbar-combo-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px 30px}.toolbar-stat.is-combo-stat{min-width:86px;min-height:28px;display:inline-grid;grid-template-columns:minmax(34px,auto) minmax(34px,auto);align-items:baseline;justify-content:start;gap:10px;padding:2px 0}.toolbar-stat-label{color:var(--muted)}.toolbar-stat-value{color:inherit;font-variant-numeric:tabular-nums}.toolbar-stat.is-label-quake{animation:label-quake .26s cubic-bezier(.2,.02,.18,1.58)}.toolbar-stat.is-label-hot{--label-scale: 1.08;color:var(--power-glow);text-shadow:0 0 10px color-mix(in srgb,var(--power-glow) 28%,transparent),0 0 18px color-mix(in srgb,var(--power-accent) 12%,transparent)}.toolbar-stat.is-label-peak{--label-scale: 1.14;color:var(--power-peak);text-shadow:0 0 14px color-mix(in srgb,var(--power-peak) 36%,transparent),0 0 24px color-mix(in srgb,var(--power-glow) 18%,transparent)}.awesomeness-meter{position:absolute;z-index:3;top:0;left:0;width:100%;height:8px;overflow:hidden;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--power-accent) 4%,transparent),color-mix(in srgb,var(--power-accent) 11%,transparent),color-mix(in srgb,var(--power-accent) 4%,transparent));box-shadow:0 10px 24px color-mix(in srgb,var(--power-accent) 7%,transparent);transition:filter .24s ease,box-shadow .24s ease,height .24s ease}.awesomeness-meter.has-awesomeness-effects{box-shadow:0 0 18px color-mix(in srgb,var(--power-accent) 16%,transparent),0 12px 34px color-mix(in srgb,var(--power-accent) 14%,transparent)}.awesomeness-meter.is-awesomeness-hit{animation:awesomeness-meter-hit .36s cubic-bezier(.16,.82,.22,1.2)}.awesomeness-meter.is-awesomeness-sustained{filter:saturate(1.18) brightness(1.08);box-shadow:0 0 20px color-mix(in srgb,var(--power-accent) 22%,transparent),0 12px 36px color-mix(in srgb,var(--power-accent) 18%,transparent)}.awesomeness-meter.is-awesomeness-sustained .awesomeness-meter-fill{animation:awesomeness-sustain-breathe 1.8s ease-in-out infinite}.awesomeness-meter.is-awesomeness-sustain-pulse .awesomeness-meter-fill:before{animation:awesomeness-sustain-pulse .54s cubic-bezier(.16,.82,.22,1.04)}.awesomeness-meter.is-awesomeness-overdrive{height:12px;filter:saturate(1.35) brightness(1.2);animation:awesomeness-overdrive-fill .92s cubic-bezier(.16,.82,.22,1.04);box-shadow:0 0 24px color-mix(in srgb,var(--power-accent) 44%,transparent),0 0 58px color-mix(in srgb,var(--power-peak) 28%,transparent),0 18px 48px color-mix(in srgb,var(--power-glow) 24%,transparent)}.awesomeness-meter.is-awesomeness-complete{filter:saturate(1.35) brightness(1.2);animation:awesomeness-complete-flash .52s cubic-bezier(.16,.82,.22,1.04);box-shadow:0 0 20px color-mix(in srgb,var(--power-accent) 38%,transparent),0 0 44px color-mix(in srgb,var(--power-glow) 22%,transparent)}.awesomeness-meter-fill{position:absolute;inset:0;transform-origin:left center;transform:translateZ(0) scaleX(0);border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--power-accent) 42%,transparent),var(--power-accent),color-mix(in srgb,var(--power-peak) 24%,var(--power-accent)));box-shadow:0 0 18px color-mix(in srgb,var(--power-accent) 28%,transparent),0 0 36px color-mix(in srgb,var(--power-accent) 12%,transparent);transition:transform .36s linear;will-change:transform}.awesomeness-meter.is-awesomeness-duel{background:linear-gradient(90deg,color-mix(in srgb,var(--power-accent) 8%,transparent),color-mix(in srgb,var(--sub) 12%,transparent) 50%,color-mix(in srgb,var(--sub) 10%,transparent))}.awesomeness-meter.is-awesomeness-duel:after{position:absolute;z-index:4;top:1px;bottom:1px;left:var(--duel-meet-x, 50%);width:2px;content:"";background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--text) 48%,transparent) 20%,color-mix(in srgb,var(--power-accent) 58%,var(--soft-error)) 50%,color-mix(in srgb,var(--text) 48%,transparent) 80%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--power-accent) 20%,transparent),0 0 10px color-mix(in srgb,var(--soft-error) 16%,transparent);transform:translate(-1px);transition:left .36s linear}.awesomeness-meter.is-awesomeness-duel-met{background:linear-gradient(90deg,color-mix(in srgb,var(--power-accent) 11%,transparent),color-mix(in srgb,var(--line) 34%,transparent) 50%,color-mix(in srgb,var(--soft-error) 10%,transparent));box-shadow:0 0 16px color-mix(in srgb,var(--power-accent) 10%,transparent),0 0 16px color-mix(in srgb,var(--soft-error) 8%,transparent)}.awesomeness-meter.is-awesomeness-duel-resisting:after{animation:awesomeness-duel-resistance 1.12s ease-in-out infinite}.awesomeness-meter-rival-fill{position:absolute;inset:0;transform-origin:right center;transform:translateZ(0) scaleX(0);border-radius:inherit;background:linear-gradient(270deg,color-mix(in srgb,var(--soft-error) 72%,var(--main)),color-mix(in srgb,var(--soft-error) 34%,transparent));opacity:.74;box-shadow:0 0 22px color-mix(in srgb,var(--soft-error) 18%,transparent);transition:transform .36s linear;will-change:transform}.awesomeness-meter.is-awesomeness-duel-resisting .awesomeness-meter-fill,.awesomeness-meter.is-awesomeness-duel-resisting .awesomeness-meter-rival-fill{animation:awesomeness-duel-fill-pressure 1.28s ease-in-out infinite;will-change:opacity,transform}.awesomeness-meter.is-awesomeness-duel-deadlock{box-shadow:0 0 18px color-mix(in srgb,var(--power-accent) 16%,transparent),0 0 20px color-mix(in srgb,var(--soft-error) 12%,transparent);animation:awesomeness-duel-deadlock-breathe 1.6s ease-in-out infinite;will-change:transform}.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-fill:before,.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-rival-fill:before{position:absolute;inset:-70% 0;content:"";opacity:0;animation:awesomeness-duel-deadlock-pulse 1.5s ease-in-out infinite;will-change:opacity,transform}.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-fill:before{background:radial-gradient(circle at 100% 50%,color-mix(in srgb,var(--power-accent) 70%,transparent),transparent 44%)}.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-rival-fill:before{background:radial-gradient(circle at 0% 50%,color-mix(in srgb,var(--soft-error) 64%,transparent),transparent 44%);animation-delay:.18s}.awesomeness-meter.is-awesomeness-duel-impact{height:10px;overflow:visible;box-shadow:0 0 20px color-mix(in srgb,var(--power-accent) 22%,transparent),0 0 22px color-mix(in srgb,var(--soft-error) 14%,transparent);animation:awesomeness-duel-bar-collision .62s cubic-bezier(.16,.82,.22,1.04);will-change:transform}.awesomeness-meter.is-awesomeness-duel-impact:before{position:absolute;z-index:3;top:50%;left:var(--duel-meet-x, 50%);width:min(132px,22vw);height:34px;border-radius:4px;content:"";background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--power-accent) 0%,transparent) 13%,color-mix(in srgb,var(--power-accent) 48%,transparent) 34%,color-mix(in srgb,var(--text) 76%,transparent) 49%,color-mix(in srgb,var(--soft-error) 50%,transparent) 66%,color-mix(in srgb,var(--soft-error) 0%,transparent) 87%,transparent 100%),linear-gradient(62deg,transparent 0 42%,color-mix(in srgb,var(--power-accent) 62%,transparent) 43% 45%,transparent 46% 100%),linear-gradient(118deg,transparent 0 44%,color-mix(in srgb,var(--soft-error) 58%,transparent) 45% 47%,transparent 48% 100%),linear-gradient(23deg,transparent 0 48%,color-mix(in srgb,var(--text) 42%,transparent) 49% 50%,transparent 51% 100%);pointer-events:none;transform:translate(-50%,-50%) scaleX(.12) scaleY(.48);animation:awesomeness-duel-collision .62s cubic-bezier(.16,.82,.22,1) forwards;will-change:opacity,transform}.awesomeness-meter-fill:before{position:absolute;inset:-30% 0;content:"";opacity:0;background:radial-gradient(circle at 100% 50%,color-mix(in srgb,var(--power-glow) 64%,transparent),transparent 36%)}.awesomeness-meter.is-awesomeness-hit .awesomeness-meter-fill:before{animation:awesomeness-surge .36s ease-out}.awesomeness-meter-fill:after{position:absolute;inset:0;content:"";background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.22) 46%,transparent 64%);opacity:0;transform:translate(-70%)}.awesomeness-meter.has-awesomeness-effects .awesomeness-meter-fill:after{opacity:1;animation:awesomeness-sheen .92s ease-in-out infinite}.typing-stage{position:relative;display:grid;gap:16px;min-height:300px;align-content:center;padding:clamp(28px,4.4vw,48px) 0 clamp(20px,4vw,40px)}.awesomeness-overdrive,.awesomeness-sustain-wave{position:absolute;z-index:4;inset:0;overflow:hidden;pointer-events:none}.awesomeness-sustain-wave:before,.awesomeness-sustain-wave:after{position:absolute;left:-8%;width:116%;content:"";opacity:0}.awesomeness-sustain-wave:before{top:0;height:8px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--power-accent) 48%,transparent),color-mix(in srgb,var(--power-peak) 42%,transparent),transparent);transform:translate(-100%) scaleX(.3);animation:sustain-wave-sweep .86s cubic-bezier(.16,.82,.22,1.02)}.awesomeness-sustain-wave:after{top:8px;bottom:0;height:calc(100% - 8px);background:linear-gradient(180deg,color-mix(in srgb,var(--power-accent) 11%,transparent),transparent 56%);transform:translateY(-32%) scaleY(.32);animation:sustain-wave-drop .86s cubic-bezier(.16,.82,.22,1.02)}.awesomeness-overdrive-wave,.awesomeness-overdrive-flash,.awesomeness-overdrive-shard{position:absolute}.awesomeness-overdrive-wave{inset:0;overflow:hidden}.awesomeness-overdrive-wave:before,.awesomeness-overdrive-wave:after{position:absolute;left:-8%;width:116%;content:"";opacity:0}.awesomeness-overdrive-wave:before{top:0;height:12px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--power-accent) 72%,transparent) 38%,color-mix(in srgb,var(--power-peak) 72%,transparent) 50%,color-mix(in srgb,var(--power-accent) 72%,transparent) 62%,transparent 100%);filter:blur(.2px);transform:translate(-100%) scaleX(.4);animation:overdrive-wave-sweep 1.12s cubic-bezier(.16,.82,.22,1.02)}.awesomeness-overdrive-wave:after{top:12px;bottom:0;height:calc(100% - 12px);background:linear-gradient(180deg,color-mix(in srgb,var(--power-accent) 22%,transparent),color-mix(in srgb,var(--power-accent) 9%,transparent) 34%,transparent 72%);transform:translateY(-46%) scaleY(.45);animation:overdrive-wave-drop 1.12s cubic-bezier(.16,.82,.22,1.02)}.awesomeness-overdrive-flash{inset:0;opacity:0;background:linear-gradient(112deg,transparent 0%,color-mix(in srgb,var(--power-accent) 18%,transparent) 46%,color-mix(in srgb,var(--power-peak) 14%,transparent) 50%,transparent 58%);transform:translate(-38%) skew(-10deg);animation:overdrive-flash .78s ease-out .11s}.awesomeness-overdrive-shard{--shard-x: 0vw;--shard-y: 0vh;--shard-r: 0deg;--shard-delay: 0ms;left:50%;top:6px;width:min(18vw,160px);height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--power-accent) 78%,white),color-mix(in srgb,var(--power-peak) 52%,transparent),transparent);box-shadow:0 0 12px color-mix(in srgb,var(--power-accent) 42%,transparent),0 0 28px color-mix(in srgb,var(--power-accent) 26%,transparent);opacity:0;transform-origin:center;animation:overdrive-shard .76s cubic-bezier(.15,.72,.1,1) forwards;animation-delay:var(--shard-delay)}.awesomeness-overdrive-shard:nth-child(3){--shard-x: -42vw;--shard-y: 18vh;--shard-r: -8deg}.awesomeness-overdrive-shard:nth-child(4){--shard-x: 36vw;--shard-y: 16vh;--shard-r: 8deg;--shard-delay: 18ms}.awesomeness-overdrive-shard:nth-child(5){--shard-x: -32vw;--shard-y: 34vh;--shard-r: 12deg;--shard-delay: 34ms}.awesomeness-overdrive-shard:nth-child(6){--shard-x: 31vw;--shard-y: 35vh;--shard-r: -12deg;--shard-delay: 48ms}.awesomeness-overdrive-shard:nth-child(7){--shard-x: -10vw;--shard-y: 47vh;--shard-r: -4deg;--shard-delay: 62ms}.awesomeness-overdrive-shard:nth-child(8){--shard-x: 12vw;--shard-y: 48vh;--shard-r: 4deg;--shard-delay: 76ms}.awesomeness-overdrive-shard:nth-child(9){--shard-x: -50vw;--shard-y: 7vh;--shard-r: -4deg;--shard-delay: 90ms}.awesomeness-overdrive-shard:nth-child(10){--shard-x: 48vw;--shard-y: 8vh;--shard-r: 4deg;--shard-delay: 104ms}.awesomeness-overdrive-shard:nth-child(11){--shard-x: -44vw;--shard-y: 27vh;--shard-r: 10deg;--shard-delay: 118ms}.awesomeness-overdrive-shard:nth-child(12){--shard-x: 42vw;--shard-y: 28vh;--shard-r: -10deg;--shard-delay: 132ms}.awesomeness-overdrive-shard:nth-child(13){--shard-x: -24vw;--shard-y: 42vh;--shard-r: 16deg;--shard-delay: 146ms}.awesomeness-overdrive-shard:nth-child(14){--shard-x: 24vw;--shard-y: 43vh;--shard-r: -16deg;--shard-delay: .16s}.practice-viewport{position:relative;z-index:1;min-height:clamp(420px,48vw,500px);max-height:clamp(420px,48vw,500px);padding:10px 0 22px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 10px,#000 calc(100% - 30px),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 10px,#000 calc(100% - 30px),transparent 100%)}.practice-track{position:relative;transform:translate3d(0,var(--practice-window-offset, 0px),0);transition:transform .22s cubic-bezier(.16,.82,.22,1);will-change:transform}.practice-rows{--word-gap-half: clamp(7px, 1.2vw, 12px);--practice-column-gap: clamp(14px, 2.4vw, 24px);position:relative;z-index:1;display:flex;align-items:flex-end;flex-wrap:wrap;gap:clamp(10px,1.8vw,16px) var(--practice-column-gap)}.practice-rows.is-power-impact{animation:power-bump .12s ease-out}.practice-pair{display:grid;gap:4px;max-width:100%}.practice-pair.is-current{color:var(--text)}.hanzi-line,.pinyin-line{overflow-wrap:anywhere}.hanzi-line{color:var(--muted);font-size:clamp(18px,2.4vw,27px);line-height:1.35;letter-spacing:0}.hanzi-current{border-radius:6px;color:var(--text);background:color-mix(in srgb,var(--main) 18%,transparent)}.hanzi-latin{font-family:var(--latin-practice-font);font-size:.9em;font-weight:500}.pinyin-line{color:var(--muted);font-family:var(--font-mono);font-size:clamp(21px,2.8vw,32px);line-height:1.35;white-space:pre-wrap}.pinyin-line span{position:relative;z-index:1;display:inline-block;transition:color .12s ease-out,text-shadow .16s ease-out}.pinyin-line .is-hidden-space{color:transparent;white-space:pre}.pinyin-line .is-hidden-space.required-space{color:transparent}.pinyin-line .is-word-space.required-space{vertical-align:baseline}.pinyin-line .is-word-offset-space,.pinyin-line .is-word-space.required-space.is-word-offset-space{margin-left:var(--word-gap-half);margin-right:var(--word-gap-half)}.pinyin-line .is-word-space.required-space.is-space-pressed,.pinyin-line .is-word-space.required-space.is-space-released{animation:none}.phrase-current{color:var(--text)}.is-correct{color:var(--typed-correct)}.is-optional-hit,.is-word-space-hit{position:relative;color:transparent}.is-optional-hit:after,.is-word-space-hit:after{content:"␣";position:absolute;left:50%;top:50%;z-index:2;color:var(--main);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1em;line-height:1;pointer-events:none;transform:translate(-50%,-50%)}.is-optional-hit:after,.is-word-space-hit:after{text-shadow:0 0 10px color-mix(in srgb,var(--main) 46%,transparent);opacity:1;transform:translate(-50%,-50%) scale(.96)}.is-word-space-hit.is-word-separator-space:after{left:calc(50% + var(--practice-column-gap) / 2)}.is-optional-hit.is-space-pressed:after,.is-word-space-hit.is-space-pressed:after{animation:optional-space-press .18s cubic-bezier(.16,.9,.24,1) forwards}.is-optional-hit.is-space-released:after,.is-word-space-hit.is-space-released:after{animation:optional-space-release .17s cubic-bezier(.2,0,.78,.24) forwards}.is-error{color:var(--soft-error)}@keyframes optional-space-press{0%{opacity:1;transform:translate(-50%,-50%) scale(.82)}to{opacity:1;transform:translate(-50%,calc(-50% - .62em)) scale(1.12)}}@keyframes optional-space-release{0%{opacity:1;transform:translate(-50%,calc(-50% - .62em)) scale(1.12)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes view-enter{0%{opacity:0;transform:translate3d(0,3px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes view-exit{0%{opacity:1}to{opacity:0}}@keyframes changelog-panel-in{0%{opacity:0;transform:translate3d(0,8px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes changelog-panel-out{0%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:0;transform:translate3d(0,6px,0) scale(.985)}}.current-char{position:relative;z-index:2;border-radius:4px;color:var(--text);background:transparent;text-shadow:0 0 10px color-mix(in srgb,var(--caret) 26%,transparent)}.current-char.is-cursor-settled{color:var(--cursor-text, var(--text))}.current-char.is-error{color:var(--text);background:color-mix(in srgb,var(--soft-error) 20%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--soft-error) 45%,transparent)}.motion-cursor{position:absolute;z-index:0;left:0;top:0;width:var(--cursor-width);height:var(--cursor-height);border-radius:4px;background:var(--caret);box-shadow:0 0 0 1px color-mix(in srgb,var(--caret) 35%,transparent),0 8px 26px color-mix(in srgb,var(--caret) 22%,transparent);pointer-events:none;transform:translate3d(var(--cursor-x),var(--cursor-y),0);transition:transform .22s linear,width .16s ease-out,height .16s ease-out,background-color .14s ease-out}.motion-cursor.is-backspace{transition-duration:.15s;transition-timing-function:cubic-bezier(.18,.68,.24,1.12)}.ghost-cursor{position:absolute;z-index:2;left:0;top:0;width:var(--cursor-width);height:var(--cursor-height);border-radius:4px;border:2px solid color-mix(in srgb,var(--main) 70%,var(--sub));background:linear-gradient(180deg,color-mix(in srgb,var(--main) 8%,transparent),color-mix(in srgb,var(--sub) 6%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bg) 28%,transparent),0 0 0 1px color-mix(in srgb,var(--main) 26%,transparent),0 0 26px color-mix(in srgb,var(--main) 28%,transparent);opacity:.95;pointer-events:none;transform:translate3d(var(--cursor-x),var(--cursor-y),0);transition:transform .22s linear,width .16s ease-out,height .16s ease-out,opacity .16s ease-out}.power-effects-layer{position:absolute;z-index:5;inset:0;overflow:hidden;pointer-events:none}.power-burst{position:absolute;left:0;top:0;width:1px;height:1px;transform:translate3d(var(--burst-x),var(--burst-y),0)}.power-spark{position:absolute;left:-2px;top:-2px;width:5px;height:5px;border-radius:999px;background:var(--power-glow);box-shadow:0 0 10px color-mix(in srgb,var(--power-glow) 48%,transparent),0 0 18px color-mix(in srgb,var(--power-accent) 22%,transparent);opacity:0;animation:power-spark .42s ease-out forwards;animation-delay:var(--spark-delay)}.required-space{display:inline-block;margin-left:.55em;margin-right:.12em;color:var(--main);vertical-align:.12em}.required-space.is-required-hit{text-shadow:0 0 10px color-mix(in srgb,var(--main) 46%,transparent);transform-origin:50% 50%}.required-space.is-space-pressed{animation:required-space-press .18s cubic-bezier(.16,.9,.24,1) forwards}.required-space.is-space-released{animation:required-space-release .17s cubic-bezier(.2,0,.78,.24) forwards}@keyframes required-space-press{0%{transform:translateY(0) scale(.94)}to{transform:translateY(-.62em) scale(1.12)}}@keyframes required-space-release{0%{transform:translateY(-.62em) scale(1.12)}to{transform:translateY(0) scale(1)}}@keyframes panel-enter{0%{opacity:0;transform:translate3d(0,-6px,0) scale(.985)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes panel-exit{0%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:0;transform:translate3d(0,-4px,0) scale(.99)}}@keyframes mode-content-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-4px,0)}}@keyframes mode-content-fade-in{0%{opacity:0;transform:translate3d(0,4px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes power-bump{0%{transform:translateZ(0)}35%{transform:translate3d(1px,-1px,0)}70%{transform:translate3d(-1px,1px,0)}to{transform:translateZ(0)}}@keyframes power-spark{0%{opacity:.85;transform:translateZ(0) scale(.74)}65%{opacity:.72}to{opacity:0;transform:translate3d(var(--spark-x),var(--spark-y),0) scale(.16)}}@keyframes awesomeness-meter-hit{0%{filter:brightness(1);transform:translateZ(0) scaleY(1)}45%{filter:brightness(1.62) saturate(1.25);transform:translate3d(0,-2px,0) scaleY(2.1)}to{filter:brightness(1);transform:translateZ(0) scaleY(1)}}@keyframes awesomeness-complete-flash{0%{filter:brightness(1) saturate(1);transform:translateZ(0) scaleY(1)}36%{filter:brightness(1.8) saturate(1.35);transform:translate3d(0,-1px,0) scaleY(1.85)}to{filter:brightness(1.2) saturate(1.35);transform:translateZ(0) scaleY(1)}}@keyframes awesomeness-duel-collision{0%{opacity:0;transform:translate(-50%,-50%) scaleX(.12) scaleY(.48)}18%{opacity:1;transform:translate(-50%,-50%) scaleX(.54) scaleY(.92)}46%{opacity:.72;transform:translate(-50%,-50%) scaleX(1) scaleY(1.06)}to{opacity:0;transform:translate(-50%,-50%) scaleX(1.24) scaleY(.72)}}@keyframes awesomeness-duel-bar-collision{0%{transform:translateZ(0) scaleY(1)}22%{transform:translate3d(calc(var(--duel-resist, 2px) * -.34),-1px,0) scaleY(1.48)}48%{transform:translate3d(calc(var(--duel-resist, 2px) * .24),0,0) scaleY(1.18)}to{transform:translateZ(0) scaleY(1)}}@keyframes awesomeness-duel-resistance{0%,to{transform:translate(-1px)}28%{transform:translate(calc(-1px - var(--duel-resist, 2px)))}62%{transform:translate(calc(-1px + var(--duel-resist, 2px) * .82))}}@keyframes awesomeness-duel-fill-pressure{0%,to{opacity:.78}45%{opacity:.9}}@keyframes awesomeness-duel-deadlock-breathe{0%,to{transform:translateZ(0) scaleY(1)}48%{transform:translate3d(calc(var(--duel-resist, 2px) * -.16),-.5px,0) scaleY(1.32)}72%{transform:translate3d(calc(var(--duel-resist, 2px) * .14),0,0) scaleY(1.12)}}@keyframes awesomeness-duel-deadlock-pulse{0%,to{opacity:0;transform:scaleX(.2)}38%{opacity:.72}64%{opacity:.28;transform:scaleX(.92)}}@keyframes awesomeness-surge{0%{opacity:0;transform:translate(-42%) scaleX(.2)}42%{opacity:.9}to{opacity:0;transform:translate(30%) scaleX(1.5)}}@keyframes awesomeness-sustain-breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.16) saturate(1.12)}}@keyframes awesomeness-sustain-pulse{0%{opacity:0;transform:translate(-18%) scaleX(.2)}36%{opacity:.72}to{opacity:0;transform:translate(58%) scaleX(1.15)}}@keyframes sustain-wave-sweep{0%{opacity:0;transform:translate(-100%) scaleX(.3)}18%{opacity:.76}to{opacity:0;transform:translate(100%) scaleX(1)}}@keyframes sustain-wave-drop{0%{opacity:0;transform:translateY(-32%) scaleY(.32)}22%{opacity:.62}to{opacity:0;transform:translateY(24%) scaleY(.86)}}@keyframes label-quake{0%{transform:translateZ(0) rotate(0) scale(var(--label-scale))}18%{transform:translate3d(2px,-2px,0) rotate(-4deg) scale(calc(var(--label-scale) * 1.28))}42%{transform:translate3d(-3px,2px,0) rotate(3.2deg) scale(calc(var(--label-scale) * 1.18))}68%{transform:translate3d(1px,1px,0) rotate(-1.8deg) scale(calc(var(--label-scale) * 1.08))}to{transform:translateZ(0) rotate(0) scale(var(--label-scale))}}@keyframes awesomeness-sheen{0%{transform:translate(-78%)}48%,to{transform:translate(86%)}}@keyframes awesomeness-overdrive-fill{0%{transform:translateZ(0) scaleY(1);filter:brightness(1)}18%{transform:translate3d(0,-1px,0) scaleY(1.45);filter:brightness(1.22) saturate(1.15)}42%{transform:translateZ(0) scaleY(1.18);filter:brightness(1.36) saturate(1.28)}to{transform:translateZ(0) scaleY(1);filter:brightness(1)}}@keyframes overdrive-wave-sweep{0%{opacity:0;transform:translate(-100%) scaleX(.28)}18%{opacity:1}62%{opacity:.8}to{opacity:0;transform:translate(100%) scaleX(1.18)}}@keyframes overdrive-wave-drop{0%{opacity:0;transform:translateY(-46%) scaleY(.45)}18%{opacity:.92}68%{opacity:.45}to{opacity:0;transform:translateY(36%) scaleY(1.08)}}@keyframes overdrive-flash{0%{opacity:0;transform:translate(-28%) skew(-12deg)}18%{opacity:.72}to{opacity:0;transform:translate(38%) skew(-12deg)}}@keyframes overdrive-shard{0%{opacity:0;transform:translate3d(-50%,-50%,0) rotate(var(--shard-r)) scaleX(.1)}16%{opacity:.9}to{opacity:0;transform:translate3d(calc(-50% + var(--shard-x)),calc(-50% + var(--shard-y)),0) rotate(var(--shard-r)) scaleX(1.15)}}.result-view{display:grid;grid-template-columns:minmax(280px,.84fr) minmax(420px,1.36fr);align-items:start;gap:12px;padding-top:clamp(24px,5vh,48px)}.debug-sample-label{margin:0 0 12px;color:var(--sub);font-family:var(--font-mono);font-size:.82rem}.debug-suite{display:grid;gap:22px}.debug-suite-heading{display:grid;gap:8px}.debug-suite-heading h1,.debug-suite-heading p{margin:0}.debug-suite-heading p:not(.eyebrow){max-width:760px;color:var(--sub);line-height:1.75}.debug-suite-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.debug-suite-card{display:grid;gap:7px;min-height:112px;padding:14px;border:1px solid color-mix(in srgb,var(--sub) 22%,transparent);border-radius:8px;background:color-mix(in srgb,var(--sub-alt) 72%,transparent);color:var(--text);text-decoration:none;transition:border-color .14s ease,background .14s ease,transform .14s ease}.debug-suite-card:hover{border-color:color-mix(in srgb,var(--main) 46%,transparent);background:color-mix(in srgb,var(--sub-alt) 88%,transparent);transform:translateY(-1px)}.debug-suite-label{color:var(--text);font-size:.94rem}.debug-suite-stats{color:var(--main);font-family:var(--font-mono);font-size:.86rem}.debug-suite-meta{color:var(--sub);font-family:var(--font-mono);font-size:.78rem}.debug-suite-badges,.debug-suite-badge-cloud{display:flex;flex-wrap:wrap;gap:6px}.debug-suite-badge,.debug-suite-frequency{display:inline-flex;align-items:center;min-height:22px;border:1px solid color-mix(in srgb,var(--main) 32%,var(--line));border-radius:4px;padding:0 7px;color:var(--main);font-family:var(--font-mono);font-size:.72rem}.debug-suite-analysis{display:grid;grid-template-columns:minmax(220px,.8fr) repeat(2,minmax(260px,1fr));gap:16px;border-top:1px solid color-mix(in srgb,var(--sub) 18%,transparent);padding-top:18px}.debug-suite-analysis h2{margin:0 0 10px;color:var(--sub);font-family:var(--font-mono);font-size:.78rem;font-weight:600;text-transform:lowercase}.debug-suite-table{display:grid;gap:6px}.debug-suite-row{display:grid;grid-template-columns:110px 1fr;gap:10px;color:var(--text);font-family:var(--font-mono);font-size:.78rem}.debug-suite-row span:last-child{color:var(--sub)}.debug-suite-frequency.is-hot{border-color:color-mix(in srgb,var(--muted) 58%,var(--line));color:var(--muted)}.score-panel,.metric-card,.analysis-card,.weakspot-card,.challenge-panel,.chart-card{border:1px solid var(--line);border-radius:4px;background:transparent}.score-panel{min-height:236px;display:grid;align-content:center;gap:12px;padding:clamp(20px,3vw,32px);border-color:color-mix(in srgb,var(--main) 42%,var(--line))}.score-panel-heading,.analysis-heading,.chart-heading,.chart-stats,.metric-note,.result-badge{display:flex;align-items:center}.score-panel-heading,.chart-heading{justify-content:space-between;gap:12px}.analysis-heading{gap:8px;color:var(--muted)}.analysis-heading svg{flex:0 0 auto;color:var(--main)}.metric-label{color:var(--muted);font-family:var(--font-mono);font-size:13px;line-height:1.4}.result-badge{min-height:30px;border:1px solid var(--line);border-radius:4px;padding:0 10px;color:var(--main);background:transparent;font-family:var(--font-mono);font-size:13px;line-height:1;white-space:nowrap}.result-badge-list .result-badge{border-color:color-mix(in srgb,var(--main) 46%,var(--line));color:var(--main)}.result-badge-shell{position:relative;display:inline-flex}.result-badge.is-good{border-color:color-mix(in srgb,var(--main) 52%,var(--line));color:var(--main)}.result-badge.is-warn{border-color:color-mix(in srgb,var(--muted) 58%,var(--line));color:var(--muted)}.result-badge-list{display:flex;flex-wrap:wrap;gap:6px;max-width:380px}.result-badge-list .result-badge{min-height:26px;padding:0 8px;font-size:12px}.result-badge-tooltip{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);z-index:4;pointer-events:none;width:max-content;max-width:min(280px,calc(100vw - 24px));border:1px solid color-mix(in srgb,var(--main) 42%,var(--line));border-radius:4px;padding:8px 10px;color:var(--text);background:var(--bg);box-shadow:0 12px 32px color-mix(in srgb,#000 18%,transparent);font-size:13px;line-height:1.55;white-space:normal;overflow-wrap:anywhere}.result-badge-shell:first-child .result-badge-tooltip{left:0;transform:none}.result-badge-shell:last-child .result-badge-tooltip{right:0;left:auto;transform:none}.flow-score{color:var(--main);font-size:clamp(60px,9vw,104px);line-height:.9;letter-spacing:0}.score-label-row{position:relative;display:inline-flex;align-items:center;gap:8px}.score-help{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-family:var(--font-mono);font-size:12px;line-height:1}.score-help-tooltip{position:absolute;left:0;bottom:calc(100% + 8px);z-index:3;width:min(320px,70vw);border:1px solid color-mix(in srgb,var(--main) 42%,var(--line));border-radius:4px;padding:8px 10px;color:var(--text);background:var(--bg);box-shadow:0 12px 32px color-mix(in srgb,#000 18%,transparent);font-size:13px;line-height:1.55}.result-copy{max-width:360px;margin:0;color:var(--muted);font-size:15px;line-height:1.6}.history-summary{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:14px}.metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-self:stretch;gap:12px}.metric-card,.analysis-card,.weakspot-card,.challenge-panel,.chart-card{display:grid;gap:8px;align-content:center;min-height:112px;padding:16px}.metric-card strong,.analysis-card strong{overflow-wrap:anywhere;color:var(--text);font-size:clamp(26px,4vw,42px);line-height:1.05;letter-spacing:0}.analysis-card .analysis-verdict{font-size:clamp(24px,2.35vw,36px);line-height:1.08;margin-bottom:4px}.metric-note{min-height:22px;color:var(--muted);font-family:var(--font-mono);font-size:13px}.analysis-card{grid-column:2;min-height:142px}.analysis-card p,.empty-analysis{margin:0;color:var(--muted);font-size:14px;line-height:1.55}.analysis-card .analysis-focus{color:var(--muted)}.challenge-source-shelf{width:fit-content;grid-template-columns:auto;padding:10px 14px}.challenge-standings-preview{width:min(760px,100%);display:grid;gap:12px;border:1px solid color-mix(in srgb,var(--main) 30%,var(--line));border-radius:6px;padding:14px;background:transparent}.challenge-standings-refresh{justify-self:start;min-height:34px;gap:8px;padding:0 12px}.challenge-panel{grid-column:1 / -1;align-content:start;gap:14px;margin-top:18px;border-color:color-mix(in srgb,var(--main) 34%,var(--line));background:transparent}.challenge-panel-heading{min-height:24px}.challenge-panel-grid{display:grid;grid-template-columns:minmax(260px,.88fr) minmax(360px,1.12fr);gap:16px;align-items:start}.challenge-panel-section{min-width:0;display:grid;align-content:start;gap:12px}.challenge-rival-card{border-left:1px solid color-mix(in srgb,var(--line) 72%,transparent);padding-left:16px}.challenge-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text);font-size:14px;font-weight:600}.challenge-section-heading span:last-child{min-height:24px;display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--main) 34%,var(--line));border-radius:4px;padding:0 7px;color:var(--main);font-family:var(--font-mono);font-size:11px;font-weight:500}.challenge-comparison-table{display:grid;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:4px}.challenge-comparison-row{display:grid;grid-template-columns:minmax(68px,.75fr) repeat(3,minmax(72px,1fr));gap:8px;align-items:center;min-height:38px;border-top:1px solid color-mix(in srgb,var(--line) 64%,transparent);padding:0 10px;font-family:var(--font-mono);font-size:12px}.challenge-comparison-row:first-child{border-top:0}.challenge-comparison-row.is-heading{min-height:32px;color:var(--text);background:transparent;font-size:11px;font-weight:700}.challenge-comparison-row>span,.challenge-comparison-row>strong{min-width:0;overflow-wrap:anywhere}.challenge-comparison-row strong{color:var(--text);font-size:13px;font-weight:700}.challenge-comparison-delta{width:fit-content;min-height:24px;display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:4px;padding:0 7px;font-weight:700}.challenge-comparison-delta.is-positive{border-color:color-mix(in srgb,var(--main) 42%,var(--line));color:var(--main);background:color-mix(in srgb,var(--main) 8%,transparent)}.challenge-comparison-delta.is-negative{border-color:color-mix(in srgb,var(--mistake) 36%,var(--line));color:var(--mistake);background:color-mix(in srgb,var(--mistake) 7%,transparent)}.challenge-comparison-delta.is-neutral{color:var(--muted)}.challenge-copy-status{width:fit-content;min-height:26px;display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--main) 42%,var(--line));border-radius:4px;padding:0 8px;color:var(--main);font-family:var(--font-mono);font-size:12px}.challenge-link-field{display:grid;gap:6px}.challenge-link-field span{color:var(--muted);font-family:var(--font-mono);font-size:12px}.challenge-link-field input{width:100%;min-height:38px;border:1px solid var(--line);border-radius:4px;padding:0 12px;color:var(--text);background:color-mix(in srgb,var(--surface) 52%,transparent);font-family:var(--font-mono);font-size:12px;text-overflow:ellipsis}.challenge-copy-button{justify-self:stretch;min-height:38px}.challenge-panel-hint{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.challenge-attempts-section{display:grid;gap:12px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);padding-top:14px}.challenge-attempts-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;color:var(--text);font-family:var(--font-mono);font-size:12px}.challenge-attempts-summary strong{color:var(--main);font-size:12px}.challenge-rank-chip{min-height:24px;display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--main) 38%,var(--line));border-radius:4px;padding:0 7px;color:var(--main);background:color-mix(in srgb,var(--main) 8%,transparent)}.challenge-display-name-form{display:grid;grid-template-columns:minmax(160px,220px) auto;gap:8px;align-items:end;justify-content:start}.challenge-display-name-field{display:grid;gap:6px}.challenge-display-name-field span{color:var(--muted);font-family:var(--font-mono);font-size:12px}.challenge-display-name-field input{width:100%;min-height:32px;border:1px solid var(--line);border-radius:4px;padding:0 9px;color:var(--text);background:color-mix(in srgb,var(--surface) 52%,transparent);font-family:var(--font-mono);font-size:12px}.challenge-display-name-button{appearance:none;height:32px;min-height:0;align-self:end;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid color-mix(in srgb,var(--main) 46%,var(--line));border-radius:4px;padding:0 12px;color:var(--main);background:color-mix(in srgb,var(--surface) 45%,transparent);font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:1;box-shadow:none;cursor:pointer;transition:border-color .16s ease,color .16s ease,background-color .16s ease,transform .16s ease}.challenge-display-name-button:disabled{cursor:default;opacity:.6}.challenge-display-name-button:not(:disabled):hover{border-color:color-mix(in srgb,var(--main) 68%,var(--line));background:color-mix(in srgb,var(--main) 9%,transparent)}.challenge-display-name-button:not(:disabled):active{transform:translateY(1px)}.challenge-display-name-form .challenge-panel-hint{grid-column:1 / -1}.challenge-attempts-list{display:grid;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:4px}.challenge-attempt-row{display:grid;grid-template-columns:minmax(64px,.8fr) repeat(4,minmax(64px,1fr));gap:8px;align-items:center;min-height:36px;border-top:1px solid color-mix(in srgb,var(--line) 64%,transparent);padding:0 10px;font-family:var(--font-mono);font-size:12px}.challenge-attempt-row:first-child{border-top:0}.challenge-attempt-row span,.challenge-attempt-row strong{min-width:0;overflow-wrap:anywhere}.challenge-attempt-row strong{color:var(--text);font-size:13px}.weakspot-card{grid-column:1;grid-row:2 / span 2;min-height:216px;align-content:start}.weakspot-list{display:grid;gap:8px;margin:4px 0 0;padding:0;list-style:none}.weakspot-list li{min-height:42px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:8px;color:var(--text);font-family:var(--font-mono)}.weakspot-list li:first-child{border-top:0;padding-top:0}.weakspot-list span{min-width:0;overflow-wrap:anywhere}.weakspot-pair{display:inline-flex;align-items:center;gap:10px}.weakspot-space-token{min-width:44px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;padding:0 8px;color:var(--muted);font-size:13px;line-height:1}.weakspot-list strong{display:inline-flex;flex-direction:column;align-items:flex-end;gap:3px;color:var(--main);font-size:13px;line-height:1.1;white-space:nowrap}.weakspot-list strong span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:0}.chart-card{grid-column:2;min-height:150px}.chart-stats{flex-wrap:wrap;justify-content:flex-end;gap:6px;color:var(--muted);font-family:var(--font-mono);font-size:12px}.chart-stats span{border:1px solid var(--line);border-radius:4px;padding:3px 6px;white-space:nowrap}.speed-chart{position:relative;height:96px;max-width:100%;overflow:visible;padding:8px 0 0;margin-bottom:26px}.speed-chart-plot{position:relative;height:100%;overflow:hidden}.speed-line-chart{width:100%;height:100%;display:block;pointer-events:none;overflow:hidden}.speed-grid-line{stroke:color-mix(in srgb,var(--line) 70%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}.speed-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.speed-line.is-wpm{stroke:var(--main);stroke-width:2.8}.speed-line.is-raw{stroke:color-mix(in srgb,var(--main) 70%,var(--text));stroke-dasharray:8 8;stroke-width:1.7;opacity:.54}.speed-line.is-burst{stroke:color-mix(in srgb,var(--text) 82%,var(--main));stroke-width:2.2;opacity:.66}.speed-line.is-average{stroke:color-mix(in srgb,var(--text) 46%,transparent);stroke-width:1.5;opacity:.42}.speed-error-cross{position:absolute;left:var(--speed-error-left);top:var(--speed-error-top);width:9px;height:9px;transform:translate(calc(-50% + var(--speed-error-offset-x, 0px)),calc(-50% + var(--speed-error-offset-y, 0px)));opacity:.9;pointer-events:none}.speed-error-cross:before,.speed-error-cross:after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.7px;border-radius:999px;background:var(--mistake);transform-origin:center}.speed-error-cross:before{transform:translate(-50%,-50%) rotate(45deg)}.speed-error-cross:after{transform:translate(-50%,-50%) rotate(-45deg)}.speed-hover-zone{fill:transparent}.speed-legend{position:absolute;right:0;top:calc(100% + 12px);display:flex;gap:12px;align-items:center;color:var(--sub);font-family:var(--font-mono);font-size:11px;line-height:1;pointer-events:none}.speed-legend span{display:inline-flex;gap:5px;align-items:center}.speed-legend span:before{content:"";width:14px;height:2px;border-radius:999px;background:var(--main)}.speed-legend span[data-id=raw]:before{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--main) 70%,var(--text)) 0 5px,transparent 5px 8px)}.speed-legend span[data-id=burst]:before{height:3px;background:color-mix(in srgb,var(--text) 82%,var(--main));opacity:.72}.speed-legend span[data-id=errors]:before{width:9px;height:9px;flex:0 0 9px;background:linear-gradient(45deg,transparent 42%,var(--mistake) 42%,var(--mistake) 58%,transparent 58%),linear-gradient(-45deg,transparent 42%,var(--mistake) 42%,var(--mistake) 58%,transparent 58%)}.speed-tooltip{position:absolute;left:var(--speed-tooltip-left);bottom:calc(100% + 8px);z-index:2;transform:translate(-50%);border:1px solid color-mix(in srgb,var(--main) 48%,var(--line));border-radius:4px;padding:8px 10px;color:var(--text);background:color-mix(in srgb,var(--bg) 86%,#000);box-shadow:0 10px 30px color-mix(in srgb,#000 18%,transparent);font-family:var(--font-mono);font-size:12px;line-height:1.2;white-space:nowrap;pointer-events:none;display:grid;gap:5px;min-width:132px}.speed-tooltip-title{color:var(--text);font-weight:700}.speed-tooltip-row{display:grid;grid-template-columns:14px auto 1fr;gap:6px;align-items:center}.speed-tooltip-row strong{justify-self:end}.speed-tooltip-swatch{width:12px;height:12px;border-radius:2px;background:var(--main)}.speed-tooltip-row[data-tone=errors] .speed-tooltip-swatch{background:color-mix(in srgb,var(--mistake) 76%,transparent)}.speed-tooltip-row[data-tone=raw] .speed-tooltip-swatch{background:color-mix(in srgb,var(--main) 70%,var(--text))}.speed-tooltip-row[data-tone=burst] .speed-tooltip-swatch{background:var(--sub)}.speed-tooltip-meta{color:var(--sub);font-size:11px}.speed-tooltip:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:84px;background:color-mix(in srgb,var(--main) 50%,transparent)}.result-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;padding-top:2px}.secondary-button{width:fit-content;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:0 18px;color:var(--text);background:transparent;cursor:pointer;transition:border-color .16s ease,color .16s ease,background-color .16s ease,box-shadow .16s ease,filter .16s ease,transform .16s ease}.secondary-button:not(:disabled):hover{border-color:color-mix(in srgb,var(--main) 58%,var(--line));background:color-mix(in srgb,var(--main) 8%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--main) 10%,transparent);transform:translateY(-1px)}.secondary-button:not(:disabled):active{filter:brightness(.96);transform:translateY(1px) scale(.985)}@media(max-width:640px){.app-shell{width:min(100% - 24px,1120px);padding-top:18px}.top-bar{grid-template-columns:1fr;align-items:flex-start}.mode-label,.top-actions{justify-self:start}.top-actions{width:100%;justify-content:space-between}.theme-trigger{width:min(148px,46vw)}.source-shelf{grid-template-columns:1fr;align-items:stretch}.sentence-source-shelf{width:100%}.source-toggle{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.source-shelf-status{justify-content:space-between;padding:0 4px 2px}.word-source-shelf{grid-template-columns:1fr;gap:8px}.word-source-copy,.word-count-selector{justify-content:space-between}.word-count-selector{width:100%}.typing-stage{min-height:280px}.practice-viewport{min-height:380px;max-height:380px}.result-view,.metrics-grid{grid-template-columns:1fr}.score-panel{min-height:240px}.analysis-card{grid-column:auto}.challenge-panel-grid{grid-template-columns:1fr}.challenge-comparison-row{grid-template-columns:minmax(60px,.8fr) repeat(3,minmax(58px,1fr));gap:6px;padding:0 8px;font-size:11px}.challenge-display-name-form{grid-template-columns:1fr}.challenge-rival-card{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-left:0;padding-top:12px;padding-left:0}.weakspot-card{grid-column:auto;grid-row:auto}.chart-card{grid-column:auto}.chart-heading{align-items:flex-start;flex-direction:column}.chart-stats{justify-content:flex-start}.debug-suite-analysis{grid-template-columns:1fr}.result-actions{justify-content:stretch}.result-actions .primary-button,.result-actions .secondary-button,.source-toggle{width:100%}.source-option{min-width:0}.home-changelog-dock{right:16px;bottom:16px}.home-changelog-scroll{max-height:240px}.home-changelog-list li{grid-template-columns:1fr;gap:3px}.custom-source-empty,.custom-source-actions,.custom-source-drawer-header{width:100%}.custom-source-drawer-header{flex-wrap:wrap}.custom-text-list,.custom-draft-row{grid-template-columns:1fr}.custom-import-actions{justify-content:stretch}.custom-import-actions .mini-button{flex:1}}@media(prefers-reduced-motion:reduce){.awesomeness-meter,.awesomeness-meter.is-awesomeness-duel-impact:before,.awesomeness-meter.is-awesomeness-duel-resisting:after,.awesomeness-meter.is-awesomeness-duel-deadlock,.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-fill:before,.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-rival-fill:before,.awesomeness-meter-fill,.awesomeness-meter-rival-fill,.awesomeness-sustain-wave,.awesomeness-sustain-wave:before,.awesomeness-sustain-wave:after,.awesomeness-overdrive,.awesomeness-overdrive-wave,.awesomeness-overdrive-wave:before,.awesomeness-overdrive-wave:after,.awesomeness-overdrive-flash,.awesomeness-overdrive-shard,.effects-panel,.theme-panel,.home-changelog,.home-changelog-trigger,.primary-button,.secondary-button,.toolbar-button,.theme-trigger,.source-option,.mode-option,.mini-button,.icon-button,.text-button,.icon-text-button,.custom-text-option,.mode-content,.content-source-panel,.custom-source-drawer,.custom-import-panel,.word-source-shelf,.word-count-option,.mode-toggle-thumb,.source-toggle-thumb,.effect-option,.effect-option:before,.theme-option,.theme-option:before,.motion-cursor,.ghost-cursor,.view-surface,.practice-track,.practice-rows,.toolbar-stat,.power-spark,.pinyin-line span{transition-duration:1ms;animation:none}.power-effects-layer,.awesomeness-overdrive{display:none}.awesomeness-meter.is-awesomeness-duel-impact:before,.awesomeness-meter.is-awesomeness-duel-resisting:after,.awesomeness-meter.is-awesomeness-duel-deadlock,.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-fill:before,.awesomeness-meter.is-awesomeness-duel-deadlock .awesomeness-meter-rival-fill:before,.awesomeness-meter-fill:before,.awesomeness-meter-fill:after{animation:none}}
