body,
html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: #000;
}

.scene {
    position: relative;
    width: 100vw;
    height: 100vh;
    background-image: url('village_background.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.snow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background-image:
        radial-gradient(6px 6px at 100px 50px, rgba(255, 255, 255, 0.9), transparent),
        radial-gradient(9px 9px at 200px 150px, rgba(255, 255, 255, 0.8), transparent),
        radial-gradient(5px 5px at 300px 250px, rgba(255, 255, 255, 0.9), transparent),
        radial-gradient(6px 6px at 400px 350px, rgba(255, 255, 255, 0.8), transparent),
        radial-gradient(9px 9px at 500px 100px, rgba(255, 255, 255, 0.9), transparent),
        radial-gradient(5px 5px at 600px 400px, rgba(255, 255, 255, 0.8), transparent),
        radial-gradient(6px 6px at 700px 200px, rgba(255, 255, 255, 0.9), transparent),
        radial-gradient(8px 8px at 800px 300px, rgba(255, 255, 255, 0.8), transparent);
    background-size: 750px 750px;
    animation: snow 10s linear infinite;
}

.layer1 {
    opacity: 0.8;
    animation-duration: 15s;
    filter: blur(1px);
}

.layer2 {
    opacity: 0.6;
    animation-duration: 25s;
    background-size: 600px 600px;
    filter: blur(2px);
    transform: scale(0.8);
}

.layer3 {
    opacity: 0.4;
    animation-duration: 35s;
    background-size: 450px 450px;
    filter: blur(3px);
    transform: scale(0.6);
}

@keyframes snow {
    0% {
        background-position:
            0px 0px,
            0px 0px,
            0px 0px,
            0px 0px,
            0px 0px,
            0px 0px,
            0px 0px,
            0px 0px;
    }

    100% {
        background-position:
            500px 1000px,
            400px 1000px,
            300px 1000px,
            200px 1000px,
            100px 1000px,
            0px 1000px,
            -100px 1000px,
            -200px 1000px;
    }
}