/**
 * Performance — Sprint 6b.
 * Mostly utility tweaks (lazy-load placeholders, font-display
 * fallback styling, defer-related shimmer suppression). Tiny.
 */

/* Lazy-load placeholder shimmer. */
img.lazyload, img.lazyloading { opacity: 0; transition: opacity 0.3s; }
img.lazyloaded { opacity: 1; }

iframe.lazyload, iframe.lazyloading { opacity: 0; }
iframe.lazyloaded { opacity: 1; }

/* Font-display: optional — avoid invisible text during FOUT window. */
@font-face { font-display: var(--ls-font-display, swap); }

/* Light shimmer for deferred script-driven content. */
.ls-defer-shimmer {
    min-height: 1.5em;
    background: linear-gradient(90deg, var(--ls-color-bg-alt, #F8FAFC) 0%, rgba(255,255,255,0.5) 50%, var(--ls-color-bg-alt, #F8FAFC) 100%);
    background-size: 200% 100%;
    animation: ls-shimmer 1.2s ease-in-out infinite;
}
@keyframes ls-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
