/**
 * Performance Optimizations CSS
 * Loading states and optimizations
 */

/* Lazy loading placeholder */
img[data-src] {
    opacity: 0;
    transition: opacity 0.3s;
    background: #f0f0f0;
}

img[data-src].loaded,
img.loaded {
    opacity: 1;
}

/* Prevent layout shift for images */
img {
    max-width: 100%;
    height: auto;
}

/* Optimize font loading */
@font-face {
    font-display: swap; /* Show fallback font immediately */
}

/* Reduce repaints */
* {
    will-change: auto;
}

/* Optimize animations */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Content visibility for off-screen content */
.off-screen {
    content-visibility: auto;
    contain-intrinsic-size: 0 500px;
}
