.surface,.glass-card{background:linear-gradient(180deg, color-mix(in srgb, var(--text-strong) 4%, transparent), transparent 42%), var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm), var(--hairline);min-width:0}.surface-quiet{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-width:0}.surface-sunken{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-width:0}.card-featured,.card-activity,.card-media,.card-tile{min-width:0;color:inherit;box-shadow:var(--shadow-sm), var(--hairline)}.card-featured{gap:var(--space-3);padding:var(--pad-card-lg);border-radius:var(--radius-xl);border:1px solid color-mix(in srgb, var(--brand) 42%, var(--border));background:radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--brand) 26%, transparent), transparent 58%), var(--surface);box-shadow:var(--brand-glow), var(--hairline);flex-direction:column;display:flex;overflow:hidden}.card-featured-kicker,.hero-kicker{font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0;text-transform:none;color:var(--text-muted);margin:0}.card-featured-title,.hero-title{font-family:var(--font-display);font-size:clamp(1.75rem, 4.2vw, var(--text-display));font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--text-strong);overflow-wrap:anywhere;margin:0}.card-featured-lede,.hero-lede{max-width:38ch;color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed);margin:0}.hero{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.card-activity{--accent:var(--topic-vocabulary);--accent-soft:var(--topic-vocabulary-soft);gap:var(--space-3);padding:var(--pad-card);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 18%, transparent), transparent 62%), var(--surface);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.card-activity-mark,.card-media-mark{border-radius:var(--radius-sm);background:var(--accent-soft,var(--voice-soft));width:2.5rem;height:2.5rem;color:var(--accent,var(--voice));border:1px solid color-mix(in srgb, var(--accent,var(--voice)) 36%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-strong) 10%, transparent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.card-activity-body,.card-media-body,.card-tile-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.card-activity-title,.card-media-title,.card-tile-title{font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);color:var(--text-strong);overflow-wrap:anywhere;margin:0}.card-activity-meta,.card-media-meta,.card-tile-meta{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-snug);margin:0}.card-media{--accent:var(--voice);--accent-soft:var(--voice-soft);gap:var(--space-3);padding:var(--pad-card-lg);border-radius:var(--radius-xl);border:1px solid color-mix(in srgb, var(--voice) 42%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--voice) 18%, transparent), transparent 48%), var(--surface);flex-direction:column;display:flex}.card-media-row{align-items:center;gap:var(--space-3);min-width:0;display:flex}.card-tile{gap:var(--space-2);padding:var(--space-3) var(--pad-card);border-radius:var(--radius);border:1px solid var(--border-subtle);background:var(--surface-muted);flex-direction:column;display:flex}.card-featured.tappable:hover,.card-activity.tappable:hover,.card-media.tappable:hover,.card-tile.tappable:hover{border-color:color-mix(in srgb, var(--accent,var(--brand)) 58%, var(--border))}.card-featured.tappable:hover{background:radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--brand) 32%, transparent), transparent 58%), var(--surface-hover)}.card-activity.tappable:hover{background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 24%, transparent), transparent 62%), var(--surface-hover)}.card-media.tappable:hover{background:linear-gradient(180deg, color-mix(in srgb, var(--voice) 24%, transparent), transparent 48%), var(--surface-hover)}.card-tile.tappable:hover{background:var(--surface-hover);border-color:var(--border-strong)}.tappable{color:inherit;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform var(--duration-fast) var(--ease), box-shadow var(--duration) var(--ease);text-decoration:none;display:block}.tappable:hover{background:var(--surface-hover);border-color:var(--border-strong)}.tappable:focus-visible{outline:2px solid var(--brand-fg);outline-offset:2px}.tappable:active{transform:translateY(1px)scale(.997)}.page-stack{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.page-intro{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.page-eyebrow{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint);font-weight:700}.page-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);line-height:var(--leading-tight);margin:0}.page-lede{color:var(--text-muted);font-size:var(--text-base);max-width:46ch;margin:0}.section-header{align-items:center;gap:var(--space-3);min-width:0;margin:0 0 var(--space-3);display:flex}.section-header-icon{border-radius:var(--radius-sm);background:var(--accent-soft,var(--surface-strong));width:2.125rem;height:2.125rem;color:var(--accent,var(--text-muted));border:1px solid color-mix(in srgb, var(--accent,var(--border)) 28%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-strong) 8%, transparent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.section-header-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.section-heading{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--text-strong);overflow-wrap:anywhere;margin:0}.section-subheading{font-size:var(--text-xs);color:var(--text-faint)}.section-header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.section-count{min-width:1.5rem;height:1.5rem;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.learning-section{min-width:0;scroll-margin-top:calc(var(--header-height) + 3.5rem);flex-direction:column;display:flex}.divider{height:1px;margin:var(--space-4) 0;background:linear-gradient(90deg, var(--border), transparent);border:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-5);border-radius:var(--radius-pill);font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;max-width:100%;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease), transform var(--duration-fast) var(--ease);border:1px solid #0000;font-family:inherit;text-decoration:none;display:inline-flex}.btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg, var(--brand-strong), var(--brand));color:var(--on-brand);box-shadow:var(--brand-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg, var(--brand-strong), var(--brand));filter:brightness(1.06)}.btn-primary:active:not(:disabled){background:var(--brand);filter:brightness(.94)}.btn-voice{background:linear-gradient(180deg, var(--voice-strong), var(--voice));color:var(--on-voice);box-shadow:0 8px 22px color-mix(in srgb, var(--voice) 34%, transparent)}.btn-voice:hover:not(:disabled){filter:brightness(1.06)}.btn-voice:active:not(:disabled){filter:brightness(.94)}.btn-secondary{background:var(--surface-strong);border-color:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-hover)}.btn-ghost{border-color:var(--border);color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--brand-fg);color:var(--brand-fg)}.btn-quiet{color:var(--text-muted);padding:0 var(--space-3);background:0 0;border-color:#0000}.btn-quiet:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-sm{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-block{width:100%}.icon-button{width:var(--touch);height:var(--touch);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-strong);color:var(--text-muted);cursor:pointer;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover:not(:disabled){border-color:var(--brand-fg);color:var(--brand-fg)}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button-sm{width:2.25rem;height:2.25rem}.icon{flex-shrink:0;display:block}.badge{align-items:center;gap:var(--space-1);padding:.2rem var(--space-2);border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.04em;white-space:nowrap;overflow-wrap:anywhere;border:1px solid #0000;max-width:100%;display:inline-flex}.badge-accent{background:var(--accent-soft,var(--surface-strong));color:var(--accent,var(--text));border-color:color-mix(in srgb, var(--accent,var(--border)) 26%, transparent)}.badge-uppercase{text-transform:uppercase;letter-spacing:var(--tracking-wide)}.badge-success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.badge-warning{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.badge-neutral{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border)}.badge-brand{background:var(--brand-soft);color:var(--brand-fg);border-color:color-mix(in srgb, var(--brand) 36%, transparent)}.chip-row{gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.chip-scroller{gap:var(--space-2);scrollbar-width:none;scroll-snap-type:x proximity;margin:0;padding-bottom:.15rem;list-style:none;display:flex;overflow-x:auto}.chip-scroller::-webkit-scrollbar{display:none}.chip-scroller>*{scroll-snap-align:start;flex:none}.chip{align-items:center;gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-muted);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);font-weight:600;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip[aria-current=true],.chip-selected{background:color-mix(in srgb, var(--brand) 16%, transparent);border-color:color-mix(in srgb, var(--brand) 45%, transparent);color:var(--brand-strong)}.chip-count{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-faint)}.chip[aria-current=true] .chip-count,.chip-selected .chip-count{color:inherit}.marker{border-radius:var(--radius-xs);background:var(--brand-soft);width:2rem;height:2rem;color:var(--brand-fg);border:1px solid color-mix(in srgb, var(--brand) 26%, transparent);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.marker-sm{width:1.65rem;height:1.65rem;font-size:var(--text-xs)}.marker-complete{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.progress-bar{border-radius:var(--radius-pill);background:var(--surface-strong);width:100%;height:6px;display:block;overflow:hidden}.progress-bar-slim{height:4px}.progress-bar-fill{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--progress), var(--progress-strong));height:100%;transition:width var(--duration-slow) var(--ease);display:block}.progress-bar-fill-success{background:linear-gradient(90deg, var(--success-border), var(--success))}.progress-ring{flex-shrink:0;display:block;transform:rotate(-90deg)}.progress-ring-track{stroke:var(--surface-strong)}.progress-ring-value{stroke:var(--progress);stroke-linecap:round;transition:stroke-dashoffset var(--duration) var(--ease)}.progress-ring-complete .progress-ring-value{stroke:var(--success)}.progress-ring-wrap{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.progress-ring-label{font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--text-muted);justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.progress-ring-complete+.progress-ring-label,.progress-ring-wrap-complete .progress-ring-label{color:var(--success)}.metric-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));display:grid}.metric{gap:var(--space-2);padding:var(--space-4);flex-direction:column;min-width:0;display:flex}.metric-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.metric-value{font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--text-strong);overflow-wrap:anywhere;font-weight:700;line-height:var(--leading-tight)}.metric-detail{font-size:var(--text-xs);color:var(--text-muted)}.page-state{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center;color:var(--text-muted);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--hairline);flex-direction:column;display:flex}.page-state p{max-width:44ch;margin:0}.page-state-icon{border-radius:var(--radius-pill);width:3rem;height:3rem;margin-bottom:var(--space-1);background:var(--surface-strong);color:var(--text-muted);border:1px solid var(--border);justify-content:center;align-items:center;display:inline-flex}.page-state-error .page-state-icon{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.page-state-loading .page-state-icon{background:var(--surface-strong);color:var(--text-muted);border-color:var(--border)}.page-state-message{font-size:var(--text-md);color:var(--text);font-weight:600}.page-error-detail,.page-empty-detail{font-size:var(--text-sm);color:var(--text-faint);overflow-wrap:anywhere;margin:0}.page-state-actions{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;justify-content:center;display:flex}.inline-state{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px dashed var(--border);color:var(--text-muted);font-size:var(--text-base);min-width:0;display:flex}.inline-state p{margin:0}.inline-state-stack{align-items:flex-start;gap:var(--space-2);flex-direction:column}.inline-state-error{border-style:solid;border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--info-soft);border:1px solid var(--info-border);color:var(--text);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.notice-warning{background:var(--warning-soft);border-color:var(--warning-border)}.notice-error{background:var(--danger-soft);border-color:var(--danger-border)}.status-spinner,.audio-spinner{border:2px solid color-mix(in srgb, var(--brand-fg) 25%, transparent);border-top-color:var(--brand-fg);border-radius:var(--radius-pill);flex-shrink:0;width:1.1rem;height:1.1rem;animation:.7s linear infinite audio-spin;display:inline-block}@keyframes audio-spin{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{50%{opacity:.45}}.skeleton{border-radius:var(--radius-xs);background:linear-gradient(90deg, var(--surface-muted), var(--surface-hover), var(--surface-muted));animation:skeleton-pulse 1.4s var(--ease) infinite;background-size:200% 100%;display:block}.skeleton-stack{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.skeleton-card{padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.card-grid{gap:var(--space-3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.card-grid-2{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}.card-grid-tiles{grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr))}.stack{gap:var(--space-3);flex-direction:column;min-width:0;margin:0;padding:0;list-style:none;display:flex}.stack-tight{gap:var(--space-2)}.stack-loose{gap:var(--space-5)}.row{align-items:center;gap:var(--space-3);min-width:0;display:flex}.row-wrap{flex-wrap:wrap}.push-end{margin-left:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-muted{color:var(--text-muted)}.eyebrow{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.disclosure>summary,.disclosure-summary{align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer;color:var(--text);border-radius:var(--radius-xs);font-weight:600;list-style:none;display:flex}.disclosure>summary::-webkit-details-marker{display:none}.disclosure-summary::-webkit-details-marker{display:none}.disclosure-chevron{width:1.1rem;color:var(--text-faint);transition:transform var(--duration) var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.disclosure-chevron:empty:before{content:"▸";font-size:.8rem}details[open]>.disclosure-chevron,details[open]>summary .disclosure-chevron,details[open]>.progress-level-summary .disclosure-chevron{transform:rotate(90deg)}.skip-link{left:var(--space-3);top:var(--space-2);z-index:100;background:var(--brand);color:var(--on-brand);padding:var(--space-2) var(--space-4);border-radius:var(--radius-xs);font-weight:700;text-decoration:none;position:absolute;transform:translateY(-250%)}.skip-link:focus{transform:none}.is-pressed,.motion-press:active{transform:translateY(1px)scale(.98)}.is-learning{border-color:color-mix(in srgb, var(--accent,var(--voice)) 62%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent,var(--voice)) 36%, transparent), var(--shadow-sm)}.is-progress{--accent:var(--progress);--accent-soft:var(--progress-soft);border-color:color-mix(in srgb, var(--progress) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--progress) 32%, transparent), var(--shadow-sm)}.is-speaking{--accent:var(--voice);--accent-soft:var(--voice-soft);border-color:color-mix(in srgb, var(--voice) 62%, var(--border))}@keyframes motion-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes emphasis-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent,var(--voice)) 0%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent,var(--voice)) 28%, transparent)}}.motion-enter{animation:motion-enter var(--duration-slow) var(--ease) both}.motion-press{transition:transform var(--duration-fast) var(--ease)}.motion-emphasis,.card-media.is-speaking,.card-activity.is-speaking,.card-activity.is-progress,.btn.is-speaking{animation:emphasis-pulse 1.6s var(--ease) infinite}.app-shell{flex-direction:column;min-width:0;min-height:100dvh;display:flex;overflow-x:clip}.app-header{z-index:20;align-items:center;gap:var(--space-3);min-height:var(--header-height);padding:var(--space-2) var(--shell-gutter);padding-top:max(var(--space-2), env(safe-area-inset-top));padding-left:max(var(--shell-gutter), env(safe-area-inset-left));padding-right:max(var(--shell-gutter), env(safe-area-inset-right));background:color-mix(in srgb, var(--canvas-raised) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle);display:flex;position:sticky;top:0}.app-brand{align-items:center;gap:var(--space-2);min-width:0;font-weight:700;font-size:var(--text-md);letter-spacing:var(--tracking-tight);color:var(--text-strong);text-decoration:none;display:inline-flex}.app-brand-mark{border-radius:var(--radius-xs);background:var(--brand);width:1.85rem;height:1.85rem;color:var(--on-brand);box-shadow:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-brand-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.ui-sound{position:relative}.ui-sound>summary{list-style:none}.ui-sound>summary::-webkit-details-marker{display:none}.ui-sound[data-enabled=false]>summary{opacity:.55}.header-ui-sound-trigger{border-color:color-mix(in srgb, var(--border) 70%, var(--text-faint))}.header-ui-sound-trigger:hover:not(:disabled){border-color:color-mix(in srgb, var(--brand-fg) 55%, var(--border));color:var(--text)}.header-ui-sound[open]>.header-ui-sound-trigger{border-color:var(--brand-fg);color:var(--brand-fg);background:color-mix(in srgb, var(--brand-fg) 8%, var(--surface-strong))}.header-voice-link{border-color:color-mix(in srgb, var(--journey-cream,#f3efd4) 22%, var(--border))}.header-voice-link:hover:not(:disabled){border-color:color-mix(in srgb, var(--journey-cream,#f3efd4) 45%, var(--brand-fg));color:var(--journey-cream,#f3efd4)}.header-voice-link.active{border-color:color-mix(in srgb, var(--journey-cream,#f3efd4) 55%, var(--border-strong));color:var(--journey-cream,#f3efd4);background:color-mix(in srgb, var(--journey-cream,#f3efd4) 10%, var(--surface-strong))}.ui-sound-panel{z-index:30;width:11rem;color:var(--text);font-size:var(--text-sm);background:#17171b;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;gap:.65rem;padding:.8rem;display:flex;position:absolute;top:calc(100% + .45rem);right:0;box-shadow:0 12px 32px #00000073}.ui-sound-panel-title{font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);margin:0;font-weight:700}.ui-sound-toggle,.ui-sound-volume{align-items:center;gap:.45rem;display:flex}.ui-sound-volume{flex-direction:column;align-items:stretch}.ui-sound-volume input{accent-color:#f3efd4;width:100%}.app-body{width:100%;min-width:0;max-width:var(--content-width-wide);gap:var(--space-6);padding-left:max(0px, env(safe-area-inset-left));padding-right:max(0px, env(safe-area-inset-right));flex:1;margin:0 auto;display:flex}.app-main{min-width:0;padding:var(--space-5) var(--shell-gutter) var(--space-8);width:100%;max-width:var(--content-width);flex:1;margin:0 auto}.app-main:has(.auth-page){max-width:none;padding:0}.app-main:has(.layout-wide){max-width:none}.app-rail{display:none}.app-tabbar{z-index:20;gap:var(--space-1);padding:var(--space-1) var(--space-2);padding-bottom:max(var(--space-1), env(safe-area-inset-bottom));background:color-mix(in srgb, var(--canvas-raised) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border-subtle);display:flex;position:sticky;bottom:0}.app-tab{min-width:0;min-height:var(--touch);padding:var(--space-2) .15rem;border-radius:var(--radius-sm);color:var(--text-faint);font-size:var(--text-2xs);transition:color var(--duration) var(--ease), background-color var(--duration) var(--ease);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:.15rem;font-weight:700;text-decoration:none;display:inline-flex}.app-tab-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.app-tab:hover{color:var(--text-muted)}.app-tab.active{color:var(--brand-strong);background:color-mix(in srgb, var(--brand) 16%, transparent)}.app-tab.active .icon{filter:none}@media (width>=900px){.app-tabbar{display:none}.app-body{gap:var(--space-7);padding-top:var(--space-6)}.app-rail{top:calc(var(--header-height) + var(--space-6));width:var(--rail-width);flex:0 0 var(--rail-width);padding-left:var(--space-4);max-height:calc(100dvh - var(--header-height) - var(--space-8));align-self:flex-start;display:block;position:sticky;overflow-y:auto}.app-rail-nav{flex-direction:column;gap:.15rem;display:flex}.app-rail-group-label{padding:var(--space-3) var(--space-3) var(--space-1);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.app-rail-link{align-items:center;gap:var(--space-3);min-height:2.6rem;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-base);transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);font-weight:600;text-decoration:none;display:flex}.app-rail-link:hover{background:var(--surface-muted);color:var(--text)}.app-rail-link.active{background:color-mix(in srgb, var(--brand) 16%, transparent);color:var(--brand-strong)}.app-rail-link .icon{flex-shrink:0}.app-main{padding:0 var(--space-5) var(--space-9);margin:0}}@media (width>=1180px){:root{--shell-gutter:1.5rem}}.breadcrumb{align-items:center;gap:var(--space-1);scrollbar-width:none;min-width:0;margin-bottom:var(--space-4);font-size:var(--text-sm);display:flex;overflow-x:auto}.breadcrumb::-webkit-scrollbar{display:none}.breadcrumb-link{align-items:center;gap:var(--space-1);padding:.3rem var(--space-2);border-radius:var(--radius-xs);color:var(--text-muted);white-space:nowrap;transition:color var(--duration) var(--ease), background-color var(--duration) var(--ease);flex-shrink:0;font-weight:600;text-decoration:none;display:inline-flex}.breadcrumb-link:hover{color:var(--brand-fg);background:var(--surface-muted)}.breadcrumb-current{padding:.3rem var(--space-2);color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.breadcrumb-separator{color:var(--border-strong);flex-shrink:0}.back-link{align-items:center;gap:var(--space-1);min-height:var(--touch);padding:0 var(--space-2) 0 0;color:var(--text-muted);font-size:var(--text-base);cursor:pointer;background:0 0;border:0;font-family:inherit;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover,.back-link:focus-visible{color:var(--brand-fg)}button.back-link{cursor:pointer;font:inherit;background:0 0;border:0;font-weight:600}.auth-page{min-height:100dvh;padding:var(--space-6) var(--space-4) var(--space-8);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:24.5rem;padding:var(--space-7) var(--space-6);border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg), var(--hairline)}.auth-brand{width:2.75rem;height:2.75rem;margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--brand);color:var(--on-brand);box-shadow:none;justify-content:center;align-items:center;display:inline-flex}.auth-card h1{margin:0 0 var(--space-1);font-size:var(--text-2xl);letter-spacing:var(--tracking-tighter)}.auth-subtitle{margin:0 0 var(--space-6);color:var(--text-muted);font-size:var(--text-base)}.auth-warning{margin-bottom:var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--warning-soft);border:1px solid var(--warning-border);color:var(--warning);font-size:var(--text-sm)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-form label{gap:var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);flex-direction:column;font-weight:700;display:flex}.auth-form input{width:100%;min-height:var(--touch);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);font-size:var(--text-md);transition:border-color var(--duration) var(--ease)}.auth-form input:focus{border-color:color-mix(in srgb, var(--brand) 55%, var(--border))}.auth-form button[type=submit]{margin-top:var(--space-1);border-radius:var(--radius-sm);background:var(--brand);min-height:2.9rem;color:var(--on-brand);font-weight:700;font-size:var(--text-md);cursor:pointer;box-shadow:var(--brand-glow);border:none;font-family:inherit}.auth-form button[type=submit]:hover:not(:disabled){background:var(--brand-strong)}.auth-form button[type=submit]:disabled{opacity:.55;cursor:not-allowed}.auth-error,.auth-info{font-size:var(--text-sm);margin:0}.auth-error{color:var(--danger)}.auth-info{color:var(--success)}.auth-switch{width:100%;min-height:var(--touch);margin-top:var(--space-4);color:var(--brand-fg);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;font-family:inherit;font-weight:600}.auth-switch:hover{text-decoration:underline}:root{--level-0-accent:#7ea8bf;--level-0-strong:#d5e6f0;--level-0-muted:#24343c;--level-1-accent:#8fb59a;--level-1-strong:#d7e6da;--level-1-muted:#24362c;--level-2-accent:#b3a4c9;--level-2-strong:#e4dced;--level-2-muted:#322a3a;--level-3-accent:#c9b48f;--level-3-strong:#efe4cf;--level-3-muted:#3a3428;--journey-cream:var(--brand);--journey-cream-strong:var(--brand-strong);--journey-ink:var(--on-brand);--journey-card:var(--surface);--journey-muted:var(--text-muted)}.course-page,.lesson-page,.today-page{flex-direction:column;gap:1.35rem;width:min(100%,36rem);min-width:0;margin-inline:auto;display:flex}[data-level="0"]{--level-accent:var(--level-0-accent);--level-strong:var(--level-0-strong);--level-muted:var(--level-0-muted)}[data-level="1"]{--level-accent:var(--level-1-accent);--level-strong:var(--level-1-strong);--level-muted:var(--level-1-muted)}[data-level="2"]{--level-accent:var(--level-2-accent);--level-strong:var(--level-2-strong);--level-muted:var(--level-2-muted)}[data-level="3"]{--level-accent:var(--level-3-accent);--level-strong:var(--level-3-strong);--level-muted:var(--level-3-muted)}.journey-hello{align-items:center;gap:.85rem;min-width:0;display:flex}.journey-avatar{width:2.85rem;height:2.85rem;color:var(--journey-cream-strong);background:#2a2a31;border-radius:50%;flex:none;place-items:center;font-size:1.05rem;font-weight:700;display:grid}.journey-hello-text{flex-direction:column;gap:.05rem;min-width:0;display:flex}.journey-hello-line{color:#f7f4ea;margin:0;font-size:.98rem;line-height:1.2}.journey-hello-name{color:var(--text-strong);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:1.45rem;font-weight:700;line-height:1.15}.journey-segment{grid-template-columns:1fr 1fr;gap:.7rem;min-width:0;display:grid}.journey-segment-pill{color:#f6f3ec;letter-spacing:-.01em;background:#1a1a1f;border:1px solid #ffffff0d;border-radius:999px;justify-content:center;align-items:center;min-height:3.15rem;padding:.45rem .75rem;font-size:1rem;font-weight:600;text-decoration:none;display:flex}.journey-segment-pill.is-selected{background:var(--journey-cream);color:var(--journey-ink);border-color:#0000}.journey-segment-pill:focus-visible,.journey-title-link:focus-visible,.journey-pill:focus-visible,.journey-card:focus-visible,.journey-quiet:focus-visible{outline:2px solid var(--journey-cream);outline-offset:3px}.journey-card{position:relative}.journey-card-hit{z-index:0;border-radius:inherit;position:absolute;inset:0}.journey-card-copy,.journey-card .journey-well{z-index:1;pointer-events:none;position:relative}.journey-card .pron-button{z-index:2;pointer-events:auto;position:relative}.journey-card:has(.journey-card-hit:focus-visible){outline:2px solid var(--journey-cream);outline-offset:3px}.journey-card-hit:focus-visible{outline:none}.journey-feature,.journey-card{background:var(--journey-card);min-width:0;color:inherit;border:1px solid #ffffff0d;border-radius:1.85rem;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);align-items:stretch;gap:.45rem;padding:.7rem;text-decoration:none;display:grid;overflow:hidden}.journey-feature{min-height:21rem}.journey-card{min-height:13rem}.journey-card-now{border-color:color-mix(in srgb, var(--journey-cream) 55%, transparent);min-height:13rem}.journey-feature-copy,.journey-card-copy{flex-direction:column;align-items:flex-start;gap:.4rem;min-width:0;padding:.55rem .15rem .45rem .55rem;display:flex}.journey-feature-copy{gap:.5rem;padding:.85rem .2rem .7rem .7rem}.journey-kicker{color:var(--journey-muted);align-items:center;gap:.4rem;margin:0;font-size:.84rem;font-weight:600;line-height:1.3;display:inline-flex}.level-swatch,.level-state{border-radius:50%;flex:none;width:.5rem;height:.5rem}.level-swatch{background:var(--level-accent,var(--journey-cream))}.level-state{border:1.5px solid color-mix(in srgb, var(--level-accent,var(--journey-muted)) 50%, transparent);background:var(--level-muted,transparent)}[data-state=now] .level-state{border-color:var(--level-accent);background:var(--level-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--level-accent) 28%, transparent)}[data-state=done] .level-state{border-color:var(--level-strong);background:color-mix(in srgb, var(--level-strong) 72%, transparent);box-shadow:none}[data-state=ahead] .journey-well,[data-state=ahead].journey-well{background-color:var(--level-muted,#1a1816);background-image:none}[data-state=now] .journey-well{background-color:var(--level-muted,#1a1816);background-image:radial-gradient(120% 95% at 50% 0%, var(--level-accent) 0%, var(--level-muted) 52%, #141416 100%)}[data-state=done] .journey-well{background-color:#1a1816;background-image:radial-gradient(120% 95% at 50% 0%, color-mix(in srgb, var(--level-strong) 55%, #1a1816) 0%, var(--level-muted) 58%, #141416 100%)}[data-state=now].journey-feature,[data-state=now].journey-card,.journey-card[data-state=now],.today-session-bar[data-state=now]{border-color:color-mix(in srgb, var(--level-accent) 62%, transparent)}[data-state=done].journey-feature,[data-state=done].journey-card,.journey-card[data-state=done],.today-session-bar[data-state=done]{border-color:color-mix(in srgb, var(--level-accent) 24%, transparent)}[data-state=ahead].journey-feature,[data-state=ahead].journey-card,.journey-card[data-state=ahead],.today-session-bar[data-state=ahead]{border-color:color-mix(in srgb, var(--level-muted) 80%, #000)}[data-state=now] .journey-kicker{color:var(--level-strong)}[data-level] [data-state=ahead] .progress-bar-fill,[data-level][data-state=ahead] .progress-bar-fill{background:color-mix(in srgb, var(--level-accent) 42%, #2a2a30)}[data-level] [data-state=now] .progress-bar-fill,[data-level][data-state=now] .progress-bar-fill{background:var(--level-accent)}[data-level] [data-state=done] .progress-bar-fill,[data-level][data-state=done] .progress-bar-fill{background:color-mix(in srgb, var(--level-strong) 80%, var(--level-accent))}[data-level] .progress-ring-value{stroke:var(--level-accent)}[data-level][data-state=done] .progress-ring-value,[data-level] [data-state=done] .progress-ring-value{stroke:var(--level-strong)}.badge-level{background:var(--level-muted,var(--surface-strong));color:var(--level-strong,var(--text));border-color:color-mix(in srgb, var(--level-accent,var(--border)) 45%, transparent)}[data-level] .marker{background:var(--level-muted);color:var(--level-strong);border-color:color-mix(in srgb, var(--level-accent) 40%, transparent)}.journey-title,.journey-card-title,.journey-title-link{color:var(--text-strong);letter-spacing:-.035em;overflow-wrap:anywhere;margin:0;font-weight:700;line-height:1.05}.journey-title,.journey-title-link{font-size:clamp(2.2rem,6.4vw,3.05rem);font-weight:800}.journey-title-link{color:inherit;text-decoration:none}.journey-title-link:hover{text-underline-offset:.12em;text-decoration:underline}.journey-card-title{font-size:clamp(1.35rem,4.6vw,1.7rem)}.journey-byline{color:var(--journey-muted);overflow-wrap:anywhere;margin:0;font-size:.92rem;line-height:1.35}.journey-progress{flex-direction:column;gap:.4rem;width:100%;min-width:0;margin-top:.15rem;display:flex}.course-page .progress-bar,.lesson-page .progress-bar,.today-page .progress-bar{background:#ffffff14;height:.35rem}.course-page .progress-bar-fill,.lesson-page .progress-bar-fill,.today-page .progress-bar-fill{background:var(--journey-cream)}[data-level] .progress-bar-fill,[data-level] .practice-progress-fill{background:var(--level-accent)}.journey-pill{background:var(--journey-cream-strong);width:fit-content;max-width:100%;min-height:2.35rem;color:var(--journey-ink);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;margin-top:auto;padding:.4rem 1.05rem;font-family:inherit;font-size:.92rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.journey-pill-secondary{color:#f6f3ec;background:#1a1a1f;border:1px solid #ffffff14}.journey-quiet{color:var(--journey-muted);font-size:.84rem;font-weight:600;text-decoration:none}.journey-quiet:hover{color:var(--text-strong)}.journey-well{background-color:var(--level-muted,#1a1816);background-image:radial-gradient(120% 95% at 50% 0%, var(--level-accent,#3a3834) 0%, var(--level-muted,#2a2824) 46%, #141416 100%);border-radius:1.35rem;place-items:center;min-width:0;min-height:0;margin:0;display:grid}.journey-well-mark{color:#f3efd4f0;letter-spacing:-.04em;margin:0;font-size:2.6rem;font-weight:800;line-height:1}.journey-feature .journey-well-mark{font-size:3.4rem}.journey-level{flex-direction:column;gap:.85rem;min-width:0;display:flex}.journey-level-title{color:var(--text-strong);letter-spacing:-.03em;margin:0;font-size:1.2rem;font-weight:700;line-height:1.2}.plan-path,.plan-lessons,.study-parts{flex-direction:column;gap:.85rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.plan-fold{background:#121216;border:1px solid #ffffff0d;border-radius:1.4rem;min-width:0}.plan-fold>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;min-height:3.4rem;padding:.85rem 1.05rem;list-style:none;display:flex}.plan-fold>summary::-webkit-details-marker{display:none}.plan-fold>summary:focus-visible{outline:2px solid var(--journey-cream);outline-offset:2px;border-radius:1.2rem}.plan-level-copy{flex-direction:column;gap:.15rem;min-width:0;display:flex}.plan-level-title{color:var(--text-strong);letter-spacing:-.02em;align-items:center;gap:.45rem;font-weight:700;display:inline-flex}.plan-level-meta{color:var(--journey-muted);margin:0;font-size:.84rem}.plan-fold>.plan-path{padding:0 .75rem .85rem}.journey-card-done{background:#121216}.journey-card-done .journey-card-title{color:#f3efe6}.journey-card-review .journey-well{background:radial-gradient(90% 78% at 50% 16%, color-mix(in srgb, var(--review) 62%, #2a241e) 0%, #1a1520 70%);place-items:center}.journey-card-review .journey-well-mark{margin:0}.study-stage{flex-direction:column;gap:1.15rem;width:min(100%,36rem);min-width:0;margin-inline:auto;display:flex}.study-section-title{letter-spacing:-.02em;margin:.2rem 0 0;font-size:1.05rem;font-weight:700}.study-section-note{color:var(--journey-muted);margin:-.55rem 0 0;font-size:.88rem}.course-progress-unavailable{margin:0}@media (width<=380px){.journey-feature,.journey-card{grid-template-columns:minmax(0,1fr)}.journey-well{min-height:8.5rem}}.today-session-bar,.today-summary-card{background:var(--journey-card);border:1px solid #ffffff0d;border-radius:1.85rem;flex-direction:column;align-items:flex-start;gap:.75rem;min-width:0;padding:1rem 1.05rem 1.1rem;display:flex}.today-summary-card{align-items:stretch;gap:.85rem}.today-back{cursor:pointer;min-height:2.25rem;font:inherit;background:0 0;border:0;align-items:center;gap:.2rem;padding:0;display:inline-flex}.today-queue-card{min-height:8.75rem}.today-practice-card{grid-template-columns:minmax(0,1fr);min-height:0}.today-page .today-actions{margin-top:auto}.today-page .today-actions .journey-pill{margin-top:0}.continue-card{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--brand) 38%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--brand) 18%, transparent), transparent 60%), var(--surface);box-shadow:var(--shadow), var(--hairline);color:inherit;transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease), transform var(--duration-fast) var(--ease);grid-template-columns:1fr auto;text-decoration:none;display:grid;position:relative;overflow:hidden}.continue-card:hover,.continue-card:focus-visible{border-color:var(--brand-strong);box-shadow:var(--shadow-hover), var(--hairline)}.continue-card:focus-visible{outline:2px solid var(--brand-fg);outline-offset:2px}.continue-card:active{transform:translateY(1px)}.continue-card-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.continue-card-eyebrow{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:700;display:inline-flex}.continue-card-title{font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text-strong);font-weight:700;line-height:var(--leading-snug);overflow-wrap:anywhere}.continue-card-meta{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;min-width:0;display:flex}.continue-card-meta-dot{color:var(--border-strong)}.continue-card-action{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:var(--text-base);white-space:nowrap;box-shadow:var(--brand-glow);display:inline-flex}@media (width<=560px){.continue-card{grid-template-columns:1fr}.continue-card-action{width:100%}}.study-hero{gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:linear-gradient(150deg, color-mix(in srgb, var(--level-accent,var(--text-strong)) 14%, transparent), transparent 55%), var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm), var(--hairline);flex-direction:column;min-width:0;display:flex}.study-hero-compact{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius)}.study-hero-compact .study-hero-title{font-size:var(--text-xl)}.study-hero-context{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.study-hero-context-label{color:var(--text-muted);font-size:var(--text-sm);overflow-wrap:anywhere;min-width:0}.study-hero-titles{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.study-hero-kicker{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--level-strong,var(--text-faint));font-weight:700}.study-hero-title{font-size:var(--text-2xl);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight);overflow-wrap:anywhere;margin:0}.study-hero-description{color:var(--text-muted);font-size:var(--text-base);line-height:var(--leading-normal);overflow-wrap:anywhere;max-width:60ch;margin:0}.study-hero-progress{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-subtle);min-width:0;display:flex}.study-hero-progress-body{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.study-hero-progress-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.study-hero-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}@media (width<=560px){.study-hero-actions{flex-direction:column;align-items:stretch}.study-hero-actions>.btn{width:100%}}.lesson-page,.part-page,.part-layout{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.part-content{gap:var(--space-7);flex-direction:column;min-width:0;display:flex}.part-aside{display:none}@media (width>=1100px){.part-layout-split{align-items:start;gap:var(--space-7);grid-template-columns:minmax(0,1fr) 17rem;display:grid}.part-aside{gap:var(--space-3);top:calc(var(--header-height) + var(--space-5));flex-direction:column;min-width:0;display:flex;position:sticky}}.part-aside-card{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.part-aside-title{margin:0 0 var(--space-1);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.part-aside-nav{flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none;display:flex}.part-aside-link{align-items:center;gap:var(--space-2);min-height:2.3rem;padding:0 var(--space-2);border-radius:var(--radius-xs);color:var(--text-muted);font-size:var(--text-sm);transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);font-weight:600;text-decoration:none;display:flex}.part-aside-link:hover{background:var(--surface-muted);color:var(--text)}.part-aside-link .icon{color:var(--accent,var(--text-faint));flex-shrink:0}.part-aside-link-count{font-size:var(--text-xs);color:var(--text-faint);font-variant-numeric:tabular-nums;margin-left:auto}.part-jumpbar{top:var(--header-height);z-index:10;margin:0 calc(-1 * var(--shell-gutter));padding:var(--space-2) var(--shell-gutter);background:color-mix(in srgb, var(--canvas) 90%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);position:sticky}@media (width>=1100px){.part-layout-split .part-jumpbar{display:none}}.part-jumpbar .chip .icon{color:var(--accent,currentColor)}.part-pager{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.pager-link{min-height:4.25rem;padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);color:inherit;min-width:0;transition:border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);flex-direction:column;gap:.2rem;text-decoration:none;display:flex}.pager-link:not(.pager-disabled):hover{border-color:var(--border-strong);background:var(--surface-hover)}.pager-link:focus-visible{outline:2px solid var(--brand-fg);outline-offset:2px}.pager-next{text-align:right;align-items:flex-end}.pager-disabled{opacity:.45}.pager-label{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700;display:inline-flex}.pager-disabled .pager-label{color:var(--text-faint)}.pager-title{font-size:var(--text-sm);color:var(--text);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width<=520px){.part-pager{grid-template-columns:1fr}.pager-next{text-align:left;align-items:flex-start}}.shadowing-surface{gap:var(--space-6);padding:var(--space-7) var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm), var(--hairline);flex-direction:column;max-width:44rem;display:flex}.shadowing-position{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);margin:0;font-weight:700}.shadowing-line{font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--text-strong);overflow-wrap:anywhere;margin:0}.shadowing-nav{gap:var(--space-3);flex-wrap:wrap;display:flex}@media (width>=768px){.shadowing-line{font-size:var(--text-3xl)}}.learning-section-vocabulary{--accent:var(--topic-vocabulary);--accent-soft:var(--topic-vocabulary-soft)}.learning-section-expression{--accent:var(--topic-expression);--accent-soft:var(--topic-expression-soft)}.learning-section-grammar{--accent:var(--topic-grammar);--accent-soft:var(--topic-grammar-soft)}.learning-section-pattern{--accent:var(--topic-pattern);--accent-soft:var(--topic-pattern-soft)}.learning-section-conversation{--accent:var(--topic-conversation);--accent-soft:var(--topic-conversation-soft)}.learning-section-extra{--accent:var(--topic-extra);--accent-soft:var(--topic-extra-soft)}.learning-section-audio{--accent:var(--topic-audio);--accent-soft:var(--topic-audio-soft)}.learning-section-source{--accent:var(--topic-source);--accent-soft:var(--topic-source-soft)}.learning-section-lede{margin:calc(-1 * var(--space-1)) 0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-snug);max-width:58ch}.vocab-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));margin:0;padding:0;list-style:none;display:grid}.vocab-tile{gap:var(--space-2);height:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);min-width:0;transition:border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);flex-direction:column;display:flex}.vocab-tile:hover,.vocab-tile:focus-within{border-color:color-mix(in srgb, var(--accent) 38%, var(--border));background:var(--surface-hover)}.vocab-tile-head{align-items:flex-start;gap:var(--space-2);min-width:0;display:flex}.vocab-term{min-width:0;font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text-strong);font-weight:700;line-height:var(--leading-tight);overflow-wrap:anywhere;flex:1}.vocab-translation{font-size:var(--text-base);color:var(--text-muted);line-height:var(--leading-snug);overflow-wrap:anywhere}.vocab-tile-tools{align-items:center;gap:var(--space-2);padding-top:var(--space-1);flex-wrap:wrap;margin-top:auto;display:flex}.vocab-examples{gap:var(--space-2);padding:var(--space-2) 0 0;border-top:1px dashed var(--border-subtle);flex-direction:column;margin:0;list-style:none;display:flex}.vocab-example{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-snug);overflow-wrap:anywhere;flex-direction:column;display:flex}.expression-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.expression-card{padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5);border-radius:var(--radius);background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 45%), var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);min-width:0;position:relative;overflow:hidden}.expression-card:before{content:"";background:linear-gradient(180deg, var(--accent), transparent);width:3px;position:absolute;inset:0 auto 0 0}.expression-card-body{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.expression-head{align-items:flex-start;gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.expression-text{font-size:var(--text-lg);font-weight:600;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--text-strong);overflow-wrap:anywhere;display:block}.expression-tools{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.expression-note{color:var(--text-faint);font-size:var(--text-sm);margin:0}.expression-details>summary{gap:var(--space-3);cursor:pointer;flex-direction:column;list-style:none;display:flex}.expression-details>summary::-webkit-details-marker{display:none}.expression-summary-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.expression-occurrence-badge{flex-shrink:0;margin-left:auto}.expression-details-body{gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border-subtle);flex-direction:column;display:flex}.expression-examples{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.expression-example{gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--surface-muted);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-snug);overflow-wrap:anywhere;flex-direction:column;display:flex}.teach-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.teach-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.teach-card-head{align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.teach-card-title{min-width:0;font-size:var(--text-md);letter-spacing:var(--tracking-tight);color:var(--text-strong);font-weight:700;line-height:var(--leading-snug);overflow-wrap:anywhere;flex:1;margin:0}.teach-explanation{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.teach-explanation p{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-muted);overflow-wrap:anywhere;margin:0}.teach-structure{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-xs);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-left:3px solid var(--accent,var(--brand));flex-direction:column;min-width:0;display:flex}.teach-structure-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.teach-structure-value{font-family:var(--font-mono);font-size:var(--text-base);color:var(--accent,var(--brand-fg));line-height:var(--leading-snug);overflow-wrap:anywhere;display:block}.teach-block{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.teach-examples{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.teach-examples-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.teach-example{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--surface-muted);border:1px solid var(--border-subtle);flex-wrap:wrap;min-width:0;display:flex}.teach-example-text{min-width:0;font-size:var(--text-base);color:var(--text);line-height:var(--leading-snug);overflow-wrap:anywhere;flex:1}.teach-forms{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin:0;padding:0;list-style:none;display:grid}.teach-form{gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--surface-muted);border:1px solid var(--border-subtle);flex-direction:column;min-width:0;display:flex}.teach-form-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.teach-form-value{font-size:var(--text-base);color:var(--text);overflow-wrap:anywhere}.teach-note{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-xs);background:var(--warning-soft);border:1px solid color-mix(in srgb, var(--warning) 32%, transparent);color:var(--text);font-size:var(--text-sm);line-height:var(--leading-snug);min-width:0;display:flex}.teach-note .icon{color:var(--warning);flex-shrink:0;margin-top:.15rem}.teach-note-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.teach-note-body p{overflow-wrap:anywhere;margin:0}.teach-more{margin:0}.teach-more>summary{font-size:var(--text-sm);color:var(--text-muted)}.teach-more[open]>summary{margin-bottom:var(--space-2)}.transcript-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.transcript-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.transcript-pages{color:var(--text-faint);font-size:var(--text-xs);white-space:nowrap;margin-left:auto}.transcript-title{font-size:var(--text-base);color:var(--text-strong);overflow-wrap:anywhere;margin:0;font-weight:600}.transcript-body{padding:var(--space-3);border-radius:var(--radius-xs);background:var(--surface-sunken);border:1px solid var(--border-subtle);overflow-wrap:anywhere;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text);min-width:0;margin:0}.transcript-scroll{scroll-behavior:smooth;overscroll-behavior:contain;flex-direction:column;gap:.15rem;max-height:min(22rem,55vh);display:flex;overflow:hidden auto}.transcript-line-row{border-radius:var(--radius-xs);min-width:0;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);border:1px solid #0000;align-items:flex-start;padding:.35rem .5rem;display:flex}.transcript-line-empty{min-height:.55rem;padding-block:.1rem}.transcript-line-spacer{min-height:.35rem;display:block}.transcript-line-playable{cursor:pointer}.transcript-line-playable:hover{background:color-mix(in srgb, var(--level-accent,var(--journey-cream,#f3efd4)) 6%, transparent);border-color:color-mix(in srgb, var(--border) 80%, var(--level-accent,var(--journey-cream,#f3efd4)))}.transcript-line-playable:focus-visible{outline:2px solid var(--level-accent,var(--journey-cream,#f3efd4));outline-offset:2px}.transcript-line-active{background:color-mix(in srgb, var(--topic-conversation-soft,var(--level-accent-soft)) 55%, var(--surface-strong));border-color:color-mix(in srgb, var(--topic-conversation,var(--level-accent)) 35%, var(--border));box-shadow:inset 3px 0 0 var(--topic-conversation,var(--level-accent,var(--journey-cream,#f3efd4)))}.transcript-line-text{overflow-wrap:anywhere;min-width:0;font-size:var(--text-sm);line-height:var(--leading-snug);white-space:pre-wrap;flex:1}.transcript-tools{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.transcript-audio-control{align-items:center;min-width:0;display:flex}.transcript-audio-button{align-items:center;gap:var(--space-2);min-height:2.35rem;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--topic-conversation,var(--level-accent)) 25%, var(--border));background:var(--surface-strong);color:var(--text);font-size:var(--text-sm);cursor:pointer;max-width:100%;transition:border-color var(--duration) var(--ease), background-color var(--duration) var(--ease), color var(--duration) var(--ease);font-family:inherit;font-weight:600;display:inline-flex}.transcript-audio-button:hover:not(:disabled){border-color:var(--topic-conversation,var(--level-accent,var(--brand-fg)));color:var(--text-strong)}.transcript-audio-button:disabled{opacity:.5;cursor:not-allowed}.transcript-audio-button-stop{border-color:color-mix(in srgb, var(--danger) 35%, var(--border));color:var(--danger)}.transcript-audio-button-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.transcript-line-actions,.teach-tools{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.spoken-english{align-items:flex-start;gap:var(--space-2);min-width:0;max-width:100%;display:flex}.spoken-english>:first-child{flex:1;min-width:0}.spoken-english-actions{gap:var(--space-1);flex-wrap:wrap;flex-shrink:0;display:inline-flex}.spoken-english-actions:empty{display:none}.pron-button{justify-content:center;align-items:center;gap:var(--space-2);min-width:2.25rem;min-height:2.25rem;padding:0 var(--space-2);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--accent,var(--brand)) 30%, var(--border));background:var(--accent-soft,var(--brand-soft));color:var(--accent,var(--brand-fg));font-size:var(--text-xs);cursor:pointer;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);flex-shrink:0;font-weight:700;display:inline-flex}.pron-button:hover:not(:disabled){border-color:var(--accent,var(--brand));background:color-mix(in srgb, var(--accent,var(--brand)) 20%, var(--surface))}.pron-button:disabled{cursor:progress;opacity:.85}[data-level] .pron-button{border-color:color-mix(in srgb, var(--level-accent) 42%, var(--border));background:color-mix(in srgb, var(--level-muted) 72%, var(--surface));color:var(--level-strong)}[data-level] .pron-button:hover:not(:disabled){border-color:var(--level-accent);background:color-mix(in srgb, var(--level-accent) 18%, var(--surface))}.pron-button-unavailable{background:var(--surface-muted);border-color:var(--border);color:var(--text-faint)}.pron-button-text{overflow-wrap:anywhere;max-width:14rem}@keyframes pron-pulse{0%,to{opacity:1}50%{opacity:.35}}.pron-button[aria-busy=true] .icon{animation:pron-pulse .9s var(--ease) infinite}.translation-contract{align-items:flex-start;gap:var(--space-2);flex-direction:column;min-width:0;max-width:100%;display:flex}.translation-contract-button{align-items:center;gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-muted);color:var(--text-muted);font-size:var(--text-xs);cursor:pointer;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);font-weight:700;display:inline-flex}.translation-contract-button:hover{border-color:var(--border-strong);color:var(--text)}.translation-contract-button[aria-expanded=true]{background:var(--brand-soft);border-color:color-mix(in srgb, var(--brand) 40%, transparent);color:var(--brand-fg)}.translation-text,.translation-unavailable{padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);font-size:var(--text-base);line-height:var(--leading-normal);overflow-wrap:anywhere;max-width:100%;margin:0}.translation-text{background:var(--brand-softer);border:1px solid color-mix(in srgb, var(--brand) 22%, transparent);color:var(--text)}.translation-unavailable{color:var(--text-faint);font-size:var(--text-sm);padding-left:var(--space-1)}.audio-section{--accent:var(--topic-audio);--accent-soft:var(--topic-audio-soft);flex-direction:column;min-width:0;display:flex}.audio-loading,.audio-error,.audio-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px dashed var(--border);color:var(--text-muted);font-size:var(--text-base);text-align:center;display:flex}.audio-error{border-style:solid;border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger);flex-direction:column}.audio-error p,.audio-empty p,.audio-loading p{margin:0}.audio-player-list{gap:var(--space-3);flex-direction:column;display:flex}.audio-player{gap:var(--space-2);padding:var(--space-3);background:linear-gradient(165deg, color-mix(in srgb, var(--journey-card,var(--surface)) 92%, #fff 8%) 0%, var(--journey-card,var(--surface)) 55%);border:1px solid color-mix(in srgb, var(--journey-cream,#f3efd4) 14%, var(--border));box-shadow:var(--hairline);border-radius:1.1rem;flex-direction:column;min-width:0;max-width:100%;display:flex}.audio-player-header{align-items:center;gap:var(--space-2);min-width:0;display:flex}.audio-color-dot{border-radius:var(--radius-pill);flex-shrink:0;width:.55rem;height:.55rem;box-shadow:0 0 0 3px #ffffff0d}.audio-player-title{font-weight:600;font-size:var(--text-sm);color:var(--text-strong);overflow-wrap:anywhere;min-width:0;line-height:1.35}.audio-transport{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.audio-transport-cluster{justify-content:center;align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.audio-progress-stack{flex-direction:column;gap:0;width:100%;min-width:0;display:flex}.audio-skip-button{min-width:2.35rem;min-height:2.35rem;padding:0 var(--space-1);border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-2xs);cursor:pointer;transition:border-color var(--duration) var(--ease), color var(--duration) var(--ease);justify-content:center;align-items:center;font-family:inherit;font-weight:700;display:inline-flex}.audio-skip-button:hover:not(:disabled){border-color:var(--brand-fg);color:var(--brand-fg)}.audio-skip-button:disabled{opacity:.45;cursor:not-allowed}.audio-play-button{border-radius:var(--radius-pill);background:var(--journey-cream,#f3efd4);width:2.65rem;height:2.65rem;color:var(--journey-ink,#1a1814);cursor:pointer;transition:transform var(--duration-fast) var(--ease), background-color var(--duration) var(--ease);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.audio-play-button:hover:not(:disabled){background:var(--journey-cream-strong,#f7f4ea)}.audio-play-button:active:not(:disabled){transform:scale(.96)}.audio-play-button:disabled{opacity:.45;cursor:not-allowed}.audio-play-button:focus-visible,.audio-skip-button:focus-visible,.audio-speed-button:focus-visible,.audio-volume-button:focus-visible,.audio-seek:focus-visible,.audio-volume-slider:focus-visible{outline:2px solid var(--journey-cream,#f3efd4);outline-offset:3px}.audio-progress-row{align-items:center;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto;min-width:0;display:grid}.audio-time{font-size:var(--text-2xs);color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;width:2.35rem}.audio-time:last-child{text-align:right}.audio-seek,.audio-volume-slider{width:100%;min-width:0;accent-color:var(--level-accent,var(--journey-cream,#f3efd4));touch-action:manipulation;height:1.65rem;margin:0}.audio-time-remaining{text-align:right}.audio-tools-row{align-items:center;gap:var(--space-2);border-top:1px solid var(--border-subtle);flex-wrap:nowrap;min-width:0;padding-top:.1rem;display:flex}.audio-volume{align-items:center;gap:var(--space-1);flex:5.5rem;min-width:0;max-width:9rem;margin-left:auto;display:flex}.audio-volume-button{border-radius:var(--radius-pill);border:1px solid var(--border-subtle);width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.audio-volume-button[aria-pressed=true]{color:var(--text-faint)}.audio-volume-slider{flex:1}.audio-speed-row{border-radius:var(--radius-pill);background:var(--surface-sunken);border:1px solid var(--border-subtle);scrollbar-width:none;flex-wrap:nowrap;flex-shrink:1;justify-content:flex-start;gap:.15rem;min-width:0;padding:.2rem;display:flex;overflow-x:auto}.audio-speed-row::-webkit-scrollbar{display:none}.audio-speed-button{min-width:2.35rem;min-height:2.15rem;padding:0 var(--space-1);border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);background:0 0;border:none;font-family:inherit;font-weight:700}.audio-speed-button:hover{color:var(--text)}.audio-speed-button.active{background:var(--journey-cream,#f3efd4);color:var(--journey-ink,#1a1814)}.audio-error-state,.audio-player-unavailable{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-2) 0}.audio-error-state p,.audio-player-unavailable p{margin:0}.audio-unavailable-text{margin-top:var(--space-2)}.audio-retry-button{margin-top:var(--space-2);min-height:2.25rem;padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-strong);color:var(--text);font-size:var(--text-sm);cursor:pointer;font-family:inherit;font-weight:700}.audio-retry-button:hover{border-color:var(--brand-fg);color:var(--brand-fg)}.audio-manager{gap:var(--space-4);margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;display:flex}.audio-manager-heading{font-size:var(--text-base);margin:0}.audio-manager-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.audio-manager-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-muted);flex-wrap:wrap;min-width:0;display:flex}.audio-manager-item-title{min-width:0;font-size:var(--text-sm);overflow-wrap:anywhere;flex:1;font-weight:600}.audio-status-pill{padding:.1rem var(--space-2);border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--text-faint);font-size:var(--text-2xs);text-transform:uppercase;flex-shrink:0;font-weight:700}.audio-status-active{background:var(--success-soft);color:var(--success)}.audio-manager-item-actions{gap:var(--space-1);flex-wrap:wrap;width:100%;display:flex}.audio-manager-item-actions button{min-height:2.4rem;padding:0 var(--space-3);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface-strong);color:var(--text);font-size:var(--text-sm);cursor:pointer;font-family:inherit;font-weight:600}.audio-manager-item-actions button:hover:not(:disabled){border-color:var(--border-strong)}.audio-manager-item-actions button:disabled{opacity:.45;cursor:not-allowed}.audio-manager-delete{color:var(--danger)!important}.audio-manager-form{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}.audio-manager-form label{gap:var(--space-1);font-size:var(--text-xs);color:var(--text-faint);flex-direction:column;font-weight:600;display:flex}.audio-manager-form input{width:100%;min-width:0;min-height:var(--touch);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--input-bg);color:var(--text);font-size:var(--text-base)}.audio-color-picker{gap:var(--space-2);display:flex}.audio-color-swatch{border-radius:var(--radius-pill);cursor:pointer;border:2px solid #0000;width:2rem;height:2rem}.audio-color-swatch.selected{border-color:var(--text);box-shadow:0 0 0 3px #ffffff14}.audio-manager-error{color:var(--danger);font-size:var(--text-sm);margin:0}.audio-manager-form-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.audio-manager-form-actions button{min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-xs);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:var(--text-sm);cursor:pointer;border:none;font-family:inherit}.audio-manager-form-actions button:disabled{opacity:.5;cursor:not-allowed}.audio-manager-form-actions button:last-child:not(:only-child){background:var(--surface-strong);color:var(--text-muted)}@media (width>=640px){.audio-transport{align-items:center;gap:var(--space-3);flex-direction:row}.audio-transport-cluster{justify-content:flex-start}}@media (width<=380px){.audio-speed-button{min-width:2.1rem;padding:0 .35rem}.audio-volume{max-width:6.5rem}}.practice-cta-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-5);border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:var(--text-base);cursor:pointer;max-width:100%;box-shadow:var(--brand-glow);transition:background-color var(--duration) var(--ease), transform var(--duration-fast) var(--ease);border:none;font-family:inherit;text-decoration:none;display:inline-flex}.practice-cta-button:hover,.practice-cta-button:focus-visible{background:var(--brand-strong)}.practice-cta-button:active{transform:translateY(1px)}.practice-secondary-button,.practice-secondary-link{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-strong);color:var(--text);font-weight:600;font-size:var(--text-base);cursor:pointer;max-width:100%;font-family:inherit;text-decoration:none;display:inline-flex}.practice-secondary-button:hover,.practice-secondary-button:focus-visible,.practice-secondary-link:hover,.practice-secondary-link:focus-visible{border-color:var(--border-strong);background:var(--surface-hover)}.practice-primary-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-5);border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:var(--text-base);cursor:pointer;border:none;font-family:inherit;text-decoration:none;display:inline-flex}.practice-primary-button:hover,.practice-primary-button:focus-visible{background:var(--brand-strong)}a.practice-primary-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.practice-empty{align-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-5);text-align:center;color:var(--text-muted);font-size:var(--text-base);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-subtle);flex-direction:column;display:flex}.practice-empty p{margin:0}.practice-deck{gap:var(--space-4);flex-direction:column;min-width:0;padding-bottom:6rem;display:flex}.practice-progress{align-items:center;gap:var(--space-3);display:flex}.practice-progress-text{font-size:var(--text-xs);color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.practice-progress-bar{border-radius:var(--radius-pill);background:var(--surface-strong);flex:1;min-width:0;height:6px;overflow:hidden}.practice-progress-fill{border-radius:var(--radius-pill);background:var(--level-accent,var(--progress));height:100%;transition:width var(--duration) var(--ease)}.practice-card{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow), var(--hairline);flex-direction:column;min-width:0;display:flex}.practice-card-productive,.practice-card-contrast,.practice-card-self-check{border-color:color-mix(in srgb, var(--level-accent,var(--border-strong)) 32%, var(--border))}.practice-card-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.practice-kind-tag,.practice-part-tag,.practice-origin-tag,.practice-secondary-tag{padding:.2rem var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-2xs);overflow-wrap:anywhere;border:1px solid #0000;align-items:center;max-width:100%;font-weight:700;display:inline-flex}.practice-kind-tag{background:var(--surface-strong);color:var(--text-muted);border-color:var(--border);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.practice-part-tag,.practice-origin-tag,.practice-secondary-tag{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border)}.practice-prompt{font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--text-strong);font-weight:700;line-height:var(--leading-snug);overflow-wrap:anywhere;margin:0}.practice-instruction{margin:calc(-1 * var(--space-2)) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.practice-options{gap:var(--space-2);flex-direction:column;display:flex}.practice-choice{align-items:center;gap:var(--space-2);min-width:0;display:flex}.practice-choice .practice-option{flex:1}.practice-option{width:100%;min-width:0;min-height:var(--touch);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:var(--text-md);text-align:start;cursor:pointer;overflow-wrap:anywhere;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform var(--duration-fast) var(--ease);font-family:inherit}.practice-option:not(:disabled):hover,.practice-option:not(:disabled):focus-visible{border-color:color-mix(in srgb, var(--brand) 45%, var(--border));background:var(--surface-hover)}.practice-option:not(:disabled):active{transform:scale(.995)}.practice-option:disabled{cursor:default}.practice-option-correct{border-color:var(--success-border);background:var(--success-soft);color:var(--success);font-weight:600}.practice-option-incorrect{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}.practice-reveal-button{min-height:var(--touch);padding:0 var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-strong);color:var(--text);font-size:var(--text-base);cursor:pointer;align-self:flex-start;max-width:100%;font-family:inherit;font-weight:600}.practice-reveal-button:hover,.practice-reveal-button:focus-visible{border-color:color-mix(in srgb, var(--brand) 40%, var(--border))}.practice-answer{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-sunken);border:1px solid var(--border-subtle);font-size:var(--text-md);color:var(--text-strong);line-height:var(--leading-normal);overflow-wrap:anywhere;margin:0}.practice-secondary{overflow-wrap:anywhere;max-width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);background:var(--surface-muted);color:var(--brand-fg);font-family:var(--font-mono);font-size:var(--text-sm);align-self:flex-start}.practice-self-assess{gap:var(--space-3);flex-wrap:wrap;display:flex}.practice-assess-button{min-width:0;min-height:var(--touch);padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-muted);font-size:var(--text-base);cursor:pointer;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease);flex:9rem;font-family:inherit;font-weight:700}.practice-assess-positive{color:var(--success)}.practice-assess-positive:hover,.practice-assess-positive:focus-visible{border-color:var(--success-border);background:var(--success-soft)}.practice-assess-negative{color:var(--danger)}.practice-assess-negative:hover,.practice-assess-negative:focus-visible{border-color:var(--danger-border);background:var(--danger-soft)}.practice-self-check-models{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.practice-self-check-model{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-sm);border:1px dashed var(--border);background:var(--surface-muted);flex-direction:column;min-width:0;display:flex}.practice-self-check-model-label{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint);font-weight:700}.practice-self-check-model-text{font-size:var(--text-md);color:var(--text);line-height:var(--leading-snug);overflow-wrap:anywhere}.practice-self-check-teaching{color:var(--text-muted);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.practice-feedback{font-size:var(--text-base);overflow-wrap:anywhere;margin:0;font-weight:600}.practice-feedback-correct{color:var(--success)}.practice-feedback-incorrect{color:var(--danger)}.practice-feedback-self-check{color:var(--text-muted)}.practice-advance-row{gap:var(--space-3);bottom:calc(4.5rem + env(safe-area-inset-bottom));padding:var(--space-3);border-radius:var(--radius);background:color-mix(in srgb, var(--canvas-raised) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-subtle);box-shadow:var(--shadow);flex-wrap:wrap;display:flex;position:sticky}@media (width>=900px){.practice-advance-row{bottom:var(--space-2)}}.practice-retry-button,.practice-skip-button,.practice-submit-button,.practice-next-button{min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-sm);font-weight:700;font-size:var(--text-md);cursor:pointer;flex:9rem;max-width:100%;font-family:inherit}.practice-retry-button{border:1px solid var(--border);background:var(--surface-strong);color:var(--text)}.practice-skip-button{border:1px solid var(--border);background:var(--surface-muted);color:var(--text-muted)}.practice-submit-button,.practice-next-button{background:var(--brand);color:var(--on-brand);border:none}.practice-submit-button:hover:not(:disabled),.practice-next-button:hover,.practice-next-button:focus-visible{background:var(--brand-strong)}.practice-submit-button:disabled{opacity:.5;cursor:not-allowed}.practice-productive-form{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.practice-productive-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.practice-productive-input{width:100%;min-width:0;min-height:4.5rem;padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:var(--text-md);line-height:var(--leading-snug);resize:vertical;overflow-wrap:anywhere;transition:border-color var(--duration) var(--ease)}.practice-productive-input:focus{border-color:color-mix(in srgb, var(--brand) 55%, var(--border))}.practice-productive-input:disabled{opacity:.85}.practice-productive-cue{font-family:var(--font-fa)}.practice-productive-feedback-slot{min-height:var(--space-2)}.practice-productive-feedback{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-subtle);flex-direction:column;display:flex}.practice-outcome-chip{padding:.2rem var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;align-self:flex-start;font-weight:700;display:inline-flex}.practice-outcome-correct{background:var(--success-soft);color:var(--success)}.practice-outcome-almost{background:var(--warning-soft);color:var(--warning)}.practice-outcome-incorrect{background:var(--danger-soft);color:var(--danger)}.practice-feedback-line,.practice-previous-attempt{flex-direction:column;gap:.1rem;min-width:0;margin:0;display:flex}.practice-feedback-label{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint);font-weight:700}.practice-feedback-value{font-size:var(--text-base);overflow-wrap:anywhere;white-space:pre-wrap}.practice-feedback-hint{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere;margin:0}.practice-summary{align-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-5);border-radius:var(--radius-lg);background:linear-gradient(160deg, color-mix(in srgb, var(--success) 8%, transparent), transparent 55%), var(--surface);border:1px solid var(--border);box-shadow:var(--shadow), var(--hairline);text-align:center;flex-direction:column;margin-bottom:5.5rem;display:flex}.practice-summary-kicker{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--success);margin:0;font-weight:700}.practice-summary-title{font-size:var(--text-xl);letter-spacing:var(--tracking-tight);margin:0}.practice-summary-score{color:var(--text-muted);font-size:var(--text-md);font-variant-numeric:tabular-nums;margin:0}.practice-summary-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.today-queue-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.today-queue-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);min-width:0;display:flex}.today-queue-item-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.today-queue-item-title{color:var(--text-strong);overflow-wrap:anywhere;font-weight:600}.today-queue-item-meta{color:var(--text-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.today-resume-card{gap:var(--space-4);padding:var(--space-5);flex-direction:column;display:flex}.today-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.today-queue-item>.today-lane-tag{flex-shrink:0;margin-left:auto}.today-hydration-warning{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--warning-soft);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);color:var(--text);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.today-progress-link{color:var(--brand-fg);font-weight:600}.today-empty-hint,.today-resume-hint,.today-resume-progress{color:var(--text-muted);font-size:var(--text-base);overflow-wrap:anywhere;margin:0}.today-lane-counts{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.today-lane-count{align-items:center;gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-muted);font-size:var(--text-sm);display:inline-flex}.today-lane-count-label,.today-lane-tag{letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:700;font-size:var(--text-2xs)}.today-lane-count-value{font-variant-numeric:tabular-nums;font-weight:700}.today-lane-tag{padding:.2rem var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-muted);color:var(--text-muted);align-items:center;display:inline-flex}.today-page .today-lane-count,.today-page .today-lane-tag{color:var(--journey-muted,#c9c4d2);background:#1c1c22;border-color:#ffffff14}.today-page .today-lane-tag-new,.today-page .today-lane-count-new{border-color:color-mix(in srgb, var(--journey-cream,#f3efd4) 42%, transparent);color:var(--journey-cream-strong,#f7f4ea)}.today-page .today-lane-tag-due,.today-page .today-lane-count-due{color:var(--journey-muted,#c9c4d2);border-color:#ffffff24}.today-page .today-lane-tag-weak,.today-page .today-lane-count-weak{border-color:color-mix(in srgb, var(--warning) 42%, transparent);color:color-mix(in srgb, var(--warning) 78%, white)}.today-session-summary{text-align:left;align-items:stretch}.today-session-summary .practice-summary-kicker,.today-session-summary .practice-summary-title{text-align:center}.today-summary-total{font-size:var(--text-md);text-align:left;color:var(--text-muted);margin:0}.today-summary-block{padding:var(--space-3) var(--space-4);background:#101014;border:1px solid #ffffff0f;border-radius:1.15rem}.today-summary-block h3{margin:0 0 var(--space-1);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint)}.today-summary-block p{color:var(--text-muted);font-size:var(--text-base);overflow-wrap:anywhere;margin:0}@media (width<=520px){.practice-self-assess{flex-direction:column}.practice-retry-button,.practice-skip-button,.practice-submit-button,.practice-next-button{flex:100%}.practice-summary-actions,.today-actions{flex-direction:column;align-items:stretch}.today-actions .practice-cta-button,.today-actions .practice-secondary-button,.today-actions .journey-pill,.practice-primary-button,.practice-secondary-link{width:100%}}.pronunciation-section{gap:var(--space-3);--accent:var(--topic-audio);--accent-soft:var(--topic-audio-soft);flex-direction:column;min-width:0;display:flex}.pronunciation-intro{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere;max-width:62ch;margin:0}.pronunciation-progress-text{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);margin:0;font-weight:700}.pronunciation-card{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm), var(--hairline);flex-direction:column;min-width:0;display:flex}.pronunciation-card-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.pronunciation-kind-tag,.pronunciation-origin-tag,.pronunciation-part-tag{padding:.2rem var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;overflow-wrap:anywhere;border:1px solid #0000;align-items:center;font-weight:700;display:inline-flex}.pronunciation-kind-tag{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.pronunciation-origin-tag,.pronunciation-part-tag{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border)}.pronunciation-target-text{font-size:var(--text-2xl);letter-spacing:var(--tracking-tight);font-weight:700;line-height:var(--leading-tight);color:var(--text-strong);overflow-wrap:anywhere;margin:0}.pronunciation-stage{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-subtle);flex-direction:column;min-width:0;display:flex}.pronunciation-stage-title{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint);margin:0;font-weight:700}.pronunciation-audio-unavailable,.pronunciation-notice-empty,.pronunciation-notice-model,.pronunciation-produce-note,.pronunciation-repeat-count,.pronunciation-produce-count,.pronunciation-log-error{font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.pronunciation-audio-unavailable,.pronunciation-notice-empty,.pronunciation-produce-note{color:var(--text-muted)}.pronunciation-notice-model{color:var(--text)}.pronunciation-notice-list,.pronunciation-feedback-list{padding-left:var(--space-5);font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere;margin:0}.pronunciation-notice-list li,.pronunciation-feedback-list li{margin-bottom:.15rem}.pronunciation-repeat-row,.pronunciation-advance-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.pronunciation-repeat-button,.pronunciation-produce-button,.pronunciation-retry-button,.pronunciation-next-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);min-width:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-pill);font-weight:700;font-size:var(--text-base);cursor:pointer;font-family:inherit;display:inline-flex}.pronunciation-repeat-button,.pronunciation-retry-button{border:1px solid var(--border);background:var(--surface-strong);color:var(--text)}.pronunciation-repeat-button:hover,.pronunciation-repeat-button:focus-visible,.pronunciation-retry-button:hover,.pronunciation-retry-button:focus-visible{border-color:color-mix(in srgb, var(--brand) 40%, var(--border));color:var(--brand-fg)}.pronunciation-produce-button,.pronunciation-next-button{background:var(--brand);color:var(--on-brand);border:none}.pronunciation-produce-button:hover:not(:disabled),.pronunciation-next-button:hover,.pronunciation-next-button:focus-visible{background:var(--brand-strong)}.pronunciation-produce-button:disabled{opacity:.5;cursor:not-allowed}.pronunciation-log-error{color:var(--danger)}.pronunciation-feedback-slot{min-height:0}.pronunciation-feedback{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border);flex-direction:column;display:flex}.pronunciation-feedback-kicker{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint);margin:0;font-weight:700}.pronunciation-feedback p{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere;margin:0}.pronunciation-section .audio-player{margin:0}@media (width>=768px){.pronunciation-repeat-button,.pronunciation-produce-button,.pronunciation-retry-button,.pronunciation-next-button{align-self:flex-start}}.voice-page{gap:var(--space-6);flex-direction:column;display:flex}.voice-fieldset{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--hairline);min-width:0;margin:0}.voice-legend{padding:0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.voice-segmented{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-pill);background:var(--surface-sunken);border:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.voice-segment{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.4rem;padding:0 var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-base);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);flex:6rem;font-weight:600;display:inline-flex}.voice-segment:hover{color:var(--text)}.voice-segment input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.voice-segment:has(input:checked){background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-xs)}.voice-segment:has(input:focus-visible){outline:2px solid var(--brand-fg);outline-offset:2px}.voice-hint{margin:var(--space-2) 0 0;color:var(--text-faint);font-size:var(--text-sm)}.voice-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));margin:0;padding:0;list-style:none;display:grid}.voice-option{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-subtle);min-width:0;transition:border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);display:flex}.voice-option:hover{border-color:var(--border-strong)}.voice-option:has(input:checked){border-color:color-mix(in srgb, var(--brand) 45%, transparent);background:var(--brand-softer)}.voice-option-label{align-items:center;gap:var(--space-2);min-width:0;min-height:2.4rem;font-size:var(--text-base);color:var(--text);cursor:pointer;overflow-wrap:anywhere;flex:1;font-weight:600;display:flex}.voice-option-label input{accent-color:var(--brand-strong);flex-shrink:0;width:1.05rem;height:1.05rem}.progress-page,.history-page,.current-state-page{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.progress-summary-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));display:grid}.progress-stat-card{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.progress-stat-feature{align-items:center;gap:var(--space-4);background:var(--surface);flex-direction:row;grid-column:1/-1}.progress-stat-body{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.progress-stat-label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700;display:flex}@media (width>=40rem){.progress-stat-feature{grid-column:span 2}}.progress-stat-value{font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--text-strong);font-weight:700;line-height:var(--leading-tight);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.progress-stat-detail{font-size:var(--text-xs);color:var(--text-muted)}.progress-level-list{gap:var(--space-3);flex-direction:column;display:flex}.progress-level-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;display:flex}.progress-level-card[data-level]{border-color:color-mix(in srgb, var(--level-accent) 36%, var(--border))}.progress-level-summary{align-items:center;gap:var(--space-3);min-height:var(--touch);cursor:pointer;font-weight:600;list-style:none;display:flex}.progress-level-summary::-webkit-details-marker{display:none}.progress-level-name{min-width:0;font-size:var(--text-md);color:var(--text-strong);overflow-wrap:anywhere;flex:1}.progress-level-fraction{font-size:var(--text-xs);color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}.progress-lesson-list{margin:var(--space-1) 0 0;flex-direction:column;gap:.15rem;padding:0;list-style:none;display:flex}.progress-lesson-row{align-items:center;gap:var(--space-3);min-height:2.4rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);color:inherit;font-size:var(--text-sm);transition:background-color var(--duration) var(--ease);text-decoration:none;display:flex}.progress-lesson-row:hover,.progress-lesson-row:focus-visible{background:var(--surface-hover)}.progress-lesson-title{overflow-wrap:anywhere;flex:1;min-width:0}.progress-lesson-row>.icon{color:var(--text-faint);flex-shrink:0}.progress-lesson-fraction{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}.progress-srs{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.progress-srs-intro,.progress-srs-kicker,.progress-srs-empty,.progress-srs-empty-detail,.progress-srs-live-hint{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere;margin:0}.progress-srs-empty{color:var(--text);font-size:var(--text-base)}.progress-srs-block{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.progress-srs-figures{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.progress-srs-figure{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-subtle);flex-direction:column;gap:.15rem;min-width:0;display:flex}.progress-srs-figure-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.progress-srs-figure-value{font-size:var(--text-md);color:var(--text-strong);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-weight:700}.progress-srs-figure-detail{font-size:var(--text-2xs);color:var(--text-faint);overflow-wrap:anywhere}.progress-srs-subheading{margin:var(--space-1) 0 0;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.progress-srs-count-list{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.progress-srs-count-list li{justify-content:space-between;gap:var(--space-3);padding:var(--space-1) 0;font-size:var(--text-base);border-bottom:1px solid var(--border-subtle);display:flex}.progress-srs-count-list li:last-child{border-bottom:0}.progress-srs-count-list li span:last-child{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.progress-srs-preview-summary,.progress-srs-terms-summary,.progress-srs-visibility-summary{align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer;font-weight:600;font-size:var(--text-base);color:var(--text);overflow-wrap:anywhere;list-style:none;display:flex}.progress-srs-preview-summary::-webkit-details-marker{display:none}.progress-srs-terms-summary::-webkit-details-marker{display:none}.progress-srs-visibility-summary::-webkit-details-marker{display:none}.progress-srs-preview-list{gap:var(--space-2);margin:var(--space-2) 0 0;padding:0 0 0 var(--space-5);flex-direction:column;display:flex}.progress-srs-preview-list li{overflow-wrap:anywhere}.progress-srs-preview-title{font-size:var(--text-base);font-weight:600;display:block}.progress-srs-preview-meta{font-size:var(--text-xs);color:var(--text-faint);display:block}.progress-srs-terms-list{gap:var(--space-3);margin:var(--space-2) 0 0;flex-direction:column;display:flex}.progress-srs-term dt{text-transform:capitalize;color:var(--text-strong);font-weight:700}.progress-srs-term dd{font-size:var(--text-sm);color:var(--text-muted);margin:.15rem 0 0}.progress-srs-visibility{min-width:0}.progress-srs-visibility-list{gap:var(--space-2);margin:var(--space-2) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.progress-srs-visibility-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--surface-muted);border:1px solid var(--border-subtle);overflow-wrap:anywhere;min-width:0}.progress-srs-visibility-title{font-size:var(--text-base);font-weight:600;display:block}.progress-srs-visibility-meta,.progress-srs-visibility-note{font-size:var(--text-xs);color:var(--text-faint);display:block}.progress-srs-visibility-note{margin-top:.15rem}.history-day-group{gap:var(--space-2);flex-direction:column;display:flex}.history-day-heading{top:var(--header-height);z-index:5;padding:var(--space-2) 0;background:linear-gradient(180deg, var(--canvas) 70%, transparent);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);margin:0;font-weight:700;position:sticky}.history-session-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-entry-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle);color:inherit;min-width:0;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease);text-decoration:none;display:flex}.history-entry-row:hover,.history-entry-row:focus-visible{background:var(--surface-hover);border-color:var(--border)}.history-entry-row-static{cursor:default}.history-entry-icon{border-radius:var(--radius-xs);background:var(--accent-soft,var(--surface-strong));width:2.15rem;height:2.15rem;color:var(--accent,var(--text-muted));border:1px solid color-mix(in srgb, var(--accent,var(--border)) 26%, transparent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.history-entry-practice{--accent:var(--topic-pattern);--accent-soft:var(--topic-pattern-soft)}.history-entry-review{--accent:var(--topic-vocabulary);--accent-soft:var(--topic-vocabulary-soft)}.history-entry-pronunciation{--accent:var(--topic-audio);--accent-soft:var(--topic-audio-soft)}.history-entry-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.history-entry-activity{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--accent,var(--brand-fg));font-weight:700}.history-entry-lesson{font-size:var(--text-base);color:var(--text-strong);overflow-wrap:anywhere;font-weight:600}.history-entry-part{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere}.history-entry-meta{font-size:var(--text-xs);color:var(--text-faint);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.1rem;display:flex}.history-load-more{min-height:var(--touch);padding:0 var(--space-6);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;align-self:center;font-family:inherit;font-weight:600}.history-load-more:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.history-load-more:disabled{opacity:.5;cursor:default}@media (width<=520px){.history-entry-row{flex-wrap:wrap;align-items:flex-start}.history-entry-meta{justify-content:flex-start;align-items:center;gap:var(--space-1) var(--space-3);text-align:left;width:100%;padding-left:calc(2.15rem + var(--space-3));flex-flow:wrap}}.dashboard-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=860px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid>.dashboard-span{grid-column:1/-1}}.current-state-section{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.current-state-loading,.current-state-empty{color:var(--text-muted);font-size:var(--text-base);margin:0}.current-state-stat-value{font-size:var(--text-xl);color:var(--text-strong);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums;font-weight:700}.current-state-link{align-items:center;gap:var(--space-1);min-height:2.25rem;font-size:var(--text-sm);color:var(--brand-fg);align-self:flex-start;font-weight:600;text-decoration:none;display:inline-flex}.current-state-link:hover,.current-state-link:focus-visible{text-decoration:underline}.ai-section{--accent:var(--topic-expression);--accent-soft:var(--topic-expression-soft);flex-direction:column;min-width:0;display:flex}.ai-panel{gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--hairline);flex-direction:column;min-width:0;display:flex}.ai-panel-scope-note{color:var(--text-faint);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0;padding:0;font-style:italic}.ai-provider-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.ai-provider-label{font-size:var(--text-sm);color:var(--text-muted);flex-shrink:0;font-weight:600}.ai-provider-select{min-width:0;max-width:16rem;min-height:var(--touch);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--input-bg);color:var(--text);font-size:var(--text-base);flex:10rem;font-family:inherit}.ai-provider-select:disabled{opacity:.6}.ai-question-form{gap:var(--space-2);flex-direction:column;display:flex}.ai-question-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);font-weight:700}.ai-question-input{width:100%;min-height:4.5rem;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);font-size:var(--text-md);font-family:inherit;line-height:var(--leading-snug);resize:vertical}.ai-question-input:focus{border-color:color-mix(in srgb, var(--brand) 55%, var(--border))}.ai-question-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.ai-question-actions button{min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:var(--text-sm);cursor:pointer;border:1px solid #0000;font-family:inherit}.ai-question-actions button:hover:not(:disabled){background:var(--brand-strong)}.ai-question-actions button[type=button]{background:var(--surface-strong);border-color:var(--border);color:var(--text)}.ai-question-actions button[type=button]:hover:not(:disabled){background:var(--surface-hover)}.ai-question-actions button:disabled{opacity:.5;cursor:not-allowed}.ai-clear-button{margin-left:auto}.ai-response-area{padding-top:var(--space-3);border-top:1px solid var(--border-subtle);min-width:0}.ai-empty-state{color:var(--text-muted);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.ai-loading-state{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-base);display:flex}.ai-answer-text{margin:0 0 var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-subtle);font-size:var(--text-md);line-height:var(--leading-relaxed);white-space:pre-wrap;overflow-wrap:anywhere}.ai-answer-meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.ai-trust-pill,.ai-cached-pill,.ai-provider-pill{padding:.2rem var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--info-border);background:var(--info-soft);color:var(--info);font-size:var(--text-2xs);align-items:center;font-weight:700;display:inline-flex}.ai-cached-pill,.ai-provider-pill{background:var(--surface-muted);border-color:var(--border);color:var(--text-muted)}.ai-fallback-state{color:var(--warning);font-size:var(--text-sm)}.ai-fallback-state p{margin:0 0 var(--space-1)}.ai-fallback-note{color:var(--text-muted)!important;font-size:var(--text-sm)!important}@media (width<=520px){.ai-provider-select{flex:100%;max-width:none}.ai-question-actions button{flex:auto}.ai-clear-button{margin-left:0}}:root{--canvas:#110f16;--canvas-raised:#141418;--surface:#141418;--surface-hover:#1c1c22;--surface-strong:#2a2a31;--surface-muted:#121216;--surface-sunken:#0c0c10;--input-bg:#101014;--overlay:#08080abd;--border:#2e2e36;--border-strong:#45454e;--border-subtle:#232328;--text:#f6f3ec;--text-strong:#f7f4ea;--text-muted:#c9c4d2;--text-faint:#938e99;--brand:#f3efd4;--brand-strong:#f7f4ea;--brand-soft:#2a2824;--brand-softer:#1c1b18;--brand-fg:#f7f4ea;--on-brand:#1a1814;--brand-glow:0 8px 22px #06040a47;--brand-glow-strong:0 12px 28px #06040a5c;--voice:#2ec9c0;--voice-strong:#7ae7df;--voice-soft:#102e2e;--voice-fg:#c8fff8;--on-voice:#06211f;--progress:#c6de4e;--progress-strong:#e4f59a;--progress-soft:#242e12;--progress-fg:#f3ffc4;--on-progress:#1a2408;--review:#b07cff;--review-strong:#d4b8ff;--review-soft:#281838;--review-fg:#efe2ff;--on-review:#1c102c;--success:#2f9d6e;--success-soft:#10261c;--success-border:#1f7a52;--danger:#ff6d7a;--danger-soft:#32161b;--danger-border:#c44b58;--warning:#f0b429;--warning-soft:#2c220f;--warning-border:#a67a16;--info:#5aa6f0;--info-soft:#102033;--info-border:#2a6eaa;--topic-vocabulary:#8aa2ff;--topic-vocabulary-soft:#1a2040;--topic-expression:#ee8ab8;--topic-expression-soft:#351626;--topic-grammar:#d4893a;--topic-grammar-soft:#2e1e10;--topic-pattern:#3eafa0;--topic-pattern-soft:#102824;--topic-conversation:#49b4e0;--topic-conversation-soft:#0e2834;--topic-extra:#e07ad4;--topic-extra-soft:#321430;--topic-audio:#9b8cff;--topic-audio-soft:#221c40;--topic-source:#b3a8c4;--topic-source-soft:#262230;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:var(--font);--font-fa:"Segoe UI", Tahoma, "Noto Naskh Arabic", "Noto Sans Arabic", "Geeza Pro", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.3125rem;--text-2xl:1.625rem;--text-3xl:2rem;--text-display:2.75rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-snug:1.4;--leading-normal:1.55;--leading-relaxed:1.7;--leading-display:1.08;--leading-fa:1.85;--tracking-tight:-.02em;--tracking-tighter:-.03em;--tracking-display:-.035em;--tracking-wide:.06em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:2rem;--space-8:2.5rem;--space-9:3rem;--space-10:4rem;--gap-tight:var(--space-2);--gap:var(--space-3);--gap-section:var(--space-6);--pad-card:var(--space-4);--pad-card-lg:var(--space-5);--radius-xs:8px;--radius-sm:12px;--radius:16px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--shadow-xs:0 1px 2px #06040a73;--shadow-sm:0 2px 10px #06040a66;--shadow:0 10px 28px #06040a75;--shadow-hover:0 14px 32px #06040a85;--shadow-lg:0 22px 48px #06040a94;--hairline:inset 0 1px 0 #fffaf40f;--touch:2.75rem;--content-width:47rem;--content-width-wide:72rem;--rail-width:15rem;--shell-gutter:1rem;--header-height:3.5rem;--ease:cubic-bezier(.22, 1, .36, 1);--ease-emph:cubic-bezier(.32, .72, 0, 1);--duration-fast:.14s;--duration:.2s;--duration-slow:.36s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{background:var(--canvas);color:var(--text);font-family:var(--font);font-size:16px;line-height:var(--leading-normal);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body{background-image:none;background-attachment:scroll;min-height:100dvh}#root{min-width:0;min-height:100dvh;overflow-x:clip}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--text-strong)}p{overflow-wrap:break-word}code,kbd,samp{font-family:var(--font-mono)}[lang=fa],[dir=rtl]{font-family:var(--font-fa)}[dir=rtl][lang=fa],[dir=rtl][lang=he],bdi[dir=rtl]{font-family:var(--font-fa);line-height:var(--leading-fa);letter-spacing:normal;text-align:start}bdi[dir]{unicode-bidi:isolate}.bidi-line{text-align:start;white-space:pre-wrap;unicode-bidi:isolate;display:block}[dir=rtl].expression-text,[dir=rtl].vocab-translation,[dir=rtl].continue-card-title,[dir=rtl].journey-byline,[dir=rtl].history-entry-lesson,[dir=rtl].history-entry-part,[dir=rtl].pager-title,[dir=rtl].study-hero-description,[dir=rtl].study-hero-context-label{align-self:stretch;width:100%;display:block}:is(.spoken-english:has(>[dir=rtl]),.spoken-english:has(>.journey-title-link>[dir=rtl]),.journey-title-link:has(>[dir=rtl])){align-self:stretch;width:100%}.journey-title-link>[dir=rtl]{width:100%;display:block}:focus-visible{outline:2px solid var(--brand-fg);outline-offset:2px;border-radius:var(--radius-xs)}button:focus:not(:focus-visible),a:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),summary:focus:not(:focus-visible){outline:none}button,a,input,textarea,select,summary{touch-action:manipulation}button{font-family:inherit}input,textarea,select{background-color:var(--input-bg);color:var(--text);caret-color:var(--brand-fg);font-family:inherit}::placeholder{color:var(--text-faint);opacity:1}::selection{background:color-mix(in srgb, var(--brand) 42%, transparent);color:var(--text-strong)}*{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
