/* A thumbnail owns its placeholder before, during and after hover transforms. */
.mini-chat>.mini-chat-media{position:relative;isolation:isolate;overflow:hidden;min-width:0}
.mini-chat-media>.card-placeholder{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;pointer-events:none}
.mini-character>span{position:relative;isolation:isolate}
.mini-character>span>.card-placeholder{inset:0;width:100%;height:100%;aspect-ratio:auto;pointer-events:none}

/* Long introduction sections share a scene that follows the section, not the page. */
.academy-intro{background:#081326;overflow:clip}
.academy-art-band{display:grid;grid-template-columns:minmax(0,1fr);position:relative;isolation:isolate}
.academy-section-backdrop,.academy-band-content{grid-area:1/1;min-width:0}
.academy-section-backdrop{position:sticky;top:0;height:100svh;min-height:650px;align-self:start;z-index:0;pointer-events:none;overflow:hidden}
.academy-section-backdrop .work-image-slot{height:100%;width:100%;aspect-ratio:auto;border:0;border-radius:0}
.academy-section-backdrop img{width:100%;height:100%;object-fit:cover}
.academy-section-backdrop::after{content:'';position:absolute;inset:0;background:linear-gradient(#081326,transparent 22%,transparent 78%,#081326),linear-gradient(90deg,#071323ce,#07132383 55%,#071323bd)}
.academy-band-content{position:relative;z-index:1}
.academy-opening{background:none;padding-block:var(--section-space,80px)}
.academy-features{background:none;padding-bottom:var(--section-space,80px)}
.academy-feature{margin-bottom:var(--section-space,80px)}
.academy-feature-copy{text-shadow:0 2px 12px #020814}
.academy-feature-copy p{color:#e1e8f2}
.academy-roster{padding-block:var(--section-space,80px)}
.academy-cast-grid{gap:var(--cast-gap,18px)}
.academy-roster-group h3{padding:12px 16px;border-left:2px solid #98b4d0;background:linear-gradient(90deg,#081326bf,transparent);color:#eff5ff}
.academy-continuity{max-width:none;width:100%;position:relative;isolation:isolate;padding-block:var(--section-space,80px);text-align:center;background:none}
.academy-continuity>.container{max-width:920px;margin-inline:auto;position:relative;z-index:1}
.academy-continuity>p,.academy-continuity p{margin-inline:auto}
.academy-continuity ol{display:inline-block;text-align:left;margin:20px auto 26px}
.academy-continuity .academy-actions{justify-content:center}
.academy-continuity .academy-section-backdrop{position:absolute;inset:0;height:100%;min-height:0}
.academy-continuity .academy-section-backdrop::after{background:linear-gradient(#081326, #081326aa 25%, #081326c7 85%,#081326)}
.academy-cover-character img{object-position:var(--portrait-position,65% 0)}

/* Anchor the speaker to the bitmap nameplate, independently of the dialogue flow. */
.measure-dialogue>b{position:absolute;left:6%;top:1.5%;width:26%;height:22%;display:flex;align-items:center;justify-content:center;gap:7px;margin:0;white-space:nowrap;font-size:16px;line-height:1}
.measure-dialogue>b small{padding:0;font-size:11px}
.measure-dialogue{padding-top:52px}
@media(min-width:801px) and (max-height:800px){.measure-dialogue{padding-top:43px}.measure-dialogue>b{font-size:14px;margin:0}}
@media(max-width:800px){
 .academy-section-backdrop{min-height:560px}
 .academy-opening,.academy-roster,.academy-continuity{padding-block:clamp(30px,calc(var(--section-space,80px)*.65),104px)}
 .academy-features{padding-bottom:clamp(30px,calc(var(--section-space,80px)*.65),104px)}
 .academy-feature{margin-bottom:clamp(30px,calc(var(--section-space,80px)*.65),104px)}
 .academy-cast-grid{gap:clamp(8px,calc(var(--cast-gap,18px)*.65),26px)}
 .academy-continuity>.container{width:calc(100% - 40px)}
 .academy-continuity ol{padding-left:22px;line-height:1.9}
 .measure-dialogue{padding-top:55px}
 .measure-dialogue>b{font-size:13px;margin:0;gap:5px}
 .measure-dialogue>b small{font-size:10px}
}
