/* GSAP motion — initial states & parallax layers (ScrollTrigger demo style) */

.bs-hero__title-line {
	display: block;
	will-change: transform, opacity;
}

.bs-hero__content {
	position: relative;
	z-index: 2;
}

.bs-hero--cover {
	overflow: hidden;
}

.bs-hero--cover .bs-hero__wrap,
.bs-hero--cover .bs-hero__inner {
	overflow: hidden;
}

.bs-hero__bg {
	position: absolute;
	inset: 0;
	background: var(--hero-bg) center/cover no-repeat;
	z-index: 0;
	will-change: transform;
	transform-origin: center center;
}

.bs-hero__overlay {
	will-change: opacity;
}

.bs-about__intro,
.bs-about__strap,
.bs-about__strap-art,
.bs-about__block,
.bs-about__license,
.bs-about__marq-track,
.bs-service-card,
.bs-why-item,
.bs-cta-banner,
.bs-dims-stage[data-bs-dims].is-scroll-orbit .bs-dims-orbit {
	will-change: transform;
}

.bs-section__eyebrow span {
	will-change: transform;
	display: inline-block;
}

/* Hide reveals until GSAP runs; fallback visible without JS */
html:not(.bs-gsap-ready) .bs-reveal {
	opacity: 1;
	transform: none;
}

html.bs-gsap-ready .bs-reveal:not(.is-visible) {
	opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
	.bs-reveal,
	.bs-hero__title-line {
		opacity: 1 !important;
		transform: none !important;
	}
}
