.energy-light-lab{--lab-blue:#327b8b;--lab-gold:#e8aa43;margin-top:17px;padding:clamp(18px,3vw,31px);overflow:hidden;border:1px solid #b8ccd0;border-radius:19px;background:linear-gradient(145deg,#fffdf8,#e8f4f3);box-shadow:0 12px 28px rgba(38,74,69,.12)}.lab45-intro h3{margin:5px 0 8px;font:700 clamp(24px,3vw,32px)/1.15 'Fraunces',serif}.lab45-intro>p:not(.eyebrow){max-width:850px;color:#526862;line-height:1.6}.lab45-vocab{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}.lab45-vocab span{display:flex;flex:1 1 180px;flex-direction:column;padding:11px 13px;border:1px solid #c7d9db;border-radius:11px;background:#fff;color:#60736d;font-size:12px}.lab45-vocab b{margin-bottom:3px;color:var(--lab-blue);font-size:14px}.energy-device-picker,.source-picker,.behavior-picker,.shadow-controls>div{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.energy-device-picker button,.source-picker button,.behavior-picker button,.shadow-controls button,.lab45-actions button,.friction-reading button{padding:10px 13px;border:1px solid #b8c9c5;border-radius:10px;background:#fff;color:#315d56;font-weight:800;cursor:pointer;box-shadow:0 4px 9px rgba(38,74,69,.08)}.energy-device-picker button[aria-pressed=true],.source-picker button[aria-pressed=true],.behavior-picker button[aria-pressed=true],.shadow-controls button[aria-pressed=true]{border-color:#276c76;background:#276c76;color:#fff}.energy-machine{display:grid;grid-template-columns:150px 120px 1fr;align-items:center;gap:16px;padding:20px;border-radius:15px;background:#183f47;color:#fff}.energy-appliance{display:grid;place-items:center;min-height:110px;font-size:72px;filter:grayscale(.35);transition:.25s}.energy-machine.is-on .energy-appliance{filter:none;animation:energy-pulse .8s ease infinite alternate}.energy-machine>button{padding:12px;border:0;border-radius:999px;background:#efb44f;color:#49341d;font-weight:900;cursor:pointer}.energy-machine.is-on>button{background:#dc6c58;color:#fff}.energy-flow{display:flex;align-items:center;justify-content:center;gap:11px}.energy-flow>span,.energy-flow>div{padding:12px;border-radius:10px;background:rgba(255,255,255,.1);text-align:center}.energy-flow>div{display:flex;gap:6px;flex-wrap:wrap}.energy-flow b{padding:6px;border-radius:7px;background:#fff;color:#276c76;font-size:12px}.energy-machine>p{grid-column:1/-1;margin:0;text-align:center;color:#d2e6e5}@keyframes energy-pulse{to{transform:scale(1.08);filter:drop-shadow(0 0 13px #ffe48a)}}
.motion-workbench,.source-observation,.friction-scene{padding:20px;border-radius:15px;background:#f9fcfb}.motion-workbench>label,.straight-controls label,.shadow-controls>label{display:flex;justify-content:space-between;font-weight:800}.motion-workbench>input,.straight-controls input,.shadow-controls>input{width:100%;margin:10px 0 18px;accent-color:#2d7c70}.ramp-scene{--ramp-rise:85px;--ramp-angle:16deg;position:relative;height:190px;overflow:hidden;border-bottom:6px solid #8a6745;background:linear-gradient(#dff2f4 70%,#ddca9b 70%)}.ramp-board{position:absolute;left:4%;bottom:18px;width:36%;height:var(--ramp-rise);background:linear-gradient(135deg,#9a754c,#68492f);clip-path:polygon(0 0,100% calc(100% - 9px),100% 100%,0 9px);filter:drop-shadow(0 4px 2px rgba(70,48,29,.22))}.lab-car{position:absolute;z-index:2;left:5%;bottom:calc(18px + var(--ramp-rise));display:block;width:43px;height:25px;transform:rotate(var(--ramp-angle));transform-origin:50% 100%}.car-body{position:absolute;left:2px;right:1px;bottom:6px;height:12px;border:2px solid #1d4f5a;border-radius:7px 10px 4px 4px;background:#3c91a2;box-shadow:inset 0 -3px rgba(0,0,0,.12)}.car-roof{position:absolute;left:14px;bottom:16px;width:21px;height:9px;border:2px solid #1d4f5a;border-bottom:0;border-radius:9px 9px 0 0;background:#bfe7ec}.car-wheel{position:absolute;bottom:1px;width:9px;height:9px;border:2px solid #283536;border-radius:50%;background:#edf5f3}.car-wheel-back{left:7px}.car-wheel-front{right:5px}.ramp-scene.launched .lab-car{animation:car-down-ramp 1.45s cubic-bezier(.25,.7,.3,1) forwards}.distance-track{position:absolute;left:40%;right:2%;bottom:5px;display:flex;justify-content:space-between}.distance-track i{width:2px;height:15px;background:#806447}@keyframes car-down-ramp{0%{left:5%;bottom:calc(18px + var(--ramp-rise));transform:rotate(var(--ramp-angle))}44%{left:36%;bottom:18px;transform:rotate(var(--ramp-angle))}52%{left:40%;bottom:18px;transform:rotate(0deg)}100%{left:var(--car-end,70%);bottom:18px;transform:rotate(0deg)}}.lab45-actions{display:flex;gap:8px;margin:13px 0}.lab45-actions button:first-child,.friction-reading button{background:#276c76;color:#fff}.trial-report{padding:13px;border-left:5px solid var(--lab-gold);border-radius:8px;background:#fff}.trial-report p{margin:4px 0;color:#5b6e68}.trial-report ol{display:flex;gap:15px;flex-wrap:wrap;margin:8px 0 0;padding-left:20px;font-size:12px}
.source-observation{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(260px,1.25fr);gap:22px;align-items:center}.source-stage{position:relative;display:grid;place-items:center;min-height:210px;border-radius:50%;background:radial-gradient(circle,#fff7b4 0 20%,#bfe3eb 21% 70%,transparent 71%)}.source-stage>span{position:relative;z-index:2;font-size:82px}.source-rays{position:absolute;inset:18%;border:5px dotted #f2c94f;border-radius:50%;animation:source-spin 9s linear infinite}.source-meter{padding:18px;border-radius:13px;background:#183f47;color:#fff}.source-meter>strong{display:block;margin:5px 0 13px;color:#ffd77d;font:800 25px monospace}.source-properties{display:flex;gap:7px}.source-properties b{padding:7px 9px;border-radius:8px;background:#fff;color:#276c76;font-size:12px}.source-meter p{line-height:1.55;color:#d6e8e7}@keyframes source-spin{to{transform:rotate(360deg)}}
.friction-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.friction-controls label{display:flex;flex-direction:column;gap:7px;padding:12px;border-radius:10px;background:#fff;color:#49605a;font-weight:800}.friction-controls output{color:#27717e}.friction-controls input{width:100%;accent-color:#d86b43}.friction-controls select{padding:7px;border:1px solid #c9d4d0;border-radius:7px}.friction-scene{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;margin-top:12px}.rubbing-blocks{position:relative;display:grid;place-items:center;height:150px}.rubbing-blocks span{position:absolute;width:145px;height:45px;border:4px solid #845e3e;border-radius:8px;background:#c89766}.rubbing-blocks span:first-child{transform:translateY(-25px) rotate(-3deg)}.rubbing-blocks span:nth-child(2){transform:translateY(25px) rotate(3deg)}.rubbing-blocks.running span:first-child{animation:rub-top .16s linear infinite alternate}.rubbing-blocks.running span:nth-child(2){animation:rub-bottom .16s linear infinite alternate}.rubbing-blocks i{z-index:2;opacity:0;color:#e75f35;font-style:normal;font-weight:900}.rubbing-blocks.running i{opacity:1;animation:heat-pop .5s infinite alternate}.friction-reading strong{display:block;margin:4px 0;color:#27717e;font:800 25px monospace}.friction-reading p{color:#526862;line-height:1.5}@keyframes rub-top{to{transform:translate(10px,-25px) rotate(-3deg)}}@keyframes rub-bottom{to{transform:translate(-10px,25px) rotate(3deg)}}@keyframes heat-pop{to{transform:scale(1.25);text-shadow:0 0 12px #f59e58}}
.straight-controls,.shadow-controls{padding:14px;border-radius:12px;background:#fff}.straight-scene{position:relative;display:flex;align-items:center;justify-content:space-around;gap:20px;height:230px;margin-top:12px;overflow:hidden;border-radius:15px;background:linear-gradient(#173e48,#225b62)}.lab-flashlight{position:relative;z-index:3;display:block;width:48px;height:24px;border:3px solid #243b42;border-radius:5px 3px 3px 5px;background:linear-gradient(#83979b,#50676d);box-shadow:0 3px 5px rgba(0,0,0,.25)}.lab-flashlight::before{content:"";position:absolute;left:100%;top:-5px;width:15px;height:28px;border:3px solid #394e53;border-left:0;border-radius:0 8px 8px 0;background:#c5d0ce;clip-path:polygon(0 18%,100% 0,100% 100%,0 82%)}.lab-flashlight::after{content:"";position:absolute;left:16px;top:-7px;width:12px;height:6px;border-radius:4px 4px 0 0;background:#e4ad48}.flashlight{flex:0 0 48px}.beam-line{position:absolute;z-index:1;left:9%;right:8%;top:50%;height:8px;background:#ffe580;box-shadow:0 0 17px #ffe580;transform-origin:left;transition:.2s}.beam-line.blocked{right:52%;background:linear-gradient(90deg,#ffe580,transparent)}.hole-card{position:relative;z-index:2;width:50px;height:145px;border:4px solid #bd8155;border-radius:5px;background:#e8bd82}.hole-card i{position:absolute;left:50%;top:50%;width:22px;height:22px;border-radius:50%;background:#173e48;transform:translate(-50%,-50%)}.hole-card.moving{transform:translateY(var(--hole-shift,0))}.light-screen{position:relative;z-index:2;width:36px;height:180px;border:5px solid #a8b7b9;background:#eef7f5}.light-screen i{position:absolute;left:50%;top:50%;width:22px;height:22px;border-radius:50%;background:#ffe580;box-shadow:0 0 18px #ffe580;transform:translate(-50%,-50%)}.light-screen b{position:absolute;top:100%;left:50%;color:#d8e8e7;font-size:10px;transform:translateX(-50%)}.light-screen.blocked i{opacity:0}.lab45-conclusion,.behavior-answer{padding:14px 16px;border-left:5px solid var(--lab-gold);border-radius:8px;background:#fff;line-height:1.5}.lab45-conclusion strong,.behavior-answer strong{color:#27717e}
.behavior-stage{position:relative;height:260px;overflow:hidden;border-radius:15px;background:linear-gradient(#173e48,#24606a)}.behavior-source{position:absolute;left:7%;top:calc(50% - 12px)}.behavior-material{position:absolute;z-index:3;left:58%;top:27%;display:grid;place-items:center;width:90px;height:130px;border:3px solid #aac5c5;border-radius:8px;background:rgba(255,255,255,.85);font-size:53px}.incoming-ray,.outgoing-ray{position:absolute;z-index:2;left:13%;top:50%;width:45%;height:7px;background:#ffe274;box-shadow:0 0 13px #ffe274;transform-origin:left}.incoming-ray::after,.outgoing-ray::after{content:"";position:absolute;right:-2px;top:50%;width:10px;height:10px;border-top:3px solid #fff0a0;border-right:3px solid #fff0a0;transform:translateY(-50%) rotate(45deg)}.outgoing-ray{left:calc(58% + 90px);width:27%}.behavior-stage[data-behavior=reflect] .outgoing-ray{left:58%;top:50%;width:32%;transform:rotate(152deg)}.behavior-stage[data-behavior=refract] .outgoing-ray{top:54%;transform:rotate(13deg)}.behavior-stage[data-behavior=absorb] .outgoing-ray{display:none}.behavior-stage[data-behavior=transmit] .outgoing-ray{top:50%}.energy-dots{display:none;position:absolute;left:64%;top:35%;color:#f38b4c;font-size:30px}.behavior-stage[data-behavior=absorb] .energy-dots{display:block;animation:heat-pop .6s infinite alternate}.behavior-answer{margin-top:10px}.behavior-answer p{margin:4px 0;color:#526862}
.shadow-stage{position:relative;height:270px;overflow:hidden;border-radius:15px;background:linear-gradient(#173e48,#225b62)}.shadow-flashlight{position:absolute;left:4%;top:calc(50% - 12px)}.shadow-cone{position:absolute;left:10%;right:8%;top:23%;height:55%;background:linear-gradient(90deg,rgba(255,232,125,.8),rgba(255,241,173,.25));clip-path:polygon(0 44%,100% 0,100% 100%,0 56%)}.shadow-object{position:absolute;z-index:3;left:var(--object-left,45%);top:31%;color:#142e33;font-size:58px;filter:drop-shadow(0 2px 1px #fff);transform:translateX(-50%)}.shadow-wall{position:absolute;z-index:2;right:4%;top:8%;width:80px;height:84%;border:5px solid #aab9b8;background:#e9f2ee}.shadow-wall i{position:absolute;left:50%;top:43%;color:#243c3c;font-size:var(--shadow-size,78px);font-style:normal;opacity:var(--shadow-opacity,.9);filter:blur(var(--shadow-blur,0));transform:translate(-50%,-50%);transition:.2s}.shadow-wall b{position:absolute;top:100%;left:50%;color:#d9e9e7;font-size:10px;transform:translateX(-50%)}
@media(max-width:760px){.energy-machine{grid-template-columns:1fr 1fr}.energy-flow{grid-column:1/-1}.source-observation,.friction-scene{grid-template-columns:1fr}.friction-controls{grid-template-columns:1fr}.straight-scene{gap:5px}.hole-card{width:33px}.behavior-material{left:57%;width:70px}}@media(max-width:480px){.energy-machine{grid-template-columns:1fr}.energy-flow{grid-column:auto;flex-direction:column}.straight-scene{height:200px}.flashlight{font-size:35px}.hole-card{height:120px}.source-properties{flex-direction:column}}
