/**
 * Energy Coast UTC — page transitions & homepage reveal.
 */
:root {
	/* Matches #page-footer .color_footer-bottom (--color-footer-bg / --color-footer-bg-grad) */
	--ecutc-pt-slate: #333333;
	--ecutc-pt-lime: #a0b342;
}

/* Overlay between navigations */
.ecutc-page-transition {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ecutc-pt-slate);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.38s ease, visibility 0.38s ease;
}

.ecutc-page-transition.is-visible,
html.ecutc-pt-active .ecutc-page-transition {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.ecutc-page-transition__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	padding: 1.5rem;
}

.ecutc-page-transition__logo {
	display: block;
	width: min(300px, 72vw);
	height: auto;
	opacity: 0;
	transform: scale(0.97);
	transition: opacity 0.34s ease 0.08s, transform 0.34s ease 0.08s;
}

.ecutc-page-transition__progress {
	width: min(280px, 80vw);
	height: 4px;
	overflow: hidden;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.18);
	opacity: 0;
	transition: opacity 0.34s ease 0.16s;
}

.ecutc-page-transition__progress-bar {
	width: 40%;
	height: 100%;
	border-radius: 2px;
	background: var(--ecutc-pt-lime);
	transform: translateX(-120%);
}

.ecutc-page-transition.is-logo-visible .ecutc-page-transition__progress-bar,
html.ecutc-pt-active .ecutc-page-transition__progress-bar {
	animation: ecutc-pt-progress 1.1s ease-in-out infinite;
}

.ecutc-page-transition__status {
	margin: 0;
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.88);
	opacity: 0;
	transition: opacity 0.34s ease 0.22s;
}

.ecutc-page-transition__status-dots {
	display: inline-block;
	width: 1.35em;
	text-align: left;
}

.ecutc-page-transition__status-dots::after {
	content: '.';
}

.ecutc-page-transition.is-logo-visible .ecutc-page-transition__status-dots::after,
html.ecutc-pt-active .ecutc-page-transition__status-dots::after {
	animation: ecutc-pt-dots 1.5s steps(1, end) infinite;
}

.ecutc-page-transition.is-logo-visible .ecutc-page-transition__logo,
html.ecutc-pt-active .ecutc-page-transition__logo {
	opacity: 1;
	transform: scale(1);
}

.ecutc-page-transition.is-logo-visible .ecutc-page-transition__progress,
html.ecutc-pt-active .ecutc-page-transition__progress,
.ecutc-page-transition.is-logo-visible .ecutc-page-transition__status,
html.ecutc-pt-active .ecutc-page-transition__status {
	opacity: 1;
}

@keyframes ecutc-pt-progress {
	0% {
		transform: translateX(-120%);
	}
	100% {
		transform: translateX(320%);
	}
}

@keyframes ecutc-pt-dots {
	0% {
		content: '.';
	}
	33% {
		content: '..';
	}
	66% {
		content: '...';
	}
	100% {
		content: '.';
	}
}

/* Exit: fade page content under overlay */
html.ecutc-pt-exiting body > *:not(#ecutc-page-transition) {
	opacity: 0;
	transition: opacity 0.32s ease;
}

html.ecutc-pt-active body > *:not(#ecutc-page-transition) {
	opacity: 0;
}

html.ecutc-pt-entering body > *:not(#ecutc-page-transition) {
	opacity: 1;
	transition: opacity 0.42s ease 0.12s;
}

/* Homepage scroll reveal */
@media (prefers-reduced-motion: no-preference) {
	body.home .ecutc-reveal {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
		transition:
			opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
			transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
		transition-delay: var(--ecutc-reveal-delay, 0ms);
		will-change: opacity, transform;
	}

	body.home .ecutc-reveal.is-inview {
		opacity: 1;
		transform: none;
	}

	body.home .l-section:first-of-type.ecutc-reveal {
		transition-duration: 0.65s;
	}

	/* Sections excluded from scroll reveal */
	body.home #image6.l-section,
	body.home .l-section.us_custom_221461f7,
	body.home .l-section:has(.us_custom_74e2e327) {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 767.98px) and (prefers-reduced-motion: no-preference) {
	body.home .ecutc-reveal {
		transform: translate3d(0, 12px, 0);
		transition-duration: 0.4s;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ecutc-page-transition,
	.ecutc-page-transition__logo,
	.ecutc-page-transition__progress,
	.ecutc-page-transition__status,
	html.ecutc-pt-exiting body > *:not(#ecutc-page-transition),
	html.ecutc-pt-entering body > *:not(#ecutc-page-transition) {
		transition-duration: 0.01ms !important;
	}

	.ecutc-page-transition__progress-bar {
		animation: none !important;
		width: 100%;
		transform: none;
		opacity: 0.7;
	}

	.ecutc-page-transition__status-dots::after {
		animation: none !important;
		content: '...' !important;
	}

	body.home .ecutc-reveal {
		opacity: 1;
		transform: none;
	}
}
