[data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  will-change: transform, opacity;
  transition: opacity 0.7s ease, transform 0.7s ease;
}

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

[data-reveal-delay="1"] {
  transition-delay: 0.1s;
}

[data-reveal-delay="2"] {
  transition-delay: 0.2s;
}

[data-reveal-delay="3"] {
  transition-delay: 0.3s;
}

[data-reveal-delay="4"] {
  transition-delay: 0.4s;
}

@keyframes heroFade {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-content,
.page-hero-content,
.post-hero-content {
  animation: heroFade 0.9s 0.2s ease both;
}

@keyframes kenBurns {
  0% {
    transform: scale(1) translate(0, 0);
  }

  50% {
    transform: scale(1.06) translate(-1%, 1%);
  }

  100% {
    transform: scale(1) translate(0, 0);
  }
}

.hero-media,
.page-hero-media,
.post-hero-media {
  transform: translateZ(0);
  transform-origin: center center;
  backface-visibility: hidden;
  animation: kenBurns 18s ease-in-out infinite;
}

@keyframes waPulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(122, 12, 30, 0.6);
  }

  50% {
    box-shadow: 0 0 0 14px rgba(122, 12, 30, 0);
  }
}

.wa-float {
  animation: waPulse 3s ease-in-out infinite;
}

@media (max-width: 768px) {
  .hero-media,
  .page-hero-media,
  .post-hero-media {
    animation-duration: 14s;
  }
}

@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;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}
