/* Thin decorative snowfall, clipped to the existing hero image area. */
.eko-home #home.eko-hero .eko-hero-snow {
  position: absolute; inset: 0; z-index: 1;
  overflow: hidden; contain: strict;
  pointer-events: none; user-select: none;
}
.eko-home #home.eko-hero .eko-hero-snow[hidden] { display: none; }
.eko-home #home.eko-hero .eko-snow-flake {
  display: block; position: absolute; top: -8px;
  width: var(--snow-size); height: var(--snow-size);
  margin: 0; padding: 0; border: 0; border-radius: 50%;
  background: #fff; opacity: 0; pointer-events: none;
  animation: eko-soft-snowfall var(--snow-duration) linear var(--snow-delay) infinite;
  animation-play-state: paused;
}
.eko-home #home.eko-hero .eko-hero-snow.is-running .eko-snow-flake {
  animation-play-state: running;
}
@keyframes eko-soft-snowfall {
  0% { opacity: 0; transform: translate3d(0, -8px, 0); }
  5% { opacity: var(--snow-opacity); }
  50% { transform: translate3d(var(--snow-drift-half), var(--snow-fall-half), 0); }
  95% { opacity: var(--snow-opacity); }
  100% { opacity: 0; transform: translate3d(var(--snow-drift), var(--snow-fall), 0); }
}
@media (prefers-reduced-motion: reduce) {
  .eko-home #home.eko-hero .eko-hero-snow { display: none !important; }
  .eko-home #home.eko-hero .eko-snow-flake { animation: none !important; }
}
