.boost-skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: boost-skeleton-wave 1.5s ease-in-out infinite;
    border-radius: 4px;
}

@keyframes boost-skeleton-wave {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.boost-skeleton-text {
    height: 1em;
    margin-bottom: 0.5em;
}

.boost-skeleton-heading {
    height: 2em;
    margin-bottom: 1em;
}

.boost-skeleton-image {
    width: 100%;
    height: 200px;
}

[data-boost-cv] {
    content-visibility: auto;
    contain-intrinsic-size: var(--boost-intrinsic-size, auto 500px);
}

[data-boost-lazy]:not([data-boost-lazy-loaded]) {
    min-height: var(--boost-lazy-min-height, 100px);
}

@media (prefers-reduced-motion: reduce) {
    [data-boost-reduce-motion],
    [data-boost-reduce-motion] * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.boost-block[data-animate] {
    will-change: transform, opacity;
}

.boost-block[data-animate].animated {
    will-change: auto;
}

[data-boost-contain="true"] {
    contain: layout style paint;
}

[data-boost-contain="content"] {
    contain: content;
}

[data-boost-contain="layout"] {
    contain: layout;
}

[data-boost-contain="layout paint"] {
    contain: layout paint;
}

.boost-block.no-contain {
    contain: none;
}

.boost-image-wrapper {
    position: relative;
    overflow: hidden;
}

.boost-image-wrapper img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.boost-image-wrapper[data-aspect="16-9"] {
    aspect-ratio: 16/9;
}

.boost-image-wrapper[data-aspect="4-3"] {
    aspect-ratio: 4/3;
}

.boost-image-wrapper[data-aspect="1-1"] {
    aspect-ratio: 1/1;
}

[data-boost-aspect],
[data-boost-aspect-ratio] {
    aspect-ratio: var(--boost-aspect-ratio, 16 / 9);
}
