/* A teaching stage, not a stack of text cards. */
.movie{margin:1.3rem 0 2rem}.movie-intro{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.movie-intro h1{margin:0;font-size:1.7rem;line-height:1.45}.movie-intro .eyebrow{margin-bottom:.25rem}.movie-frame{overflow:hidden;border-radius:22px;background:#142b42;border:1px solid #243f58;box-shadow:0 16px 42px #1836521b}.movie-stage{position:relative;isolation:isolate;width:100%;aspect-ratio:16/10;background:#eef7fb;container-type:inline-size;overflow:hidden}.stage-background{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.52;z-index:-2}.bg-paper{background:linear-gradient(135deg,#f5fbff,#eaf5fb)}.bg-timeline{background:linear-gradient(#fafcff 74%,#dcebf1 74.5%,#f8fbfd 75%)}.bg-room{background:#f7f1e5}.scene-chapter{position:absolute;left:3%;top:3%;font-size:clamp(13px,1.8cqw,18px);font-weight:750;letter-spacing:.08em;color:#527184;border-left:3px solid #e5a84b;padding-left:.6rem;z-index:4;background:#f8fcffee}.stage-objects,.stage-lines{position:absolute;inset:0;width:100%;height:100%}.stage-lines{pointer-events:none;z-index:3;overflow:visible}.scene-object{position:absolute;display:flex;align-items:center;justify-content:center;transform-origin:50% 50%;line-height:1.4;color:var(--object-color,#246fc1);will-change:transform,left,top,opacity;pointer-events:none}.scene-object.token{border:2px solid color-mix(in srgb,var(--object-color) 30%,white);background:#fff;box-shadow:0 7px 0 #26496312;border-radius:clamp(7px,1.5cqw,16px);padding:.1rem .2rem;font-weight:750}.scene-object.token.is-highlighted{background:color-mix(in srgb,var(--object-color) 12%,white);border-color:var(--object-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--object-color) 17%,transparent),0 7px 0 #26496312}.object-text{max-width:100%;white-space:pre-line;overflow-wrap:break-word;text-wrap:pretty;display:block;text-align:center}.scene-object.text{font-weight:550;padding:.2rem;color:#253c52}.scene-object.text.is-highlighted{background:#ffe9a799;border-radius:8px}.scene-object.marker{font-weight:800;border-radius:50%;color:#835411;background:#ffedb9;border:2px solid #ddb864}.scene-object.marker .object-text{font-size:clamp(14px,2.8cqw,24px)!important}.scene-object.sprite img{max-width:100%;width:100%;height:100%;object-fit:contain;display:block}.scene-object.sprite.is-highlighted{filter:drop-shadow(0 0 7px #e9af40)}.scene-object.shape svg{width:100%;height:100%;overflow:visible}.scene-object.shape-rect{border:3px solid currentColor;border-radius:10px;background:#ffffffaa}.scene-object.shape-circle{border:3px solid currentColor;border-radius:50%;background:#ffffffaa}.scene-object.shape.is-highlighted{background-color:#ffe6a944}.object-trace{position:absolute;bottom:6%;left:0;height:5px;border-radius:3px;background:#e9ad3b;width:0;pointer-events:none}.object-count{position:absolute;right:-.4rem;top:-.5rem;min-width:1.8rem;height:1.8rem;line-height:1.8rem;text-align:center;border-radius:50%;background:#164b91;color:#fff;font-size:1rem;font-weight:800;border:2px solid #fff}.asset-missing{border:2px dashed #b47030;border-radius:12px;background:#fff8e8;font-size:14px;color:#714b1a}.movie-start{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;gap:.5rem;align-items:center;width:max-content;max-width:95%;padding:.9rem 1.3rem;border-radius:18px;background:#ffffffec;box-shadow:0 8px 30px #24476b2b}.movie-start[hidden]{display:none}.movie-start button{background:#143e65;color:#fff;display:flex;align-items:center;gap:.8rem;font-size:1.1rem;padding:.8rem 1.3rem}.play-symbol{width:2rem;height:2rem;border-radius:50%;background:#ffe0a1;color:#26465f;display:flex;align-items:center;justify-content:center;font-size:.85rem;padding-left:.15rem}.movie-start>span{font-size:.875rem;color:#526477}.movie-caption{display:flex;align-items:center;gap:1rem;background:#fff;padding:1.1rem 1.5rem;min-height:80px}.caption-step{font-weight:800;font-size:.8rem;color:#9f6d19;letter-spacing:.06em;border:1px solid #e8c374;border-radius:8px;padding:.25rem .55rem}.movie-caption p{font-size:1.2rem;line-height:1.65;font-weight:700;margin:0;color:#1d3d58}.movie-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;padding:.8rem 1rem;color:#eef7ff}.movie-controls button{font-size:.85rem;min-height:42px;padding:.6rem .7rem}.movie-controls .quiet{border:1px solid #688095;color:#f0f7ff;background:transparent}.movie-controls .play-control{background:#ffda91;color:#153951;min-width:88px}.movie-time{margin:0 .35rem;font-size:.875rem;color:#cadce9}.movie-rate{display:flex;align-items:center;gap:.4rem;margin-left:auto;font-size:.8rem}.movie-rate select{padding:.4rem .3rem;border-color:#768fa4;border-radius:7px;background:#213d56;color:#fff;width:auto;font-size:.85rem}.movie-progress{height:4px;background:#40556d}.movie-progress>div{height:100%;background:#ffda91;width:0}.shot-nav{display:flex;overflow-x:auto;gap:.5rem;margin:1rem 0;padding-bottom:.4rem;scrollbar-width:thin}.shot-nav button{flex:0 0 auto;display:flex;align-items:center;gap:.45rem;background:#fff;border:1px solid #d5e1eb;font-size:.85rem;color:#536d84;min-height:42px;padding:.55rem .7rem}.shot-nav button span{font-size:.75rem;font-weight:800;color:#95a5b5}.shot-nav button[aria-current=step]{border-color:#246fc1;background:#eaf3fe;color:#164b91}.shot-nav button[aria-current=step] span{color:#164b91}.movie-question,.movie-complete{background:#fffaf0;border:2px solid #dfad54;border-radius:18px;padding:1.5rem;margin:1rem 0}.movie-question h3{font-size:1.25rem;margin:.5rem 0}.movie-question p{color:#695934;margin-bottom:.8rem}.movie-question-choices{display:flex;flex-wrap:wrap;gap:.65rem}.movie-question-choices button{background:#fff;border:2px solid #b58b3d;color:#4f3e1c;font-size:1.1rem;min-width:80px;min-height:52px}.movie-question-choices .quiet{font-size:.9rem;color:#6a5f49;border:1px solid #d5c7a8;min-width:auto}.movie-note{font-size:.875rem;color:#52677d;margin:1rem 0}.movie-transcript,.movie-scope{margin:.7rem 0;color:#36526c}.movie-transcript summary,.movie-scope summary{cursor:pointer;font-size:.9rem;font-weight:600;min-height:36px}.movie-transcript p,.movie-scope p{font-size:1rem;line-height:1.8;white-space:pre-line;margin:.7rem 0}.movie-expanded{position:fixed;inset:0;z-index:20;background:#f2f6fa;overflow:auto;padding:1rem max(1rem,calc((100vw - 1100px)/2))}.movie-expanded .movie{margin:0}.movie-expanded .movie-intro{margin-bottom:.7rem}.movie-loading{padding:3rem;background:#eaf5fb;border-radius:20px;text-align:center}.movie-stage[data-kind=reading],.movie-stage[data-kind=dialogue]{background:#fcfbf4}.movie-stage[data-kind=reading] .scene-object.text,.movie-stage[data-kind=dialogue] .scene-object.text{background:#ffffffe8;border-radius:8px}.movie-stage[data-kind=sentence] .scene-object.token{border-bottom-width:5px}.movie-stage[data-kind=phonics] .scene-object.token{font-weight:800}.movie-complete h3{font-size:1.4rem}.movie-complete button{margin-right:.5rem}
@media(max-width:760px){.movie-intro{align-items:flex-start}.movie-intro h1{font-size:1.3rem}.movie-intro .quiet{font-size:.8rem;min-height:40px;padding:.55rem;white-space:nowrap}.movie-frame{border-radius:15px}.movie-stage{aspect-ratio:4/3}.movie-stage[data-kind=reading],.movie-stage[data-kind=dialogue]{aspect-ratio:1/1}.movie-caption{padding:.85rem 1rem;gap:.7rem;min-height:76px}.movie-caption p{font-size:1.05rem}.movie-controls{padding:.7rem;gap:.4rem}.movie-controls button{font-size:.8rem;min-height:44px}.movie-rate{margin-left:0}.movie-start{bottom:4%;padding:.7rem 1rem;border-radius:12px}.movie-start button{font-size:.95rem;padding:.7rem}.movie-start>span{font-size:.8rem}.movie-question,.movie-complete{padding:1.1rem}.movie-question-choices button{flex:1}.movie-expanded{padding:.6rem}.object-count{min-width:1.4rem;height:1.4rem;line-height:1.1rem;font-size:.75rem}.scene-chapter{font-size:12px}.scene-object.token{border-width:1px;border-bottom-width:3px!important;box-shadow:0 3px 0 #26496312}.object-trace{height:3px}}
@media(prefers-reduced-motion:reduce){.scene-object{will-change:auto}.movie-progress>div{transition:none}}

.watch-mode .unit-heading{display:none}.watch-mode #focus-toggle{display:none}.watch-mode .mode-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.3rem;margin:.3rem 0 .6rem}.watch-mode .mode-tabs button{flex:0 0 auto}.watch-mode .movie{margin-top:.8rem}.watch-mode .movie-intro h1{margin:0}.watch-mode #main{padding-top:1.2rem}

.movie-teacher-cue{background:#fff6df;border:1px dashed #bd9b54;border-radius:10px;padding:.65rem 1rem;margin:1rem 0}.movie-teacher-cue summary{font-weight:700;color:#70531b;cursor:pointer}.movie-teacher-cue p{white-space:pre-line;line-height:1.8;margin-top:.8rem}.movie-teacher-cue[hidden]{display:none}

.movie-frame .movie-question,.movie-frame .movie-complete{margin:0;border:0;border-top:2px solid #dfad54;border-radius:0;padding:1rem 1.4rem}.movie-frame .movie-question{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 1rem}.movie-frame .movie-question h3{font-size:1.1rem}.movie-frame .movie-question p{font-size:.875rem;margin:.3rem 0}.movie-frame .movie-question-choices{max-width:460px}@media(max-width:760px){.movie-frame .movie-question{display:block;padding:.85rem 1rem}.movie-frame .movie-question-choices{margin-top:.7rem}.movie-question-choices button{min-height:46px;font-size:1rem}}

.scene-object.token .object-text{white-space:nowrap;overflow-wrap:normal;word-break:normal;line-height:1.25}

/* 2.1: readable explanations, enlarged text equivalent, and viewport-fit projection. */
.caption-copy{min-width:0;flex:1}.movie-caption{align-items:flex-start}.movie-caption .movie-narration{font-size:1rem;font-weight:500;line-height:1.75;margin-top:.35rem;white-space:pre-line}.movie-narration[hidden]{display:none}.movie-readable-scene{display:none;background:#eef6ff;color:#183c61;padding:.75rem 1rem}.large-text .movie-readable-scene:not(:empty){display:block}.movie-readable-scene>div{display:flex;gap:.5rem 1rem;flex-wrap:wrap}.movie-readable-scene span{font-size:1.4rem;line-height:1.8}.large-text .movie-caption .movie-narration{font-size:1.3rem}.movie-expanded{padding:.5rem}.movie-expanded .movie{height:calc(100dvh - 1rem);display:flex;flex-direction:column;margin:0}.movie-expanded .movie-intro{flex:none;margin:0 0 .5rem}.movie-expanded .movie-intro h1{font-size:1.2rem}.movie-expanded .movie-intro .eyebrow{display:none}.movie-expanded .movie-frame{flex:1;min-height:0;display:flex;flex-direction:column}.movie-expanded .movie-stage{flex:none;align-self:center;min-height:0;aspect-ratio:16/10}.movie-expanded .movie-caption,.movie-expanded #movie-check,.movie-expanded .movie-readable-scene{flex:none;max-height:23dvh;overflow-y:auto;min-height:0}.movie-expanded .movie-caption{padding:.45rem 1rem}.movie-expanded .movie-caption p{font-size:1rem}.movie-expanded .movie-controls{flex:none;padding:.4rem .6rem}.movie-expanded .movie-progress{flex:none}.movie-expanded .shot-nav,.movie-expanded .movie-note,.movie-expanded .movie-transcript,.movie-expanded .movie-scope,.movie-expanded .movie-teacher-cue{display:none}.movie-expanded .movie-question{padding:.5rem 1rem}.movie-expanded .movie-question p{margin:.2rem 0}.movie-expanded .movie-question-choices button{min-height:44px;padding:.4rem .65rem}.movie-question .subtle{font-size:.875rem}

/* Keep projection content in scroll flow on small/enlarged displays. */
.movie-expanded.movie-scroll .movie{height:auto;min-height:calc(100dvh - 1rem);display:block}.movie-expanded.movie-scroll .movie-frame{display:block;overflow:hidden}.movie-expanded.movie-scroll .movie-stage{width:100%;height:auto;min-height:20rem;aspect-ratio:16/10}.movie-expanded.movie-scroll .movie-caption,.movie-expanded.movie-scroll #movie-check,.movie-expanded.movie-scroll .movie-readable-scene{max-height:none;overflow:visible}.movie-expanded.movie-scroll .movie-controls{display:flex;flex-wrap:wrap}.movie-expanded.movie-scroll .movie-start{top:1rem;bottom:auto;max-width:calc(100% - 2rem)}
