.home-3d-banner {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(2.5rem, 8vw, 5rem) clamp(1.25rem, 4vw, 3rem);
	margin-bottom: var(--wp--preset--spacing--50);
	border-radius: 1.25rem;
	background:
		radial-gradient(circle at 20% 20%, rgba(127, 90, 240, 0.35), transparent 45%),
		radial-gradient(circle at 80% 70%, rgba(44, 182, 125, 0.35), transparent 50%),
		linear-gradient(145deg, #0d1321 0%, #111827 100%);
	color: #f8fafc;
}

.home-3d-banner__inner {
	position: relative;
	z-index: 2;
	display: grid;
	gap: 0.85rem;
	max-width: 52rem;
}

.home-3d-banner__eyebrow {
	margin: 0;
	font-size: 0.8rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	opacity: 0.85;
}

.home-3d-banner__title {
	position: relative;
	height: 1.3em;
	margin: 0;
	font-size: clamp(2rem, 8vw, 5rem);
	line-height: 1;
	perspective: 700px;
	transform-style: preserve-3d;
}

.home-3d-banner__word {
	position: absolute;
	inset: 0;
	display: inline-block;
	opacity: 0;
	transform: rotateX(90deg) translateY(40%);
	transform-origin: 50% 50%;
	transition: transform 720ms cubic-bezier(0.16, 1, 0.3, 1), opacity 450ms ease;
	will-change: transform, opacity;
	text-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}

.home-3d-banner__word.is-active {
	opacity: 1;
	transform: rotateX(0deg) translateY(0);
}

.home-3d-banner__subtext {
	margin: 0;
	font-size: clamp(1rem, 2.2vw, 1.25rem);
	opacity: 0.9;
}

.home-3d-banner__glow {
	position: absolute;
	inset: auto -20% -70% auto;
	width: clamp(10rem, 36vw, 20rem);
	aspect-ratio: 1 / 1;
	border-radius: 999px;
	filter: blur(2px);
	background: radial-gradient(circle, rgba(127, 90, 240, 0.8) 0%, rgba(127, 90, 240, 0.15) 45%, rgba(127, 90, 240, 0) 70%);
	animation: home-banner-float 9s ease-in-out infinite;
	z-index: 1;
}

@keyframes home-banner-float {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	50% {
		transform: translate3d(-12%, -9%, 0) scale(1.08);
	}
}

@media (prefers-reduced-motion: reduce) {
	.home-3d-banner__word {
		transition: none;
	}

	.home-3d-banner__glow {
		animation: none;
	}
}
