/* A quiet winter backdrop beneath the page's interactive content. */
.holiday-theme {
  min-height: 100vh;
  isolation: isolate;
  background: linear-gradient(145deg, #6598a3, #75a8ad 55%, #619b96);
}

.holiday-snow {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

.holiday-snow__flake {
  position: absolute;
  top: -40px;
  left: var(--left);
  color: #fff;
  font-size: var(--size);
  line-height: 1;
  opacity: 1;
  text-shadow: 0 1px 3px rgb(25 70 80 / 35%);
  animation: holiday-snowfall var(--duration) linear var(--delay) infinite;
}

@keyframes holiday-snowfall {
  from {
    transform: translate3d(0, -40px, 0) rotate(0deg);
  }
  to {
    transform: translate3d(var(--drift), calc(100vh + 80px), 0) rotate(120deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .holiday-snow__flake {
    animation: none;
    top: calc(var(--left) * 0.9);
  }
}

@media print {
  .holiday-snow {
    display: none;
  }
}
