/* Isolated motion-study layer. No other route loads these rules. */
.tx-preview .tx-hero .film{isolation:isolate;background:#112b73;overflow-anchor:none}
.tx-preview .tx-hero .film[data-ross-scene="trap"]{background:#112b73}
.tx-preview .tx-hero .film>canvas{display:none}
.tx-preview .tx-hero .film .stage{z-index:1}
.tx-preview .tx-hero .film[data-ross-scene="plan"],.tx-preview .tx-hero .film[data-ross-scene="final"]{background:#174cf2}
.tx-preview .tx-hero .film[data-ross-scene="turn"]{background:#d5ff83}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .mega .ch{color:#112b73;background:none}
.tx-preview .tx-hero .film[data-ross-scene="turn"] #viz{opacity:0!important}
.ross-backdrop{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ross-orbit{position:absolute;left:75%;top:50%;width:46vw;max-width:700px;aspect-ratio:1;border:1px solid #fff;border-radius:50%;transform:translate(-50%,-50%)}
.ross-orbit::before,.ross-orbit::after{content:"";position:absolute;inset:12%;border:1px solid #fff;border-radius:50%}
.ross-orbit::after{inset:24%;border-style:dashed}
.ross-echo{position:absolute;left:0;bottom:-.15em;font:800 clamp(150px,28vw,540px)/1 Barlow,Arial,sans-serif;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #fff;letter-spacing:-.03em}
.ross-cross{position:absolute;right:5%;top:7%;width:32px;height:32px}
.ross-cross i{position:absolute;left:0;top:15px;width:32px;height:1px;background:#d5ff83}
.ross-cross i:last-child{transform:rotate(90deg)}
.tx-preview .tx-hero .ross-split{text-align:left}
.ross-wipe{position:absolute;inset:0;z-index:5;display:flex;pointer-events:none}
.ross-wipe i{flex:1;transform:scaleY(0);will-change:transform}
.ross-wipe[hidden],.ross-backdrop[hidden],.ross-chapters[hidden],.ross-skip[hidden]{display:none}
.tx-preview .tx-hero .ross-skip[hidden]{display:none}
.tx-preview .tx-hero .f-ctrl{z-index:6}
.tx-preview .tx-hero .f-btn{background:#112b73}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-orbit,.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-orbit::before,.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-orbit::after{border-color:#112b73}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-echo{-webkit-text-stroke-color:#112b73}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-cross i{background:#112b73}
@media(min-width:900px){
 .tx-preview .tx-hero .film{aspect-ratio:16/10;max-height:800px;min-height:600px}
 .tx-preview .tx-start{inset:25% auto auto 7%;text-align:left;font-size:clamp(100px,12vw,210px)}
}
@media(max-width:899px){
 .ross-orbit{width:90vw;left:50%;top:65%}
 .ross-echo{font-size:45vw}
 .ross-cross{width:20px;height:20px;right:20px;top:20px}
 .ross-cross i{width:20px;top:10px}
 .tx-preview .tx-hero .f-ctrl{right:16px}
}
@media(prefers-reduced-motion:reduce){.ross-wipe,.ross-backdrop,.ross-chapters{display:none}}
.tx-preview .tx-hero .film[data-ross-scene="closing"]{background:#112b73}
.tx-preview .tx-hero #k5{text-align:center}
.tx-preview .tx-hero #k5 .ln:first-child{font-size:.36em;line-height:1.2;margin-bottom:.12em}
.tx-preview .tx-hero .ross-closing h2{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:800 220px/.91 Barlow,Arial,sans-serif;letter-spacing:-.035em;text-align:left;margin:0;color:#fff}
.tx-preview .tx-hero .ross-closing h2 span{display:block;white-space:nowrap}
.tx-preview .tx-hero .ross-closing h2 span:last-child{color:#d5ff83}
.tx-preview .tx-hero .ross-closing svg{position:absolute;width:120px;height:120px;right:64px;top:96px;max-width:none;overflow:visible}
.ross-closing svg circle{fill:#d5ff83}
.ross-closing svg path{fill:none;stroke:#112b73;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100}
.tx-preview .tx-hero .film:not(.wide) .ross-closing svg{width:90px;height:90px;right:58px;top:120px}
.tx-preview .tx-hero .film:not(.wide) #k4{line-height:1.05}

/* ---- Motion pass, September 25: handoffs, chapters, no-jump ending ---- */
/* will-change is set by the script on the active beat only */
.tx-preview .tx-hero .ch,.tx-preview .tx-hero .a{will-change:auto}
.tx-preview .tx-hero .scard .nm,.tx-preview .tx-hero .scard .am{transform:translateY(8px);transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1)}
.tx-preview .tx-hero .scard.on .nm,.tx-preview .tx-hero .scard.on .am{transform:none}
/* The server-rendered opening lines mask out upward as the animated beat rises in. */
.tx-preview .tx-start span{display:block;overflow:hidden;padding:.06em 0;margin:-.06em 0;color:#fff}
.tx-preview .tx-start span+span{color:#d5ff83}
.tx-preview .tx-start b{display:block;font-weight:inherit;transition:transform .42s cubic-bezier(.7,0,.84,0)}
.tx-preview .tx-start span+span b{transition-delay:.06s}
.tx-preview .film.is-ready .tx-start{display:block;visibility:hidden;transition:visibility 0s .55s}
.tx-preview .film.is-ready .tx-start b{transform:translateY(-118%)}
/* Chapter scrubber */
.tx-preview .tx-hero .f-replay:not(.on){display:none}
.ross-chapters{position:absolute;left:24px;right:210px;bottom:10px;height:44px;display:flex;gap:6px;z-index:6}
.ross-chapter{flex:0 1 0;min-width:24px;height:44px;margin:0;padding:0;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;color:#fff;font:700 11px/1 Manrope,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;text-align:left}
.ross-chapter-label{opacity:.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}
.ross-chapter.is-current .ross-chapter-label,.ross-chapter:hover .ross-chapter-label,.ross-chapter:focus-visible .ross-chapter-label{opacity:1}
.ross-chapter-bar{display:block;height:3px;margin-bottom:12px;background:#ffffff33;overflow:hidden;transition:background-color .2s ease}
.ross-chapter:hover .ross-chapter-bar{background:#ffffff66}
.ross-chapter-bar i{display:block;height:100%;background:#d5ff83;transform:scaleX(0);transform-origin:left}
.tx-preview .tx-hero .ross-chapter:focus-visible{outline-offset:2px}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-chapter{color:#112b73}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-chapter-bar{background:#112b7333}
.tx-preview .tx-hero .film[data-ross-scene="turn"] .ross-chapter-bar i{background:#112b73}
/* Final screen: brand line is masked for its drop-in */
.tx-preview .tx-hero .tx-final-brand{overflow:hidden}
.tx-preview .tx-hero .tx-final-brand span{display:inline-block}
@media(min-width:900px){
 .tx-preview .tx-hero .film.is-final{display:flex;flex-direction:column;justify-content:center}
}
@media(max-width:899px){
 .ross-chapters{left:16px;right:176px}
 .ross-chapter-label{display:none}
 /* Phones keep the booking copy and service cards under the film for the whole play;
    the final poster reuses the stage box, so the page height never changes. */
 .tx-preview .mf-hero:not(.tx-story-ended)>.ms-need-grid{display:grid}
 .tx-preview .mf-hero:not(.tx-story-ended) .tx-hero>.tx-copy{display:grid}
 .tx-preview .tx-hero .film.is-final{height:calc(125vw + 56px);padding:0}
 .tx-preview .tx-hero .tx-final-layout{position:absolute;inset:0 0 56px;display:flex;flex-direction:column;justify-content:center;padding:24px 24px 0}
 .tx-preview .tx-hero .tx-final-copy h2{font-size:clamp(64px,19vw,120px);margin-bottom:18px}
 .tx-preview .tx-hero .tx-final-service-line{margin:0;max-width:30ch}
}
