/* Keep the real homepage visible and animate its existing hero artwork in place. */
.elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-image.wow {
	visibility: visible !important;
	opacity: 1 !important;
}

html.col-knight-impact-pending .elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-content > * {
	visibility: hidden !important;
}

/* Keep the headline's outlined pass and solid fill inside the knight's reveal sequence. */
.elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-content h1[data-col-hero-title] {
	position: relative;
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	clip-path: none !important;
	transition: none !important;
}

.elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-content h1[data-col-hero-title] .col-hero-title-outline {
	display: block;
	color: transparent;
	-webkit-text-fill-color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.94);
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1450ms cubic-bezier(0.34, 0.02, 0.17, 1);
}

.elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-content h1[data-col-hero-title] .col-hero-title-fill {
	position: absolute;
	inset: 0;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	-webkit-text-stroke: 0 transparent;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1450ms cubic-bezier(0.34, 0.02, 0.17, 1);
	pointer-events: none;
}

.elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-content h1[data-col-hero-stage="outline"] .col-hero-title-outline {
	clip-path: inset(0);
}

.elementor-2829 .elementor-element-b5f32dc .gt-hero-4 .gt-hero-content h1[data-col-hero-stage="fill"] .col-hero-title-fill {
	clip-path: inset(0);
}

.col-knight-impact-wave {
	position: fixed;
	z-index: 2147482000;
	left: var(--col-impact-x, 50vw);
	top: var(--col-impact-y, 90vh);
	width: min(14vmin, 120px);
	aspect-ratio: 1;
	border: 2px solid rgb(245 205 255 / 96%);
	border-radius: 50%;
	box-shadow: 0 0 8px 2px rgb(246 211 255 / 95%), 0 0 23px 8px rgb(169 91 255 / 74%), inset 0 0 13px rgb(255 197 123 / 74%);
	transform: translate(-50%, -50%) scale(0.04);
	opacity: 0;
	pointer-events: none;
	animation: col-knight-impact-wave 1350ms cubic-bezier(0.12, 0.58, 0.18, 1) both;
}

.col-knight-impact-wave::before {
	position: absolute;
	inset: -6px;
	content: "";
	border: 1px solid rgb(255 186 112 / 90%);
	border-radius: inherit;
	box-shadow: 0 0 17px 3px rgb(234 159 255 / 55%);
}

html.col-knight-impact-hit body {
	animation: col-knight-impact-screen-hit 210ms ease-out both;
}

@keyframes col-knight-impact-screen-hit {
	0%, 100% { transform: translate3d(0, 0, 0); }
	24% { transform: translate3d(-3px, 2px, 0); }
	52% { transform: translate3d(3px, -2px, 0); }
	78% { transform: translate3d(-1px, 1px, 0); }
}

@keyframes col-knight-impact-wave {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(0.04); }
	7% { opacity: 0.98; }
	46% { opacity: 0.76; }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(40); }
}

@media (prefers-reduced-motion: reduce) {
	.col-knight-impact-wave,
	html.col-knight-impact-hit body {
		animation: none !important;
	}
}
