:root{font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#193936;--ink-secondary:#455b56;--ink-soft:#52635f;--ink-tertiary:#7b7770;--muted:#61706b;--paper:#f7f2e9;--paper-strong:#fffdf8;--teal:#117d72;--teal-dark:#0c625a;--teal-soft:#dcebe6;--on-accent:#fff;--coral:#c75c4d;--on-coral:#fff;--coral-soft:#f4dfd9;--line:#d9d2c5;--line-soft:#ece6dc;--control-border:#b9c6c2;--control-border-strong:#aeb9b5;--control-border-hover:#6e8c85;--input-line:#93aaa4;--progress-track:#d7ddd7;--surface:#ffffff61;--surface-soft:#ffffff57;--surface-strong:#ffffffb8;--surface-hover:#19393612;--surface-hover-soft:#1939360f;--focus-ring:#117d7252;--accent-shadow:#117d7224;--accent-shadow-soft:#117d7233;--coral-ink:#98483d;--coral-border:#ddb1a8;--coral-surface:#f4dfd957;--tooltip-bg:#244541;--tooltip-ink:#f8faf8;--panel-overlay:#19282538;--toast-bg:#fffdf8f0;--toast-border:#1939361f;--toast-shadow:0 12px 35px #26302a24;--kbd-border:#ffffff61;--shadow:0 24px 70px #26302a1f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e5ece8;--ink-secondary:#bdc9c4;--ink-soft:#aab7b2;--ink-tertiary:#8f9a96;--muted:#9ba9a4;--paper:#121918;--paper-strong:#18211f;--teal:#58b8aa;--teal-dark:#7bc9bd;--teal-soft:#203b36;--on-accent:#10201d;--coral:#d97868;--on-coral:#241412;--coral-soft:#3c2825;--line:#34423e;--line-soft:#2b3734;--control-border:#53635e;--control-border-strong:#5c6d67;--control-border-hover:#829991;--input-line:#6f8580;--progress-track:#32403c;--surface:#e5ece812;--surface-soft:#e5ece80f;--surface-strong:#e5ece81f;--surface-hover:#e5ece814;--surface-hover-soft:#e5ece812;--focus-ring:#58b8aa6b;--accent-shadow:#0000003d;--accent-shadow-soft:#58b8aa47;--coral-ink:#eda497;--coral-border:#87564e;--coral-surface:#d978681f;--tooltip-bg:#d8e5e0;--tooltip-ink:#17211f;--panel-overlay:#0000007a;--toast-bg:#18211ff5;--toast-border:#e5ece81f;--toast-shadow:0 12px 35px #00000052;--kbd-border:#e5ece83d;--shadow:0 24px 70px #0000006b}*{box-sizing:border-box}html{min-width:0;color:var(--ink);background:var(--paper)}body{min-width:0;min-height:100vh;color:var(--ink);background:var(--paper);margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.sr-only,.sr-only:not(:focus):not(:active){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.app-header{opacity:1;z-index:10;justify-content:space-between;align-items:center;min-height:72px;padding:16px 24px;transition:opacity .2s,transform .2s;display:flex;transform:translateY(0)}.is-quiet .app-header{opacity:0;pointer-events:none;transform:translateY(-5px)}.brand{color:var(--ink);letter-spacing:-.025em;font-weight:760;text-decoration:none}.brand span{color:var(--teal);margin-left:4px;font-size:.72em}.header-actions{align-items:center;gap:8px;display:flex}.header-button,.github-link,.icon-button{cursor:pointer;background:0 0;border:0}.header-button{min-height:38px;color:var(--ink-secondary);border-radius:10px;padding:8px 12px}.header-button:hover{background:var(--surface-hover);color:var(--ink)}.undo-button{color:var(--teal-dark)}.github-link{border:1px solid var(--toast-border);width:38px;height:38px;color:var(--muted);background:var(--surface-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:50%;place-items:center;text-decoration:none;display:grid}.github-link svg{fill:currentColor;width:20px;height:20px;display:block}.reading-column{align-self:start;width:min(700px,100% - 40px);margin:0 auto;padding:clamp(24px,6vh,64px) 0 48px}.eyebrow{color:var(--teal);letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-size:.74rem;font-weight:800}.word-heading-row{align-items:center;gap:16px;display:flex}.word-heading{letter-spacing:-.055em;margin:0;font-size:clamp(3rem,6vw,4rem);line-height:1}.word-copy{font:inherit;color:var(--ink);cursor:copy;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-weight:780}.word-copy:hover{color:var(--teal-dark)}.copy-tip{color:var(--tooltip-ink);background:var(--tooltip-bg);opacity:0;pointer-events:none;border-radius:8px;margin-top:10px;padding:7px 10px;font-size:.76rem;transition:all .16s;position:absolute;transform:translateY(-4px)}:is(.word-heading-row:has(.word-copy:hover)+.copy-tip,.word-heading-row:has(.word-copy:focus-visible)+.copy-tip){opacity:1;transform:translateY(0)}.icon-button{border:1px solid var(--line);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.icon-button:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}.icon-button:disabled{opacity:.35;cursor:not-allowed}.speak-button span{font-size:1.2rem;transform:rotate(-42deg)}.word-meta{color:var(--muted);gap:14px;margin:14px 0 0;font-size:.92rem;display:flex}.copy-feedback{min-height:20px;color:var(--teal);margin:10px 0 0;font-size:.88rem}.learning-guide{border:1px solid color-mix(in srgb, var(--teal) 28%, var(--line));background:var(--teal-soft);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:20px;margin-top:30px;padding:17px 18px;display:flex}.learning-guide strong{color:var(--ink);font-size:.92rem;display:block}.learning-guide p{color:var(--ink-soft);margin:5px 0 0;font-size:.86rem;line-height:1.55}.learning-guide .text-button{flex:none;min-height:34px}.learning-guide+.study-prompt{margin-top:34px}.study-prompt{margin-top:clamp(62px,11vh,110px)}.study-prompt>p{color:var(--muted);margin-bottom:22px;font-size:1.04rem}.answer{margin-top:42px;animation:.23s ease-out both reveal}.meaning-block{border-left:3px solid var(--teal);padding-left:22px}.meaning-en,.spell-heading{max-width:26ch;color:var(--ink);letter-spacing:-.018em;margin:0;font-size:clamp(1.55rem,3vw,1.8rem);font-weight:590;line-height:1.45}.meaning-zh{color:var(--ink-soft);margin:10px 0 0;font-size:1.05rem;line-height:1.65}.examples{gap:12px;margin:30px 0 0;padding:0;list-style:none;display:grid}.examples li{color:var(--ink-secondary);line-height:1.65}.examples strong{color:var(--ink);font-weight:720}.usage-tag{background:var(--teal-soft);color:var(--teal-dark);vertical-align:1px;border-radius:999px;margin-right:9px;padding:2px 7px;font-size:.72rem;display:inline-block}.insights{border-top:1px solid var(--line);margin-top:28px;padding-top:18px}.text-button{color:var(--teal-dark);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.text-button:hover{text-decoration-color:currentColor}.insight-content{border-left:1px solid var(--line);margin-top:18px;padding:4px 0 2px 18px}.insight-content p{color:var(--ink-soft);margin:0 0 15px;line-height:1.7}.insight-content strong{color:var(--ink);margin-bottom:4px;font-size:.82rem;display:block}.study-actions,.spell-actions,.status-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:34px;display:flex}.primary-action,.secondary-action,.tertiary-action,.danger-action,.choice-action{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:16px;min-height:46px;padding:11px 16px;text-decoration:none;display:inline-flex}.primary-action{border:1px solid var(--teal);background:var(--teal);color:var(--on-accent);box-shadow:0 7px 20px var(--accent-shadow)}.primary-action:hover:not(:disabled){background:var(--teal-dark)}.study-choice-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(100%,520px);display:grid}.choice-action{border:1px solid var(--control-border-strong);background:var(--surface);width:100%;color:var(--ink);box-shadow:none;justify-content:space-between;transition:border-color .18s,background-color .18s}.choice-action:hover:not(:disabled){border-color:var(--control-border-hover);background:var(--surface-strong)}.choice-action kbd{border-color:var(--control-border)}.secondary-action{border:1px solid var(--control-border);background:var(--surface);color:var(--ink)}.secondary-action:hover:not(:disabled){border-color:var(--teal)}.secondary-action.coral{border-color:var(--coral-border);color:var(--coral-ink);background:var(--coral-surface)}.tertiary-action{color:var(--muted);background:0 0;border:1px solid #0000}.tertiary-action:hover:not(:disabled){background:var(--surface-hover-soft);color:var(--ink)}.danger-action{border:1px solid var(--coral);background:var(--coral);color:var(--on-coral)}.primary-action:disabled,.secondary-action:disabled,.tertiary-action:disabled,.choice-action:disabled{opacity:.42;cursor:not-allowed}kbd{border:1px solid var(--kbd-border);border-bottom-width:2px;border-radius:6px;padding:2px 7px;font-family:inherit;font-size:.7rem}.secondary-action kbd,.tertiary-action kbd{border-color:var(--line)}.spell-view{padding-top:4px}.spell-heading{max-width:30ch;font-size:clamp(1.7rem,3.4vw,2.15rem)}.spell-zh{margin-top:12px}.spell-field{margin-top:48px;display:block}.spell-field input{border:0;border-bottom:2px solid var(--input-line);width:100%;color:var(--ink);letter-spacing:.015em;background:0 0;border-radius:0;padding:10px 2px 14px;font-size:clamp(1.85rem,4vw,2.4rem);font-weight:650}.spell-field input:focus{border-color:var(--teal);box-shadow:0 3px 0 -1px var(--accent-shadow-soft);outline:0}.spell-field.has-error input{border-color:var(--coral);color:var(--coral-ink);animation:.21s ease-out shake}.spell-field.is-correct input{border-color:var(--teal);color:var(--teal-dark)}.spell-feedback{min-height:58px;padding-top:13px}.spell-feedback p{margin:0;line-height:1.55}.feedback-error{color:var(--coral-ink)}.feedback-success{color:var(--teal-dark)}.status-view,.prepare-view{padding-top:clamp(20px,5vh,56px)}.status-view h1,.prepare-view h1{letter-spacing:-.045em;max-width:15ch;margin:0;font-size:clamp(2.35rem,5vw,3.35rem);line-height:1.08}.status-view>p:not(.eyebrow),.status-lead{max-width:540px;color:var(--muted);margin:22px 0 0;font-size:1.04rem;line-height:1.7}.prepare-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:30px;display:flex}.prepare-note{max-width:540px;color:var(--muted);margin:13px 0 0;font-size:.82rem;line-height:1.5}.file-button{cursor:pointer;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.paste-box{gap:10px;margin-top:34px;display:grid}.paste-box label,.field-label{color:var(--muted);font-size:.86rem;font-weight:670}.field-help{color:var(--muted);font-size:.8rem;line-height:1.45;display:block}textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);background:var(--surface);border-radius:12px;padding:12px;line-height:1.5}.paste-box .secondary-action{justify-self:start}.panel-message{color:var(--teal-dark);margin:14px 0 0;line-height:1.5}.sample-link{margin-top:22px}.page-notice{color:var(--teal-dark);margin:-20px 0 20px;font-size:.86rem}.progress-footer{width:min(700px,100% - 40px);margin:0 auto;padding:16px 0 24px}.progress-meta{color:var(--muted);justify-content:space-between;margin-bottom:8px;font-size:.76rem;display:flex}.progress-track{background:var(--progress-track);border-radius:999px;height:3px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--teal);height:100%;transition:width .18s ease-out;display:block}.remove-current{float:right;color:var(--ink-tertiary);cursor:pointer;opacity:0;background:0 0;border:0;margin-top:8px;font-size:.74rem;transition:opacity .2s}.progress-footer:hover .remove-current,.remove-current:focus-visible{opacity:1}.undo-toast{z-index:30;border:1px solid var(--toast-border);background:var(--toast-bg);max-width:min(420px,100vw - 32px);box-shadow:var(--toast-shadow);border-radius:13px;align-items:center;gap:16px;padding:13px 14px;animation:5s linear both undo-life;display:flex;position:fixed;top:76px;right:24px}.undo-toast span{color:var(--ink-soft);font-size:.84rem;line-height:1.4}.undo-toast button{color:var(--teal-dark);cursor:pointer;background:0 0;border:0;flex:none;font-weight:720}.panel-layer{z-index:50;background:var(--panel-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:flex-end;display:flex;position:fixed;inset:0}.manage-panel{background:var(--paper-strong);width:min(470px,100%);height:100%;box-shadow:var(--shadow);padding:26px 28px 48px;animation:.22s ease-out both panel-in;overflow-y:auto}.panel-header{z-index:3;border-bottom:1px solid var(--line);background:var(--paper-strong);gap:16px;margin:-26px -28px 0;padding:26px 28px 16px;display:grid;position:sticky;top:-26px}.panel-heading-row{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.panel-header .eyebrow{margin-bottom:6px}.panel-header h2{letter-spacing:-.03em;margin:0;font-size:1.65rem}.close-button{flex:none}.close-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;width:20px;height:20px}.panel-nav{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.panel-nav button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:.84rem;font-weight:680}.panel-nav button:hover{color:var(--ink);background:var(--surface-hover)}.panel-nav button.is-active{color:var(--ink);background:var(--paper-strong);box-shadow:0 2px 9px var(--accent-shadow)}.panel-content{min-width:0}.panel-section{border-top:1px solid var(--line);padding:24px 0}.panel-section-first{border-top:0}.panel-section h3,.confirm-box h3{margin:0 0 8px;font-size:1rem}.panel-section>p,.confirm-box p,.setting-note{color:var(--muted);margin:0 0 16px;font-size:.88rem;line-height:1.55}.panel-section textarea{margin:8px 0 10px}.button-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.button-grid .tertiary-action,.danger-zone .tertiary-action{border-color:var(--line)}.shortcut-list{gap:12px;margin:18px 0 0;display:grid}.shortcut-list div{grid-template-columns:54px 1fr;gap:10px;display:grid}.shortcut-list dt{color:var(--ink);font-size:.82rem;font-weight:700}.shortcut-list dd{color:var(--muted);margin:0;font-size:.8rem;line-height:1.45}.current-mode-help{background:var(--teal-soft);border-radius:12px;padding:14px 15px;color:var(--ink-soft)!important}.quickstart-list{gap:16px;margin:18px 0 20px;padding:0;list-style:none;display:grid}.quickstart-list li{gap:3px;min-height:32px;padding-left:44px;display:grid;position:relative}.quickstart-list .quickstart-number{border:1px solid var(--control-border);width:30px;height:30px;color:var(--teal-dark);border-radius:50%;place-items:center;font-size:.78rem;font-weight:760;display:grid;position:absolute;top:0;left:0}.quickstart-list strong{color:var(--ink);font-size:.88rem}.quickstart-list span{color:var(--muted);font-size:.82rem;line-height:1.5}.switch-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.switch-row span{gap:3px;display:grid}.switch-row small{color:var(--muted);line-height:1.4}.switch-row input{width:42px;height:24px;accent-color:var(--teal)}.theme-setting{border:0;border-top:1px solid var(--line);gap:10px;margin:22px 0 0;padding:20px 0 0;display:grid}.theme-setting legend{color:var(--ink);padding:0;font-size:.92rem;font-weight:700}.theme-setting>.setting-note{margin:-3px 0 2px}.theme-options{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;display:grid}.theme-options label{cursor:pointer;position:relative}.theme-options input{opacity:0;pointer-events:none;position:absolute}.theme-options span{min-height:38px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;padding:7px 8px;font-size:.82rem;font-weight:680;display:grid}.theme-options input:checked+span{color:var(--ink);background:var(--paper-strong);box-shadow:0 2px 9px var(--accent-shadow)}.theme-options input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}.removed-list{margin:0;padding:0;list-style:none;display:grid}.removed-list li{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.danger-zone{gap:8px;display:grid}.danger-zone h3{margin-bottom:3px}.confirm-box{background:var(--coral-soft);border-radius:14px;margin:8px 0 22px;padding:18px}.inline-actions{flex-wrap:wrap;gap:8px;display:flex}.manual-copy{border:1px solid var(--coral);background:var(--coral-soft);border-radius:14px;margin-top:32px;padding:18px}.manual-copy>div{justify-content:space-between;margin-bottom:10px;display:flex}@keyframes reveal{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes shake{25%{transform:translate(-6px)}60%{transform:translate(5px)}85%{transform:translate(-2px)}}@keyframes panel-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@keyframes undo-life{0%,60%{opacity:1}to{opacity:.35}}@media (width<=700px){.app-shell{min-height:100vh;display:block}.app-header{min-height:62px;padding:12px 14px}.header-actions{gap:2px}.header-button{padding:7px 8px}.reading-column{width:min(100% - 28px,700px);padding:40px 0 72px}.word-heading{font-size:clamp(2.7rem,14vw,3.6rem)}.answer{margin-top:36px}.study-actions,.spell-actions,.status-actions{align-items:stretch}.study-actions .primary-action,.study-actions .secondary-action{flex:44%}.progress-footer{width:calc(100% - 28px);padding-bottom:30px}.manage-panel{padding:22px 18px 44px}.panel-header{margin:-22px -18px 0;padding:22px 18px 14px;top:-22px}.undo-toast{top:66px;right:14px}.button-grid{grid-template-columns:1fr}}@media (width<=430px){.brand span,.undo-button{display:none}.study-choice-actions{grid-template-columns:1fr}.study-actions .primary-action,.study-actions .secondary-action,.study-actions .tertiary-action,.spell-actions .primary-action,.spell-actions .tertiary-action,.status-actions>*{width:100%}.shortcut-list div{grid-template-columns:1fr;gap:3px}.learning-guide{flex-direction:column;align-items:stretch;gap:8px}.learning-guide .text-button{align-self:flex-start}.prepare-actions>*{width:100%}}@media (width<=300px){.app-header{padding-inline:8px}.brand,.import-button,.undo-button{display:none}.reading-column,.progress-footer{width:calc(100% - 16px)}.word-heading{font-size:2.25rem}.word-heading-row{gap:8px}.speak-button{flex:none;width:38px;height:38px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
