:root{color-scheme:light;--paper: #f5f2e9;--surface: #fffdf7;--ink: #213d39;--muted: #576b64;--teal: #196c61;--line: #ced7cb;--error: #a43128;font-family:Avenir Next,Avenir,Trebuchet MS,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}#app{max-width:1280px;padding:48px 40px 32px;margin:0 auto}.masthead{position:relative;margin-bottom:30px;padding-right:60px}.button.info-button{position:absolute;top:0;right:0;min-width:44px;min-height:44px;width:44px;height:44px;padding:0;border-radius:50%;background:transparent;color:var(--teal)}.information{margin-top:20px;max-width:680px;color:var(--muted);font-size:.9rem;line-height:1.6}.information p{margin:6px 0}.workspace{display:grid;grid-template-columns:minmax(0,3fr) minmax(200px,1fr);align-items:start;gap:24px}.progress-panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px;min-width:0}.progress-panel h2{font-size:1.15rem;font-weight:650;margin:0 0 28px}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.18em;margin:0 0 12px;color:var(--teal)}h1{font-size:clamp(1.4rem,3vw,2rem);font-weight:650;line-height:1.25;margin:0;overflow-wrap:anywhere}.direction{color:var(--muted);margin:10px 0 0;font-size:.95rem}.exercise{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(24px,4vw,44px);min-width:0}.stage{display:inline-block;color:var(--teal);background:#e6efe5;border-radius:30px;padding:7px 12px;margin:0 0 24px;font-size:.85rem;font-weight:650}.stage-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px}.stage-row .stage{margin:0}.set-chooser{border:0;border-top:1px solid var(--line);margin:28px 0 0;padding:20px 0 0;min-width:0}.set-chooser legend{float:left;width:100%;padding:0;margin:0 0 10px;font-size:.85rem;font-weight:650;color:var(--muted)}.set-chooser legend+*{clear:left}.set-option{display:flex;align-items:center;flex-wrap:wrap;column-gap:10px;min-height:44px;cursor:pointer}.set-option input{width:22px;height:22px;margin:0;accent-color:var(--teal);flex:none}.set-name{font-weight:650}.set-count{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}.set-option.mastered .set-count{color:#8a5b22;font-weight:650}.set-chooser:disabled .set-option{cursor:default;opacity:.6}.prompt{font-size:clamp(1.7rem,4.5vw,2.6rem);line-height:1.25;letter-spacing:-.025em;margin:0 0 12px;overflow-wrap:anywhere}.instruction{color:var(--muted);line-height:1.55;margin:0 0 28px}.answer{display:flex;flex-wrap:wrap;align-items:center;column-gap:22px;row-gap:16px;min-width:0;margin:0 0 24px}.word-group{display:flex;flex-wrap:wrap;align-items:center;gap:5px;max-width:100%;min-width:0}.letter{display:inline-flex;align-items:center;justify-content:center;text-align:center;width:44px;height:54px;border:1.5px solid #829d92;border-bottom:3px solid var(--teal);border-radius:7px;background:#fff;font:600 1.7rem/1 Avenir Next,Avenir,Trebuchet MS,sans-serif;color:var(--ink);padding:0;min-width:0}.letter.fixed{border-color:transparent;background:#eef0e8;color:#38544c}.punctuation{font-size:1.8rem;padding:0 1px}:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.letter:focus{outline:3px solid var(--teal);outline-offset:3px;background:#f4faf4}.letter[aria-invalid=true]{color:var(--error);border-color:var(--error);background:#fff1eb}.feedback{line-height:1.5;margin:20px 0 10px;color:var(--muted)}.feedback:empty{margin:0}.feedback.error{color:var(--error)}.feedback.success{color:var(--teal);font-weight:650}.actions{display:flex;flex-wrap:wrap;gap:10px}.button{min-height:48px;padding:11px 22px;border-radius:9px;border:1px solid var(--line);font-weight:650;line-height:1.4;font-family:inherit;font-size:1rem;cursor:pointer}.primary{background:var(--teal);border-color:var(--teal);color:#fff}.secondary{background:#f0f2e9;color:var(--ink)}.quiet{color:var(--muted);background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}.button:hover{filter:brightness(.95)}.button:disabled{cursor:default;opacity:.6}footer{font-size:.85rem;color:var(--muted);padding-top:18px}.storage-warning{line-height:1.6;color:var(--error);overflow-wrap:anywhere}.storage-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.conflict{background:#fff1eb;border:1px solid var(--error);border-radius:12px;padding:14px 18px;margin:0 0 18px}.free-answer{display:block;width:100%;max-width:520px;min-height:54px;margin:0 0 24px;padding:8px 14px;border:1.5px solid #829d92;border-bottom:3px solid var(--teal);border-radius:7px;background:#fff;font:600 1.4rem/1.3 Avenir Next,Avenir,Trebuchet MS,sans-serif;color:var(--ink)}.test-results{padding-left:1.4rem;line-height:1.6}.test-result{margin:0 0 14px;padding-left:4px}.test-result strong,.test-result span{display:block;overflow-wrap:anywhere}.test-result.correct span:first-of-type{color:var(--teal)}.test-result.incorrect span:first-of-type{color:var(--error)}details{border-top:1px solid var(--line);padding-top:16px}summary{cursor:pointer;padding:8px 0;min-height:44px}.word-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;line-height:1.55}.word-list dt{font-weight:650}.word-list dd{margin:0;overflow-wrap:anywhere}.accents{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 20px}.accents .button{min-width:44px;min-height:44px;padding:6px;font-size:1.15rem}.vocabulary-note,.counter{color:var(--muted);font-size:.85rem;line-height:1.6}.variant-label{display:block;margin-bottom:24px;font-size:.9rem}select{font:inherit;color:var(--ink);background:var(--surface);min-height:44px;border:1px solid var(--line);border-radius:6px;padding:8px;margin-left:10px;max-width:100%}.solution{font-size:1.75rem;font-weight:650;line-height:1.5;overflow-wrap:anywhere;background:#edf2e8;border-radius:10px;padding:18px}.summary-counts{line-height:2;font-size:1.15rem;padding:0;list-style:none}@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr);gap:18px}}@media(max-width:600px){#app{padding:25px 14px}.masthead{margin-bottom:20px;padding:0 56px 0 8px}.progress-panel,.exercise{padding:24px 18px;border-radius:14px}.letter{width:34px;height:46px;font-size:1.4rem}input.letter{width:44px;min-width:44px;min-height:44px}.word-group{gap:3px}.answer{column-gap:14px;row-gap:12px}.button{padding:11px 16px}.word-list{grid-template-columns:1fr;gap:4px}.word-list dd{margin-bottom:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.distribution-progress{display:flex;width:100%;height:18px;overflow:hidden;border-radius:10px;background:#e6efe5}.distribution-segment{flex:none;min-width:0;height:100%}.distribution-segment:nth-child(1){background:#b67432}.distribution-segment:nth-child(2){background:#958020}.distribution-segment:nth-child(3){background:#64854b}.distribution-segment:nth-child(4){background:#24734f}.distribution-segment+.distribution-segment{box-shadow:inset 2px 0 var(--surface)}.mastery-caption{display:flex;justify-content:space-between;gap:12px;margin:22px 0 0;font-size:1rem;line-height:1.5;color:#24734f}.mastery-count{font-variant-numeric:tabular-nums}.exercise-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;padding:0;margin:0;list-style:none}.exercise-list li{min-width:0}.exercise-link{display:block;height:100%;min-height:110px;padding:22px;border:1px solid var(--line);border-radius:16px;color:var(--ink);background:var(--surface);text-decoration:none;overflow-wrap:anywhere}.exercise-link:hover{border-color:var(--teal)}.exercise-link :is(h3,h4){margin:0 0 12px;font-size:1.15rem;line-height:1.35;font-weight:650}.exercise-link p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}.webapp-navigation{margin-bottom:24px}.overview-groups{padding:0;margin:0;list-style:none}.overview-groups>li+li{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.overview-groups section>h2{margin:0 0 24px;font-size:1.6rem}.overview-groups section>h3{margin:32px 0 16px;font-size:1.15rem;color:var(--muted)}.overview-groups section>h2+h3{margin-top:0}.webapp-navigation a,.webapp-return{display:inline-flex;align-items:center;min-height:44px;padding:10px 0;color:var(--teal);font-weight:650;text-underline-offset:4px}
