body {
	height: 100%;
	background: linear-gradient(color-mix(in srgb, var(--main-back) 70%, black 30%) 20%,
			#374e53);
	overflow: hidden;
}

.snow,
.snow::before,
.snow::after {
	filter: blur(4px);
	position: absolute;
	top: calc(-1 * var(--size));
	left: 0;
	right: 0;
	bottom: 0;
	background-size: var(--size) var(--size);
	animation: snow var(--speed) linear infinite;
	content: "";
	pointer-events: none;
}

.snow::after {
	margin-left: calc(var(--size) / -3);
	opacity: .4;
	animation-duration: calc(var(--speed) * 2);
	animation-direction: reverse;
	filter: blur(3px);
}

.snow::before {
	margin-left: calc(var(--size) / -2);
	opacity: .65;
	filter: blur(1.5px);
	animation-duration: calc(var(--speed) * 3);
	animation-direction: reverse;
}

@keyframes snow {
	to {
		transform: translateY(var(--size));
	}
}