/* Local, self-hosted replacement for Zoho's cross-domain scroll-reveal.
   Deliberately motion-only: opacity visibility is already guaranteed by
   zsite-core.css's `:root[data-nojs] [data-animation-name]{opacity:1!important}`
   rule (data-nojs is intentionally kept on <html> — see index.html head).
   This file only ever moves elements into place; it never controls whether
   they're visible, so it can fail safely.

   Every animation type rises from below (translateY) so sections read as
   fully revealing themselves from the bottom edge, regardless of the
   original left/right/bounce name Zoho gave them. Horizontal drift is kept
   subtle on the left/right-named ones for a little variety. */

[data-animation-name] {
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

[data-animation-name="slideInLeft"],
[data-animation-name="fadeInLeft"] { transform: translate3d(-25px, 90px, 0); }

[data-animation-name="slideInRight"] { transform: translate3d(25px, 90px, 0); }

[data-animation-name="slideInUp"] { transform: translate3d(0, 100px, 0); }

[data-animation-name="slideInDown"],
[data-animation-name="bounceInDown"] { transform: translate3d(0, 90px, 0); }

[data-animation-name="bounceIn"] { transform: translate3d(0, 90px, 0) scale3d(0.92, 0.92, 0.92); }

[data-animation-name="fadeIn"] { transform: translate3d(0, 80px, 0); }

[data-animation-name].zp-in-view {
  transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
  [data-animation-name] {
    transition: none !important;
    transform: none !important;
  }
}
