.mosaic-image {
	margin: 0;
	min-inline-size: 0;
}

.mosaic-image a {
	display: block;
}

.mosaic-image__img {
	display: block;
	inline-size: 100%;
	max-inline-size: 100%;
	block-size: auto;
}

.mosaic-image a:focus-visible {
	outline: var(--mosaic-focus-width, 3px) solid var(--mosaic-color-focus, currentColor);
	outline-offset: 2px;
}

.mosaic-image figcaption {
	margin-block-start: 0.5rem;
	font-size: 0.875em;
	opacity: 0.8;
}

.mosaic-image--morph .mosaic-image__img {
	border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
	animation: mosaic-morph 9s ease-in-out infinite;
}

@keyframes mosaic-morph {
	50% {
		border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mosaic-image--morph .mosaic-image__img {
		animation: none;
	}
}
