/* ─────────────────────────────────────────
   Animations
───────────────────────────────────────── */

/* Hero entrance */
@keyframes fadeUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes btnShine {
	from {
		left: -75%;
	}

	to {
		left: 125%;
	}
}

header h1 {
	animation: fadeUp 0.6s ease both;
}

header .tagline {
	animation: fadeUp 0.6s 0.15s ease both;
}

header>.container>div {
	animation: fadeUp 0.6s 0.30s ease both;
}

/* Top scroll progress indicator */
#scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	width: 0%;
	background: linear-gradient(to right, var(--primary), var(--accent));
	z-index: 9999;
	transition: width 0.1s linear;
	pointer-events: none;
}

/* Scroll-reveal */
.reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal.visible {
	opacity: 1;
	transform: none;
}

/* Card hover lifts */
.skill-card {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.skill-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
}

.pillar-card {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pillar-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}

/* Team portrait hover scale */
.team-member img {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.team-member img:hover {
	transform: scale(1.05);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}

	#scroll-progress {
		transition: none;
	}
}
