/* Skeleton loaders: shimmer placeholders for card images and search results. */
:root{--sk-base:#e5ebf1;--sk-shine:rgba(255,255,255,.75)}
@keyframes skShimmer{0%{background-position:150% 0}100%{background-position:-150% 0}}
@keyframes skFade{from{opacity:0}to{opacity:1}}
.sk,.sk-img:not(.is-loaded){background-color:var(--sk-base);background-image:linear-gradient(100deg,transparent 30%,var(--sk-shine) 50%,transparent 70%);background-size:200% 100%;background-repeat:no-repeat;animation:skShimmer 1.4s ease-in-out infinite}
.sk-img:not(.is-loaded){color:transparent}
.sk-img:not(.is-near):not(.is-loaded){animation:none}
.sk-img.is-loaded{animation:skFade .45s ease both}
/* Reusable building blocks (for placeholder markup) */
.sk{display:block;border-radius:8px}
.sk-line{height:12px;margin:8px 0}.sk-line--lg{height:18px}.sk-line--sm{width:40%}.sk-line--md{width:70%}
.sk-circle{border-radius:50%}
.sk-card{border:1px solid #e2e8f0;border-radius:2rem;padding:12px;background:#fff}
.sk-card .sk-media{height:220px;border-radius:1.5rem}
/* Search dropdown placeholder rows */
.sk-row{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid #f1f5f9}
.sk-row:last-child{border-bottom:0}
.sk-row .sk-thumb{width:34px;height:34px;border-radius:10px;flex-shrink:0}
.sk-row .sk-text{flex:1;min-width:0}
@media(prefers-reduced-motion:reduce){.sk,.sk-img:not(.is-loaded){animation:none}.sk-img.is-loaded{animation:none}}
