/* OIS V8 - Lightweight scroll choreography. All content is in the original HTML. */
.motion-progress{position:fixed;z-index:110;top:0;left:0;right:0;height:3px;background:var(--coral);pointer-events:none;transform:scaleX(0);transform-origin:left center}
@media (prefers-reduced-motion:no-preference){
  /* Scroll motion is transform/translate-only; no layout or background-position animations. */
  html.motion-ready [data-parallax]{translate:var(--parallax-x,0px) var(--parallax-y,0px)}
  html.motion-ready [data-reveal]{opacity:.82;translate:0 35px;transition:opacity .64s cubic-bezier(.17,.65,.24,1),translate .74s cubic-bezier(.17,.65,.24,1);transition-delay:var(--reveal-delay,0ms)}
  html.motion-ready [data-reveal="subtle"]{translate:0 18px}
  html.motion-ready [data-reveal="side"]{translate:-28px 0}
  html.motion-ready [data-reveal].is-seen{opacity:1;translate:0 0}
  /* Entrance: visual elements only, no delayed visibility of critical headline. */
  .hero .hero-kicker{animation:motion-hero-in .65s .1s ease-out both}
  .hero .hero-bottom{animation:motion-hero-in .8s .24s ease-out both}
  .inter-hero .hero-kicker{animation:motion-hero-in .6s .1s ease-out both}
  @keyframes motion-hero-in{from{opacity:.7;translate:0 20px}to{opacity:1;translate:0 0}}
  /* Editorial sticky moments without scroll traps or large layout shifts. */
  @media (min-width:951px){
    .pale:has(.feature-list) .split>div:first-child{position:sticky;top:38px;align-self:start}
    .method-progress .method-progress-header>div:first-child{position:sticky;top:65px;align-self:start}
  }
  .feature-list>div,.method-route>div{transition:opacity .4s ease,background-color .5s ease,border-color .4s ease}
  .feature-list:has(.is-spotlight)>div:not(.is-spotlight){opacity:.52}
  .feature-list>div.is-spotlight{border-top-color:var(--coral)}
  .method-route:has(.is-spotlight)>div:not(.is-spotlight){opacity:.50}
  .method-route>div.is-spotlight{background-color:rgba(240,90,63,.065)}
  .method-route>div.is-spotlight .route-index{color:#a63922}
  /* Lines reveal by the same observer as the text; no CSS or image download. */
  .spec-row{position:relative}
  .spec-row:before{content:"";height:2px;position:absolute;top:-2px;left:0;right:0;background:var(--coral);transform:scaleX(0);transform-origin:left center;transition:transform .8s cubic-bezier(.2,.7,.15,1)}
  .spec-row.is-seen:before,.spec-row:hover:before,.spec-row:focus-visible:before{transform:scaleX(1)}
  .team-statement h2 em{display:inline-block}
  .temario-feature-link{transition:box-shadow .35s ease,background-color .35s ease}
  .temario-feature-link:hover,.temario-feature-link:focus-visible{box-shadow:14px 14px 0 rgba(234,255,112,.20)}
}
@media (max-width:750px){
  html.motion-ready [data-reveal]{translate:0 18px;transition-duration:.53s}
  .motion-progress{height:2px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .motion-progress{display:none}
  [data-parallax],[data-reveal],.hero .hero-kicker,.hero .hero-bottom,.inter-hero .hero-kicker,.ticker>div{animation:none!important;transform:none!important;translate:none!important;opacity:1!important;transition:none!important}
  .spec-row:before{display:none}
  .feature-list>div,.method-route>div{opacity:1!important;transition:none!important}
}
