/* Structural layout (all breakpoints) */

.text-buttons .row,
.js-revealup-heading > span,
.column-text__column__content ul,
.home-half-image-text__text__wrap ul {
	overflow: hidden;
}

.js-revealup-heading span {
	display: block;
}

.play__ring,
.play__dot,
.play__arrow {
	transform: translate(50%, 50%);
}

.video-play-btn .player:before {
	animation: playPulse 1.25s infinite;
}

.video-play-btn:hover .player:before {
	animation: none;
}

@keyframes playPulse {
	0% {
		transform: scale(0);
		opacity: 0;
	}
	50% {
		transform: scale(0.85);
		opacity: 1;
	}
	100% {
		transform: scale(1.2);
		opacity: 0;
	}
}

/* Intro overlay: hidden by default, desktop-only when active */

.intro-animation,
.js-intro-animation {
	display: none;
}

/* Desktop-only initial hidden states (GSAP mount) */

@media (min-width: 1200px) {
	body.site-animation--desktop .masthead--homepage .js-animated-masthead-content,
	body.site-animation--desktop .masthead--homepage .js-animated-masthead-pattern,
	body.site-animation--desktop .masthead--homepage .masthead__content__button .btn,
	body.site-animation--desktop .masthead--homepage .slick-dots {
		opacity: 0;
	}

	body.site-animation--desktop .masthead--homepage .js-animated-masthead-content {
		transform: translate(0, 100%);
	}

	body.site-animation--desktop .masthead--homepage .js-animated-masthead-pattern,
	body.site-animation--desktop .js-animated-pattern {
		transform: translate(-100%, 100%);
	}

	body.site-animation--desktop .js-inner-pattern {
		transform: translate(100%, 100%);
		opacity: 0;
	}

	body.site-animation--desktop .masthead--homepage .js-animated-masthead-image {
		transform: translate(100%, 0);
		opacity: 0;
	}

	body.home.site-animation--desktop .intro-animation,
	body.home.site-animation--desktop .js-intro-animation {
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		background-color: #fff;
		z-index: 9999;
		justify-content: center;
		align-items: center;
		overflow: hidden;
		transform-origin: top center;
	}

	body.home.site-animation--desktop .intro-animation.is-intro-active,
	body.home.site-animation--desktop .js-intro-animation.is-intro-active {
		display: flex;
	}

	.intro-animation__logo-wrap {
		position: relative;
		overflow: hidden;
	}

	body.site-animation--desktop .intro-animation__logo {
		transform: translate(0, 100%);
	}

	body.site-animation--desktop .intro-animation__logo path,
	body.site-animation--desktop .intro-animation__logo rect {
		opacity: 0;
	}

	body.site-animation--desktop .js-slideup-item {
		transform: translate(0, 110%);
		opacity: 0;
	}

	body.site-animation--desktop .js-slideinleft-item {
		transform: translate(-110%, 0);
		opacity: 0;
	}

	body.site-animation--desktop .js-slideinright-item {
		transform: translate(110%, 0);
		opacity: 0;
	}

	body.site-animation--desktop .js-revealup-paragraph,
	body.site-animation--desktop .js-revealupimage-item,
	body.site-animation--desktop .js-revealup-bullets,
	body.site-animation--desktop .js-revealup-form {
		opacity: 0;
	}

	body.site-animation--desktop .js-revealup-title {
		transform: translate(0, 100%);
	}

	body.site-animation--desktop .js-revealupimage-item,
	body.site-animation--desktop .js-revealup-form {
		transform: translate(0, 50%);
	}

	body.site-animation--desktop .column-text__column__content .js-revealup-bullets {
		transform: translate(-18px, 0);
	}

	body.site-animation--desktop .home-half-image-text__text__wrap .js-revealup-bullets {
		transform: translate(-40px, 0);
	}

	body.home.site-animation--desktop.is-animation-complete .page-header {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* Pre-JS anti-FOUC: homepage header before GSAP mount */

@media (min-width: 1200px) and (prefers-reduced-motion: no-preference) {
	body.home:not(.site-animation--desktop) .page-header {
		opacity: 0;
		visibility: hidden;
		transform: translate(0, -50px);
	}
}

/* Mobile, tablet, and reduced motion: content always visible */

@media (max-width: 1199px), (prefers-reduced-motion: reduce) {
	.masthead--homepage .js-animated-masthead-content,
	.masthead--homepage .js-animated-masthead-pattern,
	.masthead--homepage .masthead__content__button .btn,
	.masthead--homepage .slick-dots,
	.masthead--homepage .js-animated-masthead-image,
	.js-animated-pattern,
	.js-inner-pattern,
	.intro-animation__logo,
	.intro-animation__logo path,
	.intro-animation__logo rect,
	.js-slideup-item,
	.js-slideinleft-item,
	.js-slideinright-item,
	.js-revealup-title,
	.js-revealup-paragraph,
	.js-revealupimage-item,
	.js-revealup-bullets,
	.js-revealup-form,
	body.home .page-header {
		opacity: 1 !important;
		transform: none !important;
		visibility: visible !important;
	}

	.intro-animation,
	.js-intro-animation {
		display: none !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}
}
