/* ==========================================================
   SMOOTH ANIMATION BALANCE — 09 SEP 2026
   Keep premium motion, remove scroll jank/layout jumps.
   ========================================================== */
:root{--sab-ease:cubic-bezier(.16,1,.3,1)}
html{scroll-behavior:auto!important}
body{overflow-x:clip!important}

/* Avoid content-visibility height estimation jumps on animated sections. */
.content-flow>.story-section,
.real-session-gallery-section,
.linkedin-proof,
.tr-testimonials,
.client-logos,
.home-lab-choice,
.doc-results,
.tr-results,
.tr-story-dark{
  content-visibility:visible!important;
  contain:none!important;
  contain-intrinsic-size:none!important;
}

/* The rich motion stays transform/opacity based. Large clip-path animations were
   beautiful but expensive on Safari and Chromium while the page was moving. */
.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;
}
.premium-motion-v3 .pm3-card{
  transition-property:opacity,transform,border-color!important;
  transition-duration:.58s,.72s,.28s!important;
  transition-timing-function:ease,var(--sab-ease),ease!important;
}

/* Never replay entrance choreography; once visible, keep it settled. */
.premium-motion-v3 .pm3-section.pm3-inview .pm3-card,
.premium-motion-v3 .pm3-section.pm3-inview .story-main>h2,
.premium-motion-v3 .pm3-section.pm3-inview .story-body>.lead-compact,
.premium-motion-v3 .pm3-section.pm3-inview .home-lab-choice__head h2,
.premium-motion-v3 .pm3-section.pm3-inview .home-lab-choice__head>p{
  will-change:auto!important;
}

/* Pause every continuous decorative loop while the user scrolls. */
body.scroll-active .client-marquee-track,
body.scroll-active .kinetic-line>div,
body.scroll-active .tr-cinematic-review-stage::after,
body.scroll-active .tl-route-card,
body.scroll-active .tl-route-hub__logo,
body.scroll-active .tl-route-orbit,
body.scroll-active .tl-route-scan,
body.scroll-active .tl-route-hub__halo,
body.scroll-active .tl-route-hub::before,
body.scroll-active .tl-route-num,
body.scroll-active .home-motion-orb{
  animation-play-state:paused!important;
}

/* The old ecosystem float/breathe loops compete with scrolling. Keep the
   reveal choreography, then let the section rest. */
.premium-motion-v3 .tl-ecosystem-redesign.pm3-inview .tl-route-card,
.premium-motion-v3 .tl-ecosystem-redesign.pm3-inview .tl-route-hub__logo{
  animation:none!important;
}
.premium-motion-v3 .tr-cinematic-review-stage.pm3-direct-in::after{animation:none!important}

/* Keep hover premium without large re-rasterising scale/shadow changes. */
@media(hover:hover) and (pointer:fine){
  .premium-motion-v3 .pm3-card:hover{transform:translate3d(0,-3px,0)!important}
}

/* HOME: repair the new purpose heading and give it breathing room. */
.home-lab-choice{padding-top:clamp(74px,6vw,104px)!important}
.home-lab-choice__head{
  align-items:end!important;
  gap:clamp(28px,4vw,72px)!important;
  margin-bottom:clamp(34px,3.6vw,54px)!important;
}
.home-lab-choice__head h2{
  max-width:900px!important;
  font-size:clamp(52px,5vw,82px)!important;
  line-height:.94!important;
  letter-spacing:-.055em!important;
  text-wrap:balance!important;
}
.home-lab-choice__head>p{max-width:470px!important}

/* Use predictable compositor-friendly image movement only. */
.content-hero-media>img,
.home-lab-choice__photo,
.real-session-shot img,
.tr-founder-image img{
  transform:translateZ(0);
  backface-visibility:hidden;
}

/* Avoid huge shadow kernels during scroll and on touch devices. */
body.scroll-active .home-lab-choice__card,
body.scroll-active .real-session-shot,
body.scroll-active .pm3-card,
body.scroll-active .tl-route-card{box-shadow:none!important}

@media(max-width:900px){
  .home-lab-choice{padding-top:58px!important}
  .home-lab-choice__head{gap:14px!important;margin-bottom:26px!important}
  .home-lab-choice__head h2{font-size:clamp(40px,10vw,52px)!important;line-height:.98!important;letter-spacing:-.045em!important}
  .premium-motion-v3 .pm3-card{transition-duration:.48s,.58s,.22s!important}
}
@media(prefers-reduced-motion:reduce){
  .premium-motion-v3 *{scroll-behavior:auto!important}
}
