/* Estados iniciais (escondidos antes de revelar via JS) */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero title — palavras revelam de baixo pra cima */
.hero__title .word {
  display: block;
  overflow: hidden;
}
.hero__title .word > * {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
}
.hero__title.is-revealed .word:nth-child(1) > *,
.hero__title.is-revealed .word:nth-child(1) {
  animation: word-up 1s var(--ease-out) 0.15s forwards;
}
.hero__title.is-revealed .word:nth-child(2) > *,
.hero__title.is-revealed .word:nth-child(2) {
  animation: word-up 1s var(--ease-out) 0.32s forwards;
}

@keyframes word-up {
  to { transform: translateY(0); opacity: 1; }
}

/* Hero bigword — fade-in lento depois de tudo */
.hero__bigword span {
  display: inline-block;
  opacity: 0;
  transform: translateX(20px);
  animation: bigword-in 1.4s var(--ease-out) 0.8s forwards;
}
@keyframes bigword-in {
  to { opacity: 1; transform: translateX(0); }
}

/* Pulse sutil no dot do kicker */
.hero__kicker .dot {
  animation: dot-pulse 2.4s ease-in-out infinite;
}
@keyframes dot-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.6); opacity: 0.5; }
}
