@media (prefers-reduced-motion: no-preference) {
  [data-eira-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 360ms ease, transform 360ms ease;
  }

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

  [data-eira-app-section="news"] .eira-article-card[data-eira-reveal] {
    opacity: 1;
    transform: translateY(0);
  }

  .eira-hero__candle {
    animation: eira-candle-glow 2600ms ease-in-out infinite;
  }

  .eira-hero__smoke {
    animation: eira-smoke-drift 6200ms ease-in-out infinite;
  }

  .eira-world-card__link,
  .eira-benefit__icon,
  .eira-button {
    transition:
      border-color 180ms ease,
      box-shadow 180ms ease,
      color 180ms ease,
      background 180ms ease,
      transform 180ms ease;
  }

  .eira-world-card__media::after {
    animation: eira-soft-shimmer 5200ms ease-in-out infinite;
  }

  .eira-brand-light-overlay__halo--emerald {
    animation: eira-brand-halo 6800ms ease-in-out infinite;
  }

  .eira-brand-light-overlay__halo--gold {
    animation: eira-brand-halo 7600ms ease-in-out infinite reverse;
  }

  .eira-brand-light-overlay__particles {
    animation: eira-brand-particles 9000ms ease-in-out infinite;
  }
}

@keyframes eira-candle-glow {
  0%,
  100% {
    box-shadow: 0 -20px 34px rgb(234 217 173 / 0.38);
  }

  50% {
    box-shadow: 0 -28px 46px rgb(234 217 173 / 0.62);
  }
}

@keyframes eira-smoke-drift {
  0%,
  100% {
    opacity: 0.58;
    transform: translate3d(0, 0, 0) rotate(-12deg);
  }

  50% {
    opacity: 0.78;
    transform: translate3d(-0.8rem, -0.9rem, 0) rotate(-7deg);
  }
}

@keyframes eira-soft-shimmer {
  0%,
  100% {
    opacity: 0.18;
    transform: translateX(-18%);
  }

  50% {
    opacity: 0.32;
    transform: translateX(18%);
  }
}

@keyframes eira-brand-halo {
  0%,
  100% {
    opacity: 0.52;
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    opacity: 0.78;
    transform: translate3d(0.6rem, -0.35rem, 0) scale(1.06);
  }
}

@keyframes eira-brand-particles {
  0%,
  100% {
    opacity: 0.34;
    transform: translate3d(0, 0, 0);
  }

  50% {
    opacity: 0.58;
    transform: translate3d(0.4rem, -0.5rem, 0);
  }
}
