/* ==========================================================================
   Animations & keyframes (kept separate so they're easy to tune/disable)
   ========================================================================== */

@keyframes tk-pulse {
	0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 35%, transparent); }
	50%      { box-shadow: 0 0 0 8px color-mix(in srgb, var(--accent) 0%, transparent); }
}

@keyframes tk-scroll-dot {
	0%   { transform: translateY(0); opacity: 1; }
	60%  { transform: translateY(8px); opacity: 0; }
	100% { transform: translateY(0); opacity: 1; }
}

@keyframes tk-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@keyframes tk-fade-up {
	from { opacity: 0; transform: translate3d(0, 24px, 0); }
	to   { opacity: 1; transform: none; }
}

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

@keyframes tk-blob-drift {
	0%   { transform: translate(0, 0) scale(1); }
	50%  { transform: translate(-4%, 3%) scale(1.05); }
	100% { transform: translate(0, 0) scale(1); }
}

.tk-hero__blob { animation: tk-blob-drift 14s ease-in-out infinite; }

/* Hero entrance — simple, light fade-up. No split-text gymnastics. */
.tk-hero__meta, .tk-hero__title, .tk-hero__intro, .tk-hero__visual {
	animation: tk-fade-up .7s var(--ease-out) both;
}
.tk-hero__meta   { animation-delay: .05s; }
.tk-hero__title  { animation-delay: .12s; }
.tk-hero__intro  { animation-delay: .22s; }
.tk-hero__visual { animation-delay: .15s; }
