/* Scroll reveal */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity .7s cubic-bezier(.2,.7,.2,1),
    transform .7s cubic-bezier(.2,.7,.2,1);
  transition-delay: var(--reveal-delay, 0ms);
}

[data-reveal="right"] {
  transform: translateX(-34px);
}

[data-reveal="left"] {
  transform: translateX(34px);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

/* Hero opening sequence */
.hero-sequence {
  opacity: 0;
  transform: translateY(22px);
  animation: heroEnter .8s cubic-bezier(.2,.7,.2,1) forwards;
  animation-delay: var(--hero-delay, 0ms);
}

.hero-model-sequence {
  opacity: 0;
  transform: translateX(-42px);
  animation: heroModelEnter 1s cubic-bezier(.2,.7,.2,1) forwards;
  animation-delay: 180ms;
}

@keyframes heroEnter {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes heroModelEnter {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Main CTA subtle pulse */
.cta-pulse {
  animation: ctaPulse 2.8s ease-in-out infinite;
}

@keyframes ctaPulse {
  0%, 70%, 100% {
    box-shadow: 0 0 0 0 rgba(239,195,132,0);
  }
  82% {
    box-shadow: 0 0 0 9px rgba(239,195,132,.16);
  }
}

/* Reduced motion accessibility */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}