@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}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/outfit-800-latin-CQna6-G7.woff2) format("woff2")}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/oswald-600-latin-plFmSr5g.woff2) format("woff2")}: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: clamp(16px, 4vw, 44px);--font-sans: "Manrope Variable", "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display: "Outfit", "Futura", "Century Gothic", system-ui, sans-serif;--font-cond: "Oswald", "Arial Narrow", "Roboto Condensed", sans-serif-condensed, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;--text-xs: .75rem;--text-label: .8125rem;--text-sm: .875rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: clamp(1.5rem, 3vw, 1.875rem);--text-2xl: clamp(1.75rem, 4vw, 2.25rem);--text-3xl: clamp(2.25rem, 5vw, 3rem);--text-4xl: clamp(2.75rem, 6.4vw, 4.25rem);--leading-normal: 1.53;--leading-tight: 1.05;--tracking-tight: -.015em;--tracking-display: -.03em;--tracking-wide: 0;--tracking-label: .14em;--radius-sm: 2px;--radius-md: 3px;--radius-lg: 3px;--radius-xl: 4px;--radius-full: 9999px;--border-width: 1px;--shadow-sm: none;--shadow-md: 0 10px 30px light-dark(rgb(20 20 20 / 18%), rgb(0 0 0 / 55%));--sheet: 1100px;--shell-max-width: var(--sheet);--content-max-width: var(--sheet);--reading-max-width: 43rem;--tap-target: 44px;--header-height: 60px;--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-red: #c63f1e;--color-on-red: #fbf5ea;--color-mustard: #f2a82c;--color-ink-fixed: #141414;--color-error: #c63f1e;--color-overlay: light-dark(#141414b3, #000000cc);--color-table: light-dark(#cfc4ae, #100f0d);--color-bg: light-dark(#e6ddcc, #1c1a17);--color-surface: light-dark(#efe8db, #25221e);--color-surface-muted: light-dark(#ddd3c0, #2e2a25);--color-border: light-dark(#14141426, #efe6d626);--color-border-strong: light-dark(#14141480, #efe6d680);--color-track: light-dark(#d3c9b6, #3a352e);--color-text: light-dark(#141414, #efe6d6);--color-text-muted: light-dark(#3f3a33, #b8ad9a);--color-text-inverse: light-dark(#fbf5ea, #141414);--color-accent: light-dark(#2f5f8f, #8fb3dc);--color-accent-hover: light-dark(#1f4570, #b3cdea);--color-accent-soft: color-mix(in oklab, var(--color-accent) 14%, var(--color-bg));--color-accent-fill: light-dark(#2f5f8f, #8fb3dc);--color-on-accent: light-dark(#fbf5ea, #141414);--color-headline-accent: light-dark(#c63f1e, #e8603f);--color-success: var(--color-accent);--color-success-soft: var(--color-accent-soft);--color-success-border: var(--color-accent);--color-danger: light-dark(#b0381a, #f08a6e);--color-danger-soft: color-mix(in oklab, var(--color-red) 12%, var(--color-bg));--color-danger-border: var(--color-danger);--color-warning: light-dark(#7a4f00, var(--color-mustard));--color-warning-soft: color-mix(in oklab, var(--color-mustard) 22%, var(--color-bg));--color-warning-border: light-dark(#b27a12, var(--color-mustard));--color-focus: var(--color-accent);--focus-ring: 3px solid var(--color-focus);--focus-offset: 3px;--color-heat-0: var(--color-track);--color-heat-1: color-mix(in oklab, var(--color-accent) 30%, var(--color-track));--color-heat-2: color-mix(in oklab, var(--color-accent) 55%, var(--color-track));--color-heat-3: color-mix(in oklab, var(--color-accent) 78%, var(--color-track));--color-heat-4: var(--color-accent);--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .28 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--grain-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .94 0 0 0 0 .88 0 0 0 0 .78 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--paper-grain: var(--grain)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--paper-grain: var(--grain-dark)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper-grain: var(--grain-dark)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--color-table)}body{margin:0;max-width:var(--sheet);margin-inline:auto;overflow-x:clip;background:var(--color-bg) var(--paper-grain);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:.22em}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-bg) var(--paper-grain)}.app-header__inner{display:flex;align-items:center;gap:var(--space-3);min-height:var(--header-height);max-width:var(--shell-max-width);margin:0 auto;padding:var(--space-1) var(--container-padding)}.app-main__inner{max-width:var(--content-max-width);margin:0 auto;padding:var(--space-4) var(--container-padding) var(--space-7)}.app-brand{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);text-decoration:none;line-height:1}.app-brand__mark{width:28px;height:auto}.app-brand__word{font-size:1.375rem;font-weight:600;letter-spacing:-.02em}.app-brand__app{padding-left:var(--space-3);margin-left:var(--space-1);border-left:var(--border-width) solid var(--color-border-strong);font-size:var(--text-label);font-weight:600;line-height:1.8}.app-nav{display:flex;align-items:center;gap:0;margin-inline: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) 7px;border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-label);font-weight:500;transition:color var(--transition-fast)}.app-nav__link:hover{color:var(--color-text)}.app-nav__link[aria-current=page]{color:var(--color-text);font-weight:800}.app-nav__link[aria-current=page]:after{content:"";position:absolute;left:7px;right:7px;bottom:4px;height:2px;background:var(--color-red)}.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);cursor:pointer;transition:color var(--transition-fast)}.theme-toggle:hover{color:var(--color-headline-accent)}.app-header__action.button{flex:0 0 auto;min-height:40px;padding:8px 18px}.app-main{flex:1}.app-main:focus{outline:none}.app-footer{position:relative;font-size:var(--text-label)}.app-footer__inner{display:grid;grid-template-columns:minmax(0,250px) minmax(0,1fr);align-items:end;max-width:var(--shell-max-width);margin:0 auto;padding-right:var(--container-padding)}.app-footer__art{width:289px;max-width:none;height:auto;align-self:end}.app-footer__body{display:grid;grid-template-columns:repeat(3,max-content) minmax(0,1fr);margin-bottom:var(--space-5);padding-top:var(--space-5);border-top:var(--border-width) solid var(--color-border-strong)}.app-footer__groups{display:contents}.app-footer__group,.app-footer__note{display:grid;gap:var(--space-1);align-content:start;padding:var(--space-1) var(--space-5)}.app-footer__group+.app-footer__group,.app-footer__note{border-left:var(--border-width) solid var(--color-border-strong)}.app-footer__group:first-child{padding-left:var(--space-7)}.app-footer__heading{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text)}.app-footer a{color:var(--color-text-muted);text-decoration:none}.app-footer a:hover{color:var(--color-headline-accent)}.app-footer__note{margin:0;color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.5}.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-label);font-weight:800;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-md);line-height:1.5;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-3) var(--space-1);border-top:var(--border-width) solid var(--color-border-strong)}.stat__value{order:-1;margin:0;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;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-strong)}.panel__title{margin:0;font-size:var(--text-xl)}.display-number{display:block;font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;line-height:1;letter-spacing:var(--tracking-tight);color:var(--color-text)}.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{border-color:var(--color-border-strong);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-red)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;min-width:var(--tap-target);padding:12px 26px;border-radius:var(--radius-md);border:2px 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;text-wrap:balance;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.button--primary{background:var(--color-red);color:var(--color-on-red)}a.button--primary:after{content:"";flex:none;width:18px;height:14px;margin-left:var(--space-1);background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M0 7h15M10 1.5 15.5 7 10 12.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M0 7h15M10 1.5 15.5 7 10 12.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E") center / contain no-repeat}.button--primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-red) 80%,#141414);color:var(--color-on-red)}.button--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-text)}.button--secondary:hover:not(:disabled){background:var(--color-text);color:var(--color-bg)}.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:0;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-mustard);color:var(--color-ink-fixed)}.badge--accent .icon{fill:currentColor}.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;flex-wrap:wrap;max-width:100%;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:10px;border-radius:var(--radius-full);background:var(--color-track);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-mustard)}.weak-spots__row{display:flex;gap:var(--space-3);align-items:baseline}.weak-spots__row .progress-bar{flex:1;min-width:0}.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-track);stroke-width:10}.progress-ring__value{fill:none;stroke:var(--color-accent);stroke-width:10;transform:rotate(-90deg);transform-origin:50% 50%;stroke-dashoffset:var(--ring-offset);transition:stroke-dashoffset var(--transition-medium);animation:ring-draw .7s ease-out backwards}@keyframes ring-draw{0%{stroke-dashoffset:var(--ring-circumference)}}.progress-ring .display-number{font-size:var(--text-xl);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{position:relative;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:before{content:"";position:absolute;inset:calc((var(--tap-target) - 1.75rem) / -2)}.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:var(--radius-sm);border:var(--border-width) solid var(--color-heat-0);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)}.calendar-month{width:100%;border-collapse:separate;border-spacing:var(--space-1);table-layout:fixed}.calendar-month th{padding-bottom:var(--space-1);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.calendar-month__day{width:100%;height:100%;min-height:4.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-1) 1px;gap:2px;overflow:hidden;font:inherit;font-size:var(--text-md);color:var(--color-text);cursor:pointer;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-heat-0)}.calendar-month__facts{display:flex;flex-direction:column;align-items:center;font-size:var(--text-xs);line-height:1.2;white-space:nowrap;opacity:.8}.calendar-month__day--level-1{background:var(--color-heat-1)}.calendar-month__day--level-2{background:var(--color-heat-2)}.calendar-month__day--level-3,.calendar-month__day--level-4{color:var(--color-on-accent)}.calendar-month__day--level-3{background:var(--color-heat-3)}.calendar-month__day--level-4{background:var(--color-heat-4)}.calendar-month__day--outside{opacity:.6}.calendar-month__day--today{border-color:var(--color-accent)}.calendar-month__day[aria-pressed=true]{outline:2px solid var(--color-accent);outline-offset:1px}.lesson{max-width:var(--reading-max-width);gap:var(--space-7)}.lesson>section{display:grid;grid-template-columns:minmax(0,1fr);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)}.missed-list{list-style:none;margin:0;padding:0}.missed-list__item{padding-left:var(--space-3);border-left:2px solid var(--color-error)}.missed-list__item+.missed-list__item{margin-top:var(--space-4)}.missed-list__prompt{margin:0 0 var(--space-1);font-weight:650}.missed-list__item p:not(.missed-list__prompt){margin:0}.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,.sentence-ordering__handle{display:none}.sentence-ordering__token{cursor:default}}.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__terminator{display:flex;align-items:flex-end;min-height:var(--tap-target);padding-bottom:var(--space-2);font-size:var(--text-lg);font-weight:600;color:var(--color-text-muted)}.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{padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:none;color:inherit;font:inherit;font-size:var(--text-lg);cursor:pointer}.sentence-ordering__text:disabled{cursor:default}.sentence-ordering__token--selected{border-color:var(--color-accent);background:var(--color-surface-muted);outline:2px solid var(--color-accent);outline-offset:1px}.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}.study-header-row{justify-content:space-between}.study-timer{font-variant-numeric:tabular-nums}.study-timer--paused{opacity:.6}.study-timer__state{text-transform:uppercase;letter-spacing:var(--tracking-label);font-size:var(--text-xs)}.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{display:flex;align-items:center;gap:var(--space-3);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__badge{flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;border:var(--border-width) dashed var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.matching__item--matched .matching__badge,.matching__item--selected .matching__badge{border-style:solid;border-color:transparent;background:var(--color-accent);color:var(--color-on-accent)}.matching__item:hover:not(:disabled){background:var(--color-surface-muted)}.matching__item--selected{border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:0 0 0 2px var(--color-accent)}.matching__item--matched{border-color:var(--color-accent);background:var(--color-accent-soft)}.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)}.matching__item--correct .matching__badge{background:var(--color-success-border)}.matching__item--incorrect .matching__badge{background:var(--color-danger-border)}.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__answer{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4);max-width:22rem}.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%}.modal--wide{max-width:48rem;max-height:calc(100dvh - 2 * var(--space-4));overflow-y:auto}.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-text);border-color:var(--color-text);color:var(--color-bg)}.setting-row{display:flex;flex-wrap:wrap;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}}.dashboard{display:grid;gap:var(--space-5)}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-5);align-items:start}.dashboard-hero__copy{display:grid;gap:var(--space-1)}.dashboard-hero__copy .eyebrow{margin:0 0 var(--space-2)}.poster-line{margin:0;font-family:var(--font-display);font-size:var(--text-4xl);font-weight:800;line-height:.96;letter-spacing:var(--tracking-display)}.poster-line__accent{color:var(--color-headline-accent)}.dashboard-hero__title{margin:var(--space-1) 0 0;font-size:var(--text-2xl)}.dashboard-hero .lead{max-width:42ch}.dashboard-hero__art{display:flex;align-items:flex-start;gap:var(--space-2);margin-right:calc(var(--container-padding) * -1 + 12px);margin-top:calc(var(--space-7) * -1 + var(--space-1))}.dashboard-hero__art img{width:324px}.dashboard-hero__slogan{margin:var(--space-7) 0 0;font-family:var(--font-cond);font-size:1.125rem;font-weight:600;line-height:1.2;text-transform:uppercase}.dashboard-hero__slogan:after{content:"";display:block;width:46px;height:5px;margin-top:var(--space-2);background:var(--color-red)}.dashboard-top{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,36fr);gap:var(--space-5) var(--space-6);align-items:start}.continue-card{position:relative;overflow:hidden;min-height:330px;padding-right:150px}.continue-card .card__title{font-size:var(--text-xl)}.continue-card__art{position:absolute;top:0;right:0;height:100%;width:auto;max-width:none;pointer-events:none}.continue-card__body{position:relative;display:grid;gap:var(--space-2);margin:0}.continue-card__body .display-number{font-size:var(--text-3xl)}.continue-card__title{margin:var(--space-1) 0 0;font-family:var(--font-cond);font-size:var(--text-xl);font-weight:600;line-height:1.15;letter-spacing:-.005em}.continue-card__meta{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-2) 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}.continue-card__meta .badge{padding:0;background:none;border:0;font-size:var(--text-sm);font-weight:500;letter-spacing:0;color:inherit}.continue-card__meta .badge .icon{inline-size:16px;block-size:16px}.continue-card__meta>span:last-child{padding-left:var(--space-3);border-left:var(--border-width) solid var(--color-text)}.continue-card__actions{gap:var(--space-2)}.continue-card__actions .button{padding-inline:22px}.dashboard-stats{display:grid;gap:var(--space-3)}.dashboard-stats .progress-ring__svg{inline-size:7.5rem;block-size:7.5rem}.dashboard-stats .stat-grid{gap:0}.dashboard-stats .stat:nth-child(odd){padding-right:var(--space-3);border-right:var(--border-width) solid var(--color-border-strong)}.dashboard-stats .stat:nth-child(2n){padding-left:var(--space-3)}.dashboard-stats .stat:nth-child(n+3){border-top-color:var(--color-border)}.dashboard-stats .stat-grid+.streak{padding-top:var(--space-3);border-top:var(--border-width) solid var(--color-border-strong)}.streak{margin:0;gap:var(--space-2)}.streak .text-muted{margin-left:auto}.dashboard-next{position:relative}.dashboard-next__wedge{position:absolute;top:0;left:calc(var(--container-padding) * -1 + 20px);width:35px}.dashboard-next__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);padding-inline:var(--space-5)}.dashboard-next__head p{margin:var(--space-1) 0 0}.dashboard-next .panel__title,.dashboard-duo .panel__title{font-size:var(--text-xl)}.weak-spots{display:grid;padding:var(--space-4) var(--space-5) 0;border-top:var(--border-width) solid var(--color-border-strong)}.weak-spots .panel__title{margin-bottom:var(--space-2)}.weak-spots__row{display:grid;grid-template-columns:minmax(7rem,11rem) minmax(0,1fr) auto auto;align-items:center;gap:var(--space-5);padding-block:var(--space-2);border-bottom:var(--border-width) solid var(--color-border)}.weak-spots__row .progress-bar,.weak-spots__row .progress-bar__label{display:contents}.weak-spots__row .progress-bar__label>:first-child{order:1;font-size:var(--text-base);font-weight:700;color:var(--color-text)}.weak-spots__row .progress-bar__track{order:2}.weak-spots__row .progress-bar__label>:last-child{order:3;min-width:5em;font-size:var(--text-sm);color:var(--color-text-muted)}.weak-spots__row>a{order:4}.weak-spots>p:last-child{margin:var(--space-3) 0 0}.dashboard-duo{display:grid;gap:var(--space-5);padding-top:var(--space-5);border-top:var(--border-width) solid var(--color-border-strong)}.dashboard-duo:has(>:nth-child(2)){grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6)}.dashboard-duo>.panel{align-content:start;padding:0 var(--space-5);border-top:0}.dashboard-duo>.panel+.panel{border-left:var(--border-width) solid var(--color-border-strong);padding-left:var(--space-6)}.dashboard-duo .progress-bar__label{color:var(--color-text)}.recent-list{margin:0;padding:0;list-style:none}.recent-list li>:last-child{flex:none}.recent-list li{display:flex;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-2);border-bottom:var(--border-width) solid var(--color-border)}@media(max-width:62rem){.dashboard-top{grid-template-columns:minmax(0,1fr)}.dashboard-stats{max-width:30rem}.dashboard-hero__art{margin-top:0}.dashboard-hero__art img{width:250px}}@media(max-width:48rem){.dashboard-hero{grid-template-columns:minmax(0,1fr)}.dashboard-hero__art{margin:0 auto}.dashboard-hero__art img{width:min(100%,324px);min-width:0}.dashboard-next__wedge{display:none}.dashboard-next__head,.weak-spots,.dashboard-duo>.panel,.dashboard-duo>.panel+.panel{padding-inline:0;border-left:0}.dashboard-duo:has(>:nth-child(2)){grid-template-columns:minmax(0,1fr)}.weak-spots__row{grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-1) var(--space-3)}.weak-spots__row .progress-bar__track{grid-column:1 / -1;order:5}}@media(max-width:30rem){.continue-card{padding-right:var(--space-5)}.continue-card__art{opacity:.18}.continue-card__actions .button{flex:1 1 100%}}@media(max-width:62rem){.app-footer__inner{grid-template-columns:minmax(0,1fr);padding-left:var(--container-padding)}.app-footer__art{display:none}.app-footer__body{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:var(--space-5)}.app-footer__note{grid-column:1 / -1;margin-top:var(--space-4);padding-left:0;border-left:0}.app-footer__group:first-child{padding-left:0}}@media(max-width:30rem){.app-footer__body{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.app-footer__group,.app-footer__group+.app-footer__group{padding-left:0;border-left:0}}@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,.streak-chip{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:62rem){.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-strong);-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:48rem){.exercise-navigation{position:sticky;bottom:0;z-index:1;margin:0 calc(var(--container-padding) * -1);padding:var(--space-4) var(--container-padding) max(var(--space-3),env(safe-area-inset-bottom));background-color:var(--color-bg)}}@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%}.calendar-month__day{font-size:var(--text-base)}.calendar-month__facts{font-size:.625rem}.app-brand{flex:1 1 0;min-width:0}.app-brand__app{display:none}}@media(pointer:coarse){.app-footer__group{gap:0}.app-footer__group a{display:flex;align-items:center;min-height:var(--tap-target)}.eyebrow a{display:inline-block;padding-block:.8rem;margin-block:-.8rem}}@media(max-height:500px){.app-header,.exercise-navigation{position:static}}@media(min-width:48rem){.split{grid-template-columns:1.4fr 1fr;gap:var(--space-6)}.matching__columns{grid-template-columns:1fr 1fr}}@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}@media print{.skip-link,.app-header,.app-footer,.study-timer,.reload-prompt{display:none}.exercise-navigation{position:static}}
