#ambient {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    opacity: 0.3;
    transition: background 2s ease, opacity 1s ease;
    filter: brightness(0.17) blur(30px);
    pointer-events: none;
    user-select: none;
}

#vignette {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(circle, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 1) 100%);
    animation: scaling 2s ease-in-out infinite;
    user-select: none;
}

@keyframes scaling {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.03);
    }

    100% {
        transform: scale(1);
    }
}

#noise {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 9999;
    background-image: url('/assets/img/grain.png');
    background-size: cover;
    mix-blend-mode: overlay;
    animation: noiseAnim 0.2s steps(2) infinite;
    transition: opacity 0.3s ease-in-out;
    transform: scale(2);
    pointer-events: none;
    user-select: none;
}

@keyframes noiseAnim {
    0% {
        background-position: 0 0;
    }

    25% {
        background-position: 50px 20px;
    }

    50% {
        background-position: 20px 80px;
    }

    75% {
        background-position: 70px 40px;
    }

    100% {
        background-position: 0 0;
    }
}

@media (max-width: 768px) {
    #vignette, #noise {
        display: none;
    }

    #ambient {
        filter: brightness(0.45) blur(30px);
    }
}

.slide.parallax.active {
    position: relative;
    overflow: hidden;
}
#particles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
}
.content, #heroimg {
    position: relative;
    z-index: 1;
}