/* ==========================================================================
   ANIMAÇÕES / TRANSIÇÕES / EFEITOS VISUAIS
   ========================================================================== */

/* Reveal on scroll (controlado via animations.js) */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}

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

/* Stagger sutil dos elementos da hero */
.hero-content [data-reveal]:nth-child(1) { transition-delay: 0ms; }
.hero-content [data-reveal]:nth-child(2) { transition-delay: 80ms; }
.hero-content [data-reveal]:nth-child(3) { transition-delay: 160ms; }
.hero-content [data-reveal]:nth-child(4) { transition-delay: 240ms; }
.hero-content [data-reveal]:nth-child(5) { transition-delay: 320ms; }
.hero-media[data-reveal] { transition-delay: 200ms; }

/* Stagger sutil dos itens de menu dentro de cada seção */
.menu-item {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity var(--transition-normal), transform var(--transition-normal);
}

.menu-section.is-visible .menu-item {
  opacity: 1;
  transform: translateY(0);
}

.menu-section.is-visible .menu-item:nth-child(n) {
  transition-delay: calc(var(--i, 0) * 25ms);
}

/* Microinterações de botões */
.btn {
  transform: translateY(0);
}

.btn:hover {
  transform: translateY(-2px);
}

/* Respeita preferência de redução de movimento */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
