/* Zi Vital scroll reveal v1
 * Progressive enhancement: content is never hidden unless JS successfully
 * marks the document with .zv-reveal-ready.
 */

html.zv-reveal-ready [data-zv-reveal="section"]{
  opacity:0;
  transform:translate3d(0,34px,0);
  filter:blur(3px);
  transition:
    opacity .72s cubic-bezier(.2,.72,.2,1),
    transform .82s cubic-bezier(.2,.72,.2,1),
    filter .72s ease;
  will-change:opacity,transform,filter;
}

html.zv-reveal-ready [data-zv-reveal="item"]{
  opacity:0;
  transform:translate3d(0,20px,0);
  transition:
    opacity .56s cubic-bezier(.2,.72,.2,1) var(--zv-reveal-delay,0ms),
    transform .64s cubic-bezier(.2,.72,.2,1) var(--zv-reveal-delay,0ms);
  will-change:opacity,transform;
}

html.zv-reveal-ready [data-zv-reveal].is-zv-visible{
  opacity:1;
  transform:none;
  filter:none;
  will-change:auto;
}

/* Slightly richer motion for editorial imagery without making the site feel animated. */
html.zv-reveal-ready [data-zv-reveal="media"]{
  opacity:0;
  transform:translate3d(0,24px,0) scale(.992);
  transition:
    opacity .68s ease var(--zv-reveal-delay,0ms),
    transform .8s cubic-bezier(.2,.72,.2,1) var(--zv-reveal-delay,0ms);
  will-change:opacity,transform;
}
html.zv-reveal-ready [data-zv-reveal="media"].is-zv-visible{
  opacity:1;
  transform:none;
  will-change:auto;
}

/* The active Hero must be immediately readable; motion starts below it. */
.zv3-hero [data-zv-reveal],
.zv4-slide [data-zv-reveal],
.zv-about-hero-v2 [data-zv-reveal],
.zv-domain-landing-page .zvdl-hero [data-zv-reveal],
.zv-approach-hero-v2 [data-zv-reveal],
.zv-treatment-hero-v2 [data-zv-reveal]{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}

@media(max-width:760px){
  html.zv-reveal-ready [data-zv-reveal="section"]{transform:translate3d(0,24px,0)}
  html.zv-reveal-ready [data-zv-reveal="item"]{transform:translate3d(0,14px,0)}
}

@media(prefers-reduced-motion:reduce){
  html.zv-reveal-ready [data-zv-reveal]{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:none!important;
  }
}
