/**
 * Motion — subtle only; honor reduced motion
 */
@keyframes fc-spin {
	to { transform: rotate(360deg); }
}

@keyframes fc-shimmer {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

@keyframes fc-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes fc-slide-up {
	from {
		opacity: 0;
		transform: translateY(0.4rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.fc-animate-fade {
	animation: fc-fade-in var(--fc-duration) var(--fc-ease) both;
}

.fc-animate-slide {
	animation: fc-slide-up var(--fc-duration-slow) var(--fc-ease) both;
}

.fc-hover-lift {
	transition:
		transform var(--fc-duration-fast) var(--fc-ease),
		box-shadow var(--fc-duration) var(--fc-ease);
}

.fc-hover-lift:hover {
	transform: translateY(-1px);
	box-shadow: var(--fc-shadow-md);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
