/* Decorative snowfall sits behind the page and never intercepts input. */
body { isolation: isolate; }
.snowfall { position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;contain:strict; }
.snowflake {
  position:absolute;top:-20px;left:var(--x);width:var(--size);height:var(--size);
  border-radius:50%;background:#4a87bb;opacity:0;
  --flake-opacity:calc(var(--opacity) * 1.8);
  animation:snow-drift var(--duration) var(--delay) linear infinite;
  box-shadow:0 0 3px #9cc5ec40;
}
html:not([data-theme="dark"]) .snowflake {
  width:calc(var(--size) + 1px);height:calc(var(--size) + 1px);
  box-shadow:0 0 3px #73a9d555;
}
html[data-theme="dark"] .snowflake { background:#e3f1ff;box-shadow:0 0 4px #bedbff55;--flake-opacity:var(--opacity); }
@keyframes snow-drift {
  0% { transform:translate3d(0,-20px,0);opacity:0; }
  8% { opacity:var(--flake-opacity); }
  90% { opacity:var(--flake-opacity); }
  100% { transform:translate3d(var(--drift),calc(100vh + 40px),0);opacity:0; }
}
@media(max-width:620px) { .snowflake:nth-child(n+19) { display:none; } }
@media(prefers-reduced-motion:reduce) { .snowfall { display:none; } }
@media print { .snowfall { display:none; } }
