.corpus-map{--map-unstarted:var(--text-muted,#929b90);--map-started:var(--warning,#98601e);--map-mastered:var(--success,#23634b);border:1px solid var(--border);background:var(--surface,#fbfbf6);border-radius:10px;margin:24px 0;padding:24px}.corpus-map-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.corpus-map-heading h3{color:var(--green);letter-spacing:-.5px;margin-top:6px;font-size:23px;font-weight:550}.corpus-map-legend{flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.corpus-map [data-state=unstarted]{color:var(--map-unstarted)}.corpus-map [data-state=started]{color:var(--map-started)}.corpus-map [data-state=mastered]{color:var(--map-mastered)}.corpus-map-legend li{align-items:center;gap:5px;display:flex}.corpus-map-legend li[data-state=unstarted]{color:var(--text-secondary,#626e61)}.corpus-map-legend li>span{font-size:15px}.corpus-map-help{max-width:760px;color:var(--muted);margin:12px 0 22px;font-size:12px;line-height:1.7}.corpus-map-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 20px;display:grid}.corpus-map-collection{min-width:0}.corpus-map-collection-heading{border-bottom:1px solid var(--border);min-height:70px;padding-bottom:10px}.corpus-map-collection-heading h4{overflow-wrap:anywhere;align-items:baseline;gap:7px;margin:0;font-size:12px;font-weight:600;display:flex}.corpus-map-collection-heading h4>span{color:var(--muted);font:10px ui-monospace,Consolas,monospace}.corpus-map-collection-heading p{color:var(--muted);margin:7px 0 0;font-size:10px;line-height:1.6}.corpus-map-collection-heading p strong{color:var(--green)}.corpus-map-collection-heading p>span{white-space:nowrap}.corpus-map-lines{padding-top:10px}.corpus-map-line{cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;gap:6px;width:100%;height:14px;padding:0 3px;scroll-margin-block:180px;display:flex}.corpus-map-line-number{text-align:right;color:var(--text-muted,#748071);flex:0 0 15px;font:8px ui-monospace,Consolas,monospace}.corpus-map-line svg{fill:currentColor;flex:1;min-width:0;height:8px;display:block}.corpus-map-line[data-state=unstarted] rect{fill:none;stroke:currentColor;stroke-width:.65px;vector-effect:non-scaling-stroke}.corpus-map-line[data-state=started] rect{opacity:.8}.corpus-map-line-symbol{flex:0 0 11px;font-size:10px;line-height:1}.corpus-map-line:hover,.corpus-map-line[aria-pressed=true]{background:var(--surface-hover,#e4eadc)}.corpus-map-line:focus-visible{outline:2px solid var(--green);outline-offset:1px;position:relative}.corpus-map-preview{z-index:2;border:1px solid var(--border-strong,#d3dbcc);background:var(--surface-hover,#f0f3e8);min-height:110px;box-shadow:0 4px 18px var(--shadow-soft,#26352e14);border-radius:8px;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding:18px;display:flex;position:sticky;bottom:12px}.corpus-map-preview-copy{min-width:0;max-height:140px;overflow-y:auto}.corpus-map-preview-label{color:var(--muted);margin:0;font-size:11px;line-height:1.6}.corpus-map-sentence{overflow-wrap:anywhere;margin:8px 0;font-size:15px;line-height:1.7}.corpus-map-preview-status{margin:0;font-size:11px;line-height:1.6}.corpus-map-preview>button{flex-shrink:0;font-size:12px}.corpus-map-placeholder{color:var(--muted);margin:0;font-size:13px;line-height:1.7}@media (width<=1000px){.corpus-map-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.corpus-map{padding:18px}.corpus-map-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.corpus-map-preview{flex-direction:column;align-items:stretch}}@media (width<=460px){.corpus-map{padding:14px}.corpus-map-grid{grid-template-columns:1fr}.corpus-map-collection-heading{min-height:0}}@media (pointer:coarse){.corpus-map-line{height:26px}.corpus-map-line-number{font-size:10px}}@media (forced-colors:active){.corpus-map-line svg{fill:buttontext}.corpus-map-line[data-state=unstarted] rect{stroke:buttontext}.corpus-map-line[aria-pressed=true]{outline:2px solid highlight}}.calendar-summary{border:1px solid var(--border);background:var(--surface,#fffef8);border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px;padding:22px 8px;display:grid}.calendar-summary>div{border-right:1px solid var(--border);flex-direction:column;gap:6px;padding:0 22px;display:flex}.calendar-summary>div:last-child{border:0}.calendar-summary strong{letter-spacing:-.8px;color:var(--green);font-variant-numeric:tabular-nums;font-size:29px}.calendar-summary span{color:var(--muted);font-size:12px;line-height:1.5}.calendar-layout{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.calendar-month,.calendar-detail{background:var(--surface,#fffef8);border:1px solid var(--border);border-radius:12px;min-width:0;padding:24px}.calendar-month-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:24px;display:flex}.calendar-month h2,.calendar-detail h2{letter-spacing:-.5px;font-size:21px;font-weight:600}.calendar-month-actions{align-items:center;gap:6px;display:flex}.calendar-month-actions .secondary-button{padding:7px 10px}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekdays{text-align:center;color:var(--muted);margin-bottom:9px;font-size:10px;font-weight:600}.calendar-day{border:1px solid var(--border-soft,#e8e9df);text-align:left;min-width:0;min-height:90px;color:var(--text-secondary,#526156);background:var(--surface-subtle,#f7f8f1);font-variant-numeric:tabular-nums;border-radius:7px;flex-direction:column;align-items:start;gap:9px;padding:10px 8px;display:flex}.calendar-day-number{align-items:center;gap:5px;font-size:13px;font-weight:650;display:flex}.calendar-today-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.calendar-day-time{white-space:nowrap;font-size:11px;font-weight:600}.calendar-day-win{font-size:10px;line-height:1}.calendar-day[data-intensity="1"],.calendar-legend i[data-intensity="1"]{background:var(--success-surface,#e3ecd9);color:var(--success,#284d32);border-color:var(--success-border,#d2dec7)}.calendar-day[data-intensity="2"],.calendar-legend i[data-intensity="2"]{background:var(--calendar-medium,#8fb58c);color:var(--calendar-medium-text,#153d27);border-color:var(--calendar-medium-border,#84a981)}.calendar-day[data-intensity="3"],.calendar-legend i[data-intensity="3"]{background:var(--calendar-high,#245a42);color:var(--calendar-high-text,#fffef8);border-color:var(--calendar-high,#245a42)}.calendar-day[aria-current=date] .calendar-day-number{text-underline-offset:4px;text-decoration:underline}.calendar-day[aria-pressed=true]{outline:2px solid var(--green);outline-offset:1px}.calendar-day:focus-visible{outline:3px solid var(--warning,#a97236);outline-offset:1px}.calendar-day:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--green)}.calendar-day:disabled{opacity:.38;cursor:default}.calendar-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;font-size:10px;display:flex}.calendar-legend>span{align-items:center;gap:4px;display:inline-flex}.calendar-legend i{background:var(--surface-subtle,#f7f8f1);border:1px solid var(--border);border-radius:2px;width:10px;height:10px;display:inline-block}.calendar-hint,.calendar-keyboard{color:var(--muted);margin-top:14px;font-size:11px;line-height:1.6}.calendar-detail h2{margin-top:8px}.calendar-day-total{flex-wrap:wrap;align-items:baseline;gap:8px;margin:26px 0 8px;display:flex}.calendar-day-total strong{color:var(--green);letter-spacing:-1px;font-size:32px}.calendar-day-total span,.calendar-detail-meta{color:var(--muted);font-size:11px;line-height:1.6}.calendar-detail h3{margin:25px 0 14px;font-size:13px;font-weight:650}.calendar-achievements,.calendar-activities{margin:0;padding:0;list-style:none}.calendar-achievements li{background:var(--success-surface,#edf2e5);border-radius:8px;align-items:start;gap:10px;margin-top:9px;padding:13px;display:flex}.calendar-achievement-mark{color:var(--green)}.calendar-achievements strong{overflow-wrap:anywhere;font-size:13px;line-height:1.6;display:block}.calendar-achievements div>span{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.6;display:block}.calendar-no-win{color:var(--muted);font-size:12px;line-height:1.7}.calendar-activities li{border-top:1px solid var(--border);justify-content:space-between;align-items:start;gap:12px;padding:14px 0;display:flex}.calendar-activity-kind{color:var(--muted);text-transform:capitalize;font-size:10px}.calendar-activities p{overflow-wrap:anywhere;white-space:pre-wrap;margin:5px 0;font-size:13px;line-height:1.6}.calendar-activities small{color:var(--muted);font-size:10px;line-height:1.5}.calendar-activities li>strong{color:var(--green);flex-shrink:0;margin-top:3px;font-size:11px}.calendar-empty{text-align:center;padding:40px 0 20px}.calendar-empty>span{color:var(--text-muted,#a7b59c);font-size:32px}.calendar-empty h3{margin-top:16px}.calendar-empty p{color:var(--muted);font-size:12px;line-height:1.8}.calendar-method{color:var(--muted);max-width:950px;margin:22px 0 8px;font-size:11px;line-height:1.8}.calendar-keyboard{margin-bottom:32px}.calendar-exercise-link{color:var(--green);font:inherit;text-align:left;text-underline-offset:3px;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600;line-height:1.6;text-decoration:underline;display:inline}.calendar-exercise-link:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}.calendar-review-note{color:var(--muted);font-size:11px;line-height:1.7}.calendar-difficulties{margin:12px 0;padding:0;list-style:none}.calendar-difficulties li{background:var(--warning-surface,#f5f2e7);border:1px solid var(--border);border-radius:8px;margin-top:10px;padding:14px}.calendar-difficulties strong,.calendar-difficulties small{overflow-wrap:anywhere;display:block}.calendar-difficulties strong{margin:5px 0;font-size:14px;line-height:1.6}.calendar-difficulties small,.calendar-difficulties p{color:var(--muted);font-size:10px;line-height:1.6}.calendar-difficulties p{overflow-wrap:anywhere;margin:8px 0 12px}.calendar-difficulties .secondary-button{font-size:11px}@media (width<=1100px){.calendar-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:16px}.calendar-month,.calendar-detail{padding:18px}.calendar-day{padding:9px 5px}.site-header{flex-wrap:wrap;height:auto;min-height:100px;padding-top:16px;padding-bottom:12px}.site-header nav{flex-wrap:wrap;flex-basis:100%;order:3}}@media (width<=800px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-summary>div{padding:0 14px}}@media (width<=480px){.practice-calendar .page-heading{flex-wrap:wrap}.calendar-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}.calendar-summary>div:nth-child(2){border:0}.calendar-summary strong{font-size:25px}.calendar-month{padding:16px 10px}.calendar-month h2{font-size:18px}.calendar-days,.calendar-weekdays{gap:4px}.calendar-day{min-height:82px;padding:9px 3px}.calendar-day-time{font-size:9px}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--green:#a5cfb3;--muted:#a2b0a4;--border:#3b4b40;--text:#e6ece5;--text-secondary:#c1cfc0;--text-muted:#a2b0a4;--page:#141b18;--surface:#1c2621;--surface-subtle:#202c25;--surface-hover:#2a382e;--surface-selected:#304635;--border-strong:#5c7261;--border-soft:#35443a;--success:#a5cfb3;--success-surface:#283e2c;--success-border:#5c8263;--success-fill:#8ab792;--warning:#efc184;--warning-surface:#392e20;--warning-border:#8c6d3e;--info:#b0c9e4;--info-surface:#283645;--error:#f29b8a;--error-surface:#3d2723;--error-border:#ad6d5c;--error-strong:#a84430;--error-strong-border:#f29b8a;--brand-ink:#14271c;--on-accent:#14271c;--accent-hover:#bedfc7;--chart-speed:#79c9bc;--chart-overall:#bd9eea;--chart-warning-tint:#efc18426;--cursor:#a5cfb326;--cursor-error:#f29b8a33;--shadow-soft:#00000026;--shadow:#0006;--overlay:#050c09b3;--calendar-medium:#476c50;--calendar-medium-text:#f0f5ed;--calendar-medium-border:#699574;--calendar-high:#9bc7a4;--calendar-high-text:#102a1c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--green:#a5cfb3;--muted:#a2b0a4;--border:#3b4b40;--text:#e6ece5;--text-secondary:#c1cfc0;--text-muted:#a2b0a4;--page:#141b18;--surface:#1c2621;--surface-subtle:#202c25;--surface-hover:#2a382e;--surface-selected:#304635;--border-strong:#5c7261;--border-soft:#35443a;--success:#a5cfb3;--success-surface:#283e2c;--success-border:#5c8263;--success-fill:#8ab792;--warning:#efc184;--warning-surface:#392e20;--warning-border:#8c6d3e;--info:#b0c9e4;--info-surface:#283645;--error:#f29b8a;--error-surface:#3d2723;--error-border:#ad6d5c;--error-strong:#a84430;--error-strong-border:#f29b8a;--brand-ink:#14271c;--on-accent:#14271c;--accent-hover:#bedfc7;--chart-speed:#79c9bc;--chart-overall:#bd9eea;--chart-warning-tint:#efc18426;--cursor:#a5cfb326;--cursor-error:#f29b8a33;--shadow-soft:#00000026;--shadow:#0006;--overlay:#050c09b3;--calendar-medium:#476c50;--calendar-medium-text:#f0f5ed;--calendar-medium-border:#699574;--calendar-high:#9bc7a4;--calendar-high-text:#102a1c}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text,#26352e);background:var(--page,#f6f6f0);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#174d3e;--muted:#69766d;--border:#dedfd5;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.review-layout{grid-template-columns:minmax(210px,.7fr) minmax(0,1.7fr);align-items:start;gap:24px;margin-top:24px;display:grid}.review-list{gap:8px;display:grid}.review-list button{text-align:left;background:var(--surface,#fffef8);border:1px solid var(--border);color:var(--green);border-radius:8px;padding:14px}.review-list strong,.review-list small{line-height:1.5;display:block}.review-list small{color:var(--muted);margin-top:5px}.review-list [aria-pressed=true],.review-verdict [aria-pressed=true]{background:var(--surface-selected,#e7eddd);border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.review-card{min-width:0}.review-card label{gap:8px;margin:18px 0 12px;font-size:13px;font-weight:600;display:grid}.review-card textarea:not(.typing-input){border:1px solid var(--border);width:100%;font:inherit;resize:vertical;background:var(--surface,#fffef8);border-radius:7px;padding:12px;line-height:1.6}.review-card p,.sentence-review>p{color:var(--muted);margin:14px 0;font-size:13px;line-height:1.7}.review-card .target-display{margin-top:20px}.review-verdict,.review-navigation{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.review-verdict button,.review-navigation button{border:1px solid var(--border);background:var(--surface,#fffef8);color:var(--green);border-radius:7px;padding:10px 14px}.extra-sentences{gap:12px;margin-top:20px;display:grid}.extra-sentences article{border:1px solid var(--border);background:var(--surface,#fffef8);border-radius:10px;justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.extra-sentences p{margin-bottom:8px;line-height:1.6}.extra-sentences small{color:var(--muted)}.extra-sentences button{flex-shrink:0}@media (width<=760px){.review-layout{grid-template-columns:1fr}.review-list{grid-template-columns:repeat(2,minmax(0,1fr))}.extra-sentences article{flex-direction:column;align-items:start}}.picks-heading{align-items:center}.picks-heading>.secondary-button{flex-shrink:0}.picks-library{padding-bottom:30px}.picks-library-heading,.pick-practice-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.picks-library h2,.pick-practice h2{letter-spacing:-.5px;font-size:23px;font-weight:600}.picks-library-heading p,.pick-practice-heading p:not(.eyebrow){color:var(--muted);margin-top:8px;font-size:13px;line-height:1.65}.picks-level{border:1px solid var(--border);color:var(--muted);border-radius:6px;flex-shrink:0;padding:7px 10px;font-size:12px}.pick-pace-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:24px 0 20px;display:grid}.pick-pace-options>button{text-align:left;border:1px solid var(--border);background:var(--surface,#fffef8);color:var(--text-secondary,#354a3d);border-radius:10px;padding:16px 13px}.pick-pace-options>button:hover{border-color:var(--border-strong,#9cafa0)}.pick-pace-options>button[aria-pressed=true]{background:var(--surface-selected,#e7eddd);border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.pick-pace-options>button>span{justify-content:space-between;align-items:center;gap:5px;font-size:13px;font-weight:650;display:flex}.pick-pace-options small{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.5;display:block}.pick-option-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:10px;font-weight:500}.pick-filters{grid-template-columns:1.5fr 1fr 1fr;gap:14px;display:grid}.pick-filters label{color:var(--muted);gap:7px;font-size:11px;font-weight:650;display:grid}.pick-filters input,.pick-filters select{border:1px solid var(--border);background:var(--surface,#fffef8);width:100%;min-width:0;color:var(--text,#26352e);border-radius:7px;padding:11px 12px;font-size:13px}.pick-results-note{color:var(--muted);padding:20px 0 14px;font-size:12px}.pick-first-visit{background:var(--success-surface,#eaf0e4);color:var(--green);border-radius:8px;margin-bottom:18px;padding:14px 17px;font-size:13px;line-height:1.7}.pick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.pick-card{border:1px solid var(--border);background:var(--surface,#fffef8);border-radius:12px;flex-direction:column;min-width:0;padding:20px;display:flex}.pick-card-selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.pick-card-meta,.pick-card-bottom{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:11px;display:flex}.pick-badge{background:var(--surface-hover,#eceee5);border-radius:5px;padding:4px 8px;font-size:10px;font-weight:650}.pick-badge-easy{color:var(--success,#275a40);background:var(--success-surface,#e4eddd)}.pick-badge-building{color:var(--warning,#765f28);background:var(--warning-surface,#f2ebd4)}.pick-badge-stretch{color:var(--warning,#875835);background:var(--warning-surface,#f5e4d8)}.pick-badge-new{color:var(--info,#52677f);background:var(--info-surface,#e8edf1)}.pick-card h3{letter-spacing:-.4px;overflow-wrap:anywhere;margin:17px 0 8px;font-size:21px;font-weight:600;line-height:1.45}.pick-reason{min-height:40px;color:var(--muted);font-size:12px;line-height:1.65}.pick-card-stats{justify-content:space-between;gap:8px;margin:20px 0 12px;display:flex}.pick-card-stats>div{gap:5px;display:grid}.pick-card-stats strong{font-variant-numeric:tabular-nums;font-size:18px}.pick-card-stats small{color:var(--muted);font-size:9px;font-weight:500}.pick-card-stats span{color:var(--muted);font-size:10px;line-height:1.4}.pick-recent-speeds{color:var(--muted);margin-bottom:15px;font-size:10px;line-height:1.6}.pick-card-bottom{border-top:1px solid var(--border-soft,#edeee5);margin-top:auto;padding-top:16px}.pick-card-bottom>span{font-size:10px;line-height:1.6}.pick-card-bottom .primary-button{flex-shrink:0;padding:9px 12px;font-size:12px}.pick-show-more{margin:22px auto;display:block}.pick-empty{text-align:center;border:1px dashed var(--border);border-radius:10px;padding:40px 20px}.pick-empty p{color:var(--muted);margin:12px 0 20px;font-size:13px}.pick-explainer{color:var(--muted);margin-top:25px;font-size:12px;line-height:1.8}.pick-explainer summary,.pick-sources summary{cursor:pointer;color:var(--green);font-weight:600}.pick-explainer p{max-width:850px;margin-top:12px}.pick-practice{margin-bottom:12px}.pick-practice h2{overflow-wrap:anywhere;margin-top:8px}.pick-practice-heading>button{flex-shrink:0}.pick-target-control{flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0 18px;font-size:12px;display:flex}.pick-target-control .secondary-button{padding:5px 10px}.pick-feedback{min-height:48px;color:var(--green);padding:18px 0 10px;font-size:14px;line-height:1.7;display:grid}.pick-feedback>*{grid-area:1/1}.pick-feedback-reserve{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.pick-feedback strong{font-size:22px}.pick-streak{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;font-size:12px;line-height:1.6;display:flex}.pick-streak strong{color:var(--green)}.pick-streak-dots{flex-wrap:wrap;gap:6px;display:flex}.pick-streak-dots i{border:1px solid var(--border);border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-style:normal;display:grid}.pick-streak-dots .pick-streak-met{color:var(--on-accent,white);background:var(--green);border-color:var(--green)}.retry-dialog.pick-success-dialog{width:min(100%,520px)}.pick-success-dialog .eyebrow{margin-bottom:8px;font-size:10px}.pick-success-speeds{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.pick-success-speeds>span{color:var(--green);background:var(--surface-selected,#e7eddd);border-radius:7px;padding:9px 12px;font-size:11px}.pick-success-speeds strong{font-size:19px}.pick-success-next{overflow-wrap:anywhere;gap:6px;margin-bottom:18px;font-size:12px;line-height:1.7;display:grid}.pick-success-next>span{color:var(--muted)}.pick-success-source{border:1px solid var(--border);overflow-wrap:anywhere;border-radius:8px;margin-bottom:18px;padding:14px;font-size:12px}.pick-success-source label{color:var(--muted);gap:8px;font-size:11px;display:grid}.pick-success-source select{border:1px solid var(--border);background:var(--surface,#fffef8);width:100%;min-width:0;color:var(--text,#26352e);border-radius:6px;padding:8px;font-size:12px}.pick-success-dialog .pick-success-source p{margin:10px 0 6px}.pick-success-source>span{color:var(--muted);font-size:11px}.pick-success-actions{flex-direction:column}.retry-dialog-actions.pick-success-actions button{flex:none}.pick-success-dialog .pick-success-note{color:var(--muted);margin:14px 0 0;font-size:11px}.pick-practice-footer{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:11px;display:flex}.pick-practice-footer>span:last-child{margin-left:auto}.pick-sources{border:1px solid var(--border);background:var(--surface,#fffef8);border-radius:10px;margin:12px 0 30px;padding:16px 20px;font-size:13px}.pick-sources>p{color:var(--muted);margin-top:12px;font-size:12px}.pick-sources ul{max-height:320px;margin:14px 0 0;padding:0;list-style:none;overflow-y:auto}.pick-sources li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding:14px 0;display:flex}.pick-sources li p{line-height:1.7}.pick-sources li span{color:var(--muted);margin-top:6px;font-size:11px;display:block}.pick-sources li button{flex-shrink:0;padding:8px 12px;font-size:11px}@media (width<=1000px){.pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pick-pace-options{gap:7px}.pick-pace-options>button{padding:13px 10px}}@media (width<=700px){.picks-heading{flex-direction:column;gap:15px}.picks-library-heading{flex-direction:column;gap:12px}.pick-pace-options{grid-template-columns:repeat(2,minmax(0,1fr))}.pick-pace-options>button:first-child{grid-column:1/-1}.pick-pace-options small{font-size:11px}.pick-filters{grid-template-columns:1fr 1fr}.pick-filters>label:first-child{grid-column:1/-1}.pick-grid{grid-template-columns:1fr}.pick-practice-heading{flex-direction:column;gap:15px}.pick-sources li{flex-direction:column;align-items:start;gap:12px}.pick-practice-footer>span:last-child{margin-left:0}}.retry-dialog-backdrop{z-index:100;background:var(--overlay,#14231c59);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.retry-dialog{box-sizing:border-box;border:1px solid var(--border);background:var(--surface,#fffef8);width:min(100%,440px);max-height:calc(100dvh - 40px);box-shadow:0 16px 60px var(--shadow,#14231c33);border-radius:16px;padding:24px;overflow:auto}.retry-dialog h2{margin:0 0 12px;font-size:22px}.retry-dialog p{overflow-wrap:anywhere;margin:0 0 20px;line-height:1.6}.retry-dialog-actions{flex-wrap:wrap;gap:10px;display:flex}.retry-dialog-actions button{flex:160px}.sentence-intro-dialog .sentence-intro-score strong{font-size:28px}.sentence-intro-dialog .sentence-intro-tip{color:var(--muted);margin:20px 0 0;font-size:13px}.retry-dialog.sentence-recovery{width:min(100%,760px)}.recovery-phrase{border-left:3px solid var(--green);background:var(--page,#f6f6f0);overflow-wrap:anywhere;margin:0 0 24px;padding:16px;font-size:24px;line-height:1.6}.sentence-recovery .target-display{margin-bottom:20px}.sentence-recovery .pick-feedback{box-sizing:border-box;min-height:calc(3.2em + 28px);line-height:1.6}.word-workshop{padding-bottom:32px}.workshop-context{color:var(--muted);overflow-wrap:anywhere;margin:-8px 0 20px}.workshop-phases{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.workshop-phases button{color:var(--green);background:var(--surface-hover,#e9ece3);border-radius:8px;padding:12px 16px}.workshop-phases button[aria-current=step]{background:var(--green);color:var(--on-accent,white)}.workshop-connections{flex-wrap:wrap;gap:8px;max-height:180px;margin:16px 0;display:flex;overflow-y:auto}.workshop-connections button{text-align:left;overflow-wrap:anywhere;flex-direction:column;gap:3px;min-width:0;display:flex}.workshop-connections small{font-size:11px;font-weight:400}.workshop-connections strong{font-family:ui-monospace,Consolas,monospace}.workshop-connections button[aria-current=step]{background:var(--green);color:var(--on-accent,white);border-color:var(--green)}.workshop-phase-shortcuts{margin:-12px 0 24px}.workshop-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.workshop-layout-whole{grid-template-columns:minmax(0,1fr)}.word-workshop .history-card{min-width:0;margin-top:0;margin-bottom:24px}.word-workshop h2{margin-bottom:12px;font-size:23px}.word-workshop h3{margin:24px 0 12px;font-size:16px}.word-workshop p{line-height:1.6}.workshop-practice .eyebrow{margin-bottom:10px}.workshop-prompt{overflow-wrap:anywhere;white-space:pre-wrap;letter-spacing:1px;margin:32px 0 16px;font:650 clamp(24px,3.4vw,42px)/1.5 ui-monospace,Consolas,monospace}.workshop-typing{margin:24px 0}.workshop-typing .drill-kicker{font-size:11px}.workshop-assembly-label{color:var(--green);margin:24px 0 10px;font-size:13px;font-weight:600}.workshop-assembly-prompt{flex-wrap:wrap;gap:12px;margin-top:0;display:flex}.workshop-assembly-piece{border:1px solid var(--border);background:var(--surface-subtle,#f8f9f3);border-radius:12px;flex-direction:column;flex:145px;min-width:0;padding:14px;display:flex}.workshop-piece-letters{padding-bottom:12px;display:block}.workshop-piece-result{border-top:1px solid var(--border);letter-spacing:normal;white-space:normal;grid-template-rows:42px calc(2.8em + 14px) 2.8em 2.8em;gap:10px;padding-top:14px;font:400 13px/1.4 system-ui,sans-serif;display:grid}.workshop-copy-result{grid-template-rows:42px calc(2.8em + 14px) 2.8em}.workshop-piece-speed{color:var(--green);font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;display:flex}.workshop-piece-speed>strong{letter-spacing:-1px;font-size:42px;line-height:1}.workshop-piece-speed>span{font-size:12px;font-weight:600}.workshop-piece-solo{color:var(--muted)}.workshop-piece-solo strong{color:var(--text,#26352e);white-space:nowrap}.workshop-piece-target{background:var(--success-surface,#e1eddc);color:var(--green);border-radius:6px;padding:7px 8px;font-weight:650;display:block}.workshop-piece-target[aria-hidden=true]{visibility:hidden}.workshop-piece-comparison{color:var(--muted);display:block}.workshop-assembly-piece[data-target-status=below]{background:var(--error-surface,#fff3ed);border-color:var(--error-border,#c16a50)}.workshop-assembly-piece[data-target-status=below] .workshop-piece-speed{color:var(--error,#963823)}.workshop-assembly-piece[data-target-status=below] .workshop-piece-target{background:var(--error-surface,#f9dfd4);color:var(--error,#87321f)}.workshop-assembly-active{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.workshop-assembly-cue{color:var(--green);min-height:45px;font-size:14px}.workshop-assembly-gaps{color:var(--muted);flex-wrap:wrap;gap:8px 20px;font-size:12px;display:flex}.workshop-assembly-gaps p{margin:0}.workshop-assembly-gaps strong{font-family:ui-monospace,Consolas,monospace}.workshop-assemble-all{width:100%;margin-top:16px}.workshop-assemble-all[aria-pressed=true]{background:var(--success-surface,#e3eddc);border-color:var(--success-border,#769b72)}.word-workshop .workshop-feedback{min-height:65px;color:var(--green);padding-top:12px;font-size:14px}.workshop-score{flex-wrap:wrap;align-items:baseline;gap:12px;margin:8px 0 18px;display:flex}.workshop-score>strong{color:var(--green);letter-spacing:-3px;font-size:64px;line-height:1}.workshop-score>span,.workshop-note{color:var(--muted);font-size:13px}.workshop-stats{flex-wrap:wrap;gap:20px;margin:16px 0;display:flex}.workshop-stats>span{color:var(--muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.workshop-stats strong{color:var(--green);font-size:19px}.workshop-actions{flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0 12px;display:flex}.workshop-actions kbd{margin-left:6px;font-size:11px}.workshop-boundaries{flex-wrap:wrap;margin:24px 0 14px;display:flex}.workshop-boundary-letter{align-items:center;font:600 25px ui-monospace,Consolas,monospace;display:inline-flex}.workshop-boundary-letter>button{min-width:25px;height:44px;color:var(--text-muted,#748475);background:0 0;border-radius:5px;padding:4px}.workshop-boundary-letter>button[aria-pressed=true]{color:var(--warning,#bc6b2d);background:var(--warning-surface,#f8ebd9)}.workshop-boundary-letter>button:hover{background:var(--success-surface,#e7eddf)}.workshop-group-list{flex-direction:column;gap:8px;display:flex}.workshop-segment-target{color:var(--muted);white-space:nowrap;font-size:11px}.workshop-group-list>button,.workshop-join>button:first-child{text-align:left;border:1px solid var(--border);background:var(--surface-subtle,#f8f9f3);width:100%;color:var(--green);overflow-wrap:anywhere;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.workshop-group-list button[aria-pressed=true]{background:var(--success-surface,#e3eddc);border-color:var(--success-border,#769b72)}.workshop-group-list strong{font:600 19px ui-monospace,Consolas,monospace}.workshop-group-list span{color:var(--muted);font-size:12px}.workshop-join .text-button{margin:8px 0;font-size:12px}.workshop-rhythm-chart{gap:8px;margin:28px 0 8px;padding-bottom:8px;display:flex;overflow-x:auto}.workshop-rhythm-chart>div{flex-direction:column;flex:1 0 47px;align-items:center;gap:8px;min-width:47px;display:flex}.workshop-rhythm-chart span{color:var(--muted);white-space:nowrap;font-size:11px}.workshop-rhythm-chart strong{font:600 23px ui-monospace,Consolas,monospace}.workshop-rhythm-chart small{min-height:16px;color:var(--error,#a43629);font-size:10px}.workshop-bar-track{background:var(--surface-hover,#eff1e9);border-radius:4px;align-items:end;width:26px;height:95px;display:flex}.workshop-bar{background:var(--success-fill,#7b9e83);border-radius:4px;width:100%}.workshop-rhythm-join .workshop-bar{background:var(--warning,#bc6b2d)}.workshop-open{font-size:13px}.word-workshop .page-heading{padding-top:28px;padding-bottom:20px}.word-workshop .workshop-typing{margin:16px 0}.word-workshop .workshop-assembly-cue{min-height:0;margin:8px 0}.word-workshop .workshop-feedback{min-height:2.8em;margin:8px 0 0;padding-top:0}.phrase-practice-instruction{margin-bottom:0}.phrase-scoreboard{margin-bottom:16px}.phrase-score-label{color:var(--green);margin:0 0 8px;font-size:12px;font-weight:600}.phrase-score-strip{flex-wrap:wrap;gap:8px;display:flex}.phrase-score-tile{border:1px solid var(--border);background:var(--surface-subtle,#f3f4ee);width:96px;min-width:0;color:var(--muted);border-radius:8px;flex-direction:column;gap:4px;padding:7px 10px;display:flex}.phrase-score-word{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.phrase-score-value{justify-content:space-between;align-items:center;gap:6px;line-height:1.1;display:flex}.phrase-score-value strong{font-variant-numeric:tabular-nums;font-size:24px}.phrase-score-value>span{font-size:15px;font-weight:700}.phrase-score-tile[data-target-status=met]{background:var(--success-surface,#e3eddc);border-color:var(--success-border,#8caa80);color:var(--green)}.phrase-score-tile[data-target-status=below]{background:var(--error-surface,#fff0e9);border-color:var(--error-border,#c16a50);color:var(--error,#963823)}.phrase-score-tile[aria-current=true]{outline:2px solid var(--green);outline-offset:2px}.phrase-score-total{border-width:2px;width:112px;margin-left:4px}.phrase-score-key{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:8px 0 0;font-size:11px;display:flex}.phrase-practice-details{border-top:1px solid var(--border);padding-top:12px}.phrase-practice-details summary{width:fit-content;color:var(--green);cursor:pointer;font-size:13px}.phrase-word-links{flex-wrap:wrap;gap:8px 20px;font-size:13px;display:flex}.phrase-word-links .text-button{font-size:13px}.phrase-workshop .phrase-connect-layout{grid-template-columns:minmax(0,1fr)}.word-workshop .workshop-phases{display:flex}.word-workshop .workshop-phases button{flex:1}.phrase-window-list{margin-top:16px}.workshop-library>p{color:var(--muted);margin:16px 0;font-size:13px}.workshop-library .workshop-group-list>button{flex-wrap:wrap}@media (width<=760px){.workshop-layout{grid-template-columns:minmax(0,1fr);gap:0}.workshop-phases{grid-template-columns:1fr 1fr;display:grid}.workshop-phases button{padding:10px 8px;font-size:12px}.word-workshop .page-heading{flex-wrap:wrap;align-items:start;gap:16px}.workshop-group-list>button{flex-wrap:wrap}}@media (width<=600px){.workshop-assembly-prompt{gap:8px}.workshop-assembly-piece{flex-basis:118px;padding:12px 10px}.workshop-piece-speed>strong{font-size:36px}.workshop-piece-result{grid-template-rows:36px calc(2.8em + 12px) 2.8em 2.8em;gap:8px;font-size:12px}.workshop-piece-target{padding:6px}.phrase-score-strip{gap:6px}.phrase-score-tile{flex:42px;min-width:42px;max-width:96px;padding:7px 5px}.phrase-score-total{flex-basis:80px;max-width:112px;margin-left:0}.phrase-score-value strong{font-size:18px}.phrase-score-value{gap:2px}.phrase-score-value>span{font-size:12px}}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}:where(input:not(.typing-input),select,textarea:not(.typing-input)){background-color:var(--surface,#fffef8)}button,select{cursor:pointer}button{transition:background .15s,border-color .15s}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--warning,#bc6b2d);outline-offset:4px}button{border:0}a{color:inherit}h1,h2,h3,p{margin:0}strong{font-weight:650}.app-shell{max-width:1240px;margin:auto;padding:0 48px}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;height:102px;display:flex}.wordmark{color:var(--green);letter-spacing:-1.3px;align-items:center;font-size:26px;text-decoration:none;display:flex}.wordmark strong{font-weight:800}.wordmark strong span{font-weight:500}.brand-icon{color:var(--brand-ink,#e0eea9);background:var(--green);letter-spacing:0;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;margin-right:10px;font-size:30px;display:flex}.club{color:var(--muted);letter-spacing:-.5px;align-self:end;padding-bottom:2px;font-size:18px}.site-header nav{gap:8px;display:flex}.site-header nav button{color:var(--muted);background:0 0;border-radius:8px;padding:10px 11px;font-size:14px;font-weight:600}.site-header nav .nav-active{background:var(--surface-hover,#e8ebdf);color:var(--green)}.nav-count{background:var(--surface-selected,#dce3d1);border-radius:4px;margin-left:7px;padding:2px 5px;font-size:11px}.local-status{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.local-status>span{background:var(--success-fill,#64906f);border-radius:50%;width:6px;height:6px}.page-heading{justify-content:space-between;align-items:center;gap:24px;padding:45px 0 33px;display:flex}.eyebrow{color:var(--green);letter-spacing:1.7px;font-size:10px;font-weight:750;line-height:1.5}h1{letter-spacing:-1.7px;margin:8px 0 11px;font-size:clamp(30px,3.7vw,43px);font-weight:600;line-height:1.2}.page-heading>div>p:last-child{color:var(--muted);font-size:14px;line-height:1.7}.heading-note{flex-direction:column;flex-shrink:0;align-items:end;display:flex}.heading-note input{border:1px solid var(--border-strong,#d2d5c9);background:var(--surface,#fffef9);width:100px;min-height:44px;color:var(--green);letter-spacing:-1px;text-align:right;border-radius:7px;padding:4px 8px;font-size:30px;font-weight:650;line-height:1}.heading-note input:hover{border-color:var(--green)}.heading-note label{color:var(--muted);margin-top:7px;font-size:11px}.workspace{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.settings{background:var(--surface-subtle,#efefe6);border:1px solid var(--border);border-radius:14px;overflow:hidden}.mobile-settings-toggle{width:100%;color:var(--green);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:15px;padding:16px 21px;font-size:13px;font-weight:650;display:flex}.mobile-settings-toggle small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:400;line-height:1.7;display:block}.mobile-settings-toggle>span:last-child{font-size:19px}.settings:not(.settings-expanded) .settings-section{display:none}.settings-expanded .training-settings{border-top:1px solid var(--border)}.practice-heading{padding:22px 0}.practice-heading h1{letter-spacing:-.8px;margin:0 0 6px;font-size:clamp(24px,3vw,32px)}.daily-goal{border:1px solid var(--success-border,#ccd7bb);background:var(--success-surface,#eef2e5);border-radius:14px;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:22px 32px;margin-bottom:24px;padding:22px 26px;display:grid}.daily-goal:focus-visible{outline:2px solid var(--green);outline-offset:4px}.daily-goal-main{align-items:center;gap:20px;min-width:0;display:flex}.daily-goal-mark{border:1px solid var(--success-border,#a9bc91);width:72px;height:72px;color:var(--green);background:var(--surface-subtle,#f8faef);border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.daily-goal-mark strong{font-size:32px;font-weight:550;line-height:1.1}.daily-goal-mark span{font-size:10px}.daily-goal-copy h2{color:var(--green);letter-spacing:-.5px;margin:5px 0 7px;font-size:21px;font-weight:600}.daily-goal-copy>p:last-of-type{max-width:570px;color:var(--text-secondary,#526349);font-size:12px;line-height:1.7}.daily-goal-link{color:var(--green);background:0 0;margin-top:12px;padding:0;font-size:12px;font-weight:650}.daily-goal-link span{margin-left:6px}.daily-week{border-left:1px solid var(--border-soft,#ced9c1);min-width:0;padding-left:25px}.daily-week-heading{color:var(--green);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;font-size:11px;display:flex}.daily-week-heading>span{color:var(--text-secondary,#526349);font-size:10px}.daily-week ol{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:13px 0 10px;padding:0;list-style:none;display:grid}.daily-week li{color:var(--text-muted,#65745a);flex-direction:column;align-items:center;gap:7px;display:flex}.daily-day-label{font-size:9px}.daily-day-dot{border:1px solid var(--border-strong,#c5cfb9);background:var(--surface-subtle,#f8faef);border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;display:grid}.daily-week [aria-current=date] .daily-day-label{color:var(--green);font-weight:750}.daily-week [aria-current=date] .daily-day-dot{outline:1px solid var(--success-border,#77976c);outline-offset:2px}.daily-day-practiced .daily-day-dot{background:var(--success-surface,#d5e2c5);border-color:var(--success-border,#90a77b);color:var(--green);font-size:24px}.daily-day-met .daily-day-dot{background:var(--green);border-color:var(--green);color:var(--on-accent,#fff)}.daily-week-legend{color:var(--text-secondary,#526349);justify-content:space-between;gap:6px;font-size:9px;display:flex}.daily-goal-complete{background:var(--success-surface,#e8f1e7);border-color:var(--success-border,#b4ceb3)}.daily-goal-complete .daily-goal-mark{background:var(--green);border-color:var(--green);color:var(--on-accent,#fff)}.daily-goal-complete .daily-goal-mark span{font-size:34px}.daily-next{border-top:1px solid var(--border-soft,#ced9c1);color:var(--green);flex-wrap:wrap;grid-column:1/-1;align-items:baseline;gap:8px 14px;padding-top:15px;font-size:12px;display:flex}.daily-next>span{overflow-wrap:anywhere}.daily-next small{color:var(--text-secondary,#526349);font-size:11px}.achievement-daily{border:1px solid var(--border-soft,#ced9c1);background:var(--success-surface,#e8f1e7);color:var(--green);border-radius:10px;margin:0 0 20px;padding:16px;font-size:14px}.achievement-daily p{margin-top:7px;font-size:12px}.achievement-dialog.achievement-daily-win{width:min(100%,600px);padding:24px}.achievement-daily-win .achievement-emblem{font-size:40px}.achievement-daily-win h2{margin:8px 0;font-size:28px}.achievement-daily-win>p:not(.eyebrow){font-size:13px}.achievement-daily-win blockquote{margin:14px 0;font-size:14px}.achievement-daily-win .achievement-score{margin:12px 0}.achievement-daily-win .achievement-score strong{font-size:30px}.achievement-daily-win .achievement-daily{margin-bottom:14px;padding:12px;font-size:13px}.achievement-daily-win .achievement-actions button{padding-top:10px;padding-bottom:10px}@media (width<=800px){.daily-goal{grid-template-columns:1fr;gap:20px;padding:20px}.daily-week{border-left:0;border-top:1px solid var(--border-soft,#ced9c1);padding:17px 0 0}.daily-goal-mark{width:56px;height:56px}.daily-goal-main{gap:14px}.daily-goal-copy h2{font-size:19px}.daily-next{flex-direction:column;align-items:start}}.drill-prompt{container-type:inline-size}.drill-controls{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px 16px;margin-top:12px;display:grid}.drill-controls .word-target{grid-area:1/1;justify-self:start;margin-top:0}.drill-controls .workshop-open{grid-area:1/2;justify-self:center}.drill-controls .sentence-picker{grid-area:1/3;justify-self:end}@container (width<=650px){.drill-controls{grid-template-columns:minmax(0,1fr) auto}.drill-controls .sentence-picker{grid-column:2}.drill-controls .workshop-open{grid-area:2/1/auto/-1}}.settings-section{padding:24px 21px}.settings-section+.settings-section{border-top:1px solid var(--border)}.settings h2{letter-spacing:-.6px;margin:6px 0 22px;font-size:20px;font-weight:600}.field-label{margin-bottom:8px;font-size:12px;font-weight:650;display:block}select,.target-field{background:var(--surface,#fffef9);width:100%;color:var(--text,#26352e);border:1px solid var(--border-strong,#d2d5c9);border-radius:7px}select{padding:11px 9px;font-size:12px}.field-hint{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.65}.settings .field-hint+.field-label{margin-top:24px}.target-field{align-items:center;padding-right:12px;display:flex}.target-field input{width:100%;min-width:0;color:var(--green);background:0 0;border:0;border-radius:7px;padding:10px 12px;font-size:18px;font-weight:700}.target-field>span{color:var(--muted);font-size:10px;font-weight:600}.level-options{flex-direction:column;gap:5px;display:flex}.level-options button{color:var(--text-secondary,#56645b);text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:11px;padding:10px 9px;font-size:12px;display:flex}.level-options .level-active{background:var(--surface-selected,#e0e6d5);color:var(--green);border-color:var(--success-border,#ccd8bd);font-weight:650}.level-number{opacity:.65;font-variant-numeric:tabular-nums;font-size:10px}.level-check{margin-left:auto}.text-button{color:var(--green);background:0 0;padding:8px 0;font-size:12px;font-weight:600}.text-button:hover:not(:disabled){color:var(--success,#0b7b58)}.custom-toggle{text-align:left;justify-content:space-between;width:100%;padding:0;display:flex}.custom-toggle>span{font-size:17px}.custom-form{margin-top:15px}.custom-form textarea{background:var(--surface,#fffef9);border:1px solid var(--border-strong,#d2d5c9);resize:vertical;border-radius:7px;width:100%;padding:10px;font-size:12px;line-height:1.7}.custom-form .primary-button{width:100%;margin-top:13px;font-size:11px}.error-text{color:var(--error,#9e4029);margin-top:10px;font-size:12px;line-height:1.5}.practice-column{flex-direction:column;gap:16px;min-width:0;display:flex}.practice-card{background:var(--surface,#fffefa);border:1px solid var(--border);box-shadow:0 3px 10px var(--shadow-soft,#273e2911);border-radius:14px;padding:25px 30px 19px;position:relative}.zen-toggle-row{justify-content:flex-end;gap:18px;margin-bottom:12px;display:flex}.zen-toggle,.zen-navigation-toggle{font-size:13px}.zen-toggle[aria-pressed=true]{color:var(--green);font-weight:650}.practice-home .drill-prompt .target-display,.practice-home .drill-kicker,.practice-home .drill-attempts{display:none}.start-focused-practice{margin-top:16px}.practice-exit-notice{z-index:2;color:var(--green);font-size:13px;position:fixed;top:55px;right:30px}.zen-focus .site-header,.zen-focus footer,.zen-focus main>:not(.workspace):not(.notice),.zen-focus .workspace>aside,.zen-focus .practice-column>:not(.practice-card),.zen-focus .drill-attempts,.zen-focus .drill-controls,.zen-focus .tiny-word-note,.zen-focus .topic-hint-action,.zen-focus .feedback:not(.feedback-zen-notice),.zen-focus .run-score,.zen-focus .result-strip,.zen-focus .session-feedback,.zen-focus .collection-navigation,.zen-focus .shortcut-note,.zen-focus .navigation-shortcuts{display:none}.zen-focus .practice-card{box-sizing:border-box;width:100%;max-width:900px;box-shadow:none;background:0 0;border:0;margin:0 auto}.zen-focus .zen-toggle-row{z-index:2;flex-wrap:wrap;max-width:calc(100vw - 32px);margin:0;position:fixed;top:20px;right:30px}.zen-focus .workspace{box-sizing:border-box;align-content:start;min-height:100vh;padding-top:calc(50vh - 37px)}.zen-focus .drill-area{border:0;margin:0;padding:0;display:block;position:relative}.zen-focus .drill-plan{z-index:1;border:1px solid var(--border);background:var(--surface,#fffefa);max-height:85vh;box-shadow:0 4px 18px var(--shadow-soft,#273e291a);opacity:0;visibility:hidden;pointer-events:none;border-radius:12px;padding:16px;transition:opacity .18s,visibility 0s linear .18s;position:absolute;top:0;left:0;right:0;overflow:auto;transform:translateY(-35%)}.zen-navigation-sentence{color:var(--green);overflow-wrap:anywhere;margin:0 4px 14px;line-height:1.45}.zen-navigation-sentence span{color:var(--muted);margin-bottom:3px;font-size:11px;font-weight:650;display:block}.zen-focus .position-map{box-sizing:content-box;align-content:flex-start;height:86px;max-height:none;margin:-4px;padding:4px;overflow-y:auto}.zen-focus .position-map button{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:40px;overflow:hidden}.zen-focus .drill-plan.zen-navigation-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s}.zen-focus .drill-instruction-row{margin:0}.zen-focus .sentence-drill-progress{inset-inline:0;margin:0 0 24px;position:absolute;bottom:100%}.zen-focus .target-display{background:0 0}.zen-focus .target-display-focused{outline:none}.zen-result{min-height:calc(12px + 1.5em);color:var(--green);padding-top:12px;font-size:14px;font-weight:650;line-height:1.5}.zen-result>div{animation:3s ease-in forwards zen-result-fade}.zen-result>.zen-result-retry{animation-duration:5s}.zen-result-tip{color:var(--text,#26352e);font-weight:400}.typing-correction-tip:not(:empty){color:var(--text,#26352e);margin-top:8px;font-size:14px;line-height:1.5}@keyframes zen-result-fade{0%,55%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.zen-result>div{animation:none}.zen-focus .drill-plan{transition:none}}.warmup-panel{max-width:900px;margin:24px auto}.warmup-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.warmup-heading h1{margin-bottom:8px}.warmup-panel>.target-display{margin-top:16px}.warmup-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.warmup-feedback{min-height:3em;color:var(--green-dark,var(--success,#254d37));margin-top:18px}.collection-navigation{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;display:flex}.collection-complete{background:var(--warning-surface,#fff7de);border:1px solid var(--warning-border,#dfc671);border-radius:12px;margin:18px 0;padding:22px}.collection-complete h2{color:var(--green);margin:0 0 10px}.collection-complete p{line-height:1.5}.collection-complete>button{white-space:normal;overflow-wrap:anywhere;margin:8px 12px 0 0}.celebration{z-index:5;text-align:center;background:var(--success-surface,#edf5e5);width:min(90%,400px);color:var(--green);border:1px solid var(--success-border,#a3c488);box-shadow:0 8px 30px var(--shadow-soft,#174d3e20);pointer-events:none;border-radius:12px;justify-items:center;gap:5px;padding:16px 22px;animation:.18s ease-out celebration-arrive;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.celebration strong{font-size:17px}.zen-success{flex-wrap:wrap;justify-content:center;gap:6px 10px;width:max-content;max-width:90%;padding:10px 18px;display:flex}.zen-success strong{font-size:14px}.celebration>span:not(.celebration-icon){font-size:12px}.celebration small{color:var(--muted);font-size:10px}.celebration-icon{font-size:24px;line-height:1}.celebration-sentence{background:var(--warning-surface,#fff7de);border-color:var(--warning-border,#dfc671);width:min(90%,460px);padding:24px}.celebration-sentence strong{font-size:24px}.celebration-sentence .celebration-icon{color:var(--warning,#9c7521);font-size:38px}@keyframes celebration-arrive{0%{opacity:0;transform:translate(-50%,calc(-50% - 8px))}to{opacity:1;transform:translate(-50%,-50%)}}.achievement-backdrop{z-index:100;background:var(--overlay,#153c32a6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.achievement-dialog{isolation:isolate;border:1px solid var(--border-strong,#b4c79c);background:var(--surface,#fbfff6);width:min(100%,540px);max-height:90dvh;color:var(--text,#26352e);text-align:center;box-shadow:0 24px 100px var(--shadow,#09251f55);border-radius:24px;padding:clamp(22px,5vw,42px);animation:.4s ease-out both achievement-arrive;position:relative;overflow:auto}.achievement-collection{background:radial-gradient(ellipse at top, var(--warning-surface,#ffedb5), var(--warning-surface,#fffcf3) 70%);border:2px solid var(--warning-border,#dfc671);width:min(100%,620px)}.achievement-dialog h2{margin:12px 0;font-size:clamp(26px,5vw,36px)}.achievement-dialog p{line-height:1.6}.achievement-dialog blockquote{overflow-wrap:anywhere;margin:20px 0;font-style:italic}.achievement-emblem{color:var(--warning,#b58820);font-size:60px;animation:.65s ease-out both achievement-arrive}.achievement-collection .achievement-emblem{font-size:84px}.achievement-score{color:var(--green);margin:22px 0}.achievement-score strong{font-size:36px}.achievement-score span{margin-top:4px;font-size:13px;display:block}.achievement-actions{gap:10px;display:grid}.achievement-actions button{white-space:normal;overflow-wrap:anywhere}.achievement-confetti{pointer-events:none;z-index:-1;position:absolute;inset:0;overflow:hidden}.achievement-confetti i{width:8px;height:15px;animation:2.4s ease-out both achievement-confetti;position:absolute;top:-20px}@keyframes achievement-arrive{0%{opacity:0;transform:translateY(16px)scale(.9)}to{opacity:1;transform:none}}@keyframes achievement-confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(580px)rotate(400deg)}}@media (prefers-reduced-motion:reduce){.achievement-dialog,.achievement-emblem,.achievement-confetti i{animation:none}.achievement-confetti{display:none}}.sentence-picker{min-width:0;color:var(--muted);white-space:nowrap;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:11px;display:flex}.sentence-picker select{background:var(--surface-subtle,#efefe6);border:0;width:auto;max-width:clamp(140px,22vw,260px);padding:6px 7px;font-size:11px}.stage-tabs{flex-wrap:wrap;gap:5px;margin-bottom:11px;display:flex}.stage-tabs button{color:var(--muted);background:0 0;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:550;display:inline-flex}.stage-tabs button:hover{background:var(--surface-subtle,#eff1e7)}.stage-tabs .stage-complete{color:var(--green);background:var(--surface-selected,#eaf0da)}.stage-check{font-size:12px;font-weight:750}.stage-tabs .stage-active{background:var(--green);color:var(--on-accent,#fff)}.drill-plan{grid-area:plan;min-width:0}.position-map{flex-wrap:wrap;gap:6px;max-height:140px;margin:-4px;padding:4px;display:flex;overflow-y:auto}.position-map button{border:1px solid var(--border-soft,#e1e2d8);background:var(--surface-subtle,#f6f6ef);color:var(--text-muted,#65705f);overflow-wrap:anywhere;text-align:left;border-radius:5px;padding:6px 9px;font-size:11px;font-weight:400}.position-status{text-align:center;width:1em;margin-left:.3em;display:inline-block}.position-map .position-mastered{background:var(--success-surface,#dcebd9);color:var(--success,#295d31)}.position-map .position-active{border-color:var(--green);color:var(--on-accent,#fff);background:var(--green)}.stage-tabs button:focus-visible,.position-map button:focus-visible{outline:3px solid var(--warning,#bc6b2d);outline-offset:1px}.drill-area{border-bottom:1px solid var(--border);grid-template:"plan score""prompt score"1fr/minmax(0,1fr) 220px;align-items:start;gap:12px 28px;margin-bottom:20px;padding:0 0 20px;scroll-margin-top:16px;display:grid}.drill-area>.run-score{grid-area:score;align-self:start}.drill-prompt-row{grid-area:prompt;min-width:0}.drill-prompt{min-width:0;position:relative}.target-display{cursor:text;background:var(--surface-subtle,#f5f5ed);border-radius:5px;margin:0 -4px;padding:12px 4px 8px;transition:background-color .15s ease-out;position:relative}.target-display-focused{outline:2px solid var(--success-border,#70985d);outline-offset:4px;background:0 0}.word-target{color:var(--green);margin-top:12px}.word-target-summary{flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-size:12px;display:flex}.word-target-summary .text-button{text-underline-offset:3px;font-size:12px;text-decoration:underline}.word-target-usual{color:var(--muted);font-size:11px}.word-target-editor{border:1px solid var(--border-soft,#dce2d2);background:var(--surface-subtle,#f2f4eb);border-radius:10px;max-width:370px;margin-top:10px;padding:16px}.word-target-title{overflow-wrap:anywhere;font-size:13px;font-weight:600}.word-target-stepper{justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}.word-target-stepper button{min-width:44px;min-height:44px}.word-target-stepper output{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:26px;font-weight:650}.word-target-stepper small{font-size:11px}.word-target-detail{color:var(--muted);font-size:11px;line-height:1.6}.word-target-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;display:flex}.word-target-actions .text-button{font-size:11px}.word-target button[aria-disabled=true]{opacity:.45;cursor:default}.topic-hint-action .text-button{font-size:11px}.hint-setting{align-items:center;gap:8px;margin-bottom:15px;font-size:12px;display:flex}.hint-setting input{accent-color:var(--green)}.topic-progress,.topic-editor{background:var(--surface-subtle,#f3f5ed);border:1px solid var(--border);border-radius:12px;margin:16px 0;padding:22px}.topic-progress h3{font-size:16px}.topic-progress p,.topic-editor>p{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.6}.topic-editor label{margin:14px 0;font-size:12px;font-weight:600;display:block}.topic-editor input,.topic-editor textarea,.topic-editor select{border:1px solid var(--success-border,#cbd7b9);background:var(--surface,#fffefa);width:100%;color:var(--ink);font:inherit;border-radius:6px;margin-top:6px;padding:10px;display:block}.topic-editor-line{border-top:1px solid var(--border);margin-top:16px;padding-top:8px}.topic-editor-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:18px;display:flex}.journey-topic-filter{align-items:center;gap:12px;margin:20px 0;font-size:13px;display:flex}.journey-topic-filter select{border:1px solid var(--border);background:var(--surface,#fffefa);max-width:65%;color:var(--green);border-radius:6px;padding:9px 12px}.run-score{background:var(--surface-subtle,#f2f4eb);border:1px solid var(--border-soft,#dce2d2);color:var(--green);border-radius:12px;padding:18px 20px}.run-score-success{background:var(--success-surface,#edf5e5);border-color:var(--success-border,#a3c488)}.run-score-retry{background:var(--warning-surface,#fff5e9);border-color:var(--warning-border,#e6c597);color:var(--warning,#88552a)}.run-score-label{letter-spacing:1px;text-transform:uppercase;font-size:10px;font-weight:650}.run-score-number{align-items:baseline;gap:8px;height:clamp(63px,6.825vw,86.1px);margin:5px 0;display:flex}.run-score-number strong{font-variant-numeric:tabular-nums;letter-spacing:-4px;font-size:clamp(60px,6.5vw,82px);font-weight:700;line-height:1.05}.run-score-number span{font-size:12px;font-weight:650}.run-score-number-empty{align-items:center}.run-score-number .run-score-ready{letter-spacing:-.4px;font-size:22px;font-weight:600;line-height:1.3}.run-score-target{min-height:35.2px;font-size:11px;line-height:1.6}.run-score-context{color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;height:30px;margin-top:8px;font-size:10px;line-height:1.5;display:-webkit-box;overflow:hidden}.recent-run-scores{border-top:1px solid var(--border-soft,#dddece);height:64px;margin-top:12px;padding-top:10px}.recent-run-scores>span{color:var(--muted);font-size:9px}.recent-run-scores ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:5px 0 0;padding:0;list-style:none;display:grid}.recent-run-scores li{background:var(--surface,#ffffff80);font-variant-numeric:tabular-nums;text-align:center;border-radius:4px;padding:4px 2px;font-size:13px}.recent-run-scores .recent-run-hit{background:var(--success-surface,#d5e8c8);color:var(--success,#245733)}.recent-run-scores .recent-run-placeholder{border:1px dashed var(--border-strong,#cbd4bf);color:var(--text-muted,#a2ae97);background:0 0;padding:3px 1px}.sentence-recovery .recovery-speed{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:0 16px;margin-bottom:14px;padding:14px 18px;display:grid}.sentence-recovery .recovery-speed p{margin:0}.sentence-recovery .recovery-speed .run-score-number{height:51px;margin:4px 0 0}.sentence-recovery .recovery-speed .run-score-number strong{letter-spacing:-2px;font-size:48px}.recovery-speed-target{font-size:14px}.recovery-speed-target strong{white-space:nowrap}.recovery-speed-gap{min-height:3.2em;font-size:13px;font-weight:650}.recovery-speed .recent-run-scores{grid-column:1/-1;height:auto;margin-top:8px;padding-top:8px}.recovery-speed .recent-run-scores li{font-size:15px;font-weight:600}@media (width<=480px){.sentence-recovery .recovery-speed{grid-template-columns:minmax(0,1fr);gap:8px}.recovery-speed-goal{flex-wrap:wrap;align-items:baseline;gap:0 12px;display:flex}.recovery-speed-goal .recovery-speed-gap{min-height:3.2em}}.drill-instruction-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-bottom:10px;display:flex}.drill-instruction-row .drill-kicker{margin:0}.sentence-drill-progress{color:var(--muted);margin:0 0 22px;font-size:12px;line-height:1.6}.sentence-drill-path{margin-bottom:10px}.sentence-drill-path [aria-current]{color:var(--green);font-weight:650}.sentence-drill-reps{color:var(--green);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sentence-drill-dots{gap:7px;display:flex}.sentence-drill-dots i{box-sizing:border-box;border:1px solid var(--border-strong,#91a18b);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-style:normal;display:grid}.sentence-drill-dots .sentence-drill-rep-met{background:var(--green);border-color:var(--green);color:var(--on-accent,white)}.drill-attempts{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 0 auto;font-size:11px}.drill-attempts-low{color:var(--error,#a33e32)}.drill-kicker{color:var(--text-muted,#7c8976);letter-spacing:1.5px;margin-bottom:10px;font-size:9px;font-weight:650}.drill-kicker-error{color:var(--error,#b42318)}.drill-text{isolation:isolate;letter-spacing:-.8px;color:var(--success,#174d3e);overflow-wrap:anywhere;min-height:48px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:clamp(23px,3vw,33px);line-height:1.6;position:relative}.target-word{border-radius:4px;max-width:100%;transition:background-color .14s ease-out,box-shadow .14s ease-out;display:inline-block}.target-segment+.target-segment{margin-left:.25em}.target-segment{box-shadow:0 1px 0 var(--border)}.drill-text-focused .target-word-active{background:var(--surface-selected,#e8eedd);box-shadow:0 2px 0 var(--border-strong,#a3b58c)}.target-space{color:var(--muted);white-space:pre}.target-character{transition:color .16s ease-out;position:relative}.target-entered{background:var(--error-surface,#fbe5df);min-width:100%;color:var(--error,#a33e32);letter-spacing:0;text-align:center;border-radius:3px;padding:0 2px;font-size:11px;line-height:1.3;position:absolute;bottom:calc(100% - 3px);left:0}.target-extra{color:var(--error,#a33e32);background:var(--error-surface,#fbe5df);border-radius:3px;text-decoration:line-through;position:relative}.target-cursor{z-index:1;background:var(--cursor,#174d3e26);border-bottom:3px solid var(--green);pointer-events:none;will-change:transform;border-radius:3px;transition:transform .22s cubic-bezier(.25,.46,.45,.94),width .22s ease-out,height .22s ease-out,background-color .1s ease-out,border-color .1s ease-out;position:absolute;top:0;left:0}.target-cursor[data-motion=place]{transition:none}.target-cursor-error{background:var(--cursor-error,#a33e3226);border-color:var(--error,#a33e32)}.target-cursor-ready:after{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:9px solid var(--green);position:absolute;top:calc(50% + 2px);left:-19px;transform:translateY(-50%)}.target-character-done{color:var(--text-muted,#7a8872)}.target-character-skipped{opacity:.55;text-decoration:line-through}.target-character-next{color:var(--green)}.target-character-error{color:var(--error,#a33e32);text-underline-offset:4px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.target-character-next.target-character-error{color:var(--error,#a33e32)}.tiny-word-note{color:var(--muted);margin:4px 0 10px;font-size:11px;line-height:1.5}.typing-input{resize:none;opacity:0;cursor:text;border:0;width:100%;height:100%;min-height:48px;padding:0;font-size:20px;display:block;position:absolute;inset:0}.practice-graph-dialog{z-index:10;box-sizing:border-box;border:1px solid var(--border);background:var(--surface,#fffefa);width:min(900px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:0 8px 32px var(--shadow,#273e2940);opacity:0;visibility:hidden;pointer-events:none;border-radius:12px;padding:14px;transition:opacity .18s,visibility 0s linear .18s;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.practice-graph-dialog.practice-graph-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s}.practice-graph-close{margin-left:auto;display:block}@media (prefers-reduced-motion:reduce){.practice-graph-dialog{transition:none}}.practice-speed-trace{border:1px solid var(--border);background:var(--surface-subtle,#f5f6f0);border-radius:8px;margin-top:11px;padding:12px 14px}.speed-trace h3{margin:0 0 10px;font-size:.95rem}.practice-speed-trace .exercise-empty{padding:12px 0}.practice-speed-trace .trace-detail{min-height:1.6em;margin:4px 0 0}.feedback{overflow-wrap:anywhere;min-height:0;color:var(--muted);margin-top:8px;font-size:11px;line-height:1.6;overflow-y:auto}.feedback-hint{color:var(--green);font-size:13px}.result-strip{background:var(--surface-subtle,#f5f5ed);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:10px;padding:17px 13px;display:grid}.result-strip>div{padding-left:6px}.result-strip>div>span{color:var(--muted);margin-bottom:7px;font-size:9px;display:block}.result-strip strong{color:var(--green);font-variant-numeric:tabular-nums;font-size:23px;font-weight:600}.result-strip small{color:var(--muted);font-size:9px;font-weight:400}.primary-button,.secondary-button{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:13px;padding:12px 16px;font-size:12px;font-weight:600;display:inline-flex}.primary-button{background:var(--green);color:var(--on-accent,#fff)}.primary-button:hover:not(:disabled){background:var(--accent-hover,#21634c)}.secondary-button{border:1px solid var(--border-strong,#d8dcce);background:var(--surface,#fffefa);color:var(--text-secondary,#40543f)}.secondary-button:hover{background:var(--surface-hover,#eef1e6)}kbd{border:1px solid var(--border-soft,#dee0d4);color:var(--text-muted,#7a8476);border-radius:4px;padding:2px 5px;font-family:inherit;font-size:9px;font-weight:400}.shortcut-note{text-align:right;color:var(--text-muted,#74806d);margin-top:11px;font-size:9px;line-height:1.6}.navigation-shortcuts{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.8}.progress-card{border:1px solid var(--border);background:var(--surface-subtle,#edeee2);border-radius:12px;grid-template-columns:1fr 170px;align-items:center;gap:13px 20px;padding:23px 27px;display:grid}.progress-card h3{color:var(--green);margin-top:7px;font-size:24px;font-weight:550}.progress-card h3 span{color:var(--muted);font-size:12px;font-weight:400}.progress-detail{flex-direction:column;align-items:end;gap:9px;display:flex}.progress-detail>span{color:var(--green);font-size:12px;font-weight:600}progress{appearance:none;background:var(--border-strong,#d9ddcc);border:0;border-radius:4px;width:100%;height:6px;overflow:hidden}progress::-webkit-progress-bar{background:var(--border-strong,#d9ddcc);border-radius:4px}progress::-webkit-progress-value{background:var(--success-fill,#4b7950);border-radius:4px}progress::-moz-progress-bar{background:var(--success-fill,#4b7950);border-radius:4px}.progress-card>p{color:var(--muted);grid-column:1/-1;font-size:10px;line-height:1.7}.corpus-progress{border:1px solid var(--border);background:var(--surface-subtle,#edeee2);border-radius:12px;margin-bottom:24px;padding:24px}.corpus-progress-compact{margin-bottom:0}.corpus-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.corpus-heading h2{color:var(--green);margin-top:7px;font-size:20px}.corpus-heading h2 span{font-size:14px;font-weight:400}.corpus-next-goal{color:var(--green);margin:12px 0;font-size:13px;line-height:1.6}.corpus-progress .field-hint{margin:8px 0}.corpus-milestones{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0;padding:0;list-style:none;display:grid}.corpus-milestones li{border:1px solid var(--border);border-radius:8px;padding:16px}.corpus-milestones strong,.corpus-milestones span{display:block}.corpus-milestones span,.corpus-collections p{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.6}.corpus-milestones .corpus-goal-reached{background:var(--surface-selected,#e9efcf);border-color:var(--border-strong,#cad8a2)}.corpus-collections{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.corpus-collections article{border:1px solid var(--border);background:var(--page,#f6f6f0);border-radius:8px;flex-direction:column;align-items:flex-start;gap:14px;padding:18px;display:flex}.corpus-collections h3{font-size:15px}.corpus-complete{color:var(--green);font-size:12px}.corpus-collections article:has(.collection-lines[open]){grid-column:1/-1}.collection-lines{width:100%}.collection-lines summary{cursor:pointer;color:var(--green);padding:8px 0;font-size:13px}.collection-lines summary:focus-visible{outline:3px solid var(--warning,#bc6b2d);outline-offset:4px}.collection-lines ol{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.collection-lines li{border:1px solid var(--border);border-radius:8px;padding:16px}.collection-line-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.collection-line-heading h4{overflow-wrap:anywhere;flex:240px;margin:0;font-size:14px;font-weight:550;line-height:1.6}.collection-line-number{color:var(--muted)}.collection-line-status{color:var(--muted);font-size:12px}.collection-line-mastered{color:var(--green);font-weight:600}.collection-lines progress{margin:12px 0;display:block}@media (width<=600px){.corpus-progress{padding:18px}.corpus-milestones{grid-template-columns:repeat(2,minmax(0,1fr))}.corpus-collections{grid-template-columns:1fr}}.goal-card{background:var(--surface-selected,#e9efcf);border:1px solid var(--border-strong,#cad8a2);border-radius:12px;flex-wrap:wrap;align-items:center;gap:15px;padding:22px;display:flex}.goal-icon{color:var(--success,#5e7930);font-size:31px}.goal-card h3{color:var(--green);font-size:14px}.goal-card p{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.5}.goal-actions{flex-wrap:wrap;gap:10px;margin-left:auto;display:flex}.empty-practice{padding:35px 0}.empty-practice p{color:var(--muted);margin:14px 0;font-size:14px}.notice{background:var(--surface-hover,#ebeee3);border:1px solid var(--border-soft,#d7dec7);color:var(--text-secondary,#51644c);border-radius:8px;padding:16px 20px;font-size:12px;line-height:1.7}.notice button{color:var(--green);font-size:inherit;background:0 0;text-decoration:underline}.warning{background:var(--warning-surface,#fff0db);border-color:var(--warning-border,#e8cba0);color:var(--warning,#815320);margin-top:20px}footer{border-top:1px solid var(--border);color:var(--text-muted,#727c6f);justify-content:space-between;gap:20px;margin-top:50px;padding:23px 0 28px;font-size:10px;line-height:1.8;display:flex}footer button{color:var(--green);font-size:inherit;background:0 0;padding:0;text-decoration:underline}.journey-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.journey-stats>div{background:var(--surface,#fffefa);border:1px solid var(--border);border-radius:10px;padding:22px}.journey-stats span{color:var(--muted);margin-bottom:13px;font-size:11px;display:block}.journey-stats strong{letter-spacing:-.7px;color:var(--green);font-size:31px;font-weight:550}.journey-empty{background:var(--surface-hover,#eff1e6);border:1px solid var(--border);text-align:center;border-radius:14px;padding:55px 30px}.empty-icon{background:var(--surface-selected,#dce7c8);color:var(--green);border-radius:12px;width:50px;height:50px;margin:0 auto 20px;font-size:30px}.journey-empty h2{letter-spacing:-.8px;margin:9px 0 14px;font-size:26px;font-weight:550}.journey-empty>p:not(.eyebrow){max-width:430px;color:var(--muted);margin:auto;font-size:13px;line-height:1.8}.journey-empty .primary-button{margin-top:24px}.journey-chart,.history-card,.milestones{background:var(--surface,#fffefa);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;padding:27px}.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.section-heading h2{letter-spacing:-.4px;margin-top:6px;font-size:21px;font-weight:550}.section-heading>span{color:var(--muted);font-size:11px}.bars{border-bottom:1px solid var(--border);align-items:end;gap:14px;height:200px;padding:15px 5px 0;display:flex}.bar-item{text-align:center;flex:1;min-width:0}.bar-item>span{font-size:11px;font-weight:600}.bar{border-radius:4px 4px 0 0;width:100%;max-width:60px;margin-top:7px;margin-left:auto;margin-right:auto}.bar-clean{background:var(--success-fill,#63926e)}.bar-corrected{background:var(--warning,#c79a57)}.bar-item>small{color:var(--muted);white-space:nowrap;padding:9px 0;font-size:9px;display:block}.journey-chart>.field-hint{margin-top:15px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;margin-top:20px;font-size:12px}th{color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:10px;font-weight:550}td{border-bottom:1px solid var(--border-soft,#edeee5);white-space:nowrap;padding:14px 12px}td:first-child{white-space:normal;min-width:150px}td:first-child strong{overflow-wrap:anywhere;font-size:12px;display:block}td:first-child span{color:var(--muted);margin-top:5px;font-size:10px;display:block}.milestones{margin-top:22px}.muted{color:var(--muted);margin-top:17px;font-size:13px;line-height:1.8}.milestone-grid{grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px;display:grid}.milestone-grid article{background:var(--success-surface,#eff3df);border:1px solid var(--success-border,#d4dfbc);border-radius:8px;padding:20px}.milestone-speed{color:var(--green);font-size:31px;font-weight:600}.milestone-speed small{font-size:11px;font-weight:400}.milestone-grid h3{overflow-wrap:anywhere;margin:12px 0 8px;font-size:13px;font-weight:600;line-height:1.8}.milestone-grid p,.milestone-grid article>span:last-child{color:var(--muted);font-size:10px;line-height:1.8}.milestone-grid article>span:last-child{margin-top:13px;display:block}.journey-notice{margin-top:22px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1000px){.app-shell{padding:0 28px}.workspace{grid-template-columns:minmax(0,1fr);gap:18px}.practice-card{padding:23px}.result-strip{grid-template-columns:repeat(2,1fr);gap:18px}.local-status{display:none}.progress-card{grid-template-columns:1fr 120px}}@media (width<=700px){.drill-area{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"plan""prompt""score";gap:12px}.run-score{padding:14px 18px}.drill-area>.run-score-empty{display:none}.run-score-number strong{font-size:72px}.run-score-number{height:75.6px}.app-shell{padding:0 18px}.site-header{gap:8px;height:82px}.wordmark{font-size:22px}.club{font-size:15px}.brand-icon{width:27px;height:29px;margin-right:7px;font-size:25px}.site-header nav{gap:1px}.site-header nav button{padding:9px 8px;font-size:11px}.nav-count{display:none}.page-heading{align-items:start;padding:30px 0 24px}.page-heading>div>p:last-child{font-size:12px}.practice-heading{gap:16px;padding:18px 0}h1{letter-spacing:-1px;font-size:30px}.workspace{flex-direction:column;display:flex}.settings{width:100%}.settings-section{padding:18px}.settings-section:first-child{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.settings-section:first-child>.eyebrow,.settings-section:first-child>h2,.settings-section:first-child .field-label,.settings-section:first-child select,.settings-section:first-child .target-field,.settings-section:first-child .field-hint{grid-column:1/-1}.settings h2{margin-bottom:16px}.settings .field-hint+.field-label{margin-top:15px}.level-options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.level-options button{gap:7px;font-size:11px}.practice-column{width:100%}.practice-card{padding:20px}.stage-tabs{gap:3px}.stage-tabs button{padding:8px 9px;font-size:10px}.drill-text{font-size:26px}.primary-button,.secondary-button{padding:11px 12px;font-size:11px}.progress-card{grid-template-columns:1fr 90px;padding:20px}.progress-card h3 span{font-size:10px}.journey-stats{grid-template-columns:1fr 1fr;gap:10px}.journey-stats>div{padding:17px}.journey-stats strong{font-size:26px}.page-heading>.secondary-button{white-space:normal;min-width:86px;font-size:10px}.journey-chart,.history-card,.milestones{padding:20px}.bars{gap:6px}.bar-item>small{display:none}.bar-item>span{font-size:9px}.section-heading{flex-wrap:wrap;gap:10px}.milestone-grid{grid-template-columns:1fr}footer{flex-direction:column;gap:5px;margin-top:30px}}@media (prefers-reduced-motion:reduce){.celebration{animation:none}*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.word-effort-report{margin:24px 0}.word-effort-report>summary{cursor:pointer;font-weight:700}.word-effort-report>p,.word-effort-visits p{color:var(--muted);margin:12px 0;font-size:13px;line-height:1.6}.word-effort-filters{flex-wrap:wrap;gap:16px;margin:20px 0;display:flex}.word-effort-filters label{flex:180px;gap:6px;font-size:13px;display:grid}.word-effort-filters input,.word-effort-filters select{width:100%}.word-effort-filters input{border:1px solid var(--border);background:var(--surface,#fffefa);border-radius:8px;padding:10px 12px}.word-effort-report table{min-width:800px}.word-effort-report td,.word-effort-report th{white-space:normal;vertical-align:top}.word-effort-report td:nth-child(4)>span{margin-bottom:5px;display:block}.word-effort-report td:last-child{width:40%}.word-effort-visits{overflow-wrap:anywhere;min-width:0;padding-left:18px}.word-effort-visits li+li{margin-top:20px}.exercise-feedback{border:1px solid var(--border,var(--border-soft,#d9ded8));border-radius:12px;margin:24px 0;padding:22px}.session-feedback{margin:24px 0}.session-review-controls{padding:0 4px}.session-review-controls h2{margin:0 0 6px;font-size:1.15rem}.session-review-controls p{font-size:.85rem;line-height:1.6}.session-review-controls label,.attempt-review-label{flex-direction:column;gap:6px;margin:14px 0;font-size:.85rem;display:flex}.session-review-controls select,.attempt-review-label select{border:1px solid var(--border);background:var(--surface,#fffef8);width:100%;max-width:100%;color:inherit;border-radius:6px;padding:10px}.session-review-context{overflow-wrap:anywhere}.session-feedback .exercise-feedback{margin-top:16px}.exercise-feedback-heading{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.exercise-feedback h2{margin:0 0 6px;font-size:1.1rem}.exercise-feedback h3{margin:0 0 10px;font-size:.95rem}.exercise-feedback-heading p,.exercise-footnote{opacity:.75;margin:6px 0 12px;font-size:.8rem;line-height:1.6}.exercise-running{font-size:.85rem;font-weight:600}.exercise-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 10px;display:grid}.exercise-counts dt{font-size:.8rem}.exercise-counts dd{margin:5px 0 0;font-size:1.65rem;font-weight:700}.exercise-analysis{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;margin-top:24px;display:grid}.exercise-speed-chart{width:100%;display:block;overflow:visible}.exercise-speed-chart text{fill:currentColor;font-size:12px}.trace-word-bands{pointer-events:none}.trace-word-band{fill:var(--chart-speed,#238077);opacity:.07}.trace-word-band.trace-word-problem{fill:var(--warning,#c17b28);opacity:.19}.exercise-speed-chart .trace-word-label{fill:var(--chart-speed,#238077);opacity:.75;font-size:10px}.exercise-speed-chart .trace-word-label-problem{fill:var(--warning,#995318);opacity:1;font-weight:600}.trace-key-base{fill:var(--warning,#bd9b6d)}.trace-key-face{fill:var(--warning-surface,#fff8e9);stroke:var(--warning,#bd9b6d);stroke-width:.8px}.exercise-speed-chart .trace-hesitation text{fill:var(--warning,#814715);font-family:ui-monospace,monospace;font-size:11px;font-weight:600}.trace-hesitations{pointer-events:none}.trace-practice-link{cursor:pointer;pointer-events:auto;outline:none}.trace-practice-link:hover .trace-key-face,.trace-practice-link:focus-visible .trace-key-face{fill:var(--warning-surface,#ffe8b9);stroke:var(--warning,#814715);stroke-width:1.5px}.trace-word-hit{fill:#0000}.trace-word-action .trace-word-label{text-underline-offset:2px;text-decoration:underline}.trace-word-action:hover .trace-word-hit,.trace-word-action:focus-visible .trace-word-hit{fill:var(--chart-warning-tint,#c17b2830);stroke:var(--warning,#995318);stroke-width:1px}.trace-legend-swatch{background:var(--chart-warning-tint,#c17b2830);border:1px solid var(--warning,#c17b28);width:.8em;height:.8em;margin-right:.4em;display:inline-block}.trace-grid{stroke:currentColor;opacity:.12}.trace-target{stroke:currentColor;opacity:.5;stroke-dasharray:5 5}.trace-line{stroke:var(--chart-speed,#238077);fill:none;stroke-width:2.5px}.trace-overall-line{stroke:var(--chart-overall,#8061b3);fill:none;stroke-width:3.5px;stroke-dasharray:9 4;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.trace-overall-end{fill:var(--chart-overall,#8061b3);stroke:var(--surface,white);stroke-width:1px;pointer-events:none}.trace-pace-legend{flex-wrap:wrap;gap:6px 20px;display:flex}.trace-speed-swatch,.trace-overall-swatch{vertical-align:middle;border-top:2.5px solid var(--chart-speed,#238077);width:24px;margin-right:6px;display:inline-block}.trace-overall-swatch{border-top:3.5px dashed var(--chart-overall,#8061b3)}.trace-point{fill:var(--chart-speed,#238077);stroke:var(--surface,white);stroke-width:1px;cursor:pointer}.trace-point:hover,.trace-point:focus{fill:var(--warning,#b05a23);r:6;outline:none}.trace-detail{min-height:2.6em;font-size:.85rem}.exercise-word-scroll{max-height:240px;overflow:auto}.exercise-words{border-collapse:collapse;width:100%;font-size:.85rem}.exercise-words caption{text-align:left;padding:8px 0;font-weight:600}.exercise-words th,.exercise-words td{text-align:right;border-bottom:1px solid var(--border-soft,#8883);padding:6px}.exercise-words th:first-child{text-align:left;overflow-wrap:anywhere}.exercise-empty{opacity:.75;padding:24px 0;font-size:.9rem;line-height:1.7}.error-characters{flex-wrap:wrap;gap:3px;margin:16px 0;display:flex}.error-characters>span{border-bottom:2px solid #0000;border-radius:4px;flex-direction:column;align-items:center;min-width:1.2em;padding:4px;font-family:monospace;display:inline-flex}.error-characters small{font-size:.7rem}.error-warm{background:var(--warning-surface,#f8dfb8);color:var(--warning,#653b13);border-bottom-color:var(--warning,#b47928)!important}.error-hot{background:var(--error-strong,#a84430);color:#fff;border-bottom-color:var(--error-strong-border,#652718)!important}@media (width<=760px){.exercise-feedback{padding:16px}.exercise-analysis{grid-template-columns:minmax(0,1fr)}.exercise-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.preferences-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;display:grid}.preferences-grid h2{margin-top:0}.preferences-grid .field-label{margin-top:20px;display:block}.preferences-grid input,.preferences-grid select{max-width:100%}.preferences-grid #retry-limit{border:1px solid var(--border);width:100px;font:inherit;border-radius:8px;padding:10px}@media (width<=900px){.site-header{flex-wrap:wrap;height:auto;min-height:100px;padding-top:16px;padding-bottom:12px}.site-header nav{flex-wrap:wrap;flex-basis:100%;order:3}}.journey-heading>div>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.7}.journey-actions{flex-direction:column;align-items:stretch;gap:8px;display:flex}.journey-start{min-width:230px;min-height:64px;padding:18px 24px;font-size:16px}.journey-start span{font-size:22px;line-height:1}@media (width<=760px){.journey-heading{flex-direction:column;align-items:stretch}.journey-start{width:100%}}
