@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/bricolage-grotesque-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/bricolage-grotesque-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/figtree-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/figtree-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{--paper:#f4f7f2;--surface:#fcfdfb;--ink:#13241f;--muted:#56675f;--line:#d4ded6;--grove:#1e6b4f;--grove-dark:#175a42;--forest:#16473a;--leaf:#cfeadb;--leaf-soft:#e6f3eb;--saffron:#e2a23b;--plum:#6e3a5e;--close:#f6edd5;--close-edge:#a37a1f;--alert:#b0402c;--press:#0f4a36;--sage:#dbeee2;--lang:#a72d3c;--font-display:'Bricolage Grotesque','Noto Sans',system-ui,sans-serif;--font-body:Figtree,'Noto Sans',system-ui,sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input,label{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:disabled{cursor:default;opacity:.6}h1,h2,h3,p{margin-top:0}h1,h2,.phrase{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em}p{line-height:1.6}button:focus-visible,a:focus-visible,input:focus-visible,label:focus-visible{outline:3px solid var(--grove);outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:20px;background:var(--ink);color:white;padding:12px;z-index:100}.skip:focus{top:12px}
.masthead{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 38px;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:24px;font-weight:650;letter-spacing:-1px}.brand-light{font-weight:350}.flag{width:30px;height:23px;background:var(--grove);border-radius:3px;position:relative;overflow:hidden;display:inline-block}.flag:before{content:'';position:absolute;background:var(--paper);width:4px;height:100%;left:9px}.flag:after{content:'';position:absolute;background:var(--paper);width:100%;height:4px;top:9px}.private-mark{margin-left:auto;font-size:11px;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center;gap:8px}.private-mark>span{width:6px;height:6px;background:#3f8f68;border-radius:50%}.icon-button{background:transparent;border:0;font-size:24px;min-width:44px;min-height:44px;color:var(--ink)}
.layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 86px)}.sidebar{border-right:1px solid var(--line);padding:45px 24px 30px;display:flex;flex-direction:column}.sidebar-label,.eyebrow{font-size:10px;font-weight:650;letter-spacing:.16em;color:var(--grove);line-height:1.5}.sidebar-label{color:var(--muted);font-size:9px;margin-bottom:28px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{display:grid;grid-template-columns:22px 1fr 16px;align-items:center;gap:10px;padding:14px 12px;text-decoration:none;font-size:10px;color:var(--muted);border-radius:7px}.sidebar nav a span:first-of-type{font-size:14px;color:var(--ink)}.sidebar nav a.active{background:#e2eee6}.sidebar nav a.active span{color:var(--grove)}.sidebar-note{margin-top:auto;padding:85px 12px 36px}.mini-flower{font-size:45px;color:var(--grove)}.sidebar-note p{font-size:12px;color:var(--muted);line-height:1.8;margin-top:15px}.sidebar-footer{font-size:9px;letter-spacing:.13em;color:var(--muted);padding-left:12px}
main{width:100%;max-width:1200px;padding:46px 54px 60px;margin:0 auto;outline:none}.page-heading{font-size:clamp(36px,4vw,57px);letter-spacing:-1.8px;line-height:1.08;margin:16px 0 19px}.lede{font-size:14px;color:var(--muted);max-width:540px;margin-bottom:30px}.hero{background:var(--sage);border-radius:16px;padding:34px 38px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;min-height:280px;overflow:hidden;position:relative}.hero .eyebrow{color:#3b5a4d}.hero h2{font-size:39px;letter-spacing:-1px;margin:15px 0 13px}.hero .meta{margin-bottom:24px}.meta{font-size:11px;letter-spacing:.035em;color:var(--muted);line-height:1.7}.hero-art{position:relative;min-height:210px;align-self:end;isolation:isolate}.hero-art:after{content:'';position:absolute;bottom:4px;left:-15%;width:125%;height:1px;background:#a9bfb1;transform:rotate(-8deg)}.sun{width:69px;height:69px;border:1px solid #b5c6ba;border-radius:50%;position:absolute;top:-14px;right:0}.house{position:absolute;left:10%;bottom:7px;width:140px;height:143px;background:#e4ece6;transform:rotate(-7deg);box-shadow:16px 9px 0 #b5c6ba}.roof{position:absolute;top:-46px;left:-12px;width:163px;height:55px;background:var(--grove);clip-path:polygon(49% 0,100% 100%,0 100%)}.window{position:absolute;width:29px;height:35px;background:#16473a;top:27px;left:20px;border:3px solid #f6edd5}.window:after,.window:before{content:'';position:absolute;background:#f6edd5}.window:after{height:100%;width:2px;left:10px}.window:before{width:100%;height:2px;top:13px}.window.second{left:90px}.door{position:absolute;bottom:0;left:54px;width:32px;height:64px;background:#1e6b4f}.house-flag{position:absolute;left:calc(10% + 156px);top:10px;height:155px;border-left:2px solid #3b5a4d;transform:rotate(-7deg)}.house-flag .flag{width:33px;left:0;top:4px}.house-flag .flag:before{left:10px}.tiny-caption{position:absolute;right:-6px;bottom:-16px;font-family:var(--font-display);font-size:13px;font-style:italic;color:#3b5a4d;transform:rotate(-7deg)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:7px;border:1px solid transparent;padding:12px 18px;font-size:12px;font-weight:600;line-height:1.4;gap:12px;text-decoration:none;transition:background .15s,transform .15s;cursor:pointer}.button.primary{background:var(--grove);color:#ffffff}.button.primary:hover{background:#175a42}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button.secondary:hover{background:#e6efe9}.button.text{color:var(--grove);background:transparent;padding-left:0}.button.text:hover{text-decoration:underline}.section-heading{display:flex;justify-content:space-between;align-items:baseline;margin:32px 0 16px;gap:12px}.section-heading h2{font-family:inherit;font-size:14px;font-weight:600;margin:0}.section-heading span{font-size:10px;color:var(--muted)}.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lesson-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;min-height:220px}.lesson-number{font-family:var(--font-display);font-size:27px;font-weight:400;color:var(--grove);display:block;margin-bottom:18px}.lesson-card h3{font-size:14px;line-height:1.4;margin-bottom:8px}.lesson-card p{font-size:12px;color:var(--muted);margin-bottom:16px}.lesson-card .button{margin-top:auto;justify-content:space-between;width:100%;padding:10px 0;min-height:34px;font-size:11px}.lesson-card .meta{margin-bottom:12px}.complete{color:#1e6b4f}.next-unit{display:flex;justify-content:space-between;gap:15px;margin-top:24px;padding:18px 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);padding:24px;border-radius:12px;margin:18px 0}.small{font-size:12px}.muted{color:var(--muted)}
.exercise-shell{max-width:770px;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:0 auto}.exercise-top{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:18px 25px}.exercise-top span{font-size:11px;color:var(--muted)}.progress-track{height:4px;background:#e6efe9}.progress-track>span{display:block;height:100%;background:var(--grove)}.exercise-content{padding:35px 40px 40px}.exercise-content h1{font-size:29px;margin:16px 0 24px;letter-spacing:-.6px}.mode-badge{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:7px 10px;border:1px solid var(--line);border-radius:20px;display:inline-block;color:var(--muted)}.phrase{font-size:38px;line-height:1.2;letter-spacing:-.7px;margin:23px 0 12px}.translation{font-size:17px;color:var(--muted);margin-bottom:24px}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.answer-form{display:grid;gap:12px;margin-top:20px}.answer-form label{font-size:12px;font-weight:600}.answer-input{width:100%;min-height:54px;padding:14px;font-size:18px;background:var(--paper);color:var(--ink);border:1px solid #b5c6ba;border-radius:8px}.answer-form .button{justify-self:start}.hint-box{background:#e6f3eb;border-radius:8px;padding:18px;margin-top:18px;line-height:1.6;font-size:14px}.hint-box p{margin-bottom:6px}.feedback:not(:empty){margin-top:18px;padding:18px;background:#e6f3eb;border-radius:8px;font-size:14px;line-height:1.5}.choice{display:block;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:17px;text-align:left;color:var(--ink);font-size:15px;margin:10px 0}.choice:hover{border-color:var(--grove)}audio{max-width:100%;margin:12px 0;display:block}.evidence-row{padding:20px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:22px;align-items:center}.evidence-row p{margin:5px 0;font-size:12px}.evidence-counts{display:flex;gap:15px;font-size:10px;color:var(--muted);text-align:center}.evidence-counts strong{display:block;font-size:22px;color:var(--ink);font-weight:400;font-family:var(--font-display)}.progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat{font-family:var(--font-display);font-size:35px;display:block;margin-bottom:5px}.phrase-library{display:grid;gap:0}.phrase-library article{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-top:1px solid var(--line)}.phrase-library p{margin:0;font-size:12px;color:var(--muted)}.phrase-library h3{font-family:var(--font-display);font-weight:400;font-size:23px;margin:0 0 5px}
.toast{position:fixed;bottom:25px;right:25px;background:var(--ink);color:var(--paper);padding:18px 22px;border-radius:10px;box-shadow:0 8px 30px #0002;max-width:390px;font-size:13px;z-index:80;line-height:1.5}dialog{max-width:560px;width:calc(100% - 32px);padding:30px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #0003}dialog::backdrop{background:#182a2455;backdrop-filter:blur(3px)}dialog h2{font-size:34px;line-height:1.1}dialog p{font-size:13px}.dialog-close{float:right}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
@media(min-width:1400px){main{padding-top:58px}.hero{min-height:310px}.lesson-card{min-height:235px}}
@media(max-width:1000px){main{padding:35px 28px}.layout{grid-template-columns:180px 1fr}.sidebar{padding-left:16px;padding-right:16px}.hero{padding:28px}.hero h2{font-size:34px}.house{left:0}.house-flag{left:157px}.lesson-card{padding:17px}}
@media(max-width:800px){.masthead{height:70px;padding:0 22px}.masthead .icon-button{margin-left:auto}.private-mark{display:none}.layout{display:block;min-height:calc(100vh - 70px)}.sidebar{position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--paper);border-right:0;border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.sidebar nav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sidebar nav a{display:flex;justify-content:center;font-size:10px;padding:13px 10px}.sidebar nav a span:last-child,.sidebar-label,.sidebar-note,.sidebar-footer{display:none}.sidebar nav a span:first-of-type{font-size:12px}main{padding:28px 22px 120px}.page-heading{font-size:42px;letter-spacing:-1.5px}.lede{font-size:13px;margin-bottom:26px}.hero{grid-template-columns:1fr;min-height:0;padding:29px}.hero h2{font-size:35px}.hero-art{display:none}.lesson-grid{grid-template-columns:1fr;gap:12px}.lesson-card{min-height:0;padding:20px;display:grid;grid-template-columns:43px 1fr;column-gap:14px}.lesson-number{grid-row:1/5;margin-top:0}.lesson-card h3{font-size:15px}.lesson-card p{margin-bottom:10px}.lesson-card .button{grid-column:2;padding:8px 0}.lesson-card .meta{grid-column:2;margin-bottom:4px}.exercise-content{padding:25px 22px}.exercise-top{padding:15px}.exercise-top .button{padding:8px}.exercise-content h1{font-size:27px}.phrase{font-size:33px}.action-row .button{flex:1}.evidence-row{display:block}.evidence-counts{text-align:left;margin-top:14px;justify-content:space-between}.progress-grid{gap:10px}.progress-grid .card{padding:15px;margin:10px 0}.stat{font-size:29px}.toast{bottom:90px;right:16px;left:16px;max-width:none}.next-unit{font-size:10px}dialog{padding:24px}.phrase-library h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.unit-switch{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.unit-switch .button{min-height:44px;font-size:11px}.next-unit .button{padding:0;min-height:24px;font-size:11px}.evidence-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-width:300px}.evidence-counts>span{line-height:1.6}
select,textarea{font:inherit;color:var(--ink)}.needs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.needs-choice{display:flex;align-items:center;gap:10px;min-height:50px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px;line-height:1.4;cursor:pointer}.needs-choice:has(input:checked){border-color:var(--grove);background:#cfeadb}.needs-choice input{accent-color:var(--grove);width:18px;height:18px;flex-shrink:0}.needs-fields{display:grid;gap:10px;margin:20px 0}.needs-fields label{font-size:13px;font-weight:600}.needs-fields select,.needs-fields textarea{width:100%;padding:12px;background:var(--surface);border:1px solid #b5c6ba;border-radius:8px;min-height:46px}.needs-fields textarea{min-height:100px;resize:vertical}.needs-fields p{font-size:12px;color:var(--muted)}#needs-form fieldset{margin:0;padding:0;border:0;min-width:0}#needs-form legend{font-size:16px;font-weight:600}.path-list{list-style:none;padding:0;display:grid;gap:12px}.path-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:16px 0;font-size:14px}.path-list li p{margin:4px 0;font-size:12px;color:var(--muted)}.path-list .button{flex-shrink:0}.daily-plan{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px}.daily-plan>div{flex:1;min-width:190px}.daily-plan h2{font-size:27px;margin-bottom:6px}.daily-plan p{margin-bottom:8px}.daily-plan ol{width:100%;margin:0;padding-left:22px}.daily-plan li{font-size:12px}.daily-plan .button.text{min-height:44px;padding:8px 0}textarea:focus-visible,select:focus-visible{outline:3px solid var(--grove);outline-offset:4px}
@media(max-width:800px){.evidence-counts{min-width:0;gap:10px;font-size:9px}.unit-switch .button{flex:1;padding:10px}.next-unit{align-items:center}}
@media(max-width:800px){.sidebar nav{grid-template-columns:repeat(4,1fr)}.sidebar nav a{padding:13px 5px;gap:5px}.sidebar nav a span:first-of-type{font-size:11px}.needs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.needs-choice{font-size:12px;padding:10px}.path-list li{align-items:flex-start;flex-direction:column;gap:8px}.unit-switch .button{flex:1 1 44%}.daily-plan{padding:20px}.daily-plan .eyebrow{font-size:9px}}

.scenario-grid,.stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.scenario-grid .card{margin:0;display:flex;flex-direction:column;gap:10px}.scenario-grid h3{font-family:var(--font-display);font-size:25px;font-weight:400;margin:0}.scenario-grid .button{align-self:start;margin-top:auto}.scenario-grid p{margin-bottom:5px}.message-text{white-space:pre-line;font-family:var(--font-display);font-size:26px;line-height:1.65;overflow-wrap:anywhere}.translation-text{white-space:pre-line;font-size:14px;margin-top:20px;color:var(--muted)}.reading-questions fieldset{border:0;border-top:1px solid var(--line);padding:22px 0 12px;margin:16px 0 0;min-width:0}.reading-questions legend{font-size:14px;font-weight:600;padding:0;line-height:1.5}.reading-feedback{background:#e6f3eb;padding:14px;border-radius:8px}.choice[aria-pressed=true]{border-color:var(--grove);opacity:1;background:#cfeadb}.writing-form{display:grid;gap:12px}.writing-form>label{font-size:14px;font-weight:600}.draft-input{width:100%;min-height:180px;background:var(--paper);border:1px solid #b5c6ba;border-radius:8px;padding:15px;font-size:17px;line-height:1.7;resize:vertical}.writing-points{border:1px solid var(--line);border-radius:8px;padding:18px;display:grid;gap:14px;min-width:0}.writing-points legend{font-size:12px;padding:0 8px}.writing-points label{display:flex;gap:10px;align-items:start;font-size:13px;line-height:1.5}.writing-points input{width:18px;height:18px;flex-shrink:0;accent-color:var(--grove);margin-top:1px}.writing-form>.button{justify-self:start}.stage-grid .card{margin:0}.stage-grid h2{font-size:32px}.stage-grid .outcome-row{display:block}.stage-grid .outcome-row .outcome-row{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.outcome-row p{font-size:13px;margin:6px 0}.outcome-row .button{font-size:12px;text-align:left}.stage-grid>section{min-width:0}
@media(max-width:800px){.scenario-grid,.stage-grid{grid-template-columns:1fr}.message-text{font-size:24px;line-height:1.6}.writing-points{padding:14px}.card{padding:20px}.stage-grid h2{font-size:29px}}

.scenario-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.scenario-columns>.card{margin:0}.scenario-columns .reading-questions h2{font-size:29px}.scenario-columns .message-text{font-size:24px}
@media(max-width:800px){.scenario-columns{grid-template-columns:1fr}.scenario-columns .message-text{font-size:24px}}

.pattern-box{background:#e6f3eb;border:1px solid var(--line);border-radius:10px;padding:20px;margin:22px 0;overflow-wrap:anywhere}.pattern-box h2{font-size:24px;line-height:1.2;margin-bottom:12px}.pattern-box p{font-size:13px;margin-bottom:10px}.pattern-box ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}.pattern-box li{border-top:1px solid #c8d6cc;padding-top:10px}.pattern-box li p{margin:0}.pattern-box li [lang=da]{font-weight:600}.pattern-box li .small{color:var(--muted);font-size:12px}
/* Full course, activity and assessment layouts share the original visual system. */
.section-select{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:28px 0}.section-select label{font-size:.8rem;font-weight:700;width:100%}.section-select select{flex:1;min-width:220px;max-width:100%;padding:14px;background:var(--paper,#f9fbf7);border:1px solid #d4ded6;border-radius:8px;color:inherit;font:inherit}.section-select .button{white-space:normal}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile-grid label{display:grid;gap:8px}.profile-grid input,.exam-question input:not([type=radio]){font:inherit;padding:12px;border:1px solid #c3d1c7;border-radius:8px;background:#fcfdfb;max-width:100%;min-width:0}.exam-question input:not([type=radio]){display:block;width:100%;margin-top:10px}.exam-question{display:block;min-width:0;border:0;padding:0;margin:26px 0}.exam-question legend{font-weight:650;margin-bottom:12px}.exam-option{display:flex;gap:12px;align-items:flex-start;margin:9px 0;padding:12px;border:1px solid #d4ded6;border-radius:8px;line-height:1.5}.exam-option input{margin-top:5px;flex:none;accent-color:#1e6b4f}.exam-toolbar{position:sticky;top:12px;z-index:15;display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:16px;background:#f4f7f2;border:1px solid #d4ded6;border-radius:10px;box-shadow:0 4px 16px #0001}.exam-toolbar #exam-clock{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.exam-source{padding:18px 0;border-bottom:1px solid #d4ded6}.exam-source .message-text{font-size:1rem;line-height:1.8;white-space:pre-wrap}.exam-source:last-child{border-bottom:0}.table-scroll{overflow-x:auto;margin:20px 0}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{padding:12px;text-align:start;border:1px solid #d4ded6}.source-links{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;margin-top:16px}.notice-panel{border-inline-start:3px solid #a37a1f;background:#f6edd5;padding:16px;line-height:1.65}.outcome-details{padding:16px 0;border-top:1px solid #d4ded6}.outcome-details summary{font-weight:650;cursor:pointer}.resource-list{padding-left:20px}.resource-list li{padding:5px 0}.card details{margin:16px 0}.card summary{cursor:pointer;line-height:1.5}.card li{line-height:1.7;margin:8px 0}.result-card{border-color:#1e6b4f}.card label:has(textarea){display:block}.card textarea{margin-top:10px}.card audio{width:100%;margin:16px 0}#language-picker{width:100%;font:inherit;padding:12px;margin:8px 0 20px}#speaking-notes{width:100%;box-sizing:border-box}.profile-grid input:focus,.exam-question input:focus,.section-select select:focus{outline:2px solid #1e6b4f;outline-offset:3px}
@media(max-width:650px){.profile-grid{grid-template-columns:1fr}.exam-toolbar{top:8px;gap:10px;font-size:.85rem}.exam-toolbar .button{padding:10px 12px;font-size:.8rem}.section-select{gap:8px}.section-select select{width:100%;flex-basis:100%}.exam-option{padding:10px}.card .draft-input{min-height:220px}.source-links{overflow-wrap:anywhere}.card{min-width:0}.exam-source .message-text{font-size:.95rem}.section-select .button{font-size:.8rem}}

/* Vocabulary groups and productive sentence practice. */
.sentence-section{margin-top:36px}.sentence-lead{border-left:4px solid var(--grove,#1e6b4f)}.sentence-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.sentence-stats>div{display:flex;flex-direction:column;gap:5px}.sentence-stats strong{font-size:2rem;font-weight:500;color:#1e6b4f}.sentence-stats span{font-size:.8rem;line-height:1.45}.lexicon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lexicon-card{padding:22px;background:#fcfdfb;border:1px solid #d4ded6;border-radius:12px;overflow-wrap:anywhere}.lexicon-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.lexicon-title h3{font-size:1.25rem}.lexicon-form{font-size:.8rem;padding:8px 10px;background:#eaf1ec;border-radius:5px;line-height:1.55}.sentence-patterns .card{margin-bottom:16px}.sentence-example{font-size:1.25rem;line-height:1.6;overflow-wrap:anywhere}.sentence-run-top,.sentence-run-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.sentence-run-footer{margin:28px 0}.sentence-prompt{font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.25;max-width:850px}.sentence-assembly{display:flex;flex-wrap:wrap;gap:9px;align-content:flex-start;min-height:100px;padding:18px;border:1px dashed #a9b8ae;background:#f1f6f0;border-radius:10px;margin:18px 0}.chunk-bank{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}.button.chunk{white-space:normal;text-align:left;min-height:44px;padding:10px 15px;border:1px solid #a9b8ae;background:#fcfdfb;color:#13241f;line-height:1.5;overflow-wrap:anywhere}.button.chunk.selected{border-color:#1e6b4f;background:#1e6b4f;color:white}.button.chunk:disabled{opacity:.3}.sentence-answer{min-height:100px;width:100%;resize:vertical;margin:8px 0 16px}.sentence-feedback{margin-top:24px;padding:22px;background:#e9f4ed;border-left:3px solid #3f8f68;border-radius:6px}.sentence-feedback h2{font-size:1.3rem}.sentence-workspace .action-row{margin-top:8px}.sentence-run-top+.step-dots{margin:20px 0}.sentence-stats,.lexicon-grid,.sentence-patterns{min-width:0}.sentence-section .section-heading a{font-size:.85rem}.lexicon-card .button.text{padding-left:0}
@media(max-width:600px){.lexicon-grid{grid-template-columns:1fr}.sentence-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.sentence-stats strong{font-size:1.7rem}.sentence-assembly{padding:12px}.button.chunk{padding:9px 12px}.sentence-prompt{font-size:1.8rem}.sentence-run-top .meta{font-size:.7rem}.sentence-section .section-heading{align-items:flex-start;gap:12px}}
.step-dots{display:flex;gap:6px;flex-wrap:wrap}.step-dots span{height:5px;flex:1;min-width:8px;border-radius:5px;background:#d4ded6}.step-dots .done{background:#3f8f68}.step-dots .current{background:#1e6b4f}.sentence-answer[readonly]{background:#eaf1ec}.sentence-workspace textarea{min-height:110px}

.conversation-history summary{cursor:pointer;font-weight:600}.conversation-turn{padding:1.4rem 0;border-bottom:1px solid var(--line,#d4ded6)}.conversation-turn:last-child{border-bottom:0}.conversation-turn .eyebrow{margin-top:1.3rem}.conversation-turn p{overflow-wrap:anywhere}

.program-stages{padding-left:1.3rem}.program-stages>li{padding:.8rem 0;border-bottom:1px solid var(--line,#d4ded6)}.program-stages>li:last-child{border:0}.program-stages .eyebrow{margin-bottom:.5rem}.personal-program>details{margin:1rem 0}.personal-program h2{overflow-wrap:anywhere}#program-level{max-width:22rem}

.personal-program,.personal-goal-title{overflow-wrap:anywhere}
#goal-review-form fieldset,#official-review-form fieldset{min-width:0;border:1px solid var(--line);border-radius:8px;margin:1rem 0;padding:.7rem 1rem}#goal-review-form legend,#official-review-form legend{font-weight:600;font-size:.9rem;padding:0 .4rem}#goal-review-form .check-row,#official-review-form .check-row{display:flex;align-items:flex-start;gap:.65rem;line-height:1.5;min-height:44px;padding:.55rem 0}#goal-review-form .check-row input,#official-review-form .check-row input{width:18px;height:18px;margin:.15rem 0 0;flex-shrink:0;accent-color:var(--grove)}
#speaking-review label{display:flex;align-items:flex-start;gap:.65rem;line-height:1.5;min-height:44px;padding:.55rem 0}#speaking-review input[type=checkbox]{width:18px;height:18px;margin:.15rem 0 0;flex-shrink:0;accent-color:var(--grove)}
.partner-guide>summary{font-family:var(--font-display);font-size:25px;line-height:1.35;min-height:44px;padding:10px 0}.partner-prompts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 0}.partner-prompts>summary{font-weight:600;color:var(--grove);min-height:44px;padding:12px 0}.partner-rounds{padding-inline-start:24px}.partner-rounds li{padding:14px 0;border-top:1px solid var(--line)}.partner-rounds h3{font-size:18px;margin:0 0 10px}.partner-rounds p[lang]{font-family:var(--font-display);font-size:24px;line-height:1.5;overflow-wrap:anywhere}

/* Fictional form practice */
.form-case-nav{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.form-practice-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px;align-items:start}
.form-practice-layout .card{min-width:0;margin:0}
.form-case{position:sticky;top:24px}
.form-source{font-size:1.12rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.form-field{margin:0 0 28px;min-width:0}
.form-field label{display:block;font-weight:650;margin:0 0 8px}
.form-field input,.form-field textarea{width:100%;max-width:100%;min-width:0}
.form-field-status{color:var(--muted,#56675f);margin:10px 0}
.form-field .hint-box{overflow-wrap:anywhere}
.form-field .action-row{flex-wrap:wrap}
.form-case-nav a{white-space:normal;text-align:left}
@media(max-width:800px){.form-practice-layout{grid-template-columns:minmax(0,1fr)}.form-case{position:static}.form-case-nav .button{flex:1 1 180px}.form-practice-layout .card{padding:22px}}

.reading-source{border-top:1px solid var(--line,#d4ded6);margin-top:24px;padding-top:20px;font-size:.84rem;line-height:1.6;overflow-wrap:anywhere}
.reading-source p{margin:8px 0}
.reading-table-wrap{overflow-x:auto;margin:22px 0}
.reading-table{width:100%;border-collapse:collapse;font-size:.95rem}
.reading-table caption{text-align:left;font-weight:650;margin-bottom:12px}
.reading-table th,.reading-table td{text-align:left;border-bottom:1px solid var(--line,#d4ded6);padding:10px 8px;vertical-align:top}
.reading-table th{font-weight:600}

.course-update{position:fixed;bottom:90px;left:20px;right:20px;z-index:90;padding:16px;background:var(--paper,#f4f7f2);border:1px solid #1e6b4f;border-radius:10px;box-shadow:0 8px 30px #0002;max-width:660px;margin-inline:auto}.course-update[hidden]{display:none}.course-update p{margin-top:0}.course-update button{min-height:44px}
.first-wins{margin-block:24px}.starter-wins-list{padding-left:24px;margin:16px 0}.starter-wins-list li{padding:14px 0 18px 8px;border-bottom:1px solid var(--line,#d4ded6);overflow-wrap:anywhere}.starter-wins-list li:last-child{border-bottom:0}.starter-wins-list h3{font-size:1.05rem;margin:0 0 6px}.starter-wins-list p{margin:5px 0;font-size:.9rem}.starter-wins-list .button{min-height:44px;margin-top:6px;white-space:normal;text-align:left}

.lesson-levels>summary,.interest-lessons>summary{min-height:44px;padding:10px 0;cursor:pointer;font-family:var(--font-display);font-size:24px;line-height:1.4}.other-lesson-level{padding:16px 0;border-top:1px solid var(--line)}.other-lesson-level>.lesson-grid{margin-top:16px}.other-lesson-level>.phrase-library{margin-bottom:20px}
.section-select a[href="#needs"],.hero-copy a[href="#needs"]{display:inline-flex;align-items:center;min-height:44px}

.writing-history details { border-top: 1px solid var(--line); padding: .45rem 0; }
.writing-history summary { min-height: 44px; padding: .65rem .25rem; cursor: pointer; font-weight: 600; }
.writing-history .review-draft { white-space: pre-wrap; overflow-wrap: anywhere; }

.writing-history summary:focus-visible { outline: 3px solid var(--grove); outline-offset: 3px; }

/* Keep the next oral prompt below the sticky section clock. */
#oral-question { scroll-margin-top: 10rem; }

.saved-recording audio { width: 100%; margin: .75rem 0; }
.saved-recording details { margin: .75rem 0; }
.recording-save-actions { margin-top: .75rem; }
.recording-library-actions .button{white-space:normal}
@media(max-width:800px){.recording-library-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.recording-library-actions .button{width:100%;min-height:46px;padding:10px}}

.notebook-editor{display:grid;gap:.75rem}.notebook-editor input{box-sizing:border-box;width:100%;min-height:46px;padding:.75rem;border:1px solid var(--line,#d4ded6);border-radius:6px;background:var(--paper,#fff);color:inherit;font:inherit}.notebook-editor textarea{min-height:90px}.notebook-editor label{font-weight:600}.notebook-editor .action-row{margin-top:1rem}
#personal-card-plan-form .check-row{display:flex;align-items:center;gap:.65rem;min-height:46px;margin:.5rem 0;line-height:1.5}#personal-card-plan-form .check-row input{flex:none;width:auto;margin:0}#personal-card-plan-form .action-row .button{flex:1 1 180px}

.sentence-order{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0 20px}.sentence-order li{display:flex;flex-direction:column;gap:7px;min-width:0;max-width:100%;padding:12px 14px;background:#fcfdfb;border:1px solid #c3d1c7;border-radius:7px;overflow-wrap:anywhere}.sentence-order li span{color:#3b4d45}.sentence-order li strong{font-size:1.1rem;font-weight:600;line-height:1.5}

@media(max-width:600px){.sentence-workspace #sentence-answer-form .action-row{display:grid;grid-template-columns:minmax(0,1fr)}.sentence-workspace #sentence-answer-form .action-row .button{width:100%;min-height:46px}.sentence-workspace .sentence-answer{min-height:110px}}
.citizenship-listening{margin:18px 0}.citizenship-source-links a{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;max-width:100%;padding:8px 10px;border:1px solid #d4ded6;border-radius:6px;font-size:.85rem;line-height:1.45;overflow-wrap:anywhere;text-decoration:none}.citizenship-source-links a:hover{background:#fcfdfb}.citizenship-source-links a:focus-visible{outline:2px solid #1e6b4f;outline-offset:3px}

/* Give the current exercise the phone screen; keep its next action in reach. */
@media(max-width:800px),(max-width:950px) and (max-height:500px){
  body:has(main .exercise-shell,main .sentence-run-top) .masthead{height:56px;padding-inline:16px}
  body:has(main .exercise-shell,main .sentence-run-top) .sidebar{display:none}
  .layout:has(main .exercise-shell,main .sentence-run-top){display:block;min-height:calc(100dvh - 48px)}
  body:has(main .exercise-shell,main .sentence-run-top) .private-mark{display:none}
  body:has(main .exercise-shell,main .sentence-run-top) .masthead .icon-button{margin-left:auto}
  main:has(>.exercise-shell,>.sentence-run-top){padding:12px max(12px,env(safe-area-inset-right)) calc(100px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));padding-top:max(12px,env(safe-area-inset-top));overflow-wrap:anywhere}
  main:has(>.exercise-shell,>.sentence-run-top)::after{content:'';position:fixed;inset:auto 0 var(--practice-keyboard-inset,0px);height:calc(70px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:44}
  .exercise-shell .exercise-top{padding:6px 12px;gap:10px}
  .exercise-shell .exercise-top .button{flex-shrink:0;white-space:nowrap;min-height:44px;padding:8px 0}
  .exercise-shell .exercise-top span{font-size:10px;line-height:1.4;text-align:right}
  .exercise-shell .exercise-content{padding:16px}
  .exercise-shell .exercise-content h1{font-size:clamp(23px,6.4vw,27px);line-height:1.15;margin:12px 0 14px}
  .exercise-shell .exercise-content p{margin-bottom:12px}
  .exercise-shell .phrase{font-size:clamp(27px,7.5vw,33px);margin:14px 0 10px}
  .exercise-shell .translation{font-size:16px}
  .exercise-shell .answer-form{gap:8px;margin-top:14px}
  .exercise-shell .answer-input{min-height:48px;padding:11px;font-size:18px}
  .exercise-shell .action-row{margin:10px 0}
  .exercise-shell .action-row:has(>[data-audio],>[data-transfer-reference]){display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:8px}
  .exercise-shell .action-row:has(>[data-audio],>[data-transfer-reference])>.button{min-width:0;min-height:44px;padding:8px 6px}
  .exercise-shell .mode-badge{padding:5px 8px}
  .exercise-shell .hint-box,.exercise-shell .pattern-box{padding:14px;margin-block:12px}
  .exercise-shell .practice-primary,.exercise-shell #answer-form [type=submit],.exercise-shell #continue:not([hidden]),.exercise-shell:not(:has(#answer-form)) [data-next]:not([hidden]),main:has(>.sentence-run-top) #sentence-answer-form .action-row .button[type=submit],main:has(>.sentence-run-top) .sentence-run-footer>.primary{
    position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom) + var(--practice-keyboard-inset,0px));width:auto;justify-self:stretch;min-height:46px;margin:0;z-index:45
  }
  main:has(>.sentence-run-top) .sentence-run-top{gap:8px}
  main:has(>.sentence-run-top) .step-dots{margin:8px 0 14px}
  main:has(>.sentence-run-top) .sentence-prompt{font-size:clamp(24px,6.5vw,30px);margin:10px 0 14px;letter-spacing:-.5px}
  main:has(>.sentence-run-top) .card{padding:16px;margin:12px 0}
  main:has(>.sentence-run-top) .sentence-workspace textarea{min-height:70px}
  main:has(>.sentence-run-top) .sentence-assembly{min-height:64px;padding:10px;margin:12px 0}
  main:has(>.sentence-run-top) #sentence-answer-form .action-row{display:flex;gap:8px;flex-wrap:wrap}
  main:has(>.sentence-run-top) #sentence-answer-form .action-row>.button:not([type=submit]){width:auto;flex:1 1 auto}
  main:has(>.sentence-run-top):has(.sentence-feedback) #sentence-answer-form [type=submit]{display:none}
  html{scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom) + var(--practice-keyboard-inset,0px))}
  .exercise-shell input,.sentence-workspace textarea{scroll-margin-block:24px}
  html[data-practice-keyboard] body:has(main .exercise-shell,main .sentence-run-top) .masthead{display:none}
  /* Safari can keep fixed elements on the layout viewport when its keyboard
     shrinks or pans the visible viewport. Anchor the action to that visible edge. */
  html[data-practice-editing] main:has(>.exercise-shell,>.sentence-run-top)::after{top:calc(var(--practice-visible-bottom) - 70px - env(safe-area-inset-bottom));bottom:auto}
  html[data-practice-editing] :is(.exercise-shell .practice-primary,.exercise-shell #answer-form [type=submit],.exercise-shell #continue:not([hidden]),.exercise-shell:not(:has(#answer-form)) [data-next]:not([hidden]),main:has(>.sentence-run-top) #sentence-answer-form .action-row .button[type=submit],main:has(>.sentence-run-top) .sentence-run-footer>.primary){top:calc(var(--practice-visible-bottom) - 58px - env(safe-area-inset-bottom));bottom:auto}
}

/* Save vertical space on short phones; Save & leave stays in the exercise. */
@media(max-width:800px) and (max-height:700px){
  body:has(main .exercise-shell,main .sentence-run-top) .masthead{display:none}
  .layout:has(main .exercise-shell,main .sentence-run-top){min-height:100dvh}
}

/* Keep optional help beside recording, with playback on its own row. */
@media(max-width:800px),(max-width:950px) and (max-height:500px){
  .exercise-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px;margin-top:8px}
  .exercise-tools>.action-row{margin:0 0 8px}
  .exercise-tools>.action-row .button{width:100%;min-height:44px;padding:10px 8px}
  .exercise-tools>p,.exercise-tools>#recording-playback,.exercise-tools>#reflections{grid-column:1/-1;min-width:0}
}
/* Fit narrow phones and the shorter space left by mobile browser controls. */
@media(max-width:400px),(max-width:800px) and (max-height:600px),(max-width:950px) and (max-height:500px){
  body:has(main .exercise-shell,main .sentence-run-top) .masthead{height:48px;padding-inline:12px}
  body:has(main .exercise-shell,main .sentence-run-top) .brand{font-size:22px}
  main:has(>.exercise-shell,>.sentence-run-top){padding:8px max(8px,env(safe-area-inset-right)) calc(90px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top))}
  .exercise-shell .exercise-top{padding:4px 10px;gap:8px}
  .exercise-shell .exercise-content{padding:12px}
  .exercise-shell .exercise-content h1{margin:8px 0 10px}
  .exercise-shell .exercise-content p{margin-bottom:8px}
  .exercise-shell .action-row{margin:8px 0}
  .exercise-shell #record-status{margin-block:6px}
  .exercise-shell .phrase{margin:10px 0 8px}
  .exercise-shell .answer-form{margin-top:10px}
  .exercise-shell .hint-box,.exercise-shell .pattern-box{padding:12px;margin-block:8px}
  main:has(>.sentence-run-top) .sentence-prompt{margin:8px 0 10px}
  main:has(>.sentence-run-top) .card{padding:12px;margin:10px 0}
  main:has(>.sentence-run-top) .step-dots{margin:6px 0 10px}
}

.card .citizenship-more-sources{margin:4px 0}.citizenship-more-sources>summary{min-height:44px;padding:10px 2px}

/* Keep short comparisons readable on narrow phones. */
@media(max-width:400px){
  .reading-table{font-size:.875rem}
  .reading-table th,.reading-table td{padding:8px 4px}
}
@media(max-width:340px){
  main:has(>.scenario-columns){padding-inline:10px}
  .scenario-columns>.card{padding:6px}
}

.citizenship-study-card .message-text{font-size:clamp(18px,2vw,21px);line-height:1.6}

/* A conversation needs the same compact phone space as a lesson. */
@media(max-width:800px),(max-width:950px) and (max-height:500px){
  body:has(main>.conversation-intro) .masthead{height:48px;padding-inline:12px}
  body:has(main>.conversation-intro) .sidebar{display:none}
  .layout:has(main>.conversation-intro){display:block;min-height:calc(100dvh - 48px)}
  main:has(>.conversation-intro){padding:8px 12px calc(28px + env(safe-area-inset-bottom));overflow-wrap:anywhere}
  .conversation-intro>.eyebrow{margin:4px 0 8px}
  .conversation-intro>.page-heading{font-size:clamp(25px,7vw,30px);line-height:1.12;letter-spacing:-.6px;margin:8px 0 12px}
  .conversation-intro>.lede{font-size:13px;line-height:1.5;margin-bottom:12px}
  .conversation-intro>.action-row{margin:8px 0}
  main:has(>.conversation-intro)>.card{padding:14px;margin:10px 0}
  main:has(>.conversation-intro)>.card>h2{font-size:24px;line-height:1.2;margin-bottom:10px}
  main:has(>.conversation-intro)>.card>p{font-size:13px;line-height:1.5;margin-bottom:12px}
  html[data-practice-keyboard] body:has(main>.conversation-intro) .masthead{display:none}
}

.book-study-groups summary{min-height:44px;font-weight:600;padding:8px 0}.book-study-groups summary span,.book-study-groups li>span{display:block;font-weight:400;margin-top:6px}.book-study-groups li>a{display:inline-block;min-height:44px;padding-block:8px}.book-study-groups li{padding-block:6px}.book-study-groups{overflow-wrap:anywhere}
@media(max-width:800px){main:has(>.book-study-groups){padding-top:16px}main:has(>.book-study-groups)>.page-heading{font-size:34px;line-height:1.1}main:has(>.book-study-groups)>.lede{margin-bottom:14px}main:has(>.book-study-groups)>.card{padding:16px;margin-block:14px}main:has(>.book-study-groups)>.card h2{font-size:24px;margin-bottom:10px}}
@media(max-width:340px){main:has(>.book-study-groups){padding-top:12px;padding-inline:16px}main:has(>.book-study-groups)>.page-heading{font-size:30px;letter-spacing:-1px}main:has(>.book-study-groups)>.lede{margin-bottom:10px}main:has(>.book-study-groups)>.card{padding:12px}main:has(>.book-study-groups)>.card h2{font-size:22px;line-height:1.2}}
@media(max-width:800px){body:has(main>.book-study-groups) .masthead{height:56px;padding-inline:16px}}
#lesson-draft-status:empty{display:none}

/* Landscape leaves room for the prompt and answer, with navigation in Save & leave. */
@media(max-width:950px) and (max-height:500px){
  body:has(main .exercise-shell,main .sentence-run-top) .masthead{display:none}
  .layout:has(main .exercise-shell,main .sentence-run-top){min-height:100dvh}
}

/* Search the collection while keeping answers and the running clock in place. */
.exam-search-contents{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.exam-search-contents .button{white-space:normal;text-align:left;min-height:44px;max-width:100%;overflow-wrap:anywhere}
.exam-search-group{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:24px;padding-top:14px}
.exam-search-group h3{margin:0;font-size:1rem}
[id^="exam-text-"],[id^="exam-question-group-"],#exam-questions,#exam-texts{scroll-margin-top:8rem}
@media(max-width:400px){.exam-search-contents .button{width:100%;justify-content:flex-start}.exam-search-group .button{padding:10px}}

.source-check-question{min-width:0;border:0;margin:24px 0;padding:0}
.source-check-question legend{font-weight:600;line-height:1.5;margin-bottom:10px}
.source-checks .check-row{display:flex;align-items:flex-start;gap:10px;min-height:44px;margin:16px 0;line-height:1.5}
.source-checks .check-row input{flex:none;width:18px;height:18px;margin-top:4px}
.source-checks .exam-option{min-height:44px}
#source-check-result{scroll-margin-top:24px}
.writing-model{border-top:1px solid var(--line);margin-top:24px;padding-top:16px;min-width:0}
.writing-model details>summary{min-height:44px;padding-block:10px}
.writing-model-purpose{border-inline-start:3px solid #c3d1c7;padding:8px 12px;font-size:.875rem;line-height:1.55;color:var(--muted)}
.writing-model textarea{box-sizing:border-box;width:100%;max-width:100%;min-height:140px;font-size:16px}
.writing-models{overflow-wrap:anywhere}
.writing-model .message-text{font-size:clamp(17px,2vw,19px);line-height:1.65;white-space:pre-wrap}
@media(max-width:800px){
  main:has(>.daily-plan){padding-top:20px}
  main:has(>.daily-plan)>.page-heading{font-size:clamp(30px,8vw,38px);line-height:1.12;letter-spacing:-1px;margin-block:10px 16px}
  main:has(>.daily-plan)>.lede{margin-bottom:18px}
  .daily-plan{padding:16px}
  .daily-plan h2{font-size:27px;line-height:1.2}
  .daily-plan ol{margin-block:12px}
  .daily-plan>.button{margin-top:8px}
}
@media(max-width:340px){main:has(>.daily-plan)>.page-heading{font-size:28px}.daily-plan h2{font-size:24px}}

/* One primary action, with uncertainty separate from a checked answer. */
.feedback[data-tone=unverified]:not(:empty),.feedback[data-tone=neutral]:not(:empty){background:#eaf1ec;border:1px solid var(--line)}
.feedback[data-tone=mismatch]:not(:empty){background:#f6edd5}
.exercise-shell #feedback{scroll-margin-block:28px 110px;white-space:pre-line}
.exercise-shell #answer-options>.button{min-height:44px}
@media(min-width:801px) and (min-height:501px),(min-width:951px){
  :root{--practice-sidebar-width:220px}
  main:has(>.exercise-shell,>.sentence-run-top){padding-bottom:120px}
  main:has(>.exercise-shell,>.sentence-run-top)::after{content:'';position:fixed;left:var(--practice-sidebar-width);right:0;bottom:0;height:82px;background:var(--paper);border-top:1px solid var(--line);z-index:44}
  .exercise-shell .practice-primary,.exercise-shell #answer-form [type=submit],.exercise-shell #continue:not([hidden]),.exercise-shell:not(:has(#answer-form)) [data-next]:not([hidden]),main:has(>.sentence-run-top) #sentence-answer-form .action-row .button[type=submit],main:has(>.sentence-run-top) .sentence-run-footer>.primary{
    position:fixed;left:calc(50% + var(--practice-sidebar-width)/2);right:auto;bottom:18px;transform:translateX(-50%);width:min(690px,calc(100vw - var(--practice-sidebar-width) - 56px));min-height:46px;margin:0;z-index:45
  }
  main:has(>.sentence-run-top):has(.sentence-feedback) #sentence-answer-form [type=submit]{display:none}
  .sentence-feedback{scroll-margin-bottom:110px}
}
@media(min-width:801px) and (max-width:1000px){:root{--practice-sidebar-width:180px}}

.speaking-focus{background:#e6f3eb;padding:12px;border-radius:8px;font-size:14px;line-height:1.5}
.speaking-extra{border-top:1px solid var(--line);margin-top:16px;padding-top:6px}
.speaking-extra>summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;font-weight:600}
.speaking-extra .draft-input{width:100%;min-height:90px;font-size:16px}
.personal-reply-shell #personal-feedback{white-space:normal;scroll-margin-block:24px 110px}
.personal-reply-shell .feedback p:last-child{margin-bottom:0}
.feedback[data-tone=pattern]:not(:empty){background:#e6f3eb;border:1px solid #c3d1c7}
.speaking-shell #speaking-turn{scroll-margin-block:24px 100px;outline:none}

.course-update-actions{display:flex;flex-wrap:wrap;gap:8px}.course-update-actions .button{min-height:44px}.course-update p{margin-bottom:12px}
@media(max-width:800px){.course-update{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));padding:14px}.course-update-actions>.button{flex:1;justify-content:center}}

/* Uncertainty and a specific comparison tip are distinct from an accepted reply. */
.sentence-feedback[data-tone=unverified],.sentence-feedback[data-tone=neutral]{background:#eaf1ec;border-left-color:#6f8077}.sentence-feedback[data-tone=guidance]{background:#f6edd5;border-left-color:#a37a1f}.sentence-feedback[data-tone=mismatch],.reading-feedback[data-tone=mismatch]{background:#f6edd5;border-left-color:#a37a1f}.feedback-reply{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;background:#fff9;border:1px solid var(--line);border-radius:6px;margin-block:6px 14px}.feedback-label{margin-bottom:4px;font-weight:600}
.form-field-status[data-tone=success],.form-field-status[data-tone=mismatch]{padding:10px 12px;border-radius:6px}.form-field-status[data-tone=success]{background:#e6f3eb}.form-field-status[data-tone=mismatch]{background:#f6edd5}

.speaking-shell [data-speaking-model] .message-text{font-size:clamp(17px,2.5vw,19px);line-height:1.7}.speaking-model-replies{margin-top:20px}.speaking-model-replies h3{font-size:18px}.speaking-model-replies details{border-top:1px solid var(--line);padding-block:8px}.speaking-model-replies summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600;line-height:1.5}.speaking-model-replies p{font-size:17px;line-height:1.7;margin:8px 0 14px}

/* Phone practice uses the available screen, including compact and landscape phones. */
@media(max-width:800px),(max-width:950px) and (max-height:500px){
  body:has(main .exercise-shell,main .sentence-run-top) .masthead{display:none}
  .layout:has(main .exercise-shell,main .sentence-run-top){min-height:100dvh}
  main:has(>.exercise-shell,>.sentence-run-top){padding-top:max(8px,env(safe-area-inset-top));padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .exercise-shell .exercise-content{padding:clamp(10px,3vw,16px)}
  .exercise-shell .exercise-top{padding-block:4px}
  .exercise-shell .exercise-top>span{min-width:0;overflow-wrap:anywhere}
  .exercise-shell .exercise-content h1{font-size:clamp(22px,6vw,26px);line-height:1.15;margin:8px 0 10px}
  .exercise-shell .exercise-content p{line-height:1.45;margin-bottom:8px}
  .exercise-shell .exercise-content .phrase{font-size:clamp(26px,7vw,32px);line-height:1.2;margin:10px 0 8px}
  .exercise-shell .choice{min-height:48px;padding:12px;margin:8px 0;line-height:1.4}
  .exercise-shell .answer-form{gap:8px;margin-top:10px}
  .exercise-shell .answer-input{min-height:46px;padding:10px;font-size:18px}
  .exercise-shell .action-row{margin-block:8px}
  .exercise-shell .button{min-width:0;overflow-wrap:anywhere}
  main:has(>.sentence-run-top) .card{padding:clamp(10px,3vw,16px);margin-block:8px}
  main:has(>.sentence-run-top) .sentence-prompt{margin-block:8px 10px}
}
@media(max-width:950px) and (max-height:500px){
  .exercise-shell .mode-badge{display:none}
  .exercise-shell .exercise-content h1{font-size:22px;margin-block:6px 8px}
}

/* Keep the facts, audio controls, answer and primary action close together on phones. */
@media(max-width:800px),(max-width:950px) and (max-height:500px){
  main:has(>.sentence-run-top) .question-context{padding:10px 12px}
  main:has(>.sentence-run-top) .question-context h2{font-size:18px;line-height:1.25;margin:0 0 6px}
  main:has(>.sentence-run-top) .question-context ul{margin:0;padding-left:19px}
  main:has(>.sentence-run-top) .question-context li{font-size:14px;line-height:1.42;margin:4px 0}
  main:has(>.sentence-run-top) .sentence-question-audio{display:grid;grid-template-columns:minmax(0,1fr) minmax(108px,auto);gap:6px 8px}
  main:has(>.sentence-run-top) .sentence-question-audio .action-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:8px;margin:0}
  main:has(>.sentence-run-top) .sentence-question-audio .action-row>.button{min-width:0;min-height:44px;padding:8px;white-space:normal}
  main:has(>.sentence-run-top) .sentence-question-audio #sentence-audio-status{margin:0;align-self:center;font-size:12px;line-height:1.35}
  main:has(>.sentence-run-top) .sentence-question-audio>[data-sentence-transcript]{min-width:0;min-height:44px;padding:6px 4px;white-space:normal;text-align:center}
  main:has(>.sentence-run-top) .sentence-question-audio>.sentence-example{grid-column:1/-1;margin:0}
  main:has(.sentence-question-audio) .sentence-workspace:not(:has(.chunk-bank))>p.small:first-child{display:none}
}

.spoken-words{margin:14px 0;padding:14px 16px;background:#e9f4ed;border:1px solid #c8d6cc;border-radius:12px}
.spoken-words-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.spoken-words-heading strong{font-size:15px}
.spoken-words-heading .button{min-height:44px}
.spoken-word-list{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 8px}
.spoken-word{display:inline-flex;align-items:center;min-height:34px;padding:5px 10px;background:#fff;border:1px solid #c8d6cc;border-radius:8px;font-size:16px;line-height:1.3;transition:background .18s ease,border-color .18s ease}
.spoken-word.heard{background:#cfeadb;border-color:#3f8f68;color:#13241f}
.spoken-word.heard::before{content:'✓';font-size:12px;font-weight:700;margin-right:6px}
.spoken-words p{margin:6px 0 0}
.spoken-words .spoken-privacy{font-size:11px;line-height:1.4}
.spoken-transcript{overflow-wrap:anywhere}
@media(max-width:600px){.spoken-words{padding:10px 12px;margin:10px 0}.spoken-words-heading strong{font-size:13px}.spoken-words-heading .button{padding:8px 10px;font-size:12px}.spoken-word-list{gap:5px;margin:8px 0}.spoken-word{font-size:14px;min-height:30px;padding:4px 8px}}
@media(prefers-reduced-motion:reduce){.spoken-word{transition:none}}

/* A little correspondence: the same paper and ink follow the learner into practice. */
.hero{background:#e6f3eb;border:1px solid #c8d6cc;box-shadow:0 8px 0 #d4ded6}
.hero-copy{position:relative;z-index:2;min-width:0}
.hero .eyebrow{color:#1e6b4f}
.hero h2{font-size:clamp(36px,4vw,48px);line-height:1.03;max-width:12ch}
.hero-art{min-height:220px;margin:4px 2px 8px 12px}
.hero-art::before{content:'';position:absolute;inset:0 0 0 -12px;background:#f7faf5;border:1px solid #cfdbd2;box-shadow:8px 8px 0 #c3d1c7;transform:rotate(2deg);z-index:-1;animation:postcard-arrive 420ms cubic-bezier(.2,0,0,1) both}
.hero-art::after{left:4%;width:89%;bottom:29px;background:#a9bfb1;transform:rotate(-4deg)}
.postcard-stamp{position:absolute;top:14px;right:15px;width:61px;height:52px;display:grid;place-items:center;border:2px dotted #1e6b4f;color:#6e3a5e;background:#f3e9ef;transform:rotate(5deg);font-family:var(--font-display);font-size:22px;font-style:italic;line-height:1}
.sun{top:42px;right:27%;width:53px;height:53px;background:#f5d79c;border:0}
.house{left:18%;bottom:31px;box-shadow:11px 9px 0 #d4ded6}
.house-flag{left:calc(18% + 156px);top:32px}
.tiny-caption{right:13px;bottom:5px;transform:none;font-size:12px;color:#4d5e56}
.exercise-shell{border-color:#cfdbd2;background:#fcfdfb;box-shadow:0 7px 0 #dde7df}
.exercise-top{background:#f1f6f0}
.progress-track{background:#dde7df}
.mode-badge{border-color:#bfe0cc;color:#16473a;background:#e6f3eb}
.exercise-shell .phrase{color:#13241f;overflow-wrap:anywhere}
.exercise-shell .answer-input{background:#fcfdfb;border-color:#9fb3a7}
.exercise-shell .feedback:not(:empty){border-left:3px solid #b0402c;border-radius:3px 8px 8px 3px}
.exercise-shell .feedback[data-tone=success]:not(:empty){border-left-color:#1e6b4f}
@keyframes postcard-arrive{from{opacity:0;transform:rotate(2deg) translateY(8px)}to{opacity:1;transform:rotate(2deg) translateY(0)}}
@media(max-width:800px){
  .hero{gap:14px;padding:22px;box-shadow:0 5px 0 #d4ded6}
  .hero h2{font-size:clamp(30px,8vw,38px)}
  .hero-art{display:block;min-height:108px;margin:0 4px 5px 0}
  .hero-art::before{inset:0;box-shadow:5px 5px 0 #c3d1c7;transform:rotate(1deg);animation:none}
  .hero-art::after{bottom:17px}
  .hero-art .house{left:14%;bottom:18px;transform:rotate(-7deg) scale(.48);transform-origin:bottom left}
  .hero-art .house-flag{left:calc(14% + 75px);top:9px;transform:rotate(-7deg) scale(.48);transform-origin:top left}
  .hero-art .sun{top:17px;right:30%;width:31px;height:31px}
  .postcard-stamp{top:9px;right:12px;width:42px;height:37px;font-size:16px}
  .tiny-caption{right:11px;bottom:4px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.hero-art::before{animation:none}}

.speaking-question-text{margin-block:0 8px;border-bottom:1px solid var(--line)}
.speaking-question-text>summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px;font-weight:600}
.speaking-question-text>.phrase{margin-top:8px}
.speaking-question-mode{min-height:44px;padding-block:8px}
/* Recall loop: letter keys, answer comparison, second tries, plan start, streak, lesson summary */
.letter-keys{display:flex;gap:8px;margin:8px 0 4px}.letter-key{min-width:46px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:18px;font-family:var(--font-display);line-height:1}.letter-key:hover{border-color:var(--grove)}.letter-key:active{transform:translateY(1px);background:#e6efe9}
.answer-compare p{margin-bottom:6px}.compare-summary{font-size:15px;margin:0 0 10px}.compare-line{font-size:17px;line-height:1.5;padding:8px 12px;background:#fff9;border:1px solid var(--line);border-radius:6px;margin:4px 0 12px;overflow-wrap:anywhere}.compare-target{font-family:var(--font-display);font-size:20px;background:var(--surface)}
.feedback mark,.sentence-feedback mark{color:var(--ink);border-radius:4px;padding:0 4px}mark.diff-word{background:#cfeadb;box-shadow:inset 0 -2px #1e6b4f}mark.diff-near{background:#f5e2ad;box-shadow:inset 0 -2px #a37a1f}s.diff-word{text-decoration:line-through;text-decoration-color:#b0402c;color:#9a3826}s.diff-near{text-decoration:underline wavy #a37a1f;color:inherit}
.choice[data-result=correct],.choice[data-result=answer]{border-color:#1e6b4f;background:#cfeadb;opacity:1}.choice[data-result=wrong]{border-color:#b0402c;background:#f6edd5;opacity:1}.choice[data-result=answer]{border-style:dashed}
.mode-badge.retry-badge{border-color:#e0c98a;color:#6b5113;background:#f8f0da}
details.speak-tools{margin:14px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}details.speak-tools>summary{cursor:pointer;list-style:none;min-height:46px;display:flex;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600}details.speak-tools>summary::-webkit-details-marker{display:none}details.speak-tools>summary:before{content:'🎙';font-size:14px}details.speak-tools>summary:after{content:'＋';margin-left:auto;color:var(--muted)}details.speak-tools[open]>summary:after{content:'－'}details.speak-tools[open]{padding-bottom:12px}details.speak-tools>:not(summary){margin-inline:14px}details.speak-tools .spoken-words{margin-top:0}
.plan-start{margin:16px 0 4px}.plan-start .button{width:100%;min-height:54px;font-size:14px;justify-content:space-between;padding:14px 20px}
.streak{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 14px;font-size:12px;color:var(--muted)}.streak-count{font-weight:600;color:var(--ink)}.streak-week{display:flex;gap:6px}.streak-week>span{display:grid;justify-items:center;gap:3px;font-size:9px;letter-spacing:.04em}.streak-week i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);display:block}.streak-week .on i{background:var(--grove);border-color:var(--grove)}.streak-week .today i{box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px #bfe0cc}
.lesson-done{max-width:640px}.done-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.done-stats .card{padding:15px;margin:10px 0}.done-items{list-style:none;padding:0;margin:0 0 12px}.done-items li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.done-items li:last-child{border-bottom:0}.done-items li>div{display:grid;gap:2px}.done-items strong{font-family:var(--font-display);font-weight:400;font-size:18px}.done-tag{flex:none;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:20px;background:#cfeadb;color:#16473a}.done-items li[data-status=helped] .done-tag{background:#f8f0da;color:#6b5113}.done-items li[data-status=again] .done-tag{background:#f6edd5;color:#9a3826}.done-actions{display:grid;gap:10px;margin-top:18px}.done-actions .button{width:100%;min-height:52px;font-size:14px}
.boot{padding:48px 0;color:var(--muted)}.boot-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grove);margin-right:10px;animation:boot-pulse 1s ease-in-out infinite alternate}@keyframes boot-pulse{from{opacity:.25}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.boot-dot{animation:none}}
@media(max-width:400px){.done-stats .card{padding:12px}.done-stats .stat{font-size:28px}}
.plan-start-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:650;margin:0 0 8px}.plan-start .small{margin:8px 0 0}.plan-then{margin:14px 0 0;color:var(--muted);font-weight:600}.daily-plan ol[start]{margin-top:4px}
.daily-plan>.plan-start,.daily-plan>.plan-then{flex:0 0 100%;min-width:0}.daily-plan>.plan-then{margin:0 0 -6px}
.exercise-tools>details.speak-tools,.exercise-tools>.action-row{grid-column:1/-1}.exercise-tools>details.speak-tools{margin:4px 0 8px}.exercise-tools>.action-row .button.text{justify-content:flex-start;width:auto}
.done-actions .button{justify-content:space-between;text-align:left}
.daily-plan li .plan-note{display:block;margin:-6px 0 6px}.sentence-example.compare-target{padding:8px 12px;border:1px solid var(--line);border-radius:6px}
/* Daily session */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.loop-shell{max-width:640px;margin:0 auto;min-height:calc(100dvh - 150px);display:flex;flex-direction:column;padding-bottom:96px}
.loop-top{display:flex;align-items:center;gap:14px;padding:6px 0 18px}.loop-close{border:0;background:transparent;font-size:28px;line-height:1;min-width:44px;min-height:44px;color:var(--muted)}.loop-progress{flex:1;height:10px;border-radius:99px;background:#dde7df;overflow:hidden}.loop-progress span{display:block;height:100%;background:var(--grove);border-radius:99px;transition:width .35s cubic-bezier(.2,.8,.2,1)}.loop-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:38px;text-align:right}
.loop-card{flex:1;display:flex;flex-direction:column;gap:14px}.loop-enter{animation:loop-in .28s cubic-bezier(.2,.8,.2,1)}@keyframes loop-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.loop-eyebrow{font-size:10px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--grove);margin:0}
.loop-prompt{font-size:clamp(24px,6.4vw,32px);line-height:1.2;margin:0}
.loop-meet{display:flex;align-items:center;gap:14px;padding:22px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.loop-da{font-family:var(--font-display);font-size:clamp(26px,7vw,36px);line-height:1.2;margin:0;flex:1}.loop-en{font-size:17px;margin:0;color:var(--muted)}
.loop-play{flex:none;width:52px;height:52px;border-radius:50%;border:0;background:var(--grove);color:#ffffff;font-size:18px;display:grid;place-items:center;box-shadow:0 4px 0 #0f4a36;transition:transform .1s}.loop-play:active{transform:translateY(3px);box-shadow:0 1px 0 #0f4a36}
.loop-tools{display:flex;flex-wrap:wrap;gap:4px 18px}.loop-tools .button.text{min-height:40px;padding:6px 0}
.tile-answer{min-height:122px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding:10px 0 12px;border-bottom:2px solid var(--line)}.tile-hint{color:var(--muted);font-size:14px;align-self:center}
.tile-bank{display:flex;flex-wrap:wrap;gap:8px;padding-top:6px}
.tile{font-family:var(--font-display);font-size:19px;padding:9px 14px;min-height:46px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:0 3px 0 var(--line);transition:transform .08s,box-shadow .08s}.tile:active{transform:translateY(2px);box-shadow:0 1px 0 var(--line)}.tile:disabled{opacity:1}.tile-bank .tile:disabled{color:transparent;background:#e4ece6;box-shadow:none;border-color:#e4ece6}.tile.placed{border-color:#b9cabe}
.loop-mask{font-family:var(--font-display);font-size:clamp(20px,5.6vw,26px);letter-spacing:.06em;color:#4d5e56;margin:0;overflow-wrap:anywhere}
.loop-input{width:100%;font-size:18px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font-family:inherit}.loop-input:focus{outline:none;border-color:var(--grove);box-shadow:0 0 0 3px #a72d3c22}.loop-input[readonly]{background:#eaf1ec}
.loop-have{margin:0;padding:12px 14px;border-left:3px solid #c3d1c7;background:#e6f3eb;border-radius:4px 10px 10px 4px;font-family:var(--font-display);font-size:18px}.loop-have .small{display:block;font-family:var(--font-body);color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.chain-dots{list-style:none;display:flex;gap:6px;padding:0;margin:4px 0 0}.chain-dots li{width:22px;height:6px;border-radius:9px;background:#dde7df}.chain-dots li.done{background:#1e6b4f}.chain-dots li.current{background:var(--grove)}
.loop-listen{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.speed{display:flex;gap:6px}.speed-chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 12px;min-height:40px;font-size:12px;color:var(--ink)}.speed-chip[aria-pressed=true]{background:var(--ink);color:#ffffff;border-color:var(--ink)}
.loop-options .choice{font-family:var(--font-display);font-size:18px}
.loop-rule{font-size:17px;line-height:1.55;margin:0}.loop-example{padding:14px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-family:var(--font-display);font-size:19px}.loop-example p{margin:4px 0}.loop-example s{color:#9a3826;text-decoration-color:#b0402c}
.loop-sheet{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:18px max(16px,calc(50vw - 304px)) 92px;border-top:3px solid #1e6b4f;background:#cfeadb;animation:sheet-up .25s cubic-bezier(.2,.8,.2,1);max-height:70dvh;overflow:auto}.loop-sheet[data-tone=close]{border-top-color:#a37a1f;background:#f6edd5}@keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
.sheet-title{font-weight:700;font-size:18px;margin:0 0 4px;color:#16473a}.loop-sheet[data-tone=close] .sheet-title{color:#6b5113}
.loop-sheet[data-tone=checking]{border-top-color:#7d8a96;background:#eef1f3}
.loop-sheet[data-tone=checking] .sheet-title{color:#3f4a54}
.loop-sheet[data-tone=checking] .sheet-title::after{content:'';display:inline-block;width:.9em;height:.9em;margin-left:.5em;vertical-align:-.1em;border:2px solid #7d8a96;border-right-color:transparent;border-radius:50%;animation:loop-spin .8s linear infinite}
@keyframes loop-spin{to{transform:rotate(360deg)}}
.loop-mic{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:4px 0 12px}
.loop-mic .button[aria-pressed=true]{background:#b0402c;border-color:#b0402c;color:#fff}
.loop-mic p{margin:0;flex:1 1 180px}
.sheet-da{font-family:var(--font-display);font-size:21px;margin:0 0 4px}.sheet-next{margin:10px 0 0;font-size:14px}
.loop-sheet .answer-compare .compare-line{background:#fcfdfb}
.loop-footer{position:fixed;left:0;right:0;bottom:0;z-index:31;padding:12px max(16px,calc(50vw - 304px)) calc(14px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--paper) 30%)}.loop-footer .button{width:100%;min-height:54px;font-size:15px;border-radius:14px;box-shadow:0 4px 0 #0f4a36}.loop-footer .button:active{transform:translateY(3px);box-shadow:0 1px 0 #0f4a36}.loop-footer .button:disabled{box-shadow:none}
.loop-shell .letter-keys{margin-top:-4px}
.loop-end{max-width:640px;margin:0 auto;padding-top:20px}
.plan-progress{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 14px}.plan-progress .streak{margin:0;flex:1}
.goal{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.goal svg{width:34px;height:34px}.goal-track{fill:none;stroke:#dde7df;stroke-width:4}.goal-fill{fill:none;stroke:#1e6b4f;stroke-width:4;stroke-linecap:round;transition:stroke-dasharray .5s}.goal strong{color:var(--ink)}
/* Shadowing */
.shadow-panel{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface)}.shadow-figure{margin:0 0 6px}.shadow-figure svg{width:100%;height:auto;display:block;background:#f7faf5;border-radius:8px}.shadow-bar{fill:#c3d1c7}.shadow-bar.mine{fill:#a8d9bf}.shadow-line{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.shadow-line.ref{stroke:#16473a}.shadow-line.mine{stroke:var(--grove)}.shadow-figure figcaption{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.key{display:inline-block;width:12px;height:3px;border-radius:2px}.key.ref{background:#16473a}.key.mine{background:var(--grove)}
/* About you */
.about-group{border:0;padding:0;margin:14px 0 0}.about-group legend{font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.about-chips{display:flex;flex-wrap:wrap;gap:8px}.about-chip{border:1.5px solid var(--line);background:var(--surface);border-radius:99px;padding:9px 14px;min-height:42px;font-size:13px;color:var(--ink)}.about-chip[aria-pressed=true]{background:#cfeadb;border-color:#1e6b4f;color:#16473a;font-weight:600}.about-chip[aria-pressed=true]:before{content:'✓ '}
.about-picked{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.about-picked ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.about-picked li{display:grid}.about-picked strong{font-family:var(--font-display);font-weight:400;font-size:17px}
@media(prefers-reduced-motion:reduce){.loop-enter,.loop-sheet{animation:none}.loop-progress span{transition:none}}
body:has(main .loop-shell) .sidebar{display:none}.layout:has(main .loop-shell){display:block;min-height:calc(100dvh - 56px)}body:has(main .loop-shell) .masthead{height:56px;padding-inline:16px}body:has(main .loop-shell) .private-mark{display:none}body:has(main .loop-shell) .masthead .icon-button{margin-left:auto}main:has(>.loop-shell){padding:12px 16px 0}
/* Hands-free */
.handsfree{max-width:640px;margin:0 auto}.handsfree .loop-close{text-decoration:none;display:grid;place-items:center}
.hf-stage{position:relative;margin:18px 0;padding:34px 22px;border-radius:20px;background:var(--surface);border:1px solid var(--line);min-height:250px;display:flex;flex-direction:column;justify-content:center;gap:12px;overflow:hidden}
.hf-status{font-size:11px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}.hf-stage[data-phase=pause] .hf-status{color:var(--grove)}
.hf-en{font-family:var(--font-display);font-size:clamp(22px,6vw,30px);line-height:1.25;margin:0}.hf-da{font-family:var(--font-display);font-size:clamp(22px,6vw,30px);line-height:1.25;margin:0;color:#16473a;min-height:1.3em}
.hf-pulse{position:absolute;right:-40px;bottom:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#a72d3c22,transparent 70%);opacity:0}.hf-stage[data-phase=pause] .hf-pulse{opacity:1;animation:hf-breathe 1.6s ease-in-out infinite}@keyframes hf-breathe{50%{transform:scale(1.25)}}
.hf-controls{display:grid;grid-template-columns:2fr 1fr;gap:10px}.hf-controls .button{min-height:54px;font-size:15px}.hf-controls .button:only-child{grid-column:1/-1}
.hf-option{display:flex;align-items:center;gap:8px;margin:14px 0 6px;font-size:13px;min-height:44px}
.plan-handsfree{margin-top:2px}
@media(prefers-reduced-motion:reduce){.hf-stage[data-phase=pause] .hf-pulse{animation:none}}
body:has(main .handsfree) .sidebar{display:none}.layout:has(main .handsfree){display:block}main:has(>.handsfree){padding:12px 16px 40px}
/* Garden */
.garden{max-width:760px}.garden-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 14px}.garden-legend span{display:flex;align-items:center;gap:2px}.garden-legend svg{width:30px;height:40px}
.garden-water-all{margin:4px 0 8px}
.garden-bed{margin:18px 0;padding:16px 16px 12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.bed-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.bed-head h2{font-size:21px;margin:0 0 2px}.bed-water{min-height:40px;padding:8px 14px;flex:none}
.bed-soil{display:flex;flex-wrap:wrap;gap:0 2px;margin-top:12px;padding:0 8px;border-radius:12px;background:repeating-linear-gradient(to bottom,#eef4ee 0 60px,#dbe8de 60px 70px,#c6d8cb 70px 72px)}
.plant{border:0;background:transparent;padding:0;border-radius:10px;width:54px;height:72px;transition:transform .15s}.plant:hover{transform:translateY(-2px)}.plant.selected{background:#ffffff;box-shadow:0 0 0 2px #c3d1c7 inset}.plant-svg{width:54px;height:71px;display:block}
.plant-detail{margin-top:10px;padding:12px 14px;border-radius:10px;background:#f1f6f0}.plant-da{font-family:var(--font-display);font-size:19px;margin:0 0 2px}
.garden-teaser{display:flex;align-items:center;gap:14px;text-decoration:none;padding:14px 18px}.garden-teaser p{margin:0}.garden-teaser>span{margin-left:auto;color:var(--grove)}.teaser-plants{display:flex;align-items:flex-end;padding:0 4px;border-radius:10px;background:linear-gradient(transparent 70%,#e4ece6 70%)}.teaser-plants svg{width:24px;height:32px}
/* Path map */
.path-map{max-width:640px}.path-section{margin:26px 0 8px}.path-head{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.path-head h3{margin:0;font-family:var(--font-display);font-weight:400;font-size:19px}.path-head p{margin:0}.path-num{flex:none;width:38px;height:38px;border-radius:10px;background:var(--grove);color:#ffffff;display:grid;place-items:center;font-weight:700;font-size:13px}
.path-trail{list-style:none;padding:14px 0 6px;margin:0;display:grid;justify-items:center;gap:10px;position:relative}
.path-stop{display:grid;justify-items:center;gap:4px;transform:translateX(var(--x));text-align:center;max-width:200px}
.path-node{width:64px;height:58px;border-radius:50%;border:0;display:grid;place-items:center;font-size:22px;font-weight:700;text-decoration:none;color:#6f8077;background:#dde7df;box-shadow:0 6px 0 #c3d1c7;transition:transform .1s}.path-node:active{transform:translateY(4px);box-shadow:0 2px 0 #c3d1c7}
.path-node.done{background:#2f7a57;color:#ffffff;box-shadow:0 6px 0 #0f4a36}.path-node.next{background:var(--grove);color:#ffffff;box-shadow:0 6px 0 #0f4a36;outline:6px solid #a72d3c22}.path-node.talk{background:#e2a23b;color:#ffffff;box-shadow:0 6px 0 #a8741d}.path-node.talk.done{background:#2f7a57;box-shadow:0 6px 0 #0f4a36}
.path-label{font-size:12px;line-height:1.3;color:var(--muted)}.path-start{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--grove)}
.practice-browse{margin:28px 0}.practice-browse>summary{cursor:pointer;min-height:48px;display:flex;align-items:center;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-weight:600;font-size:14px}.practice-browse[open]>summary{margin-bottom:16px}
@media(max-width:400px){.path-stop{max-width:160px}}
.goal-links{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.goal-links .button{min-height:42px;padding:10px 14px}
.setting-row{display:flex;align-items:center;gap:10px;min-height:46px;margin:6px 0;font-size:14px}.setting-row input{width:20px;height:20px}
.checks-page{max-width:680px}.checks-page .card h2{font-size:21px;margin-bottom:6px}
.loop-rolecard{padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.loop-rolecard ul{margin:4px 0 0;padding-left:18px;font-size:14px;line-height:1.5}
.loop-question{font-family:var(--font-display);font-size:19px;margin:2px 0 0}
/* Lingrove brand layer: lockup with the course's language tag, line icons and the pressable primary action. */
.brand{gap:12px;font-size:inherit;letter-spacing:0;color:var(--ink)}
.brand-lockup{height:30px;width:auto;display:block}
.brand-lang{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border:1.5px solid var(--lang);border-radius:999px;color:var(--lang);background:var(--surface);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.3;white-space:nowrap}
.brand-lang::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--lang)}
.line-icon{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mini-leaf{width:46px;height:46px;display:block}
[data-spoken-answer]::before,[data-loop-mic]::before{content:'';width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%279%27%20y%3D%273%27%20width%3D%276%27%20height%3D%2711%27%20rx%3D%273%27/%3E%3Cpath%20d%3D%27M5%2011a7%207%200%200%200%2014%200M12%2018v3M8.5%2021h7%27/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%279%27%20y%3D%273%27%20width%3D%276%27%20height%3D%2711%27%20rx%3D%273%27/%3E%3Cpath%20d%3D%27M5%2011a7%207%200%200%200%2014%200M12%2018v3M8.5%2021h7%27/%3E%3C/svg%3E") center/contain no-repeat}
.button{border-radius:12px;font-weight:650}
.button.primary{color:#fff;box-shadow:0 3px 0 var(--press)}
.button.primary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--press)}
.button.primary:disabled{box-shadow:none}
.page-heading{font-weight:650;letter-spacing:-.02em}
.loop-da,.sheet-da,.phrase{font-weight:500;letter-spacing:-.005em}
.loop-sheet{border-radius:22px 22px 0 0}
.eyebrow,.sidebar-label,.loop-eyebrow{letter-spacing:.12em}
@media(max-width:800px){.brand-lockup{height:26px}.brand{gap:10px}}
.hero-art::after{display:none}
.hero-art img{position:absolute;inset:10px 10px 10px -2px;width:calc(100% - 8px);height:calc(100% - 20px);object-fit:cover;border-radius:10px;display:block;transform:rotate(2deg)}
.today-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:32px;align-items:center;margin-bottom:26px}
.today-hero .lede{margin-bottom:0}
.today-hero-art{width:100%;height:auto;aspect-ratio:7/4;object-fit:cover;object-position:68% 55%;border-radius:22px;display:block}
@media(max-width:800px){.today-hero{grid-template-columns:1fr;gap:16px;margin-bottom:20px}.today-hero-art{order:-1;aspect-ratio:3/1;object-position:70% 62%;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.hero-art img{transform:none}}
