:root {
	--launch-accent: #78be20;
	--launch-bar-height: 44px;
}
.launch-announcement {
	position: fixed; z-index: 89; top: var(--header-height); left: 0;
	width: 100%; height: var(--launch-bar-height); overflow: hidden;
	background: var(--launch-accent); color: #fff;
}
.launch-announcement__link { display: flex; height: 100%; align-items: center; overflow: hidden; }
.launch-announcement__link:hover { background: rgba(0,0,0,.12); }
.launch-announcement__link:focus-visible { outline: 0; box-shadow: inset 0 0 0 3px #fff; }
.launch-announcement__track {
	display: flex; width: max-content; min-width: max-content; color: #fff;
	font-size: 12px; font-weight: 750; letter-spacing: 1.7px;
	text-transform: uppercase; white-space: nowrap;
	animation: launch-marquee 34s linear infinite;
}
.launch-announcement__track span { display: inline-flex; align-items: center; }
.launch-announcement__track img { width: 60px; height: 60px; margin-inline: 10px 4px; object-fit: contain; }
.launch-announcement__link:hover .launch-announcement__track,
.launch-announcement__link:focus-visible .launch-announcement__track { animation-play-state: paused; }
@keyframes launch-marquee { to { transform: translateX(-25%); } }
.has-launch-announcement .home-hero { padding-top: var(--launch-bar-height); }

.launch-campaign-feature {
	position: relative; overflow: hidden; padding: 86px 0;
	background: linear-gradient(90deg,rgba(5,8,6,.98),rgba(5,8,6,.84) 52%,rgba(5,8,6,.52)),url('../images/centurion-gate-background.jpg') center/cover no-repeat,#090b0a;
	color: #fff;
}
.launch-campaign-feature__inner { position: relative; display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); align-items: center; gap: 40px; }
.launch-campaign-feature__eyebrow { margin: 0 0 16px; color: var(--launch-accent); font-size: 13px; font-weight: 750; letter-spacing: 3px; text-transform: uppercase; }
.launch-campaign-feature h2 { max-width: 680px; margin: 0; font-size: clamp(44px,5.5vw,78px); font-weight: 750; line-height: .94; letter-spacing: -3px; text-transform: uppercase; }
.launch-campaign-feature__copy>p:not(.launch-campaign-feature__eyebrow) { margin: 24px 0 30px; color: #d0d5d1; font-size: 18px; }
.launch-campaign-feature__cta { background: var(--launch-accent); color: #071008; text-transform: uppercase; }
.launch-campaign-feature__visual { display: grid; min-height: 360px; padding-bottom: 24px; place-items: center; }

.centurion-launch-hero { min-height: 760px; overflow: hidden; background-image: url('../images/centurion-gate-background.jpg')!important; background-position: center; }
.centurion-launch-hero .launch-hero__overlay { background: linear-gradient(90deg,rgba(2,5,3,.98),rgba(2,5,3,.87) 48%,rgba(2,5,3,.28)),linear-gradient(0deg,rgba(2,5,3,.82),transparent 50%); }
.centurion-launch-hero .launch-hero__content { z-index: 2; min-height: 760px; padding-bottom: 170px; }
.centurion-launch-hero .eyebrow { color: var(--launch-accent); letter-spacing: 2.8px; }
.centurion-launch-hero h1 { font-size: clamp(54px,7.2vw,96px); font-weight: 800; line-height: .88; letter-spacing: -5px; text-transform: uppercase; }
.centurion-launch-hero h1 span,.centurion-launch-hero h1 strong { display: block; }
.centurion-launch-hero h1 span { font-size: .52em; font-weight: 400; letter-spacing: -2px; }
.centurion-launch-categories { font-weight: 650; }
.centurion-launch-categories i { margin-inline: 10px; color: var(--launch-accent); font-style: normal; }
.centurion-launch-hero .button:first-child { background: var(--launch-accent); color: #061007; }

.centurion-product-art { position: relative; width: min(46vw,670px); aspect-ratio: 1.52; filter: drop-shadow(0 24px 25px rgba(0,0,0,.62)); }
.centurion-product-art--hero { position: absolute; z-index: 1; right: 3%; bottom: 5%; }
.centurion-product-art--home { width: min(42vw,590px); }
.centurion-product-art__item { position: absolute; margin: 0; width: 23%; height: 68%; }
.centurion-product-art__product { width: 100%; height: 100%; object-fit: contain; }
.centurion-product-art__item--d10 { z-index: 1; left: 23%; top: 0; }
.centurion-product-art__item--d10t { z-index: 1; left: 39%; top: -4%; }
.centurion-product-art__item--d20 { z-index: 1; left: 55%; top: 1%; }
.centurion-product-art__item--d3 { z-index: 2; left: 16%; top: 28%; }
.centurion-product-art__item--d5 { z-index: 3; left: 38%; top: 25%; }
.centurion-product-art__item--d6 { z-index: 2; left: 60%; top: 29%; }
.centurion-product-art__accessory { position: absolute; z-index: 4; object-fit: contain; filter: drop-shadow(0 10px 12px rgba(0,0,0,.45)); }
.centurion-product-art__sensors { left: 1%; bottom: 2%; width: 13%; }
.centurion-product-art__remote { right: 1%; bottom: 4%; width: 13%; transform: rotate(8deg); }
.centurion-product-art__logos { position: absolute; z-index: 6; left: 50%; bottom: 1%; display: grid; width: 67%; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px 9px; transform: translateX(-50%); }
.centurion-product-art__logos img { display: block; width: 100%; height: auto; filter: drop-shadow(0 4px 5px rgba(0,0,0,.35)); }
.centurion-launch-page .launch-products { background: #f4f7f1; }
.centurion-launch-page .launch-filters a:hover,.centurion-launch-page .launch-filters a:focus-visible,.centurion-launch-page .launch-filters a.is-active { border-color: var(--launch-accent); background: var(--launch-accent); color: #071008; }
.centurion-launch-page .launch-card__meta { color: #4e850c; }
.centurion-launch-page .launch-card { border-color: #dce5d4; }
.centurion-launch-page .launch-card__image { display: flex; overflow: hidden; align-items: flex-end; background: #fff; }
.centurion-launch-page .launch-card__image img { width: 106%; max-width: none; padding: 12px 10px 0; object-fit: contain; object-position: center bottom; }
.centurion-launch-page .launch-card__body { position: relative; isolation: isolate; overflow: hidden; }
.launch-card__model-logos { display: flex; position: relative; align-items: center; flex-wrap: wrap; gap: 8px; margin: auto 0 14px; padding-top: 26px; }
.launch-card__model-logos img { width: min(220px,100%); height: auto; filter: drop-shadow(0 5px 8px rgba(0,0,0,.12)); }
.launch-card__model-logos img:not(:only-child) { width: min(145px,calc(50% - 4px)); }
.launch-card__model-logos + .launch-card__actions { margin-top: 0; }
.centurion-launch-page .launch-card__model-logos { display: none; }
.centurion-launch-page .launch-card__model-logos + .launch-card__actions { margin-top: auto; }

/* Let copy determine the featured-card row height. The artwork is taken out of
   intrinsic grid sizing and enlarged inside the resulting media viewport. */
@media(min-width:768px) {
	.centurion-launch-page .launch-featured .launch-card { align-items: stretch; }
	.centurion-launch-page .launch-featured .launch-card__image {
		position: relative;
		min-height: 0;
		align-self: stretch;
	}
	.centurion-launch-page .launch-featured .launch-card__image img {
		position: absolute;
		inset: clamp(12px,1.4vw,20px) -10%;
		width: 120%;
		height: calc(100% - clamp(24px,2.8vw,40px));
		min-height: 0;
		max-width: none;
		padding: 0;
		object-fit: contain;
		object-position: center bottom;
	}
	.centurion-launch-page .launch-featured .launch-card__body { align-self: stretch; min-height: 0; box-sizing: border-box; }
	.centurion-launch-page .launch-featured .launch-card__actions { margin-top: auto; padding-top: clamp(20px,2.2vw,30px); }
}

@media(max-width:1024px) {
	.launch-campaign-feature__inner { grid-template-columns: minmax(0,.9fr) minmax(360px,1.1fr); gap: 20px; }
	.centurion-product-art--hero { right: 1%; width: min(50vw,580px); }
	.centurion-launch-page .launch-featured .launch-card__body { padding: 30px 28px; }
	.centurion-launch-page .launch-featured .launch-card__image img { inset: 12px -6%; width: 112%; height: calc(100% - 24px); }
}
@media(max-width:767px) {
	:root { --launch-bar-height: 40px; }
	.launch-announcement__track { font-size: 10px; letter-spacing: 1.3px; animation-duration: 28s; }
	.launch-campaign-feature { padding: 62px 0; background-position: 62% center; }
	.launch-campaign-feature__inner { grid-template-columns: 1fr; gap: 18px; }
	.launch-campaign-feature h2 { font-size: 42px; letter-spacing: -2px; }
	.launch-campaign-feature__copy>p:not(.launch-campaign-feature__eyebrow) { font-size: 16px; }
	.launch-campaign-feature__visual { min-height: 260px; }
	.centurion-product-art--home { width: min(94vw,440px); }
	.centurion-launch-hero,.centurion-launch-hero .launch-hero__content { min-height: 720px; }
	.centurion-launch-hero { background-position: 68% center; }
	.centurion-launch-hero .launch-hero__overlay { background: linear-gradient(180deg,rgba(2,5,3,.96),rgba(2,5,3,.76) 58%,rgba(2,5,3,.92)); }
	.centurion-launch-hero .launch-hero__content { padding-top: 82px; padding-bottom: 300px; }
	.centurion-launch-hero h1 { font-size: 50px; letter-spacing: -3px; }
	.centurion-product-art--hero { right: 50%; bottom: 4%; width: min(104vw,470px); transform: translateX(50%); }
	.centurion-product-art__logos { bottom: 1%; width: 70%; gap: 4px 6px; }
	.centurion-launch-page .launch-card__image img { width: 103%; padding: 10px 8px 0; }
	.centurion-launch-page .launch-featured .launch-card__image img {
		position: static;
		inset: auto;
		width: 103%;
		height: 230px;
		min-height: 0;
		padding: 10px 8px 0;
	}
	.centurion-launch-page .launch-featured .launch-card__body { min-height: 0; padding: 22px; }
	.centurion-launch-page .launch-featured .launch-card__actions { margin-top: 0; padding-top: 14px; }
	.launch-card__model-logos { padding-top: 22px; }
}
@media(prefers-reduced-motion:reduce) {
	.launch-announcement__track { animation: none; transform: none; }
	.launch-campaign-feature * { animation: none!important; transition: none!important; }
}
