/* Portrait stages stay in document flow; the single renderer follows their measured rectangles. */
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv { --cc-nav:68px; }
 .ph-cctv .cc-scroll-scene+.cc-scroll-scene { margin-top:-100vh; }
 .ph-cctv .cc-setpiece { height:150vh;min-height:150vh;transform:translateY(calc(var(--phone-shift,0)*-55vh)); }
 .ph-cctv .cc-flow,.ph-cctv #cc-4 .cc-flow,.ph-cctv #cc-5 .cc-flow,.ph-cctv #cc-6 .cc-flow,.ph-cctv #cc-7 .cc-flow,.ph-cctv .cc-statement .cc-flow { left:6vw;top:calc(var(--cc-nav) + 18px);width:88vw;bottom:auto;height:46vh;gap:16px; }
 .ph-cctv h2,.ph-cctv .cc-statement h2 { font-size:clamp(28px,7vw,42px); }
 .ph-cctv .cc-flow-body { overflow:clip; }
 .ph-cctv .cc-flow-inner { gap:16px; }
 .ph-cctv .cc-section-head { padding-bottom:14px;gap:12px; }
 .ph-cctv .cc-kicker,.ph-cctv .cc-index,.ph-cctv .cc-step { font-size:12px;letter-spacing:.04em; }
 .ph-cctv .cc-rig-mount,.ph-cctv #cc-2 .cc-rig-mount,.ph-cctv #cc-3 .cc-rig-mount,.ph-cctv #cc-4 .cc-rig-mount,.ph-cctv #cc-5 .cc-rig-mount,.ph-cctv #cc-6 .cc-rig-mount,.ph-cctv #cc-7 .cc-rig-mount,.ph-cctv .cc-finale .cc-rig-mount { left:12%;top:65vh;width:76%;height:32vh; }
 .ph-cctv .cc-hero { height:auto;min-height:145vh;overflow:visible;transform:none; }
 .ph-cctv .cc-hero .cc-rig-mount { top:calc(var(--cc-hero-nav,90px) + 16px);height:38vh; }
 .ph-cctv .cc-camera-stage { left:12%;top:calc(var(--cc-hero-nav,90px) + 16px);width:76%;height:38vh; }
 .ph-cctv .cc-hero-left,.ph-cctv .cc-hero-right { position:static;width:auto;padding:0;opacity:1;gap:16px; }
 .ph-cctv .cc-hero-copy { display:flex;flex-direction:column;gap:24px;padding:calc(var(--cc-hero-nav,90px) + 42vh) 6vw 100px; }
 .ph-cctv .cc-headline { font-size:42px; }
 .ph-cctv .cc-hero .cc-lead,.ph-cctv .cc-hero-right>p:not(.cc-lead) { font-size:15px; }
 .ph-cctv .cc-hero .cc-actions { flex-direction:column;align-items:stretch; }
 .ph-cctv .cc-hero .cc-button,.ph-cctv .cc-hero .cc-text-link { width:100%;padding:15px;text-align:center; }
 .ph-cctv .cc-hero-foot { display:none; }
 .ph-cctv .cc-hero::before { top:25vh;font-size:22vw; }
 .ph-cctv .cc-camera-label,.ph-cctv .cc-camera-corner { visibility:hidden!important; }
 .ph-cctv .cc-feature-visual { left:18vw;top:100vh;width:64vw;height:36vw;max-height:20vh; }
 .ph-cctv #cc-2>.cc-kicker { top:calc(var(--cc-nav) + 20px);font-size:14px; }
 .ph-cctv .cc-pan-arc { left:6vw;top:85vh;width:88vw;height:37vh; }
 .ph-cctv .cc-feature-cards { left:6vw;right:6vw;top:123vh;bottom:auto;padding:0;display:block; }
 .ph-cctv .cc-feature-card { display:none;opacity:.55;padding:12px 0;border-right:0; }
 .ph-cctv .cc-feature-card.is-active { display:block;opacity:1; }
 .ph-cctv .cc-feature-card p { font-size:15px; }
 .ph-cctv .cc-live-phone { left:78vw;top:103vh;width:16vw;height:17vh;font-size:12px;padding:6px; }
 .ph-cctv .cc-monitor-stage { left:6vw;top:102vh;width:88vw;height:21vh; }
 .ph-cctv #cc-3 .cc-rig-mount { left:50%;top:65vh;width:44%;height:31vh; }
 .ph-cctv .cc-capability { display:none; }
 .ph-cctv .cc-capability.is-active { display:block; }
 .ph-cctv .cc-capabilities { position:fixed;left:6vw;top:127vh;width:88vw; }
 .ph-cctv .cc-monitor-hud { font-size:12px;flex-wrap:wrap;justify-content:flex-start; }
 .ph-cctv .cc-monitor-hud span { max-width:100%; }
 .ph-cctv .cc-apps .cc-env-picture { left:6vw;top:100vh;width:88vw;height:23vh; }
 .ph-cctv #cc-4 .cc-rig-mount { left:50%;top:65vh;width:44%;height:32vh; }
 .ph-cctv .cc-apps article>p { left:6vw;top:126vh;width:88vw;font-size:15px; }
 .ph-cctv .cc-env-tabs { gap:0; }
 .ph-cctv .cc-env-tabs button { font-size:16px;padding:9px 0; }
 .ph-cctv #cc-5 .cc-rig-mount { left:0;top:65vh;width:55%;height:35vh; }
 .ph-cctv .cc-network-nodes>div { left:56vw;top:calc(64vh + var(--node-row,0)*11vh);width:38vw;min-height:0;padding:8px;font-size:12px; }
 .ph-cctv .cc-network-nodes>div:first-child { left:6vw;top:103vh;width:42vw; }
 .ph-cctv .cc-network-nodes span { font-size:12px; }
 .ph-cctv .cc-network-copy li { display:none; }
 .ph-cctv .cc-network-copy li.is-active { display:block; }
 .ph-cctv .cc-process { top:120vh;bottom:auto;width:88vw;display:flex;gap:0; }
 .ph-cctv .cc-process li { display:none; }
 .ph-cctv .cc-process li.is-active { display:block; }
 .ph-cctv .cc-process h3 { font-size:18px; }
 .ph-cctv .cc-room-plan { left:6vw;top:87vh;width:88vw;height:17vh; }
 .ph-cctv .cc-health-ring { left:25vw;top:88vh;width:50vw;height:8vh; }
 .ph-cctv #cc-7 .cc-rig-mount { top:64vh;height:40vh; }
 .ph-cctv #cc-7 .cc-visual { left:6vw;top:106vh;width:88vw; }
 .ph-cctv .cc-priority h3 { font-size:18px; }
 .ph-cctv .cc-priority p { font-size:15px; }
 .ph-cctv .cc-services,.ph-cctv .cc-faq { padding:calc(var(--cc-nav) + 20px) 6vw 90px; }
 .ph-cctv .cc-services { margin-top:-100vh; }
 .ph-cctv .cc-reading-mount { float:none;position:relative;top:auto;left:auto;margin:0 0 30px;width:88vw;height:35vh; }
 .ph-cctv .cc-finale .cc-rig-mount { top:calc(var(--cc-nav) + 20px);height:35vh; }
 .ph-cctv .cc-finale { transform:none; }
 .ph-cctv .cc-finale-copy { left:6vw;right:6vw;top:calc(var(--cc-nav) + 39vh);bottom:auto;padding:12px 0 90px;gap:16px; }
 .ph-cctv .cc-finale-copy h2 { font-size:28px; }
 .ph-cctv .cc-finale-copy>p { font-size:15px; }
 .ph-cctv .cc-finale-copy .cc-actions { flex-direction:column;align-items:stretch;width:100%;gap:16px; }
 .ph-cctv .cc-signoff { font-size:17px;margin-top:8px; }
 .ph-cctv .cc-signoff small { font-size:12px; }
 .ph-cctv .cc-feeds-final { top:48vh;grid-template-columns:40vw 40vw;grid-template-rows:15vh 15vh;height:32vh; }
 .ph-cctv .cc-rig-graphics { stroke-width:1; }
}
@media(min-width:700px) and (orientation:portrait) {
 .ph-cctv .cc-flow { width:82vw;left:9vw; }
 .ph-cctv h2,.ph-cctv .cc-statement h2 { font-size:42px; }
 .ph-cctv .cc-hero-copy { padding-left:9vw;padding-right:9vw; }
 .ph-cctv .cc-hero-left,.ph-cctv .cc-hero-right { max-width:650px; }
 .ph-cctv .cc-headline { font-size:56px; }
 .ph-cctv .cc-feature-card h3 { font-size:24px; }
 .ph-cctv .cc-finale-copy { left:12vw;right:12vw; }
}
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-capabilities { position:absolute;top:124vh; }
 .ph-cctv .cc-step-detail { position:absolute;left:6vw;top:107vh;width:88vw; }
 .ph-cctv .cc-finale { transform:translateY(calc(var(--finale-phone-shift,0)*-40vh)); }
 .ph-cctv [data-cc-sticky="cc-hero"] { height:auto!important; }
 .ph-cctv [data-cc-sticky="cc-hero"] .cc-sticky-stage { position:relative;height:auto; }
 .ph-cctv [data-cc-sticky="cc-statement"] { margin-top:0; }
 .ph-cctv .cc-hero-copy { padding-bottom:110px; }
}
@media(max-width:899px),(orientation:portrait) {
 html:has(.ph-cctv),body:has(.ph-cctv) { overflow-x:clip; }
 .ph-cctv [data-cc-sticky="cc-hero"]+[data-cc-sticky="cc-statement"] { margin-top:0; }
 .ph-cctv .cc-object { top:55%;height:40%;width:40%; }
 .ph-cctv .cc-object span { font-size:12px;margin:4px; }
}
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-statement { transform:none; }
 .ph-cctv .cc-statement .cc-rig-mount { top:55vh;height:35vh; }
 .ph-cctv #cc-5 .cc-rig-mount { height:28vh; }
 .ph-cctv .cc-phone-priorities { position:absolute;left:6vw;top:121vh;width:88vw;max-height:24vh;overflow:auto; }
 .ph-cctv .cc-phone-priorities .cc-priority { padding:6px 0; }
 .ph-cctv .cc-phone-priorities h3 { font-size:16px; }
}
@media(max-width:899px),(orientation:portrait) { body:has(.ph-cctv) footer { padding-right:6vw;padding-bottom:110px; } }
@media(max-width:899px),(orientation:portrait) { .ph-cctv .cc-phone-priorities { display:block; } }
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-reading-mount { position:sticky;top:calc(var(--cc-nav) + 12px);height:30vh; }
}
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-faq { padding-bottom:45vh; }
 .ph-cctv [data-cc-sticky="cc-finale"] { margin-top:-30vh; }
}
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-statement .cc-flow { height:32vh; }
 .ph-cctv .cc-statement .cc-rig-mount { top:50vh;height:35vh; }
}
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-setpiece { touch-action:pan-y; }
 .ph-cctv .cc-live-phone { left:82vw;width:12vw; }
}
@media(max-width:899px),(orientation:portrait) { .ph-cctv .cc-monitor-grid figcaption { font-size:12px; } }
@media(max-width:899px),(orientation:portrait) {
 .ph-cctv .cc-phone-priorities { height:24vh; }
 .ph-cctv .cc-phone-priorities .cc-priority { position:absolute;left:0;top:0;width:100%; }
 .ph-cctv .cc-phone-priorities .cc-priority p { display:block;visibility:visible; }
}
