.reveal {
	opacity: 0;
	transform: translateY(1rem);
	transition: opacity var(--duration-mid) ease, transform var(--duration-mid) ease;
}

.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@keyframes discover-bob {
	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(0.25rem);
	}
}

@keyframes caret-blink {
	0%,
	49% {
		opacity: 1;
	}

	50%,
	100% {
		opacity: 0;
	}
}

@keyframes hero-glow-drift-one {
	0%,
	100% {
		transform: translate3d(var(--glow-parallax-x, 0rem), var(--glow-parallax-y, 0rem), 0) scale(1);
		opacity: 0.78;
	}

	50% {
		transform: translate3d(calc(3.8rem + var(--glow-parallax-x, 0rem)), calc(2.6rem + var(--glow-parallax-y, 0rem)), 0) scale(1.12);
		opacity: 1;
	}
}

@keyframes hero-glow-drift-two {
	0%,
	100% {
		transform: translate3d(var(--glow-parallax-x, 0rem), var(--glow-parallax-y, 0rem), 0) scale(1);
		opacity: 0.72;
	}

	50% {
		transform: translate3d(calc(-3.4rem + var(--glow-parallax-x, 0rem)), calc(-2.4rem + var(--glow-parallax-y, 0rem)), 0) scale(1.13);
		opacity: 0.95;
	}
}

@keyframes hero-glow-drift-three {
	0%,
	100% {
		transform: translateX(-50%) translate3d(var(--glow-parallax-x, 0rem), var(--glow-parallax-y, 0rem), 0) scale(1);
		opacity: 0.8;
	}

	50% {
		transform: translateX(-50%) translate3d(calc(-1.8rem + var(--glow-parallax-x, 0rem)), calc(-2.8rem + var(--glow-parallax-y, 0rem)), 0) scale(1.09);
		opacity: 1;
	}
}

.home-discover svg {
	animation: discover-bob 1.8s ease-in-out infinite;
}

.service-card,
.step-card,
.content-stack,
.cta-box,
.home-search,
.home-chip,
.hero-card {
	position: relative;
	overflow: hidden;
}

.service-card::after,
.step-card::after,
.content-stack::after,
.cta-box::after,
.home-search::after,
.home-chip::after,
.hero-card::after {
	content: "";
	position: absolute;
	inset: 0;
	padding: 0.0625rem;
	border-radius: inherit;
	background: conic-gradient(from -90deg, var(--color-primary) calc(var(--line-progress, 0) * 1turn), transparent 0);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0.95;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.home-discover svg {
		animation: none;
	}

	.home-hero__glow--one,
	.home-hero__glow--two,
	.home-hero__glow--three {
		animation: none;
	}

	.service-card::after,
	.step-card::after,
	.content-stack::after,
	.cta-box::after,
	.home-search::after,
	.home-chip::after,
	.hero-card::after {
		opacity: 0;
	}
}
