/* ===== Traventia UI — Skeleton Loading ===== */

.tv-skeleton {
	position: relative;
	overflow: hidden;
	background: var(--tv-surface-alt);
	border-radius: var(--tv-radius-sm);
}

.tv-skeleton::after {
	content: "";
	position: absolute;
	inset: 0;
	transform: translateX(-100%);
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
	animation: tv-skeleton-shimmer 1.4s ease-in-out infinite;
}

@keyframes tv-skeleton-shimmer {
	100% { transform: translateX(100%); }
}

.tv-skeleton-text { height: 14px; margin-bottom: var(--tv-space-2); width: 100%; }
.tv-skeleton-text.short { width: 60%; }

.tv-skeleton-card {
	border-radius: var(--tv-radius-lg);
	overflow: hidden;
	border: 1px solid var(--tv-border);
}

.tv-skeleton-card-media { aspect-ratio: 4 / 3; }

.tv-skeleton-card-body { padding: var(--tv-space-4); display: flex; flex-direction: column; gap: var(--tv-space-2); }

@media (prefers-reduced-motion: reduce) {
	.tv-skeleton::after { animation: none; }
}