/* ==========================================================
   NO-BLANK STABILITY LAYER — 09 SEP 2026
   Keeps motion visible and smooth without ever hiding whole
   sections/cards while waiting for IntersectionObserver/JS.
   ========================================================== */

/* Never make content fully invisible as an entrance state. */
.premium-motion-v3 .pm3-card,
.premium-motion-v3 .pm3-section .story-body>p,
.premium-motion-v3 .pm3-section .tr-section-head p:not(.tr-kicker),
.premium-motion-v3 .pm3-section .tr-story-heading p:not(.tr-kicker),
.premium-motion-v3 .pm3-section .tr-results-title p:not(.tr-kicker),
.premium-motion-v3 .pm3-section .doc-founder-copy>p,
.premium-motion-v3 .pm3-section .home-lab-choice__head>p,
.premium-motion-v3 .real-session-shot figcaption,
.premium-motion-v3 .premium-list li>span,
.premium-motion-v3 .home-lab-choice__number,
.premium-motion-v3 .home-lab-choice__training-logo,
.premium-motion-v3 .home-lab-choice__business-mark,
.premium-motion-v3 .doc-question-card>span,
.premium-motion-v3 .tr-impact-grid article>span,
.premium-motion-v3 .result-card-refined>span{
  opacity:1!important;
}

/* Headings are always readable. Animate position only, never mask them away. */
.premium-motion-v3 .pm3-section .story-main>h2,
.premium-motion-v3 .pm3-section .tr-section-head h2,
.premium-motion-v3 .pm3-section .tr-story-heading h2,
.premium-motion-v3 .pm3-section .tr-results-title h2,
.premium-motion-v3 .pm3-section .real-session-gallery-head h2,
.premium-motion-v3 .pm3-section .home-lab-choice__head h2,
.premium-motion-v3 .pm3-section .doc-founder-heading h2,
.premium-motion-v3 .pm3-section .tr-founder-copy h2,
.premium-motion-v3 .pm3-section .doc-multilingual h2{
  clip-path:none!important;
}

/* Image/card reveals must never create an empty section. */
.premium-motion-v3 .content-hero-media,
.premium-motion-v3 .tr-hero-picture,
.premium-motion-v3 .impact-ribbon-card.pm3-card,
.premium-motion-v3 .real-session-shot.pm3-card,
.premium-motion-v3 .home-lab-choice__card.pm3-card,
.premium-motion-v3 .tr-founder-image.pm3-card{
  clip-path:none!important;
}

/* Hero is fail-safe visible even if an animation script is interrupted. */
.premium-motion-v3 .pm3-word,
.premium-motion-v3 .content-hero-copy>.eyebrow,
.premium-motion-v3 .tr-hero-copy>.tr-kicker,
.premium-motion-v3 .content-hero-copy>p:not(.eyebrow),
.premium-motion-v3 .tr-hero-copy>p:not(.tr-kicker),
.premium-motion-v3 .doc-hero-actions{
  opacity:1!important;
}
.premium-motion-v3 .pm3-word{transform:none!important;will-change:auto!important;}
.premium-motion-v3 .content-hero-media>img,
.premium-motion-v3 .tr-hero-bg{transform:scale(1.01)!important;}

/* Keep the scroll entrance premium, but make it a light positional settle. */
.premium-motion-v3 .pm3-card{
  transform:translate3d(0,18px,0) scale(.992)!important;
  rotate:none!important;
  transition-duration:.42s,.62s,.24s!important;
}
.premium-motion-v3 .sa-stagger-card.pm3-card:nth-child(odd),
.premium-motion-v3 .impact-band.pm3-card:nth-child(odd){transform:translate3d(-22px,10px,0) scale(.995)!important;}
.premium-motion-v3 .sa-stagger-card.pm3-card:nth-child(even),
.premium-motion-v3 .impact-band.pm3-card:nth-child(even){transform:translate3d(22px,10px,0) scale(.995)!important;}
.premium-motion-v3 .pm3-section.pm3-inview .pm3-card,
.premium-motion-v3 .pm3-card.pm3-direct-in,
.premium-motion-v3 .pm3-section.pm3-inview .sa-stagger-card.pm3-card,
.premium-motion-v3 .pm3-section.pm3-inview .impact-band.pm3-card{transform:none!important;}

/* Side labels remain visible instead of appearing like a missing block. */
.premium-motion-v3 .pm3-section .story-aside,
.premium-motion-v3 .pm3-section .tr-kicker,
.premium-motion-v3 .pm3-section>.eyebrow,
.premium-motion-v3 .pm3-section .real-session-gallery-head>.eyebrow{
  opacity:.78!important;
  transform:translate3d(-10px,4px,0);
}
.premium-motion-v3 .pm3-section.pm3-inview .story-aside,
.premium-motion-v3 .pm3-section.pm3-inview .tr-kicker,
.premium-motion-v3 .pm3-section.pm3-inview>.eyebrow,
.premium-motion-v3 .pm3-section.pm3-inview .real-session-gallery-head>.eyebrow{opacity:1!important;transform:none;}

/* Avoid expensive full-section animation layers during active scrolling. */
body.scroll-active .pm3-section,
body.scroll-active .pm3-card{
  will-change:auto!important;
}
body.scroll-active .pm3-card{
  transition-duration:.18s!important;
}

/* If JS is unavailable, everything still renders in its final state. */
html:not(.premium-motion-v3) .pm3-card,
html:not(.premium-motion-v3) .pm3-section,
html:not(.premium-motion-v3) .content-hero-media,
html:not(.premium-motion-v3) .tr-hero-picture{
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
}

@media(max-width:900px){
  .premium-motion-v3 .pm3-card,
  .premium-motion-v3 .sa-stagger-card.pm3-card:nth-child(odd),
  .premium-motion-v3 .sa-stagger-card.pm3-card:nth-child(even),
  .premium-motion-v3 .impact-band.pm3-card:nth-child(odd),
  .premium-motion-v3 .impact-band.pm3-card:nth-child(even){
    transform:translate3d(0,12px,0) scale(.996)!important;
  }
  .premium-motion-v3 .pm3-section.pm3-inview .pm3-card{transform:none!important;}
}

/* Legacy reveal systems also existed underneath the newer motion pass.
   They must never be allowed to hide the same element a second time. */
.reveal,
.premium-motion-v2 .pm-reveal{
  opacity:1!important;
  filter:none!important;
}
.reveal:not(.visible){transform:translate3d(0,10px,0) scale(.998)!important;}
.premium-motion-v2 .pm-reveal:not(.pm-in){transform:translate3d(0,10px,0) scale(.998)!important;}
.premium-motion-v2 .pm-reveal.pm-from-left:not(.pm-in){transform:translate3d(-12px,5px,0) scale(.998)!important;}
.premium-motion-v2 .pm-reveal.pm-from-right:not(.pm-in){transform:translate3d(12px,5px,0) scale(.998)!important;}
.premium-motion-v2 .pm-image-reveal img{opacity:1!important;filter:none!important;}

/* Ecosystem must remain visible even if its observer is delayed or blocked. */
.tl-ecosystem-redesign:not(.eco-live) .tl-route-hub,
.tl-ecosystem-redesign:not(.eco-live) .tl-route-card,
.tl-ecosystem-redesign:not(.eco-live) .tl-route-orbit,
.tl-ecosystem-redesign:not(.eco-live) .tl-route-scan,
.tl-ecosystem-redesign:not(.eco-live) .tl-route-connector{
  opacity:1!important;
}
