/* ============================================================
   WEDDING-20 | animations.css
   ============================================================ */

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.7s var(--ease-out),
    transform 0.7s var(--ease-out);
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@keyframes heroIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.hero-guest {
  animation: heroIn 0.7s var(--ease-out) 0.1s both;
}
.hero-title {
  animation: heroIn 0.8s var(--ease-out) 0.25s both;
}
.hero-sub {
  animation: heroIn 0.7s var(--ease-out) 0.4s both;
}
.hero-meta {
  animation: heroIn 0.7s var(--ease-out) 0.52s both;
}
.hero-actions {
  animation: heroIn 0.7s var(--ease-out) 0.64s both;
}

@keyframes sunburstSpin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.hero-sunburst {
  animation: sunburstSpin 120s linear infinite;
}

@keyframes imgFadeLoad {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
img.loaded {
  animation: imgFadeLoad 0.5s ease forwards;
}
