
:root{--ink:#1c2b24;--muted:#5c6e64;--line:#d8dfd8;--paper:#f7f7f1;--panel:#fff;--green:#245743;--mint:#dceee2;--gold:#c47a39;--pale:#eef2eb;--shadow:0 16px 48px #17271b0b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.62 'DM Sans',sans-serif}a{color:var(--green);text-underline-offset:3px}.topbar{height:76px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;background:#f7f7f1eF;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:700;letter-spacing:-.02em}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--green);color:#fff;font:500 13px 'DM Mono',monospace}.topbar nav{display:flex;gap:26px}.topbar nav a{font-size:13px;text-decoration:none;color:var(--muted)}main{max-width:1320px;margin:auto;padding:0 28px}.intro{padding:78px 0 48px;max-width:850px}.eyebrow{font:500 11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--green)}h1,h2,h3,p{margin-top:0}h1{font:500 clamp(45px,7vw,78px)/.99 'Newsreader',serif;letter-spacing:-.045em;margin:18px 0 20px}h1 em{color:var(--green);font-weight:500}.lead{max-width:680px;color:var(--muted);font-size:18px}.intro-meta{display:flex;gap:20px;margin-top:26px;font-size:12px;color:var(--muted);flex-wrap:wrap}.intro-meta span:before{content:'•';color:var(--gold);margin-right:8px}.progress-strip{display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:24px;background:var(--panel);padding:18px 22px;border:1px solid var(--line);border-radius:8px;margin-bottom:40px;box-shadow:var(--shadow)}.progress-strip>div:first-child strong{display:block;font:500 20px 'DM Mono',monospace}.progress-strip>div:first-child span{font-size:11px;color:var(--muted)}.progress-track{height:7px;border-radius:4px;background:var(--pale);overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:var(--green);transition:width .3s}.text-button{border:0;background:none;color:var(--muted);font:500 12px 'DM Sans',sans-serif;text-decoration:underline;cursor:pointer}.layout{display:grid;grid-template-columns:316px minmax(0,1fr);gap:34px;align-items:start}.sidebar{position:sticky;top:96px;max-height:calc(100vh - 112px);overflow:auto;padding:8px 7px 20px 0}.side-heading{display:flex;justify-content:space-between;align-items:end;margin:0 0 16px}.side-heading h2{font:500 27px 'Newsreader',serif;margin:2px 0}.total-time{color:var(--muted);font-size:11px}.filter-row{margin:12px 0}.filter-row select{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font:13px 'DM Sans',sans-serif}.lesson-list{list-style:none;padding:0;margin:0}.lesson-list li{margin:0}.lesson-link{display:grid;grid-template-columns:34px 1fr 10px;gap:9px;align-items:center;width:100%;padding:9px 10px;border:0;border-bottom:1px solid #e4e8e1;background:transparent;text-align:left;color:var(--ink);cursor:pointer}.lesson-link:hover,.lesson-link.active{background:#e9efe8}.lesson-link .day-no{font:11px 'DM Mono',monospace;color:var(--muted)}.lesson-link .day-title{font-size:12px;line-height:1.3}.lesson-link .done-mark{font-size:12px;color:var(--green)}.weights{margin-top:28px;padding:16px 12px;background:#edf1e9;border-radius:5px}.weights h3{font:500 16px 'Newsreader',serif;margin-bottom:10px}.weight-row{display:grid;grid-template-columns:1fr 38px;gap:8px;padding:4px 0;font-size:10px;line-height:1.3;color:var(--muted)}.weight-row b{text-align:right;font:11px 'DM Mono',monospace;color:var(--ink)}.lesson-panel{min-height:630px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:clamp(24px,4vw,52px);box-shadow:var(--shadow)}.lesson-head{border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:28px}.lesson-kicker{display:flex;align-items:center;gap:12px;color:var(--muted);font:11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em}.domain-pill{background:var(--mint);padding:5px 9px;color:var(--green);border-radius:2px}.lesson-head h2{font:500 clamp(32px,4vw,48px)/1.05 'Newsreader',serif;letter-spacing:-.025em;margin:17px 0 12px}.lesson-head p{color:var(--muted);max-width:720px;margin:0}.stage{padding:25px 0;border-bottom:1px solid var(--line)}.stage:last-of-type{border-bottom:0}.stage-label{display:flex;gap:12px;align-items:center;margin-bottom:10px}.stage-num{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--green);border-radius:50%;font:11px 'DM Mono',monospace;color:var(--green)}.stage h3{font:500 22px 'Newsreader',serif;margin:0}.stage p{color:#3e5046}.example{padding:15px 17px;background:#f0f3ed;border-left:2px solid var(--green);margin:14px 0}.example b{display:block;margin-bottom:5px;font-size:12px;color:var(--green)}.scenario{padding:18px;background:#f8f1e7;border:1px solid #eadcc8;margin:14px 0}.scenario strong{display:block;font-size:12px;color:#865322;margin-bottom:7px}.prompt-list{padding-left:20px}.prompt-list li{margin:.4em 0}.check{background:#f7f7f2;padding:18px;border:1px solid var(--line);margin:14px 0}.check label{font-size:13px;font-weight:600;display:block;margin-bottom:8px}.check textarea{width:100%;min-height:85px;border:1px solid #ccd6cc;border-radius:3px;padding:10px;font:14px/1.5 'DM Sans',sans-serif;resize:vertical;background:white}.check-actions{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}.button{background:var(--green);border:1px solid var(--green);border-radius:3px;color:#fff;padding:9px 14px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.button.secondary{background:white;color:var(--green)}details.answer{margin-top:14px}details.answer summary{cursor:pointer;color:var(--green);font-size:13px;font-weight:600}details.answer p{margin:9px 0 0;color:var(--muted);font-size:13px}.lesson-footer{display:flex;justify-content:space-between;align-items:center;padding-top:25px;gap:12px;flex-wrap:wrap}.complete-btn{background:var(--green);color:#fff;border:0;border-radius:3px;padding:12px 17px;font:600 13px 'DM Sans',sans-serif;cursor:pointer}.complete-btn[aria-pressed=true]{background:#e1eee4;color:var(--green);border:1px solid #a9c7b1}.pager{display:flex;gap:8px}.pager button{padding:10px 13px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:3px;cursor:pointer}.source-section{margin:76px 0 48px;padding:38px clamp(22px,5vw,60px);background:#e9eee7;border-radius:6px}.source-section h2{font:500 34px 'Newsreader',serif;margin:8px 0}.source-section p,.source-section li{font-size:13px;color:#43564a}.source-section li{margin:8px 0}.privacy-note{padding:14px;background:#fff;border-radius:3px}.updated{font:11px 'DM Mono',monospace!important;color:var(--muted)!important}footer{padding:20px max(5vw,24px);display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ce8e4f;outline-offset:2px}
@media(max-width:900px){main{padding:0 18px}.layout{grid-template-columns:1fr}.sidebar{position:static;max-height:none;padding:0}.lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 8px;max-height:320px;overflow:auto}.lesson-link{height:52px}.weights{display:none}.progress-strip{grid-template-columns:1fr auto;gap:12px}.progress-track{grid-column:1/-1;grid-row:2}.text-button{grid-column:2;grid-row:1}.intro{padding:56px 0 35px}.topbar{padding:0 18px}}@media(max-width:520px){.topbar{height:62px}.topbar nav{gap:12px}.topbar nav a{font-size:11px}.brand{font-size:13px}.brand-mark{width:34px;height:34px}.lesson-list{grid-template-columns:1fr;max-height:250px}.lesson-panel{padding:20px}.intro-meta{gap:8px 14px}.progress-strip{padding:13px}.source-section{padding:25px 18px}.stage{padding:19px 0}footer{flex-direction:column}}
@media print{.topbar,.sidebar,.progress-strip,.lesson-footer,.check textarea,.check-actions,.source-section,footer{display:none!important}.layout{display:block}.lesson-panel{border:0;box-shadow:none;padding:0}.stage{break-inside:avoid}body{background:#fff}}
