/* Snow overlay injected only into the detected homepage hero/banner. */
.ml-snow-host {
  position: relative !important;
  overflow: hidden !important;
}
.ml-snow-layer {
  position: absolute;
  inset: 0;
  z-index: 6;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  contain: layout paint;
}
.ml-snow-flake {
  position: absolute;
  top: -8%;
  left: var(--x, 50%);
  width: var(--size, 5px);
  height: var(--size, 5px);
  border-radius: 50%;
  background: rgba(255,255,255,var(--alpha,.72));
  box-shadow: 0 0 4px rgba(255,255,255,.18);
  opacity: 0;
  transform: translate3d(0,-12px,0);
  animation: mlSnowFall var(--dur, 10s) linear var(--delay, 0s) infinite;
  will-change: transform, opacity;
}
@keyframes mlSnowFall {
  0%   { opacity: 0; transform: translate3d(0,-12px,0) rotate(0deg); }
  10%  { opacity: .9; }
  90%  { opacity: .72; }
  100% { opacity: 0; transform: translate3d(var(--drift, 18px), 115vh, 0) rotate(220deg); }
}

/* Keep hero content clickable and visually above/through the snow. */
.ml-snow-host a,
.ml-snow-host button,
.ml-snow-host input,
.ml-snow-host select,
.ml-snow-host textarea { position: relative; z-index: 8; }

@media (max-width: 767px) {
  .ml-snow-flake:nth-child(n+13) { display:none; }
  .ml-snow-layer { opacity: .82; }
}

@media (prefers-reduced-motion: reduce) {
  .ml-snow-layer { display:none !important; }
}
