img, 
picture, 
video, 
canvas, 
svg {
    display: block;
    max-width: 100%;
}

img {
    max-height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}

.img--left {
    margin-right: auto;
}

.img--center {
    margin-left: auto;
    margin-right: auto;
}

.img--right {
    margin-left: auto;
}

figure {
    /* height: 100%; */
    border-radius: 100%;
    overflow: hidden;
    max-width: 30rem;
    margin: auto;
}

@media screen and (min-width: 60rem) {
    figure {
        margin: initial;
    }
}

.video,
.img {
    display: block;
    --w: 1;
    --h: 1;
    padding-bottom: calc(100% / var(--w) * var(--h));
    background: var(--color-text);
    height: 100%;
}

.img img,
.video iframe {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    border: 0;
}

.img[data-contain] img {
    -o-object-fit: contain;
    object-fit: contain;
}

.img-caption,
.video-caption {
    padding-top: var(--space-xs);
}

figcaption {
    padding-top: var(--space-2xs);
    color: var(--color-text--alt);
}