:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#122e60;background:#f8fbff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid #67c9eb;outline-offset:2px}.app-shell{min-height:100vh;display:flex}.sidebar{width:270px;flex:none;position:sticky;top:0;height:100vh;overflow-y:auto;background:linear-gradient(155deg,#fff 52%,#edf5ff);border-right:1px solid #e4eafa;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:800;white-space:nowrap}.brand-mark{font-size:27px;color:#2b75f4;text-shadow:6px 6px #2ed0a8}.sidebar-subtitle{color:#7d90af;font-size:13px;margin:7px 0 28px 39px}.sidebar nav{display:grid;gap:5px}.chapter-button{width:100%;border:0;background:transparent;text-align:left;color:#7184a7;padding:11px 15px;display:grid;gap:3px;border-radius:13px}.chapter-button small{font-size:13px}.chapter-button strong{font-size:15px;line-height:1.35}.chapter-button.active{background:#eaf2ff;color:#2267e7;border-left:4px solid #2e70f4;padding-left:11px}.lesson-list{display:grid;gap:2px;margin:4px 0 9px 12px}.lesson-list button{background:transparent;border:0;color:#58729f;text-align:left;padding:8px 10px;border-radius:8px;font-size:13px;line-height:1.35}.lesson-list button.selected{background:#dbeafe;color:#174cae;font-weight:700}.lesson-list button:hover,.chapter-button:hover{background:#eef5ff}.sidebar-foot{margin:auto 0 0;padding:28px 14px 0;color:#8aa4cf;font-size:19px;line-height:1.5;font-style:italic}.main-content{min-width:0;flex:1;max-width:1400px;margin:0 auto;padding:36px 34px 25px}.mobile-top{display:none}.lesson-header{margin-bottom:24px}.eyeline{display:block;color:#3070db;font-size:14px;font-weight:700;margin-bottom:11px}.lesson-header h1{font-size:37px;line-height:1.23;margin:0 0 16px}.instruction{display:flex;align-items:center;gap:13px;font-size:18px;color:#24426c;margin:0}.instruction>span{width:6px;height:27px;background:#2bc4a5;border-radius:9px;flex:none}.lab-card{background:#fff;border:1px solid #e1eaf8;border-radius:21px;box-shadow:0 12px 36px #2a69ad0b;overflow:hidden}.space-lab{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:16px;padding:16px}.space-viewport{height:min(56vh,520px);min-height:370px;border-radius:15px;position:relative;overflow:hidden;background:radial-gradient(circle at 48% 38%,#f7fbff,#e7f1fe 82%)}.stage-grid{position:absolute;top:58%;right:-25%;bottom:-38%;left:-25%;background-image:linear-gradient(#bcd5f5 1px,transparent 1px),linear-gradient(90deg,#bcd5f5 1px,transparent 1px);background-size:50px 50px;transform:perspective(400px) rotateX(55deg);opacity:.6}.space-viewport canvas{position:relative}.stage-hint{position:absolute;right:14px;bottom:15px;color:#5876a3;background:#ffffffd9;padding:7px 10px;border-radius:18px;font-size:12px}.fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:30px;text-align:center}.lab-details{background:linear-gradient(150deg,#f7fbff,#fff);border:1px solid #e5eefb;border-radius:15px;padding:24px;display:flex;flex-direction:column;justify-content:center}.lab-details h3{margin:0 0 30px;font-size:20px}.lab-details .big-fact{font-size:35px;font-weight:800;color:#246ae6}.lab-details p{font-size:16px;line-height:1.6;margin:10px 0}.lab-details .muted{color:#7286a5;font-size:14px}.lab-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lab-controls.full-width{grid-column:1/-1;border-top:1px solid #e7edf7;padding-top:15px}.lab-controls button,.lesson-pagination button{background:#fff;border:1px solid #d8e6fb;border-radius:10px;color:#1b427e;padding:10px 15px;font-weight:650}.lab-controls button.active,.lab-controls button.primary,.step-track button.active{background:#2b70ee;border-color:#2b70ee;color:#fff}.lab-controls label{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}.lab-controls input[type=checkbox],.check-row input{width:17px;height:17px;accent-color:#2b70ee}.single-lab{padding:22px}.lab-canvas{min-height:340px;background:linear-gradient(145deg,#f1f7ff,#f8fbff);border-radius:15px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.lab-canvas>.lab-controls{justify-content:center}.lab-result{margin:18px 2px 1px;padding:18px 22px;border-radius:13px;background:#e7f8f3;font-size:17px;line-height:1.7;color:#17485f}.lab-result strong{color:#1455bb}.diagram-svg{width:100%;max-height:290px}.diagram-shape{fill:#b8d9ff;fill-opacity:.56;stroke:#2871eb;stroke-width:4}.projection svg{width:min(100%,450px);height:260px}.diagram-caption{color:#58759b}.slider-row{display:block;width:min(100%,590px);color:#36547d}.slider-row span{display:flex;justify-content:space-between;gap:15px;font-size:15px}.slider-row strong{color:#1d66da}.slider-row input{display:block;width:100%;margin-top:9px;accent-color:#2d72ee}.number-line{width:min(100%,680px);height:auto}.equation-display{display:flex;justify-content:center;align-items:center;gap:18px;font-size:clamp(25px,4vw,42px);font-weight:650;text-align:center;min-height:100px;color:#21457c}.equation-display strong{color:#2170ec}.operand{padding:12px 19px;background:#fff;border:1px solid #d6e6fb;border-radius:14px}.sign-note,.substitution,.product-detail{font-size:17px;color:#467092;text-align:center;margin:0}.product-detail{line-height:1.6;overflow-wrap:anywhere}.term-board{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.term{background:#d8eaff;color:#1e61ce;padding:15px 22px;border-radius:12px;font-size:25px;font-weight:700}.term.constant{background:#d5f4e9;color:#168875}.matchstick-row{display:flex;margin:35px auto;justify-content:center}.match-square{width:min(52px,10vw);height:min(52px,10vw);border:4px solid #3480ec;display:block;margin-left:-4px}.step-track{display:flex;gap:8px;justify-content:center}.step-track button{width:34px;height:34px;border:1px solid #cbdcf6;background:#fff;border-radius:50%;color:#305386}.balance{display:flex;align-items:center;gap:20px;width:min(100%,600px)}.pan{flex:1;min-width:0;display:grid;place-items:center;background:#deecff;border-bottom:7px solid #4784e8;border-radius:14px 14px 4px 4px;min-height:130px;text-align:center;padding:14px}.pan strong{font-size:24px}.pan small{color:#6680a5}.balance-pivot{font-size:30px;color:#1b68dd}.guess-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;color:#35537e}.guess-row input{width:90px;border:1px solid #bad0ed;border-radius:8px;padding:9px;background:#fff}.scenario{max-width:600px;text-align:center;line-height:1.7;font-size:19px}.scenario strong{color:#246de8}.data-caption{margin:0;text-align:center;color:#557092;font-size:15px}.bar-chart{width:min(100%,590px);height:230px;padding:15px 15px 28px}.bar-plot{height:100%;display:flex;align-items:end;gap:20px;border-bottom:2px solid #97add0;padding:0 12px}.bar-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;min-width:0;position:relative}.bar-value{color:#315b99;font-weight:700;margin-bottom:4px}.bar{display:block;width:min(100%,58px);background:linear-gradient(#62acef,#2d6ee3);border-radius:7px 7px 0 0;min-height:4px}.bar-label{position:absolute;top:100%;margin-top:7px;font-size:13px;color:#536f95;white-space:nowrap}.value-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 25px;width:min(100%,600px)}.population-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;width:min(100%,420px)}.population-grid span{aspect-ratio:1;border-radius:6px;opacity:.4}.population-grid span.yes{background:#2e74ed}.population-grid span.no{background:#adbdd3}.population-grid span.picked{opacity:1;outline:2px solid #173b7d;outline-offset:1px}.sampling-numbers{display:flex;gap:22px;flex-wrap:wrap}.sampling-numbers strong{color:#1f69dd}.check-row{display:flex;align-items:center;gap:8px;color:#325477;font-size:14px}.stack-bar{width:min(100%,590px);height:70px;display:flex;overflow:hidden;border-radius:13px}.legend{display:flex;gap:20px;flex-wrap:wrap;color:#537196;font-size:13px}.legend span:first-child{color:#73ace8}.legend span:nth-child(2){color:#2b70e0}.legend span:last-child{color:#1ea88f}.box-net{width:min(100%,450px);aspect-ratio:3/2;position:relative;border:3px solid #2471e8;background:#cfe6ff}.cut{position:absolute;width:25%;height:25%;background:#f1f7ff;border:2px dashed #3190ed}.cut.tl{top:-2px;left:-2px}.cut.tr{top:-2px;right:-2px}.cut.bl{bottom:-2px;left:-2px}.cut.br{bottom:-2px;right:-2px}.box-center{position:absolute;top:25%;right:25%;bottom:25%;left:25%;display:grid;place-items:center;color:#245cae;font-weight:700;text-align:center}.takeaway{display:flex;gap:15px;background:#fff;border:1px solid #e0eafb;border-radius:16px;padding:20px 23px;margin-top:18px}.takeaway-icon{color:#1dbb9a;font-size:30px;line-height:1}.takeaway h2{font-size:17px;margin:0 0 7px}.takeaway p{margin:0;color:#5c7393;line-height:1.6}.lesson-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:23px;color:#6780a3}.content-note{color:#8899af;font-size:12px;line-height:1.5;margin-top:24px}@media(max-width:1100px){.sidebar{width:220px}.main-content{padding:27px 20px}.space-lab{grid-template-columns:minmax(0,1fr) 210px}.lab-details{padding:17px}}@media(max-width:760px){.app-shell{display:block}.sidebar{display:none;position:fixed;top:63px;bottom:0;z-index:20;width:min(85vw,320px);height:auto;box-shadow:10px 12px 30px #2d528034}.sidebar.open{display:flex}.main-content{padding:0 15px 24px}.mobile-top{height:63px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4eafa;margin:0 -15px 23px;padding:0 16px;background:#fff}.mobile-brand{font-weight:800;font-size:20px;color:#1450b2}.mobile-top button{border:1px solid #d3e2f9;background:#fff;border-radius:8px;color:#245bab;padding:8px 10px;font-size:13px}.lesson-header h1{font-size:28px}.instruction{font-size:15px}.space-lab{display:block;padding:12px}.space-viewport{height:52vh;min-height:320px}.lab-details{margin-top:12px}.lab-details h3{margin-bottom:8px}.lab-details .big-fact{font-size:26px}.lab-controls.full-width{margin-top:12px}.single-lab{padding:12px}.lab-canvas{padding:18px 12px;min-height:310px}.lab-result{font-size:15px;padding:15px}.equation-display{gap:8px}.term{font-size:18px;padding:10px}.bar-plot{gap:8px}.value-grid{gap:10px}.lesson-pagination button{font-size:13px;padding:9px}.content-note{font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.box-views{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center;width:100%;max-width:930px}.box-views .box-net{width:100%}.box-preview{height:300px;border:1px solid #dce9fb;border-radius:14px;background:radial-gradient(circle,#fff,#e5f1ff);display:grid;place-items:center;color:#54749a;text-align:center;padding:8px}.box-preview canvas{width:100%;height:100%}@media(max-width:700px){.box-views{grid-template-columns:1fr}.box-preview{height:240px}}.bar-chart{position:relative}.chart-scale{position:absolute;left:0;top:15px;bottom:28px;display:flex;flex-direction:column;justify-content:space-between;color:#6b83a6;font-size:12px}.bar-plot{margin-left:22px;background:linear-gradient(to bottom,#c9d8eb 1px,transparent 1px) 0 0/100% 50%}.data-table{width:min(100%,590px);border-collapse:collapse;text-align:center;color:#315681;background:#fff;border-radius:8px;overflow:hidden}.data-table caption{color:#6480a4;font-size:12px;margin-bottom:6px}.data-table th,.data-table td{border:1px solid #d6e4f5;padding:7px}.data-table th{background:#e7f1ff;font-size:13px}.data-table td{font-weight:700}.unfold-lab{padding:16px}.unfold-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,.7fr);gap:16px}.unfold-stage{position:relative;height:390px;border:1px solid #dbe8f8;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff,#e8f3ff)}.unfold-stage canvas{position:relative;z-index:1}.unfold-result{border-radius:16px;background:#f1f7ff;border:1px solid #dbe8f8;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;text-align:center;color:#285388}.unfold-kicker{align-self:flex-start;color:#6287af;font-size:12px;font-weight:700}.unfold-result svg{width:100%;height:225px;max-width:260px}.net-shapes{fill:#92d0f5;stroke:#2878c9;stroke-width:2.5;stroke-linejoin:round}.unfold-result svg text{font-size:14px;fill:#245b98;font-weight:700}.unfold-result strong{font-size:19px}.unfold-result p{font-size:14px;margin:8px 0 0}.unfold-controls{padding:20px 5px 8px}.unfold-controls label{display:flex;justify-content:space-between;font-weight:700;color:#315b8a}.unfold-controls output{color:#1469c8}.unfold-controls input[type=range]{width:100%;accent-color:#1d76d4;margin:16px 0}.unfold-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.unfold-actions button{border:1px solid #c5d9f1;border-radius:9px;padding:9px 13px;background:#fff;color:#285a90;cursor:pointer;font-weight:700}.unfold-actions button:first-child{background:#1d76d4;color:#fff;border-color:#1d76d4}.unfold-actions span{margin-left:auto;color:#6a85a5;font-size:13px}.unfold-observation{margin:12px 4px 3px;color:#4d6c8e;font-size:14px}@media(max-width:750px){.unfold-layout{grid-template-columns:1fr}.unfold-stage{height:330px}.unfold-result svg{height:200px}.unfold-actions span{width:100%;margin-left:0}}.cube-net-picker{margin-top:15px;border:1px solid #dbe8f8;background:#f6faff;border-radius:14px;padding:12px}.cube-net-picker>span{display:block;color:#37648f;font-size:13px;font-weight:700;margin-bottom:9px}.cube-net-picker>div{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:7px}.cube-net-picker button{height:80px;border:1px solid #d5e4f5;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;cursor:pointer}.cube-net-picker button.selected{border-color:#1674d4;box-shadow:0 0 0 2px #91c4f5;background:#eaf5ff}.cube-net-picker svg{width:100%;height:55px}.cube-net-picker .net-shapes{stroke-width:1.2}.cube-net-picker small{font-size:11px;color:#5476a1;font-weight:700}@media(max-width:1050px){.cube-net-picker>div{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:560px){.cube-net-picker>div{grid-template-columns:repeat(4,minmax(0,1fr))}}
