/* 17-second loop: wait 0–6s, reveal/pulse 6–7s, hold 7–13s,
   pulse 13–14s, hold 14–16s, then fade 16–17s and start again.
   Opacity keeps the overhead title's space reserved throughout the loop.
   Do not scale the lettering: fractional transforms soften rasterized text. */
.hero .hero-motto {
  opacity: 1;
  transform: none;
}

@media screen and (prefers-reduced-motion: no-preference) {
  .hero .hero-motto {
    animation: preacher-motto-sequence 17s linear infinite;
  }
}

@keyframes preacher-motto-sequence {
  0%, 35.2941% {
    opacity: 0;
    animation-timing-function: ease-out;
  }
  37.0588% {
    opacity: 1;
    animation-timing-function: ease-out;
  }
  38.2353% {
    opacity: 0.78;
    animation-timing-function: ease-in-out;
  }
  41.1765%, 76.4706% {
    opacity: 1;
    animation-timing-function: ease-in-out;
  }
  79.4118% {
    opacity: 0.78;
    animation-timing-function: ease-in-out;
  }
  82.3529%, 94.1176% {
    opacity: 1;
    animation-timing-function: ease-in;
  }
  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce), print {
  .hero .hero-motto {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
}
