/* Page-specific light styles aligned with global theme */
.hero-header .dots-bg {
	background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px);
	background-size: 20px 20px;
	animation: pulse 6s ease-in-out infinite;
}

/* Explosive split + underline sweep for hero title */
.hero-title { position: relative; display: inline-block; overflow: hidden; }
.hero-title .word { display: inline-block; will-change: transform, opacity; }
/* Sync both words with the same subtle glow + scale pulse */
.hero-title .w1 { animation: word-in-left .8s cubic-bezier(.2,.8,.2,1) both, soft-glow 2.8s ease-in-out infinite, scale-pulse 2.8s ease-in-out infinite; }
.hero-title .w2 { animation: word-in-right .8s cubic-bezier(.2,.8,.2,1) .1s both, soft-glow 2.8s ease-in-out infinite, scale-pulse 2.8s ease-in-out infinite; }
.hero-title .amp { display: inline-block; padding: 0 .35rem; }
.hero-title::after {
	content: '';
	position: absolute; left: 0; right: 0; bottom: -6px; height: 3px;
	background: linear-gradient(90deg, transparent, #ef3e52, transparent);
	transform: translateX(-120%);
	animation: underline-sweep .9s .2s ease forwards, underline-loop 2s 1.1s ease-in-out infinite;
}

@keyframes word-in-left { from { transform: translateX(-30px) scale(.98); opacity: 0; } to { transform: translateX(0) scale(1); opacity: 1; } }
@keyframes word-in-right { from { transform: translateX(30px) scale(.98); opacity: 0; } to { transform: translateX(0) scale(1); opacity: 1; } }
@keyframes underline-sweep { to { transform: translateX(0); } }

/* looping animations */
/* Softer unified glow (no color jump, just red accent aura) */
@keyframes soft-glow {
	0%, 100% { text-shadow: 0 0 0 rgba(239,62,82,0); }
	50% { text-shadow: 0 0 10px rgba(239,62,82,.35), 0 0 18px rgba(239,62,82,.2); }
}
/* Gentle scale pulse */
@keyframes scale-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.035); }
}

@keyframes underline-loop {
	0% { transform: translateX(-120%); opacity: .6; }
	50% { transform: translateX(0); opacity: 1; }
	100% { transform: translateX(120%); opacity: .6; }
}

.project-card {
	transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease, filter .28s ease, background-color .28s ease;
	position: relative;
	transform-style: preserve-3d;
}
.project-thumb { overflow: hidden; border-top-left-radius: .75rem; border-top-right-radius: .75rem; background: rgba(255,255,255,.02); }
.project-card .thumb-img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .5s ease; cursor: pointer; }
.project-card:hover .thumb-img { transform: scale(1.04); filter: brightness(1.05) saturate(1.05); }
.project-card:hover {
	transform: translateY(-2px) rotate3d(1, 1, 0, 4deg);
	border-color: rgba(239,62,82,.55) !important;
	box-shadow: 0 14px 28px rgba(239,62,82,.16), 0 6px 12px rgba(0,0,0,.25);
	filter: saturate(1.05);
}

/* Title/text smooth color transition */
.project-card h5 { transition: color .25s ease; }
.project-card:hover h5 { color: #ffffff; }
.project-card p, .project-card .badge { transition: opacity .25s ease, filter .25s ease; }
.project-card:hover .badge { filter: brightness(1.1); }

/* Soft red glow that blooms then settles */
.project-card:hover { animation: card-glow .9s ease-out; }
@keyframes card-glow {
	0% { box-shadow: 0 0 0 rgba(239,62,82,0); }
	50% { box-shadow: 0 18px 36px rgba(239,62,82,.22), 0 0 0 rgba(239,62,82,.22); }
	100% { box-shadow: 0 14px 28px rgba(239,62,82,.16), 0 6px 12px rgba(0,0,0,.25); }
}

/* Training list cards hover effect */
.training-card {
	transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease, background-color .28s ease;
	position: relative;
}
.training-card:hover {
	transform: translateY(-2px) rotateX(2deg);
	border-color: rgba(239,62,82,.45) !important;
	box-shadow: 0 10px 24px rgba(239,62,82,.14);
}
.training-card h5 { transition: color .25s ease; }
.training-card:hover h5 { color: #ffffff; }
.training-card .btn { transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.training-card .btn:hover { transform: translateY(-1px); }

/* Modal pop animation */
.modal .modal-content { transform: scale(.96); opacity: 0; transition: transform .2s ease, opacity .2s ease; }
.modal.show .modal-content { transform: scale(1); opacity: 1; }

/* Project image modal zoom-in */
#projImageModal .modal-content { transform: translateY(8px) scale(.96); opacity: 0; transition: transform .22s ease, opacity .22s ease; }
#projImageModal.show .modal-content { transform: translateY(0) scale(1); opacity: 1; }

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
	.project-card, .training-card, .project-card * , .training-card * {
		transition: none !important;
		animation: none !important;
	}
}
.training-card::after {
	content: '';
	position: absolute; inset: 0; border-radius: .75rem;
	box-shadow: inset 0 0 0 1px rgba(239,62,82,.08);
	pointer-events: none;
}



