@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-ext-wght-normal-C8B9Chlh.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-wght-normal-DbeVG3Ps.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-greek-wght-normal-DPM5d9ub.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-vietnamese-wght-normal-DcI17N1q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-ext-wght-normal-DZyYlgcm.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-wght-normal-BBL8hQxZ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Gelasio Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/gelasio-vietnamese-wght-normal-f1jtd6ZH.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Gelasio Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/gelasio-latin-ext-wght-normal-DVoDoDUI.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Gelasio Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/gelasio-latin-wght-normal-CzAE-hIO.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Gelasio Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/assets/gelasio-vietnamese-wght-italic-C3mXcO61.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Gelasio Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/assets/gelasio-latin-ext-wght-italic-D9ADC-Lx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Gelasio Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/assets/gelasio-latin-wght-italic-B7Nj5Uda.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"Geologica Variable", "Geologica", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Gelasio Variable", "Gelasio", Georgia, "Times New Roman", serif;--text-vocab-hero:52px;--text-done:42px;--text-wordmark:34px;--text-stat-lg:40px;--text-stat:30px;--text-screen-title:28px;--text-deck-name:18.5px;--text-card-source:18px;--text-example:16.5px;--text-section-title:16px;--text-empty-deck-name:16px;--text-nav:15px;--text-body:15px;--text-body-sm:14px;--text-meta:13px;--text-toast:12.5px;--text-chip:12px;--text-eyebrow:11px;--text-tab-label:11px;--tracking-eyebrow:.16em;--tracking-section:.14em;--tracking-title:-.02em;--tracking-tight:-.01em;--weight-regular:400;--weight-vocab:500;--weight-medium:500;--weight-title:550;--weight-semibold:600;--leading-vocab:1.15;--leading-title:1.2;--leading-heading:1.3;--leading-body:1.5;--radius-chip:7px;--radius-control:10px;--radius-card-sm:14px;--radius-frame:18px;--radius-card:22px;--radius-card-lg:24px;--radius-pill:999px;--text-admin-stat:22px;--radius-admin-control:6px;--radius-admin-card:8px;--radius-admin-chip:4px;--shadow-hairline:0 1px 2px #1c19170d;--shadow-raised:0 1px 2px #1c19170d, 0 6px 16px -10px #1c191729;--shadow-card:0 14px 40px -20px #1c191724;--shadow-card-sm:0 12px 34px -16px #1c191724;--shadow-toast:0 8px 20px -8px #1c191766;--duration-fast:.12s;--duration-swipe:.18s;--duration-card-exit:.28s;--duration-card-settle:.32s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-card-exit:cubic-bezier(.22, .61, .36, 1);--ease-card-return:cubic-bezier(.2, .9, .3, 1.06);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:22px;--space-6:26px;--space-7:32px;--space-8:40px;--space-9:56px;--control-h-lg:48px;--control-h:40px;--control-h-sm:32px;--touch-target:44px;--sidebar-width:240px;--sidebar-width-rail:84px;--tabbar-height:72px;--page-max:880px;--page-pad-x:var(--space-8);--page-pad-top:var(--space-8);--page-pad-bottom:var(--space-9);--card-width:520px;--card-height:460px;--color-chart-strong:var(--color-accent);--color-chart-mid:color-mix(in srgb, var(--color-accent) 58%, var(--color-surface));--color-chart-soft:color-mix(in srgb, var(--color-accent) 32%, var(--color-surface));--color-chart-track:var(--color-surface-sunken);--color-knew:#2f9461;--color-knew-glow:#2f946138;--color-knew-border:#2f946173;--color-knew-shadow:#2f946140;--color-forgot:#c24e44;--color-forgot-glow:#c24e4433;--color-forgot-border:#c24e4466;--color-forgot-shadow:#c24e4438}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-accent:#c2410c;--color-accent-hover:#9a3412;--color-on-accent:#fff7f2;--color-accent-soft:#c2410c14;--color-accent-ring:#c2410c73;--color-canvas:#eae6df;--color-bg:#f6f4f0;--color-surface:#fff;--color-text:#1d1a17;--color-text-muted:#8a8378;--color-text-faint:#b5afa5;--color-nav-idle:#9c948a;--color-border:#e9e4dc;--color-border-strong:#e0dad0;--color-divider:#efebe4;--color-frame:#e3ddd3;--color-home-indicator:#d8d2c8;--color-scrim:#00000073;--color-inverse-surface:#1d1a17;--color-inverse-text:#f2eee8;--color-hover:#1c19170b;--color-pressed:#1c191714;--color-nav-active-bg:#1c19170e;--color-focus-ring:#c2410c47;--color-surface-sunken:#f1eee9}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-accent:#e96c33;--color-accent-hover:#f08a5b;--color-on-accent:#191410;--color-accent-soft:#e96c3321;--color-accent-ring:#e96c3373;--color-canvas:#0f0d0c;--color-bg:#141210;--color-surface:#1d1a17;--color-text:#f2eee8;--color-text-muted:#9a9288;--color-text-faint:#6e675e;--color-nav-idle:#8f887e;--color-border:#2c2823;--color-border-strong:#35302a;--color-divider:#2c2823;--color-frame:#2c2823;--color-home-indicator:#3a352f;--color-inverse-surface:#f2eee8;--color-inverse-text:#1d1a17;--color-hover:#ffffff0e;--color-pressed:#ffffff17;--color-nav-active-bg:#ffffff12;--color-focus-ring:#e96c3352;--color-surface-sunken:#191614;--shadow-hairline:0 1px 2px #0006;--shadow-raised:0 1px 2px #0006, 0 6px 16px -10px #0009;--shadow-card:0 14px 40px -20px #00000080;--shadow-card-sm:0 12px 34px -16px #00000080;--shadow-toast:0 8px 20px -8px #0009}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-accent:#e96c33;--color-accent-hover:#f08a5b;--color-on-accent:#191410;--color-accent-soft:#e96c3321;--color-accent-ring:#e96c3373;--color-canvas:#0f0d0c;--color-bg:#141210;--color-surface:#1d1a17;--color-text:#f2eee8;--color-text-muted:#9a9288;--color-text-faint:#6e675e;--color-nav-idle:#8f887e;--color-border:#2c2823;--color-border-strong:#35302a;--color-divider:#2c2823;--color-frame:#2c2823;--color-home-indicator:#3a352f;--color-inverse-surface:#f2eee8;--color-inverse-text:#1d1a17;--color-hover:#ffffff0e;--color-pressed:#ffffff17;--color-nav-active-bg:#ffffff12;--color-focus-ring:#e96c3352;--color-surface-sunken:#191614;--shadow-hairline:0 1px 2px #0006;--shadow-raised:0 1px 2px #0006, 0 6px 16px -10px #0009;--shadow-card:0 14px 40px -20px #00000080;--shadow-card-sm:0 12px 34px -16px #00000080;--shadow-toast:0 8px 20px -8px #0009}@media (width<=640px){:root{--text-vocab-hero:40px;--text-stat-lg:32px;--text-stat:26px;--text-screen-title:25px;--text-deck-name:16.5px;--text-card-source:15.5px;--text-example:14.5px;--card-width:330px;--card-height:430px;--page-pad-x:max(var(--space-5), env(safe-area-inset-left), env(safe-area-inset-right));--page-pad-top:var(--space-5);--page-pad-bottom:var(--space-8)}}[data-surface=admin]{--radius-control:var(--radius-admin-control);--radius-card-sm:var(--radius-admin-card);--radius-card:var(--radius-admin-card);--radius-card-lg:var(--radius-admin-card);--radius-frame:var(--radius-admin-card);--radius-chip:var(--radius-admin-chip)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-control)}:focus:not(:focus-visible){outline:none}a{color:var(--color-accent);text-decoration:none}a:not([class]):hover{color:var(--color-accent-hover)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.wordmark{display:block}.wordmark-img{height:var(--text-wordmark);width:auto;display:block}.wordmark-img--dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .wordmark-img--light{display:none}:root:not([data-theme=light]) .wordmark-img--dark{display:block}}[data-theme=dark] .wordmark-img--light{display:none}[data-theme=dark] .wordmark-img--dark,[data-theme=light] .wordmark-img--light{display:block}[data-theme=light] .wordmark-img--dark{display:none}.surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-lg);box-shadow:var(--shadow-card)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.screen-title{font-size:var(--text-screen-title);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:var(--leading-title)}.section-title{font-size:var(--text-section-title);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-heading)}.eyebrow{font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-faint)}.meta{font-size:var(--text-meta);line-height:var(--leading-body);color:var(--color-text-muted)}.numeric{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.page{gap:var(--space-7);width:100%;max-width:var(--page-max);padding:var(--page-pad-top) var(--page-pad-x) var(--page-pad-bottom);flex-direction:column;flex:1;margin:0 auto;display:flex}.page__header{justify-content:space-between;align-items:center;gap:var(--space-5);display:flex}.page__heading{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.page__actions{gap:var(--space-3);flex-shrink:0;align-items:center;display:flex}.button{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-5);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-on-accent);font-size:var(--text-body-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);border:1px solid #0000;flex-shrink:0;line-height:1;text-decoration:none;display:inline-flex}.button:hover:not(:disabled),.button:focus-visible:not(:disabled){background:var(--color-accent-hover);color:var(--color-on-accent)}.button:active:not(:disabled){background:var(--color-accent-hover);filter:brightness(.95)}.button:disabled{opacity:.5;cursor:not-allowed}.button__icon{flex-shrink:0;width:16px;height:16px;margin-left:-2px;display:block}.button--lg{height:var(--control-h-lg);padding:0 var(--space-6);font-size:var(--text-body)}.button--sm{height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--text-meta)}.button--block{width:100%}.button--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text);box-shadow:var(--shadow-hairline)}.button--secondary:hover:not(:disabled),.button--secondary:focus-visible:not(:disabled){background:var(--color-hover);border-color:var(--color-text-faint);color:var(--color-text)}.button--secondary:active:not(:disabled){background:var(--color-pressed);filter:none}.button--ghost{color:var(--color-text-muted);box-shadow:none;background:0 0;border-color:#0000}.button--ghost:hover:not(:disabled),.button--ghost:focus-visible:not(:disabled){background:var(--color-hover);color:var(--color-text);border-color:#0000}.button--ghost:active:not(:disabled){background:var(--color-pressed);filter:none}.button--danger{background:var(--color-forgot);color:#fff;border-color:#0000}.button--danger:hover:not(:disabled),.button--danger:focus-visible:not(:disabled){background:var(--color-forgot);color:#fff;filter:brightness(1.08)}.button--ghost.button--danger{color:var(--color-forgot);filter:none;background:0 0}.button--ghost.button--danger:hover:not(:disabled),.button--ghost.button--danger:focus-visible:not(:disabled){background:var(--color-forgot-glow);color:var(--color-forgot);filter:none}.button--quiet{height:auto;box-shadow:none;color:var(--color-accent);font-size:var(--text-body-sm);background:0 0;border:none;padding:0}.button--quiet:hover:not(:disabled),.button--quiet:focus-visible:not(:disabled){color:var(--color-accent-hover);text-underline-offset:3px;background:0 0;text-decoration:underline}.button--quiet:active:not(:disabled){opacity:.75;filter:none}.button:disabled{box-shadow:none;filter:none;text-decoration:none}.kbd{font-family:var(--font-sans);font-size:var(--text-chip);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-chip);padding:3px 8px;line-height:1.2;display:inline-block}.field{gap:var(--space-2);flex-direction:column;display:flex}.field>label{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text)}.field__hint{font-size:var(--text-meta);line-height:var(--leading-body);color:var(--color-text-muted)}.input{height:var(--control-h);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-text);font-size:var(--text-body-sm);box-shadow:var(--shadow-hairline);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.input--lg{height:var(--control-h-lg);padding:0 var(--space-4);font-size:var(--text-body)}.input::placeholder{color:var(--color-text-faint)}.input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}textarea.input{height:auto;padding:var(--space-3);line-height:var(--leading-body)}.segmented{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-control);align-self:flex-start;gap:2px;padding:2px;display:inline-flex}.segmented__option{height:var(--control-h-sm);padding:0 var(--space-4);font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:none;border-radius:8px}.segmented__option:hover{color:var(--color-text)}.segmented__option--active,.segmented__option--active:hover{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-hairline)}.segmented__option--active{font-weight:var(--weight-title)}.choices{gap:var(--space-2);flex-wrap:wrap;display:flex}.choice{height:var(--control-h-sm);padding:0 var(--space-4);font-size:var(--text-body-sm);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out)}.choice:hover:not(.choice--active){color:var(--color-text);background:var(--color-hover)}.choice--active,.choice--active:hover{color:var(--color-accent);background:var(--color-accent-soft);border-color:var(--color-accent-ring);font-weight:var(--weight-medium)}.switch{appearance:none;background:var(--color-border-strong);border-radius:var(--radius-pill);cursor:pointer;width:42px;height:24px;transition:background var(--duration-fast) var(--ease-out);border:none;flex-shrink:0;position:relative}.switch:after{content:"";border-radius:var(--radius-pill);width:18px;height:18px;box-shadow:var(--shadow-hairline);transition:transform var(--duration-fast) var(--ease-out);background:#fff;position:absolute;top:3px;left:3px}.switch:checked{background:var(--color-accent)}.switch:checked:after{transform:translate(18px)}.switch:disabled{opacity:.5;cursor:not-allowed}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);font-size:var(--text-body-sm);line-height:var(--leading-body)}.notice--error{background:var(--color-forgot-glow);border:1px solid var(--color-forgot-border);color:var(--color-text)}.notice--info{background:var(--color-accent-soft);border:1px solid var(--color-accent-ring);color:var(--color-text)}.status{gap:var(--space-2);font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);align-items:center;display:inline-flex}.status__dot{border-radius:var(--radius-pill);background:currentColor;width:7px;height:7px;display:block}.status--ok{color:var(--color-knew)}.status--error{color:var(--color-forgot)}.status--warn{color:var(--color-accent)}.status--idle{color:var(--color-text-faint)}.progress{background:var(--color-border);border-radius:2px;height:3px;overflow:hidden}.progress__fill{background:var(--color-accent);height:100%;transition:width var(--duration-swipe) var(--ease-out);border-radius:2px}@media (width<=640px){.page__header{align-items:stretch;gap:var(--space-4);flex-direction:column}.page__actions .button{min-height:var(--touch-target);flex:1}}.crash{min-height:100dvh;padding:var(--space-5);background:var(--color-bg);place-items:center;display:grid}.crash__panel{align-items:flex-start;gap:var(--space-4);max-width:420px;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card-lg);background:var(--color-surface);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.shell{background:var(--color-bg);min-height:100dvh;display:flex}.shell__nav{flex:0 0 var(--sidebar-width);gap:var(--space-6);width:var(--sidebar-width);height:100dvh;padding:var(--space-6) var(--space-4);border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;display:flex;position:sticky;top:0}.shell__brand{height:var(--touch-target);padding:0 var(--space-2);border-radius:var(--radius-control);transition:background var(--duration-fast) var(--ease-out);align-items:center;display:flex}.shell__brand:hover{background:var(--color-hover)}.shell__mark{width:32px;height:32px;display:none}.shell__links{flex-direction:column;gap:2px;width:100%;margin:0;padding:0;list-style:none;display:flex}.shell__link{align-items:center;gap:var(--space-3);height:var(--touch-target);padding:0 var(--space-3);color:var(--color-text-muted);border-radius:var(--radius-control);font-size:var(--text-nav);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);display:flex}.shell__link:hover{color:var(--color-text);background:var(--color-hover)}.shell__link--active,.shell__link--active:hover{color:var(--color-text);background:var(--color-nav-active-bg);font-weight:var(--weight-title)}.shell__link--active .shell__icon{color:var(--color-accent)}.shell__icon{width:20px;height:20px;color:var(--color-nav-idle);transition:color var(--duration-fast) var(--ease-out);flex-shrink:0;display:block}.shell__link:hover .shell__icon{color:var(--color-text-muted)}.shell__icon svg{width:100%;height:100%;display:block}.shell__content{flex-direction:column;flex:1;min-width:0;display:flex}.sync-banner{padding:var(--space-2) var(--space-6);font-size:var(--text-meta);text-align:center;border-bottom:1px solid var(--color-border)}.sync-banner--offline{background:var(--color-accent-soft);color:var(--color-text-muted)}.sync-banner--error{background:var(--color-forgot-glow);color:var(--color-text)}@media (width<=1023px) and (width>=641px){.shell__nav{flex-basis:var(--sidebar-width-rail);width:var(--sidebar-width-rail);padding:var(--space-6) var(--space-3);align-items:center}.shell__wordmark{display:none}.shell__mark{display:block}.shell__brand{width:var(--touch-target);justify-content:center;padding:0}.shell__link{justify-content:center;gap:var(--space-1);height:60px;font-size:var(--text-tab-label);flex-direction:column;padding:0}.shell__icon{width:22px;height:22px}}@media (width<=640px){.shell{flex-direction:column}.shell__nav{z-index:10;width:100%;height:auto;padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 88%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-right:none;flex-direction:row;flex:none;gap:0;position:fixed;inset:auto 0 0}.shell__brand{display:none}.shell__links{justify-content:space-around;align-items:stretch;gap:var(--space-1);flex-direction:row}.shell__links>li{flex:1;min-width:0}.shell__link{justify-content:center;gap:var(--space-1);height:calc(var(--tabbar-height) - var(--space-4));min-height:var(--touch-target);padding:0 var(--space-1);font-size:var(--text-tab-label);font-weight:var(--weight-medium);color:var(--color-nav-idle);background:0 0;flex-direction:column}.shell__link--active,.shell__link--active:hover{color:var(--color-accent);font-weight:var(--weight-title);background:0 0}.shell__link:hover{background:0 0}.shell__icon{width:24px;height:24px}.shell__content{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px))}}.add{gap:var(--space-6)}.add--empty{align-items:flex-start;gap:var(--space-3)}.add__tabs{gap:var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.add__tab{height:var(--control-h);font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;padding:0 2px;display:inline-flex}.add__tab:hover{color:var(--color-text)}.add__tab--active,.add__tab--active:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.add__form{gap:var(--space-4);flex-direction:column;display:flex}.add__row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.add__form .button{margin-top:var(--space-2);align-self:flex-start}select.input{appearance:none;cursor:pointer;padding-right:var(--space-8);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px);background-repeat:no-repeat;background-size:5px 5px}.drop{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5);background:var(--color-surface-sunken);border:1px dashed var(--color-border-strong);border-radius:var(--radius-card-sm);transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);flex-wrap:wrap;display:flex}.drop--over{border-color:var(--color-accent);background:var(--color-accent-soft);border-style:solid}.drop__body{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.import__freeform{gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);flex-direction:column;display:flex}.import__freeform>summary{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);cursor:pointer}.import__freeform>summary:hover{color:var(--color-text)}.import__freeform .button{align-self:flex-start}.import__paste{min-height:160px;padding:var(--space-4);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-meta);line-height:var(--leading-body);resize:vertical}.import__summary{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-meta);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.import__actions{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}@media (width<=640px){.add__row{grid-template-columns:1fr}}.add__generate{gap:var(--space-4);padding:var(--space-5);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;display:flex}.add__generate .button{align-self:flex-start}.chip{font-size:var(--text-chip);color:var(--color-text-muted);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);white-space:nowrap;padding:2px 8px}.chip--warn{color:var(--color-forgot);border-color:var(--color-forgot-border);background:var(--color-forgot-glow)}.auth{min-height:100dvh;padding:var(--space-6);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.auth__panel{gap:var(--space-6);width:100%;max-width:420px;padding:var(--space-8);flex-direction:column;display:flex}.auth__brand{gap:var(--space-1);flex-direction:column;display:flex}.auth__form{gap:var(--space-4);flex-direction:column;display:flex}.auth__form .button{margin-top:var(--space-2)}.auth__switch{justify-content:center;align-items:baseline;gap:var(--space-1);display:flex}@media (width<=640px){.auth__panel{padding:var(--space-6)}}.catalog{gap:var(--space-6);flex-direction:column;display:flex}.catalog__group{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.catalog__unit{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);background:var(--color-surface);width:100%;box-shadow:var(--shadow-hairline);color:var(--color-text);font:inherit;text-align:start;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);padding:18px 20px;display:flex}.catalog__unit:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-hover)}.catalog__unit:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.catalog__text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.catalog__title{font-size:var(--text-body);font-weight:var(--weight-title)}.catalog__description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.catalog__aside{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.catalog__installed{border:1px solid var(--color-accent-ring);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-toast);padding:2px 10px}.catalog-page__back{margin-bottom:var(--space-3);color:var(--color-text-muted);font-size:var(--text-body-sm);text-decoration:none;display:inline-block}.catalog-page__back:hover{color:var(--color-text)}.catalog-page__empty{align-items:flex-start;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card-lg);background:var(--color-surface);flex-direction:column;display:flex}.deck{gap:var(--space-5)}.deck__back{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--color-text-muted);align-self:flex-start}.deck__back:hover{color:var(--color-accent)}.deck__empty{gap:var(--space-4);padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);box-shadow:var(--shadow-hairline);flex-direction:column;align-items:flex-start;display:flex}.deck--missing{align-items:flex-start;gap:var(--space-3)}.table{border-collapse:collapse;width:100%;font-size:var(--text-body-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);box-shadow:var(--shadow-hairline);overflow:hidden}.table th{padding:var(--space-3) var(--space-4);font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-faint);text-align:left;background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider);vertical-align:middle}.table tbody tr:hover td{background:var(--color-bg)}.table tbody tr:last-child td{border-bottom:none}.table__row--muted td{color:var(--color-text-faint)}.deck__back-text{font-family:var(--font-serif)}.deck__due{font-size:var(--text-meta);color:var(--color-text-muted);white-space:nowrap}.deck__row-actions{gap:var(--space-1);justify-content:flex-end;display:flex}@media (width<=640px){.table{white-space:nowrap;display:block;overflow-x:auto}}.deck__origin{color:var(--color-text-faint)}.decks{gap:var(--space-6)}.decks__list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.deck-card{gap:var(--space-1);padding:var(--space-5);color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);box-shadow:var(--shadow-hairline);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);flex-direction:column;display:flex}.deck-card:hover{color:inherit;border-color:var(--color-border-strong);box-shadow:var(--shadow-raised)}.deck-card__meta{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-meta);color:var(--color-text-muted);display:flex}.deck-card__pair{letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);color:var(--color-text-faint)}.deck-card__due{font-variant-numeric:tabular-nums}.deck-card__due--active{color:var(--color-accent);font-weight:var(--weight-medium)}.deck-card__name{font-size:var(--text-deck-name);font-weight:var(--weight-title);letter-spacing:var(--tracking-tight)}.deck-card__archived{font-weight:var(--weight-regular);color:var(--color-text-faint)}.deck-card__count{font-size:var(--text-meta);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.decks__toggle{align-self:flex-start}.decks--empty{justify-content:center;align-items:center}.decks__empty{gap:var(--space-3);text-align:center;flex-direction:column;align-items:center;max-width:440px;display:flex}.decks__empty-actions{gap:var(--space-3);margin-top:var(--space-4);align-items:center;display:flex}@media (width<=640px){.decks__empty-actions{flex-direction:column;width:100%}.decks__empty-actions .button{width:100%}}.listen{z-index:20;background:var(--color-bg);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;inset:0}.listen__bar{padding:var(--space-3) var(--space-6);padding-top:calc(var(--space-3) + env(safe-area-inset-top));flex:none;justify-content:space-between;align-items:center;display:flex}.listen__dismiss{width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.listen__dismiss:hover{color:var(--color-text)}.listen__dismiss svg{width:20px;height:20px}.listen__deck{font-size:var(--text-meta);color:var(--color-text-muted)}.listen__spacer{width:20px}.listen__stage{justify-content:center;align-items:center;gap:var(--space-5);padding:0 var(--space-7);text-align:center;flex-direction:column;flex:1;display:flex}.listen__counter{color:var(--color-text-faint)}.listen__word{font-family:var(--font-serif);font-size:var(--text-vocab-hero);font-weight:var(--weight-vocab);line-height:var(--leading-vocab);color:var(--color-text);overflow-wrap:anywhere}.listen__gloss{font-size:var(--text-card-source);color:var(--color-text-muted)}.listen__transport{justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-7) var(--space-6) var(--space-8);flex:none;display:flex}.listen__forgot{padding:var(--space-3) var(--space-4);border:1px solid var(--color-forgot-border);border-radius:var(--radius-pill);color:var(--color-forgot);font-size:var(--text-body-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0}.listen__forgot:hover{background:var(--color-forgot);color:var(--color-on-accent)}.listen__play,.listen__skip{border-radius:var(--radius-pill);cursor:pointer;flex:none;justify-content:center;align-items:center;display:flex}.listen__play{background:var(--color-accent);width:78px;height:78px;color:var(--color-on-accent);transition:background var(--duration-fast) var(--ease-out);border:0}.listen__play:hover{background:var(--color-accent-hover)}.listen__play svg{width:24px;height:24px}.listen__skip{border:1px solid var(--color-border);width:54px;height:54px;color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out);background:0 0}.listen__skip:hover{color:var(--color-text)}.listen__skip svg{width:19px;height:19px}.listen__notice{text-align:center;padding-bottom:var(--space-5)}.listen__setup{gap:var(--space-5);width:100%;max-width:var(--card-width);padding:var(--space-6) var(--space-6) var(--space-8);flex-direction:column;flex:1;margin:0 auto;display:flex;overflow-y:auto}.listen__group{gap:var(--space-3);border:0;flex-direction:column;margin:0;padding:0;display:flex}.listen__legend{font-size:var(--text-meta);color:var(--color-text-muted);padding:0}.listen__setup-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=640px){.listen__setup-actions{flex-direction:column;align-items:stretch}.listen__setup-actions .button{width:100%;min-height:var(--touch-target)}}@keyframes listen-pulse{0%,to{opacity:.55}50%{opacity:1}}.listen--done{justify-content:center;align-items:center;gap:var(--space-4);text-align:center;padding:var(--space-7)}.onboarding{min-height:100dvh;padding:var(--space-6);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.onboarding__panel{gap:var(--space-4);width:100%;max-width:460px;padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-lg);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.onboarding__wordmark{margin-bottom:var(--space-2);align-self:flex-start}.onboarding__dots{gap:var(--space-1);justify-content:center;display:flex}.onboarding__dot{background:var(--color-home-indicator);border-radius:3px;width:6px;height:6px}.onboarding__dot--active{background:var(--color-accent);width:18px}.onboarding__list{flex-direction:column;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.onboarding__option{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-2) 0;font-size:var(--text-empty-deck-name);color:var(--color-text);text-align:left;border:none;border-bottom:1px solid var(--color-divider);cursor:pointer;background:0 0;display:flex}.onboarding__option:hover:not(:disabled){color:var(--color-accent)}.onboarding__option:disabled{color:var(--color-text-faint);cursor:not-allowed}.onboarding__option--selected{color:var(--color-accent);font-weight:var(--weight-medium)}.onboarding__endonym{color:var(--color-text-muted);font-weight:var(--weight-regular)}.onboarding__tag{font-size:var(--text-chip);color:var(--color-text-faint);text-transform:uppercase}.onboarding__none{padding:var(--space-4) 0}.onboarding__continue{margin-top:var(--space-2)}@media (width<=640px){.onboarding__panel{padding:var(--space-6)}}.speaker{width:44px;height:44px;color:var(--color-text-faint);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.speaker svg{width:24px;height:24px}.speaker:hover:not(:disabled){color:var(--color-accent)}.speaker:disabled{cursor:progress}.speaker__spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:var(--radius-pill);width:17px;height:17px;animation:.7s linear infinite speaker-spin}@keyframes speaker-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.speaker__spinner{border-top-color:var(--color-border-strong);animation:none}}.review:focus,.review:focus-visible{outline:none}.review{flex-direction:column;flex:1;min-height:0;display:flex}.review__progress{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-8) 0;display:flex}.review__deck{min-width:0;font-size:var(--text-meta);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.review__pair{color:var(--color-text-faint)}.review__bar{background:var(--color-border);border-radius:2px;flex:1;height:3px}.review__bar-fill{background:var(--color-accent);height:100%;transition:width var(--duration-swipe) var(--ease-out);border-radius:2px}.review__left{font-size:var(--text-meta);color:var(--color-text-muted);white-space:nowrap}.review__stage{justify-content:center;align-items:center;gap:var(--space-7);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.review__stack{width:var(--card-width);max-width:calc(100vw - var(--space-8));height:var(--card-height);max-height:60vh;position:relative}.review__card-wrap{transform:translate3d(var(--drag-x,0), 0, 0) rotate(var(--drag-rot,0deg));transition:transform var(--duration-card-settle) var(--ease-card-return), opacity var(--duration-card-exit) var(--ease-card-exit);position:absolute;inset:0}.review__card-wrap.is-dragging{cursor:grabbing;transition:none}.review__card-wrap.is-dragging,.review__card-wrap--exit-left,.review__card-wrap--exit-right{will-change:transform}.review__card-wrap--exit-right,.review__card-wrap--exit-left{pointer-events:none}.review__card-wrap--exit-right{animation:review-card-exit-right var(--duration-card-exit) var(--ease-card-exit) forwards}.review__card-wrap--exit-left{animation:review-card-exit-left var(--duration-card-exit) var(--ease-card-exit) forwards}@keyframes review-card-exit-right{0%{transform:translate3d(var(--exit-from-x,0), 0, 0) rotate(var(--exit-from-rot,0deg));opacity:1}to{opacity:0;transform:translate(140%)rotate(12deg)}}@keyframes review-card-exit-left{0%{transform:translate3d(var(--exit-from-x,0), 0, 0) rotate(var(--exit-from-rot,0deg));opacity:1}to{opacity:0;transform:translate(-140%)rotate(-12deg)}}.review__card-wrap--rising{transition:none;transform:scale(.94)translateY(10px)}.review__card-wrap--enter-right{transition:none;transform:translate(140%)rotate(12deg)}.review__card-wrap--enter-left{transition:none;transform:translate(-140%)rotate(-12deg)}.review__card{justify-content:center;align-items:center;gap:var(--space-4);width:100%;height:100%;padding:var(--space-6);text-align:center;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-lg);box-shadow:var(--shadow-card);transition:transform var(--duration-swipe) var(--ease-out), border-color var(--duration-swipe) var(--ease-out), box-shadow var(--duration-swipe) var(--ease-out);flex-direction:column;display:flex}.review__card:hover:not(:disabled){border-color:var(--color-border-strong)}.review__card--behind{transition:transform var(--duration-card-settle) var(--ease-card-exit), opacity var(--duration-card-settle) var(--ease-card-exit);opacity:.55;pointer-events:none;position:absolute;inset:0;transform:scale(.94)translateY(10px)}.review__card-wrap--exit-left,.review__card-wrap--exit-right{z-index:2}.review__word{font-family:var(--font-serif);font-size:var(--text-vocab-hero);font-weight:var(--weight-vocab);line-height:var(--leading-vocab);color:var(--color-text)}.review__source{font-size:var(--text-card-source);color:var(--color-text-muted)}.review__rule{background:var(--color-border);width:44px;height:1px}.review__answer{align-items:center;gap:var(--space-3);display:flex}.review__chip{font-size:var(--text-toast);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:3px 12px}.review__example{font-family:var(--font-serif);font-size:var(--text-example);color:var(--color-text-muted);font-style:italic}.review__glow{opacity:0;width:240px;transition:opacity var(--duration-card-exit) var(--ease-card-exit);pointer-events:none;position:absolute;top:0;bottom:0}.review__glow--knew{background:linear-gradient(to left, var(--color-knew-glow), transparent);right:0}.review__glow--forgot{background:linear-gradient(to right, var(--color-forgot-glow), transparent);left:0}.review__verdict{opacity:0;transition:opacity var(--duration-card-exit) var(--ease-card-exit);color:#fff;border-radius:var(--radius-pill);pointer-events:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.review__verdict--knew{right:var(--space-6);background:var(--color-knew)}.review__verdict--forgot{left:var(--space-6);background:var(--color-forgot)}.review__hint{gap:var(--space-2);font-size:var(--text-meta);color:var(--color-text-muted);align-items:center;display:flex}.review__actions{gap:var(--space-4);align-items:center;display:flex}.review__rate{gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);box-shadow:var(--shadow-hairline);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);align-items:center;display:flex}.review__rate--knew:hover{color:var(--color-knew);border-color:var(--color-knew-border)}.review__rate--forgot:hover{color:var(--color-forgot);border-color:var(--color-forgot-border)}.review__undo{bottom:var(--space-6);padding:var(--space-2) var(--space-4);font-size:var(--text-toast);color:var(--color-inverse-text);background:var(--color-inverse-surface);border-radius:var(--radius-pill);box-shadow:var(--shadow-toast);cursor:pointer;border:none;position:absolute;left:50%;transform:translate(-50%)}.review__undo:hover{opacity:.85}.review--done{justify-content:center;align-items:center;gap:var(--space-4);text-align:center}.done__mark{width:46px;height:46px;margin-bottom:var(--space-2);color:var(--color-accent);border:1.5px solid var(--color-accent-ring);border-radius:var(--radius-pill);justify-content:center;align-items:center;display:flex}.done__mark svg{width:20px;height:20px}.done__title{font-family:var(--font-serif);font-size:var(--text-done);font-weight:var(--weight-vocab)}.done__stat{font-size:var(--text-body);color:var(--color-text-muted)}.done__actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.done__action{margin-top:var(--space-3)}@media (width<=640px){.review__progress{padding:var(--space-3) var(--space-5) 0}.review__deck{max-width:38%}.review__pair{display:none}.review__card{border-radius:var(--radius-card)}.review__actions{width:100%;padding:0 var(--page-pad-x);gap:var(--space-2)}.review__rate{min-width:0;min-height:var(--touch-target);padding:0 var(--space-2);white-space:nowrap;flex:1 1 0;justify-content:center}.review__rate .kbd,.review__hint{display:none}.done__title{font-size:var(--text-vocab-hero)}}.review__audio{right:var(--space-4);bottom:var(--space-4);display:flex;position:absolute}:is(.review__stage:has(.review__card-wrap.is-dragging) .review__glow--knew,.review__stage:has(.review__card-wrap.is-dragging) .review__verdict--knew){opacity:calc(var(--drag-progress,0) * max(var(--drag-dir,0), 0));transition:none}:is(.review__stage:has(.review__card-wrap.is-dragging) .review__glow--forgot,.review__stage:has(.review__card-wrap.is-dragging) .review__verdict--forgot){opacity:calc(var(--drag-progress,0) * max(calc(var(--drag-dir,0) * -1), 0));transition:none}:is(.review__stage:has(.review__card-wrap--exit-right) .review__glow--knew,.review__stage:has(.review__card-wrap--exit-right) .review__verdict--knew,.review__stage:has(.review__card-wrap--exit-left) .review__glow--forgot,.review__stage:has(.review__card-wrap--exit-left) .review__verdict--forgot){opacity:1}@media (prefers-reduced-motion:reduce){.review__card-wrap,.review__card--behind{transition-duration:1ms}.review__card-wrap--exit-right,.review__card-wrap--exit-left{animation-duration:1ms}.review__card-wrap--enter-right,.review__card-wrap--enter-left{transform:none}}.settings__layout{gap:var(--space-8);grid-template-columns:184px minmax(0,1fr);align-items:start;display:grid}.settings__tabs{top:var(--space-6);flex-direction:column;gap:2px;display:flex;position:sticky}.settings__tab{height:var(--touch-target);padding:0 var(--space-3);font-size:var(--text-body-sm);font-weight:var(--weight-medium);text-align:left;color:var(--color-text-muted);border-radius:var(--radius-control);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;display:flex}.settings__tab:hover{color:var(--color-text);background:var(--color-hover)}.settings__tab--active,.settings__tab--active:hover{color:var(--color-text);background:var(--color-nav-active-bg);font-weight:var(--weight-title)}.settings__pane{gap:var(--space-7);flex-direction:column;min-width:0;display:flex}.group{gap:var(--space-4);flex-direction:column;display:flex}.group__header{gap:var(--space-1);flex-direction:column;display:flex}.group__rows{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);box-shadow:var(--shadow-hairline);flex-direction:column;display:flex}.row{gap:var(--space-6);min-height:60px;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;display:flex}.row:last-child{border-bottom:none}.row__text{flex-direction:column;gap:2px;min-width:0;display:flex}label.row__text{cursor:pointer}.row__label{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-text)}.row__hint{font-size:var(--text-meta);line-height:var(--leading-body);color:var(--color-text-muted);text-wrap:pretty}.row__control{gap:var(--space-2);flex-shrink:0;align-items:center;display:flex}.row--stacked{align-items:stretch;gap:var(--space-3);flex-direction:column}.row--stacked .row__control{justify-content:flex-start}.row__form{gap:var(--space-2);width:100%;display:flex}.row__form .input{flex:1;min-width:0}.badge{font-size:var(--text-chip);font-weight:var(--weight-medium);color:var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-pill);padding:3px 10px}@media (width<=860px){.settings__layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr)}.settings__tabs{gap:var(--space-1);padding-bottom:var(--space-1);margin:0 calc(-1 * var(--page-pad-x));padding-inline:var(--page-pad-x);scrollbar-width:none;flex-direction:row;position:static;overflow-x:auto}.settings__tabs::-webkit-scrollbar{display:none}.settings__tab{height:var(--control-h);padding:0 var(--space-4);flex-shrink:0}}@media (width<=640px){.row{align-items:stretch;gap:var(--space-3);flex-direction:column}.row__control{justify-content:flex-start}.row:has(>.row__control>.switch){justify-content:space-between;align-items:center;gap:var(--space-4);flex-direction:row}}.stats{gap:var(--space-6)}.stats__grid{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.stat-tile{gap:var(--space-2);padding:var(--space-4) var(--space-5) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);box-shadow:var(--shadow-hairline);flex-direction:column;display:flex}.stat-tile__label{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--color-text-muted)}.stat-tile__value{font-family:var(--font-sans);font-size:var(--text-stat-lg);font-weight:var(--weight-title);letter-spacing:var(--tracking-title);font-variant-numeric:tabular-nums;line-height:1.05}.stat-tile__suffix{font-size:var(--text-section-title);font-weight:var(--weight-medium);letter-spacing:normal;color:var(--color-text-muted);margin-left:1px}.stat-tile__caption{font-size:var(--text-chip);color:var(--color-text-faint)}.stat-tile__empty{font-size:var(--text-body-sm);color:var(--color-text-faint)}.stats__charts{gap:var(--space-4);grid-template-columns:1.35fr 1fr;align-items:start;display:grid}.panel{gap:var(--space-5);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card-sm);box-shadow:var(--shadow-hairline);flex-direction:column;display:flex}.panel__header{flex-direction:column;gap:2px;display:flex}.panel__empty{font-size:var(--text-body-sm);color:var(--color-text-faint)}.forecast{gap:var(--space-2);align-items:flex-end;height:156px;margin:0;padding:0;list-style:none;display:flex}.forecast__day{gap:var(--space-2);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.forecast__count{font-size:var(--text-chip);color:var(--color-text-faint);line-height:1}.forecast__track{flex:1;align-items:flex-end;width:100%;display:flex}.forecast__bar{background:var(--color-chart-soft);border-radius:var(--radius-chip) var(--radius-chip) 2px 2px;width:100%;min-height:2px;display:block}.forecast__bar--today{background:var(--color-chart-strong)}.forecast__label{font-size:var(--text-chip);color:var(--color-text-faint);line-height:1}.forecast__backlog{font-size:var(--text-meta);color:var(--color-text-muted)}.bar{background:var(--color-chart-track);border-radius:var(--radius-pill);gap:2px;width:100%;height:14px;display:flex;overflow:hidden}.bar__band{height:100%;display:block}.bar__band--strong{background:var(--color-chart-strong)}.bar__band--mid{background:var(--color-chart-mid)}.bar__band--soft{background:var(--color-chart-soft)}.bar__band--warn{background:var(--color-forgot)}.legend{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.legend__item{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-body-sm);border-bottom:1px solid var(--color-divider);display:flex}.legend__item:last-child{border-bottom:none}.legend__swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px;display:block}.legend__label{color:var(--color-text-muted);flex:1}.legend__value{font-weight:var(--weight-title);font-variant-numeric:tabular-nums}@media (width<=900px){.stats__charts{grid-template-columns:1fr}}@media (width<=640px){.stats__grid{grid-template-columns:repeat(2,1fr)}.forecast{gap:3px;height:132px}.forecast__label{display:none}}
