/**
 * hana+nils · Büro für Gestaltung
 * https://hananils.de · buero@hananils.de
 */

picture {
    display: block;
    position: relative;
    background-color: #f8f8f8;
    background-position: var(--focus-position, center);
    background-size: cover;
    aspect-ratio: var(--aspect-ratio);
}

.is-interactive picture.is-loading::after {
    content: '';
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
}

.is-interactive picture.is-loading::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 4rem;
    height: 4rem;
    margin-top: -2rem;
    margin-left: -2rem;
    border: 1px solid #ccc;
    border-top-color: #3c4662;
    border-radius: 50%;
    animation: spinner 1s linear infinite;
    z-index: var(--z-index-top);
}

@keyframes spinner {
    to {
        transform: rotate(360deg);
    }
}

picture img {
    display: block;
    width: 100%;
    height: auto;
    opacity: 1;
    aspect-ratio: var(--aspect-ratio);
    object-position: var(--focus-position);
}

picture img[data-src] {
    display: none;
}

picture.is-lazy img {
    transition: opacity 0.15s ease-in;
}

.is-interactive picture.is-loading img {
    opacity: 0;
}

/* Undersized images */

@media (min-width: 700px) {
    :not(.cover) > picture.is-undersized {
        max-width: var(--image-width, none);
        max-height: var(--image-height, none);
    }

    :not(.cover) > picture.is-undersized img {
        max-width: var(--image-width, none);
    }
}
