
:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#203b30;background:#f6f4eb;font-synthesis:none;--orange:#d96020;--green:#214d3d;--muted:#64766b;--line:#dce1d5}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fffdf6;color:var(--green);min-height:44px;padding:10px 15px;transition:background .2s,transform .2s}button:hover{background:#edf0e4}button:focus-visible,a:focus-visible{outline:3px solid #e89a4b;outline-offset:3px}button:disabled{opacity:.5;cursor:default}header{height:78px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-weight:800;font-size:22px;letter-spacing:2px;color:var(--green)}.brand:before{content:'◉';color:var(--orange);font-size:30px;margin-right:12px}.brand span{display:inline-block;font-weight:400;font-size:13px;letter-spacing:1px;margin-left:20px;color:var(--muted)}.headtools{display:flex;gap:8px}.headtools button{font-size:13px;background:transparent}main{max-width:1640px;margin:auto;padding:24px 4vw 14px}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#68836f;font-weight:700}h1{font-size:32px;letter-spacing:1px;margin:8px 0 0;font-weight:700}.grade{border:1px solid #d3dacb;border-radius:30px;font-size:13px;padding:10px 18px;color:#56705b}#breadcrumbs{display:flex;gap:10px;margin-bottom:18px;align-items:center}#breadcrumbs button{border:0;background:transparent;padding:7px 16px;color:#6b7a70;border-radius:30px;min-height:39px;font-size:14px}#breadcrumbs button.active{background:var(--green);color:#fff}#breadcrumbs .arrow{color:#a5afa3}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:30px}.viewer{min-height:490px;height:calc(100vh - 330px);max-height:800px;position:relative;overflow:hidden;border:1px solid #d7ded1;border-radius:22px;background:radial-gradient(ellipse at 50% 40%,#fbfcf3,#e4ebdc)}#canvas-wrap{position:absolute;inset:0;touch-action:none}canvas{display:block;width:100%;height:100%}.scene-top{position:absolute;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;pointer-events:none;font-size:12px;color:#6c7d6e;gap:15px}.scene-bottom{position:absolute;bottom:20px;left:20px;display:flex;gap:7px}.scene-bottom button{border:1px solid #d5ddce;background:#ffffffc9;backdrop-filter:blur(8px);font-size:12px;padding:7px 12px}.scene-bottom button[aria-pressed=true]{background:#254c3e;color:white}.specimen-id{position:absolute;bottom:32px;right:25px;font-size:11px;letter-spacing:2px;color:#80917f;pointer-events:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#eff2e8e8;font-size:16px;z-index:4}#loading[hidden]{display:none}#hotspots{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid #dbe1cf;background:#fffffff0;border-radius:25px;padding:6px 13px;min-height:36px;font-size:13px;box-shadow:0 4px 15px #203b3010;white-space:nowrap}.hotspot:before{content:'+';color:var(--orange);font-weight:700;margin-right:7px}.hotspot.selected{color:#fff;background:var(--green);border-color:var(--green)}aside{padding:12px 0;display:flex;flex-direction:column;align-items:stretch}h2{font-size:26px;line-height:1.4;margin:12px 0}aside>p{font-size:15px;line-height:1.85;color:#637164;margin:0 0 15px}#choices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:6px 0 16px}#choices.tissues{grid-template-columns:1fr 1fr}#choices button{font-size:14px;padding:9px 6px}#choices button.selected{background:#e9eee0;border:1px solid #648162;font-weight:700}.fact{background:#fffdf5;border-left:3px solid #dba75f;border-radius:0 12px 12px 0;padding:15px 17px;font-size:14px;line-height:1.8;margin-bottom:18px}.fact strong{font-size:17px;display:block;margin-bottom:5px}.fact small{display:block;color:#758274;margin-top:7px;line-height:1.65}.primary{background:var(--orange);color:white;border-color:var(--orange);font-weight:700;min-height:48px}.primary:hover{background:#bb4c15}.back{border:0;background:transparent;margin-top:7px;color:#6b7a70;font-size:13px}#feedback{font-size:13px;color:#557545;line-height:1.6;margin-top:8px}.relation{margin-top:20px;display:flex;gap:24px;align-items:center;padding:17px 20px;background:#e9ecdf;border-radius:14px;font-size:14px}.relation>span{font-size:12px;color:#768571;white-space:nowrap;letter-spacing:1px}.relation>div{flex:1}.relation button{font-size:13px;white-space:nowrap;background:transparent;border:0}.sources{font-size:12px;color:#788276;line-height:1.8;margin-top:16px}.sources summary{cursor:pointer}.sources p{max-width:1150px}.sources a{color:var(--green)}dialog{border:1px solid #e1e4d6;border-radius:22px;background:#faf9f1;color:#203b30;max-width:560px;width:calc(100% - 32px);padding:32px;box-shadow:0 20px 80px #17302540}dialog::backdrop{background:#142c2259;backdrop-filter:blur(5px)}dialog p,dialog li{font-size:15px;line-height:1.9}dialog li{margin:10px 0}.close{float:right;border:0;font-size:12px;background:transparent}.quiz-option{display:block;width:100%;margin:10px 0;text-align:left}#quiz-feedback{min-height:60px;color:#44673a}#quiz-options button.correct{background:#dcebcf;border-color:#5f8652}#quiz-options button.wrong{background:#f6e4d4;border-color:#c58863}@media(min-width:1550px){.workspace{grid-template-columns:minmax(0,1fr) 360px}aside{padding:20px 8px}h2{font-size:30px}.fact,aside>p{font-size:16px}}@media(max-width:950px){.workspace{grid-template-columns:minmax(0,1fr) 280px;gap:18px}main{padding:20px 22px}.brand span{display:none}header{padding:0 22px}h1{font-size:28px}.viewer{min-height:470px}.specimen-id{display:none}aside>p{font-size:14px}.fact{padding:12px}.scene-top{left:18px;right:18px}}@media(max-width:700px){header{height:64px;padding:0 16px}.brand{font-size:17px}.brand:before{font-size:25px;margin-right:6px}.headtools{gap:3px}.headtools button{font-size:11px;min-height:40px;padding:8px}.headtools #help{display:none}main{padding:20px 14px}.heading{align-items:start}.grade{display:none}h1{font-size:25px}.eyebrow{font-size:11px}#breadcrumbs{gap:2px;margin-bottom:13px}#breadcrumbs button{padding:7px 10px;font-size:13px}.workspace{display:flex;flex-direction:column;gap:12px}.viewer{height:440px;min-height:0}.scene-top{font-size:10px;top:16px}.scene-bottom{bottom:12px;left:12px;gap:5px}.scene-bottom button{font-size:11px;padding:7px 9px}aside{padding:8px 4px}h2{font-size:24px;margin:8px 0}.fact{margin-bottom:12px}#choices{grid-template-columns:repeat(6,1fr)}#choices.tissues{grid-template-columns:repeat(3,1fr)}#choices button{font-size:12px}.relation{display:block;font-size:13px;line-height:1.8;margin-top:8px}.relation>span{display:block;margin-bottom:6px}.relation button{margin-top:6px;padding-left:0}.hotspot{font-size:12px;padding:6px 10px}.sources{font-size:11px}}

