/* Matrices preserve neutral grays: only the colored halo changes. */
.hero-color-filters { position: absolute; pointer-events: none; overflow: hidden; }
.hero-atmosphere { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.hero-art .hero-color-layer { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.hero-color-layer img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-gold-layer { filter: url(#ky-halo-gold); animation: ky-halo-cycle 2s linear infinite paused; }
.hero-flash-layer { filter: url(#ky-halo-flash); animation: ky-halo-lightning 2s linear infinite paused; }
.hero.motion-enabled .hero-color-layer { animation-play-state: running; }
@keyframes ky-halo-cycle {
  0%, 39.8% { opacity: 0; }
  40.3%, 89.8% { opacity: 1; }
  90.3%, 100% { opacity: 0; }
}
/* Two short flashes, one second apart, on colored pixels. */
@keyframes ky-halo-lightning {
  0%, 39.5% { opacity: 0; }
  40% { opacity: 1; }
  40.8%, 89.5% { opacity: 0; }
  90% { opacity: 1; }
  90.8%, 100% { opacity: 0; }
}
@media (max-width: 700px) {
  .hero-color-layer img { object-position: center top; }
}
@media (prefers-reduced-motion: reduce) {
  .hero .hero-color-layer { animation: none !important; opacity: 0 !important; }
}
