:root{--paper:#f4f3ed;--ink:#202b28;--muted:#64726d;--line:#d9ddd4;--green:#245d4c;--mint:#dbe8df;--lime:#d9ef94;--orange:#bd6846;--white:#fffefa;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 7% 20%,#e9ede0 0,transparent 38%),var(--paper)}button,a,summary{font:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #bd6846;outline-offset:3px}.skip-link{position:absolute;left:-999px;top:0;background:var(--white);padding:1rem;z-index:9}.skip-link:focus{left:1rem}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,6vw,94px)}.brand{color:var(--ink);text-decoration:none;font-weight:700;letter-spacing:-.06em;font-size:21px;display:flex;align-items:center;gap:8px}.brand>span:last-child{font-weight:400;color:#75817a;margin-left:-8px}.brand-mark{width:27px;height:27px;border-radius:50% 50% 50% 8px;background:var(--green);color:#fff;display:grid;place-items:center;font-family:Georgia,serif;font-size:21px;font-style:italic}.local-badge,.eyebrow,.card-kicker,.progress-label,footer,.concept-map .map-node span{font-family:'DM Mono',monospace;letter-spacing:.09em}.local-badge{font-size:10px;color:#4f6a5e}.local-badge span{font-size:8px;color:#5e9a69;margin-right:7px}.layout{max-width:1220px;margin:0 auto;padding:72px 34px 90px;display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(40px,8vw,120px);align-items:start}.intro{padding-top:23px}.eyebrow{font-size:10px;color:var(--orange);font-weight:500}.intro h1{font-family:Newsreader,Georgia,serif;font-size:clamp(48px,5.3vw,73px);line-height:.98;letter-spacing:-.045em;font-weight:500;margin:29px 0 22px}.intro h1 em{font-weight:500;color:var(--green)}.intro>p{max-width:420px;color:var(--muted);font-size:15px;line-height:1.75;margin:0}.lesson-meta{display:flex;align-items:center;gap:11px;margin-top:25px;color:#475951;font-size:12px}.meta-icon{background:var(--lime);width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-weight:700}.dot{color:#a7b0a7}.concept-map{display:flex;align-items:center;margin-top:67px;max-width:440px}.map-node{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#748078;white-space:nowrap}.map-node span{font-size:9px;color:#9aa59c}.map-node.active{color:var(--green);font-weight:700}.map-node.active span{color:var(--orange)}.map-line{height:1px;background:#c5cdc2;flex:1;margin:0 12px 18px}.map-caption{font-size:11px!important;line-height:1.6!important;margin-top:14px!important;color:#87918a!important;max-width:380px}.workbench{background:var(--white);border:1px solid #e1e3da;border-radius:8px;padding:28px 30px 20px;box-shadow:0 20px 55px #263b2c0d;min-height:470px}.progress-label{display:flex;justify-content:space-between;color:#78857d;font-size:9px}.progress-track{height:3px;background:#e7e9e2;margin-top:11px;border-radius:5px;overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:var(--green);transition:width .3s}.welcome-card{padding:42px 11px 22px}.card-kicker{font-size:9px;color:var(--orange)}.welcome-card h2,.question-card h2,.result-card h2{font-family:Newsreader,Georgia,serif;font-weight:500;letter-spacing:-.025em;font-size:35px;line-height:1.1;margin:14px 0}.welcome-card>p,.question-card>p,.result-card>p{color:var(--muted);font-size:13px;line-height:1.75;max-width:490px}.principle{display:flex;gap:12px;background:#f1f5ed;border-left:2px solid var(--green);padding:14px;margin:25px 0 27px;color:#5b6b60;font-size:11px;line-height:1.6}.principle>span:first-child{font-size:17px;color:var(--green)}.principle strong{color:var(--ink)}.primary-button{background:var(--green);border:0;color:white;border-radius:4px;padding:14px 18px;font-weight:600;font-size:12px;cursor:pointer}.primary-button span{padding-left:22px;font-size:16px}.primary-button:hover{background:#174736}.model-note{border-top:1px solid #ebede6;padding:14px 2px 0;color:#77827a;font-size:10px;line-height:1.7}.model-note summary{cursor:pointer;color:#647269;list-style:none}.model-note summary:after{content:'+';float:right;font-size:15px}.model-note[open] summary:after{content:'−'}.model-note p{max-width:650px;margin:10px 0 2px}.question-card{padding:26px 8px 18px}.question-type{font-family:'DM Mono',monospace;font-size:9px;color:var(--orange);letter-spacing:.08em}.question-card h2{font-size:29px;margin-top:13px}.question-card .prompt{font-size:14px;color:#485750;margin:0 0 22px}.choices{display:grid;gap:9px}.choice{width:100%;background:#fff;border:1px solid #dfe4dc;padding:13px 14px;text-align:left;border-radius:4px;color:#33413b;font-size:12px;line-height:1.5;cursor:pointer}.choice:hover:not(:disabled){border-color:#648473;background:#f5f8f2}.choice:disabled{cursor:default}.choice.correct{border-color:#4d8b64;background:#edf6ec}.choice.incorrect{border-color:#cb8163;background:#fbf0eb}.choice .choice-key{font-family:'DM Mono',monospace;color:#8b968e;margin-right:9px}.feedback{margin-top:17px;padding:14px 15px;background:#f3f5ef;border-radius:4px;font-size:11px;line-height:1.65;color:#52625a}.feedback strong{color:var(--green)}.feedback .why{display:block;margin-top:4px;color:#6c7972}.next-button{margin-top:15px}.mastery-box{margin:18px 0;background:#f3f5ef;padding:14px;border-radius:4px}.mastery-box h3{font-size:11px;margin:0 0 12px}.mastery-row{display:grid;grid-template-columns:92px 1fr 36px;gap:10px;align-items:center;font-size:10px;color:#68766e;margin-top:9px}.mastery-meter{height:5px;background:#dfe5dc;border-radius:9px;overflow:hidden}.mastery-meter span{display:block;height:100%;background:#54816b}.mastery-row output{text-align:right;font-family:'DM Mono',monospace}.result-card{padding:28px 8px}.result-mark{width:48px;height:48px;background:var(--lime);border-radius:50%;display:grid;place-items:center;font-size:23px;color:var(--green)}.result-card h2{font-size:32px}.reflection{border-left:2px solid var(--orange);padding:9px 13px;margin:20px 0;color:#58665e;font-size:11px;line-height:1.65}.source-note{font-size:10px!important;color:#7a857e!important;border-top:1px solid #e7e9e2;padding-top:13px;margin-top:20px}.reset-button{background:transparent;color:var(--green);border:1px solid #9fb1a4;border-radius:4px;padding:11px 15px;font-size:11px;font-weight:600;cursor:pointer}.reset-button:hover{background:#f1f5ed}footer{max-width:1220px;padding:22px 34px;margin:0 auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;color:#87918a;font-size:8px;line-height:1.5}footer span:last-child{text-align:right;font-family:'DM Sans',sans-serif;letter-spacing:0;font-size:10px}
.simulation-launch{margin-top:17px;border-top:1px solid #e8ebe3;padding-top:12px}.text-button{border:0;padding:0;background:none;color:var(--green);font-size:10px;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.simulation-launch>p{font-size:9px;color:#849087;margin:6px 0}.simulation-result{background:#f2f5ef;border-radius:4px;padding:12px;font-size:10px;line-height:1.55;color:#5c6a61}.simulation-result>strong{color:var(--green)}.simulation-result p{margin:7px 0}.simulation-compare{display:grid;gap:5px;color:#354a3f;font-family:'DM Mono',monospace;font-size:9px}
.practice-summary{margin:22px 0;padding:18px;background:#eef3e9;border:1px solid #d9e4d2;border-radius:5px}
.practice-summary h3,.review-list h3{margin:0 0 9px;font-size:15px;color:var(--green)}
.practice-summary p,.review-list>p{font-size:12px;line-height:1.65;color:#56685c;margin:8px 0}
.practice-summary .primary-button{margin-top:9px}
.practice-note{font-size:11px!important;line-height:1.6!important;color:#607064!important}
.practice-back{display:block;margin-top:24px;padding:8px 0;font-size:12px}
.review-list{margin-top:26px}
.review-item{border:1px solid #dce2d6;border-radius:5px;margin-top:10px;overflow-wrap:anywhere}
.review-item summary{padding:14px;cursor:pointer;line-height:1.5;color:var(--green)}
.review-label{font-size:10px;font-weight:600}
.review-status{display:block;margin:5px 0 0;font-size:10px;color:#476647}
.review-status.needs-review{color:#924423}
.review-prompt{display:block;margin-top:8px;font-size:12px;color:var(--ink)}
.review-item[open] summary{background:#f5f7f1;border-bottom:1px solid #e1e6da;border-radius:5px 5px 0 0}
.review-body{padding:14px;font-size:12px;line-height:1.65;color:#52635a}
.review-body>p{margin:12px 0 0}
.review-answers{margin:0}
.review-answers>div{margin:0 0 12px;padding-left:11px;border-left:2px solid #bbcbbb}
.review-answers>div:last-child{border-color:var(--green)}
.review-answers dt{font-weight:600;color:var(--ink);font-size:11px}
.review-answers dd{margin:3px 0 0}
.review-transfer,.review-practice-answer{padding:12px;background:#f2f5ed;border-radius:4px}
.review-practice-answer{margin-top:12px;border-left:2px solid var(--orange)}
.review-practice-answer strong{font-size:11px;color:#6d482f}
.review-practice-answer p{margin:5px 0 0}
.reflection-field{margin-top:18px}
.reflection-field label{display:block;font-size:12px;font-weight:600;color:var(--green)}
.reflection-field p{margin:7px 0;font-size:11px;line-height:1.65}
.reflection-field textarea{display:block;width:100%;min-height:90px;padding:10px 12px;border:1px solid #9fb1a4;border-radius:4px;background:#fff;color:var(--ink);font:inherit;font-size:12px;line-height:1.6;resize:vertical}
.reflection-field textarea:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.reflection-field .reflection-hint{color:var(--muted)}
.result-card h2:focus{outline:2px solid var(--orange);outline-offset:5px}
.layout>*{min-width:0}
.question-card,.result-card,.feedback,.mastery-row,#lesson-description{overflow-wrap:anywhere}
.lesson-meta{flex-wrap:wrap}
.concept-map.imported-concepts{flex-wrap:wrap;gap:8px;margin-top:30px;align-items:flex-start}
.deck-concept{padding:7px 10px;border:1px solid #cdd8c9;border-radius:4px;color:var(--green);font-size:11px;overflow-wrap:anywhere;max-width:100%}
.deck-picker{margin-top:32px;padding-top:22px;border-top:1px solid #ccd6c9;overflow-wrap:anywhere}
.deck-picker h2{font-family:Georgia,serif;font-size:24px;font-weight:500;letter-spacing:-.02em;margin:0 0 10px}
.deck-picker p{font-size:12px;line-height:1.6;color:#53665a;margin:10px 0}
.deck-picker label{display:block;font-size:12px;font-weight:600;margin:17px 0 8px}
.deck-picker input{display:block;width:100%;max-width:100%;min-height:42px;font:inherit;font-size:12px;color:#334d3b}
.deck-picker input::file-selector-button{font:inherit;color:var(--green);background:var(--white);border:1px solid #9fb1a4;border-radius:4px;padding:10px;cursor:pointer;margin-right:8px}
.deck-picker input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.deck-actions{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin-top:12px}
.deck-actions .text-button{font-size:11px;min-height:36px}
.deck-picker #deck-status{font-size:11px;margin-top:10px}
.deck-picker #deck-status.deck-error{color:#8c341f;border-left:3px solid #bd6846;padding-left:10px}
#deck-preview{padding:18px;margin-top:18px;background:var(--white);border:1px solid #cbd9c5;border-radius:5px}
#deck-preview[hidden]{display:none}
#deck-preview h3{font-size:18px;line-height:1.35;color:var(--green);margin:0 0 12px}
#deck-preview h3:focus{outline:2px solid var(--orange);outline-offset:5px}
#deck-preview .deck-preview-count{font-size:11px;color:#6d7c70}
#deck-preview .deck-preview-attribution,#deck-preview .deck-preview-license{font-size:11px}
.deck-questions{margin:16px 0;font-size:12px;line-height:1.55}
.deck-questions summary{cursor:pointer;color:var(--green);font-weight:600}
.deck-questions ol{padding-left:20px}.deck-questions li{margin-top:15px}.deck-questions li p{font-size:11px;margin-top:5px}
#deck-preview .deck-replace-note{border-left:2px solid var(--orange);padding-left:10px;font-size:11px}
.deck-picker button{white-space:normal}
@media(max-width:800px){.layout{grid-template-columns:1fr;gap:35px;padding-top:42px}.intro{padding-top:0}.intro h1{font-size:57px;margin-top:20px}.concept-map{margin-top:35px}.workbench{min-height:0}.topbar{height:64px}.local-badge{font-size:8px}}@media(max-width:480px){.topbar{padding:0 18px}.layout{padding:32px 18px 52px;gap:26px}.intro h1{font-size:49px}.intro>p{font-size:13px}.concept-map{max-width:100%}.map-node{font-size:9px}.map-line{margin-left:7px;margin-right:7px}.workbench{padding:22px 18px 16px}.welcome-card{padding:30px 2px 18px}.welcome-card h2{font-size:30px}.question-card{padding:24px 0 14px}.question-card h2{font-size:26px}.mastery-row{grid-template-columns:78px 1fr 35px}footer{padding:18px;flex-direction:column}footer span:last-child{text-align:left}}

/* Entry points to the course directory and local tools. */
.toolkit-nav{max-width:1220px;margin:auto;padding:15px 34px;display:flex;gap:12px 28px;flex-wrap:wrap;border-bottom:1px solid var(--line);font-size:12px}.toolkit-nav a{color:var(--green);text-underline-offset:4px}.toolkit-intro{width:calc(100% - 68px);max-width:1152px;margin:28px auto 0;padding:24px 28px;background:var(--mint);border:1px solid #c3d3c6;border-radius:10px;display:flex;align-items:center;gap:28px;justify-content:space-between}.toolkit-kicker{font-family:monospace;font-size:10px;letter-spacing:.12em;color:var(--green);margin:0 0 10px}.toolkit-heading{font-family:Georgia,serif;font-size:30px;letter-spacing:-.03em;margin:0 0 9px}.toolkit-intro p:last-child{font-size:13px;color:#475e51;line-height:1.65;max-width:660px;margin:0}.toolkit-button{flex-shrink:0;padding:13px 16px;border-radius:5px;background:var(--green);color:white;text-decoration:none;font-size:12px;font-weight:650}.toolkit-intro+.layout{padding-top:40px}@media(max-width:800px){.toolkit-intro{width:auto;margin:22px 34px 0;align-items:flex-start;flex-direction:column;gap:17px}.toolkit-intro+.layout{padding-top:32px}}@media(max-width:480px){.toolkit-nav{padding:15px 18px;gap:12px 20px}.toolkit-intro{margin:18px 18px 0;padding:20px}.toolkit-heading{font-size:27px}}
/* Local learning trace archive controls. */
.trace-archive summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--green)}
.trace-archive label{display:block;font-size:12px;line-height:1.6;margin-top:16px}
.trace-archive input{display:block;width:100%;max-width:100%;font:inherit;font-size:12px;margin:8px 0}
.trace-archive input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.trace-archive button:disabled{cursor:default;opacity:.55}
.trace-archive-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.trace-archive-actions .primary-button{margin-top:0}
#trace-preview{margin-top:18px;overflow-wrap:anywhere}
.lesson-preview{margin-top:18px;overflow-wrap:anywhere}

/* Shared notebook styling: keep the learning controls readable and easy to reach. */
:root{--paper:#f6f5ef;--ink:#233c33;--muted:#596c60;--line:#d6ded3;--green:#285b47;--mint:#e7eddf;--lime:#dbeaab;--orange:#a04d32;--white:#fffef9}
body{background:var(--paper)}
.topbar{height:82px;max-width:1220px;margin:auto;padding-inline:34px;border-bottom:0}
.brand-mark{width:34px;height:34px;border-radius:50% 50% 50% 12%;background:#173e30;font-size:26px}
.local-badge{background:var(--mint);border:1px solid #d2dec7;border-radius:100px;padding:8px 12px;font-size:9px;letter-spacing:.07em;color:#405d3b}
.toolkit-nav{gap:9px 25px;padding-top:0;padding-bottom:12px;align-items:center}
.toolkit-nav a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none;font-size:12px}
.toolkit-nav a:hover{text-decoration:underline}
.toolkit-nav .is-current{padding:6px 13px;border:1px solid #c0cdb7;border-radius:100px;background:var(--mint);font-weight:650}
.toolkit-intro{padding:19px 23px;margin-top:23px;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:8px;gap:24px}
.toolkit-kicker{font-size:9px;margin-bottom:6px;color:#64765b}
.toolkit-heading{font-size:26px;margin-bottom:6px;color:var(--ink)}
.toolkit-intro p:last-child{font-size:12px;max-width:600px;color:var(--muted)}
.toolkit-button{display:inline-flex;gap:15px;align-items:center;min-height:44px;background:#173e30;padding:12px 16px;border-radius:6px}
.toolkit-intro+.layout{padding-top:34px}
.layout{gap:clamp(32px,5vw,72px)}
.intro{padding-top:12px}
.intro h1{font-size:clamp(49px,5.1vw,70px);line-height:1.03;margin-top:23px}
.intro>p{font-size:15px;line-height:1.8}
.concept-map{margin-top:39px;padding:20px 18px;background:var(--mint);border:1px solid #d4dfc9;border-radius:8px}
.map-node{font-size:12px;color:#5c7057}
.map-node span{color:#62755b}
.map-caption{color:#64735e!important}
.workbench{border:1px solid #cbd8c2;border-radius:12px;padding:27px 28px 22px;box-shadow:0 9px 25px #233c3307}
.progress-label{font-size:10px;color:#5e725c;letter-spacing:.06em}
.progress-track{height:5px;background:#e3eadb}
.welcome-card{padding:29px 3px 22px}
.card-kicker,.question-type{font-size:10px;color:var(--orange);letter-spacing:.08em}
.welcome-card h2{font-size:38px;line-height:1.13;margin:16px 0}
.welcome-card>p,.question-card>p,.result-card>p{font-size:14px;line-height:1.8}
.principle{font-size:12px;line-height:1.7;padding:15px 17px;border-radius:0 7px 7px 0;background:#edf2e6}
.primary-button{min-height:46px;padding:13px 18px;border-radius:6px;font-size:13px;background:#173e30}
.primary-button:hover{background:var(--green)}
.text-button{font-size:12px;line-height:1.5;min-height:32px}
.simulation-launch>p{font-size:10px;line-height:1.6;color:#62745c}
.model-note{font-size:12px;color:#566a56;line-height:1.75;padding-top:16px}
.model-note summary{color:#465f47;min-height:32px}
.question-card{padding:24px 2px 18px}
.question-card h2{font-size:28px;line-height:1.25;margin-top:14px}
.question-card .prompt{font-size:13px;color:#586d57;line-height:1.7}
.choices{gap:11px}
.choice{min-height:49px;border-color:#cbd7c1;border-radius:7px;padding:12px 14px;font-size:13px;line-height:1.65;color:#2e4938;background:#fffefb}
.choice:hover:not(:disabled){border-color:#6b8d57;background:#f0f5e9}
.choice .choice-key{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:10px;border:1px solid #d1ddc6;border-radius:4px;color:#49663f;font-size:11px;vertical-align:baseline;background:#f1f5ea}
.choice.correct .choice-key{border-color:#7ca37a;background:#dbead3;color:#234a2d}
.choice.incorrect .choice-key{border-color:#c48667;background:#f6dfd0;color:#7b3f25}
.feedback{border:1px solid #d4dfca;padding:15px 17px;font-size:12px;line-height:1.8;border-radius:7px}
.feedback .why{color:#52664f}
.mastery-box{background:#f0f4e9;border-radius:7px;padding:16px}
.mastery-box h3{font-size:11px;line-height:1.6}
.mastery-row{font-size:11px;color:#536b4b}
.practice-summary{border-radius:7px;background:#f0f4e9}
.trace-archive summary{font-size:12px;line-height:1.6;color:#385638;min-height:32px}
.trace-archive label{color:#52664b}
.deck-picker{background:#edf2e7;padding:21px;border:1px solid #cddbc2;border-radius:8px;margin-top:25px}
.deck-picker h2{font-size:25px}
.deck-picker p{color:#54694c}
.deck-picker input::file-selector-button{border-radius:6px;background:var(--white);min-height:44px}
.review-item{border-radius:7px}
.review-item summary{min-height:44px}
.reset-button{min-height:44px;border-radius:6px;font-size:12px}
footer{font-size:9px;color:#65765f}
@media(max-width:800px){.topbar{padding-inline:34px;height:76px}.local-badge{font-size:8px}.toolkit-intro{width:auto;margin-inline:34px;gap:14px}.toolkit-intro+.layout{padding-top:30px}.intro h1{font-size:56px}.workbench{padding:25px}.concept-map{max-width:440px}}
@media(max-width:480px){.topbar{padding-inline:18px;height:70px;gap:12px}.brand{font-size:20px}.local-badge{max-width:145px;font-size:7px;line-height:1.5;padding:7px 9px;text-align:center}.local-badge span{display:none}.toolkit-nav{padding-inline:18px;gap:5px 17px}.toolkit-nav a{font-size:11px}.toolkit-intro{margin:18px 18px 0;padding:17px 18px}.toolkit-heading{font-size:25px}.toolkit-intro p:last-child{font-size:12px}.toolkit-button{font-size:11px}.intro h1{font-size:49px}.intro>p{font-size:14px}.workbench{padding:23px 19px 20px}.welcome-card h2{font-size:33px}.question-card h2{font-size:26px}.choice{font-size:13px;padding:12px}.deck-picker{padding:19px}.mastery-row{grid-template-columns:82px 1fr 34px}.concept-map{padding:16px 12px}.map-node{font-size:10px}.map-node span{font-size:9px}footer{font-size:8px}}
@media(prefers-reduced-motion:reduce){.progress-track span{transition:none}}
/* Source order follows the mobile reading and keyboard order: lesson, learning, setup. */
.layout{grid-template-areas:"intro workbench" "picker workbench";grid-template-rows:auto 1fr;row-gap:26px}
.intro{grid-area:intro}
.workbench{grid-area:workbench}
.deck-picker{grid-area:picker;margin-top:0}
@media(max-width:800px){.layout{grid-template-areas:"intro" "workbench" "picker";grid-template-rows:none;row-gap:26px}}
