:root{--ink:#203343;--muted:#52666f;--ivory:#fbf5e7;--paper:#fffdf7;--sage:#668473;--blue:#738b9d;--line:#c8d2ca;--amber:#d9922d;--shadow:0 18px 44px rgba(38,55,60,.12)}*{box-sizing:border-box}.mirror-page{margin:0;background:var(--ivory);color:var(--ink)}.mirror-main{width:min(1220px,calc(100% - 36px));margin:auto;padding:48px 0 118px}.tool-heading{max-width:860px;margin-bottom:24px}.eyebrow,.stage-kicker{margin:0 0 8px;color:#456a55;font-weight:850;letter-spacing:.07em}.tool-heading h1{margin:0;font-size:clamp(2.2rem,5vw,4rem);line-height:1.08}.lead,.hint,.boundary,.observation{color:var(--muted);line-height:1.7}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip,.result-pill{display:inline-flex;align-items:center;min-height:34px;border:1px solid #aebfb3;border-radius:999px;background:#f2f6ef;padding:5px 12px;color:#294c3a;font-weight:800}.mirror-lab{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.7fr);gap:22px;align-items:start}.stage,.control-panel{border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:var(--shadow)}.stage{padding:22px}.control-panel{padding:22px;position:sticky;top:18px}.stage-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.stage h2,.control-panel h2{margin:0}.optics-scene{touch-action:none;overflow:hidden;border-radius:20px;background:#f1eadc}.optics-scene svg{display:block;width:100%;height:auto;min-height:370px}.bench{fill:#f5eedf;stroke:#c8baa0;stroke-width:2}.obstacles rect{fill:#7d8f98;stroke:#4e6571;stroke-width:3}.source circle{fill:#f0b04a;stroke:#71512d;stroke-width:4}.source path{stroke:#d9922d;stroke-width:10;stroke-linecap:round}.source text,.mirror-label{fill:#203343;font-size:18px;font-weight:800}.target{fill:#d8e4d5;stroke:#52735d;stroke-width:4}.target-halo{fill:transparent;stroke:#c5d7c7;stroke-width:7}.target-label{fill:#294b37;font-size:14px;font-weight:900}.mirror line{stroke:#738b9d;stroke-width:14;stroke-linecap:round;filter:drop-shadow(0 3px 2px rgba(32,51,67,.18));transform-box:fill-box;transform-origin:center}.mirror circle{fill:transparent;stroke:transparent;stroke-width:5;cursor:grab}.mirror.selected circle{stroke:#b66f18;stroke-dasharray:7 5}.mirror:focus-visible circle{stroke:#b66f18;stroke-width:7}.mirror:active circle{cursor:grabbing}#lightPath{fill:none;stroke:#d9922d;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(217,146,45,.45));transition:opacity .12s}.mirror-lab[data-reached="true"] .target{fill:#f6cf68;stroke:#8b5d16}.mirror-lab[data-reached="true"] .target-halo{stroke:#e4a943;opacity:.85}.mirror-tabs,.turn-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mirror-tab,.turn-buttons button,.reset-button{min-height:48px;border-radius:13px;padding:10px 12px;font:inherit;font-weight:850}.mirror-tab,.turn-buttons button{border:1px solid #81968a;background:#f5f7f1;color:#203343}.mirror-tab.active{background:#dfeadf;border-color:#52735d}.reset-button{width:100%;margin-top:10px;border:1px solid #748b80;background:#fff;color:#203343}.mirror-tab:focus-visible,.turn-buttons button:focus-visible,.reset-button:focus-visible{outline:3px solid #b66f18;outline-offset:3px}.observation{min-height:56px;padding:12px;border-left:5px solid #668473;background:#edf3eb;border-radius:12px;font-weight:750}.result-pill.reached{background:#f8e2a7;border-color:#a56d18;color:#5a3c0d}body.mirror-page.workbench-tool-detail :is(.classroom-screen-toggle,.fullscreen-button,.strip-button,.modal-close){min-width:44px;min-height:44px}body.mirror-page.workbench-tool-detail :is(.classroom-screen-toggle,.fullscreen-button,.strip-button,.modal-close):focus-visible{outline:3px solid #b66f18;outline-offset:3px}body.classroom-screen.mirror-page{background:#f7f1e3;color:#203343}body.classroom-screen.mirror-page :is(.stage,.control-panel){background:#fffdf7!important;color:#203343!important}body.classroom-screen.mirror-page .classroom-toolbar{background:#f2f6ef!important;color:#203343!important;border-bottom-color:#aec0b4!important}body.classroom-screen.mirror-page .classroom-toolbar :is(h2,.stage-kicker){color:#203343!important}
body.mirror-page #top .tool-heading .lead{color:#465b63!important}
body.mirror-page .classroom-toolbar{background:#f2f6ef!important;color:#203343!important;border-bottom-color:#aec0b4!important}
body.mirror-page .classroom-toolbar :is(#labTitle,.stage-kicker){color:#203343!important}
body.mirror-page :is(.classroom-screen-toggle,.fullscreen-button){border:1px solid #71867b!important;background:#f2f6ef!important;color:#203343!important}
body.mirror-page :is(.classroom-screen-toggle,.fullscreen-button):hover{background:#e1ebe0!important;color:#203343!important}
body.classroom-screen.mirror-page :is(.control-panel,#controlTitle,.hint,.observation,.boundary){color:#203343!important}
body.classroom-screen.mirror-page .hint{background:transparent!important;border:0!important;box-shadow:none!important}
body.classroom-screen.mirror-page .observation{background:#edf3eb!important;color:#294536!important}
body.classroom-screen.mirror-page .boundary{color:#405660!important}
body.mirror-page :is(.site-brand,.site-links a){min-height:44px;display:inline-flex;align-items:center}
@media(max-width:820px){.mirror-main{width:min(100% - 24px,720px);padding-top:30px}.mirror-lab{grid-template-columns:1fr}.control-panel{position:static}.optics-scene svg{min-height:0}.stage-head{align-items:flex-start}}
@media(max-width:460px){.mirror-main{width:calc(100% - 16px)}.stage,.control-panel{padding:14px;border-radius:18px}.tool-heading h1{font-size:2.2rem}.mirror-tabs,.turn-buttons{gap:7px}.mirror-tab,.turn-buttons button{padding:8px 5px;font-size:.93rem}.stage-head{display:grid}.result-pill{justify-self:start}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.001ms!important}}
