/* Animation Base */
.reveal {
    opacity: 0;
    transition: all 1s ease-out;
    will-change: transform, opacity;
}

/* Directions */
.reveal-up {
    transform: translateY(50px);
}

.reveal-down {
    transform: translateY(-50px);
}

.reveal-left {
    transform: translateX(-50px);
}

.reveal-right {
    transform: translateX(50px);
}

.reveal-zoom {
    transform: scale(0.8);
}

.reveal-rotate {
    transform: rotate(5deg) translateY(50px);
}

/* Active State */
.reveal.active {
    opacity: 1;
    transform: none;
}

/* Stagger Delays for Grid Items */
.grid .card:nth-child(1) {
    transition-delay: 100ms;
}

.grid .card:nth-child(2) {
    transition-delay: 200ms;
}

.grid .card:nth-child(3) {
    transition-delay: 300ms;
}

.grid .card:nth-child(4) {
    transition-delay: 400ms;
}

.grid .card:nth-child(5) {
    transition-delay: 500ms;
}

.grid .card:nth-child(6) {
    transition-delay: 600ms;
}

.grid .card:nth-child(7) {
    transition-delay: 700ms;
}

.grid .card:nth-child(8) {
    transition-delay: 800ms;
}

/* Keep existing .fade for backward compatibility if needed, but we will replace usages */
.fade {
    opacity: 0;
    transform: translateY(40px);
    transition: 1s;
}

.fade.show {
    opacity: 1;
    transform: none;
}