.skeleton-grid {
    --gap: 30px;
    display: grid;
    gap: var(--gap);
}
.skeleton-grid--row {
    --repeat-row: 1;
    grid-template-rows: repeat(var(--repeat-row), 1fr);
}
.skeleton-grid--column {
    --repeat-column: 1;
    grid-template-columns: repeat(var(--repeat-column), 1fr);
}

.skeleton {
    --color-start: var(--light, #ececec) var(--dark, #3a3a3a);
    --color-end: var(--light, #f5f5f5) var(--dark, #2b2b2b);

    background: #eee;
    background: linear-gradient(110deg, var(--color-start) 8%, var(--color-end) 18%, var(--color-start) 33%);
    background-size: 200% 100%;
    animation: 1.5s skeleton-shine linear infinite;
}

@keyframes skeleton-shine {
    to {
        background-position-x: -200%;
    }
}
