@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--space-1: .375rem;--space-2: .625rem;--space-3: .875rem;--space-4: 1.25rem;--space-5: 1.75rem;--space-6: 2.5rem;--space-7: 3.5rem;--space-8: 4.5rem;--space-9: 5.5rem;--container-padding: 20px;--font-sans: "Manrope Variable", "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display: var(--font-sans);--font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;--text-xs: .75rem;--text-label: .9rem;--text-sm: .875rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: clamp(1.625rem, 5vw, 2.25rem);--text-3xl: clamp(2rem, 7vw, 3.375rem);--text-4xl: clamp(2.25rem, 8vw, 3.5625rem);--leading-normal: 1.53;--leading-tight: 1.2;--tracking-tight: 0;--tracking-display: 0;--tracking-wide: 0;--tracking-label: .04em;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.75rem;--radius-full: 9999px;--border-width: 1px;--shadow-sm: 0 1px 2px light-dark(rgb(40 95 116 / 8%), rgb(0 0 0 / 40%));--shadow-md: 0 8px 24px light-dark(rgb(40 95 116 / 12%), rgb(0 0 0 / 50%));--shell-max-width: 80rem;--content-max-width: 75rem;--reading-max-width: 43rem;--tap-target: 44px;--header-height: 72px;--icon-size: 20px;--icon-size-lg: 24px;--transition-fast: .16s ease;--transition-medium: .22s cubic-bezier(.2, .8, .2, 1);--auto-advance-duration: 1.2s;--color-primary: #285f74;--color-secondary: #00a0af;--color-tertiary: #e6e33c;--color-neutral: #ffffff;--color-primary-60: #5f8f9f;--color-primary-10: #eaf2f4;--color-accent-lime: #dceb4a;--color-accent-cyan: #a7e8ea;--color-error: #d64545;--color-overlay: #285f74cc;--color-bg: light-dark(#f6fbfc, #0b1d24);--color-surface: light-dark(#ffffff, #102a33);--color-surface-muted: light-dark(var(--color-primary-10), #17363f);--color-border: light-dark(#285f7426, #ffffff26);--color-border-strong: light-dark(#285f7459, #ffffff4d);--color-text: light-dark(var(--color-primary), var(--color-primary-10));--color-text-muted: light-dark(#4a7a8b, #a3c0c9);--color-text-inverse: light-dark(#ffffff, var(--color-primary));--color-accent: light-dark(#007f8b, #5fd6e2);--color-accent-hover: light-dark(#00646e, #8ae4ec);--color-accent-soft: color-mix( in oklab, var(--color-secondary) 12%, var(--color-surface) );--color-accent-fill: light-dark(var(--color-primary), #5fd6e2);--color-on-accent: light-dark(#ffffff, #0b1d24);--color-on-tertiary: var(--color-primary);--color-success: var(--color-accent);--color-success-soft: var(--color-accent-soft);--color-success-border: var(--color-accent);--color-danger: light-dark(#c93b3b, #f08585);--color-danger-soft: color-mix(in oklab, var(--color-error) 12%, var(--color-surface));--color-danger-border: var(--color-danger);--color-warning: light-dark(#6b6a12, var(--color-accent-lime));--color-warning-soft: color-mix( in oklab, var(--color-tertiary) 24%, var(--color-surface) );--color-warning-border: var(--color-warning);--color-focus: var(--color-accent);--focus-ring: 2px solid var(--color-focus);--focus-offset: 2px;--color-heat-0: var(--color-surface-muted);--color-heat-1: color-mix( in oklab, var(--color-accent) 18%, var(--color-surface-muted) );--color-heat-2: color-mix( in oklab, var(--color-accent) 42%, var(--color-surface-muted) );--color-heat-3: color-mix( in oklab, var(--color-accent) 68%, var(--color-surface-muted) );--color-heat-4: var(--color-accent)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media(min-width:48rem){:root{--container-padding: 32px}}@media(min-width:64rem){:root{--container-padding: 48px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);font-weight:500;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0 0 var(--space-3)}h1{font-size:var(--text-3xl);letter-spacing:var(--tracking-display)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:var(--space-4)}ul,ol{margin:0 0 var(--space-3);padding-left:var(--space-5)}a{color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;left:var(--space-3);top:-4rem;z-index:40;padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-3)}.app-header__progress{position:absolute;inset:auto 0 0;height:2px;transform-origin:left center;background:var(--color-accent);animation:route-progress .9s ease-out infinite}@keyframes route-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.app-header{position:sticky;top:0;z-index:20;background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border)}.app-header__inner{display:flex;align-items:center;gap:var(--space-5);min-height:var(--header-height);max-width:var(--shell-max-width);margin:0 auto;padding:var(--space-2) var(--container-padding)}.app-main__inner{max-width:var(--content-max-width);margin:0 auto;padding:var(--space-7) var(--container-padding) var(--space-9)}.app-brand{flex:0 0 auto;color:var(--color-text);text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:var(--tracking-tight);line-height:1.15}.app-brand__subtitle{display:block;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;letter-spacing:0;color:var(--color-text-muted)}.app-nav{display:flex;align-items:center;gap:var(--space-1);margin-right:auto;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav__link{position:relative;display:inline-flex;align-items:center;white-space:nowrap;min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:700;transition:color var(--transition-fast)}.app-nav__link:hover,.app-nav__link[aria-current=page]{color:var(--color-text)}.app-nav__link[aria-current=page]:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:2px;height:2px;border-radius:var(--radius-full);background:var(--color-accent)}.theme-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--tap-target);height:var(--tap-target);padding:0;border:var(--border-width) solid transparent;border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.theme-toggle:hover{color:var(--color-text);background:var(--color-surface-muted)}.app-header__action{flex:0 0 auto}.app-main{flex:1}.app-footer{--color-text: #ffffff;--color-text-muted: var(--color-accent-cyan);--color-accent: var(--color-tertiary);--color-focus: var(--color-tertiary);--focus-ring: 2px solid var(--color-focus);background:var(--color-primary);color:var(--color-text);font-size:var(--text-sm)}.app-footer__inner{max-width:var(--shell-max-width);margin:0 auto;padding:var(--space-8) var(--container-padding);display:grid;gap:var(--space-6)}.app-footer__groups{display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}.app-footer__group{display:grid;gap:var(--space-2);align-content:start}.app-footer__heading{margin:0;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.app-footer a{color:var(--color-text);text-decoration:none}.app-footer a:hover{color:var(--color-accent);text-decoration:underline}.app-footer__note{max-width:var(--reading-max-width);margin:0;color:var(--color-text-muted)}.stack{display:flex;flex-direction:column;gap:var(--space-5)}.stack--tight{gap:var(--space-2)}.row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.row--tight{gap:var(--space-1)}.grid{display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}.prose{max-width:var(--reading-max-width)}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:var(--text-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.eyebrow{display:block;margin-bottom:var(--space-2);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-accent)}.page-header{display:grid;gap:var(--space-3);max-width:var(--reading-max-width)}.page-header h1{margin:0}.lead{margin:0;font-size:var(--text-lg);line-height:1.65;color:var(--color-text-muted)}.split{display:grid;gap:var(--space-5);align-items:start}.stat-grid{display:grid;gap:var(--space-4) var(--space-5);grid-template-columns:repeat(2,1fr);margin:0}.stat{display:grid;gap:var(--space-1);align-content:start;padding:var(--space-4) 0;border-top:2px solid var(--color-border-strong)}.stat__value{order:-1;margin:0;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:1;letter-spacing:var(--tracking-tight)}.stat__label{font-size:var(--text-sm);color:var(--color-text-muted)}.panel{display:grid;gap:var(--space-4);padding-top:var(--space-5);border-top:var(--border-width) solid var(--color-border)}.panel__title{margin:0;font-size:var(--text-xl)}.display-number{display:block;font-family:var(--font-display);font-size:var(--text-4xl);font-weight:700;line-height:1;letter-spacing:var(--tracking-display);color:var(--color-text-muted)}.icon{display:inline-block;flex:0 0 auto;inline-size:var(--icon-size);block-size:var(--icon-size);vertical-align:-.2em}.icon--lg{inline-size:var(--icon-size-lg);block-size:var(--icon-size-lg)}.badge .icon,.mistake-list .icon{inline-size:14px;block-size:14px}.speak-button .icon,.sentence-ordering__move .icon,.sentence-ordering__handle .icon{inline-size:16px;block-size:16px}.card{background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:16px}.card__title{margin-bottom:var(--space-3);font-size:var(--text-xl)}.card--elevated{background:var(--color-surface-muted);border-color:transparent;border-radius:var(--radius-lg);padding:var(--space-5)}.card--interactive{display:block;color:var(--color-text);text-decoration:none;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.card--interactive:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:56px;min-width:var(--tap-target);padding:14px 28px;border-radius:var(--radius-full);border:var(--border-width) solid transparent;font:inherit;font-size:var(--text-md);font-weight:700;letter-spacing:var(--tracking-wide);line-height:1.2;cursor:pointer;text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.button:hover:not(:disabled){transform:translateY(-1px)}.button--primary{background:var(--color-tertiary);color:var(--color-on-tertiary)}.button--primary:hover:not(:disabled){background:var(--color-accent-lime)}.button--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong);min-height:48px;padding:12px 24px}.button--secondary:hover:not(:disabled){background:var(--color-surface-muted)}.button--ghost{background:transparent;color:var(--color-text);padding:0 var(--space-4);min-height:var(--tap-target);border-radius:0;font-size:var(--text-label);font-weight:500}.button--ghost:hover:not(:disabled){color:var(--color-accent);background:transparent}.button--danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger-border)}.button--danger:hover:not(:disabled){background:var(--color-danger-soft)}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px 12px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-label);line-height:1.33;border:var(--border-width) solid transparent;background:var(--color-surface-muted);color:var(--color-text-muted)}.badge--accent{background:var(--color-tertiary);color:var(--color-on-tertiary)}.badge--success{background:var(--color-success-soft);color:var(--color-success);border-color:var(--color-success-border)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:var(--color-warning-border)}.badge--case-nominative{background:var(--color-surface-muted);color:var(--color-text-muted);border-color:var(--color-border-strong)}.badge--case-accusative{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent-soft)}.badge--case-dative{background:transparent;color:var(--color-accent);border-color:var(--color-accent)}.badge--case-genitive{background:var(--color-accent-fill);color:var(--color-on-accent);border-color:var(--color-accent-fill)}.badge--case-two-way{background:linear-gradient(90deg,var(--color-accent-soft) 50%,transparent 50%);color:var(--color-text);border-color:var(--color-accent)}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);background:var(--color-surface-muted)}.segmented__option{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.segmented__option:hover{color:var(--color-text)}.segmented__option input{position:absolute;opacity:0;width:1px;height:1px}.segmented__option:has(input:checked){background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.segmented__option:has(input:focus-visible){outline:var(--focus-ring);outline-offset:var(--focus-offset)}.progress-bar{width:100%}.progress-bar__track{height:8px;border-radius:var(--radius-full);background:var(--color-surface-muted);border:var(--border-width) solid var(--color-border);overflow:hidden}.progress-bar__fill{height:100%;background:var(--color-accent);transition:width var(--transition-medium)}.progress-bar__label{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.weak-spots .progress-bar__fill{background:var(--color-warning)}.progress-ring{display:grid;justify-items:center;justify-self:center;gap:var(--space-2)}.progress-ring__dial{display:grid;place-items:center}.progress-ring__dial>*{grid-area:1 / 1}.progress-ring__svg{inline-size:8.5rem;block-size:8.5rem}.progress-ring__caption{margin:0;text-align:center}.progress-ring__track{fill:none;stroke:var(--color-border);stroke-width:10}.progress-ring__value{fill:none;stroke:var(--color-accent);stroke-width:10;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset var(--transition-medium)}.progress-ring .display-number{font-size:var(--text-2xl);color:var(--color-text)}.grammar-table__wrapper{overflow-x:auto;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.grammar-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.grammar-table caption{text-align:left;font-weight:600;padding:var(--space-4) var(--space-4) var(--space-2)}.grammar-table th,.grammar-table td{border-bottom:var(--border-width) solid var(--color-border);padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top}.grammar-table tbody tr:last-child th,.grammar-table tbody tr:last-child td{border-bottom:0}.grammar-table thead th{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.grammar-table tbody th{font-weight:600}.grammar-table__header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.example-list{list-style:none;padding:0;display:grid;gap:var(--space-4)}.example-list__german{font-size:var(--text-lg);line-height:1.5}.example-list__german mark{background:var(--color-accent-soft);color:var(--color-accent);padding:0 .15em;border-radius:var(--radius-sm);font-weight:600}.speak-button{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;margin-left:var(--space-2);vertical-align:middle;border:var(--border-width) solid transparent;border-radius:var(--radius-sm);background:transparent;font-size:var(--text-sm);line-height:1;cursor:pointer;opacity:.55;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.speak-button:hover{opacity:1;background:var(--color-surface-muted);border-color:var(--color-border)}.example-list__english{color:var(--color-text-muted)}.mistake-list{list-style:none;padding:0;display:grid;gap:var(--space-4)}.mistake-list__incorrect,.mistake-list p:has(.mistake-list__incorrect) .icon{color:var(--color-danger)}.mistake-list__incorrect{text-decoration:line-through}.mistake-list__correct,.mistake-list p:has(.mistake-list__correct) .icon{color:var(--color-success)}.mistake-list__correct{font-weight:600}.mistake-list .icon{margin-inline-end:var(--space-2)}.week-strip{display:inline-flex;gap:3px;align-items:center}.activity-calendar__grid{display:flex;gap:3px;overflow-x:auto;padding-bottom:var(--space-1)}.activity-calendar__week{display:flex;flex-direction:column;gap:3px}.activity-calendar__cell{width:12px;height:12px;flex-shrink:0;border-radius:3px;border:var(--border-width) solid var(--color-border);background:var(--color-heat-0)}.activity-calendar__cell--level-1{background:var(--color-heat-1);border-color:var(--color-heat-1)}.activity-calendar__cell--level-2{background:var(--color-heat-2);border-color:var(--color-heat-2)}.activity-calendar__cell--level-3{background:var(--color-heat-3);border-color:var(--color-heat-3)}.activity-calendar__cell--level-4{background:var(--color-heat-4);border-color:var(--color-heat-4)}.activity-calendar__legend{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-3)}.lesson{max-width:var(--reading-max-width);gap:var(--space-7)}.lesson>section{display:grid;gap:var(--space-4)}.lesson h2{margin:0}.remember-box{background:var(--color-surface-muted);border-radius:var(--radius-md);padding:var(--space-5)}.remember-box h3{margin-top:0;color:var(--color-accent)}.dialogue{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.dialogue__line{display:flex}.dialogue__line--a{justify-content:flex-start}.dialogue__line--b{justify-content:flex-end}.dialogue__bubble{display:grid;gap:var(--space-1);max-width:34rem;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-muted)}.dialogue__line--b .dialogue__bubble{background:var(--color-accent-soft)}.dialogue__speaker{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--color-text-muted)}.dialogue__german{font-size:var(--text-lg)}.dialogue__english{font-size:var(--text-sm);color:var(--color-text-muted)}.session-summary{display:grid;gap:var(--space-5);align-items:center}@media(min-width:30rem){.session-summary{grid-template-columns:auto 1fr;gap:var(--space-6)}}.session-summary__verdict{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:650;letter-spacing:var(--tracking-tight)}.stat__of{font-size:var(--text-lg);font-weight:400;color:var(--color-text-muted)}.practice{max-width:var(--reading-max-width);margin:0 auto}.practice__meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.exercise__prompt{display:block;font-family:var(--font-display);font-size:var(--text-xl);font-weight:650;line-height:1.35;letter-spacing:var(--tracking-tight)}.option-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.option{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.option:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted)}.option--selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.option--correct{border-color:var(--color-success-border);background:var(--color-success-soft)}.option--incorrect{border-color:var(--color-danger-border);background:var(--color-danger-soft)}.option input{flex:0 0 auto;width:1.15rem;height:1.15rem;accent-color:var(--color-accent)}.option__marker{margin-left:auto;display:inline-flex;align-items:center;font-weight:700}.option--correct .option__marker{color:var(--color-success)}.option--incorrect .option__marker{color:var(--color-danger)}.option__number{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600}.option--selected .option__number{border-color:var(--color-accent-fill);background:var(--color-accent-fill);color:var(--color-on-accent)}.text-answer{display:grid;gap:var(--space-3)}.text-answer__field{width:100%;min-height:48px;padding:12px 14px;font:inherit;font-size:max(16px,var(--text-base));color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}.text-answer__field:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.umlaut-helper{display:flex;flex-wrap:wrap;gap:var(--space-2)}.umlaut-helper__button{min-width:var(--tap-target);min-height:var(--tap-target);font-size:var(--text-lg);border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast)}.umlaut-helper__button:hover{background:var(--color-surface-muted)}.feedback{border-radius:var(--radius-md);padding:var(--space-5);background:var(--color-surface-muted);border-inline-start:3px solid var(--color-border-strong)}.feedback--correct{background:var(--color-success-soft);border-inline-start-color:var(--color-success)}.feedback--incorrect{background:var(--color-danger-soft);border-inline-start-color:var(--color-danger)}.feedback--revealed{background:var(--color-warning-soft);border-inline-start-color:var(--color-warning)}.feedback--correct .feedback__icon{color:var(--color-success)}.feedback--incorrect .feedback__icon{color:var(--color-danger)}.feedback--revealed .feedback__icon{color:var(--color-warning)}.feedback__headline{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-tight);margin-bottom:var(--space-2)}.feedback__icon{display:inline-flex}.feedback p:last-child{margin-bottom:0}.auto-advance{display:grid;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.auto-advance__track{display:block;block-size:2px;background:var(--color-border)}.auto-advance__bar{display:block;block-size:100%;background:var(--color-accent);transform-origin:left center;animation:auto-advance var(--auto-advance-duration) linear both}@keyframes auto-advance{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.option-hint{margin:var(--space-3) 0 0}@media(pointer:coarse){.option-hint{display:none}}.exercise-navigation{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between;align-items:center;padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.sentence-ordering__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.sentence-ordering__token{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:grab;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.sentence-ordering__token--dragging{opacity:.5}.sentence-ordering__token--correct{border-color:var(--color-success-border);background:var(--color-success-soft)}.sentence-ordering__token--incorrect{border-color:var(--color-danger-border);background:var(--color-danger-soft)}.sentence-ordering__handle{color:var(--color-text-muted)}.sentence-ordering__text{font-size:var(--text-lg)}.sentence-ordering__controls{display:flex;gap:var(--space-1)}.sentence-ordering__move{min-width:var(--tap-target);min-height:var(--tap-target);border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer}.sentence-ordering__move:hover:not(:disabled){background:var(--color-surface-muted)}.sentence-ordering__move:disabled{opacity:.4;cursor:not-allowed}.drag-slots{display:grid;gap:var(--space-5)}.drag-slots__sentence{font-size:var(--text-lg);line-height:2.4}.drag-slots__slot{display:inline-block;min-width:5rem;padding:.1rem var(--space-2);margin:0 .15rem;border-bottom:2px solid var(--color-border-strong);border-radius:var(--radius-sm);text-align:center;cursor:pointer}.drag-slots__slot--filled{background:var(--color-accent-soft);border-color:var(--color-accent)}.drag-slots__slot--correct{background:var(--color-success-soft);border-color:var(--color-success-border)}.drag-slots__slot--incorrect{background:var(--color-danger-soft);border-color:var(--color-danger-border)}.drag-slots__bank{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.drag-slots__word{min-height:var(--tap-target);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-lg);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:grab;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.drag-slots__word:hover:not(:disabled){background:var(--color-surface-muted)}.drag-slots__word--selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.drag-slots__word--used{opacity:.35;cursor:not-allowed}.matching__columns{display:grid;grid-template-columns:1fr;gap:var(--space-4)}.matching__column{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.matching__item{width:100%;min-height:var(--tap-target);padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--text-lg);text-align:left;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.matching__item:hover:not(:disabled){background:var(--color-surface-muted)}.matching__item--selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.matching__item--matched{border-style:dashed}.matching__item--correct{border-color:var(--color-success-border);background:var(--color-success-soft)}.matching__item--incorrect{border-color:var(--color-danger-border);background:var(--color-danger-soft)}.error-spotting__sentence{display:flex;flex-wrap:wrap;gap:var(--space-1);font-size:var(--text-lg)}.error-spotting__token{min-height:var(--tap-target);padding:.2rem var(--space-2);font:inherit;font-size:inherit;border:var(--border-width) solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);cursor:pointer}.error-spotting__token:hover:not(:disabled){background:var(--color-surface-muted)}.error-spotting__token--selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.error-spotting__token--correct{border-color:var(--color-success-border);background:var(--color-success-soft)}.error-spotting__token--incorrect{border-color:var(--color-danger-border);background:var(--color-danger-soft)}.error-spotting__correction{font-weight:600}.notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);background:var(--color-warning-soft);border-left:3px solid var(--color-warning)}.notice p{margin:0;max-width:var(--reading-max-width)}.reload-prompt{position:fixed;left:var(--space-4);bottom:var(--space-4);z-index:25;display:grid;gap:var(--space-3);max-width:22rem;padding:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);animation:enter-rise var(--transition-medium) backwards}.reload-prompt__text{margin:0}.modal__backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:30}.modal{background:var(--color-surface);border-radius:var(--radius-lg);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-md);padding:var(--space-6);max-width:32rem;width:100%}.chapter-card{position:relative;display:grid;gap:var(--space-3);align-content:start}.chapter-card .card__title{margin:0}.chapter-card .card__title a{color:inherit;text-decoration:none}.chapter-card .card__title a:after{content:"";position:absolute;inset:0;border-radius:inherit}.chapter-card__header{display:flex;justify-content:space-between;gap:var(--space-3);align-items:flex-start}.chapter-card__number{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:1;letter-spacing:var(--tracking-tight);color:var(--color-text-muted)}.chapter-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.search-field{display:grid;gap:var(--space-2);max-width:24rem}.search-field label{font-size:var(--text-sm);font-weight:600}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-2)}.filter-bar__button{min-height:var(--tap-target);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.filter-bar__button:hover{border-color:var(--color-border-strong);color:var(--color-text)}.filter-bar__button[aria-pressed=true]{background:var(--color-tertiary);border-color:var(--color-tertiary);color:var(--color-on-tertiary)}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:var(--border-width) solid var(--color-border)}.setting-row:last-child{border-bottom:0;padding-bottom:0}.setting-row__control{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-target)}.setting-row input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--color-accent)}.skeleton{display:block;block-size:1rem;background:var(--color-surface-muted);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton--title{block-size:var(--text-2xl);inline-size:min(100%,22rem)}.skeleton--line-short{inline-size:60%}@keyframes skeleton-pulse{50%{opacity:.5}}@keyframes enter-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes enter-fade{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}}@keyframes indicator-in{0%{transform:scaleX(0)}}.app-main__inner>*{animation:enter-rise var(--transition-medium) backwards}.stat-grid>*{animation:enter-rise var(--transition-medium) backwards}.stat-grid>*:nth-child(2){animation-delay:40ms}.stat-grid>*:nth-child(3){animation-delay:80ms}.stat-grid>*:nth-child(4){animation-delay:.12s}.app-nav__link[aria-current=page]:after{animation:indicator-in var(--transition-medium) backwards;transform-origin:left center}.feedback{animation:enter-rise var(--transition-medium) backwards}.option__marker,.error-spotting__correction{animation:pop-in var(--transition-medium) 60ms backwards}.modal__backdrop{animation:enter-fade var(--transition-fast) backwards}.modal{animation:enter-rise var(--transition-medium) backwards}.button:active:not(:disabled),.option:active,.matching__item:active:not(:disabled),.drag-slots__word:active:not(:disabled),.error-spotting__token:active:not(:disabled),.filter-bar__button:active{transform:translateY(1px)}@media(max-width:48rem){.app-header__inner{flex-wrap:wrap;gap:var(--space-3);padding-bottom:0}.app-nav{order:3;flex:1 0 100%;margin:0 calc(var(--container-padding) * -1);padding:0 var(--container-padding);border-top:var(--border-width) solid var(--color-border);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}.app-brand{margin-right:auto}}@media(max-width:40rem){h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}.app-main__inner{padding-top:var(--space-5);padding-bottom:var(--space-8)}.stat-grid{grid-template-columns:repeat(2,1fr)}.exercise-navigation .row{width:100%}}@media(min-width:48rem){.split{grid-template-columns:1.4fr 1fr;gap:var(--space-6)}.matching__columns{grid-template-columns:1fr 1fr}}@media(min-width:64rem){.app-main__inner{padding-top:var(--space-8)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.button:hover:not(:disabled),.card--interactive:hover{transform:none}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media(prefers-reduced-motion:reduce){.auto-advance__track{display:none}}.reduced-motion .auto-advance__track{display:none}.reduced-motion .button:hover:not(:disabled),.reduced-motion .card--interactive:hover,.reduced-motion .button:active:not(:disabled),.reduced-motion .option:active{transform:none}
