:root{--parchment: #f6f0e4;--bg-alt: #ede4d1;--card: #fffbf2;--card-elev: #ffffff;--ink: #1c1811;--ink-soft: #4a4235;--muted: #8b8068;--subtle: #b8ae95;--rule: #d7cdb5;--rule-soft: #e6ddc7;--gold: #9e7a2b;--gold-soft: #ba9543;--accent: #8b2a2a;--accent-soft: #a6433f;--correct: #3e6b42;--correct-bg: #e8ebd9;--incorrect: var(--accent);--incorrect-bg: #f3e3de}:root[data-tenant=latin]{--accent: #6a3a7a;--accent-soft: #85599a}:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--parchment);color:var(--ink);overflow-wrap:break-word}:root{--tab-bar-height: 3.5rem;--content-max: 640px;--shell-chrome: calc(var(--tab-bar-height) + 2rem + env(safe-area-inset-bottom, 0px))}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-main{flex:1;min-width:0;padding:1rem;padding-bottom:calc(var(--tab-bar-height) + 1rem + env(safe-area-inset-bottom,0px));width:100%}.app-column{max-width:var(--content-max);margin-inline:auto;width:100%}.app-sidebar{display:contents}.app-header{display:none}.wordmark{font-weight:700;font-size:1.1rem;letter-spacing:.02em}.app-tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;border-top:1px solid var(--rule-soft);background:var(--parchment);padding-bottom:env(safe-area-inset-bottom,0px)}.app-tabs ul{display:flex;list-style:none;margin:0;padding:0}.app-tabs li{flex:1 1 0;min-width:0}.app-tabs .tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:var(--tab-bar-height);padding:.4rem .15rem;color:var(--ink-soft);text-decoration:none;font-size:.72rem;line-height:1.2;text-align:center}.app-tabs .tab-icon{flex:none;width:22px;height:22px}.app-tabs .tab-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-tabs .tab.active,.app-tabs .tab[aria-current=page]{color:var(--accent);font-weight:700}.app-tabs .tab:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}@media(min-width:768px){.app-shell{flex-direction:row}.app-sidebar{display:flex;flex-direction:column;flex:0 0 220px;width:220px;padding:1.25rem .5rem;border-top:none;border-right:1px solid var(--rule-soft)}.app-header{display:block;padding:0 .75rem 1.25rem}.app-tabs{position:static;z-index:auto;border-top:none;background:none;padding-bottom:0}.app-tabs ul{flex-direction:column;gap:.15rem}.app-tabs li{flex:0 0 auto}.app-tabs .tab{flex-direction:row;justify-content:flex-start;gap:.6rem;min-height:2.75rem;padding:.5rem .75rem;border-radius:6px;font-size:.95rem;text-align:left}.app-main{padding-bottom:1rem}:root{--shell-chrome: 2rem}}button{font:inherit;cursor:pointer}.cn-button{margin-top:1rem;padding:.75rem 1.5rem;border:none;border-radius:8px;background:var(--accent);color:var(--parchment)}.cn-button:disabled,.cn-button[aria-disabled=true]{opacity:.4;cursor:not-allowed}.options,.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.option,.chip{padding:.6rem 1rem;border:1px solid var(--rule);border-radius:8px;background:var(--card)}.option.selected,.chip.selected{border-color:var(--accent)}.option.correct,.chip.correct{background:var(--correct-bg);border-color:var(--correct)}.option.incorrect,.chip.incorrect{background:var(--incorrect-bg);border-color:var(--incorrect)}.option[aria-disabled=true],.chip[aria-disabled=true],.slot[aria-disabled=true],.image-option[aria-disabled=true]{cursor:default}.phrase-word{margin-bottom:1rem}.phrase-word .source{display:block;font-weight:700;margin-bottom:.35rem}.progress{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.progress-track{flex:1;height:8px;border-radius:4px;background:var(--rule-soft);overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .2s ease}.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;color:var(--accent)}.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem}.auth-column{width:100%;max-width:26rem}.auth-column h1{margin:.25rem 0 0;font-size:clamp(1.6rem,6vw,2.1rem);line-height:1.15}.auth-subtitle{color:var(--ink-soft);margin-top:.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem;margin-top:1.75rem}.auth-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem}.auth-resolving{margin-top:1.5rem;font-size:.875rem;color:var(--ink-soft)}.field{display:flex;flex-direction:column;gap:.35rem}.field-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.field input[type=text],.field input[type=email]{font:inherit;padding:.75rem;border:1.5px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink);width:100%}.field-toggle{flex-direction:row;align-items:center;gap:.6rem}.code-input{letter-spacing:.4em;text-align:center;font-size:1.5rem}.form-error{color:var(--incorrect);margin:0}.link-button{background:none;border:none;padding:.4rem 0;color:var(--accent);text-decoration:underline;font:inherit}.link-button:disabled{opacity:.4}.home{display:flex;flex-direction:column;gap:1.25rem}.home-headline{font-size:clamp(1.3rem,5vw,1.6rem);margin:0}.streak-module,.lesson-card,.placement-card{padding:1rem 1.1rem;background:var(--card);border:1px solid var(--rule);border-radius:3px}.streak-count{margin:0;font-size:1.1rem}.streak-today{margin:.25rem 0 0;font-size:.8rem;color:var(--ink-soft)}.lesson-card h2,.placement-card h2{margin:.25rem 0 .5rem;font-size:1.25rem}.placement-options{display:flex;flex-direction:column;gap:.6rem}.cn-button.secondary{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}.hero{font-size:clamp(2rem,10vw,3.25rem);text-align:center;margin:1rem 0 .25rem}.hero-meaning{font-size:clamp(1.3rem,6vw,1.75rem);font-style:italic;margin:.75rem 0 0}.gloss,.post-hint{color:var(--ink-soft);font-style:italic;margin:.25rem 0 0}.passage{margin:.75rem 0;padding:.75rem 1rem;background:var(--card);border-left:3px solid var(--accent)}.axes{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}.toggle-group{border:none;padding:0;margin:0}.toggle-group.locked .options{opacity:.6}.given-tag{font-weight:400;letter-spacing:0;text-transform:none}.options-stacked{flex-direction:column;align-items:stretch}.hints{margin:.5rem 0 0;font-size:.875rem}.hints dt{font-weight:600}.hints dd{margin:0 0 .35rem}.unsupported,.unsupported-lesson{border:2px solid var(--incorrect);border-radius:3px;padding:1rem}.lesson-step:focus{outline:none}.lesson-summary h1.eyebrow,.lesson-summary h2.eyebrow{margin:0;font-size:.75rem;font-weight:600}.lesson-summary h2.eyebrow{margin-top:1.5rem}.lesson-summary .score{font-size:clamp(2.5rem,14vw,4.5rem);margin:.5rem 0 0}.lesson-summary .score-total{opacity:.55;font-size:.5em}.lesson-summary .tone{font-style:italic;font-size:1.15rem;margin:.25rem 0 0}.lesson-summary .accuracy{letter-spacing:.16em;font-size:.7rem;color:var(--ink-soft)}.result-list{list-style:none;padding:0;margin:.5rem 0 0}.result{display:flex;gap:.75rem;align-items:baseline;padding:.5rem 0;border-top:1px solid var(--rule-soft)}.result-index{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.result-verdict{margin-left:auto;font-weight:600}.result.correct .result-verdict{color:var(--correct)}.result.missed .result-verdict{color:var(--incorrect)}.summary-actions{display:flex;gap:.6rem;margin-top:1.25rem;flex-wrap:wrap}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.chapter-completion-title{margin:.35rem 0 0;font-size:clamp(1.5rem,7vw,2.1rem)}.chapter-completion .tone{font-style:italic;font-size:1.15rem;margin:.75rem 0 0}.chapter-completion .fast-track{margin:.35rem 0 0;font-size:.85rem;color:var(--ink-soft)}.chapter-stats{display:flex;gap:1.25rem;margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--rule)}.chapter-stat dt,.chapter-stat dd{margin:0}.chapter-stat .stat-value{font-size:1.6rem}.chapter-stat .stat-caption{font-size:.8rem;color:var(--ink-soft)}.journey{display:flex;flex-direction:column;gap:1.5rem}.journey-title{margin:0;font-size:clamp(1.3rem,5vw,1.6rem)}.journey-error,.journey-loading{margin:0}.journey-footer-link{align-self:flex-start;color:var(--accent);font-size:.85rem}.focus-banner{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem .9rem;text-align:left;background:var(--card);border:1px solid var(--accent);border-radius:3px}.focus-banner-action{font-style:italic;color:var(--accent);font-size:.85rem}.journey-hero{padding:1rem 1.1rem;background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:3px}.hero-top{display:flex;justify-content:space-between;align-items:baseline}.hero-top p{margin:0}.hero-mastery{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.8rem}.hero-title{margin:.35rem 0 0;font-size:clamp(1.4rem,6vw,1.9rem)}.hero-illustration{display:block;width:100%;max-width:100%;height:auto;margin-top:.75rem;border-radius:3px}.hero-supporting,.hero-forecast{font-style:italic;margin:.5rem 0 0}.hero-forecast{font-size:.8rem;color:var(--ink-soft);padding-top:.6rem;border-top:1px solid var(--rule-soft)}.mastery-rail{height:3px;margin:.75rem 0;background:var(--rule-soft);border-radius:2px;overflow:hidden}.mastery-fill{height:100%;background:var(--accent)}.milestone-strip{display:flex;gap:.4rem;list-style:none;margin:0;padding:0}.milestone{flex:1;font-size:.7rem;padding-top:.35rem;border-top:2px solid var(--rule-soft);color:var(--ink-soft)}.milestone.current{border-top-color:var(--accent);color:var(--accent);font-weight:600}.milestone.done{text-decoration:line-through}.journey-section-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.journey-section-head h2{margin:0}.section-subtitle,.section-level{margin:0;font-size:.75rem;font-style:italic;color:var(--ink-soft)}.section-level{margin-left:auto;font-style:normal}.chapter-card{margin-top:.5rem;background:var(--card);border:1px solid var(--rule);border-radius:3px}.chapter-slot+.chapter-slot{border-top:1px solid var(--rule-soft)}.chapter-row{display:flex;align-items:center;gap:.7rem;width:100%;min-height:2.75rem;padding:.7rem .85rem;background:none;border:none;text-align:left;font:inherit;font-weight:400;line-height:1.35;color:inherit}.chapter-index{flex:none;width:1.4rem;font-variant-numeric:tabular-nums;font-size:.7rem;color:var(--ink-soft)}.chapter-name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.chapter-row.state-gap .chapter-name,.chapter-row.state-ahead .chapter-name,.chapter-row.state-placed .chapter-name{color:var(--ink-soft)}.chapter-row.state-current .chapter-name{font-weight:600}.chapter-row.kind-book .chapter-name{font-style:italic}.chapter-trailing{flex:none;font-size:.75rem;font-style:italic;white-space:nowrap;color:var(--ink-soft)}.chapter-row.state-current .chapter-trailing,.chapter-row.state-gap .chapter-trailing,.chapter-row.state-ahead .chapter-trailing{color:var(--accent)}.chevron{flex:none;font-size:.7rem;line-height:1;color:var(--ink-soft)}.chapter-remainder{margin:0;padding:.7rem .85rem;font-size:.75rem;font-style:italic;color:var(--ink-soft);border-top:1px solid var(--rule-soft)}.status-mark{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:2px;font-size:.75rem;line-height:1;border:1px solid var(--rule)}.status-mark.state-done{background:var(--correct);border-color:var(--correct);color:var(--parchment)}.status-mark.state-placed{color:var(--ink-soft)}.status-mark.state-gap{border-color:var(--accent);color:var(--accent)}.status-mark.state-ahead,.status-mark.state-unknown{border-style:dashed}.status-mark.state-current{border-color:transparent;background:linear-gradient(var(--accent),var(--accent)) left / 4px 100% no-repeat}.expanded-units{padding:0 .85rem .85rem 2.5rem}.unit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.unit{display:flex;gap:.6rem;align-items:baseline;font-size:.9rem}.unit.done .unit-label{text-decoration:line-through;color:var(--ink-soft)}.unit.upcoming .unit-label{color:var(--ink-soft);font-style:italic}.unit.current{font-weight:600}.unit.current .unit-glyph{color:var(--accent)}.unit-body{display:flex;flex-direction:column}.unit-supporting{font-size:.75rem;font-style:italic;color:var(--ink-soft)}.unit-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem}.streak-ledger{display:flex;flex-direction:column;gap:1.5rem}.streak-hero{display:flex;align-items:baseline;gap:.6rem;margin:0}.streak-hero-count{font-size:clamp(3rem,18vw,5rem);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}.streak-hero-label,.streak-hero-zero{font-style:italic}.streak-hero-zero{margin:0;font-size:clamp(1.4rem,6vw,2rem);color:var(--accent)}.repair-offer{padding:1rem 1.1rem;border:1px solid var(--accent);border-radius:3px}.repair-offer p{margin:0}.repair-error{margin:0;font-size:.85rem;color:var(--ink-soft)}.streak-stats{display:flex;gap:1.25rem;margin:0}.streak-stat{flex:1}.streak-stat dd{margin:.25rem 0 0}.streak-stat .stat-value{font-size:1.3rem;font-variant-numeric:tabular-nums}.streak-stat .stat-caption{font-size:.75rem;font-style:italic;color:var(--ink-soft)}.streak-calendar{display:grid;gap:4px;max-width:100%}.streak-strip{display:flex;gap:4px;margin-top:.5rem}.streak-tile{display:block;aspect-ratio:1;min-width:14px;border-radius:2px;border:1px solid transparent}.streak-tile.off{border-color:var(--rule)}.streak-tile.frozen{border-color:var(--muted);background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--rule) 3px,var(--rule) 4px)}.streak-tile.active.l1{background:color-mix(in srgb,var(--accent) 22%,var(--card))}.streak-tile.active.l2{background:color-mix(in srgb,var(--accent) 45%,var(--card))}.streak-tile.active.l3{background:color-mix(in srgb,var(--accent) 70%,var(--card))}.streak-tile.active.l4{background:var(--accent)}.streak-legend{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.75rem;color:var(--ink-soft)}.streak-legend .streak-tile{width:12px;min-width:12px}.legend-end,.legend-label{font-style:italic}.footnote{font-size:.75rem;font-style:italic;color:var(--ink-soft)}.streak-link{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;color:inherit;text-decoration:none}.streak-link .see-more{font-size:.7rem;letter-spacing:.16em;color:var(--ink-soft)}.streak-freezes{margin:.25rem 0 0;font-size:.75rem;font-style:italic;color:var(--ink-soft)}.option-set{border:0;padding:0;margin:0 0 1rem}.option-mark{font-size:.8em;opacity:.75}.chip.used{opacity:.4}.sentence,.build-preview{font-size:1.35rem;line-height:1.6;margin:.75rem 0 1rem}.build-preview{text-align:center}.build-ending{font-weight:700}.ending{font-style:normal;font-weight:700;text-decoration:underline;text-underline-offset:.2em}.cloze-gap{padding:0 .35rem;font-weight:700}.translation,.reason-cue,.reference,.form-label,.target-word{margin:.35rem 0;color:var(--ink-soft)}.target-word{font-size:1.1rem}.slot-board{width:100%;border-collapse:collapse;margin:.5rem 0 1rem}.slot-board th{font-size:.8rem;font-weight:600;text-align:left;padding:.25rem .4rem;color:var(--ink-soft)}.slot-board td{padding:.2rem}.slot{width:100%;min-height:3rem;padding:.6rem .4rem;border:1px dashed var(--rule);border-radius:8px;background:var(--card)}.slot.placed{border-style:solid;border-color:var(--accent)}.slot.correct{border-style:solid;background:var(--correct-bg);border-color:var(--correct)}.slot.incorrect{border-style:solid;background:var(--incorrect-bg);border-color:var(--incorrect)}.image-options{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem}.image-option{display:block;width:100%;padding:0;border:2px solid var(--rule);border-radius:10px;overflow:hidden;background:var(--card)}.image-option img{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover}.image-option.selected{border-color:var(--accent)}.image-option.correct{border-color:var(--correct)}.image-option.incorrect{border-color:var(--incorrect)}.stimulus-image{margin:0 0 1rem}.stimulus-image img{display:block;width:100%;max-width:30rem;aspect-ratio:3 / 2;object-fit:cover;border-radius:10px}.diagram-frame{position:relative;width:100%;margin:0 0 1rem}.diagram-frame img{display:block;width:100%;aspect-ratio:2 / 1;object-fit:contain}.hotspot{position:absolute;border:2px solid transparent;border-radius:8px;background:transparent;padding:0}.hotspot.selected{border-color:var(--accent)}.hotspot.correct{border-color:var(--correct)}.hotspot.incorrect{border-color:var(--incorrect)}.assembly{list-style:none;margin:.75rem 0;padding:.6rem;min-height:3.25rem;display:flex;flex-wrap:wrap;gap:.5rem;border-radius:10px;background:var(--bg-alt)}.assembly.correct{background:var(--correct-bg)}.assembly.incorrect{background:var(--incorrect-bg)}.assembly-empty{color:var(--muted)}.progress-fill.indeterminate{width:35%;animation:sweep 1.4s ease-in-out infinite}@keyframes sweep{0%{margin-left:0}50%{margin-left:65%}to{margin-left:0}}@media(prefers-reduced-motion:reduce){.progress-fill.indeterminate{animation:none;width:100%;opacity:.35}}.placement-chapter{font-size:1.75rem;margin:.5rem 0}.rule{border:0;border-top:1px solid var(--rule);margin:1.25rem 0}.axis-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.axis-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.75rem}.axis-band{font-size:.8rem;opacity:.75}.band-meter{display:inline-flex;gap:.2rem}.band-dot{width:.5rem;height:.5rem;border-radius:50%;border:1px solid var(--accent)}.band-dot.filled{background:var(--accent)}.settings-section{margin:0 0 1.75rem}.settings-card{border:1px solid var(--rule);border-radius:10px;background:var(--card)}.settings-row{padding:.75rem .9rem;border-bottom:1px solid var(--rule-soft)}.settings-row:last-child{border-bottom:0}.value-row,.account-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.toggle-label{display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer}.row-title{display:flex;flex-direction:column;font-weight:600}.row-value{opacity:.75}.row-caption{margin:.35rem 0 0;font-size:.8rem;opacity:.7}.row-subhead{margin:0;padding:.75rem .9rem 0;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7}.account-list,.friend-list,.request-list,.suggestion-list,.moment-list,.reactor-list{list-style:none;margin:0;padding:0}.link-button.destructive,.cn-button.destructive,.form-error{color:var(--incorrect)}.faq{margin:.5rem 0 0}.faq dt{font-weight:600;margin-top:.6rem}.faq dd{margin:.2rem 0 0;opacity:.8}.friends-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.badge{display:inline-block;min-width:1.2rem;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:var(--parchment);font-size:.7rem;text-align:center}.friend-row a,.suggestion-row{display:flex;flex-direction:column;gap:.15rem;padding:.7rem 0;border-bottom:1px solid var(--rule-soft);color:inherit;text-decoration:none}.friend-name{font-weight:600}.friend-summary{font-size:.85rem;opacity:.72}.today-dot{margin-left:.35rem;color:var(--accent);font-size:.6rem;vertical-align:middle}.request-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.7rem 0;border-bottom:1px solid var(--rule-soft)}.friend-stats{display:flex;gap:2rem;margin:.5rem 0 1rem}.friend-stats dd{margin:0;font-size:1.5rem}.moment{padding:.7rem 0;border-bottom:1px solid var(--rule-soft)}.moment-title{margin:0;font-weight:600}.moment-subtitle,.moment-chips{margin:.2rem 0 0;font-size:.85rem;opacity:.72}.reaction-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}.reaction-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .55rem;border:1px solid var(--rule);border-radius:999px;background:transparent;font:inherit;cursor:pointer}.reaction-chip.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);font-weight:700}.reaction-chip.legacy{opacity:.6;cursor:default}.reaction-count{font-size:.8rem}.empty-state{padding:2rem 0;text-align:center}.offline-banner{margin:0 0 1rem;padding:.65rem .85rem;border:1px solid var(--rule);border-left-width:4px;border-radius:6px;background:var(--bg-alt);font-size:.875rem}.offline-banner.syncing{border-left-color:var(--accent)}.offline-line{margin:0}.offline-line+.offline-line{margin-top:.35rem}.submission-pending{margin:1rem 0 0;padding:.65rem .85rem;border:1px dashed var(--rule);border-radius:6px;font-size:.875rem;text-align:left}.chapter-recap{margin-top:.75rem;text-align:left;line-height:1.55}.paywall-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:calc(1rem + env(safe-area-inset-top,0px)) calc(1rem + env(safe-area-inset-right,0px)) calc(1rem + env(safe-area-inset-bottom,0px)) calc(1rem + env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--ink) 55%,transparent)}.paywall{width:min(30rem,100%);max-height:100%;overflow-y:auto;padding:1.5rem;border-radius:10px;background:var(--parchment);color:var(--ink);text-align:left}.paywall-title{margin:.35rem 0 1rem;font-size:1.35rem}.paywall-body{margin:0 0 .9rem;line-height:1.55}.paywall-note{margin:0 0 .9rem;font-size:.875rem;opacity:.85}.not-found,.route-error{max-width:32rem}.not-found-bare,.route-error{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;margin:0 auto;padding:1.5rem 1rem}.not-found-title,.route-error-title{margin:.35rem 0 0;font-size:clamp(1.5rem,5vw,1.9rem);line-height:1.2;color:var(--ink)}.not-found-body,.route-error-body{margin:.75rem 0 0;line-height:1.55;color:var(--ink-soft)}.not-found-action,.route-error-action{align-self:flex-start;display:inline-block;text-decoration:none;color:var(--parchment)}.not-found-action:focus-visible,.route-error-action:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media(min-width:48rem){.axis-row{gap:1.25rem}}.lesson-player{display:flex;flex-direction:column;min-height:calc(100dvh - var(--shell-chrome))}.lesson-player>.lesson-step{display:flex;flex-direction:column;flex:1;min-height:0}.lesson-player .question{display:flex;flex-direction:column;flex:1}.question>.cn-button:last-child{margin-top:auto}.question>:nth-last-child(2):has(+.cn-button){margin-bottom:1.75rem}.lesson-player>.progress{gap:.85rem;margin:0 0 1.75rem;padding-bottom:.9rem;border-bottom:1px solid var(--rule-soft)}.lesson-player .progress-track{height:3px;border-radius:0;background:var(--rule-soft)}.lesson-player .progress-fill{background:var(--ink);transition:width .4s ease-out}.lesson-player .progress-label{font-size:.7rem;letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--muted)}@media(prefers-reduced-motion:reduce){.lesson-player .progress-fill{transition:none}}.question .eyebrow{margin:0 0 .45rem;color:var(--muted)}.question .prompt{margin:0 0 .25rem;font-size:clamp(1.15rem,4.8vw,1.4rem);line-height:1.25;letter-spacing:-.01em;font-weight:500}.question .hero,.question .hero-meaning{color:var(--ink)}.question .hero{margin:1.5rem 0 .25rem;line-height:1.05}.question .gloss,.question .post-hint,.question .translation,.question .reason-cue,.question .reference,.question .target-word{color:var(--ink-soft)}.question .field-label{display:block;margin:1.25rem 0 .5rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.question .post-hint{margin-top:1rem;padding:.75rem .9rem;border-left:3px solid var(--rule);background:var(--card);font-size:.95rem}.question .option-set{margin:1.5rem 0 0;padding:0}.question .stimulus-image,.question .passage,.question .sentence{margin-top:1.25rem;margin-bottom:0}.question .diagram-frame{margin-top:1.25rem}.question .options{gap:.55rem}.question .options-stacked{gap:.6rem}.question .options-stacked>li{width:100%}.question .option,.question .chip{display:flex;align-items:center;gap:.6rem;min-height:3.25rem;padding:.8rem 1.05rem;border:1.5px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink);font-size:1rem;line-height:1.35;text-align:left;transition:background-color .15s ease,border-color .15s ease}.question .options-stacked .option{width:100%}.question .chip{min-height:2.9rem;padding:.65rem .95rem}.question .option.selected,.question .chip.selected{border-color:var(--ink);background:var(--bg-alt);font-weight:600}.question .option.correct,.question .chip.correct{border-color:var(--correct);background:var(--correct-bg);color:var(--correct);font-weight:600}.question .option.incorrect,.question .chip.incorrect{border-color:var(--incorrect);background:var(--incorrect-bg);color:var(--incorrect);font-weight:600}.question .option:disabled:not(.correct):not(.incorrect){opacity:.5}.question .toggle-group.locked .option:disabled{opacity:1}.question .option-mark{margin-left:auto;font-size:1.05rem;font-weight:700;line-height:1;opacity:1}.question .option:focus-visible,.question .chip:focus-visible,.question .slot:focus-visible,.question .image-option:focus-visible,.question .cn-button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.question .axes{gap:1.25rem;margin-top:1.5rem}.question .toggle-group .options{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:.4rem}.question .toggle-group .option{position:relative;min-height:2.9rem;padding:.5rem .4rem;justify-content:center;text-align:center;font-size:.85rem;line-height:1.2}.question .toggle-group .option-mark{position:absolute;top:.2rem;right:.3rem;margin-left:0;font-size:.7rem}.question .slot-board{margin:1.25rem 0 0}.question .slot-board th{color:var(--muted);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.question .slot{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:3.25rem;border:1.5px dashed var(--rule);border-radius:3px;background:var(--card);color:var(--ink);font-size:1rem}.question .slot.placed{border-style:solid;border-color:var(--ink);background:var(--bg-alt)}.question .slot.correct{border-style:solid;border-color:var(--correct);background:var(--correct-bg);color:var(--correct)}.question .slot.incorrect{border-style:solid;border-color:var(--incorrect);background:var(--incorrect-bg);color:var(--incorrect)}.question .slot-mark{font-weight:700}.question .image-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1.25rem 0 0}.question .image-option{position:relative;border:1.5px solid var(--rule);border-radius:3px;background:var(--card)}.question .image-option.selected{border-color:var(--ink);border-width:2.5px}.question .image-option.correct{border-color:var(--correct);border-width:2.5px}.question .image-option.incorrect{border-color:var(--incorrect);border-width:2.5px}.question .image-mark{position:absolute;top:.4rem;right:.4rem;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;font-size:1rem;font-weight:700;line-height:1;color:var(--parchment)}.question .image-option.correct .image-mark{background:var(--correct)}.question .image-option.incorrect .image-mark{background:var(--incorrect)}.question .stimulus-image img,.question .diagram-frame img,.question .build-preview,.question .assembly{border-radius:3px}.question .build-preview{margin:1.5rem 0 0;padding:1rem;background:var(--card);border:1px solid var(--rule)}.question .assembly{background:var(--card);border:1px dashed var(--rule)}.question .assembly.correct{border-color:var(--correct);background:var(--correct-bg)}.question .assembly.incorrect{border-color:var(--incorrect);background:var(--incorrect-bg)}.question.read .read-lines{margin-top:1.25rem}.question.read .read-line{margin:0 0 .75rem;font-size:1.25rem;line-height:1.75}.question.read h2{margin:1rem 0 0;font-size:1.5rem;font-weight:500;line-height:1.2}.question .illustration{display:block;width:100%;height:auto;margin-top:1rem;border-radius:3px}.question.read .token.glossed{padding:.05em .15em;border:0;border-radius:3px;background:none;color:var(--ink);font:inherit;line-height:inherit;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:var(--muted);text-decoration-thickness:1px;text-underline-offset:.22em}.question.read .token.glossed.selected{background:var(--bg-alt);color:var(--gold);text-decoration-color:var(--gold);font-weight:600}.question.read .token.glossed:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.question.read .gloss-bar{display:block;min-height:3.25rem;margin:1.25rem 0 0;padding:.85rem 1rem;border-radius:3px;background:var(--card);border:1px solid var(--rule-soft);font-size:1rem;line-height:1.4}.question.read .gloss-word{font-weight:600}.question.read .gloss-dash,.question.read .gloss-hint{color:var(--muted)}.question.read .gloss-meaning{color:var(--ink-soft)}.question.read .gloss-hint{font-size:.9rem}.question.comprehension .passage{padding:1rem;font-size:1.15rem;font-weight:500;line-height:1.55}.question.comprehension .prompt{margin:1.5rem 0 0;font-size:clamp(1.2rem,4.4vw,1.3rem);line-height:1.35;font-weight:500}.question.comprehension .option-set{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--rule-soft)}.question>.cn-button{display:block;width:100%;min-height:3.5rem;margin-top:1.75rem;padding:1.05rem 1.25rem;border-radius:3px;background:var(--ink);color:var(--parchment);font-size:1.05rem;font-weight:600;letter-spacing:.02em;box-shadow:2px 2px 0 var(--rule)}.question>.cn-button.cn-next{background:var(--correct)}.question>.cn-button:disabled,.question>.cn-button[aria-disabled=true]{background:var(--rule-soft);color:var(--muted);box-shadow:none;opacity:1}@media(min-width:40rem){.question .options-stacked{gap:.7rem}.question .image-options{gap:.9rem}}.markdown>*{margin:0}.markdown>*+*{margin-top:1rem}.markdown-image{display:block;width:100%;max-width:100%;height:auto;border-radius:3px;background:var(--bg-alt)}.markdown-list{padding-left:1.2rem;list-style:disc}ol.markdown-list{list-style:decimal}.markdown-list>li+li{margin-top:.4rem}.question .illustration{display:block;width:100%;max-width:100%;height:auto;margin:1rem 0 0;border-radius:3px;background:var(--bg-alt)}.question>.markdown{font-size:1.05rem;line-height:1.5}.question>.markdown+.markdown{margin-top:1.5rem}
