/* Snow belongs to the landscape, below the glass surfaces and all controls. */
.snowfall{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;user-select:none;contain:strict}
.snowfall-particle{position:absolute;top:0;left:var(--snow-left);width:var(--snow-size);height:var(--snow-size);opacity:var(--snow-opacity);animation:snowfall-descent var(--snow-duration) var(--snow-delay) linear infinite}
.snowfall-particle>i{display:block;width:100%;height:100%;border-radius:43% 57% 52% 48%;background:radial-gradient(ellipse at 40% 35%,#fffffff2 0%,#f0f7ffd9 40%,#e9f4ff45 72%,#e9f4ff00 100%);animation:snowfall-sway var(--snow-sway-duration) var(--snow-sway-delay) ease-in-out infinite alternate}
@keyframes snowfall-descent{
 from{transform:translate3d(0,-12px,0)}
 to{transform:translate3d(var(--snow-drift),var(--snow-travel),0)}
}
@keyframes snowfall-sway{
 from{transform:translate3d(calc(-1 * var(--snow-sway)),0,0) rotate(-20deg)}
 to{transform:translate3d(var(--snow-sway),0,0) rotate(25deg)}
}
.snowfall[data-paused] .snowfall-particle,.snowfall[data-paused] .snowfall-particle>i{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.snowfall{display:none}.snowfall-particle,.snowfall-particle>i{animation:none}}
@media print{.snowfall{display:none}}
