/* -----------------------------------------
   ESTADOS DE REVELAÇÃO (controlados via JS/IntersectionObserver)
----------------------------------------- */

.reveal-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--dur-slow) var(--ease-out-expo),
    transform var(--dur-slow) var(--ease-out-expo);
}

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

.reveal-word {
  transform: translateY(110%);
  opacity: 0;
  transition: transform var(--dur-slower) var(--ease-out-expo),
    opacity var(--dur-slow) var(--ease-out-expo);
}

.hero-title.is-ready .reveal-word {
  transform: translateY(0);
  opacity: 1;
}

.hero-title .reveal-word:nth-child(1) { transition-delay: 40ms; }
.hero-title .reveal-word:nth-child(2) { transition-delay: 100ms; }
.hero-title .reveal-word:nth-child(3) { transition-delay: 160ms; }

.reveal-line .reveal-word ~ .reveal-word { margin-left: 0.28ch; }

/* -----------------------------------------
   KEYFRAMES
----------------------------------------- */

@keyframes pulse-dot {
  0% {
    box-shadow: 0 0 0 0 var(--color-accent-soft);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(200, 230, 0, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(200, 230, 0, 0);
  }
}

@keyframes scroll-cue {
  0% {
    transform: scaleY(0);
    transform-origin: top;
    opacity: 0.4;
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
    opacity: 1;
  }
  51% {
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
    opacity: 0.4;
  }
}

@keyframes glow-pulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* -----------------------------------------
   MOVIMENTO REDUZIDO
   O restante do site já usa --dur-* (achatadas para 1ms
   em prefers-reduced-motion via tokens.css); aqui removemos
   também os deslocamentos e loops contínuos.
----------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .reveal-up,
  .reveal-word {
    transform: none !important;
  }

  .status-dot,
  .hero-scroll-line {
    animation: none !important;
  }

  * {
    scroll-behavior: auto !important;
  }
}
