/* Base fade-in state */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

/* When visible */
.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .fade-in {
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}