:root{--ink:#17243b;--muted:#596b83;--blue:#1c55bc;--line:#dae2ee;--surface:#f3f6fb;--orange:#bc5b21}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:17px;line-height:1.9}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #e59b3b;outline-offset:4px}header{height:76px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:sticky;top:0;z-index:10;font-size:14px}.brand{font-size:19px;letter-spacing:.13em;color:var(--ink);font-weight:800}.brand span{color:var(--muted);font-size:13px}.course-name{color:var(--muted)}.page{max-width:1420px;margin:auto;display:grid;grid-template-columns:255px minmax(0,1fr);gap:72px;padding:0 55px}aside{position:sticky;top:110px;height:calc(100vh - 135px);padding-top:32px;overflow:auto}aside h2{font-size:25px;line-height:1.5;margin:16px 0}.eyebrow,.section-label{font-size:12px;font-weight:700;letter-spacing:.13em;color:var(--blue)}.aside-note{color:var(--muted);font-size:14px;line-height:1.7;margin-bottom:32px}nav{display:flex;flex-direction:column;gap:4px}nav a{font-size:13px;display:flex;gap:14px;align-items:center;padding:9px 12px;border-left:2px solid transparent;color:var(--muted)}nav a span{font-size:14px}nav a.active{border-left-color:var(--blue);background:#edf3ff;color:var(--blue)}.reading{margin:30px 12px;font-size:12px;color:var(--muted)}.reading>div{height:3px;background:var(--line);margin-top:8px}.reading i{display:block;width:0;height:3px;background:var(--blue)}main{min-width:0;max-width:930px;padding-top:65px}h1{font-size:clamp(38px,4.2vw,64px);line-height:1.22;letter-spacing:-.045em;margin:20px 0 26px;font-weight:750}h1 span{color:var(--blue)}h2{font-size:34px;line-height:1.4;letter-spacing:-.025em;margin:18px 0 26px}h3{font-size:21px;line-height:1.5;margin:28px 0 12px}p{margin:16px 0}.lead{font-size:19px;color:var(--muted);line-height:1.9}.meta{display:flex;flex-wrap:wrap;gap:10px 24px;color:var(--muted);font-size:13px;margin:26px 0}.opening{border-left:3px solid var(--blue);background:var(--surface);padding:23px 28px;margin:35px 0 22px}.opening p{margin-bottom:0}.goals{display:flex;gap:20px;font-size:14px;font-weight:600;color:var(--blue)}.goals span:before{content:'✓';margin-right:7px}section{padding-bottom:68px;margin-bottom:68px;border-bottom:1px solid var(--line)}.lab{border:1px solid #cfdaeb;border-radius:12px;overflow:hidden;margin:32px 0;background:#f7f9fc}.lab-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line)}.lab h3{margin:5px 0 0;font-size:20px}.lab-note{font-size:12px;color:var(--muted)}.mesh-layout{display:grid;grid-template-columns:1.65fr 1fr;align-items:center}.lab svg{display:block;width:100%;height:auto}.lab-controls{padding:24px;font-size:14px}.lab-controls label{display:flex;gap:8px;margin:10px 0;align-items:center}.lab-controls p{color:var(--muted);font-size:14px}.takeaway{padding:20px 25px;border-left:3px solid var(--orange);background:#fff6ed;margin:26px 0}.takeaway b{color:#995120;font-size:14px}.takeaway p{margin:5px 0}.concepts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.concepts article{padding-top:18px;border-top:2px solid var(--line)}.concepts p{font-size:15px;color:var(--muted);line-height:1.8}details{padding:18px 22px;background:var(--surface);margin:22px 0;border-radius:6px}summary{cursor:pointer;font-size:16px;font-weight:600}details p{font-size:16px}footer{color:var(--muted);padding-bottom:55px;font-size:13px}.skip{position:absolute;left:12px;top:-100px;background:#fff;padding:12px;z-index:99}.skip:focus{top:12px}.diagram{padding:22px}.controls-row{display:flex;gap:14px;flex-wrap:wrap;padding:18px 24px;align-items:center}.controls-row label{font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.controls-row input[type=range]{width:145px;accent-color:var(--blue)}button,.button{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:6px;padding:9px 17px;font-size:14px;line-height:1.5;display:inline-block}.secondary{background:#fff;color:var(--blue)}button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.readout{padding:16px 24px;background:#edf3ff;font-size:15px;font-variant-numeric:tabular-nums}.formula{background:#f3f6fb;border-radius:5px;padding:20px 25px;font-family:ui-monospace,monospace;font-size:15px;overflow:auto}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px;margin:22px 0}th,td{text-align:left;padding:14px 12px;vertical-align:top;border-bottom:1px solid var(--line)}th{background:var(--surface);font-weight:650}code{font-size:.86em;background:#edf2f8;padding:2px 6px;border-radius:3px;overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#14253f;color:#e2edff;padding:25px;font-size:14px;border-radius:8px;line-height:1.8}pre code{padding:0;background:transparent;color:inherit}ul,ol{padding-left:24px}.steps li{margin:15px 0}.small{font-size:14px;color:var(--muted)}.quiz-q{border:1px solid var(--line);padding:22px;margin:18px 0;border-radius:8px}.quiz-q h3{margin:0 0 15px;font-size:18px}.answers{display:grid;gap:9px}.answer{text-align:left;background:#fff;color:var(--ink);border-color:var(--line);padding:12px 16px}.answer.chosen{border-color:var(--blue);background:#edf3ff}.answer.correct{border-color:#238567;background:#e9f5ef}.feedback{font-size:15px;line-height:1.8;margin-bottom:0}.feedback:empty{display:none}.note-input{width:100%;min-height:190px;resize:vertical;padding:18px;border:1px solid #b9c9de;border-radius:7px;color:var(--ink);line-height:1.8;font-size:16px}.route{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:22px 0}.route div{background:var(--surface);padding:15px 9px;font-size:13px;text-align:center;line-height:1.8}.route .current{background:#e9f0ff;color:var(--blue)}.route b{display:block;font-size:15px}.closing{font-size:22px;font-weight:600}.source-list{font-size:14px;line-height:1.9}.print-only{display:none}@media(max-width:1100px){.page{gap:35px;padding:0 28px;grid-template-columns:210px minmax(0,1fr)}.mesh-layout{grid-template-columns:1fr}.lab-controls{padding:15px 24px;display:flex;gap:15px;flex-wrap:wrap}.lab-controls p{width:100%}.concepts{gap:15px}}@media(max-width:760px){header{height:64px;padding:0 20px}.course-name{display:none}.page{display:block;padding:0 22px}aside{position:static;height:auto;padding:25px 0 0}aside h2,.aside-note,.reading{display:none}nav{flex-direction:row;overflow-x:auto;gap:0;padding:12px 0}nav a{white-space:nowrap;border-left:0;border-bottom:2px solid transparent;padding:9px}nav a.active{border-bottom-color:var(--blue)}nav a span{font-size:13px}.page main{padding-top:30px}h1{font-size:42px}h2{font-size:28px}.lead{font-size:17px}.goals{gap:10px;flex-wrap:wrap;font-size:13px}.opening{padding:18px 20px}section{padding-bottom:42px;margin-bottom:42px}.concepts{grid-template-columns:1fr}.concepts article{padding-top:14px}.lab-heading{padding:18px;align-items:flex-start}.lab-note{max-width:90px;line-height:1.5}.route{grid-template-columns:repeat(2,1fr)}.controls-row{padding:18px}.diagram{padding:8px}body{font-size:16px}.brand{font-size:16px}.brand span{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,aside,.controls-row,button,.lab-controls{display:none}.page{display:block;padding:0}main{max-width:none;padding:0}body{font-size:12pt}.lab,details{break-inside:avoid}h1{font-size:32pt}section{margin:20px 0;padding:20px 0}.print-only{display:block}}

[hidden]{display:none!important}.diagram{overflow-x:auto}.diagram>svg{min-width:520px}.mesh-layout>svg{min-width:0}@media(max-width:760px){.diagram>svg{min-width:540px}.diagram:before{content:"图示可左右滑动查看";display:block;font-size:12px;color:var(--muted);padding:4px 12px 12px}}

/* Guided practical work */
.mission{border:1px solid #dce4ee;border-radius:14px;padding:26px;margin:22px 0;background:#fff}.mission h3{margin:10px 0}.mission p{margin:12px 0}.prediction{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0}.prediction label{display:grid;gap:8px;font-size:14px}.prediction input{width:180px;max-width:100%;padding:10px;border:1px solid #a9b9ca;border-radius:6px;font:inherit;color:#142d49}.mission button,.mission-actions button{margin:5px 0}.mission-feedback{font-size:14px;color:#425b77;min-height:1.6em}.mission-feedback.success{color:#176443}.mission-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.evidence{background:#f3f6fa;padding:16px 16px 16px 36px;border-radius:8px;font-size:14px}.answer-label{display:block;margin:16px 0 8px}.mission select{display:block;width:100%;padding:12px;font:inherit;border:1px solid #a9b9ca;border-radius:6px;margin-bottom:14px;background:white;color:#142d49}.local-lab{margin:46px 0 24px;padding-top:32px;border-top:2px solid #dce4ee}.download-link{display:inline-block;padding:12px 18px;background:#174f8e;color:white!important;border-radius:8px;margin:6px 12px 6px 0;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #e39036;outline-offset:4px}.hub-main{max-width:1080px;margin:0 auto;padding:70px 28px}.hub-main section{scroll-margin-top:90px}.day-plan{border-top:1px solid #dce4ee;padding:28px 0}.day-plan h3{margin:0 0 14px}.status-tag{display:inline-block;font-size:12px;background:#eaf1fb;border-radius:4px;padding:4px 8px;vertical-align:middle;margin-left:12px}.hub-main .intro{margin-bottom:30px;padding-bottom:30px}.hub-main .table-wrap{margin:24px 0}.hub-main footer{margin-top:40px}@media(max-width:600px){.mission{padding:18px}.hub-main{padding:36px 20px}.prediction{gap:12px}.prediction input{width:140px}.mission select{font-size:14px}.mission-actions button{max-width:100%;white-space:normal}}

.route>a{display:block;border:1px solid #dce4ee;padding:14px 12px;border-radius:8px;color:#425b77;text-decoration:none;font-size:14px}.route>a:hover{background:#eaf1fb}.route>a b{display:block;color:#174f8e;margin-bottom:6px}.hub-main li{margin-bottom:14px}.day-plan{scroll-margin-top:90px}

.workflow-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:28px 0}.workflow-flow li{border:1px solid #dce4ee;border-top:3px solid #3866ae;border-radius:8px;padding:20px 16px;background:#f5f8fc}.workflow-flow b,.workflow-flow span,.workflow-flow small{display:block}.workflow-flow span{font-size:14px;margin:12px 0;color:#174f8e}.workflow-flow small{font-size:14px;line-height:1.8;color:#53647c}.template-card{padding:22px;border:1px solid #dce4ee;border-radius:10px;margin:18px 0}.template-card h3{margin:0 0 12px}.template-card a{overflow-wrap:anywhere}@media(max-width:760px){.workflow-flow{grid-template-columns:1fr}}

pre.worksheet{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:14px;background:#f5f8fc;color:#293e59;line-height:1.9;padding:20px}

#render-lab input[type=range]{display:block;width:100%;margin:16px 0 24px}#render-lab label{display:block;font-weight:600}#render-lab .mission svg{max-height:300px}.template-card .eyebrow{line-height:1.8;letter-spacing:.04em}section[id],h2[id],article[id]{scroll-margin-top:100px}

.worked-example{margin:24px 0;padding:22px 24px;background:#f0f6ff;border-left:4px solid #3165ad;border-radius:8px;line-height:1.9}.worked-example p:last-child{margin-bottom:0}.formula{overflow-x:auto;line-height:1.9}details>summary{line-height:1.7}td{overflow-wrap:anywhere}
