/* Skeleton Shimmer Animation */
@keyframes shimmer {
    0% {
        background-position: -468px 0;
    }
    100% {
        background-position: 468px 0;
    }
}

.skeleton {
    background: #f6f7f8;
    background-image: linear-gradient(to right, #f6f7f8 0%, #edeef1 20%, #f6f7f8 40%, #f6f7f8 100%);
    background-repeat: no-repeat;
    background-size: 800px 1000px;
    display: inline-block;
    position: relative;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    animation-iteration-count: infinite;
    animation-name: shimmer;
    animation-timing-function: linear;
}

/* Smooth Fade-in */
.image-fade-in {
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.image-fade-in.loaded {
    opacity: 1;
}

/* Hide broken image icon while loading */
img[x-data]:not([src]) {
    visibility: hidden;
}

.item-card-skeleton {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
}

.banner-skeleton {
    width: 100%;
    height: 400px;
}

.logo-skeleton {
    width: 120px;
    height: 120px;
    border-radius: 50%;
}
