.fade-overlay {
    /* Черная заслонка для плавного появления сайта из темноты */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #050505;
    z-index: 1000000;
    pointer-events: none;
    /* Пропускает клики сквозь себя */
    opacity: 1;
    transition: opacity 2s ease-in-out;
}

#flashlight {
    /* Слой с радиальным градиентом, имитирующий луч фонаря за курсором */
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: radial-gradient(circle 120px at var(--x, 50%) var(--y, 50%),
            rgba(255, 255, 255, 0.08) 0%, transparent 100%);
    z-index: 999998;
    pointer-events: none;
}

.grain {
    /* Наложение шума (фильм-грейн) поверх всего интерфейса */
    position: fixed;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: url('https://raw.githubusercontent.com/demiannort/grain-assets/main/grain.png');
    opacity: 0.05;
    z-index: 5;
    pointer-events: none;
    animation: noise 0.2s infinite;
}

#ash-canvas,
#rain-canvas {
    /* Холсты для динамической отрисовки частиц пепла и капель дождя через JS */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 6;
    pointer-events: none;
    filter: blur(0.5px);
}

#ash-canvas {
    opacity: 0.4;
}

.bg-image {
    /* Основное фоновое изображение с эффектом медленного приближения */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
        url('../Pics/background.jpg');
    background-size: cover;
    background-position: center;
    filter: grayscale(100%);
    z-index: 1;
    animation: slowZoom 60s infinite alternate;
}

@keyframes noise {
    0% {
        transform: translate(0, 0)
    }

    10% {
        transform: translate(-5%, -5%)
    }

    100% {
        transform: translate(10%, 5%)
    }
}

@keyframes slowZoom {
    from {
        transform: scale(1);
    }

    to {
        transform: scale(1.1);
    }
}