:root{color-scheme:light;--ink:#243d32;--muted:#748077;--green:#285740;--line:#dbe0d6;--paper:#fbfaf6;--warm:#f0eee6;--gold:#ba8a39;--error:#925341;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:7px;padding:10px 15px;background:white;color:var(--ink);min-height:40px;transition:background .16s}button:disabled{cursor:not-allowed;opacity:.45}button:hover:not(:disabled){background:#e9eee5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #cda254;outline-offset:3px}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover:not(:disabled){background:#1c4430}.secondary{border-color:#bfcabb;background:#fffefb}.quiet{background:transparent;border-color:transparent}.text-button{background:transparent;padding:3px 0;min-height:30px;color:var(--green);border-radius:2px;font-size:12px;text-decoration:underline;text-underline-offset:3px}.full{width:100%;display:flex;justify-content:space-between;align-items:center}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);font-size:23px;font-weight:650;letter-spacing:2px}.brand-mark{color:var(--green);font-size:29px;vertical-align:-2px;margin-right:6px}.brand-sub{font-size:12px;font-weight:400;letter-spacing:.5px;margin-left:20px;color:var(--muted)}.page{max-width:1400px;margin:auto;padding:36px 5vw 50px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:25px}.eyebrow{font-size:11px;letter-spacing:1.8px;color:var(--muted);margin:0 0 9px}.title-row h1{font-size:32px;font-weight:600;letter-spacing:1px;margin:0 0 10px}.lead{color:#68786c;margin:0;line-height:1.8}.document-actions{display:flex;align-items:center;gap:15px;white-space:nowrap}#save-state{font-size:12px;color:var(--muted)}.journey{display:flex;list-style:none;padding:22px 0 20px;margin:15px 0 0;border-bottom:1px solid var(--line);gap:36px;font-size:12px;color:#869084}.journey li{display:flex;gap:9px;align-items:center}.journey li span{border:1px solid #c9d1c5;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}.journey li.active{color:var(--green)}.journey li.active span{color:white;background:var(--green);border-color:var(--green)}.workspace{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:40px;padding-top:30px}.author-pane{border-right:1px solid var(--line);padding-right:30px}.section-heading{display:flex;gap:8px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.section-number{font-size:11px;color:var(--gold)}h2{font-size:17px;line-height:1.5;font-weight:600;margin:0}label{display:block;color:#506257;font-size:12px;margin:0 0 8px}textarea,select{width:100%;border:1px solid #cbd4c6;border-radius:6px;padding:11px;background:#fffefa;color:var(--ink);line-height:1.8}textarea{resize:vertical;min-height:70px}textarea::placeholder{color:#8a968b}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.helper{color:var(--muted);font-size:11px;line-height:1.9;margin:12px 0 17px}.connection{display:flex;gap:7px;align-items:center;color:#768577;font-size:10px;line-height:1.7;margin-top:13px;flex-wrap:wrap}.connection .text-button{font-size:10px;margin-left:auto}.status-dot{width:5px;height:5px;border-radius:50%;background:#aaa78a;flex-shrink:0}.connection.available .status-dot{background:var(--green)}.notice{font-size:12px;line-height:1.9;border-left:2px solid var(--gold);padding:9px 11px;background:#f2eee2;margin:15px 0;white-space:pre-line}.notice.error{border-color:var(--error);background:#f5eae3;color:#734937}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.tag{font-size:10px;color:#768166;line-height:1.6;background:#eaf0e4;border:1px solid #dbe4d3;border-radius:4px;padding:4px 7px}.experiment{height:340px;position:relative;border:1px solid #dfe3d9;border-radius:10px 10px 0 0;overflow:hidden;background:#f6f5ef}.scene-slot,.scene-slot iframe{height:100%;width:100%;border:0;display:block}.scene-overlay{position:absolute;inset:0;background:#f6f5efef;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px;font-size:13px}.spinner{height:20px;width:20px;border:2px solid #cdd5c6;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}.scene-overlay.failed .spinner{display:none}@keyframes spin{to{transform:rotate(360deg)}}.experiment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;background:#eeefe6;border:1px solid #dfe3d9;border-top:0;border-radius:0 0 8px 8px}#renderer-state{font-size:10px;color:#67755d}.view-actions{display:flex;gap:3px}.view-actions button{padding:3px 7px;background:transparent;min-width:30px;min-height:30px;font-size:13px}#reset-view{font-size:10px}.parameter-area{padding:21px 4px 0}.parameter-head{display:flex;justify-content:space-between;align-items:center}.parameter-head label{font-size:12px;margin:0}.parameter-head output{font-weight:600;font-size:22px;color:var(--green)}input[type=range]{appearance:none;width:100%;height:4px;background:#cbd6c4;border-radius:10px;margin:17px 0 10px;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:17px;height:17px;border-radius:50%;background:var(--green);border:3px solid white;box-shadow:0 0 0 1px #b3bdaa}input[type=range]::-moz-range-thumb{width:12px;height:12px;background:var(--green);border:3px solid white;border-radius:50%}.range-labels{display:flex;justify-content:space-between;color:#8a9585;font-size:10px}.readout{display:flex;align-items:center;gap:40px;margin:20px 0 18px}.readout span{display:block;color:#7f8a76;font-size:10px;margin-bottom:5px}.readout strong{font-size:24px;font-weight:500;letter-spacing:-.5px}.readout small{font-weight:400;font-size:13px;color:#7d8a77}.readout .text-button{margin-left:auto}.assumptions{padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;line-height:1.9;color:#7c8978}.assumptions summary{cursor:pointer;color:#62775f}.assumptions summary span{float:right;font-size:10px;color:var(--gold)}.assumptions p{margin:12px 0 0}.lesson-preview{padding:24px 0 18px}.lesson-preview h3{margin:8px 0;font-size:19px;font-weight:500}.lesson-preview p{font-size:12px;line-height:1.9;color:#7c8779;margin:8px 0}.lesson-detail{padding:8px 0;border-top:1px solid var(--line)}.lesson-detail h4{font-size:11px;color:#798a75;margin:12px 0 5px;font-weight:500}.lesson-detail p{color:#405b45;font-size:13px}.classroom-footer{border-top:1px solid var(--line);padding-top:17px;display:flex;align-items:center;justify-content:space-between;gap:15px}.classroom-footer p{font-size:10px;color:#8e947b;margin:0}.classroom-footer .primary{font-size:12px}.candidate-panel,.editor{border-top:1px solid var(--line);margin-top:24px;padding-top:23px}.candidate-panel>p{font-size:11px;line-height:1.9;color:#797e66}.candidate-panel h2{margin-bottom:10px}.candidate-summary{border-top:1px solid #d7ddcf;padding:8px 0;font-size:12px;line-height:1.8}.candidate-summary strong{display:block;font-weight:500}.candidate-summary p{margin:4px 0}.diff-before{color:#8e786b;white-space:pre-wrap}.diff-after{color:var(--green);white-space:pre-wrap}.diff-label{font-size:10px;display:block;color:var(--muted)}.inline-actions{display:flex;align-items:center;gap:8px;margin:12px 0}.inline-actions button{font-size:11px;padding:7px 10px}.checkbox{margin:0;display:flex;align-items:center;gap:6px;font-size:10px;color:#7d8d75}.checkbox input{accent-color:var(--green)}.step-tabs{display:flex;gap:5px;margin:0 0 18px}.step-tabs button{font-size:11px;flex:1;border:1px solid #d3dccb;padding:5px;line-height:1.6;background:transparent}.step-tabs button[aria-pressed=true]{background:#e9efe3;border-color:#8eaa80;color:var(--green)}.revision-label{margin-top:25px}.editor .section-heading .text-button{margin-left:auto}dialog{border:1px solid #d2dccb;border-radius:12px;padding:24px;max-width:min(550px,calc(100% - 32px));width:550px;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#2b3e3266}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.shelf-item{border-top:1px solid var(--line);padding:14px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}.shelf-item h3{margin:0 0 5px;font-size:14px;font-weight:500}.shelf-item p{font-size:10px;color:var(--muted);margin:0}.shelf-item button{font-size:11px}.player-page{max-width:1100px;margin:auto;padding:28px 5vw 45px}.player-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.player-intro h1{font-size:25px;font-weight:500;margin:0}.player-main{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px}.player-main .experiment{height:430px}.player-notes{padding:22px 0 0}.player-notes p{font-size:15px;line-height:1.9;color:#62745d}.question{border-top:1px solid var(--line);padding:18px 0}.question legend{font-size:14px;line-height:1.9;margin-bottom:12px}.question label{font-size:13px;display:flex;gap:9px;align-items:center}.question input{accent-color:var(--green)}.question p{font-size:12px;line-height:1.8;color:#71806a}.player-footnote{font-size:11px;line-height:1.8;color:#87917d;padding-top:20px}[hidden]{display:none!important}@media(min-width:1400px){.experiment{height:400px}}@media(max-width:900px){.page{padding:25px 4vw 40px}.workspace{gap:22px;grid-template-columns:290px minmax(0,1fr)}.author-pane{padding-right:20px}.experiment{height:310px}.document-actions{flex-direction:column;align-items:flex-end;gap:6px}.brand-sub{margin-left:10px}.preview-heading{align-items:flex-start;flex-direction:column;gap:8px}.view-actions{gap:0}.view-actions button{padding:3px 5px}.readout{gap:24px}.classroom-footer{align-items:flex-start;flex-direction:column}.player-main{grid-template-columns:minmax(0,1fr) 220px;gap:18px}}@media(max-width:660px){.topbar{height:58px;padding:0 5vw}.brand{font-size:20px}.brand-sub{font-size:10px}.page{padding:23px 5vw 40px}.title-row{align-items:flex-start;flex-direction:column;gap:15px}.title-row h1{font-size:27px}.document-actions{flex-direction:row;align-items:center}.lead{font-size:12px}.journey{gap:18px;padding-top:18px;font-size:10px}.journey li{gap:5px}.journey li span{width:19px;height:19px}.workspace{display:flex;flex-direction:column;gap:30px;padding-top:23px}.author-pane{padding-right:0;border:0;order:1}.preview-pane{order:0}.preview-heading{flex-direction:row;align-items:center}.preview-heading h2{font-size:15px}.tag{max-width:145px;font-size:9px}.experiment{height:270px}.experiment-toolbar{padding:8px}.readout{gap:35px}.parameter-area{padding-top:17px}.lesson-preview{padding-top:19px}.classroom-footer{flex-direction:row;align-items:center}.classroom-footer p{max-width:130px}.section-heading h2{font-size:16px}.player-main{display:block}.player-main .experiment{height:300px}.player-intro{align-items:flex-start;flex-direction:column}.player-intro h1{font-size:21px}.player-notes{padding-top:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Larger stage for the material-and-lighting scene; author workflow stays unchanged. */
@media(min-width:801px){.preview-pane .experiment{height:420px}.player-main .experiment{height:520px}}
/* One lesson: scene, evidence and teaching stay together. */
.lesson-tools{border-bottom:1px solid var(--line);padding:12px 0}.scene-stops{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scene-stops>span{font-size:11px;color:var(--muted);margin-right:5px}.scene-stops button{min-height:32px;padding:5px 12px}.scene-stops .text-button{margin-left:auto}.scene-spec-note{font-size:10px;line-height:1.7;color:var(--muted);margin:10px 0 0}.observations{border-collapse:collapse;font-size:12px;margin-top:12px;width:100%;text-align:left;font-variant-numeric:tabular-nums}.observations th,.observations td{padding:7px 12px;border-bottom:1px solid var(--line)}.observations th{font-weight:500;color:var(--muted)}.visual-diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.visual-diff-grid h4{font-size:13px;margin:10px 0}.visual-diff-grid p{font-size:11px;line-height:1.7}.diff-scene{height:290px;background:#152630;border-radius:8px;overflow:hidden}.diff-scene iframe{width:100%;height:100%;border:0}#visual-diff{padding:10px 0 22px;border-bottom:1px solid var(--line);margin-bottom:20px}#visual-diff h3{margin:0}.candidate-summary{font-size:12px}.candidate-summary p{line-height:1.8}.candidate-panel{max-height:640px;overflow:auto}.classroom-body{--paper:#f6f7f7;--ink:#213b46;--green:#226678;--line:#d8e0e3;--muted:#697f89;background:var(--paper)}.classroom-body .topbar{height:58px;padding:0 28px;background:#fff}.classroom-body .player-page{max-width:1600px;padding:22px 28px}.classroom-body .player-intro{margin-bottom:16px}.classroom-body .player-intro h1{font-size:23px;font-weight:600}.classroom-body .player-main{grid-template-columns:minmax(0,1fr) 290px;gap:26px}.classroom-body .experiment{height:clamp(360px,57vh,650px);border:0}.classroom-body .experiment-toolbar{background:#e8edef;border-color:#d8e0e3}.classroom-body .parameter-area{padding-top:12px}.classroom-body .readout{margin-top:12px}.classroom-body .player-notes{padding-top:8px}.classroom-body .player-notes p{font-size:14px;line-height:1.8;color:#506873}.classroom-body .player-notes .eyebrow{font-size:10px;letter-spacing:1px;color:#81919a;margin-top:14px}.classroom-body .step-tabs button[aria-pressed=true]{background:#dcebee;border-color:#80aeb8}.classroom-body #checks-wrap{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.classroom-body summary{cursor:pointer;font-size:12px}.classroom-body .player-footnote{margin-top:12px;font-size:10px;max-width:1000px}.classroom-body .tag{background:#edf0e9}.classroom-body .assumptions{margin-top:12px}
@media(min-width:901px){.preview-pane{min-width:0}.preview-pane .experiment{height:440px}.author-pane{padding-right:24px}.workspace{gap:28px}}
@media(max-width:800px){.classroom-body .player-main{grid-template-columns:minmax(0,1fr) 220px}.classroom-body .player-page{padding:18px}.visual-diff-grid{grid-template-columns:1fr}.diff-scene{height:300px}}
@media(max-width:660px){.workspace .author-pane{order:0}.workspace .preview-pane{order:1}.classroom-body .player-main{display:block}.classroom-body .experiment{height:320px}.classroom-body .player-page{padding:15px}.classroom-body .topbar{padding:0 15px}.scene-stops .text-button{margin-left:0}.candidate-panel{max-height:none}.classroom-body aside{margin-top:24px}}

/* Classroom legibility: the experiment and its fixed conditions stay primary. */
.classroom-body{--paper:#fff;--muted:#526974}
.classroom-body .player-main{grid-template-columns:minmax(0,1fr) 330px}
.experiment-condition{font-size:15px;color:#405967;margin:0 0 16px;line-height:1.8}
.experiment-condition span{font-weight:600;color:#226678;white-space:nowrap}
.classroom-body .experiment{height:clamp(320px,49vh,580px)}
.classroom-body .player-notes p{font-size:18px;line-height:1.75;color:#294651;margin:12px 0}
.classroom-body .player-notes h2{font-size:23px}
.classroom-body .player-notes .eyebrow{font-size:12px;color:#526974;letter-spacing:.5px}
.classroom-body .step-tabs button{font-size:14px;min-height:46px;padding:6px}
.classroom-body .inline-actions button,.classroom-body .scene-stops button{font-size:16px;min-height:42px}
.classroom-body .question legend,.classroom-body .question label{font-size:17px;line-height:1.7;color:#294651}
.classroom-body .question label{min-height:44px;cursor:pointer}
.classroom-body .question p,.classroom-body summary{font-size:15px;color:#405967}
.classroom-body .parameter-head label{font-size:15px}
.classroom-body .readout span,.classroom-body .range-labels,.classroom-body #renderer-state{font-size:12px;color:#526974}
.classroom-body .scene-spec-note{display:none}
.classroom-body .observations{font-size:15px}
.classroom-body .view-actions button{min-height:38px;min-width:38px;font-size:16px}
.classroom-body #reset-view{font-size:12px}
@media(min-width:1600px){.classroom-body .player-main{grid-template-columns:minmax(0,1fr) 390px}.classroom-body .player-notes p{font-size:21px}}
@media(max-width:900px){.classroom-body .player-main{grid-template-columns:minmax(0,1fr) 260px}.classroom-body .player-notes p{font-size:16px}}
@media(max-width:660px){.classroom-body .player-main{display:block}.classroom-body .experiment{height:310px}.experiment-condition{font-size:13px}.classroom-body .player-notes p{font-size:18px}}
