@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:#152e3b;background:#f4f7f8;font-synthesis:none;--ink:#102936;--muted:#657784;--teal:#087e73;--line:#dce5e9}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e5a747;outline-offset:3px}button{border:0}a{color:var(--teal)}button:disabled{opacity:.35;cursor:default}.topbar{height:76px;background:var(--ink);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:20px}.brand{color:white;text-decoration:none;display:flex;align-items:center;gap:12px;font:800 24px Manrope,sans-serif;letter-spacing:-1px}.brandmark{font-size:40px;font-weight:400;color:#66dfc5;line-height:1}.brand-light{font-weight:400;color:#b9cfdb;margin-left:4px}.course{display:flex;align-items:center;gap:14px;font-size:14px;color:#b6cbd6}.course-pill{border:1px solid #536c77;border-radius:5px;padding:5px 8px;color:#e7f4f8;letter-spacing:1px;font-size:12px}.workspace{display:grid;grid-template-columns:266px 1fr;min-height:calc(100vh - 76px)}.sidebar{border-right:1px solid var(--line);background:white;padding:26px 18px 12px;display:flex;flex-direction:column;max-height:calc(100vh - 76px);position:sticky;top:0}.side-heading{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.5px;color:var(--muted);margin:0}.count{font-size:12px;color:var(--muted)}.search{display:flex;align-items:center;gap:8px;background:#f3f6f8;border:1px solid #dce5e9;border-radius:8px;padding:0 10px;margin:18px 0}.search>span{font-size:26px;color:#74858e}.search input{width:100%;min-width:0;background:none;border:0;padding:11px 0;font-size:14px;color:var(--ink)}.units{display:grid;gap:5px;margin-bottom:17px}.unit-button{background:transparent;text-align:left;display:flex;align-items:center;gap:10px;padding:9px;border-radius:7px;color:#657783;font-size:14px}.unit-number{font-size:12px;width:27px;height:25px;border-radius:5px;background:#edf2f5;display:grid;place-items:center;font-weight:700;flex-shrink:0}.unit-button.active{background:#e3f3ef;color:#086f66;font-weight:700}.unit-button.active .unit-number{background:#087e73;color:white}.topic-list{overflow:auto;flex:1;border-top:1px solid var(--line);padding-top:12px;min-height:160px;scrollbar-width:thin}.topic-button{display:flex;width:100%;align-items:flex-start;text-align:left;gap:9px;border-left:2px solid transparent;background:transparent;padding:10px 8px;margin-bottom:2px;color:#526774;line-height:1.4;font-size:14px;border-radius:0 6px 6px 0}.topic-button .topic-index{font-size:12px;color:#91a0a9;min-width:20px;padding-top:2px}.topic-button.active{border-color:#119985;background:#eff8f5;color:#0a615b;font-weight:700}.side-foot{color:#95a4ac;font-size:12px;line-height:1.6;border-top:1px solid var(--line);padding:12px 8px 0;margin-top:10px}main{padding:26px 28px 0;min-width:0}.lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}h1{font:800 clamp(22px,2.2vw,32px)/1.25 Manrope,sans-serif;letter-spacing:-.8px;margin:9px 0 0}h2{font:800 24px/1.3 Manrope,sans-serif}h3{font:700 17px/1.4 Manrope,sans-serif}.outline,.primary,.glass{padding:10px 15px;border-radius:7px;min-height:42px;font-size:14px;font-weight:600;white-space:nowrap}.outline{background:white;color:#365360;border:1px solid #cbd9df}.outline:hover{border-color:#087e73;color:#087e73}.primary{background:#087e73;color:white}.primary:hover{background:#066c63}.primary[aria-pressed=true]{background:#123f48}.learning-grid{display:grid;grid-template-columns:minmax(350px,1fr) 345px;gap:22px;align-items:start}.explorer{min-width:0}.stage{position:relative;aspect-ratio:1.25;min-height:360px;background:radial-gradient(ellipse at 50% 40%,#163d4d 0,#0c2533 55%,#071b27 100%);border-radius:13px;overflow:hidden;border:1px solid #173947;box-shadow:0 8px 25px #1229360c}.stage-top{position:absolute;top:18px;left:20px;right:18px;z-index:2;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.stage-top>*{pointer-events:auto}.live-label{font-size:11px;letter-spacing:2px;font-weight:700;color:#98c1cc}.glass{background:#ffffff0d;border:1px solid #ffffff24;color:#d7e9ed;font-size:12px;min-height:34px;padding:7px 10px}.stage-caption{position:absolute;bottom:22px;left:24px;right:20px;pointer-events:none;display:flex;flex-direction:column;gap:6px;color:white;text-shadow:0 1px 6px #00121d}.stage-caption strong{font:600 17px Manrope,sans-serif}.stage-caption span{font-size:12px;color:#a3c2cb}.loading{position:absolute;top:48%;width:100%;text-align:center;color:#c1dbe1;font-size:14px;pointer-events:none}#canvas-host{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.model-controls{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 22px;align-items:center}.segmented{display:flex;background:#e6edf0;border-radius:6px;padding:3px;gap:3px}.segmented[hidden]{display:none}.segmented button{border-radius:4px;padding:7px 10px;background:transparent;color:#647c88;font-size:13px}.segmented button[aria-pressed=true]{background:white;color:#163b47;box-shadow:0 1px 4px #183d4620}.parts-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:0 0 12px}.parts-heading>span:last-child{font-size:12px;color:#80929c}.parts{display:flex;flex-wrap:wrap;gap:7px}.parts button{background:white;color:#455f6c;border:1px solid #d6e1e6;border-radius:30px;padding:8px 12px;font-size:14px}.parts button.active{background:#dcf3ed;border-color:#6ebbae;color:#056d62}.selection{display:flex;gap:14px;margin-top:18px;padding:18px;background:#eaf1f4;border-radius:8px;min-height:102px}.selection-icon{font-size:26px;color:#07877b}.selection strong{font-size:15px}.selection p{font-size:14px;line-height:1.6;color:#54707e;margin:5px 0 0}.animation-note{padding:14px 16px;background:#fff4dd;border-left:3px solid #d99d37;font-size:14px;line-height:1.6;margin-top:12px}.lesson-panel{background:white;border:1px solid var(--line);border-radius:11px;overflow:hidden}.tabs{display:flex;gap:12px;padding:0 22px;border-bottom:1px solid var(--line)}.tabs button{background:none;border-bottom:3px solid transparent;padding:17px 2px 14px;color:#778a96;font-size:14px;font-weight:600;flex:1}.tabs button[aria-selected=true]{color:#087e73;border-color:#087e73}#lesson-content{padding:24px;min-height:470px;line-height:1.7;font-size:16px}#lesson-content .intro{margin:0 0 22px;color:#425d6c}.section-label{color:#92a3ad;font-size:11px;letter-spacing:1.7px;font-weight:700;margin:20px 0 12px}.keypoint{margin:0 0 15px;padding-left:16px;border-left:2px solid #b9e5d9;font-size:15px;color:#496371}.keypoint strong{color:#153c49}.disease-box{background:#fff1ed;border-radius:7px;padding:15px;font-size:14px;line-height:1.6;color:#8c4d3e}.source-link{font-size:13px;display:inline-block;line-height:1.4;margin:6px 8px 0 0}.step{display:flex;gap:12px;margin-bottom:20px}.step-number{background:#e5f4ef;color:#067568;border-radius:50%;width:27px;height:27px;flex-shrink:0;display:grid;place-items:center;font-size:13px;font-weight:700;margin-top:2px}.step p{margin:0;font-size:15px;line-height:1.65;color:#435e6b}.step.current{background:#eaf7f2;margin-left:-10px;margin-right:-10px;padding:10px;border-radius:7px}.quiz-question{font:700 18px/1.5 Manrope,sans-serif;margin:0 0 18px}.quiz-option{display:flex;text-align:left;width:100%;background:#f6f8fa;border:1px solid #dee7eb;border-radius:7px;padding:13px;margin:9px 0;color:#375461;line-height:1.5;font-size:15px}.quiz-option.correct{background:#e4f5ed;border-color:#4aaa8b;color:#08705b}.quiz-option.wrong{background:#fff1ec;border-color:#d9947d;color:#914d37}.feedback{font-size:14px;line-height:1.6;margin:16px 0;padding:14px;background:#eaf5f1;border-radius:7px}.lesson-nav{border-top:1px solid var(--line);padding:16px;display:flex;justify-content:space-between;gap:10px}.lesson-nav button{font-size:12px;padding:8px 10px;min-height:36px}.page-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 0;color:#8a9ca6;font-size:12px}.text-button{background:transparent;color:#627e8a;font-size:12px;text-decoration:underline}.mobile-menu{display:none}.model-error{position:absolute;left:25px;right:25px;top:40%;font-size:14px;line-height:1.7;color:#d4e5e9;text-align:center}dialog{max-width:660px;width:calc(100% - 40px);border:0;border-radius:14px;padding:32px;color:#284554;box-shadow:0 20px 100px #00141b55}dialog::backdrop{background:#00141bb3}dialog p{line-height:1.65}dialog .small{font-size:13px;color:#607c89}.dialog-close{position:absolute;right:15px;top:10px;background:transparent;font-size:30px;color:#647d89}#source-list{display:grid;gap:9px;font-size:14px}.no-results{padding:20px 8px;font-size:14px;color:#6d828d}
@media(min-width:1600px){main{padding:34px 40px}.learning-grid{grid-template-columns:minmax(600px,1fr) 390px;gap:28px}.stage{aspect-ratio:1.45;max-height:660px}}
@media(max-width:1200px){.workspace{grid-template-columns:225px 1fr}.learning-grid{grid-template-columns:minmax(280px,1fr) 300px;gap:16px}main{padding:22px 20px}.stage{aspect-ratio:.94;min-height:380px}#lesson-content{padding:20px}.topbar{padding:0 22px}.course{font-size:12px}.sidebar{padding-left:12px;padding-right:12px}}
@media(max-width:980px){.workspace{grid-template-columns:210px 1fr}.learning-grid{grid-template-columns:1fr}.stage{aspect-ratio:1.35;min-height:340px}.lesson-panel{margin-top:4px}#lesson-content{min-height:0}.lesson-heading{margin-bottom:20px}h1{font-size:25px}.course>span:last-child{display:none}}
@media(max-width:650px){.topbar{height:66px;padding:0 16px}.brand{font-size:21px}.brandmark{font-size:34px}.course{display:none}.mobile-menu{display:block;padding:9px 12px;border:1px solid #57707c;border-radius:6px;background:transparent;color:#e3f2f5;font-size:14px}.workspace{display:block}.sidebar{display:none;position:relative;max-height:65vh;border-bottom:1px solid var(--line)}.sidebar.open{display:flex}.units{grid-template-columns:1fr 1fr;gap:3px}.unit-button{padding:7px;font-size:13px}.side-foot{display:none}.topic-list{max-height:230px}.side-heading{margin-bottom:0}.search{margin:12px 0}main{padding:22px 14px 0}.lesson-heading{align-items:flex-start;gap:9px}h1{font-size:23px;margin-top:8px}.lesson-heading .outline{padding:8px 10px;min-height:36px;font-size:12px}.eyebrow{font-size:11px;letter-spacing:1.2px}.stage{aspect-ratio:1;min-height:320px;border-radius:10px}.stage-caption{left:17px;bottom:18px}.stage-caption span{font-size:11px;max-width:260px;line-height:1.5}.stage-top{left:16px;top:14px}.model-controls{gap:7px;margin-bottom:20px}.model-controls>.primary,.model-controls>.outline{font-size:13px;padding:9px 12px}.parts-heading{align-items:flex-start;gap:8px}.parts-heading>span:last-child{font-size:11px;max-width:145px;text-align:right}.parts button{font-size:13px;padding:8px 11px}.selection{padding:15px}.tabs{padding:0 16px}#lesson-content{padding:22px}.page-footer{align-items:flex-start;line-height:1.5;gap:14px}.page-footer>span{max-width:230px}.page-footer button{white-space:nowrap}dialog{padding:26px}.lesson-heading>div{min-width:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* In-workspace mechanism route. Sidebar and notes are supplied by the parent. */
.embedded-mechanism{background:#edf2ef;overflow:auto}.embedded-mechanism .topbar,.embedded-mechanism .sidebar,.embedded-mechanism .lesson-heading,.embedded-mechanism .lesson-panel,.embedded-mechanism .page-footer,.embedded-mechanism #full-atlas-link,.embedded-mechanism #bone-mode,.embedded-mechanism #bone-credit,.embedded-mechanism #detailed-heart-link{display:none!important}.embedded-mechanism .workspace{display:block;height:auto;min-height:100dvh}.embedded-mechanism main{padding:12px;width:100%;max-width:none;overflow:visible}.embedded-mechanism .learning-grid{display:block}.embedded-mechanism .explorer{width:100%}.embedded-mechanism .stage{height:max(240px,calc(100dvh - 225px));min-height:240px}.embedded-mechanism .model-controls{flex-wrap:wrap}.embedded-mechanism .parts{max-height:80px;overflow:auto}.embedded-mechanism .selection{padding:10px;margin-top:8px}.embedded-mechanism .animation-note{margin:8px 0}.embedded-mechanism .stage-caption{pointer-events:none}@media(max-width:600px){.embedded-mechanism main{padding:6px}.embedded-mechanism .stage{height:235px;min-height:235px}.embedded-mechanism .parts-heading{font-size:10px}.embedded-mechanism .model-controls button{font-size:11px;padding:7px}.embedded-mechanism .stage-caption span{display:none}}
