/* ==========================================================
   ACMOBOOK Public Motion — light, subtle, reduced-motion safe
   Scope: .acm-shell / .acm-home / .acm-motion
   ========================================================== */

.acm-motion-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity var(--acm-duration-slow) var(--acm-ease-out),
    transform var(--acm-duration-slow) var(--acm-ease-out);
  will-change: opacity, transform;
}

.acm-motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.acm-motion-stagger > .acm-motion-reveal:nth-child(1) { transition-delay: 0ms; }
.acm-motion-stagger > .acm-motion-reveal:nth-child(2) { transition-delay: 80ms; }
.acm-motion-stagger > .acm-motion-reveal:nth-child(3) { transition-delay: 160ms; }
.acm-motion-stagger > .acm-motion-reveal:nth-child(4) { transition-delay: 240ms; }
.acm-motion-stagger > .acm-motion-reveal:nth-child(5) { transition-delay: 320ms; }
.acm-motion-stagger > .acm-motion-reveal:nth-child(6) { transition-delay: 400ms; }

/* Hero copy stagger when not using acm-motion-stagger wrapper */
.acm-hero__copy > .acm-motion-reveal:nth-child(1) { transition-delay: 40ms; }
.acm-hero__copy > .acm-motion-reveal:nth-child(2) { transition-delay: 120ms; }
.acm-hero__copy > .acm-motion-reveal:nth-child(3) { transition-delay: 200ms; }
.acm-hero__copy > .acm-motion-reveal:nth-child(4) { transition-delay: 280ms; }
.acm-hero__copy > .acm-motion-reveal:nth-child(5) { transition-delay: 360ms; }
.acm-hero__copy > .acm-motion-reveal:nth-child(6) { transition-delay: 440ms; }
.acm-hero__visual.acm-motion-reveal { transition-delay: 180ms; }

.acm-motion-float {
  animation: acmFloatY 7s var(--acm-ease) infinite alternate;
}

.acm-motion-float--slow {
  animation-duration: 9s;
  animation-delay: -2s;
}

.acm-motion-float--delay {
  animation-delay: -3.5s;
}

@keyframes acmFloatY {
  from { transform: translateY(0); }
  to { transform: translateY(-10px); }
}

.acm-motion-gradient {
  background-size: 160% 160%;
  animation: acmGradientShift 18s ease-in-out infinite alternate;
}

@keyframes acmGradientShift {
  from { background-position: 0% 40%; }
  to { background-position: 100% 60%; }
}

/* Journey timeline */
.acm-journey__line-fill {
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1.1s var(--acm-ease-out);
}

.acm-journey.is-active .acm-journey__line-fill {
  transform: scaleX(1);
}

.acm-journey__step {
  opacity: 0.55;
  transform: translateY(8px);
  transition:
    opacity var(--acm-duration-base) var(--acm-ease),
    transform var(--acm-duration-base) var(--acm-ease),
    box-shadow var(--acm-duration-base) var(--acm-ease);
}

.acm-journey__step.is-active {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .acm-motion-reveal,
  .acm-motion-stagger > .acm-motion-reveal,
  .acm-journey__line-fill,
  .acm-journey__step {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  .acm-motion-float,
  .acm-motion-float--slow,
  .acm-motion-float--delay,
  .acm-motion-gradient {
    animation: none !important;
  }
}
