/* ACT Tax Services — Soinebbia-style motion engine
   Static waiting classes are written into the HTML itself.
   This does NOT depend on an inline <script> adding a class to <html>. */

.act-motion-target{
  --act-motion-x:0px;
  --act-motion-y:34px;
  --act-motion-scale:1;
  --act-motion-delay:0ms;
  will-change:opacity,transform;
}

.act-motion-target[data-act-motion="left"]{
  --act-motion-x:-62px;
  --act-motion-y:0px;
}

.act-motion-target[data-act-motion="right"]{
  --act-motion-x:62px;
  --act-motion-y:0px;
}

.act-motion-target[data-act-motion="up"]{
  --act-motion-x:0px;
  --act-motion-y:38px;
}

.act-motion-target[data-act-motion="soft"]{
  --act-motion-x:0px;
  --act-motion-y:20px;
  --act-motion-scale:.985;
}

.act-motion-target.act-motion--waiting{
  opacity:0 !important;
  transform:
    translate3d(var(--act-motion-x),var(--act-motion-y),0)
    scale(var(--act-motion-scale)) !important;
  animation:none !important;
}

.act-motion-target.is-visible{
  animation:
    act-motion-enter .92s cubic-bezier(.16,.84,.25,1)
    var(--act-motion-delay) both !important;
}

@keyframes act-motion-enter{
  0%{
    opacity:0;
    transform:
      translate3d(var(--act-motion-x),var(--act-motion-y),0)
      scale(var(--act-motion-scale));
  }
  55%{
    opacity:1;
  }
  100%{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
  }
}

/* Give prominent legacy Home/Services items slightly stronger motion. */
.act-services__reveal.act-motion-target,
.act-team__reveal.act-motion-target,
.act-process__reveal.act-motion-target,
.act-service-reveal.act-motion-target{
  --act-motion-y:46px;
}

.act-business__reveal.act-motion-target,
.act-leadership__reveal.act-motion-target{
  --act-motion-x:-72px;
  --act-motion-y:0px;
}

/* Footer is intentionally more subtle. */
#act-footer .act-motion-target{
  --act-motion-y:24px;
}

/* Accessibility and no-JS fallback. */
@media (prefers-reduced-motion:reduce){
  .act-motion-target,
  .act-motion-target.act-motion--waiting,
  .act-motion-target.is-visible{
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
    transition:none !important;
  }
}
