/* System font fallbacks keep the standalone edition usable without network access. */
:root{--bg:#f7f8f4;--paper:#fff;--ink:#253b33;--muted:#718078;--green:#214e3f;--lime:#d9edaa;--line:#e4e9e1;--soft:#edf2e8;--orange:#e8aa6f;--red:#a53b39}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 'DM Sans',Arial,sans-serif}h1,h2,h3,h4,button,.brand{font-family:Manrope,Arial,sans-serif}h1,h2,h3,h4,p{margin-top:0}h1{font-size:35px;line-height:1.25;letter-spacing:-1.3px;margin-bottom:10px}h2{font-size:21px;letter-spacing:-.6px}h3{font-size:17px;margin-bottom:8px}a{color:var(--green)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bc8b36}.skip{position:fixed;top:-70px;background:#fff;z-index:100;padding:12px}.skip:focus{top:10px}button{border:0;border-radius:10px;background:transparent;color:inherit;padding:10px 15px;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#e9eee5}button.primary{background:var(--green);color:#fff;font-weight:700}button.primary:hover:not(:disabled){background:#32634e}button.lime{background:var(--lime);color:#1c3c2f;font-weight:800}button.outline{border:1px solid var(--line);background:white}button.small{font-size:13px;padding:7px 12px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:800}.layout{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:31px 20px;background:#fff;position:fixed;width:238px;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;font-size:18px;font-weight:800;letter-spacing:-.5px;padding:0 10px 34px}.brand-icon{width:34px;height:36px;border-radius:10px 10px 14px 4px;background:var(--green);color:var(--lime);display:grid;place-items:center;font-size:24px}.nav{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:13px;text-align:left;padding:12px 15px;font-size:14px;color:#68776e;font-weight:600}.nav button.active{background:#eaf1e2;color:var(--green)}.icon{width:21px;height:21px;display:inline-flex;flex:none}.icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-label{font-size:10px;letter-spacing:1.7px;color:#8b958e;margin:25px 14px 12px}.nav-count{margin-left:auto;background:#d4e4be;border-radius:6px;padding:0 6px;font-size:11px}.sidebar-bottom{margin-top:auto;padding-top:30px}.side-note{background:#f5f7f0;padding:17px;border:1px solid var(--line);border-radius:12px;font-size:12px;color:#68776e}.side-note strong{display:block;color:var(--green);margin-bottom:5px}.profile{display:flex;gap:10px;border-top:1px solid var(--line);margin-top:22px;padding:20px 9px 0;align-items:center}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#edddc6;font-weight:700}.content{grid-column:2;min-width:0}.topbar{height:84px;border-bottom:1px solid var(--line);padding:0 42px;display:flex;justify-content:space-between;align-items:center;background:#fafbf8}.crumb{font-size:13px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:16px}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:22px;padding:6px 12px;font-size:12px;background:white}.dot{height:6px;width:6px;background:#799d45;border-radius:50%}main{max-width:1430px;margin:0 auto;padding:36px 42px 55px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:18px}.heading p{margin:0}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:25px}.hero{position:relative;overflow:hidden;background:var(--green);color:#fff;border-radius:18px;padding:32px 35px;min-height:248px}.hero h2{font-size:31px;line-height:1.25;max-width:400px;margin:17px 0 12px;letter-spacing:-1px}.hero p{max-width:370px;color:#d4dfd4;font-size:13px;margin-bottom:22px}.hero .eyebrow{color:#d6e8b9}.hero-art{position:absolute;width:170px;height:170px;right:25px;top:40px;border:1px solid #ffffff24;border-radius:50%;display:grid;place-items:center;transform:rotate(-14deg)}.hero-art:before{content:'';position:absolute;inset:-22px;border:1px solid #ffffff15;border-radius:50%}.book{width:94px;height:122px;background:#d7e9a9;border-radius:5px 12px 12px 5px;border-left:9px solid #9ebd75;box-shadow:15px 14px 0 #ffffff13;display:grid;place-items:center;color:#214e3f;font-size:42px;font-family:Georgia}.hero-art small{position:absolute;right:-10px;bottom:7px;background:#f7e9cb;color:#42523c;border-radius:9px;padding:8px 12px;font-size:15px;transform:rotate(14deg)}.hero-copy{position:relative;z-index:1;max-width:70%}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0 29px}.stat{border:1px solid var(--line);border-radius:13px;background:white;padding:17px 18px;display:flex;align-items:center;gap:12px}.stat-icon{padding:9px;border-radius:10px;background:#f1f4e9;display:flex;color:#74944c}.stat:nth-child(2) .stat-icon{background:#fcf0e3;color:#bd8745}.stat:nth-child(3) .stat-icon{background:#eaf0f7;color:#6388a1}.stat strong{font-size:22px;line-height:1.2;display:block}.stat span{font-size:11px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;margin:24px 0 15px}.section-head h2{margin:0}.section-head button{font-size:12px}.plan{background:#fff;border:1px solid var(--line);border-radius:15px;padding:2px 20px}.plan-row{display:flex;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.plan-row:last-child{border:0}.plan-row h3{font-size:14px;margin:0 0 3px}.plan-row p{font-size:12px;margin:0;color:var(--muted)}.plan-row .grow{flex:1}.step-icon{width:44px;height:44px;background:#edf2e4;border-radius:12px;display:grid;place-items:center;color:#64844e}.plan-row:nth-child(2) .step-icon{background:#f5ede2;color:#ad8654}.plan-row:nth-child(3) .step-icon{background:#eaf0f5;color:#688699}.card{background:white;border:1px solid var(--line);border-radius:15px;padding:23px}.right-col{display:flex;flex-direction:column;gap:20px}.goal-ring{width:140px;height:140px;margin:20px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) var(--progress),#edf1e7 0);position:relative}.goal-ring:before{content:'';position:absolute;inset:10px;background:white;border-radius:50%}.goal-ring>div{position:relative;text-align:center}.goal-ring strong{display:block;font-size:30px;line-height:1.2}.goal-ring span{font-size:12px;color:var(--muted)}.week{display:flex;justify-content:space-between;margin-top:20px}.week span{text-align:center;font-size:10px;color:var(--muted)}.week b{display:grid;place-items:center;border:1px solid var(--line);width:25px;height:25px;border-radius:50%;margin-top:7px;font-size:11px;color:#a0aaa0}.week b.done{background:var(--green);color:white;border-color:var(--green)}.level-card{background:#f0f3e7}.level-card .big{font-size:35px;font-weight:800}.progress{height:6px;border-radius:10px;background:#e3e9d8;overflow:hidden;margin:12px 0}.progress i{height:100%;display:block;background:#7b9655;border-radius:10px}.tiny{font-size:12px}.quote{padding:5px 12px;font-family:Georgia,serif;font-size:18px;color:#667961}.quote small{font-family:'DM Sans',sans-serif;display:block;font-size:11px;margin-top:10px;color:#8a9584}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0 25px}.tabs button{border:1px solid var(--line);font-size:13px;background:#fff}.tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.levels{display:flex;gap:8px;flex-wrap:wrap}.levels button{min-width:54px;border:1px solid var(--line);background:white}.levels button.active{background:var(--green);color:white;border-color:var(--green)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lesson-card{display:flex;flex-direction:column;gap:7px;min-height:220px}.lesson-card p{color:var(--muted);font-size:13px;flex:1}.lesson-card h3{font-size:19px}.lesson-card .tag{align-self:flex-start}.tag{display:inline-block;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700;background:#edf2e5;color:#627b48}.lesson-card button{text-align:left;padding-left:0}.lesson-banner{display:flex;justify-content:space-between;align-items:center;background:#eaf0e1;border-radius:16px;padding:23px 27px;gap:20px}.lesson-banner h1{font-size:27px;margin:6px 0}.lesson-banner p{margin:0;color:var(--muted);font-size:13px}.lesson-panel{max-width:900px}.lesson-panel .card{margin-bottom:18px}.english{font-size:18px;line-height:1.9}.examples{border-left:3px solid #a7be7b;padding:4px 20px;margin:20px 0;background:#f7f9f2}.examples p{margin:10px 0}.question{margin:20px 0}.question h3{font-size:16px;font-weight:600}.options{display:grid;gap:9px}.option{text-align:left;border:1px solid var(--line);background:#fff;padding:13px 16px}.option:hover:not(:disabled){border-color:#859d68}.option.correct{background:#eaf4df;border-color:#87a55c;color:#314c24;opacity:1}.option.wrong{background:#fff0ec;border-color:#c88276;color:#943e32;opacity:1}.feedback{padding:13px 17px;border-radius:10px;background:#edf3e6;margin:15px 0;font-size:14px}.feedback.error{background:#fff0eb;color:#8d4035}.reading-text{font-family:Georgia,serif;font-size:21px;line-height:1.9;color:#354a3d;white-space:pre-line}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0}.word-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.word{padding:17px;border:1px solid var(--line);border-radius:12px;background:#fff}.word strong{font-size:19px}.word p{margin:8px 0 0;font-size:13px;color:var(--muted)}.word .translation{color:#46623b}.word-header{display:flex;justify-content:space-between;align-items:center}.review-card{max-width:680px;margin:25px auto;text-align:center;padding:40px}.review-card h2{font-size:32px;margin:20px 0}.review-card input{text-align:center;max-width:450px;margin:auto}.review-card .answer{padding:15px;border-radius:12px;background:#f1f5e9;margin:22px 0;text-align:left}.review-card .toolbar{justify-content:center}.review-card .answer strong{font-size:24px}.empty{text-align:center;padding:50px 25px}.empty .icon{height:45px;width:45px;margin-bottom:20px}.empty h2{margin:0 0 12px}input,textarea,select{border:1px solid #d8e0d2;border-radius:9px;padding:11px 13px;background:white;color:var(--ink);max-width:100%}input,textarea{width:100%}textarea{min-height:130px;resize:vertical}label{display:block;font-size:13px;font-weight:600;margin:13px 0 7px}input[type=checkbox]{width:auto}select{cursor:pointer}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid .card{align-self:start}.notice{font-size:12px;color:var(--muted);padding:12px 15px;border-radius:9px;background:#f1f4ed;line-height:1.7;margin:15px 0}.science{max-width:900px}.science .card{margin-bottom:18px}.science a{font-size:13px}.audio-player{width:100%;margin:15px 0}.recording{color:var(--red);animation:pulse 1.5s infinite}.achievements{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.chart{display:flex;align-items:end;gap:15px;height:150px;border-bottom:1px solid var(--line);padding:10px 15px 0}.chart div{flex:1;min-height:3px;background:#b1c48a;border-radius:5px 5px 0 0;position:relative}.chart div span{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--muted)}.chart div b{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:400}.onboarding{max-width:650px;margin:20px auto;padding:38px}.onboarding h1{margin-top:17px}.onboarding .level-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.onboarding .level-pick button{border:1px solid var(--line);text-align:left}.onboarding .level-pick button.active{border-color:var(--green);background:#edf3e6}.onboarding .level-pick strong{display:block;font-size:20px}.onboarding .level-pick span{font-size:11px;color:var(--muted)}.onboarding .primary{margin-top:20px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#243f32;color:white;border-radius:12px;padding:12px 22px;z-index:100;box-shadow:0 5px 25px #0002;max-width:90%;display:none}.mobile-toggle{display:none}.back{padding-left:0;margin-bottom:12px;color:var(--muted);font-size:13px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.text-link{padding:0;text-decoration:underline;color:var(--green)}.footer-note{margin-top:35px;text-align:center;color:#889186;font-size:11px}dialog{border:1px solid var(--line);border-radius:15px;padding:25px;max-width:500px}dialog::backdrop{background:#10291d77}@keyframes pulse{50%{opacity:.5}}@media(min-width:1500px){main{padding:40px 60px}.hero{min-height:265px}.hero-art{right:55px}}@media(max-width:1200px){.dashboard{grid-template-columns:1fr 255px}.hero-art{right:15px;width:130px;height:130px;top:60px}.hero-copy{max-width:72%}.hero h2{font-size:27px}.hero{padding:27px}.stats{gap:8px}.stat{padding:15px 10px;gap:8px}.stat-icon{padding:6px}.grid{grid-template-columns:1fr 1fr}main{padding:30px}.topbar{padding:0 30px}}@media(max-width:1000px){.layout{grid-template-columns:200px 1fr}.sidebar{width:200px;padding:25px 13px}.brand{font-size:16px;gap:8px}.dashboard{grid-template-columns:1fr}.right-col{display:grid;grid-template-columns:1fr 1fr}.quote{display:none}.hero-copy{max-width:70%}.hero-art{right:40px;width:150px;height:150px;top:45px}.goal-ring{width:110px;height:110px;margin:12px auto}.settings-grid{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.layout{display:block}.sidebar{transform:translateX(-100%);width:240px;box-shadow:5px 0 20px #0001;transition:transform .2s}.sidebar.open{transform:translateX(0)}.content{width:100%}.topbar{height:66px;padding:0 18px}.mobile-toggle{display:block;padding:7px}.top-actions{gap:8px}.top-actions .date{display:none}.crumb{display:flex;align-items:center;gap:8px}.heading{align-items:flex-start}.heading .date{display:none}main{padding:24px 18px}h1{font-size:27px}.heading p{font-size:13px}.hero{padding:24px;min-height:240px}.hero-copy{max-width:85%}.hero-art{width:80px;height:80px;right:-12px;top:100px;opacity:.25}.book{width:65px;height:85px}.hero h2{font-size:27px}.hero p{font-size:12px;max-width:260px}.stats{gap:8px;margin:15px 0 20px}.stat{display:block;padding:13px}.stat-icon{width:29px;margin-bottom:9px}.stat strong{font-size:21px}.stat span{font-size:10px}.right-col{grid-template-columns:1fr 1fr;gap:12px}.right-col .card{padding:15px}.right-col h3{font-size:14px}.week b{width:18px;height:18px}.grid,.split,.achievements{grid-template-columns:1fr}.lesson-banner{padding:20px;align-items:flex-start}.lesson-banner h1{font-size:23px}.lesson-banner .pill{display:none}.word-grid{grid-template-columns:1fr}.card{padding:20px}.review-card{padding:25px 20px}.tabs{gap:6px}.tabs button{padding:8px 10px;font-size:12px}.plan{padding:0 13px}.plan-row{gap:10px}.plan-row button{padding:7px 10px}.step-icon{width:36px;height:36px}.onboarding{padding:24px}.onboarding .level-pick{grid-template-columns:1fr 1fr}.reading-text{font-size:19px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sidebar{overflow-y:auto}.option .icon{vertical-align:middle}button .icon{vertical-align:middle;margin-right:4px}.brand{flex-shrink:0}summary{color:var(--green);font-weight:600}
.sentence-tray{min-height:85px;border:2px dashed #c7d4bc;border-radius:13px;padding:15px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;background:#f8faf4}.token-bank{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.chip{border:1px solid #cfdbc3;background:white;box-shadow:0 2px 0 #dae3d3;border-radius:8px;padding:9px 13px;font-weight:600}.chip.chosen{background:#e8f1da;color:#294b32}.chip:disabled{visibility:hidden}.dialogue-card{margin-bottom:30px;max-width:900px;background:linear-gradient(145deg,#fff,#f4f7ee)}.partner-bubble,.user-bubble{border-radius:14px;padding:14px 18px;max-width:85%;margin:12px 0;font-size:16px}.partner-bubble{background:#e8efdf;border-bottom-left-radius:3px}.user-bubble{background:#214e3f;color:white;margin-left:auto;border-bottom-right-radius:3px;white-space:pre-wrap}.dialogue-history{border-bottom:1px solid var(--line);margin-bottom:16px}.dialogue-history:empty{display:none}.builder .toolbar{margin-top:20px}.builder .feedback{border-left:3px solid #8ca96c}@media(max-width:700px){.partner-bubble,.user-bubble{max-width:95%;font-size:14px}.chip{padding:8px 11px}.sentence-tray{padding:12px}}.nav button:focus-visible{outline-offset:-3px}
.library-controls{display:grid;grid-template-columns:minmax(200px,1fr) 150px 220px;gap:17px;align-items:end}.library-controls label{margin-top:0}.library-controls select{width:100%}.repair-card{max-width:820px}.library-controls input{background:#fafcf6}.word-grid .word .toolbar{margin-bottom:0}.word-grid .word{transition:border-color .15s}.word-grid .word:hover{border-color:#b6c8a1}@media(max-width:1000px){.library-controls{grid-template-columns:1fr 1fr}.library-controls>div:first-child{grid-column:1/-1}}@media(max-width:500px){.library-controls{grid-template-columns:1fr}.library-controls>div:first-child{grid-column:auto}}
.skill-summary{margin-bottom:24px}.skill-summary h2{margin-bottom:8px}.skill-summary .achievements{margin-top:20px}
.writing-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.writing-editor{min-height:330px;line-height:1.85;font-size:16px;background:#fcfdf9}.writing-checks{display:grid;gap:8px}.writing-check{text-align:left;border:1px solid var(--line);background:#fafcf6;font-size:13px}.writing-check.checked{background:#e8f1dc;border-color:#b7cc9c}.writing-check span{display:inline-block;width:20px;font-weight:800}.writing-history{border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.writing-grid .notice ol{margin-bottom:0;padding-left:20px}.correction-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.incorrect-sentence{font-family:Georgia,serif;font-size:21px;line-height:1.6;padding:16px 0;margin-bottom:5px;color:#825b4e}.correction-grid .feedback{margin-bottom:0}@media(max-width:1200px){.writing-grid{grid-template-columns:1fr}.writing-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.writing-grid>aside>.card{margin-top:0!important}}@media(max-width:700px){.correction-grid,.writing-grid>aside{grid-template-columns:1fr}.writing-editor{min-height:280px}}
.writing-progress{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 14px}.writing-history summary{cursor:pointer}.writing-history p{line-height:1.7}
.nav-more{margin:8px 0}.nav-more summary{padding:11px 14px;font:600 12px Manrope,Arial,sans-serif;cursor:pointer;list-style:none;color:#6d7e70}.nav-more summary span{float:right}.nav-more>div{display:grid;gap:4px;padding-left:10px;border-left:1px solid var(--line);margin-left:13px}.translation-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:22px;align-items:start}.translation-nav{padding:18px}.translation-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.translation-numbers button{border:1px solid var(--line);padding:9px 5px;background:#fafcf6;font-size:12px}.translation-numbers button.active{background:var(--green);color:white;border-color:var(--green)}.translation-numbers button.solved:not(.active){background:#e8f2dc}.translation-prompt{font-size:25px;line-height:1.6;margin:22px 0}.word-diff{display:flex;flex-wrap:wrap;gap:5px;padding:15px;background:#f7f8f2;border-radius:9px}.word-diff span{padding:2px 5px;border-radius:4px}.diff-target{background:#dfedce;color:#426130}.diff-input{background:#fae5dc;color:#975642}.comparison-feedback{background:#f3f0e6}.focus-hero{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px;background:var(--green);color:white;border-radius:17px}.focus-hero h2{font-size:28px;margin:12px 0}.focus-hero p{margin:0;max-width:650px;color:#d5e0d1;font-size:13px}.focus-hero button{flex-shrink:0}.focus-list{display:grid;gap:14px}.focus-list article{display:flex;justify-content:space-between;align-items:center;gap:20px}.focus-list p{margin-bottom:0}.word-production{max-width:680px;margin:20px auto}.grammar-topic,.coach-topic{display:block;text-align:left;width:100%;border:1px solid var(--line);margin-top:8px;padding:10px 12px;font-size:12px}.grammar-topic small{display:block;color:var(--muted);font-size:10px}.grammar-topic.active,.coach-topic.active{background:#e8f1dc;border-color:#aec78d}.grammar-stem{font-family:Georgia,serif;font-size:25px;line-height:1.9;padding:20px;background:#f6f8ef;border-radius:10px;margin:20px 0}.grammar-gap{display:inline-block;min-width:65px;text-align:center;border-bottom:2px solid #739257;color:#537045}.coach-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:22px;align-items:start}.coach-sidebar{padding:18px}.coach-steps{display:flex;gap:7px;margin-bottom:15px;flex-wrap:wrap}.coach-steps button{background:white;border:1px solid var(--line);font-size:11px;display:flex;align-items:center;gap:7px;padding:9px 10px}.coach-steps button.active{background:#e6efda;border-color:#96b26f}.coach-steps b{background:#f3f5ef;width:22px;height:22px;display:grid;place-items:center;border-radius:50%}.coach-prompt{font-size:22px;line-height:1.7;font-family:Georgia,serif}.coach-chunks{display:grid;gap:10px}.coach-chunks>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px;border:1px solid var(--line);border-radius:10px}.coach-chunks p{margin:0}.coach-recorder{background:#f3f7eb;border:1px solid #d9e4c9;border-radius:13px;padding:18px;margin:23px 0}.coach-objectives{padding-left:22px;line-height:2}.coach-record-list{display:flex;flex-wrap:wrap;gap:8px}.coach-finished{text-align:center;padding:25px}.coach-finished>.icon{height:44px;width:44px;color:#6b9150}.coach-finished .toolbar{justify-content:center}.coach-main h2{line-height:1.5}@media(max-width:1050px){.coach-layout,.translation-layout{grid-template-columns:1fr}.coach-sidebar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.coach-sidebar h3{width:100%}.coach-topic{width:auto;margin-top:0}.coach-sidebar .notice{width:100%}.translation-numbers{grid-template-columns:repeat(6,1fr)}.translation-nav .grammar-topic{display:inline-flex;flex-direction:column;width:calc(50% - 5px);vertical-align:top;margin-right:5px}.focus-hero{align-items:start;flex-direction:column}}@media(max-width:600px){.focus-hero{padding:23px}.translation-prompt,.coach-prompt{font-size:21px}.coach-chunks>div{display:block}.coach-chunks button{margin-top:10px}.coach-recorder{padding:12px}.coach-steps button{font-size:10px}.focus-list article{display:block}.focus-list article>button{margin-top:15px}}

/* Studio motion and response workshop v0.8 */
/* Small movement gives feedback without delaying a learning action. */
:root { --studio-motion: 180ms; }
.heading { animation: studio-enter 240ms ease both; }
.hero-art .book { animation: studio-book-in 650ms cubic-bezier(.2,.75,.25,1) both; }
.card { transition: box-shadow var(--studio-motion) ease, border-color var(--studio-motion) ease; }
.lesson-card:hover { border-color: #9dbfb2; box-shadow: 0 10px 28px #183f3010; }
.lesson-card button:hover, .plan-row button:hover { transform: translateX(2px); }
.option, .writing-check, .coach-topic, .levels button { transition: background var(--studio-motion) ease, border-color var(--studio-motion) ease, color var(--studio-motion) ease; }
.feedback { animation: studio-enter 200ms ease both; }
.progress i { transition: width 350ms ease; }
.coach-recorder:has(#coach-record-stop:not([disabled])) #coach-record-status::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #b03d48; animation: studio-record 1400ms ease-in-out infinite; }
.coach-response-workshop { margin-top: 28px; padding: 24px 0 4px; border-top: 1px solid var(--line); }
.coach-response-workshop > .section-head { margin: 0 0 18px; align-items: flex-start; gap: 15px; }
.coach-response-workshop h3 { margin: 6px 0 0; }
.coach-response-workshop > p { color: var(--muted); font-size: 13px; }
.coach-response-workshop textarea { width: 100%; min-height: 145px; resize: vertical; font-size: 16px; line-height: 1.8; }
.response-report { margin: 20px 0 10px; animation: studio-enter 220ms ease both; }
.response-metrics { display: flex; flex-wrap: wrap; gap: 8px; }
.response-metrics span { padding: 5px 10px; background: var(--soft); color: var(--green); border-radius: 7px; font-size: 11px; font-weight: 650; }
.response-report h4 { margin: 24px 0 12px; font-size: 14px; }
.response-suggestions { display: grid; gap: 12px; }
.response-suggestions article { padding: 16px 18px; border: 1px solid #e4d5ac; border-left: 3px solid #b98b36; border-radius: 9px; background: #fffcf4; }
.response-suggestions article p { margin: 8px 0 0; font-size: 12px; }
.response-original { text-decoration: underline; text-decoration-style: dotted; text-decoration-color: #ad6c38; text-underline-offset: 4px; }
.response-example { color: #255b50; font-size: 14px !important; }
.response-goals { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.response-goals li { display: grid; grid-template-columns: 113px minmax(0,1fr); align-items: start; gap: 12px; padding: 13px; background: #f5f7f9; border-radius: 8px; }
.response-goals p { margin: 5px 0; font-size: 12px; color: var(--muted); }
.response-goals strong { font-size: 12px; }
.response-goal-status { padding: 4px 7px; border: 1px solid #d3dde4; border-radius: 6px; color: #536b80; background: #fff; font-size: 10px; text-align: center; }
.response-goal-status.detected { color: #0b675a; background: #e7f4ef; border-color: #bbdcd1; }
.response-action-plan { padding-left: 20px; font-size: 13px; }
.response-action-plan li { margin-bottom: 10px; padding-left: 4px; }
.response-next-prompt { margin: 18px 0; padding: 15px 17px; border-radius: 8px; background: #eaf4ef; color: #1d5548; font-size: 14px; }
.response-phrase-bank { display: grid; gap: 10px; margin-top: 13px; }
.response-phrase-bank > div { padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.response-phrase-bank p, .response-limits p { font-size: 12px; margin: 7px 0; color: var(--muted); }
.response-limits { margin: 18px 0 0; }
.response-comparison { margin: 24px 0 15px; padding: 20px; border: 1px solid #cbded6; border-radius: 12px; background: #f6faf8; }
.response-comparison > p { font-size: 12px; }
.response-compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 16px 0; }
.response-compare-grid > div { border-radius: 8px; padding: 15px; background: white; border: 1px solid var(--line); }
.response-compare-grid span, .response-compare-grid strong { display: block; }
.response-compare-grid span { color: var(--muted); font-size: 12px; }
.response-compare-grid strong { color: var(--green); font-size: 21px; margin: 6px 0; }
.response-compare-grid p { margin: 0; font-size: 11px; }
.response-user-text { white-space: pre-wrap; line-height: 1.9; }
@keyframes studio-enter { from { opacity: .2; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes studio-book-in { from { opacity: 0; transform: translateY(14px) rotate(3deg); } to { opacity: 1; transform: translateY(0) rotate(-8deg); } }
@keyframes studio-record { 0%,100% { box-shadow: 0 0 0 0 #b03d481a; } 50% { box-shadow: 0 0 0 5px #b03d481a; } }
@media(max-width:800px) { .response-goals li { grid-template-columns: 1fr; gap: 8px; } .response-goal-status { justify-self: start; } .coach-response-workshop > .section-head { flex-direction: column; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }

/* Learning practice v0.9 */
.evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.evidence-card{padding:20px}.evidence-card>strong{display:block;font-size:30px;margin:12px 0;color:var(--ink)}.evidence-card small{font-size:14px;color:var(--muted)}.evidence-card p{font-size:12px;min-height:44px}.lab-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;margin-top:28px}.lab-layout>aside{align-self:start;padding:18px}.lab-topic{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;padding:11px;margin-top:9px;background:var(--surface,#fff);font-size:12px}.lab-topic.active{border-color:var(--primary,#087c73);box-shadow:inset 3px 0 var(--primary,#087c73);background:#eff8f4}.lab-work h2{font-size:22px;margin-top:27px}.lab-work textarea,.teacher-conversation textarea{min-height:145px;line-height:1.8}.lab-task{padding:18px;border-radius:12px;background:#edf6f3;border-left:3px solid #087b6f}.lab-checks{border:1px solid var(--line);border-radius:12px;margin:20px 0;padding:17px}.lab-checks legend{font-weight:650;font-size:13px}.lab-checks label{font-weight:400;font-size:13px;display:flex;gap:9px;align-items:flex-start}.lab-checks input{width:auto;margin-top:3px}.delayed-recall{padding-top:25px;margin-top:28px;border-top:1px solid var(--line)}.teacher-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:22px}.teacher-intro p{font-size:13px}.teacher-messages{display:grid;gap:18px;margin:26px 0}.teacher-messages .user-bubble,.teacher-messages .partner-bubble{max-width:100%;margin:0;overflow-wrap:anywhere}.teacher-messages .user-bubble{margin-left:34px}.teacher-messages .partner-bubble{margin-right:14px}.teacher-feedback{background:rgba(255,255,255,.8);padding:16px;border:1px solid var(--line);border-radius:12px;margin-top:14px;color:var(--ink)}.teacher-feedback p{font-size:13px}.teacher-strength{border-left:3px solid #0b8273;padding-left:11px}.teacher-question{font-weight:650;font-size:18px}.teacher-tools{align-self:start;position:sticky;top:100px}.teacher-tools p,.teacher-tools li{font-size:13px}.teacher-tools li{margin-bottom:10px}.teacher-tools button,.teacher-tools a{margin:6px 0}.teacher-tools .audio-player{width:100%}.teacher-empty{padding:34px 24px;background:#eff7f4;border:1px dashed #8ab6ab;border-radius:14px}.teacher-settings{margin-top:22px;max-width:1000px}.teacher-settings p{max-width:80ch;font-size:13px}.teacher-settings input{max-width:520px}.adaptive-card{margin-bottom:24px;display:flex;align-items:center;gap:20px;border:1px solid #aacac0;background:linear-gradient(110deg,#f1f8f3,#fff)}.adaptive-card>div{flex:1}.adaptive-card h3{margin:8px 0}.adaptive-card p{margin:0;font-size:12px}.teacher-conversation [disabled]{cursor:wait}.word-context-card{margin-top:20px}.word-context-stem{font-size:22px;line-height:1.8;padding:22px;background:#f2f7f4;border-radius:12px}.word-context-answer{border-left:3px solid #0b8071;padding:15px;margin-top:20px}.word-context-answer.error{border-color:#b45b50}@media(max-width:1150px){.teacher-layout{grid-template-columns:minmax(0,1fr)}.teacher-tools{position:static}.lab-layout{grid-template-columns:185px minmax(0,1fr)}}@media(max-width:850px){.evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-layout{grid-template-columns:minmax(0,1fr)}.lab-layout>aside{display:flex;gap:7px;overflow:auto}.lab-layout>aside h3{display:none}.lab-topic{min-width:150px;margin:0}.adaptive-card{align-items:flex-start;flex-direction:column}.teacher-messages .user-bubble{margin-left:12px}}@media(prefers-reduced-motion:reduce){.teacher-feedback,.evidence-card,.lab-work{animation:none;transition:none}}
.teacher-messages{max-height:58vh;overflow-y:auto;overscroll-behavior:contain;padding-right:8px}.resource-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border-radius:10px;background:#edf6f2;font-weight:650}.natural-listening{margin:24px 0}.natural-listening textarea{min-height:100px}.natural-listening form{margin-top:20px}.teacher-recording-panel{padding:15px;background:#f0f7f4;border:1px solid #c7dfd6;border-radius:12px;margin-bottom:18px}.teacher-recording-panel .audio-player{width:100%}
/* Study programme v0.10 */
.programme-home,.programme-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#eef8f5,#f7f9ff);border-color:#cbe2dc}.programme-home{margin:22px 0}.programme-home h3{margin:8px 0}.programme-home p,.programme-hero p{margin:7px 0}.programme-count{min-width:190px;display:grid;gap:9px;text-align:right}.programme-count strong{font-size:42px;line-height:1.2}.programme-count small{font-size:20px;color:var(--muted)}.programme-count>span{font-size:12px;color:var(--muted);max-width:200px}.programme-config{margin:20px 0}.programme-config summary{font-weight:700;cursor:pointer}.programme-config form{margin-top:20px}.programme-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.programme-form-grid label{margin:0}.plan-days{border:1px solid var(--line);border-radius:12px;padding:14px;margin:18px 0;display:flex;gap:17px;flex-wrap:wrap}.plan-days label{display:flex;align-items:center;gap:6px;margin:0}.plan-days input{width:auto}.programme-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px}.programme-block{display:flex;flex-direction:column}.programme-block>button{align-self:flex-start;margin-top:auto}.programme-block-head{display:flex;gap:14px}.programme-block-head h3{margin:8px 0}.programme-number{display:grid;place-items:center;background:var(--ink);color:white;border-radius:12px;width:38px;height:38px;flex:0 0 38px;font-weight:750}.programme-block ol{padding-left:22px;font-size:14px;line-height:1.7}.programme-block li{padding-left:4px;margin:10px 0}.programme-reflection,.programme-reviews,.programme-science,.personal-words{margin:22px 0}.plan-review-list>div{display:grid;grid-template-columns:140px minmax(0,1fr) 155px 65px;gap:12px;align-items:center;border-top:1px solid var(--line);padding:13px 0}.plan-review-list .tag{white-space:normal;font-size:10px;line-height:1.5}.plan-review-list strong{font-size:14px}.plan-calendar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.plan-calendar article{display:grid;gap:9px;padding:14px;border:1px solid var(--line);border-radius:12px;align-content:start;min-height:135px}.plan-calendar .eyebrow{font-size:10px;line-height:1.5}.plan-calendar strong{font-size:13px}.plan-calendar .rest-day{background:#f3f5f7;color:var(--muted)}.plan-roadmap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.plan-roadmap article{display:grid;gap:12px;border:1px solid var(--line);border-radius:12px;padding:16px}.personal-practice{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.programme-science p{line-height:1.8}.programme-science a{font-weight:600}.programme-reflection textarea{min-height:100px}.programme-hero{margin-bottom:20px}
@media(max-width:1100px){.plan-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-review-list>div{grid-template-columns:110px minmax(0,1fr) 70px}.plan-review-list>div>.tiny{grid-column:2;grid-row:2}.plan-review-list>div>button{grid-column:3;grid-row:1 / 3}}
@media(max-width:750px){.programme-blocks,.programme-form-grid,.plan-roadmap{grid-template-columns:1fr}.programme-home,.programme-hero{align-items:flex-start;flex-direction:column}.programme-count{text-align:left;min-width:0}.plan-calendar{grid-template-columns:1fr}.plan-days{gap:12px}}
@media(prefers-reduced-motion:reduce){.programme-blocks *{scroll-behavior:auto}}
/* Projects v0.11 */
.desktop-mode [data-action="coach-recognize-answer"],.desktop-mode [data-action="coach-recognize-stop"],.desktop-mode [data-action="stop-transcribe"]{display:none}
.project-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}.project-list{position:sticky;top:90px}.project-list button{display:block;width:100%;text-align:left;margin-top:12px;border:1px solid var(--line);padding:14px;white-space:normal;line-height:1.5}.project-list .active,.project-tabs .active{background:#dceee7;color:#174f43;border-color:#398571}.project-heading{margin-bottom:18px}.project-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.project-tabs button{padding:10px 13px;border:1px solid var(--line)}.project-panel{min-height:370px}.project-panel h2{margin-bottom:14px}.project-panel label{display:block;margin-top:24px;line-height:1.6}.project-panel textarea{min-height:125px}.project-panel #project-writing{min-height:320px}.project-reading{font-size:18px;line-height:1.95;max-width:72ch;margin:24px 0;white-space:normal}.project-evidence{background:#edf5f0;border-left:3px solid #398571;border-radius:8px;padding:18px;margin:18px 0;line-height:1.7}.project-grammar-item{padding:24px 0;border-bottom:1px solid var(--line)}.project-check{display:flex!important;gap:12px;align-items:flex-start}.project-check input{width:20px;min-width:20px;margin-top:4px}.project-invitation{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0;background:linear-gradient(120deg,#eaf4ef,#f7f8ed)}.project-invitation h3{margin:10px 0}.project-invitation p{margin-bottom:10px}.source-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:20px 0}.source-cards article{border:1px solid var(--line);padding:18px;border-radius:12px;background:#fafcfb}.listening-workflow{padding-left:24px;line-height:1.9}.personal-listening{margin:24px 0}.imported-record{padding:22px 0;border-top:1px solid var(--line);margin-top:18px}.imported-record audio{margin:16px 0}.teacher-policy{border:1px solid #afcfc0;padding:14px;border-radius:10px;background:#f0f7f3}.teacher-policy a{text-decoration:underline}.project-panel,.source-cards article{animation:project-enter .25s ease-out}@keyframes project-enter{from{opacity:.75;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:1000px){.project-layout{grid-template-columns:1fr}.project-list{position:static;display:flex;flex-wrap:wrap;gap:8px}.project-list button{width:auto;flex:1 1 160px;margin:0}.project-list .eyebrow,.project-list p{width:100%}}@media(max-width:600px){.project-invitation{display:block}.project-invitation button{margin-top:16px}.project-tabs button{flex:1 1 40%}.project-reading{font-size:17px}.project-panel{padding:20px}.project-check{font-size:14px}}@media(prefers-reduced-motion:reduce){.project-panel,.source-cards article{animation:none}}

.fluency-invitation{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,var(--surface,#fff),#edf7f2);border:1px solid #b9d4c7;position:relative;overflow:hidden}.fluency-invitation h2{font-size:26px;margin:10px 0}.fluency-invitation p{max-width:570px}.fluency-layout{display:grid;grid-template-columns:225px minmax(0,1fr);gap:22px;align-items:start}.fluency-catalog{position:sticky;top:20px;padding:20px}.fluency-catalog button{width:100%;display:flex;flex-direction:column;text-align:left;padding:14px 12px;margin:10px 0;border:1px solid var(--border,#ddd);border-radius:12px;gap:7px}.fluency-catalog button.active{background:#e9f4ee;border-color:#67957a;color:#214c35}.fluency-catalog small{font-size:11px;opacity:.75}.fluency-heading{margin-bottom:18px}.fluency-heading h2{font-size:30px;letter-spacing:-.8px;margin:16px 0}.fluency-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.fluency-tabs button{padding:10px 12px;border:1px solid var(--border,#ddd);border-radius:999px;font-size:12px}.fluency-tabs button.active{background:#23563c;color:white;border-color:#23563c}.fluency-panel{animation:fluency-arrive .22s ease-out}.fluency-panel textarea{min-height:105px;resize:vertical}.fluency-panel label{display:block;margin-top:22px}.fluency-panel details{margin:20px 0;padding:15px;background:var(--bg,#f7f8f6);border-radius:12px}.fluency-panel summary{cursor:pointer;font-weight:600}.fluency-dialogue p{padding:11px 0;border-bottom:1px solid var(--border,#ddd);line-height:1.8}.fluency-dialogue strong{display:block;color:#356b4c;font-size:12px}.fluency-evidence{margin:16px 0;padding:18px;border-left:3px solid #669a7b;background:#f0f7f3;border-radius:0 12px 12px 0}.fluency-evidence blockquote{margin:12px 0;padding-left:15px;font-style:italic}.fluency-prompt{font-size:19px;line-height:1.7;background:var(--bg,#f7f8f6);padding:20px;border-radius:14px}.fluency-missions{padding-left:24px}.fluency-missions li{padding:12px 4px;line-height:1.8}.fluency-record-box{border:1px solid var(--border,#ddd);border-radius:14px;padding:18px;margin:18px 0}.fluency-panel audio{width:100%;margin:15px 0}.fluency-panel .fluency-check{display:flex;align-items:flex-start;gap:12px;font-weight:400;line-height:1.6}.fluency-check input{width:auto;margin-top:5px}.fluency-panel .resource-link{display:inline-block}.fluency-panel button:focus-visible,.fluency-tabs button:focus-visible{outline:3px solid #bb9c52;outline-offset:3px}@keyframes fluency-arrive{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1050px){.fluency-layout{grid-template-columns:1fr}.fluency-catalog{position:static;display:flex;flex-wrap:wrap;gap:8px}.fluency-catalog button{flex:1;min-width:190px}.fluency-catalog>span,.fluency-catalog>p{width:100%}}@media(max-width:700px){.fluency-invitation{align-items:flex-start;flex-direction:column}.fluency-heading h2{font-size:25px}.fluency-tabs button{padding:9px;font-size:11px}.fluency-panel{padding:20px}}@media(prefers-reduced-motion:reduce){.fluency-panel{animation:none}}

.measure-intro{border-top:3px solid var(--accent,#6d5ce7)}.measure-intro select{max-width:180px;margin-right:12px}.measure-cycle-list{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.measure-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.measure-stages article{padding:20px;border:1px solid var(--border,#ddd);border-radius:16px}.measure-domain{padding:28px 0;border-bottom:1px solid var(--border,#ddd)}.measure-domain h2{margin-bottom:18px}.measure-question{margin:20px 0}.measure-question label{display:block;line-height:1.7;margin-bottom:8px}.measure-question input,.measure-question select{width:100%;max-width:740px}.measure-passage{white-space:pre-wrap;line-height:1.9;background:var(--surface,#f5f4fa);padding:20px;border-radius:14px}.measure-score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.measure-score-grid>div{border:1px solid var(--border,#ddd);padding:18px;border-radius:14px}.measure-score-grid strong{display:block;font-size:24px;margin-top:10px}.measure-table-wrap{overflow:auto}.measure-table{border-collapse:collapse;width:100%;margin:16px 0}.measure-table th,.measure-table td{text-align:left;border-bottom:1px solid var(--border,#ddd);padding:12px}.measure-panel audio{display:block;width:100%;margin:15px 0}.measure-panel textarea{min-height:140px}@media(max-width:900px){.measure-stages{grid-template-columns:1fr}.measure-score-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){.measure-panel *{animation:none!important;transition:none!important}}

.academy-home{border-top:4px solid #187c71;background:linear-gradient(130deg,#f2faf6,#fff)}.academy-home h2{max-width:32ch}.academy-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:22px;align-items:start}.academy-layout>div{min-width:0}.academy-catalog{padding:18px;position:sticky;top:12px;max-height:calc(100vh - 110px);overflow:auto}.academy-topic{display:block;width:100%;text-align:left;padding:12px 10px;border-radius:11px;margin:5px 0}.academy-topic span{display:block;font-weight:650}.academy-topic small{display:block;line-height:1.6;color:#586a76;margin-top:5px}.academy-topic.active{background:#e3f2ec;color:#134e46}.academy-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:24px}.academy-steps button{font-size:12px;line-height:1.5;padding:10px 6px;border:1px solid #d8e1e1;border-radius:10px}.academy-steps button b{display:block}.academy-steps button.active{background:#176a60;color:#fff;border-color:#176a60}.academy-panel{margin-top:18px;padding:30px;overflow-wrap:anywhere}.academy-panel h2{line-height:1.4}.academy-panel textarea{min-height:145px;width:100%}.academy-panel input,.academy-panel select{width:100%}.academy-panel blockquote{margin:18px 0;padding:16px 20px;border-left:3px solid #238577;background:#f3f8f5;line-height:1.8}.academy-panel details{margin:18px 0}.academy-panel summary{cursor:pointer;line-height:1.7}.academy-goal{font-size:21px;line-height:1.7;color:#24594e}.academy-teaching h3{margin-top:24px}.academy-teaching p{line-height:1.9}.academy-passage{max-width:76ch;white-space:pre-wrap;line-height:1.95;font-size:17px;background:#f8f9fb;padding:22px;border-radius:14px}.academy-question{margin:22px 0 12px}.academy-question label{display:block;line-height:1.8;margin-bottom:8px;font-weight:600}.academy-answer{background:#edf7f1;border:1px solid #cce3d6;padding:17px;border-radius:12px;margin:14px 0}.academy-answer p:last-child{margin-bottom:0}.academy-word{padding:25px 0;border-bottom:1px solid #e3e7e9}.academy-followup{padding:20px;background:#f3f0fb;border-radius:14px;margin:22px 0}.academy-recording{padding:18px;border:1px solid #dbe4e5;border-radius:14px;margin:18px 0}.academy-recording audio{display:block;width:100%;margin:15px 0}.academy-bottom{margin-top:32px;padding-top:20px;border-top:1px solid #e4e8ea}.academy-route{margin:24px 0}.academy-route ol{padding-left:25px}.academy-route li{padding:18px 0;border-bottom:1px solid #e2e6e8}.academy-route li>div{display:inline-block;width:calc(100% - 105px);vertical-align:middle;padding-right:20px}.academy-route li p{margin:7px 0}.academy-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.academy-plan-hero{background:#e9f4ed;border-top:3px solid #247b69}.academy-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.academy-report-grid article{padding:22px;border:1px solid #dee6e6;border-radius:13px}.academy-report-grid strong{display:block;font-size:24px;margin:18px 0}.academy-review-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #e7ebec}.academy-review-row>span:nth-child(2){flex:1}.academy-panel :focus-visible,.academy-catalog :focus-visible{outline:3px solid #d49324;outline-offset:3px}@media(max-width:1100px){.academy-layout{grid-template-columns:195px minmax(0,1fr)}.academy-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.academy-panel{padding:24px}}@media(max-width:850px){.academy-layout{grid-template-columns:1fr}.academy-catalog{position:static;max-height:300px}.academy-plan-grid{grid-template-columns:1fr}.academy-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.academy-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-panel{padding:18px}.academy-report-grid{grid-template-columns:1fr}.academy-passage{font-size:16px;padding:15px}.academy-review-row{flex-wrap:wrap}.academy-route li>div{width:100%;padding:0}.academy-route li>button{margin-top:12px}}@media(prefers-reduced-motion:reduce){.academy-layout *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Motion is decorative; figures always come from stored learning records. */
.studio-section-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.studio-section-head h2{margin:8px 0}.studio-switch{display:inline-flex;padding:4px;border-radius:12px;background:#edf2f3;flex-shrink:0}.studio-switch button{padding:8px 12px;border-radius:9px}.studio-switch button.active{background:#fff;color:#176453;box-shadow:0 2px 5px #18343a14}.studio-activity{overflow:hidden;margin:24px 0;border:1px solid #dce7e5}.studio-chart-label{display:flex;justify-content:space-between;align-items:baseline;margin-top:22px;gap:15px}.studio-chart-label>strong{font-size:38px;letter-spacing:-1.5px;color:#183f3c}.studio-chart-label small{font-size:15px;letter-spacing:0;font-weight:500;color:#61766e}.studio-chart-label>span{font-size:12px;color:#667d7d}.studio-line-chart{width:100%;display:block;margin-top:10px;overflow:visible}.studio-chart-stroke{stroke-dasharray:1;animation:studio-line-in .9s ease-out both}.studio-chart-table{font-size:12px;margin:10px 0 22px}.studio-chart-table summary{cursor:pointer;color:#3b6a63}.studio-chart-table table,.studio-rubric table{width:100%;border-collapse:collapse;margin-top:15px}.studio-chart-table th,.studio-chart-table td{padding:10px;text-align:left;border-bottom:1px solid #e6ebeb}.studio-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:205px;color:#536e69;background:radial-gradient(ellipse at center,#f1f8f5,#fff 72%);margin:15px 0}.studio-chart-empty p{font-weight:600;margin-bottom:6px}.studio-empty-orbit{width:54px;height:54px;border:1px solid #bdd7cd;border-radius:50%;position:relative}.studio-empty-orbit:after{content:'';position:absolute;width:10px;height:10px;border-radius:50%;background:#bfded0;left:23px;top:22px;box-shadow:17px -19px 0 -2px #f0d89f}.studio-heatmap-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0 13px}.studio-heatmap-title strong{font-size:13px}.studio-heatmap-title small{font-size:10px;color:#617977}.studio-heatmap{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px}.studio-heat-cell{height:29px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:1px solid #e0e9e5}.studio-heat-cell small{font-size:10px;color:#3a5750}.shade-0{background:#f3f6f5}.shade-1{background:#d6ebdf}.shade-2{background:#8cc5ac}.shade-3{background:#277f68;border-color:#277f68}.shade-3 small{color:#fff}.studio-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.studio-feature{position:relative;padding:25px!important;overflow:hidden}.studio-feature-icon{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border-radius:14px;margin-bottom:18px;background:#ffffffad}.studio-feature .eyebrow{font-size:9px;letter-spacing:1px}.studio-feature h3{font-size:21px;line-height:1.4;margin:12px 0}.studio-feature p{font-size:13px;line-height:1.8}.human-feature{background:linear-gradient(135deg,#eaf5f0,#f9fcfa)!important;border:1px solid #d8e9e1!important}.exam-feature{background:linear-gradient(135deg,#f0edfa,#fcfbff)!important;border:1px solid #e4def2!important}.studio-evidence-overview{margin:24px 0}.studio-evidence-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.studio-evidence-numbers>div{padding:18px;background:#f6f9f8;border:1px solid #e4ece8;border-radius:13px}.studio-evidence-numbers strong{font-size:32px;display:block;color:#1f4e45}.studio-evidence-numbers strong small{font-size:16px;font-weight:400;color:#71837e}.studio-evidence-numbers span{font-size:11px;color:#526e66}.studio-remedies{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.studio-remedies>div{padding:18px;border:1px solid #e1e7e9;border-radius:12px}.studio-remedies p{font-size:13px;line-height:1.8}.studio-exam-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:25px 0}.studio-exam-card{display:flex;flex-direction:column;border-top:3px solid #8e7bb5!important}.studio-exam-card h2{font-size:23px;line-height:1.45;margin-top:16px}.studio-exam-card .primary{margin-top:auto;align-self:flex-start}.exam-domain{padding:28px 0;border-bottom:1px solid #e3e9e9}.exam-panel .measure-question{padding:17px 0}.exam-panel textarea,.exam-panel input,.exam-panel select,.human-panel textarea,.human-panel select{width:100%}.exam-panel textarea,.human-panel textarea{min-height:160px}.exam-panel details{margin:22px 0}.exam-panel summary,.human-panel summary{cursor:pointer;line-height:1.7;font-weight:600}.studio-reading{white-space:pre-wrap;line-height:1.95;font-size:17px;max-width:78ch;padding:24px;background:#f6f8fa;border-radius:15px;margin:18px 0;overflow-wrap:anywhere}.studio-domain-bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:25px 0}.studio-domain-bars>div{padding:18px;border:1px solid #dfe8e5;border-radius:12px}.studio-domain-bars span{font-size:11px;display:block}.studio-domain-bars strong{font-size:24px;display:block;margin:12px 0}.studio-bar{height:7px;border-radius:7px;background:#e6eeeb;overflow:hidden}.studio-bar i{display:block;width:var(--bar,0%);height:100%;background:#308e73;border-radius:7px;animation:studio-bar-in .5s ease-out both}.exam-answer{padding:22px 0;border-bottom:1px solid #e1e7e9}.studio-record-box{padding:22px;border:1px solid #cfded8;background:#f5faf7;border-radius:14px;margin:18px 0}.studio-record-box button{margin:4px}.exam-panel audio{width:100%;display:block;margin:15px 0}.studio-rubric{padding:22px;background:#f8f7fc;border:1px solid #e6e2ef;border-radius:14px;margin-top:22px}.studio-rubric input,.studio-rubric select{margin-bottom:15px}.studio-human-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:25px 0}.studio-human-card{overflow:hidden;display:flex;flex-direction:column}.studio-human-card h3{font-size:21px;line-height:1.5}.studio-human-card p{font-size:13px;line-height:1.8}.studio-human-card button{align-self:flex-start;margin-top:auto}.studio-disc{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:50%;position:relative;margin-bottom:24px;background:repeating-radial-gradient(circle,#203f48 0,#203f48 3px,#2d5058 4px,#203f48 5px);box-shadow:0 8px 18px #203f4822}.studio-disc i{position:absolute;width:28px;height:28px;border-radius:50%;background:#e9c88d}.studio-disc b{z-index:1;font-size:10px;color:#24493d}.studio-human-card:nth-child(3n+2) .studio-disc i{background:#b9d9cb}.studio-human-card:nth-child(3n) .studio-disc i{background:#c9bbdf}.studio-human-hero{background:linear-gradient(120deg,#f0f8f4,#fcfaf4)!important;border-top:4px solid #318c75!important}.studio-human-hero h2{font-size:32px;max-width:30ch;line-height:1.4}.human-panel>svg{display:block;width:100%;max-height:110px;margin:30px 0 12px}.human-panel>audio{width:100%;display:block;margin:15px 0}.human-panel #human-speed{max-width:220px}.human-panel .human-segment{display:grid;grid-template-columns:52px 1fr;gap:15px;line-height:1.8;border-bottom:1px solid #edf0ef;padding:15px 0}.human-segment>span:first-child{font-variant-numeric:tabular-nums;color:#6c8179;font-size:12px}.human-segment>span[lang]{font-size:13px;letter-spacing:.15px}.desktop-mode .dashboard .hero{background:linear-gradient(120deg,#0d4c49,#12665b 55%,#174453)!important;min-height:318px;position:relative;overflow:hidden}.desktop-mode .dashboard .hero-copy{z-index:1}.desktop-mode .dashboard .hero-art{right:-25px;top:9px;width:290px;height:290px;transform:none;opacity:1}.studio-orbit{width:100%;height:100%;overflow:visible}.studio-orbit-dots{transform-origin:160px 148px;animation:studio-orbit 36s linear infinite}.desktop-mode .dashboard .hero h2{font-size:36px;letter-spacing:-1.2px;line-height:1.22;max-width:12ch}.desktop-mode .dashboard .hero p{max-width:29ch}.studio-secondary-work{margin:24px 0;border:1px solid #e1e8e7;border-radius:16px;padding:20px;background:#f7faf9}.studio-secondary-work>summary{cursor:pointer;font-size:14px;font-weight:650;color:#315b50}.studio-secondary-work[open]>summary{margin-bottom:20px}.studio-secondary-work .card{margin:15px 0}.studio-exam-card,.studio-human-card,.studio-feature{transition:box-shadow .2s,border-color .2s}.studio-exam-card:hover,.studio-human-card:hover,.studio-feature:hover{box-shadow:0 12px 35px #183a3910}.studio-exam-card:focus-within,.studio-human-card:focus-within{outline:2px solid #8dbaa8;outline-offset:3px}.exam-panel :focus-visible,.human-panel :focus-visible,.studio-activity :focus-visible{outline:3px solid #c3913d;outline-offset:3px}.exam-panel,.human-panel,.studio-activity,.studio-feature{animation:studio-enter .25s ease-out both}@keyframes studio-enter{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes studio-line-in{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes studio-bar-in{from{opacity:.3}to{opacity:1}}@keyframes studio-orbit{to{transform:rotate(360deg)}}
@media(max-width:1200px){.studio-exam-grid,.studio-human-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-mode .dashboard .hero-art{right:8px;top:70px;width:220px;height:220px;opacity:.68}.studio-domain-bars{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.studio-feature-grid{grid-template-columns:1fr 1fr}.studio-evidence-numbers{gap:10px}.studio-remedies{grid-template-columns:1fr}.desktop-mode .dashboard .hero-art{right:5px;opacity:.5}.studio-heatmap{grid-template-columns:repeat(14,minmax(0,1fr));gap:4px}}@media(max-width:600px){.studio-feature-grid,.studio-exam-grid,.studio-human-grid{grid-template-columns:1fr}.studio-evidence-numbers{grid-template-columns:1fr 1fr}.studio-section-head{align-items:flex-start;flex-direction:column}.studio-chart-label{flex-direction:column;gap:5px}.studio-heatmap{grid-template-columns:repeat(7,minmax(0,1fr))}.studio-heatmap-title{align-items:flex-start;flex-direction:column}.studio-reading{padding:18px;font-size:16px}.studio-domain-bars{gap:9px}.studio-domain-bars>div{padding:14px}.desktop-mode .dashboard .hero-art{right:-80px;opacity:.25}.studio-human-hero h2{font-size:27px}.human-panel .human-segment{grid-template-columns:40px 1fr;gap:9px}.studio-rubric{padding:16px}}@media(prefers-reduced-motion:reduce){.studio-orbit-dots,.studio-chart-stroke,.studio-bar i,.exam-panel,.human-panel,.studio-activity,.studio-feature{animation:none!important;transition:none!important}}.studio-reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* The camp shares the existing app's typography and controls. */
.camp-tabs{display:flex;gap:5px;flex-wrap:wrap;padding:6px;border:1px solid #dce5e4;border-radius:14px;background:#fff;margin:22px 0 28px}.camp-tabs button{padding:11px 15px;border-radius:10px;font-size:12px;color:#4f6563;background:transparent}.camp-tabs button.active{background:#174e48;color:#fff;box-shadow:0 3px 8px #174e481c}.camp-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(200px,1fr);background:linear-gradient(120deg,#173e43,#13564e 65%,#1c6462);border-radius:23px;padding:38px 40px;color:#fff;position:relative;overflow:hidden}.camp-hero-copy{z-index:1}.camp-hero .eyebrow{color:#d9ddbd;font-size:10px;letter-spacing:1.5px}.camp-hero h2{font-size:38px;line-height:1.22;letter-spacing:-1.4px;color:#fff;margin:20px 0;max-width:18ch}.camp-hero p{color:#d4e6e1;max-width:51ch;font-size:14px;line-height:1.9}.camp-hero .toolbar{margin-top:25px;gap:10px}.camp-light-button{background:#f4dfb5!important;color:#21413a!important;border:1px solid #f4dfb5!important;padding:13px 20px!important;border-radius:10px;font-weight:650}.camp-ghost-button{color:#fff!important;background:transparent!important;border:1px solid #ffffff55!important;padding:13px 18px!important;border-radius:10px}.camp-journey-art{align-self:center;max-width:310px}.camp-journey-art svg{width:100%;display:block}.camp-path-draw{stroke-dasharray:600;stroke-dashoffset:600;animation:camp-draw 1.4s ease-out forwards}.camp-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:22px 0}.camp-stat-grid>div{padding:21px;background:#fff;border:1px solid #e0e8e6;border-radius:15px}.camp-stat-grid strong{font-size:30px;color:#1e4d46;display:block;letter-spacing:-1px}.camp-stat-grid strong small{font-size:13px;font-weight:400;letter-spacing:0}.camp-stat-grid span{display:block;font-size:11px;line-height:1.6;color:#5d726c;margin-top:8px}.camp-next{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:30px;margin:24px 0;border-left:4px solid #d4b375!important}.camp-next h2{font-size:24px;line-height:1.4;margin:12px 0}.camp-next p{font-size:14px;line-height:1.8}.camp-completion{align-self:center;display:flex;flex-direction:column;gap:9px}.camp-completion>strong{font-size:38px;letter-spacing:-1px;color:#235b4e}.camp-completion strong small{font-size:16px;color:#71877d;font-weight:400}.camp-completion>span{font-size:11px}.camp-completion>small{font-size:10px;line-height:1.6;color:#65786f}.camp-completion progress{width:100%;height:8px;accent-color:#2d846b}.camp-phase-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0}.camp-phase{display:flex;flex-direction:column;gap:12px}.camp-level{display:inline-flex;align-items:center;justify-content:center;background:#edf4ef;border:1px solid #cbded0;color:#295c49;font-size:16px;font-weight:700;border-radius:10px;min-width:45px;min-height:42px;align-self:flex-start}.camp-phase h3{font-size:18px;line-height:1.5;margin:0}.camp-phase p{font-size:13px;line-height:1.85;margin:0}.camp-phase>span:last-of-type{font-size:10px;color:#60766d;margin-top:auto}.camp-phase button{align-self:flex-start}.camp-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.camp-section-heading h2{margin:8px 0}.camp-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:22px 0}.camp-calendar button{text-align:left;padding:17px;border:1px solid #dce7e0;border-radius:12px;background:#f8fbf9;color:#2a4e41;display:flex;flex-direction:column;gap:8px;transition:background .2s,border-color .2s}.camp-calendar button:hover{background:#edf6f0;border-color:#92b5a2}.camp-calendar button>span{font-size:11px;color:#57776a}.camp-calendar strong{font-size:13px}.camp-calendar small{font-size:10px;line-height:1.7;color:#60756e}.camp-home{display:flex;justify-content:space-between;align-items:center;gap:25px;background:linear-gradient(120deg,#eef5f0,#fcfaf1)!important;border:1px solid #d6e3d9!important;margin:24px 0}.camp-home h2{font-size:24px;margin:10px 0}.camp-home p{font-size:13px;line-height:1.8}.camp-home .primary{flex-shrink:0}.camp-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:24px 0}.camp-route-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:23px;background:#fff;border:1px solid #dce5e3;border-radius:15px}.camp-route-card h3{font-size:18px;line-height:1.5;margin:10px 0}.camp-route-card p{font-size:12px;line-height:1.75;margin:8px 0}.camp-route-card small{font-size:10px;color:#63786f}.camp-route-card button{flex-shrink:0;align-self:flex-end}.camp-session-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0}.camp-session-heading h2{font-size:30px;line-height:1.4;margin:10px 0}.camp-session-heading p{color:#59726b}.camp-day-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:6px;border:1px solid #d6e4dd;background:#fff;border-radius:15px;gap:5px;margin-bottom:25px}.camp-day-strip button{border-radius:10px;padding:13px 6px;background:transparent;color:#597368}.camp-day-strip button.active{background:#e4f0e8;color:#1c5843}.camp-day-strip span{font-size:19px;display:block;font-weight:700}.camp-day-strip small{font-size:10px;display:block;margin-top:6px}.camp-mission{background:linear-gradient(125deg,#fbf8ef,#fff)!important;border-top:3px solid #c9a76b!important}.camp-mission h2{font-size:23px;font-family:Georgia,serif;line-height:1.7;max-width:72ch}.camp-mission p{font-size:14px;line-height:1.8}.camp-mission .toolbar{margin-top:20px}.camp-blocks{position:relative;display:grid;gap:15px;margin:25px 0}.camp-block{display:grid;grid-template-columns:45px minmax(0,1fr);gap:20px;position:relative;padding:27px;background:#fff;border:1px solid #dce5e1;border-radius:16px}.camp-block-number{display:flex;justify-content:center;align-items:center;width:40px;height:40px;background:#f0f5f1;color:#32604b;border:1px solid #d8e4d9;border-radius:50%;font-family:Georgia,serif;font-size:21px}.camp-block h3{font-size:20px;line-height:1.4;margin:10px 0 15px}.camp-block ol{padding-left:20px;margin:0}.camp-block li{font-size:13px;line-height:1.9;margin:8px 0}.camp-strand{grid-column:2;font-size:9px;letter-spacing:1.2px;color:#648075;font-weight:650}.camp-chunk-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.camp-chunk-grid details{border:1px solid #e0e8e3;border-radius:12px;padding:16px;background:#f9fbfa}.camp-chunk-grid summary{font-size:14px;font-weight:650;cursor:pointer;line-height:1.7}.camp-chunk-grid summary small{font-size:10px;font-weight:400;color:#678073}.camp-chunk-grid p{font-size:13px;line-height:1.8}.camp-recording-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.camp-workspace textarea{width:100%;min-height:150px}.camp-workspace label,.camp-checkpoint label{line-height:1.75}.camp-workspace audio{display:block;width:100%;margin:18px 0}.camp-workspace .fluency-check,.camp-checkpoint .fluency-check{align-items:flex-start;margin:14px 0}.camp-workspace .fluency-check input,.camp-checkpoint .fluency-check input{margin-top:5px;flex-shrink:0}.camp-workspace textarea:disabled{color:#304a43;background:#f5f8f6;opacity:1}.camp-checkpoint .academy-question{margin:22px 0;padding-bottom:20px;border-bottom:1px solid #e4eae7}.camp-checkpoint input,.camp-checkpoint select,.camp-checkpoint textarea,.camp-settings input:not([type=checkbox]),.camp-settings select{width:100%}.camp-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0;align-items:start}.camp-guide-grid .card{margin:0}.camp-guide-grid summary{cursor:pointer;display:flex;gap:14px;align-items:baseline;font-size:16px;font-weight:650;line-height:1.6;color:#264d3d}.camp-guide-grid summary>span{font-family:Georgia,serif;font-size:14px;color:#9a8458}.camp-guide-grid p{font-size:14px;line-height:1.95;padding-top:14px}.camp-guide-intro{border-left:4px solid #d5b575!important}.camp-guide-intro p{line-height:1.9}.camp-settings{max-width:760px}.camp-settings fieldset{border:1px solid #dce5e0;border-radius:12px;padding:20px;margin:22px 0}.camp-return{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #d0e3d6;border-radius:12px;background:#edf6ef;padding:12px 17px;margin:15px 0 24px}.camp-return>span{font-size:12px;color:#40664f}.camp-tabs :focus-visible,.camp-day-strip :focus-visible,.camp-hero :focus-visible,.camp-calendar :focus-visible,.camp-route-card :focus-visible{outline:3px solid #b98735;outline-offset:3px}.camp-hero,.camp-block{animation:camp-enter .25s ease-out both}@keyframes camp-enter{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes camp-draw{to{stroke-dashoffset:0}}
@media(max-width:1450px){.camp-phase-grid{grid-template-columns:1fr 1fr}.camp-route-card{flex-direction:column;align-items:stretch}.camp-route-card button{align-self:flex-start}.camp-hero{padding:30px}.camp-hero h2{font-size:32px}}
@media(max-width:1000px){.camp-hero{grid-template-columns:1fr 170px;gap:15px}.camp-hero h2{font-size:29px}.camp-stat-grid{grid-template-columns:1fr 1fr}.camp-guide-grid{grid-template-columns:1fr}.camp-calendar{grid-template-columns:1fr 1fr}.camp-next{grid-template-columns:1fr}.camp-completion{display:grid;grid-template-columns:120px 1fr;align-items:center;max-width:450px}.camp-completion progress{grid-column:1/-1}.camp-completion>small{grid-column:1/-1}}
@media(max-width:700px){.camp-hero{grid-template-columns:1fr;padding:26px}.camp-journey-art{display:none}.camp-home{align-items:flex-start;flex-direction:column}.camp-route-grid{grid-template-columns:1fr}.camp-session-heading,.camp-section-heading{align-items:flex-start;flex-direction:column}.camp-day-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.camp-chunk-grid,.camp-recording-grid{grid-template-columns:1fr}.camp-block{padding:21px;grid-template-columns:32px minmax(0,1fr);gap:13px}.camp-block-number{width:30px;height:30px;font-size:17px}.camp-block h3{font-size:18px}.camp-return{flex-wrap:wrap}.camp-tabs button{padding:10px 11px}.camp-phase-grid{gap:12px}.camp-phase{padding:19px!important}.camp-phase h3{font-size:17px}}
@media(prefers-reduced-motion:reduce){.camp-path-draw,.camp-hero,.camp-block{animation:none!important;stroke-dashoffset:0!important}.camp-calendar button{transition:none!important}}.studio-reduced-motion .camp-path-draw{stroke-dashoffset:0!important}

body.desktop-mode .camp-hero h2{font-size:clamp(29px,2.5vw,38px);letter-spacing:-1.2px;line-height:1.22}body.desktop-mode .camp-session-heading h2{font-size:30px}body.desktop-mode .camp-block h3{font-size:20px}body.desktop-mode .camp-home h2{font-size:24px}body.desktop-mode .camp-mission h2{font-size:23px;font-family:Georgia,serif;line-height:1.7}body.desktop-mode .camp-tabs button.active:hover{background:#174e48;color:#fff}

body.desktop-mode .camp-tabs{position:sticky;top:80px;z-index:8;box-shadow:0 5px 18px #173f3810}.camp-workspace{scroll-margin-top:160px}.camp-workspace>button{margin:8px 8px 8px 0}.camp-quick-jump{display:inline-flex;align-items:center;padding:9px 13px;border:1px solid #c7dcd1;border-radius:9px;color:#285b48;background:#f0f7f2;font-size:12px;text-decoration:none}@media(max-width:700px){body.desktop-mode .camp-tabs{top:76px}.camp-workspace{scroll-margin-top:210px}}

.lab-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:3px solid #bc9b55;background:linear-gradient(120deg,#f3f8f6,#fffaf0)}.lab-two,.lab-unit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}.lab-two>.card{margin:0}.lab-tabs{flex-wrap:wrap;z-index:9}.lab-tabs button{white-space:normal}.lab-reading{font-size:1.06rem;line-height:1.95;max-width:78ch;white-space:pre-line}.lab-meaning{border-left:4px solid #b99c60;background:#f7f4ec;padding:22px;border-radius:14px}.lab-meaning blockquote{margin:15px 0;padding:12px 18px;background:white;border-radius:9px}.lab-issues article,.lab-history{border-top:1px solid var(--line,#dde6e1);padding:16px 0}.lab-issues del{color:#854949;text-decoration-thickness:1px}.lab-result{margin:22px 0}.lab-take,.lab-sound{padding:20px;border:1px solid var(--line,#dde6e1);border-radius:16px;background:#f7faf9}.lab-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.lab-stats>div{padding:20px;background:#edf5f1;border-radius:15px}.lab-stats strong{display:block;font-size:1.9rem}.lab-stats span{display:block;font-size:.9rem}.lab-explainer{align-self:start}.lab-tabs :focus-visible,.lab-two :focus-visible,.lab-unit-grid :focus-visible{outline:3px solid #b98d3e;outline-offset:3px}#lab-own-audio{display:block;width:100%;margin:18px 0}.lab-unit-grid article:not(.card){border:1px solid #dce6e1;padding:18px;border-radius:12px}.lab-unit-grid .tag{white-space:normal;line-height:1.5}
@media(max-width:950px){.lab-two{grid-template-columns:1fr}.lab-banner{align-items:start;flex-direction:column}.lab-tabs{position:static}}@media(max-width:650px){.lab-unit-grid,.lab-stats{grid-template-columns:1fr}.lab-tabs{display:grid;grid-template-columns:1fr 1fr}}

/* Keyboard and long-answer polish for the learner release. */
.lab-result blockquote,.lab-history p,.lab-issues p{overflow-wrap:anywhere;white-space:pre-wrap}
.lab-tabs button.active{box-shadow:inset 0 -3px 0 #17816e}
.lab-banner .primary{flex-shrink:0}
.lab-issues article{border-radius:10px;padding:16px 12px;background:#f7faf9;margin:12px 0}
.lab-issues del{color:#9a4848}
.lab-two textarea{min-height:110px;line-height:1.65}
#lab-draft{min-height:180px}
@media(max-width:650px){.lab-banner .primary{width:100%}.lab-tabs button{min-height:48px}.lab-two .toolbar>*{flex:1 1 180px}}

.camp19-overview{background:linear-gradient(125deg,#edf7f1,#fffdf5);border-top:4px solid #167461}.camp19-overview h2{font-size:clamp(1.5rem,3vw,2.1rem);max-width:26ch;line-height:1.25}.camp19-overview>div>p{max-width:75ch}.camp19-path{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:25px 0}.camp19-path>span{border:1px solid #d5e5dd;border-radius:13px;padding:14px 10px;display:flex;gap:8px;flex-direction:column;font-size:.84rem;line-height:1.4;background:#ffffffc9}.camp19-path b{color:#167461;font-size:1.05rem}.camp19-today{background:#fff;border:1px solid #dbe6df;border-radius:16px;padding:22px}.camp19-today h3{font-size:1.3rem;margin:14px 0 10px}.camp19-brief{border-left:4px solid #b99b56;border-radius:14px;background:#f7f3e9;padding:24px;margin:22px 0}.camp19-brief h3{font-size:1.17rem;line-height:1.7;max-width:78ch}.camp19-step-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:20px}.camp19-step-nav button{display:grid;grid-template-columns:26px 1fr auto;align-items:center;text-align:left;gap:8px;padding:12px;border:1px solid #dedfce;background:#fff;border-radius:10px}.camp19-step-nav b{font-size:1.1rem;color:#176a5c}.camp19-step-nav small{color:#69746d;font-size:.73rem}.camp19-step{padding:0!important;overflow:hidden;scroll-margin-top:145px;animation:camp19-enter .25s ease both}.camp19-step>summary{display:flex;list-style:none;align-items:center;gap:15px;padding:22px 25px;cursor:pointer;line-height:1.45}.camp19-step>summary::-webkit-details-marker{display:none}.camp19-number{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:#e7f1ec;color:#166752;font-size:1.1rem;font-weight:800}.camp19-step[open]>summary .camp19-number{background:#176a5c;color:#fff}.camp19-step>summary>span:nth-child(2){flex:1;min-width:0}.camp19-step>summary strong{display:block;font-size:1.08rem}.camp19-step>summary small{display:block;font-size:.82rem;font-weight:400;color:#62746b;margin-top:4px}.camp19-time{font-weight:750;text-align:right;font-size:.95rem;flex-shrink:0}.camp19-time small{font-size:.75rem!important}.camp19-step[open]>summary{background:#f1f7f3;border-bottom:1px solid #dce7df}.camp19-step-body{padding:26px}.camp19-step-body>p{max-width:82ch;line-height:1.8}.camp19-next{margin-top:24px}.camp19-teach-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.camp19-teach-grid>div{background:#f6f9f7;border:1px solid #e0e8e2;border-radius:14px;padding:20px}.camp19-form{font-weight:650;white-space:pre-line}.camp19-warning{background:#fcf4e5;border-left:3px solid #b69446;padding:17px;border-radius:10px}.camp19-model article{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid #e3e9e4}.camp19-model article>span{color:#688478;font-size:.85rem;padding-top:6px}.camp19-model p{margin:0 0 8px;line-height:1.85;font-size:1.06rem}.camp19-model .camp19-translation{font-size:.95rem;color:#53695e}.camp19-model mark{background:#f3e4b6;padding:3px 5px;border-radius:4px;color:#3f361e}.camp19-why{margin:23px 0;padding:22px;border-radius:14px;background:#edf6f0}.camp19-why h3{font-size:1rem;margin:0 0 8px}.camp19-why p{line-height:1.8;margin:0}.camp19-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.camp19-words article{border:1px solid #e0e8e2;border-radius:12px;padding:16px}.camp19-words strong,.camp19-words span{display:block}.camp19-words span{color:#5d7366;font-size:.88rem;margin-top:5px}.camp19-words p{font-size:.9rem;line-height:1.7;margin:12px 0 0}.camp19-question{background:#fafcfb;border:1px solid #dfe8e2;border-radius:14px;margin:20px 0;padding:20px}.camp19-question label{line-height:1.8;font-size:1rem;display:block;margin-bottom:12px}.camp19-question input,.camp19-question select{width:100%;max-width:100%;margin-bottom:14px}.camp19-feedback{padding:18px;border-radius:10px;line-height:1.75;margin-top:15px}.camp19-feedback p{margin:9px 0}.camp19-feedback.correct{background:#e7f3e9;border-left:3px solid #298357}.camp19-feedback.retry{background:#f9f0dc;border-left:3px solid #af8136}.camp19-feedback small{display:block;color:#55685c}.camp19-hint{padding:18px;border:1px dashed #b7cdbf;background:#f0f5ef;border-radius:10px;line-height:1.8}.camp19-source,.camp19-support{padding:18px;border:1px solid #d9e5dd;border-radius:12px;margin:20px 0;background:#f9fcfa}.camp19-source .studio-reading{padding:20px 0;white-space:pre-line;line-height:1.95}.camp19-support p{line-height:1.8}.camp19-field{margin:25px 0}.camp19-field textarea{min-height:120px;line-height:1.8}.camp19-field-help{color:#566d5d;font-size:.9rem;line-height:1.8;margin:8px 0 0!important}.camp19-field-help strong{font-size:.85rem}.camp19-task{padding:20px;background:#edf6f0;line-height:1.85;border-radius:12px}.camp19-mode{padding-top:8px}.camp19-self-check{border-top:1px solid #dce6df;margin-top:26px;padding-top:20px}.camp19-missing{padding-left:22px;line-height:1.85}.camp19-missing li{margin:10px 0}.camp19-extra{margin:20px 0;line-height:1.8}.camp19-guide-list{padding-left:24px;margin:24px 0}.camp19-guide-list li{padding-left:8px;margin:20px 0;line-height:1.8}.camp19-guide-list p{margin:7px 0}.camp19-step :focus-visible,.camp19-step-nav :focus-visible{outline:3px solid #b48c39;outline-offset:3px}.camp19-step p,.camp19-step label{overflow-wrap:anywhere}
@keyframes camp19-enter{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1050px){.camp19-path{grid-template-columns:repeat(3,minmax(0,1fr))}.camp19-teach-grid{grid-template-columns:1fr}.camp19-step-nav button{grid-template-columns:22px 1fr}.camp19-step-nav small{grid-column:2}.camp19-step>summary{padding:20px}.camp19-step-body{padding:20px}}
@media(max-width:650px){.camp19-path,.camp19-step-nav,.camp19-words{grid-template-columns:repeat(2,minmax(0,1fr))}.camp19-step>summary{gap:10px;padding:17px 14px}.camp19-number{width:31px;height:31px}.camp19-time small{max-width:75px;line-height:1.5}.camp19-step-body{padding:18px 14px}.camp19-question{padding:16px}.camp19-question .toolbar>*{flex:1 1 160px}.camp19-brief{padding:20px}.camp19-step{scroll-margin-top:100px}.camp19-step .camp19-next{width:100%}}
@media(prefers-reduced-motion:reduce){.camp19-step{animation:none;scroll-behavior:auto}}

.camp19-question-tr{color:#516e5e;font-size:.94rem;line-height:1.75;margin:2px 0 15px!important}

.camp19-start-help{margin-top:24px;border-top:1px solid #dce7df;padding-top:18px}.camp19-overview>.toolbar{margin-top:22px}

.camp19-step[hidden]{display:none!important}.p20-focus-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 24px;padding-bottom:16px;border-bottom:1px solid var(--border,#dfe5e2)}.p20-focus-bar>span{font-weight:700;color:#176d61}.p20-adaptive{border-left:4px solid #a78943;background:#fffdf6}.p20-adaptive h3{font-size:20px}.p20-review .outline{margin:5px 8px 5px 0}.p20-error,.p20-lesson{margin-top:20px;padding:20px;border:1px solid #d9e5df;border-radius:14px;background:#f7faf8}.p20-example{font-size:21px;line-height:1.6;color:#145b51}.p20-followup{margin:18px 0}.p20-followup button{margin:4px}.p20-speech ol{padding-left:24px;line-height:1.9}.p20-speech{border-top:4px solid #16776a}.p20-listening{background:#f3f8f6}#p20-analysis{scroll-margin-top:175px}#p20-analysis:empty{display:none}.p20-lesson textarea{min-height:100px}@media(max-width:700px){.p20-focus-bar{align-items:flex-start}.p20-focus-bar button{width:100%}.p20-error,.p20-lesson{padding:14px}.p20-adaptive h3{font-size:18px}}@media(prefers-reduced-motion:reduce){.p20-error,.p20-lesson,.p20-review{animation:none;transition:none}}

.m21-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.m21-grid label{display:grid;gap:8px}.m21-schedule{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.m21-schedule span{display:flex;justify-content:space-between;gap:8px;padding:12px;background:#f3f7f4;border-radius:10px;font-size:13px}.m21-profile{border-top:4px solid #16776a}.m21-goal{border-left:4px solid #a58b4e}.m21-goal details{margin-top:18px}.m21-self{margin-top:28px;padding:20px;border:1px solid #d4dfd8;border-radius:14px}.m21-self summary{font-weight:700;color:#176c60}.m21-self-row{padding:16px 0;border-bottom:1px solid #e0e6e2}.m21-self-row label{display:block}.m21-confirm{padding:22px;background:#f3f7f5;border:1px solid #d5e2db;border-radius:14px;margin:20px 0}.m21-confirm input{margin:8px 0}.m21-rating{padding:15px 0;border-top:1px solid #d9e3dc}.m21-dialogue-guide{border-top:4px solid #16776a}.m21-dialogue-guide ol{line-height:1.9;padding-left:25px}.m21-line{display:block;margin:7px 0;text-align:left}.m21-goal select,.m21-goal textarea,.m21-self textarea{margin:8px 0 16px}.lab-tabs{overflow-x:auto;flex-wrap:wrap}@media(max-width:700px){.m21-grid{grid-template-columns:1fr}.m21-schedule{grid-template-columns:1fr 1fr}.m21-confirm{padding:15px}}@media(prefers-reduced-motion:reduce){.m21-profile,.m21-goal,.m21-confirm{animation:none;transition:none}}

.q22-progress{padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--paper);margin-bottom:18px}.q22-progress h3{margin-top:0}.q22-route{padding:12px 16px;border-left:3px solid var(--green);background:var(--paper)}
