/* ===========================
   REVEAL ON SCROLL
=========================== */

.reveal {
    opacity: 0;
    transform: translateY(60px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
    will-change: opacity, transform;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Varianti */

.reveal-left {
    opacity: 0;
    transform: translateX(-60px);
    transition: all .8s ease;
}

.reveal-left.active {
    opacity: 1;
    transform: translateX(0);
}

.reveal-right {
    opacity: 0;
    transform: translateX(60px);
    transition: all .8s ease;
}

.reveal-right.active {
    opacity: 1;
    transform: translateX(0);
}

.reveal-scale {
    opacity: 0;
    transform: scale(.92);
    transition: all .8s ease;
}

.reveal-scale.active {
    opacity: 1;
    transform: scale(1);
}

/* ===========================
   STAGGER REVEAL (GRIGLIE E CARD)
=========================== */

.promise-card,
.step-item,
.feature-dark-item,
.render-card,
.feature-block-card,
.ba-project-card,
.gallery-card {
    opacity: 0;
    transform: translateY(40px);
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}

.promise-card.show,
.step-item.show,
.feature-dark-item.show,
.render-card.show,
.feature-block-card.show,
.ba-project-card.show,
.gallery-card.show {
    opacity: 1;
    transform: translateY(0);
}