/* LMYC scroll reveal — smooth fade / slide on scroll */
:root {
  --lmyc-reveal-duration: 0.9s;
  --lmyc-reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --lmyc-reveal-distance: 32px;
  --lmyc-reveal-blur: 6px;
}

@media (prefers-reduced-motion: no-preference) {
  .lmyc-reveal,
  .collab-fade {
    opacity: 0;
    transform: translate3d(0, var(--lmyc-reveal-distance), 0);
    filter: blur(var(--lmyc-reveal-blur));
    transition:
      opacity var(--lmyc-reveal-duration) var(--lmyc-reveal-ease),
      transform var(--lmyc-reveal-duration) var(--lmyc-reveal-ease),
      filter calc(var(--lmyc-reveal-duration) * 0.85) var(--lmyc-reveal-ease);
    transition-delay: var(--lmyc-reveal-delay, 0ms);
    will-change: opacity, transform, filter;
  }

  .lmyc-reveal--left {
    transform: translate3d(calc(var(--lmyc-reveal-distance) * -0.85), calc(var(--lmyc-reveal-distance) * 0.55), 0);
  }

  .lmyc-reveal--right {
    transform: translate3d(calc(var(--lmyc-reveal-distance) * 0.85), calc(var(--lmyc-reveal-distance) * 0.55), 0);
  }

  .lmyc-reveal--scale {
    transform: scale(0.96) translate3d(0, calc(var(--lmyc-reveal-distance) * 0.35), 0);
    filter: blur(calc(var(--lmyc-reveal-blur) * 0.6));
  }

  .lmyc-reveal.is-visible,
  .collab-fade.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    will-change: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lmyc-reveal,
  .collab-fade {
    opacity: 1;
    transform: none;
    filter: none;
  }
}
