@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{font-family:'DM Sans',sans-serif;color:#1c2924;background:#f7f6f1;font-synthesis:none;line-height:1.55;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}a{color:#216450;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;line-height:1.2;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,6vw,5.4rem);font-weight:700}h2{font-size:clamp(1.5rem,3vw,2rem)}h3{font-size:1.25rem}.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}.muted{color:#68736d}.eyebrow{font-size:.71rem;font-weight:800;letter-spacing:.16em;color:#4c7463;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:0 19px;border-radius:8px;border:1px solid #315b4e;font-weight:700;text-decoration:none;transition:background .2s,transform .2s}.button:hover{text-decoration:none;transform:translateY(-1px)}.button.primary{background:#315b4e;color:white}.button.primary:hover{background:#254c40}.button.secondary{background:transparent;color:#315b4e}.button.secondary:hover{background:#e6eee8}
.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{border-bottom:1px solid #e7e8e1;background:#fbfaf7;position:sticky;top:0;z-index:10}.header-inner{max-width:1300px;margin:auto;padding:0 30px;min-height:72px;display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:10px;color:#1e352a;font-family:Manrope,sans-serif;font-weight:800;white-space:nowrap;letter-spacing:-.03em}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;background:#d9e9dd;border-radius:9px;width:32px;height:32px;color:#2d5b48;font-size:1.1rem}.main-nav{display:flex;align-items:center;gap:2px;flex:1}.main-nav a{font-size:.87rem;font-weight:700;color:#667069;padding:9px 12px;border-radius:7px;white-space:nowrap}.main-nav a:hover,.main-nav a.active{background:#e9efe9;color:#244c3d;text-decoration:none}.search{height:36px;border:1px solid #dce1d9;background:white;border-radius:7px;display:flex;overflow:hidden}.search input{border:0;background:transparent;outline:0;width:140px;padding:0 10px;font-size:.83rem}.search button{border:0;background:transparent;color:#436b56;font-size:1.4rem;line-height:1;padding:0 10px}.search:focus-within{outline:2px solid #94b9a3;outline-offset:1px}
.page{width:min(1160px,calc(100% - 48px));margin:0 auto;padding:58px 0 100px}.home{padding-top:64px}.hero{max-width:880px;padding:42px 0 94px}.hero h1{margin:18px 0 22px}.hero em{font-style:normal;color:#50846d}.hero p{font-size:1.2rem;color:#61716a;max-width:650px;line-height:1.7}.hero-actions{display:flex;gap:10px;margin-top:30px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:22px}.section-heading h2{margin:7px 0 0}.section-heading>.muted{font-size:.86rem}.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.subject-tile{color:#1d2c24;background:#fff;border:1px solid #e2e5dd;border-radius:14px;padding:30px;box-shadow:0 8px 30px #253e2e07;transition:transform .2s,box-shadow .2s}.subject-tile:hover{transform:translateY(-3px);box-shadow:0 14px 34px #253e2e13;text-decoration:none}.tile-top,.tile-bottom{display:flex;justify-content:space-between;gap:12px}.tile-top .arrow{color:#58816a;font-size:1.35rem}.subject-tile h2{margin:35px 0 11px;font-size:1.85rem}.subject-tile p{color:#64716a;min-height:52px;max-width:450px}.tile-bottom{font-size:.76rem;font-weight:700;margin-top:26px;color:#62726a}.progress{height:5px;border-radius:5px;background:#e7ebe6;margin:12px 0 9px;overflow:hidden}.progress span{display:block;height:100%;background:#5b9373}.subject-tile small{font-size:.75rem;color:#7a847f}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:70px}.info-panel{border-top:1px solid #cfd8d0;padding:23px 2px}.info-panel h3{margin:10px 0}.info-panel p{font-size:.91rem;color:#65736a}.info-panel a{font-weight:700;font-size:.86rem}
.page-intro{max-width:870px;padding:10px 0 55px}.page-intro .back-link{display:block;margin-bottom:28px}.back-link{font-size:.85rem;font-weight:700;color:#55725f}.page-intro h1{font-size:clamp(2.5rem,5vw,4.35rem);margin:12px 0 15px}.page-intro p{font-size:1.13rem;line-height:1.7;color:#617069}.meta-chips{display:flex;flex-wrap:wrap;gap:7px;margin:26px 0 18px}.meta-chips span{font-size:.76rem;font-weight:700;color:#4a6656;background:#e9efe7;padding:6px 10px;border-radius:5px}.intro-links{font-size:.85rem}.intro-links a{font-weight:700}.subject-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:64px}.subject-aside{position:sticky;top:98px;align-self:start;border:1px solid #e0e4dc;background:#fff;padding:20px;border-radius:10px}.subject-aside h2{font-size:1rem;margin:0 0 6px}.subject-aside p{font-size:.8rem;color:#68766e}.subject-aside a{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid #edf0eb;color:#475c50;font-size:.78rem;line-height:1.35}.subject-aside b{white-space:nowrap;color:#377453}.unit-section{scroll-margin-top:110px;margin-bottom:60px}.unit-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.unit-heading h2{margin:8px 0}.unit-heading p{font-size:.91rem;color:#6a766e;margin-bottom:20px}.unit-count{font-size:.75rem;white-space:nowrap;color:#778179}.lesson-list{border:1px solid #e2e6de;border-radius:10px;overflow:hidden;background:#fff}.lesson-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto 18px;align-items:center;gap:16px;color:#21342a;padding:17px 19px;border-top:1px solid #edf0eb}.lesson-row:first-child{border-top:0}.lesson-row:hover{text-decoration:none;background:#f6f9f4}.lesson-number{font-size:.79rem;font-weight:800;color:#538064}.lesson-row-main strong{display:block;font-size:.94rem}.lesson-row-main small{display:block;font-size:.79rem;color:#748078;margin-top:3px;line-height:1.4}.lesson-status{font-size:.7rem;color:#738078}.lesson-status.is-done{color:#2c7651;font-weight:700}
.article-page{max-width:1100px}.article-top{max-width:800px}.article-top .eyebrow{display:block;margin-top:35px}.article-top h1{font-size:clamp(2.6rem,5vw,4.4rem);margin:13px 0}.lede{font-size:1.22rem;color:#5d6d64;line-height:1.7}.article-actions{display:flex;align-items:center;gap:15px;margin:26px 0 70px}.article-actions .muted{font-size:.78rem}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:70px}.article-body section{margin-bottom:48px}.article-body h2{font-size:1.5rem}.article-body p{color:#415148;line-height:1.8}.content-list{padding-left:23px}.content-list li{padding-left:7px;margin:0 0 17px;line-height:1.78;color:#405047}.content-list li::marker{color:#6a9b79}.article-body .callout{background:#eaf1e9;padding:27px 30px;border-radius:10px}.callout h2{margin:9px 0}.callout p{margin:0}.source-panel{align-self:start;position:sticky;top:100px;background:#fff;border:1px solid #e1e5dc;border-radius:10px;padding:23px}.source-panel h2{font-size:1rem}.source-panel p,.source-panel li{font-size:.8rem;color:#69766e;line-height:1.55}.source-panel ul{padding-left:18px}.source-panel li{margin-bottom:10px}.side-rule{height:1px;background:#e5e9e1;margin:19px 0}.next-lesson{border-top:1px solid #d8ded6;margin-top:25px;padding-top:27px;max-width:745px}.next-lesson .eyebrow{display:block;margin-bottom:8px}.next-lesson a{display:flex;justify-content:space-between;color:#285b43;font-family:Manrope,sans-serif;font-size:1.15rem;font-weight:700}
.practice-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.practice-layout>div>h2{margin-bottom:17px}.practice-card{background:#fff;border:1px solid #e1e5dd;border-radius:10px;padding:23px;margin-bottom:17px}.practice-meta{display:flex;justify-content:space-between;gap:12px;color:#5d8166;font-size:.69rem;letter-spacing:.03em;font-weight:800;text-transform:uppercase}.practice-card h3{margin:13px 0}.practice-card p{font-size:.88rem;color:#59685e;line-height:1.7}.practice-card .question{color:#203a2b;border-left:3px solid #8fb69a;padding-left:13px;margin-top:18px}.practice-card details{border-top:1px solid #e9ede6;padding-top:12px;margin-top:22px}.practice-card summary{font-weight:700;color:#2f7251;font-size:.83rem;cursor:pointer}.practice-card .answer{padding-top:12px}.practice-card .answer ol{padding-left:20px}.practice-card .answer li{font-size:.83rem;line-height:1.65;margin-bottom:9px;color:#3c5143}.practice-card .answer .reflection{background:#edf3eb;padding:12px;border-radius:5px;color:#30513a}
.resource-note{background:#eaf0e8;border-left:3px solid #6b9f75;padding:17px 20px;font-size:.88rem;color:#3f5d49;line-height:1.7;margin-bottom:25px}.resource-filters{display:flex;gap:7px;margin-bottom:40px}.resource-filters button{border:1px solid #d7dfd4;border-radius:6px;padding:8px 16px;color:#54705b;background:#fff;font-size:.82rem;font-weight:700}.resource-filters button.active{background:#315b4e;color:#fff;border-color:#315b4e}.resource-section{margin:0 0 42px}.resource-section h2{font-size:1.4rem;margin-bottom:15px}.resource-list{border:1px solid #e1e5dd;background:#fff;border-radius:9px;overflow:hidden}.resource-row{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:18px;padding:16px 19px;border-top:1px solid #edf0eb;color:#29382d}.resource-row:first-child{border-top:0}.resource-row:hover{background:#f7faf5;text-decoration:none}.resource-row strong,.resource-row small{display:block}.resource-row strong{font-size:.9rem}.resource-row small{font-size:.77rem;color:#6c7970;margin-top:4px}.resource-badges{display:flex;gap:5px;align-items:center}.resource-badges em{font-size:.68rem;font-style:normal;background:#eef2ed;color:#617566;padding:4px 7px;border-radius:4px;white-space:nowrap}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px 70px}.guide-grid section{border-top:1px solid #d9dfd5;padding-top:23px}.guide-grid h2{font-size:1.48rem}.guide-grid p,.guide-grid li{font-size:.91rem;line-height:1.8;color:#485b4e}.guide-callout{margin-top:50px;background:#e9f0e7;padding:26px 30px;border-radius:10px}.guide-callout h2{font-size:1.28rem}.guide-callout p{color:#48614e;max-width:850px;margin:0}.search-results{max-width:900px}.search-results h2{border-bottom:1px solid #d8ded6;padding-bottom:10px;margin-top:35px}.search-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #e2e7de;font-size:.91rem}
footer{margin-top:auto;border-top:1px solid #e0e4db;background:#f0f2eb;color:#6a786d;font-size:.74rem}.footer-inner{max-width:1300px;margin:auto;padding:24px 30px;display:flex;justify-content:space-between;gap:30px}.footer-inner p{margin:0}
@media(max-width:1050px){.header-inner{gap:16px}.main-nav a{padding:8px}.search input{width:105px}.subject-layout{gap:30px}.article-grid{gap:35px}}
@media(max-width:820px){.header-inner{flex-wrap:wrap;padding:12px 22px}.main-nav{order:3;overflow:auto;width:100%;flex-basis:100%}.search{margin-left:auto}.subject-layout,.article-grid{grid-template-columns:1fr}.subject-aside,.source-panel{position:static}.subject-aside{display:none}.info-grid{grid-template-columns:1fr 1fr}.practice-layout{grid-template-columns:1fr}.page{width:min(100% - 36px,680px);padding-top:35px}.hero{padding:25px 0 65px}}
@media(max-width:590px){.brand{font-size:.86rem}.header-inner{padding:10px 16px}.main-nav a{font-size:.79rem}.search input{width:105px}.subject-grid,.info-grid,.guide-grid{grid-template-columns:1fr}.section-heading{display:block}.subject-tile{padding:24px}.hero p{font-size:1rem}.hero-actions{flex-wrap:wrap}.page-intro{padding-bottom:33px}.page-intro p{font-size:1rem}.lesson-row{grid-template-columns:38px 1fr 15px;gap:10px;padding:13px}.lesson-status{display:none}.lesson-row-main small{font-size:.73rem}.article-actions{align-items:start;flex-direction:column;margin-bottom:35px}.resource-row{grid-template-columns:1fr 16px}.resource-badges{grid-column:1;grid-row:2;flex-wrap:wrap}.resource-row>span:last-child{grid-column:2;grid-row:1}.footer-inner{display:block}.footer-inner p{margin:0 0 8px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.button,.subject-tile{transition:none}}
.subject-aside button{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border:0;border-top:1px solid #edf0eb;color:#475c50;background:transparent;width:100%;text-align:left;font-size:.78rem;line-height:1.35}.subject-aside button:hover{color:#216450;text-decoration:underline}
.objective-checklist{background:#fff;border:1px solid #e2e8df;border-radius:9px;padding:22px 25px}.objective-checklist h2{font-size:1.25rem;margin-bottom:6px}.objective-checklist>p{font-size:.83rem!important;color:#6d7b70!important}.objective-checklist ul{list-style:none;padding:0;margin:18px 0 0}.objective-checklist li{display:flex;gap:16px;border-top:1px solid #edf0ea;padding:9px 0;font-size:.85rem;color:#3f5446}.objective-checklist li strong{min-width:48px;color:#3c7954}
.practice-card{scroll-margin-top:100px}
.page-intro .skills-note{font-size:.88rem;color:#476754;background:#ebf1e9;border-left:3px solid #9bbb9e;padding:10px 13px;line-height:1.6}
.deep-learning{margin-bottom:55px;padding:28px 30px;background:#fbfcf8;border:1px solid #e3e9df;border-radius:13px}.deep-learning>h2{margin:8px 0 27px}.deep-sections{display:grid;gap:4px}.deep-subtopic{border-top:1px solid #e4e9e1;padding:20px 0 7px}.deep-subtopic h3,.worked-example h3,.study-tip h3{font-size:1.08rem;letter-spacing:-.02em;margin:0 0 9px}.deep-subtopic p,.worked-example p,.study-tip p{margin-bottom:12px;font-size:.92rem;line-height:1.8;color:#46564a}.concept-map{margin:27px 0;padding:22px;background:#edf3eb;border-radius:9px}.concept-map figcaption{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}.concept-map figcaption strong{font-family:Manrope,sans-serif;font-size:.94rem;color:#314e3b}.concept-map ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:0}.concept-map li{position:relative;display:flex;flex-direction:column;gap:9px;min-height:104px;padding:14px 12px;background:#fff;border:1px solid #dce6da;border-radius:8px;color:#385241;font-size:.79rem;line-height:1.45;font-weight:700}.concept-map li:not(:last-child)::after{content:'→';position:absolute;right:-17px;top:34px;color:#5b8d69;font-size:1rem;font-weight:800}.map-number{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#dfebdd;color:#356246;font-size:.68rem}.worked-example,.study-tip{padding:20px 21px;border-radius:8px;margin-top:17px}.worked-example{background:#f0f4f0;border-left:3px solid #6a9a73}.study-tip{background:#fff8e8;border-left:3px solid #d5ae65}.worked-example .eyebrow,.study-tip .eyebrow{display:block;margin-bottom:8px}.worked-example p,.study-tip p{margin:0}.recall-check{margin-top:18px;padding:16px 18px;border:1px solid #dfe6dc;border-radius:8px;background:#fff}.recall-check summary{font-weight:700;color:#2f6347;cursor:pointer;line-height:1.6}.recall-check p{margin:15px 0 9px}.recall-check small{color:#788279;line-height:1.5}.resource-section{scroll-margin-top:100px}
@media(max-width:820px){.concept-map ol{grid-template-columns:1fr;gap:8px}.concept-map li{min-height:0;flex-direction:row;align-items:center}.concept-map li:not(:last-child)::after{content:'↓';right:auto;left:18px;top:auto;bottom:-16px;z-index:1}.deep-learning{padding:22px}}
@media(max-width:590px){.deep-learning{padding:19px}.concept-map{padding:16px}.worked-example,.study-tip{padding:17px}}
