:root{color-scheme:light;--paper:#f6f3ec;--paper-2:#fffdf8;--ink:#142231;--muted:#596774;--navy:#102a43;--navy-2:#183f5d;--teal:#087f8c;--teal-soft:#dff1ee;--coral:#d85845;--gold:#d9a441;--line:#d8d7d0;--shadow:0 18px 50px rgba(17,42,67,.09);--max:1240px;--reading:760px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);line-height:1.72}a{color:#086b78;text-decoration-thickness:.08em;text-underline-offset:.18em}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;color:#111;padding:.7rem;z-index:20}.eyebrow{color:var(--coral);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:850}.hero{position:relative;overflow:hidden;padding:clamp(3.5rem,8vw,7.5rem) max(1rem,calc((100% - var(--max))/2));color:#fff;background:linear-gradient(122deg,var(--navy) 0%,#133852 55%,#0b5960 100%)}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to left,#000,transparent 75%)}.hero>*{position:relative}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7.4vw,6.7rem);font-weight:650;line-height:.94;letter-spacing:-.045em;margin:.65rem 0 1.25rem;max-width:12ch}.hero .hero-copy{max-width:710px;color:#d8e6ec;font-size:clamp(1.05rem,2vw,1.28rem)}.hero .eyebrow{color:#ffad8f}.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:3rem;align-items:end}.hero-map{margin:0;padding:1.2rem;border:1px solid rgba(255,255,255,.18);border-radius:1.2rem;background:rgba(5,28,43,.38);backdrop-filter:blur(8px)}.hero-map figcaption{color:#b9dce0;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1rem}.hero-loop{display:grid;gap:.55rem}.hero-loop span{display:flex;align-items:center;gap:.7rem;padding:.68rem .78rem;border-radius:.65rem;background:rgba(255,255,255,.08);font-weight:750}.hero-loop span:before{content:attr(data-step);display:grid;place-items:center;width:1.65rem;height:1.65rem;border-radius:50%;background:#ffad8f;color:var(--navy);font-size:.73rem}.metrics,.stage-grid,.class-grid,.learning-principles{display:grid;gap:1rem}.metrics{grid-template-columns:repeat(4,1fr);margin-top:2.2rem}.metric{padding:1rem 0;border-top:1px solid rgba(255,255,255,.25)}.metric strong{display:block;color:#8de0d5;font-size:1.9rem}.metric span{color:#c9dbe2}main{width:min(var(--max),calc(100% - 2rem));margin:auto;padding:3.5rem 0 6rem}h1,h2,h3{text-wrap:balance}h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.35rem);font-weight:650;line-height:1.08;margin:4.2rem 0 1.2rem}h3{line-height:1.25}.section-intro{max-width:760px;color:var(--muted);font-size:1.08rem}.stage-grid{grid-template-columns:repeat(2,1fr)}.stage,.class-card,.notice,.lesson-toc,.callout,.learning-principle,.part-intro{background:var(--paper-2);border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow)}.stage,.class-card,.learning-principle{padding:1.3rem}.stage h3,.class-card h3{margin:.25rem 0}.stage{border-top:4px solid var(--teal)}.learning-principles{grid-template-columns:repeat(4,1fr);counter-reset:principle}.learning-principle{counter-increment:principle}.learning-principle:before{content:"0" counter(principle);display:block;color:var(--coral);font-weight:850;letter-spacing:.1em}.learning-principle strong{display:block;margin:.35rem 0}.learning-principle p{margin:0;color:var(--muted)}.featured-path{display:grid;grid-template-columns:1.2fr .8fr;gap:1.2rem;padding:clamp(1.3rem,3vw,2.3rem);border-radius:1.2rem;color:#fff;background:linear-gradient(135deg,var(--navy),var(--navy-2));box-shadow:var(--shadow)}.featured-path h3{font-family:Georgia,"Times New Roman",serif;font-size:2rem;margin:.3rem 0}.featured-path p{color:#d9e5eb}.featured-path a{align-self:center;justify-self:end;display:inline-block;padding:.85rem 1.1rem;border-radius:.65rem;background:#fff;color:var(--navy);font-weight:800;text-decoration:none}.toolbar{display:grid;grid-template-columns:2fr 1fr;gap:1rem;position:sticky;top:0;background:rgba(246,243,236,.95);backdrop-filter:blur(10px);padding:1rem 0;z-index:5}.toolbar label{font-size:.82rem;font-weight:800;color:var(--muted)}.toolbar input,.toolbar select{display:block;width:100%;margin-top:.3rem;background:#fff;border:1px solid #b9c2c7;color:var(--ink);padding:.82rem;border-radius:.55rem;font:inherit}.class-grid{grid-template-columns:repeat(3,1fr)}.class-card{border-top:3px solid transparent}.class-card:has(.badge-guided){border-top-color:var(--teal)}.class-card h3{font-size:1.04rem}.meta{color:var(--muted);font-size:.86rem}.badge{display:inline-block;border:1px solid #b5c1c6;border-radius:999px;padding:.18rem .58rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;color:var(--muted);background:#fff}.badge-guided{border-color:#67aaa4;color:#075d65;background:var(--teal-soft)}.notice{padding:1.1rem 1.25rem;border-left:5px solid var(--gold)}.notice strong{color:#8f371f}.back{display:inline-block;margin:1rem 0}.class-nav{display:grid;grid-template-columns:1fr auto auto 1fr;align-items:center;gap:.6rem;margin:1rem 0 1.5rem;padding:.7rem;border:1px solid var(--line);border-radius:.8rem;background:rgba(255,253,248,.96);box-shadow:var(--shadow)}.class-nav a,.class-nav span{padding:.45rem .55rem;text-decoration:none}.class-nav a:last-child,.class-nav span:last-child{text-align:right}.class-nav span{color:var(--muted)}.lesson-list{padding:0;list-style:none}.lesson-list li{border-bottom:1px solid var(--line);padding:.8rem 0}.lesson{max-width:var(--max)}.lesson-hero{position:relative;margin:1rem 0 1.4rem;padding:clamp(1.4rem,4vw,3rem);overflow:hidden;color:#fff;border-radius:1.25rem;background:linear-gradient(130deg,var(--navy),#12535a);box-shadow:var(--shadow)}.lesson-hero:after{content:attr(data-number);position:absolute;right:-.02em;bottom:-.35em;font-family:Georgia,serif;font-size:clamp(8rem,24vw,18rem);font-weight:700;color:rgba(255,255,255,.055);line-height:1}.lesson-hero>*{position:relative;z-index:1}.lesson-hero .eyebrow{color:#ffb195}.lesson-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.45rem,5.4vw,4.8rem);line-height:1.02;letter-spacing:-.035em;max-width:19ch;margin:.5rem 0 1rem}.lesson-hero p{max-width:720px;color:#d9e6eb}.lesson-progress{margin:1.3rem 0 2rem}.lesson-progress__label{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.82rem;font-weight:800}.lesson-progress ol{display:grid;grid-template-columns:repeat(12,1fr);gap:.3rem;list-style:none;padding:0;margin:.55rem 0 0}.lesson-progress a,.lesson-progress span{display:block;height:.5rem;border-radius:99px;background:#d7dedf;text-indent:-9999px}.lesson-progress .is-complete{background:#82beb7}.lesson-progress .is-current{background:var(--coral);box-shadow:0 0 0 3px rgba(216,88,69,.16)}.lesson-context{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.4rem 0 2rem}.context-card{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:.8rem;background:var(--paper-2)}.context-card span{display:block;color:var(--coral);font-size:.72rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.context-card strong{display:block;margin-top:.3rem}.lesson-shell{display:grid;grid-template-columns:250px minmax(0,var(--reading));gap:clamp(2rem,5vw,4.5rem);align-items:start;justify-content:center}.lesson-toc{position:sticky;top:1rem;margin:0;padding:1.1rem;border-top:5px solid var(--teal);box-shadow:none}.lesson-toc strong{display:block;margin-bottom:.7rem}.lesson-toc ol{margin:0;padding-left:1.25rem;font-size:.82rem}.lesson-toc li{margin:.25rem 0}.lesson-toc a{color:var(--muted);text-decoration:none}.lesson-toc a:hover{color:var(--teal)}.lesson-content{min-width:0}.lesson-content>p:first-child,.lesson-content>hr:first-child{display:none}.lesson-content h2{scroll-margin-top:1rem;border-top:1px solid var(--line);padding-top:2.5rem;margin-top:3.5rem}.lesson-content h2:first-of-type{border-top:0;margin-top:0}.lesson-content h3{color:var(--teal);margin-top:2rem}.lesson-content p{max-width:72ch}.lesson-content li{margin:.38rem 0}.lesson-content ul,.lesson-content ol{padding-left:1.35rem}.table-wrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--line);border-radius:.8rem;background:#fff}.lesson-content table{border-collapse:collapse;width:100%}.lesson-content th,.lesson-content td{border-bottom:1px solid var(--line);padding:.82rem;text-align:left;vertical-align:top}.lesson-content th{background:#eaf1f1;color:var(--navy)}.lesson-content tr:last-child td{border-bottom:0}.lesson-content tbody tr:nth-child(even){background:#fbfaf6}.lesson-content pre{overflow:auto;background:#102a43;color:#e9f4f2;border:1px solid #294c65;padding:1rem;border-radius:.6rem}.lesson-content code{background:#e7eceb;padding:.12rem .3rem;border-radius:.25rem}.lesson-content pre code{background:transparent;padding:0}.callout{padding:1rem 1.2rem;border-left:5px solid var(--coral);margin:1rem 0;box-shadow:none}.callout.note,.callout.tip{border-left-color:var(--teal)}.source-link{width:min(var(--reading),100%);margin:3rem auto 1rem;padding-top:1rem;border-top:1px solid var(--line)}.source-link a{display:inline-block;padding:.75rem 1rem;border:1px solid #8da7ae;border-radius:.55rem;text-decoration:none;background:#fff}.concept-map{margin:1.7rem 0;padding:1.2rem;border:1px solid #b9d8d4;border-radius:1rem;background:linear-gradient(145deg,#eff8f5,#fffdf8);box-shadow:var(--shadow)}.concept-map figcaption{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;margin-bottom:1rem}.concept-map figcaption span{color:var(--coral);font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.concept-relations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.concept-relation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem;padding:.65rem;border-radius:.65rem;background:#fff;border:1px solid #d1e4e0}.concept-node{font-weight:750;text-align:center}.concept-arrow{color:var(--coral);font-size:1.25rem;font-weight:900}.concept-map details{margin-top:1rem;color:var(--muted);font-size:.82rem}.part-intro{padding:clamp(1.2rem,3vw,2rem);border-top:5px solid var(--coral)}.part-intro p{max-width:78ch}.route{position:relative;list-style:none;padding:0;margin:2rem 0}.route:before{content:"";position:absolute;left:1.35rem;top:1rem;bottom:1rem;width:2px;background:#b6d4d1}.route li{position:relative;display:grid;grid-template-columns:2.7rem minmax(0,1fr) minmax(180px,.42fr);gap:1rem;align-items:start;padding:0 0 1.25rem}.route-number{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:50%;background:var(--navy);color:#fff;font-weight:850;z-index:1}.route-copy{padding:.2rem 0}.route-copy strong{display:block}.route-copy p{margin:.2rem 0;color:var(--muted)}.route-evidence{padding:.55rem .7rem;border-radius:.55rem;background:var(--teal-soft);color:#075d65;font-size:.85rem;font-weight:750}.route-block{margin:2.5rem 0 1rem;color:var(--coral);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}footer{border-top:1px solid var(--line);padding:2rem;text-align:center;color:var(--muted)}@media(max-width:950px){.hero-grid,.featured-path,.lesson-shell{grid-template-columns:1fr}.hero-map{max-width:520px}.learning-principles{grid-template-columns:repeat(2,1fr)}.lesson-toc{position:static}.lesson-toc ol{columns:2}.lesson-context{grid-template-columns:1fr}.concept-relations{grid-template-columns:1fr}.route li{grid-template-columns:2.7rem minmax(0,1fr)}.route-evidence{grid-column:2}}@media(max-width:760px){.metrics,.class-grid{grid-template-columns:repeat(2,1fr)}.stage-grid{grid-template-columns:1fr}.class-nav{grid-template-columns:1fr 1fr}.lesson-progress ol{gap:.18rem}.featured-path a{justify-self:start}}@media(max-width:520px){.metrics,.class-grid,.toolbar,.learning-principles{grid-template-columns:1fr}.hero-map{display:none}.class-nav{display:grid;grid-template-columns:1fr}.class-nav a:last-child,.class-nav span:last-child{text-align:left}.lesson-toc ol{columns:1}.lesson-hero h1{font-size:2.35rem}.route li{gap:.7rem}.route-evidence{grid-column:1/-1;margin-left:3.4rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

::selection{background:#b9e2dc;color:#102a43}
a{transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease}
a:hover{color:#b44231}a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.stage,.class-card{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stage:hover,.class-card:hover{transform:translateY(-3px);border-color:#8bb8b3;box-shadow:0 22px 55px rgba(17,42,67,.13)}
.class-nav a{border-radius:.45rem}.class-nav a:hover{background:var(--teal-soft)}
.lesson-progress ol{grid-template-columns:repeat(12,minmax(0,1fr));min-width:0}.lesson-progress li{min-width:0;overflow:hidden}.lesson-progress a,.lesson-progress span{overflow:hidden}
.context-card{min-width:0}.lesson-content>p:first-child+.callout{display:none}
.route li.route-block{display:block;margin:2.5rem 0 1rem;padding:0 0 0 4rem;color:var(--coral)}
html,body{max-width:100%;overflow-x:hidden}.lesson,.lesson-hero,.lesson-context,.lesson-shell,.lesson-content,.context-card{min-width:0;max-width:100%}
.lesson-hero h1,.lesson-hero p,.context-card strong,.notice,.class-nav a{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:520px){main{width:calc(100% - 1rem);padding-top:1rem}.class-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lesson-hero{padding:1.35rem}.lesson-hero h1{font-size:clamp(2rem,10.5vw,2.35rem);line-height:1.05;text-wrap:wrap}.lesson-hero p{font-size:.98rem}.lesson-progress{max-width:100%;overflow:hidden}}
