/* Fade In Animation */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

/* Stagger Delays */
.delay-100 {
    transition-delay: 0.1s;
}

.delay-200 {
    transition-delay: 0.2s;
}

.delay-300 {
    transition-delay: 0.3s;
}

/* Image Hover Reveal */
.hover-reveal {
    overflow: hidden;
    position: relative;
}

.hover-reveal img {
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.hover-reveal:hover img {
    transform: scale(1.05);
}