.media-cover {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--cover-gradient, linear-gradient(135deg, #64748b, #334155));
}
.media-cover-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  pointer-events: none;
  z-index: 1;
}
.media-cover-icon { font-size: 2rem; line-height: 1; }
.media-cover-label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; opacity: 0.95; }
.media-cover img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.35s ease;
  z-index: 2;
}
.media-cover--loaded img.is-loaded { opacity: 1; }
.media-cover--fallback img.is-failed,
.media-cover img.is-failed { display: none; }
.card-cover .media-cover,
.detail-cover-wrap .media-cover,
.tl-thumb-wrap .media-cover,
.honor-img-wrap .media-cover { min-height: 100%; }
.welcome-logo-wrap.media-cover { width: 88px; height: 88px; border-radius: 20px; margin: 0 auto 12px; }
.home-hero.media-cover { min-height: 220px; border-radius: var(--radius); }
.home-hero.media-cover .media-cover-fallback { align-items: flex-start; padding: 24px 20px; }
.home-hero.media-cover .media-cover-icon { font-size: 2.4rem; }
.moment-slide-img-wrap.media-cover,
.masonry-item .media-cover { aspect-ratio: 4/3; border-radius: var(--radius); }
.lightbox-media.media-cover { width: min(92vw, 520px); aspect-ratio: 4/3; margin: 0 auto; border-radius: var(--radius); }
.moment-thumb-wrap.media-cover { width: 72px; height: 72px; border-radius: 8px; flex-shrink: 0; }
.honor-cert-wrap.media-cover { max-width: 280px; margin: 0 auto; aspect-ratio: 3/4; }
