/**
 * Enhanced Lazy Loading Styles
 * Enterprise-grade styling for lazy-loaded images
 */

.lazy-image {
    opacity: 0;
    transition: opacity 0.3s ease;
    background-color: #f0f0f0;
    background-image: linear-gradient(90deg, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
}

.lazy-image.lazy-loading {
    opacity: 0.5;
}

.lazy-image.lazy-loaded {
    opacity: 1;
    background: none;
    animation: none;
}

.lazy-image.lazy-error {
    opacity: 1;
    background-color: #f8f8f8;
    background-image: none;
    animation: none;
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

/* Blur-up effect for progressive loading */
.lazy-image.blur-up {
    filter: blur(5px);
    transition: filter 0.3s ease;
}

.lazy-image.blur-up.lazy-loaded {
    filter: blur(0);
}

/* Accessibility - Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .lazy-image {
        transition: none;
        animation: none;
    }
    
    .lazy-image.blur-up {
        filter: none;
        transition: none;
    }
}

