/* AICODE-NOTE: Делаем fade-in устойчивым — даже если JS упадёт, элементы покажутся */
.fade-in {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Активируем эффект только если на body есть .js-loaded (ставит JS) */
.js-loaded .fade-in {
    opacity: 0;
    transform: translateY(30px);
}

.js-loaded .fade-in--visible {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-left--visible {
    opacity: 1;
    transform: translateX(0);
}

.fade-in-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-right--visible {
    opacity: 1;
    transform: translateX(0);
}

.scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.scale-in--visible {
    opacity: 1;
    transform: scale(1);
}
