/* Snowflakes artwork: Alaev & Co, MIT; see /licenses/snowflakes.txt. */
.site-snow {
  position: fixed;
  inset: 0;
  z-index: 1040;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  contain: layout paint;
}

.site-snow *,
.site-snow *::before,
.site-snow *::after {
  pointer-events: none;
}

.site-snow__flake {
  position: absolute;
  top: -24px;
  left: var(--flake-x);
  color: #a6d9f1;
  opacity: var(--flake-opacity);
  animation: site-snow-fall var(--flake-duration) var(--flake-delay) linear infinite;
}

.site-snow__flake svg {
  display: block;
  width: var(--flake-size);
  height: var(--flake-size);
}

.site-snow__ground {
  position: absolute;
  right: 0;
  bottom: var(--snow-bottom, 0px);
  left: 0;
  height: 80px;
}

.site-snow__bank {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 36px;
  clip-path: inset(0 var(--snow-cleared, 0px) 0 0);
}

.site-snow__bank svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform: scaleY(var(--snow-growth, 0));
  transform-origin: center bottom;
  fill: #f2f8fc;
  stroke: #c9e0ef;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.site-snow__plow {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100px;
  height: 63.793px;
  max-width: none;
  visibility: hidden;
  transform: translateX(var(--snow-plow-x, -120px));
  filter: drop-shadow(0 1px 1px rgb(24 51 69 / 18%));
}

.site-snow.is-plowing .site-snow__plow {
  visibility: visible;
}

.site-snow.is-paused .site-snow__flake {
  animation-play-state: paused;
}

html.dark .site-snow__flake {
  color: #daf2ff;
}

html.dark .site-snow__bank svg {
  fill: #e0eef7;
  stroke: #b7d5e9;
}

@media (max-width: 767.98px) {
  .site-snow__bank { height: 24px; }
}

@keyframes site-snow-fall {
  from { transform: translate3d(0, 0, 0) rotate(0deg); }
  to { transform: translate3d(var(--flake-drift), calc(100vh + 28px), 0) rotate(240deg); }
}
