/* Lazy loading styles */
.lazy {
    opacity: 0;
    transition: opacity 0.3s;
    background-color: #f0f0f0;
}

.lazy-loaded {
    opacity: 1;
}

.lazy-bg {
    background-color: #f0f0f0;
    transition: background-color 0.3s;
}

.lazy-bg-loaded {
    background-color: transparent;
}

/* Placeholder for images while loading */
img.lazy {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: loading 1.5s infinite;
}

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

    100% {
        background-position: -200% 0;
    }
}

/* Optimize image rendering */
img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Responsive images */
img {
    max-width: 100%;
    height: auto;
}

/* Performance optimizations */
* {
    box-sizing: border-box;
}

/* Optimize animations and transitions */
.project img,
.bg-slide,
.member img {
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
}

/* Images inside modal boxes - maintain proportions with max height */
.project-content .project-image img,
.project-content .project-details .project-image img {
    max-height: 100vh;
    height: auto;
    object-fit: contain;
    transition: opacity 0.3s ease, transform 0.3s ease;
    will-change: opacity, transform;
}

/* Magnetic scroll container styling */
.project-content .project-image,
.project-content .project-details {
    overflow: hidden;
    position: relative;
}

/* Smooth image transitions for magnetic scroll */
.project-content .project-image img,
.project-content .project-details .project-image img {
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}


/* Responsive adjustments for modal images */
@media (max-width: 768px) {

    .project-content .project-image img,
    .project-content .project-details .project-image img {
        max-height: 80vh;
    }
}

@media (max-width: 480px) {

    .project-content .project-image img,
    .project-content .project-details .project-image img {
        max-height: 70vh;
    }
}

/* Optimize scrolling performance */
body {
    -webkit-overflow-scrolling: touch;
}

/* Reduce repaints */
.navbar,
.fx-cursor {
    transform: translateZ(0);
}

/* Optimize font rendering */
body,
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}