.fx-vignette,
.fx-scanlines,
.fx-noise {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 999;
}

.fx-scanlines {
    opacity: 0.30;
    background: repeating-linear-gradient(to bottom,
            rgba(255, 255, 255, 0.03),
            rgba(255, 255, 255, 0.03) 1px,
            rgba(0, 0, 0, 0) 3px,
            rgba(0, 0, 0, 0) 7px);
}

.fx-noise {
    opacity: 0.08;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}

.fx-vignette {
    opacity: 1;
    background: radial-gradient(circle at 50% 35%,
            rgba(0, 0, 0, 0) 0%,
            rgba(0, 0, 0, 0.25) 55%,
            rgba(0, 0, 0, 0.70) 100%);
}