/*
 * Scroll-reveal states that main.js used to apply with GSAP + ScrollMagic.
 * The same values, driven by IntersectionObserver + CSS transitions.
 */
.mry-fo {
  opacity: 0;
  transform: translateY(50px) scale(0.98);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.mry-fo.mry-in {
  opacity: 1;
  transform: none;
}
.mry-curtain {
  transition: transform 0.8s ease-out;
}
.mry-curtain.mry-in {
  transform: translateX(-100%);
}
/* cursor: TweenMax tweens replaced by equivalent CSS transitions */
.mry-ball {
  transition: left 0.6s ease-out, top 0.6s ease-out, transform 0.3s ease-out, opacity 0.3s ease-out;
  will-change: left, top, transform;
}
.mry-magnetic-object {
  transition: transform 0.4s ease-out;
}
.mry-app .mry-preloader .mry-preloader-content .mry-loader-bar .mry-loader {
  transition: width 0.4s ease-in;
}

/* honeypot for the contact form: off-screen so people never see it, bots still fill it */
.mry-hp {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
