/* Film and frozen evidence share a source plane; a second crop never appears through a dissolve. */
#school-stage .school-plate{
  inset:0;mask-image:none;-webkit-mask-image:none;
  background:var(--school-source-background,#252925);
}
#school-stage #school-film,
#school-stage .school-plate img{
  position:absolute;inset:auto;object-fit:fill;object-position:initial;
  left:var(--school-source-left,0px);top:var(--school-source-top,0px);
  width:var(--school-source-width,100%);height:var(--school-source-height,100%);
  max-width:none;max-height:none;
}
#school-stage .story-copy{animation:none}
#school-stage .school-cutaway{display:none}
/* The source plane's dark surround is deliberate reading space, never a partial white shutter. */
#school-stage .scene-visual{background:var(--school-source-background,#252925)}
#school-stage{--school-source-background:#111713}
#school-stage #school-architecture{z-index:0}
#school-stage #school-film,#school-stage .school-plate{z-index:1}
#school-stage .scene-grain{z-index:2}
/* The transport had inherited an inset gradient, leaving a hard rectangle over source pixels. */
#school-stage .story-footer{background:none;padding:0;border:0}
#school-stage .experience-controls{background:#172018ed;color:var(--ink,#eee9df);border:1px solid var(--rule,#6e785f73);box-shadow:none;backdrop-filter:blur(10px)}
#school-stage .experience-controls .play-control{color:var(--paper,#111713)}
#school-stage[data-phase=followup] .story-copy{color:var(--ink,#eee9df)}
#school-stage .case-scores{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#school-stage .case-scores>div{display:block;min-width:0}
#school-stage .case-scores>div>span{display:block;font:400 11px/1.4 var(--sans);color:var(--muted,#b7c0b2);margin-bottom:7px}
#school-stage .case-scores strong{display:block;font:500 18px/1.3 var(--sans);color:var(--copper,#d9ad75);overflow-wrap:anywhere}
#school-stage .case-variant{background:transparent;border-color:var(--rule,#6e785f73)}
#school-stage .case-variant button{color:var(--ink,#eee9df)}
#school-stage .case-variant button[aria-pressed=true]{background:var(--copper,#d9ad75);color:var(--paper,#111713)}
#school-stage .detection-score{font:500 15px/1.35 var(--sans);letter-spacing:0;margin-block:4px}
#school-stage .detection-readout{min-height:110px}
@media(max-width:760px){
 #school-stage[data-phase=response]{height:100svh;min-height:0;padding:0;overflow:hidden}
 #school-stage[data-phase=response] .scene-visual,#school-stage[data-phase=response] .story-shade{height:100%;inset:0}
 #school-stage[data-phase=response] .story-copy{top:84px;left:22px;right:22px;width:auto}
 #school-stage[data-phase=response] .story-copy h2{font:500 30px/1.08 var(--sans);letter-spacing:-.03em;max-width:345px}
 #school-stage[data-phase=response] .response-panel{position:absolute;top:230px;bottom:105px;left:22px;right:22px;width:auto;height:auto;max-height:none;overflow:auto;overscroll-behavior:contain;margin:0;padding:18px;background:#172018f5}
 #school-stage[data-phase=response] .response-heading h3{font-size:24px;line-height:1.15}
 #school-stage[data-phase=response].is-visible .story-footer{position:absolute;left:22px;right:22px;top:auto;bottom:18px;padding:0;background:none}
 #school-stage[data-phase=response] .concept-disclosure{bottom:80px;font-size:9px}
 #school-stage[data-phase=response] .case-variant button{font-size:11px;min-height:44px}
 #school-stage[data-phase=response] .response-route p{font-size:13px}
 #school-stage[data-phase=response] .decision-buttons{flex-wrap:wrap}
}
@media(max-width:760px) and (max-height:700px){
 #school-stage[data-phase=response] .story-copy{top:35px}
 #school-stage[data-phase=response] .story-copy h2{font-size:26px}
 #school-stage[data-phase=response] .response-panel{top:145px;bottom:95px}
}
#school-stage .response-panel,#school-stage .school-receipt{animation:none}
/* A reduced-motion chapter uses explicit steps; its collapsed height is not a scroll timeline. */
body.reduced-motion #school-story{height:100svh}
body.reduced-motion #school-stage{height:100svh;min-height:0}
body.reduced-motion #school-stage[data-phase=reality] .story-footer{display:flex}
body.reduced-motion #school-stage .opening-classification{bottom:100px;pointer-events:none}
#school-stage[data-phase=observe] .opening-classification{display:block;bottom:100px;pointer-events:none}
#school-stage .concept-disclosure{background:#111713ed;box-shadow:0 0 0 4px #111713ed;pointer-events:none}
