/* Out of the Loop: paper, ink, and a working field guide. */
:root{--ink:#16222e;--paper:#f7f6f1;--green:#24466e;--lime:#f7f6f1;--muted:#626c75;--line:#d9dbd5;--orange:#bf3b2b}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body.curriculum-page{background:var(--paper);color:var(--ink);font:19px/1.6 'Newsreader',Georgia,serif}
.curriculum-page :is(h1,h2,h3,h4,p){text-wrap:pretty}
.curriculum-page :is(h1,h2,h3){font-family:'Newsreader',Georgia,serif;font-weight:400;letter-spacing:-.025em}
.curriculum-page h2{font-size:clamp(32px,3.4vw,47px);line-height:1.12;margin:13px 0 20px}
.curriculum-page h3{font-size:26px}
.curriculum-page :is(h4,.eyebrow,.side-label,.tiny,.range,.hero-meta,.intro-tag,.figure-label,.figure-center,.figure-caption,footer){font-family:'IBM Plex Mono',monospace}
.curriculum-page h4{font-size:11px;font-weight:500;color:var(--green);letter-spacing:.08em}
.curriculum-page a{color:var(--green)}
.curriculum-page a:hover{color:var(--orange)}
.curriculum-page :is(button,input,select,textarea){font-family:inherit}
.curriculum-page :focus-visible{outline:2px solid var(--green);outline-offset:4px}
.curriculum-page ::selection{background:#24466e22}
.curriculum-page .site-header{position:sticky;top:0;height:60px;margin:0;padding:5px 28px;background:var(--paper);z-index:40;font-size:20px;letter-spacing:normal;border-bottom:1px solid var(--line)}
.curriculum-page .site-header a{color:var(--ink);font-size:20px;font-weight:400;letter-spacing:normal}
.curriculum-page .site-header .site-name{font-weight:700}
.curriculum-page .site-header nav{gap:24px}
.curriculum-page .site-menu summary{font:20px 'Newsreader',Georgia,serif}
.skip-link{position:fixed;top:-90px;left:20px;z-index:100;padding:10px 18px;background:var(--paper)}
.skip-link:focus{top:8px}
.curriculum-page .sidebar{top:60px;width:228px;background:var(--paper);color:var(--ink);padding:38px 25px 25px;border-right:1px solid var(--line);z-index:6}
.curriculum-page .brand{display:block;color:var(--ink);font:29px/1.12 'Newsreader',Georgia,serif;letter-spacing:-.02em}
.curriculum-page .brand em{color:var(--green)}
.curriculum-page .side-label{font-size:9px;letter-spacing:.09em;color:var(--muted);margin:27px 0 17px}
.curriculum-page .sidebar nav{gap:0}
.curriculum-page .sidebar nav a{padding:9px 10px;gap:13px;margin-left:-12px;font:17px/1.35 'Newsreader',Georgia,serif;border-radius:0;border-left:2px solid transparent;color:var(--ink);background:transparent;text-decoration:none}
.curriculum-page .sidebar nav a[aria-current]{color:var(--green);border-left-color:var(--orange);background:#24466e0a}
@media(hover:hover){.curriculum-page .sidebar nav a:hover{color:var(--orange);text-decoration:underline;text-underline-offset:4px}}
.curriculum-page .side-begin{margin-top:28px;padding:12px 0;background:none;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--green);font-size:17px;border-radius:0}
.curriculum-page .side-footer{font:italic 16px/1.5 'Newsreader',Georgia,serif;color:var(--muted);display:block;border:0;padding-top:32px}
.curriculum-page main{margin:0 0 0 228px;padding:0 clamp(28px,4.4vw,80px);max-width:1550px}
.curriculum-page section{margin:90px 0;scroll-margin-top:90px}
.curriculum-page .eyebrow{font-size:10px;letter-spacing:.12em;color:var(--green);font-weight:400}
.curriculum-hero{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:center;position:relative;padding:66px 0 42px;background:transparent;border-bottom:1px solid var(--line)}
.curriculum-hero h1{font-size:clamp(52px,5.8vw,86px);line-height:1.03;letter-spacing:-.045em;margin:30px 0 26px}
.curriculum-hero h1 em{color:var(--green);font-weight:400}
.curriculum-hero .live-dot{display:none}
.curriculum-hero .deck{font:21px/1.55 'Newsreader',Georgia,serif;color:var(--muted);max-width:440px;margin-bottom:28px}
.curriculum-hero .hero-cta{background:var(--green);color:var(--paper);border-radius:2px;padding:12px 19px;font:18px 'Newsreader',Georgia,serif;gap:36px}
.curriculum-hero .hero-cta:hover{background:var(--ink);color:white}
.curriculum-hero .hero-meta{color:var(--muted);font-size:10px;letter-spacing:0;gap:10px;flex-wrap:wrap;margin-top:23px}
.curriculum-hero .hero-meta i{background:#bf3b2b}
.curriculum-figure{margin:0;color:var(--green);width:100%;transform:rotate(-3deg)}
.curriculum-figure svg{width:100%;height:auto;overflow:visible}
.figure-name{font:27px 'Newsreader',Georgia,serif;fill:var(--ink)}
.figure-label{font-size:11px;fill:var(--orange)}
.figure-center{font-size:12px;letter-spacing:.12em;fill:var(--green)}
.figure-caption{font-size:8px;letter-spacing:.16em;fill:var(--muted)}
.curriculum-page .stat-strip{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0 0 34px;padding:24px 0}
.curriculum-page .stat-strip>div{padding:0 20px;gap:12px}
.curriculum-page .stat-strip>div:first-child{padding-left:0}
.curriculum-page .stat-strip strong{font:40px 'Newsreader',Georgia,serif;letter-spacing:-.04em;color:var(--green)}
.curriculum-page .stat-strip span{font-size:15px;color:var(--muted);max-width:125px}
.curriculum-page .intro{grid-template-columns:100px 1fr 1fr;gap:28px}
.curriculum-page .intro p{font:18px/1.65 'Newsreader',Georgia,serif;color:var(--muted)}
.curriculum-page .intro-tag{font-size:9px;color:var(--muted);font-weight:400}
.curriculum-page .intro-tag span{font:32px 'Newsreader',Georgia,serif;color:var(--orange)}
.curriculum-page .lead{font:20px/1.6 'Newsreader',Georgia,serif;max-width:760px;color:var(--muted)}
.curriculum-page :is(.pace,.start,.discovery-routine){background:#eeeee7;border:1px solid var(--line);border-radius:0}
.curriculum-page .pace{padding:24px;gap:24px}
.curriculum-page .pace strong{font:26px 'Newsreader',Georgia,serif}
.curriculum-page .pace label{font-size:17px;font-weight:400}
.curriculum-page :is(select,input,textarea){border-color:#aeb6ba;border-radius:2px;background:#fcfbf7;color:var(--ink)}
.curriculum-page .tiny{font-size:10px;line-height:1.65;color:var(--muted)}
.curriculum-page .progress{border-radius:0;background:#d4d9da}
.curriculum-page .progress span{background:var(--green)}
.curriculum-page .map{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr))}
.curriculum-page .term{background:transparent;border-radius:0;border:0!important;border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;padding:26px;min-height:235px;transition:background .2s}
.curriculum-page .term:hover{transform:none;filter:none;background:#e9ece9}
.curriculum-page .term .n{font:10px 'IBM Plex Mono',monospace;color:var(--orange);letter-spacing:.08em}
.curriculum-page .term h3{font-size:29px;margin:20px 0 12px;color:var(--ink)}
.curriculum-page .term p{font:17px/1.5 'Newsreader',Georgia,serif;color:var(--muted);margin-bottom:22px}
.curriculum-page .term small{font:9px 'IBM Plex Mono',monospace;color:var(--green)}
.curriculum-page .term:after{color:var(--green);font-size:20px}
.curriculum-page :is(.btn,.toolbar button,.matrix-actions button,.lesson-import,.protocol button){font:16px 'Newsreader',Georgia,serif;border:1px solid #aeb6ba;border-radius:2px;background:transparent;color:var(--green);min-height:44px;padding:10px 15px}
.curriculum-page :is(.toolbar button[aria-pressed=true],.matrix-actions button:first-child){background:var(--green);color:var(--paper);border-color:var(--green)}
.curriculum-page :is(.studio,.method-chapter,.discovery-card,.practice-card,.lesson-topic){background:transparent;border:1px solid var(--line)!important;border-radius:0;box-shadow:none}
.curriculum-page .studio{margin:0 0 -1px;scroll-margin-top:85px}
.curriculum-page .studio summary{padding:24px 18px}
.curriculum-page .studio .num{background:transparent!important;color:var(--orange)!important;font:29px 'Newsreader',Georgia,serif}
.curriculum-page .studio h3{font-size:27px;font-weight:400}
.curriculum-page .studio .q{font-size:18px;color:var(--muted)}
.curriculum-page .range{color:var(--muted);font-size:10px}
.curriculum-page .studio summary:after{color:var(--green)}
.curriculum-page .studio[open] summary{border-color:var(--line);background:#eeeee7}
.curriculum-page .studio-body{padding-top:12px}
.curriculum-page :is(.studio-body p,.weeks li,.gate p,.method-body,.start p,td){font:18px/1.65 'Newsreader',Georgia,serif}
.curriculum-page :is(.lab,.gate,.discovery-hunt){background:#eeeee7;border:0;border-left:2px solid var(--green);border-radius:0;color:var(--ink)}
.curriculum-page .gate h4,.curriculum-page .sources a{color:var(--green)}
.curriculum-page .gate input{accent-color:var(--green);width:19px;height:19px}
.curriculum-page .gate label{font-size:17px}
.curriculum-page .weeks li:before{background:#e4e8e7;color:var(--green)}
.curriculum-page .artifact b{font:10px 'IBM Plex Mono',monospace;color:var(--orange)}
.curriculum-page .sources a{font-size:17px}
.curriculum-page .protocol{background:var(--green);border-radius:0;padding:36px;color:var(--paper)}
.curriculum-page .protocol :is(h2,.eyebrow,blockquote){color:var(--paper)}
.curriculum-page .protocol blockquote{font:23px/1.65 'Newsreader',Georgia,serif}
.curriculum-page .protocol button{border-color:#f7f6f180;color:var(--paper)}
.curriculum-page .protocol .tiny{color:#d0d9e2}
.curriculum-page th{background:#eeeee7;font:10px/1.6 'IBM Plex Mono',monospace;color:var(--green);letter-spacing:.04em}
.curriculum-page .resource a{font:24px/1.2 'Newsreader',Georgia,serif}
.curriculum-page .resource p{font:18px/1.6 'Newsreader',Georgia,serif;color:var(--muted)}
.curriculum-page .notes summary{font:23px 'Newsreader',Georgia,serif}
.curriculum-page .notes p{font-size:17px;color:var(--muted);max-width:900px}
.curriculum-page footer{font-size:10px;line-height:1.7;padding-bottom:36px}
.curriculum-page .lesson-topic{padding:20px;text-align:left}
.curriculum-page .lesson-topic strong{font:24px/1.2 'Newsreader',Georgia,serif;color:var(--ink)}
.curriculum-page .lesson-topic small{font:10px 'IBM Plex Mono',monospace;color:var(--muted)}
.curriculum-page .lesson-topic[aria-pressed=true]{background:#e8ecec;border-color:var(--green)!important}
.curriculum-page .lesson-topics{gap:10px}
.curriculum-page .matrix-toolbar label{font-size:17px;font-weight:400}
.curriculum-page .matrix-toolbar :is(input,select){border-radius:2px;background:#fcfbf7;font-size:17px;border-color:#aeb6ba;min-height:48px}
.curriculum-page .matrix-scroll{border:1px solid var(--line);border-radius:0;background:transparent}
.curriculum-page .lesson-table th{background:#eeeee7}
.curriculum-page .lesson-table td{font:17px/1.55 'Newsreader',Georgia,serif;border-color:var(--line)}
.curriculum-page .lesson-table small{font:11px/1.6 'IBM Plex Mono',monospace;color:var(--muted)}
.curriculum-page .lesson-open{font:23px/1.2 'Newsreader',Georgia,serif;color:var(--green)}
.curriculum-page .lesson-table tr:hover{background:#eeeee7}
.curriculum-page #lesson-dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:3px}
.curriculum-page #lesson-dialog::backdrop{background:#16222eaa;backdrop-filter:blur(3px)}
.curriculum-page #lesson-dialog h2{font:38px/1.12 'Newsreader',Georgia,serif;color:var(--ink)}
.curriculum-page #lesson-dialog h3{font:26px 'Newsreader',Georgia,serif;color:var(--green)}
.curriculum-page #lesson-dialog :is(p,li){font:20px/1.6 'Newsreader',Georgia,serif}
.curriculum-page #lesson-dialog a{color:var(--green)}
.curriculum-page #lesson-dialog :is(select,textarea){background:#fcfbf7;border-radius:2px;border-color:#aeb6ba;color:var(--ink)}
.curriculum-page #lesson-dialog label{font-size:17px;font-weight:400}
.curriculum-page #lesson-dialog :is(.lesson-evidence,.lesson-briefing,.lesson-guide,.lesson-mastery){background:#eeeee7;border-radius:0;border-color:var(--line)}
.curriculum-page #lesson-close{background:var(--paper);color:var(--green);border-radius:2px;border-color:#aeb6ba;font:17px 'Newsreader',Georgia,serif}
.curriculum-page .lesson-import:focus-within{outline-color:var(--green)}
.curriculum-page :is(.practice-card,.discovery-card){padding:25px}
.curriculum-page :is(.practice-card,.discovery-card) h3{font-size:30px}
.curriculum-page .practice-card :is(p,li,label){font-family:'Newsreader',Georgia,serif;font-size:18px}
.curriculum-page .practice-card :is(button,textarea){border-radius:2px}
.curriculum-page .practice-card button{background:var(--green);color:var(--paper)}
.curriculum-page .practice-card small{color:var(--muted)}
.curriculum-page .discovery-hunt{border-color:var(--orange)}
.curriculum-page .mobile-nav{background:var(--paper);border-color:var(--line)}
.curriculum-page .mobile-nav a{background:transparent;border-radius:0;border-bottom:2px solid transparent;color:var(--green);font:16px 'Newsreader',Georgia,serif;padding:8px 12px;text-decoration:none}
.curriculum-page .mobile-nav a[aria-current]{color:var(--ink);border-bottom-color:var(--orange);background:#24466e0a}
@media(min-width:1800px){.curriculum-page main{margin-right:auto}}
@media(max-width:1150px){.curriculum-page .sidebar{width:195px;padding-inline:20px}.curriculum-page main{margin-left:195px;padding-inline:30px}.curriculum-page .site-header nav{gap:18px}.curriculum-hero{grid-template-columns:1.3fr .8fr;gap:0}.curriculum-hero h1{font-size:62px}.curriculum-page .intro{grid-template-columns:1fr 1fr}.curriculum-page .intro-tag{grid-column:1/-1}.curriculum-page .intro-tag span{display:none}.curriculum-page .map{grid-template-columns:repeat(2,minmax(0,1fr))}.curriculum-page .stat-strip{grid-template-columns:repeat(2,1fr);gap:22px}.curriculum-page .stat-strip>div{padding-left:0}.curriculum-page .stat-strip>div:nth-child(2){border:0}.curriculum-page .stat-strip span{max-width:150px}}
@media(max-width:900px){.curriculum-page .site-header .site-desktop{display:none}.curriculum-page .site-menu{display:block}.curriculum-page .sidebar{display:none}.curriculum-page main{margin-left:0;padding-inline:32px}.curriculum-page .mobile-nav{display:flex;position:sticky;top:60px;z-index:10;overflow:auto;padding:5px 20px;gap:10px;white-space:nowrap;border-bottom:1px solid var(--line)}.curriculum-page .mobile-nav a{flex-shrink:0;min-height:40px;display:flex;align-items:center}.curriculum-page .mobile-nav a:nth-child(2){display:flex}html{scroll-padding-top:130px}.curriculum-page section{scroll-margin-top:130px}.curriculum-hero{padding-top:44px;grid-template-columns:1.15fr 1fr}.curriculum-hero h1{font-size:66px}.curriculum-page .studio{scroll-margin-top:125px}.curriculum-page .site-header .site-menu nav{top:100%;gap:10px 24px}}
@media(max-width:650px){.curriculum-page main{padding:0 20px}.curriculum-page .site-header{padding:5px 20px}.curriculum-page .site-header .site-name{font-size:18px}.curriculum-hero{grid-template-columns:1fr;padding:40px 0 24px;gap:12px}.curriculum-hero h1{font-size:clamp(49px,12vw,68px);margin:22px 0}.curriculum-hero .eyebrow{font-size:9px}.curriculum-hero .deck{font-size:21px}.curriculum-hero .hero-meta{font-size:9px}.curriculum-figure{width:82%;max-width:330px;justify-self:center;margin-top:8px}.curriculum-page .stat-strip{padding:24px 0;gap:20px}.curriculum-page .stat-strip>div{gap:10px;padding-right:9px}.curriculum-page .stat-strip strong{font-size:36px}.curriculum-page .stat-strip span{font-size:15px}.curriculum-page .intro{grid-template-columns:1fr;gap:16px}.curriculum-page .intro p{font-size:19px}.curriculum-page section{margin:62px 0}.curriculum-page .lead{font-size:20px}.curriculum-page .map{grid-template-columns:1fr}.curriculum-page .term{min-height:0;padding:25px}.curriculum-page .term h3{font-size:31px;margin-top:16px}.curriculum-page .term p{font-size:19px}.curriculum-page .pace{grid-template-columns:1fr;padding:20px}.curriculum-page .pace>div:last-child{grid-column:auto}.curriculum-page .lesson-table tr{background:transparent;border-radius:0;border-color:var(--line);margin-bottom:12px}.curriculum-page .lesson-table td{font-size:18px}.curriculum-page .lesson-open{font-size:25px}.curriculum-page .lesson-topics{grid-template-columns:1fr}.curriculum-page .studio summary{padding:21px 12px;gap:10px;grid-template-columns:32px 1fr 18px}.curriculum-page .studio h3{font-size:25px}.curriculum-page .studio .num{font-size:25px;width:auto}.curriculum-page .studio .q{font-size:17px}.curriculum-page .studio-body{padding:8px 16px 24px}.curriculum-page .body-grid{grid-template-columns:1fr}.curriculum-page .protocol{padding:25px}.curriculum-page .protocol blockquote{font-size:21px}.curriculum-page .resource-grid{grid-template-columns:1fr}.curriculum-page .start{padding:22px}.curriculum-page footer{flex-direction:column}.curriculum-page #lesson-dialog h2{font-size:30px}.curriculum-page #lesson-dialog :is(p,li){font-size:19px}.curriculum-page .practice-card{padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.curriculum-page .site-header,.curriculum-page .sidebar,.curriculum-page .mobile-nav,.skip-link{display:none!important}.curriculum-page main{margin:0;padding:0}.curriculum-hero{padding-top:0}.curriculum-figure{max-width:280px}.curriculum-page section{margin:30px 0}.curriculum-page .protocol{background:white;color:black;border:1px solid #888}.curriculum-page .protocol :is(h2,blockquote){color:black}}
.curriculum-page .lesson-guide>div{background:#eeeee7;border-color:var(--line);border-radius:0}
.curriculum-page .lesson-guide strong{font-size:21px;font-weight:400;color:var(--green)}
.curriculum-page .lesson-guide p{font-size:18px}
.curriculum-page .lesson-dialog-bar{background:var(--paper);border-color:var(--line)}
.curriculum-page .lesson-dialog-bar>span{font:10px 'IBM Plex Mono',monospace;color:var(--muted)}
.curriculum-page .lesson-path span{background:#e8ecec;color:var(--green);border-radius:0;font:13px 'IBM Plex Mono',monospace}
.curriculum-page :is(.lesson-insight,.lesson-takeaway,.lesson-fact){border-radius:0;background:#eeeee7;border:0;border-left:2px solid var(--green)}
.curriculum-page .lesson-fact{background:#f1ece1;border-left-color:#aa8350}
.curriculum-page .lesson-step{border-color:var(--line)}
.curriculum-page .lesson-step summary{font-size:21px;font-weight:400;color:var(--green)}
.curriculum-page :is(.mastery-overview,#lesson-mastery){background:#eeeee7;border-radius:0;border-color:var(--line)}
.curriculum-page .mastery-step{border-color:var(--line)}
.curriculum-page .mastery-step input{accent-color:var(--green)}
.curriculum-page .practice-card summary span,.curriculum-page .practice-card summary::before{color:var(--green)}
.curriculum-page .practice-card h4{font:12px 'IBM Plex Mono',monospace}
.topic-browser{border-block:1px solid var(--line);margin:25px 0}
.topic-browser>summary{padding:16px 0;cursor:pointer;color:var(--green);font-size:23px}
.topic-browser>summary span{float:right;font:11px/2 'IBM Plex Mono',monospace;color:var(--muted)}
#lesson-more{margin-top:18px}
html{scroll-behavior:auto}
.curriculum-page .resource{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:20px 0;box-shadow:none}

/* Quiet navigation and colour-coded terms. */
.curriculum-page .sidebar{padding-top:32px}
.curriculum-page .brand{font-size:23px;margin-bottom:25px}
.curriculum-page .sidebar nav a{padding-block:9px}
.curriculum-page .side-begin{font-size:16px;border-bottom:0;margin-top:22px}
.curriculum-page .curriculum-hero{display:block;padding:55px 0 32px}
.curriculum-page .curriculum-hero h1{font-size:clamp(44px,5.2vw,74px);margin:0 0 17px}
.curriculum-page .curriculum-hero .deck{max-width:none;margin:0 0 25px;font-size:22px}
.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.hero-actions>a:last-child{font-size:18px;text-underline-offset:4px}
.curriculum-count{font:11px 'IBM Plex Mono',monospace;color:var(--muted);margin:25px 0 0}
.curriculum-page #map{margin-top:36px}
.curriculum-page #map>.lead{max-width:680px}
.curriculum-page .map{gap:12px;border:0}
.curriculum-page .term{--term-colour:#e7ece4;background:var(--term-colour);border:0!important;min-height:215px;padding:24px}
.curriculum-page .term:nth-child(2){--term-colour:#eee6d6}
.curriculum-page .term:nth-child(3){--term-colour:#e3ebee}
.curriculum-page .term:nth-child(4){--term-colour:#eee0d9}
.curriculum-page .term:nth-child(5){--term-colour:#e8e4ed}
.curriculum-page .term:nth-child(6){--term-colour:#e1e9e3}
.curriculum-page .term:hover{background:var(--term-colour);box-shadow:inset 0 0 0 1px #24466e60}
.curriculum-page .term:after{content:none}
.curriculum-page .term .n{color:var(--muted)}
.curriculum-page .term h3{font-size:26px;margin:14px 0 10px}
.curriculum-page .term p{font-size:17px;margin-bottom:17px;color:#4e5b60}
.curriculum-page .pace{background:transparent;border:0;border-block:1px solid var(--line);padding:20px 0;margin:26px 0}
.curriculum-page .pace strong{font-size:23px}
.curriculum-page .pace label{font-size:16px}
.curriculum-page .pace .tiny{font-size:10px}
.curriculum-page .lesson-help{border-bottom:1px solid var(--line);margin:22px 0}
.curriculum-page .lesson-help>summary{font-size:18px;color:var(--green);padding:12px 0;cursor:pointer}
.curriculum-page .topic-browser>summary{font-size:20px}
.curriculum-page .studio[data-term="1"] .num{background:#e7ece4!important}
.curriculum-page .studio[data-term="2"] .num{background:#eee6d6!important}
.curriculum-page .studio[data-term="3"] .num{background:#e3ebee!important}
.curriculum-page .studio[data-term="4"] .num{background:#eee0d9!important}
.curriculum-page .studio[data-term="5"] .num{background:#e8e4ed!important}
.curriculum-page .studio[data-term="6"] .num{background:#e1e9e3!important}
.curriculum-page .studio .num{color:var(--green)!important;font-size:22px;width:42px;height:42px;display:flex;align-items:center;justify-content:center}
.curriculum-page section{margin-block:65px}
@media(max-width:650px){
 .curriculum-page .curriculum-hero{padding:32px 0 25px}
 .curriculum-page .curriculum-hero h1{font-size:46px}
 .curriculum-page .curriculum-hero .deck{font-size:20px}
 .hero-actions{gap:18px}
 .curriculum-page .term{min-height:0;padding:22px}
 .curriculum-page .studio .num{width:30px;height:35px;font-size:20px}
 .curriculum-page .pace{gap:20px}
}
/* Keep topic selection, lessons, and the optional plan together. */
.curriculum-page .term{display:flex;flex-direction:column}
.curriculum-page .term>p,.curriculum-page .term>small{display:none}
.term-links{display:grid;gap:10px;margin-top:auto;padding-top:8px}
.curriculum-page .term-links a{font-size:18px;line-height:1.35;text-decoration:underline;text-underline-offset:3px}
.curriculum-page .hero-cta{border:0;cursor:pointer}
.continue-context{font-size:16px;color:var(--muted);margin:15px 0 0}
.curriculum-page .studio-lessons ol{list-style:none;padding:0;margin:0 0 20px}
.curriculum-page .studio-lessons li{border-bottom:1px solid var(--line)}
.curriculum-page .studio-lessons button{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;text-align:left;border:0;background:none;color:var(--green);padding:15px 0;cursor:pointer;font-size:21px}
.studio-lessons button:hover span{text-decoration:underline;text-underline-offset:4px}
.curriculum-page .studio-lessons small{font:10px/1.6 'IBM Plex Mono',monospace;color:var(--muted);min-width:145px;text-align:right}
.curriculum-page .studio-plan{border-top:1px solid var(--line);margin-top:20px}
.curriculum-page .studio-plan>summary{display:list-item;padding:18px 0;font-size:19px;color:var(--green)}
.curriculum-page .studio-plan>summary:after{content:none}
.curriculum-page .studio-plan[open]>summary{background:transparent}
.curriculum-page .optional-assessment{margin:24px 0;border-block:1px solid var(--line)}
.optional-assessment>summary{padding:16px 0;cursor:pointer;color:var(--green)}
.lesson-navigation{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 22px;border-top:1px solid var(--line);background:var(--paper);flex-shrink:0}
.lesson-navigation button{border:1px solid var(--green);background:transparent;color:var(--green);padding:10px 14px;cursor:pointer;font-size:17px}
.lesson-navigation button:last-child{background:var(--green);color:var(--paper)}
.lesson-navigation button:disabled{opacity:.35;cursor:default}
#lesson-position{font-size:14px;color:var(--muted);text-align:center}
@media(max-width:650px){.curriculum-page .studio-lessons button{display:block;font-size:21px}.curriculum-page .studio-lessons small{display:block;text-align:left;margin-top:7px}.lesson-navigation{padding:12px;flex-wrap:wrap}.lesson-navigation button{font-size:16px}#lesson-position{order:-1;width:100%}}
@media print{.studio-lessons,.lesson-navigation{display:none}}

/* Reading first: an article, followed by optional practice. */
.curriculum-page .lesson-reading-header{margin-bottom:32px}
.curriculum-page #lesson-dialog .lesson-intro{font-size:23px;line-height:1.45;color:var(--ink);margin-bottom:12px}
.curriculum-page #lesson-dialog .lesson-reading-meta{font:12px/1.6 'IBM Plex Mono',monospace;color:var(--muted)}
.curriculum-page .lesson-learning{max-width:760px;margin-inline:auto}
.curriculum-page #lesson-dialog .lesson-learning>h3{margin:38px 0 14px;font-size:29px}
.curriculum-page #lesson-dialog .lesson-learning>h3:first-child{margin-top:0}
.curriculum-page .lesson-learning>p{margin:0 0 20px}
.curriculum-page .lesson-terms{background:transparent;border:0;border-block:1px solid var(--line);padding:14px 0;margin:24px 0}
.curriculum-page .lesson-terms summary{font-size:18px;cursor:pointer;color:var(--green)}
.curriculum-page .lesson-terms dl{margin:16px 0 0;font-size:18px;line-height:1.6}
.curriculum-page .lesson-terms dt{font-weight:600;margin-top:12px}
.curriculum-page .lesson-terms dd{margin-left:0;color:var(--muted)}
.curriculum-page .lesson-research{padding:24px;background:#edf0eb;border-left:3px solid #647a68;margin:28px 0}
.curriculum-page #lesson-dialog .lesson-research h3{margin:10px 0 16px}
.curriculum-page .lesson-research a{font-size:17px;line-height:1.5}
.curriculum-page .lesson-calculation{overflow-x:auto;margin:24px 0;border:1px solid var(--line)}
.curriculum-page .lesson-calculation table{border-collapse:collapse;width:100%;font-size:17px;line-height:1.5}
.curriculum-page .lesson-calculation caption{text-align:left;padding:14px;background:#eeeae0;font-size:17px}
.curriculum-page .lesson-calculation th,.curriculum-page .lesson-calculation td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}
.curriculum-page .lesson-calculation tbody th{font-weight:400}
.curriculum-page .lesson-calculation tbody tr:last-child{background:#e8ece3;font-weight:600}
.curriculum-page .lesson-reading-resources{border-top:1px solid var(--line);margin-top:32px;padding-top:12px}
.curriculum-page .lesson-reading-resources ul{padding:0;list-style:none}
.curriculum-page .lesson-reading-resources li{margin:0 0 22px}
.curriculum-page #lesson-dialog .lesson-reading-resources li p,.curriculum-page #lesson-dialog .resource-intro{font-size:17px;color:var(--muted);margin:6px 0}
.curriculum-page .lesson-comprehension{padding:22px 0;border-top:1px solid var(--line)}
.curriculum-page .lesson-comprehension details{border:0;padding:0;background:transparent}
.curriculum-page .lesson-comprehension summary{color:var(--green);font-size:18px;cursor:pointer}
@media(max-width:650px){.curriculum-page #lesson-dialog .lesson-intro{font-size:21px}.curriculum-page .lesson-research{padding:18px}.curriculum-page .lesson-calculation :is(th,td){padding:9px;font-size:15px}.curriculum-page #lesson-dialog .lesson-learning>h3{font-size:27px}}
.curriculum-page .lesson-reading-header{max-width:760px;margin-inline:auto}
.curriculum-page .lesson-calculation th{font:inherit;letter-spacing:normal;text-transform:none}
.curriculum-page .lesson-calculation thead th{font-weight:600}
.curriculum-page #lesson-dialog .lesson-example-label{font:11px/1.5 'IBM Plex Mono',monospace;letter-spacing:.04em;color:var(--muted)}
.curriculum-page .lesson-calculation table{min-width:0;table-layout:fixed}
.curriculum-page .lesson-calculation th:first-child{width:44%}
@media(max-width:650px){.curriculum-page .lesson-calculation :is(th,td){font-size:14px;overflow-wrap:break-word}.curriculum-page .lesson-calculation caption{font-size:15px}}

/* Short labeled ideas, without another layer of cards. */
.curriculum-page #lesson-dialog .lesson-concepts{list-style:none;padding:0;margin:20px 0 28px}
.curriculum-page #lesson-dialog .lesson-concepts li{display:grid;grid-template-columns:145px 1fr;gap:18px;padding:16px 0;margin:0;border-top:1px solid var(--line)}
.curriculum-page .lesson-concepts strong{color:var(--green);font-weight:600}
.curriculum-page .lesson-concepts span{display:block}
@media(max-width:650px){.curriculum-page #lesson-dialog .lesson-concepts li{grid-template-columns:1fr;gap:4px;padding:14px 0}}

/* The useful ideas come first, with room to scan each one. */
.curriculum-page #lesson-dialog .lesson-insights{padding-left:1.1em;margin:24px 0 22px;list-style:disc}
.curriculum-page #lesson-dialog .lesson-insights li{padding-left:6px;margin:0 0 18px;font-size:21px;line-height:1.55}
.curriculum-page .lesson-insights li::marker{color:var(--green);font-size:.7em}
.curriculum-page .insight-source{display:block;margin-top:5px;font-size:14px;line-height:1.5}
.curriculum-page #lesson-dialog .lesson-reading-header h2{margin-bottom:22px}
@media(max-width:650px){.curriculum-page #lesson-dialog .lesson-insights li{font-size:19px;margin-bottom:17px}.curriculum-page #lesson-dialog .lesson-reading-header h2{font-size:30px;line-height:1.2}}

.curriculum-page #lesson-dialog .lesson-outcome{font-size:19px;line-height:1.5;color:var(--muted);margin:0 0 18px}
.curriculum-page #lesson-dialog .lesson-person{font-size:16px;margin:18px 0 8px}
body.people-page{margin:0}
.curriculum-page .people-main{box-sizing:border-box;max-width:820px;margin:0 auto;padding:40px 28px 80px}
.people-main h1{font-size:clamp(35px,5vw,54px);line-height:1.1;margin:30px 0 20px}
.people-main .people-intro{font-size:22px;line-height:1.5;margin-bottom:38px}
.people-main article{border-top:1px solid var(--line);padding:26px 0 32px;scroll-margin-top:90px}
.curriculum-page .people-main article h2{font-size:29px;line-height:1.2;margin:8px 0 14px}
.people-main article h2 a{text-decoration-thickness:1px;text-underline-offset:5px}
.people-main article p{margin:12px 0}
.people-main .person-name{font:12px/1.5 'IBM Plex Mono',monospace;color:var(--green)}
.people-main .person-insight{border-left:2px solid #647a68;padding-left:16px}
.people-main details{font-size:17px;margin-top:18px}
.people-main summary{cursor:pointer;color:var(--green)}
@media(max-width:650px){.curriculum-page .people-main{padding:28px 22px 55px}.curriculum-page .people-main article h2{font-size:26px}.people-main .people-intro{font-size:20px}}

/* A lesson starts with a reason to care, then the ideas needed to use it. */
.curriculum-page .lesson-opening {margin:24px 0 28px;padding:20px 24px;background:#edf0e9;border-left:3px solid #799184;}
.curriculum-page #lesson-dialog .lesson-opening p {margin:0 0 12px;}
.curriculum-page #lesson-dialog .lesson-opening p:last-child {margin-bottom:0;}
.curriculum-page #lesson-dialog .lesson-opening-label {font:12px 'IBM Plex Mono',monospace;color:#56645a;}
.curriculum-page #lesson-dialog .lesson-opening-source,.curriculum-page #lesson-dialog .lesson-opening-note {font-size:15px;line-height:1.45;}
.curriculum-page #lesson-dialog .lesson-insights {margin:0 0 30px;padding-left:22px;}
.curriculum-page #lesson-dialog .lesson-insights li {margin-bottom:16px;}
.curriculum-page .lesson-more,.curriculum-page .lesson-saved-work {border-top:1px solid #d9dcd5;padding:18px 0;margin:0;}
.curriculum-page .lesson-more>summary,.curriculum-page .lesson-saved-work>summary {cursor:pointer;color:#284e75;font-size:19px;}
@media(max-width:600px){.curriculum-page .lesson-opening{padding:16px;margin:20px 0 24px;}.curriculum-page #lesson-dialog .lesson-insights li{font-size:19px;line-height:1.5;}}

/* A visual introduction to the three connected fields. */
.curriculum-page .curriculum-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:center}
.curriculum-page .curriculum-hero .deck{max-width:440px}
.learning-map{margin:0;min-width:0}
.learning-map img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.learning-map figcaption{max-width:32ch;margin:12px auto 0;text-align:center;color:var(--muted);font:17px/1.4 'Newsreader',Georgia,serif}
@media(min-width:901px) and (max-width:1050px), (max-width:700px){
 .curriculum-page .curriculum-hero{grid-template-columns:1fr;gap:28px}
 .learning-map{width:100%;max-width:540px;justify-self:center}
}
@media print{.learning-map{max-width:330px}}

.curriculum-page #lesson-dialog .lesson-opening h3{margin:0 0 12px;font-size:22px;line-height:1.25;color:#365546;}
.curriculum-page #lesson-dialog .lesson-background .lesson-opening-source,.curriculum-page #lesson-dialog .lesson-background .lesson-opening-note{font-size:15px;line-height:1.45;}
.curriculum-page .overview-card .overview-outcome{font:19px/1.4 'Newsreader',Georgia,serif;color:#3c5359;margin:12px 0 20px}

.curriculum-page .lesson-search-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:900px;margin:-12px 0 24px}
.curriculum-page .lesson-search-meta p{margin:0}
.curriculum-page #lesson-reset{border:0;background:none;color:var(--green);text-decoration:underline;cursor:pointer;font:16px Newsreader,Georgia,serif;white-space:nowrap}
.curriculum-page .lesson-tools{border-top:1px solid var(--line);margin-top:28px;padding-top:18px}
.curriculum-page .lesson-tools>summary{color:var(--green);cursor:pointer;font-size:18px}
.curriculum-page .lesson-tools p{font-size:16px;color:var(--muted)}
.curriculum-page .lesson-tools .matrix-actions button:first-child{background:transparent;color:var(--green);border-color:#aeb6ba}
