:root{--ink:#203343;--muted:#586b73;--ivory:#fbf5e7;--paper:#fffdf7;--sage:#6f8e77;--blue:#788fa0;--line:#cbd4cb;--amber:#e2a84e;--shadow:0 18px 44px rgba(38,55,60,.12)}*{box-sizing:border-box}.shadow-page{margin:0;background:var(--ivory);color:var(--ink)}.shadow-main{width:min(1180px,calc(100% - 36px));margin:auto;padding:52px 0 118px}.tool-heading{max-width:850px;margin-bottom:26px}.eyebrow,.stage-kicker{margin:0 0 8px;color:#4b705a;font-weight:850;letter-spacing:.07em}.tool-heading h1{margin:0;font-size:clamp(2.2rem,5vw,4rem);line-height:1.08}.lead{color:var(--muted);font-size:1.08rem;line-height:1.75}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip,.phase-pill{display:inline-flex;align-items:center;min-height:34px;border:1px solid #aec0b4;border-radius:999px;background:#f2f6ef;padding:5px 12px;color:#315744;font-weight:800}.shadow-lab{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:24px;align-items:start}.stage,.control-panel{border:1px solid var(--line);border-radius:25px;background:var(--paper);box-shadow:var(--shadow)}.stage{padding:24px}.control-panel{padding:24px;position:sticky;top:18px}.stage-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.stage h2,.control-panel h2{margin:0;line-height:1.25}.shadow-scene{position:relative;min-height:430px;overflow:hidden;border-radius:22px;background:linear-gradient(#eef3ed 0 60%,#dac8a4 60% 64%,#eadfc9 64%);--lamp-x:14%;--lamp-y:68%}.surface{position:absolute;left:8%;right:8%;bottom:61px;height:12px;background:#b69b71;border-radius:50%}.pillar{position:absolute;left:50%;bottom:7px;width:42px;height:180px;transform:translateX(-50%);border:4px solid #5c4937;border-radius:16px 16px 5px 5px;background:linear-gradient(90deg,#a77d52,#d0a979 50%,#906a48);box-shadow:inset -9px 0 10px rgba(61,42,27,.2)}.cast-shadow{--shadow-length:1;position:absolute;bottom:-1px;left:50%;width:calc(180px * var(--shadow-length));height:22px;border-radius:50%;background:linear-gradient(90deg,rgba(41,48,51,.72),rgba(41,48,51,.08));transform-origin:left center;transition:width .5s,transform .5s}.cast-shadow[data-side="left"]{transform:scaleX(-1)}.station-mark{position:absolute;width:62px;height:62px;border:2px dashed #8fa097;border-radius:50%;display:grid;place-items:center;color:#60736a;font-weight:800;background:rgba(255,253,247,.55)}.station-mark.left-low{left:9%;bottom:92px}.station-mark.left-high{left:22%;top:54px}.station-mark.right-low{right:9%;bottom:92px}.lamp{position:absolute;z-index:3;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle,#fff7bd 0 28%,#efb248 32% 56%,#745335 59%);box-shadow:0 0 34px rgba(233,174,72,.75);transition:left .65s,top .65s,bottom .65s;left:9%;bottom:94px}.lamp[data-station="left-high"]{left:22%;bottom:auto;top:56px}.lamp[data-station="right-low"]{left:auto;right:9%;bottom:94px}.path-hint{position:absolute;left:29%;top:47%;width:40%;border-top:2px dashed rgba(89,112,105,.42);transform:rotate(-11deg);text-align:center;color:#64766f;font-size:.82rem}.path-hint span{background:#eef3ed;padding:2px 7px}.boundary,.no-score,.progress{line-height:1.65;color:var(--muted)}.boundary{font-size:.92rem}.result{margin-top:14px;border-left:5px solid var(--sage);border-radius:12px;background:#edf3eb;padding:14px;color:#233f31}.result h3{margin:0 0 8px}.result p{margin:6px 0;line-height:1.65}.control-panel fieldset{border:0;padding:0;margin:12px 0}.choices{display:grid;gap:9px}.choices label{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid #bdc9c0;border-radius:13px;padding:8px 12px;background:#fff;cursor:pointer}.choices label:has(input:checked){border-color:#547863;background:#edf4eb;box-shadow:0 0 0 2px rgba(84,120,99,.15)}.choices input{width:20px;height:20px;accent-color:#476f59}.primary-action,.secondary-action,.reset-button{width:100%;min-height:48px;margin-top:10px;border-radius:13px;padding:10px 14px;font:inherit;font-weight:850}.primary-action{border:0;background:#315f4b;color:#fff}.primary-action:disabled{background:#9ca8a1}.secondary-action{border:1px solid #486e5a;background:#edf4eb;color:#244633}.reset-button{border:1px solid #82938a;background:#fff;color:#243a30}.primary-action:focus-visible,.secondary-action:focus-visible,.reset-button:focus-visible,.choices label:focus-within{outline:3px solid #b56e16;outline-offset:3px}[data-phase="MOVING"] .lamp{animation:lamp-pulse .85s ease-in-out}[data-phase="MOVING"] .cast-shadow{animation:shadow-shift .85s ease-in-out}@keyframes lamp-pulse{50%{transform:scale(1.08)}}@keyframes shadow-shift{50%{opacity:.35}}
body.shadow-page.workbench-tool-detail :is(.classroom-screen-toggle,.fullscreen-button,.strip-button,.modal-close){min-width:44px;min-height:44px}body.shadow-page.workbench-tool-detail :is(.classroom-screen-toggle,.fullscreen-button,.strip-button,.modal-close):focus-visible{outline:3px solid #b56e16;outline-offset:3px}body.shadow-page.workbench-tool-detail .site-brand,body.shadow-page.workbench-tool-detail .site-links a{min-height:44px}body.classroom-screen.shadow-page{background:#f7f1e3;color:var(--ink)}body.classroom-screen.shadow-page .stage,body.classroom-screen.shadow-page .control-panel{background:#fffdf7;color:var(--ink)}body.classroom-screen.shadow-page .result{background:#edf3eb;color:#233f31}body.shadow-page .classroom-screen-toggle:hover{background:#edf3eb!important}body.shadow-page .classroom-screen-toggle[aria-pressed="true"]{background:#dfeadf!important;color:#203343!important}
@media(max-width:820px){.shadow-main{width:min(100% - 24px,700px);padding-top:30px}.shadow-lab{grid-template-columns:1fr}.control-panel{position:static;grid-row:1}.stage{grid-row:2}.shadow-scene{min-height:390px}.stage-head{align-items:flex-start}.phase-pill{flex:none}}
@media(max-width:460px){.shadow-main{width:calc(100% - 16px)}.stage,.control-panel{padding:16px;border-radius:18px}.stage-head{display:grid}.tool-heading h1{font-size:2.25rem}.shadow-scene{min-height:350px}.pillar{height:145px;width:36px}.station-mark{width:52px;height:52px;font-size:.78rem}.lamp{width:50px;height:50px}.cast-shadow{width:calc(125px * var(--shadow-length))}.path-hint{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
.cast-shadow[hidden],.choices[hidden]{display:none!important}
.lamp{right:auto;top:auto;transition:left .65s,top .65s,bottom .65s,right .65s}
.lamp[data-station="parking"]{left:calc(50% - 29px);right:auto;top:28px;bottom:auto}
.lamp[data-station="left-low"]{left:9%;right:auto;top:auto;bottom:94px}
.lamp[data-station="left-high"]{left:22%;right:auto;bottom:auto;top:56px}
.lamp[data-station="right-low"]{left:auto;right:9%;top:auto;bottom:94px}
body.shadow-page :is(.classroom-screen-toggle,.fullscreen-button){border-color:#82938a!important;background:#f2f6ef!important;color:#203343!important}
body.shadow-page :is(.classroom-screen-toggle,.fullscreen-button):hover{border-color:#547863!important;background:#e4eee3!important;color:#203343!important}
body.shadow-page .classroom-screen-toggle[aria-pressed="true"]{background:#dfeadf!important;color:#203343!important}
body.shadow-page .classroom-toolbar #labTitle{color:#203343!important}
body.classroom-screen.shadow-page .classroom-toolbar .stage-kicker{color:#d9eadf!important}
body.classroom-screen.shadow-page .classroom-toolbar #labTitle{color:#f7fbfd!important}

/* XY_TOOL_0010 local audit correction: every active lamp endpoint resolves to
   the same interpolable left/top pair; legacy right/bottom declarations above
   are fully overridden and never become animation endpoints. */
.shadow-scene{--lamp-size:58px}
.lamp{bottom:auto;right:auto;transition:left .65s,top .65s}
.lamp[data-station="parking"]{left:calc(50% - var(--lamp-size)/2);top:28px}
.lamp[data-station="left-low"]{left:9%;top:calc(100% - 94px - var(--lamp-size))}
.lamp[data-station="left-high"]{left:22%;top:56px}
.lamp[data-station="right-low"]{left:calc(91% - var(--lamp-size));top:calc(100% - 94px - var(--lamp-size))}

/* The shared classroom skin supplies light panels for this tool, so its key
   copy must remain dark instead of inheriting the shared dark-panel palette. */
body.classroom-screen.shadow-page :is(.stage,.control-panel){background:#fffdf7!important;color:#203343!important}
body.classroom-screen.shadow-page .classroom-toolbar{background:#f2f6ef!important;color:#203343!important;border-bottom-color:#aec0b4!important}
body.classroom-screen.shadow-page .control-panel :is(h2,#predictionPrompt,.choices label,.progress,.no-score){color:#203343!important}
body.classroom-screen.shadow-page :is(.boundary,.progress,.no-score){color:#465b63!important}
body.classroom-screen.shadow-page :is(.stage,.control-panel) .stage-kicker{color:#315744!important}
body.classroom-screen.shadow-page .classroom-toolbar #labTitle{color:#203343!important}
body.classroom-screen.shadow-page .phase-pill{color:#203f31!important;background:#f2f6ef!important}
body.classroom-screen.shadow-page .result,body.classroom-screen.shadow-page .result :is(h3,p){color:#233f31!important}
@media(max-width:460px){.shadow-scene{--lamp-size:50px}}
