.snow-layer{
    position:fixed; inset:0; pointer-events:none; overflow:hidden;
    z-index:999999;
  }
  .snowflake{
    position:absolute; top:-10vh;
    color:rgba(255,255,255,.9);
    filter:drop-shadow(0 2px 2px rgba(0,0,0,.15));
    user-select:none;
    will-change: transform;
    animation-name: snow-fall, snow-sway;
    animation-timing-function: linear, ease-in-out;
    animation-iteration-count: infinite, infinite;
  }
  @keyframes snow-fall { to { transform: translateY(120vh); } }
  @keyframes snow-sway {
    0%,100% { margin-left: 0; }
    50% { margin-left: 40px; }
  }
  @media (prefers-reduced-motion: reduce){
    .snow-layer{ display:none; }
  }