/* Classroom revision: keep readable controls; compact structure rather than scaling all text. */
body{font-size:18px}header{height:60px;padding:0 2.4vw}.brand{font-size:24px}.brand span{font-size:16px}.headtools button{font-size:16px;min-height:42px;padding:7px 12px}main{max-width:1800px;padding:12px 2.4vw}.heading{margin-bottom:8px}h1{font-size:30px;margin:0}.heading .eyebrow{display:none}.grade{font-size:16px;padding:7px 14px}#breadcrumbs{gap:8px;margin-bottom:10px}#breadcrumbs button{font-size:19px;min-height:44px;padding:7px 17px}.workspace{grid-template-columns:minmax(0,1fr) 365px;gap:22px}.viewer{height:max(470px,calc(100dvh - 245px));min-height:470px;max-height:1100px;border-radius:17px}.scene-top{top:14px;left:18px;right:18px;font-size:15px}.scene-top #mode-note{font-size:14px}.scene-bottom{bottom:14px;left:14px;right:14px;gap:6px;flex-wrap:wrap}.scene-bottom button{font-size:16px;min-height:44px;padding:7px 12px}.specimen-id{display:none}aside{padding:0;gap:0}.eyebrow{font-size:15px}h2{font-size:26px;line-height:1.4;margin:6px 0 8px}aside>p{font-size:18px;line-height:1.6;margin:0 0 10px}#choices{gap:6px;margin:3px 0 11px}#choices button{font-size:19px;min-height:44px;padding:6px}#choices.tissues button{font-size:18px}.fact{padding:10px 13px;font-size:18px;line-height:1.55;margin-bottom:12px}.fact strong{font-size:20px;margin-bottom:5px}.fact small{font-size:15px;line-height:1.5;margin-top:7px}.primary{font-size:19px;min-height:46px;padding:9px}.back{font-size:17px;min-height:40px;margin:2px 0 0;padding:6px}#feedback{font-size:17px;line-height:1.5;margin-top:5px}#feedback:empty{display:none}.relation{font-size:18px;margin-top:10px;padding:9px 15px;gap:14px}.relation>span{display:none}.relation button{font-size:17px;min-height:42px;padding:6px}.sources{font-size:16px;margin-top:8px}.hotspot{font-size:18px;min-height:42px;padding:7px 12px}.hotspot:before{display:none}#leader-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#leader-lines line{stroke:#658269;stroke-width:1.4;opacity:.72}dialog{max-width:650px;padding:26px}dialog p,dialog li{font-size:19px;line-height:1.65}.close{font-size:17px}#quiz-feedback{font-size:20px}.quiz-option{font-size:20px}
@media(min-width:1101px) and (max-height:820px){header{height:54px}.heading{display:none}main{padding-top:9px}.viewer{height:max(480px,calc(100dvh - 183px));min-height:480px}.relation{margin-top:7px}.sources{margin-top:5px}aside>p{line-height:1.45}.fact{line-height:1.45}.fact small{font-size:15px}.workspace{grid-template-columns:minmax(0,1fr) 375px}}
@media(max-width:1100px){header{padding:0 18px}.brand span{display:none}main{padding:12px 18px}.workspace{grid-template-columns:minmax(0,1fr) 330px;gap:16px}.viewer{height:560px;min-height:560px}h2{font-size:24px}#breadcrumbs button{font-size:18px}.scene-top #mode-note{display:none}.scene-bottom{gap:5px}.scene-bottom button{padding:6px 9px}.relation{align-items:flex-start;line-height:1.5}.hotspot{font-size:17px}.fact{font-size:18px}aside>p{font-size:18px}}
@media(max-width:800px){header{height:auto;min-height:60px;flex-wrap:wrap;gap:6px;padding:9px 14px}.brand{font-size:22px}.brand:before{font-size:25px}.headtools #help{display:inline-block}.headtools button{font-size:15px;min-height:42px;padding:7px 10px}main{padding:12px}.heading{display:none}#breadcrumbs{gap:2px;flex-wrap:wrap}#breadcrumbs button{font-size:17px;padding:7px 10px;min-height:44px}.workspace{display:flex;flex-direction:column;gap:14px}.viewer{height:440px;min-height:440px}.scene-top{font-size:15px;top:13px}.scene-bottom{left:10px;right:10px;bottom:10px;gap:5px}.scene-bottom button{font-size:15px;padding:7px 8px}.hotspot{font-size:16px;min-height:42px;padding:6px 9px}aside{padding:0 3px}h2{font-size:25px}#choices{grid-template-columns:repeat(3,1fr)}#choices.tissues{grid-template-columns:repeat(2,1fr)}#choices button{font-size:19px}#intro{font-size:19px}.fact{font-size:19px}.fact small{font-size:16px}.relation{display:block;font-size:18px;margin-top:10px}.relation button{margin:5px 0 0;font-size:18px}.sources{font-size:15px}.grade{display:none}}
@media(max-width:390px){.viewer{height:420px;min-height:420px}.scene-bottom button{padding:7px 6px}#breadcrumbs button{font-size:16px;padding:7px 8px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
@media(min-width:1101px){.viewer{height:max(480px,calc(100dvh - 300px));min-height:480px}.relation{padding:6px 12px}.sources{line-height:1.5}}
@media(min-width:1101px) and (max-height:820px){.viewer{height:max(480px,calc(100dvh - 225px));min-height:480px}}
.focus-mode .heading,.focus-mode .sources{display:none}@media(min-width:1101px){.focus-mode .viewer{height:max(480px,calc(100dvh - 190px))}}
.dark-stage .viewer{background:radial-gradient(ellipse at 50% 40%,#253b3f,#101e25);border-color:#405660}.dark-stage .scene-top{color:#d4e8e2}.dark-stage #leader-lines line{stroke:#c0d7cc;opacity:.88}.dark-stage .hotspot{background:#142d36;color:#f3f7ef;border-color:#90b3a6}.dark-stage .hotspot.selected{background:#f0c36d;color:#182b2c;border-color:#fff0c7}.dark-stage .scene-bottom button{background:#203940;color:#f7f8ed;border-color:#6f918d}.dark-stage .scene-bottom button[aria-pressed=true]{background:#e0ecce;color:#17322c}.dark-stage #contrast{background:#214d3d;color:white}.dark-stage #loading{background:#14252ff0;color:#e5f1e2}@media(max-width:800px){.headtools{flex-wrap:wrap;gap:4px}.headtools button{font-size:15px}.brand{width:100%}}
@media(min-width:801px) and (max-width:1100px) and (max-height:820px){.heading{display:none}.viewer{height:max(480px,calc(100dvh - 230px));min-height:480px}.relation{padding:6px 12px}.sources{line-height:1.5}}
@media(max-width:420px){.headtools{display:grid;grid-template-columns:1fr 1fr;width:100%}.headtools button{font-size:16px}}

#quiz-feedback[data-result="wrong"]{color:#a4362b}#quiz-feedback[data-result="correct"]{color:#316324}
/* Shared 3D tool reference, adapted to this observation room. */
@media(min-width:801px){#canvas-wrap{right:144px}.camera-tools{position:absolute;right:12px;top:62px;width:120px;display:grid;gap:8px}.camera-tools button{font-size:16px;min-height:46px;padding:8px}.scene-top{right:155px}.gesture-help{position:absolute;right:12px;bottom:16px;z-index:6;max-width:440px}.gesture-help[open]{width:440px}}
.camera-tools button[aria-pressed=true]{background:#214d3d;color:white}.gesture-help{border:1px solid #becabc;border-radius:10px;background:#fafbf3ed;color:#254238;font-size:15px;padding:9px 12px}.gesture-help summary{cursor:pointer;min-height:24px}.gesture-help p{font-size:16px;line-height:1.6;margin:8px 0}.dark-stage .camera-tools button{background:#203940;color:#f7f8ed;border-color:#6f918d}.dark-stage .camera-tools button[aria-pressed=true]{background:#e0ecce;color:#17322c}.dark-stage .gesture-help{background:#20343bed;color:#e8f0e7;border-color:#72928b}.camera-tools button:disabled{opacity:.55;cursor:help}
@media(max-width:800px){.viewer{height:560px;min-height:560px}#canvas-wrap{right:0;bottom:158px}.camera-tools{position:absolute;bottom:65px;left:10px;right:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.camera-tools button{min-height:44px;font-size:15px;padding:6px}.scene-bottom{bottom:10px;right:auto;gap:5px}.scene-bottom button{font-size:14px;padding:7px 8px}.gesture-help{position:absolute;right:10px;bottom:10px;z-index:6;font-size:14px;max-width:calc(100% - 20px);padding:10px 8px}.gesture-help[open]{width:calc(100% - 20px);bottom:62px}.gesture-help p{font-size:16px}.scene-top{right:14px}}
