.skeleton-card {
    position: relative;
}

.skeleton-media,
.skeleton-lines {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    transition: opacity .35s ease;
}

.skeleton-lines {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
}

.skeleton-lines span {
    display: block;
    width: 80%;
    height: 10px;
    border-radius: 4px;
}

.skeleton-lines span:last-child {
    width: 50%;
}

.skeleton-shimmer {
    position: relative;
    overflow: hidden;
    background-color: #e4e4e4;
}

.skeleton-shimmer::after {
    content: '';
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .55) 50%, rgba(255, 255, 255, 0) 100%);
    animation: skeleton-sweep 1.6s infinite;
}

@keyframes skeleton-sweep {
    100% {
        transform: translateX(100%);
    }
}

.skeleton-real {
    opacity: 0;
    transition: opacity .35s ease;
}

.skeleton-card.is-loaded .skeleton-media,
.skeleton-card.is-loaded .skeleton-lines {
    opacity: 0;
    pointer-events: none;
}

.skeleton-card.is-loaded .skeleton-real {
    opacity: 1;
}
