/**
 * Workout Industry site intro.
 */

.wi-site-intro {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: none;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 50% 46%,
			rgba(0, 196, 196, 0.08) 0,
			rgba(0, 196, 196, 0.025) 26%,
			transparent 58%
		),
		#050505;
	opacity: 1;
	visibility: visible;
}

html.wi-intro-enabled {
	overflow: hidden;
}

html.wi-intro-enabled body {
	overflow: hidden;
}

html.wi-intro-enabled .wi-site-intro {
	display: flex;
}

.wi-site-intro__ambient {
	position: absolute;
	inset: -20%;
	pointer-events: none;
	background:
		linear-gradient(
			115deg,
			transparent 35%,
			rgba(0, 196, 196, 0.025) 46%,
			rgba(0, 196, 196, 0.08) 50%,
			rgba(0, 196, 196, 0.025) 54%,
			transparent 65%
		);
	opacity: 0;
	transform: translateX(-35%);
	animation: wiIntroAmbient 1.15s 0.18s ease-out forwards;
}

.wi-site-intro__content {
	position: relative;
	display: flex;
	width: min(62vw, 340px);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	transform: translateY(8px);
}

.wi-site-intro__logo {
	position: relative;
	width: 100%;
	opacity: 0;
	filter: drop-shadow(0 0 0 rgba(0, 196, 196, 0));
	transform: scale(0.94);
	animation: wiIntroLogoReveal 0.72s 0.12s
		cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.wi-site-intro__logo svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

/*
 * The SVG contains separately addressable groups:
 * mark, workout, industry and diamond-tip.
 */
.wi-site-intro__logo #wi-logo-mark {
	opacity: 0;
	transform: translateY(7px);
	transform-origin: center;
	animation: wiIntroMarkReveal 0.62s 0.12s
		cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.wi-site-intro__logo #wi-logo-workout {
	opacity: 0;
	transform: translateY(10px);
	animation: wiIntroTextReveal 0.42s 0.42s ease-out forwards;
}

.wi-site-intro__logo #wi-logo-industry {
	opacity: 0;
	transform: translateY(10px);
	animation: wiIntroTextReveal 0.42s 0.53s ease-out forwards;
}

.wi-site-intro__logo #wi-logo-diamond-tip {
	opacity: 0;
	transform: translateY(-5px);
	animation: wiIntroDiamondReveal 0.38s 0.65s ease-out forwards;
}

.wi-site-intro__line {
	width: 0;
	height: 1px;
	margin-top: 18px;
	background: linear-gradient(
		90deg,
		transparent,
		#00c4c4 24%,
		#ffffff 50%,
		#00c4c4 76%,
		transparent
	);
	box-shadow: 0 0 12px rgba(0, 196, 196, 0.5);
	opacity: 0;
	animation: wiIntroLine 0.58s 0.62s ease-out forwards;
}

/*
 * Exit state added by JavaScript.
 */
.wi-site-intro.is-leaving {
	pointer-events: none;
	animation: wiIntroExit 0.55s
		cubic-bezier(0.76, 0, 0.24, 1) forwards;
}

.wi-site-intro.is-leaving .wi-site-intro__content {
	animation: wiIntroContentExit 0.46s ease-in forwards;
}

@keyframes wiIntroLogoReveal {
	from {
		opacity: 0;
		filter: drop-shadow(0 0 0 rgba(0, 196, 196, 0));
		transform: scale(0.94);
	}

	to {
		opacity: 1;
		filter: drop-shadow(0 0 18px rgba(0, 196, 196, 0.1));
		transform: scale(1);
	}
}

@keyframes wiIntroMarkReveal {
	from {
		opacity: 0;
		transform: translateY(7px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes wiIntroTextReveal {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes wiIntroDiamondReveal {
	from {
		opacity: 0;
		transform: translateY(-5px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes wiIntroLine {
	0% {
		width: 0;
		opacity: 0;
	}

	35% {
		opacity: 1;
	}

	100% {
		width: 72%;
		opacity: 0.75;
	}
}

@keyframes wiIntroAmbient {
	0% {
		opacity: 0;
		transform: translateX(-35%);
	}

	35% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translateX(35%);
	}
}

@keyframes wiIntroContentExit {
	to {
		opacity: 0;
		filter: blur(3px);
		transform: scale(1.025);
	}
}

@keyframes wiIntroExit {
	0% {
		opacity: 1;
		visibility: visible;
	}

	99% {
		opacity: 0;
		visibility: visible;
	}

	100% {
		opacity: 0;
		visibility: hidden;
	}
}

/*
 * Mobile sizing.
 */
@media (max-width: 767px) {
	.wi-site-intro__content {
		width: min(72vw, 280px);
	}

	.wi-site-intro__line {
		margin-top: 14px;
	}
}

/*
 * Respect the visitor's reduced-motion preference.
 */
@media (prefers-reduced-motion: reduce) {
	.wi-site-intro *,
	.wi-site-intro *::before,
	.wi-site-intro *::after {
		animation-duration: 0.01ms !important;
		animation-delay: 0ms !important;
		transition-duration: 0.01ms !important;
	}
}