/* Loading skeletons and lightweight transitions use transform/opacity for smoother rendering. */
.hero-skeleton{border-radius:var(--radius, 14px);overflow:hidden}
.card-skeleton{background:linear-gradient(90deg,var(--border, #e5e7eb),var(--surface, #fff),var(--border, #e5e7eb));background-size:200% 100%;animation:shimmer 1.4s linear infinite;height:260px;border-radius:var(--radius, 14px)}

/* Smooth fade-in for content loaded */
.fade-in{animation:fadeIn 280ms ease-out both}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Staggered card entry */
.card:nth-child(1){animation-delay:0s}
.card:nth-child(2){animation-delay:0.05s}
.card:nth-child(3){animation-delay:0.1s}
.card:nth-child(4){animation-delay:0.15s}
.card:nth-child(5){animation-delay:0.2s}
.card:nth-child(6){animation-delay:0.25s}

/* Spinner rotation */
.search-spinner{animation:spin 0.8s linear infinite}
@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}
