/* Blur-up image loading: the tiny responsive variant fills the frame first, then the full image fades in. */
.sm-progressive-image { position: relative; overflow: hidden; isolation: isolate; background: #eee5e7; }
.sm-progressive-image--profile, .sm-progressive-image--profile-detail { display: block; width: 100%; height: 100%; }
.sm-progressive-image--gallery { display: block; width: 100%; height: 100%; }

/* Bureau card media sits underneath the card's existing gradient and status badges. */
.sbc__cover .sm-progressive-image--bureau-cover { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.sbc__cover::after { z-index: 1; }
.sbc__cover .sbc__badge, .sbc__cover .sbc__since { z-index: 2; }
.sbc__logo .sm-progressive-image--bureau-logo { display: block; width: 100%; height: 100%; }

.sm-bz-cover .sm-progressive-image--bureau-detail-cover { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.sm-bz-cover.has-image::after { z-index: 1; pointer-events: none; }
.sm-bz-avatar .sm-progressive-image--bureau-avatar,
.sm-bp-client-photo .sm-progressive-image--bureau-client { display: block; width: 100%; height: 100%; }
.spx-rel-ph .sm-progressive-image { display: block; width: 100%; aspect-ratio: 1; }
.sm-progressive-image::before { position: absolute; z-index: 0; inset: -14px; content: ""; background: var(--sm-image-placeholder) center / cover no-repeat; filter: blur(15px); transform: scale(1.08); }
.sm-progressive-image__full { position: relative; z-index: 2; display: block; width: 100%; height: 100%; opacity: 0; transition: opacity .45s ease; }
.sm-progressive-image.is-loaded .sm-progressive-image__full { opacity: 1; }
.sm-progressive-image__shimmer { position: absolute; z-index: 1; inset: 0; overflow: hidden; background: linear-gradient(100deg, transparent 25%, rgba(255,255,255,.30) 45%, transparent 65%); transform: translateX(-100%); animation: sm-image-shimmer 1.5s ease-in-out infinite; }
.sm-progressive-image.is-loaded .sm-progressive-image__shimmer { opacity: 0; transition: opacity .25s ease; animation: none; }
@keyframes sm-image-shimmer { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .sm-progressive-image__full, .sm-progressive-image.is-loaded .sm-progressive-image__shimmer { transition: none; } .sm-progressive-image__shimmer { animation: none; } }
