.photo-lab{max-width:1240px;margin:auto;padding:32px 24px 112px;color:#183151}.photo-lab *{box-sizing:border-box}.lab-intro{margin-bottom:24px}.eyebrow{color:#326299;font-size:12px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.lab-intro h1{font-size:clamp(28px,4vw,40px);margin:8px 0;letter-spacing:-.03em}.lab-intro>p:last-child{color:#61748d;margin:0}.lab-progress{display:flex;list-style:none;padding:0;margin:0 0 22px;gap:8px}.lab-progress li{flex:1;padding:11px 14px;background:#e9eff7;color:#65758c;font-size:13px;border-radius:6px;font-weight:700}.lab-progress span{margin-left:8px}.lab-progress .active{background:#204f8d;color:white}.lab-progress .done{background:#dce9f8;color:#234d7e}.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.model-panel,.controls-panel{min-width:0;background:white;border:1px solid #d4dfed;border-radius:14px;overflow:hidden;box-shadow:0 8px 28px #173b7508}.model-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px}.photo-lab h2{font-size:18px;margin:0 0 4px}.model-heading p{margin:0;color:#65758c;font-size:12px}.view-badge{font-size:10px;font-weight:700;color:#34638e;background:#edf4fb;padding:6px 8px;border-radius:4px;white-space:nowrap}.model-host{height:490px;position:relative;overflow:hidden;background:#eef3f8}.model-host>div{position:absolute;inset:0}.model-host svg,.model-host canvas{display:block;width:100%;height:100%}.model-host canvas{touch-action:none}.scene-caption{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);max-width:94%;padding:7px 13px;border:1px solid #cfdaea;border-radius:20px;background:#fffffff2;font-size:11px;font-weight:650;text-align:center;color:#304966;pointer-events:none}.model-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid #e1e8f1}.photo-lab button{font:650 13px system-ui;cursor:pointer;min-height:38px;border:1px solid #c7d5e7;background:white;color:#254d7f;border-radius:6px;padding:8px 11px}.photo-lab button:hover:not(:disabled){background:#eff5ff;border-color:#5481bc}.photo-lab button:disabled{opacity:.45;cursor:default}.photo-lab :is(button,input,summary,a):focus-visible{outline:3px solid #4e90ed;outline-offset:3px}.model-tools label{margin-left:auto;font-size:12px;display:flex;gap:7px;align-items:center}.photo-lab input{accent-color:#255ba0}.observation{margin:16px 20px 20px;background:#edf4fc;border-left:3px solid #376daa;padding:13px 16px;min-height:90px}.observation strong{font-size:14px}.observation p{font-size:13px;line-height:1.6;margin:5px 0 0;color:#516781}.controls-panel{padding:22px}.controls-panel .muted{font-size:13px;line-height:1.55;color:#687990}.phase h3{font-size:14px;margin:24px 0 10px}.phase p{font-size:13px;color:#53677d;line-height:1.65}.photo-lab .primary{width:100%;background:#24578f;border-color:#24578f;color:white;margin-top:12px;padding:13px}.photo-lab .primary:hover:not(:disabled){background:#163f70;color:white}.photo-lab .secondary{width:100%;margin-top:14px;background:#f1f5fa}.photo-lab .small{font-size:11px;line-height:1.6;color:#748198}.conditions{display:grid;gap:9px}.conditions label{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dce5ef;border-radius:7px;padding:12px}.conditions b{font-size:12px}.conditions small{display:block;color:#718299;font-size:10px;margin-top:3px;line-height:1.45}.conditions input{width:19px;height:19px;flex-shrink:0}.procedure{padding-left:20px;color:#7b8a9b;font-size:12px;line-height:1.55}.procedure li{padding:9px 5px}.procedure .current{color:#234e81;font-weight:750;background:#edf4fc}.procedure .done{color:#376854}.safety{font-size:11px;line-height:1.6;background:#fff7e8;color:#806329;padding:12px;border-radius:7px}.result{margin-top:15px;padding:14px;background:#eef2ff;color:#273665;font-size:13px;line-height:1.6;border-radius:8px}.lab-notes{margin-top:22px;font-size:13px;line-height:1.7;color:#5b6f86}.lab-notes summary{cursor:pointer;font-weight:700;color:#2c5281}.lab-notes a{color:#24578f}.photo-lab [hidden]{display:none!important}.model-tools [aria-pressed=true]{background:#dfeeff}.diagram-label{font:12px system-ui;fill:#455c74}.diagram-line{stroke:#8398ac;stroke-width:1;fill:none}.diagram-labels.hidden{display:none}.diagram-detail{font:14px system-ui;fill:#38546d}@media(max-width:950px){.lab-layout{grid-template-columns:minmax(0,1fr) 285px}.model-host{height:440px}.photo-lab{padding:24px 16px 110px}}@media(max-width:760px){.lab-layout{grid-template-columns:1fr}.model-host{height:440px}.controls-panel{padding:20px}.lab-progress{gap:4px}.lab-progress li{padding:10px 6px;font-size:11px}.lab-progress span{margin-left:4px}.view-badge{display:none}}@media(max-width:430px){.model-host{height:355px}.model-heading{padding:16px}.model-tools{padding:10px 12px}.model-tools label{margin-left:0}.photo-lab{padding-left:12px;padding-right:12px}}
.three-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.three-labels span{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;padding:3px 7px;background:#ffffffe0;border:1px solid #c1d0df;color:#405b74;font:10px system-ui;border-radius:3px}.photo-lab .three-labels{width:100%;height:100%}

.scene-caption{width:max-content}

.scene-outgoing{pointer-events:none;z-index:2;background:#eef3f8}.scene-caption{z-index:3}.model-host [data-sample],.model-host [data-forceps]{will-change:transform}.model-host [data-flame]{transform-origin:0 0}

.model-host>.start-overlay{z-index:5;background:#03060c;display:grid;place-items:center}.photo-lab #startBtn{padding:17px 32px;font-size:17px;background:#2d68b8;border:1px solid #8ab7f2;border-radius:9px;color:#fff;box-shadow:0 0 36px #315f9840}.photo-lab #startBtn:hover{background:#397bce}.lighting-status{position:absolute;top:15px;right:16px;padding:8px 12px;background:#fff9d7;border:1px solid #e3cf84;border-radius:6px;color:#665420;font:750 11px system-ui;z-index:3;letter-spacing:.07em}.lighting-status::before{content:'●';color:#d79b24;margin-right:7px}.lighting-status.is-off{background:#152033;border-color:#42516a;color:#d9e5f7}.lighting-status.is-off::before{color:#70819b}#lightSwitchState{display:inline-block;margin-left:5px;color:#5276a1;font-size:10px}.water-alert{width:min(440px,calc(100% - 32px));border:1px solid #cbd9ea;border-radius:16px;padding:28px;color:#243e5b;background:#fff;box-shadow:0 22px 80px #06142b55;font-family:system-ui}.water-alert::backdrop{background:#06142b88}.water-alert h2{font-size:21px;margin:14px 0}.water-alert p{font-size:14px;line-height:1.7;color:#52667e}.water-alert-icon{width:40px;height:40px;background:#fff0d9;border-radius:50%;display:grid;place-items:center;color:#946520;font-size:24px;font-weight:800}.water-alert-close{width:100%;padding:13px;border:0;border-radius:7px;background:#24578f;color:white;font-size:14px;cursor:pointer}.water-alert-close:focus-visible{outline:3px solid #75a6e7;outline-offset:3px}.three-labels.dark-labels span{background:#111e30e6;color:#bac9dd;border-color:#34445a}

.model-host.lights-off{background:#1e222b}

.mode-button{width:100%;margin:0 0 12px}.photo-lab .mode-button[aria-pressed=true]{background:#e2efff;border-color:#4680bf}.range-condition{display:grid;grid-template-columns:1fr auto;gap:8px;margin:10px 0;padding:12px;border:1px solid #d4e2f2;border-radius:8px;background:#f7faff}.range-condition label{font-size:12px;font-weight:700}.range-condition output{font-size:12px;font-weight:750;color:#24578f;font-variant-numeric:tabular-nums}.range-condition input{grid-column:1/-1;width:100%;margin:0;min-height:28px;cursor:pointer}.range-condition small{grid-column:1/-1;color:#657a93;font-size:10px;line-height:1.5}

.learning-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.learning-toolbar p{margin:0 auto 0 0;font-size:13px;font-weight:700;color:#334e68}.question-panel{margin-top:20px;padding:16px;border:1px solid #b5ccdf;background:#f3f8fc;border-radius:9px}.question-panel h3{margin:0 0 8px;font-size:16px}.question-count{font-size:11px;color:#526c81}.question-panel fieldset{margin:0;padding:0;border:0;min-width:0}.question-panel legend{font-size:14px;font-weight:650;line-height:1.5;margin-bottom:12px}.question-panel label{display:flex;align-items:flex-start;gap:9px;padding:10px;margin:7px 0;background:white;border:1px solid #d5e0e9;border-radius:6px;font-size:12px;line-height:1.5;cursor:pointer}.question-panel input{flex:0 0 auto;margin-top:3px}.question-panel button{margin-top:8px;width:100%}.question-feedback{font-size:12px;line-height:1.6}.question-feedback.correct{color:#225e3a}.question-feedback.incorrect{color:#8b421c}.demo-dialog{width:min(460px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:1px solid #bdd0e2;border-radius:12px;padding:25px;color:#243e5b;background:white}.demo-dialog::backdrop{background:#06142b88}.demo-dialog h2{margin-top:0}.demo-dialog p{font-size:13px;line-height:1.6}.demo-dialog label{display:grid;gap:6px;margin:16px 0;font-size:13px}.demo-dialog input{font:inherit;min-width:0;width:100%;box-sizing:border-box;padding:11px;border:1px solid #b5c6d6;border-radius:5px}.demo-actions{display:flex;justify-content:flex-end;gap:10px}#demoError{color:#9a3527;min-height:20px}

.question-summary{margin-top:18px;padding:12px;background:#f3f8fc;border:1px solid #c8d9e8;border-radius:8px}.question-summary p{font-size:12px;line-height:1.5;margin:0 0 8px}.question-summary button{width:100%}.photo-lab .question-dialog{box-sizing:border-box;width:min(600px,calc(100% - 28px));max-height:85dvh;overflow:auto;margin:auto;padding:24px;background:#fff;border:1px solid #b5ccdf;border-radius:14px;box-shadow:0 20px 80px #06142b44;color:#243e5b}.question-dialog::backdrop{background:#06142b99}.question-dialog-heading{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.question-dialog-heading h2{margin:0;font-size:20px}.question-dialog .question-dialog-heading button{width:38px;min-width:38px;margin:0;font-size:22px;padding:2px}.question-dialog legend{font-size:16px}.question-dialog label{font-size:14px;padding:12px}.question-dialog input{min-width:18px;min-height:18px}.question-dialog .question-feedback{font-size:14px}@media(max-width:480px){.photo-lab .question-dialog{padding:18px}.question-dialog legend{font-size:15px}.question-dialog label{font-size:13px}}

@media(max-width:600px){.lab-progress{flex-wrap:wrap}.lab-progress li{flex:1 1 28%;padding:9px 6px}.lab-progress span{margin-left:3px}}

.animation-speed{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.animation-speed>span{font-size:12px;color:#52677b;margin-right:5px}.photo-lab .animation-speed button{min-width:42px}.photo-lab .animation-speed button[aria-pressed="true"]{background:#24578f;border-color:#24578f;color:white}@media(max-width:600px){.learning-toolbar>p{flex-basis:100%}}

.leaf-comparison{margin:20px;padding:16px;border:1px solid #d4dfed;border-radius:10px;background:#f7fafc}.leaf-comparison[hidden]{display:none}.leaf-comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.leaf-comparison figure{margin:0;text-align:center;background:white;border-radius:8px;padding:8px}.leaf-comparison svg{display:block;width:100%;max-height:250px}.leaf-comparison figcaption{font-size:13px;font-weight:700;color:#254d7f}.leaf-comparison p{font-size:12px;line-height:1.6;color:#53677d;margin-bottom:0}

.answer-summary h3{font-size:20px;line-height:1.5;margin:8px 0 24px}.answer-summary p{font-size:13px;color:#526c62;margin:0 0 8px}.answer-summary strong{display:block;padding:18px;background:#e9f5ec;border-left:4px solid #35804d;border-radius:6px;color:#214c30;font-size:19px;line-height:1.6}.answer-summary button{margin-top:22px}
