/* ===== Animações de entrada — modernidade em todo o site ===== */

/* Duração e easing padrão */
:root {
  --anim-duration: 0.8s;
  --anim-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Animação moderna para textos e elementos internos */
.reveal-text {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
  will-change: opacity, transform;
}

.reveal-text.reveal-active {
  opacity: 1;
  transform: translateY(0);
}

/* Para elementos que não devem deslizar tanto, como botões ou ícones */
.reveal-fade {
  opacity: 0;
  transition: opacity var(--anim-duration) var(--anim-ease);
  will-change: opacity;
}

.reveal-fade.reveal-active {
  opacity: 1;
}

/* Respeitar preferência do usuário por menos movimento */
@media (prefers-reduced-motion: reduce) {
  :root {
    --anim-duration: 0.01s;
  }

  .reveal-text,
  .reveal-fade {
    opacity: 1;
    transform: none;
    transition-duration: 0.01ms;
  }
}
