.snowflakes { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; overflow: hidden; visibility: visible; } .snowflake { position: fixed; top: -10%; font-size: 1em; color: #fff; font-family: Arial, sans-serif; text-shadow: 0 0 5px #000; user-select: none; -webkit-user-select: none; animation: snowflakes-fall 10s linear infinite, snowflakes-shake 3s ease-in-out infinite; } @-webkit-keyframes snowflakes-fall { 0% { top: -10%; } 100% { top: 100%; } } @-webkit-keyframes snowflakes-shake { 0%, 100% { -webkit-transform: translateX(0); transform: translateX(0); } 50% { -webkit-transform: translateX(80px); transform: translateX(80px); } } @keyframes snowflakes-fall { 0% { top: -10%; } 100% { top: 100%; } } @keyframes snowflakes-shake { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(80px); } } .snowflake:nth-of-type(0) { left: 1%; animation-delay: 0s, 0s; } .snowflake:nth-of-type(1) { left: 10%; animation-delay: 1s, 1s; } .snowflake:nth-of-type(2) { left: 20%; animation-delay: 6s, 0.5s; } .snowflake:nth-of-type(3) { left: 30%; animation-delay: 4s, 2s; } .snowflake:nth-of-type(4) { left: 40%; animation-delay: 2s, 2s; } .snowflake:nth-of-type(5) { left: 50%; animation-delay: 8s, 3s; } .snowflake:nth-of-type(6) { left: 60%; animation-delay: 6s, 2s; } .snowflake:nth-of-type(7) { left: 70%; animation-delay: 2.5s, 1s; } .snowflake:nth-of-type(8) { left: 80%; animation-delay: 1s, 0s; } .snowflake:nth-of-type(9) { left: 90%; animation-delay: 3s, 1.5s; } .snowflake:nth-of-type(10) { left: 25%; animation-delay: 2s, 0s; } .snowflake:nth-of-type(11) { left: 65%; animation-delay: 4s, 2.5s; } body.hide-snowflakes .snowflakes { visibility: hidden; }