:root {
	color-scheme: dark;
	--bg: #050505;
	--ink: #f8f7f3;
	--muted: rgba(248, 247, 243, 0.64);
	--faint: rgba(248, 247, 243, 0.14);
	--line: rgba(255, 255, 255, 0.12);
	--glass: rgba(255, 255, 255, 0.07);
	--glass-strong: rgba(255, 255, 255, 0.15);
	--aqua: #9fffee;
	--violet: #9884ff;
	--rose: #ff8de7;
	--gold: #ffe1a8;
	--shadow: 0 34px 120px rgba(0, 0, 0, 0.58);
	--radius-xl: 44px;
	--radius-lg: 28px;
	--radius-md: 18px;
	--mouse-x: 50%;
	--mouse-y: 28%;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	background: var(--bg);
}

body {
	margin: 0;
	min-width: 320px;
	overflow-x: hidden;
	background:
		radial-gradient(circle at var(--mouse-x) var(--mouse-y), rgba(154, 132, 255, 0.22), transparent 26rem),
		radial-gradient(circle at 12% 12%, rgba(159, 255, 238, 0.14), transparent 22rem),
		radial-gradient(circle at 82% 8%, rgba(255, 141, 231, 0.14), transparent 24rem),
		linear-gradient(180deg, #050505 0%, #09090d 48%, #020203 100%);
	color: var(--ink);
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
	font-feature-settings: "ss01", "ss02", "cv01", "cv02";
	text-rendering: geometricPrecision;
}

body::selection {
	background: rgba(159, 255, 238, 0.32);
	color: white;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

a:focus-visible,
.magnet:focus-visible {
	outline: 2px solid rgba(159, 255, 238, 0.95);
	outline-offset: 5px;
	box-shadow:
		0 0 0 8px rgba(159, 255, 238, 0.12),
		0 0 42px rgba(152, 132, 255, 0.34);
}

.noise {
	position: fixed;
	inset: 0;
	z-index: 80;
	pointer-events: none;
	opacity: 0.17;
	mix-blend-mode: overlay;
	background-image:
		repeating-radial-gradient(circle at 11% 17%, rgba(255, 255, 255, 0.75) 0 0.7px, transparent 0.8px 3px),
		repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 4px);
}

.light-field {
	position: fixed;
	inset: -25vmax;
	z-index: -1;
	pointer-events: none;
	background: conic-gradient(
		from 120deg at 48% 52%,
		rgba(159, 255, 238, 0.1),
		rgba(152, 132, 255, 0.15),
		rgba(255, 141, 231, 0.12),
		rgba(255, 225, 168, 0.08),
		rgba(159, 255, 238, 0.1)
	);
	filter: blur(72px) saturate(1.2);
	opacity: 0.8;
	transform: translateZ(0);
}

.cursor-orb {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 120;
	width: 34px;
	height: 34px;
	pointer-events: none;
	transform: translate3d(-50%, -50%, 0);
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 50%;
	mix-blend-mode: difference;
	opacity: 0;
	will-change: transform, opacity;
}

.cursor-orb span {
	position: absolute;
	inset: 8px;
	border-radius: inherit;
	background: #fff;
}

.progress {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 130;
	height: 3px;
	background: rgba(255, 255, 255, 0.08);
	transform: translateZ(0);
}

.progress span {
	display: block;
	width: 100%;
	height: 100%;
	transform: scaleX(0);
	transform-origin: 0 50%;
	background: linear-gradient(90deg, var(--aqua), var(--violet), var(--rose), var(--gold));
	box-shadow: 0 0 24px rgba(159, 255, 238, 0.7);
	will-change: transform;
}

.topbar {
	position: fixed;
	top: 18px;
	right: 18px;
	left: 18px;
	z-index: 110;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 18px;
	padding: 12px 14px;
	color: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	background: rgba(5, 5, 6, 0.44);
	backdrop-filter: blur(24px) saturate(1.4);
	box-shadow: 0 10px 70px rgba(0, 0, 0, 0.22);
}

.brand,
.nav-cta,
.nav-status {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 11px;
	font-weight: 680;
}

.brand {
	gap: 10px;
	justify-self: start;
	padding: 0 12px;
}

.brand-mark {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background:
		radial-gradient(circle at 35% 30%, #fff, #9fffee 24%, rgba(152, 132, 255, 0.45) 52%, rgba(255, 255, 255, 0.08) 72%),
		#fff;
	box-shadow: 0 0 20px rgba(159, 255, 238, 0.52);
}

.nav-status {
	justify-self: center;
	gap: 9px;
	color: rgba(255, 255, 255, 0.5);
}

.pulse-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--aqua);
	box-shadow:
		0 0 0 7px rgba(159, 255, 238, 0.08),
		0 0 18px rgba(159, 255, 238, 0.72);
}

.nav-cta {
	justify-self: end;
	padding: 0 16px;
	border-radius: 999px;
	color: #050505;
	background: rgba(255, 255, 255, 0.88);
}

.section {
	position: relative;
	min-height: 100vh;
	isolation: isolate;
}

.hero {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
	align-items: center;
	gap: clamp(28px, 5vw, 90px);
	padding: clamp(120px, 12vw, 180px) clamp(20px, 5vw, 86px) 80px;
}

.hero::before {
	position: absolute;
	inset: 12vh 7vw auto auto;
	z-index: -1;
	width: min(58vw, 760px);
	aspect-ratio: 1;
	content: "";
	border-radius: 50%;
	background:
		radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.16), transparent 10%),
		conic-gradient(
			from 270deg,
			rgba(159, 255, 238, 0.16),
			rgba(152, 132, 255, 0.2),
			rgba(255, 141, 231, 0.18),
			rgba(255, 225, 168, 0.12),
			rgba(159, 255, 238, 0.16)
		);
	filter: blur(36px);
	opacity: 0.9;
}

.particle-field {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	pointer-events: none;
}

.particle {
	position: absolute;
	width: 3px;
	height: 3px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.8);
	box-shadow: 0 0 16px rgba(159, 255, 238, 0.82);
	will-change: transform, opacity;
}

.hero-copy-stack {
	position: relative;
	z-index: 2;
	max-width: 960px;
}

.hero-copy-stack::before {
	position: absolute;
	inset: -42px -32px -34px -36px;
	z-index: -1;
	content: "";
	border-radius: 48px;
	background: radial-gradient(ellipse at 22% 35%, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.36) 44%, transparent 72%);
	filter: blur(14px);
	pointer-events: none;
}

.eyebrow,
.section-kicker {
	margin: 0 0 22px;
	color: rgba(255, 255, 255, 0.52);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: clamp(11px, 1.2vw, 13px);
	font-weight: 700;
}

.hero-title,
.section h2 {
	margin: 0;
	letter-spacing: -0.08em;
	line-height: 0.86;
	font-weight: 760;
}

.hero-title {
	max-width: 980px;
	font-size: clamp(64px, 9.3vw, 160px);
}

.hero-title .word {
	display: inline-block;
	white-space: nowrap;
}

.hero-title .char {
	display: inline-block;
	transform-origin: 50% 80%;
	will-change: transform, opacity, filter;
}

.hero-lede,
.vault-copy p,
.morph-copy p,
.finale p {
	max-width: 660px;
	margin: 28px 0 0;
	color: var(--muted);
	font-size: clamp(17px, 2vw, 24px);
	line-height: 1.55;
	letter-spacing: -0.025em;
}

.hero-lede {
	max-width: 700px;
	color: rgba(255, 255, 255, 0.72);
	font-size: clamp(19px, 2.25vw, 27px);
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.primary-action,
.secondary-action,
.finale-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 22px;
	border-radius: 999px;
	letter-spacing: -0.01em;
	font-size: 15px;
	font-weight: 720;
	will-change: transform;
}

.primary-action,
.finale-cta {
	color: #050505;
	background: linear-gradient(
		135deg,
		rgba(255, 255, 255, 0.96),
		rgba(159, 255, 238, 0.88) 38%,
		rgba(255, 225, 168, 0.94)
	);
	box-shadow: 0 18px 70px rgba(159, 255, 238, 0.16);
}

.secondary-action {
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: rgba(255, 255, 255, 0.76);
	background: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(18px);
}

.hero-sculpture {
	position: relative;
	width: min(38vw, 620px);
	min-width: 320px;
	aspect-ratio: 1;
	justify-self: center;
	perspective: 1200px;
	transform-style: preserve-3d;
}

.halo,
.core-orb,
.satellite {
	position: absolute;
	border-radius: 50%;
	will-change: transform;
}

.halo {
	inset: 8%;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 44%, rgba(159, 255, 238, 0.11)),
		radial-gradient(circle at 50% 50%, transparent 58%, rgba(255, 255, 255, 0.08) 60%, transparent 61%);
	box-shadow:
		inset 0 0 60px rgba(255, 255, 255, 0.05),
		0 0 90px rgba(152, 132, 255, 0.12);
	transform-style: preserve-3d;
}

.halo-one {
	transform: rotateX(72deg) rotateZ(12deg);
}

.halo-two {
	inset: 18%;
	transform: rotateX(63deg) rotateY(32deg) rotateZ(-28deg);
}

.halo-three {
	inset: 28%;
	transform: rotateX(70deg) rotateY(-34deg) rotateZ(40deg);
}

.core-orb {
	inset: 30%;
	overflow: hidden;
	background:
		radial-gradient(circle at 35% 25%, white 0 5%, rgba(255, 255, 255, 0.86) 6% 14%, transparent 15%),
		radial-gradient(circle at 38% 32%, #ffffff, #9fffee 26%, #9884ff 56%, #09090f 78%);
	box-shadow:
		inset -34px -46px 80px rgba(0, 0, 0, 0.5),
		inset 28px 24px 60px rgba(255, 255, 255, 0.24),
		0 0 90px rgba(159, 255, 238, 0.44),
		0 0 170px rgba(152, 132, 255, 0.24);
}

.core-glare {
	position: absolute;
	inset: -20% 12% auto auto;
	width: 52%;
	height: 72%;
	border-radius: 999px;
	background: linear-gradient(110deg, rgba(255, 255, 255, 0.7), transparent 52%);
	filter: blur(8px);
	transform: rotate(22deg);
}

.satellite {
	width: 14px;
	height: 14px;
	background: #fff;
	box-shadow:
		0 0 28px rgba(255, 255, 255, 0.9),
		0 0 50px rgba(159, 255, 238, 0.42);
}

.sat-one {
	top: 16%;
	left: 28%;
}
.sat-two {
	right: 15%;
	top: 42%;
	width: 9px;
	height: 9px;
}
.sat-three {
	right: 32%;
	bottom: 19%;
	width: 11px;
	height: 11px;
}

.scroll-cue {
	position: absolute;
	bottom: 26px;
	left: 50%;
	display: grid;
	justify-items: center;
	gap: 12px;
	color: rgba(255, 255, 255, 0.44);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: 10px;
	transform: translateX(-50%);
}

.scroll-cue i {
	display: block;
	width: 1px;
	height: 62px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.15);
}

.scroll-cue i::before {
	display: block;
	width: 100%;
	height: 38%;
	content: "";
	background: linear-gradient(180deg, transparent, #fff, transparent);
	animation: cue-drop 1.8s linear infinite;
}

@keyframes cue-drop {
	from {
		transform: translateY(-120%);
	}

	to {
		transform: translateY(260%);
	}
}

.vault {
	min-height: 320vh;
}

.vault-stage {
	display: grid;
	grid-template-columns: minmax(280px, 0.82fr) minmax(420px, 1.18fr);
	align-items: center;
	gap: clamp(28px, 6vw, 108px);
	min-height: 100vh;
	padding: clamp(92px, 10vw, 150px) clamp(20px, 5vw, 86px);
}

.vault-copy {
	align-self: center;
	max-width: 640px;
}

.section h2 {
	max-width: 980px;
	font-size: clamp(58px, 9vw, 138px);
}

.device-scene {
	position: relative;
	min-height: min(74vw, 780px);
	perspective: 1600px;
	transform-style: preserve-3d;
}

.device-shadow {
	position: absolute;
	right: 12%;
	bottom: 7%;
	width: 48%;
	height: 14%;
	border-radius: 50%;
	background: radial-gradient(ellipse, rgba(0, 0, 0, 0.8), transparent 70%);
	filter: blur(18px);
	transform: rotateX(72deg);
}

.device-shell {
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(42vw, 380px);
	min-width: 260px;
	aspect-ratio: 0.55;
	padding: 13px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 42px;
	background:
		linear-gradient(
			140deg,
			rgba(255, 255, 255, 0.28),
			rgba(255, 255, 255, 0.04) 17%,
			rgba(0, 0, 0, 0.6) 52%,
			rgba(255, 255, 255, 0.1)
		),
		linear-gradient(180deg, #212226, #050507 48%, #17181e);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.3),
		inset -28px -42px 70px rgba(0, 0, 0, 0.76),
		0 46px 120px rgba(0, 0, 0, 0.58),
		0 0 120px rgba(152, 132, 255, 0.16);
	transform: translate(-50%, -50%) rotateX(8deg) rotateY(-18deg) rotateZ(2deg);
	transform-style: preserve-3d;
	will-change: transform;
}

.device-screen {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 31px;
	background:
		radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.3), transparent 12%),
		radial-gradient(circle at 62% 40%, rgba(159, 255, 238, 0.36), transparent 22%),
		linear-gradient(160deg, #0e1119, #030306 48%, #15111f);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.screen-sheen {
	position: absolute;
	inset: -25% auto auto -10%;
	width: 74%;
	height: 140%;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.34), transparent);
	filter: blur(12px);
	transform: rotate(22deg);
}

.screen-line {
	position: absolute;
	left: 18%;
	display: block;
	height: 2px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.5);
	box-shadow: 0 0 18px rgba(159, 255, 238, 0.35);
}

.line-one {
	top: 24%;
	width: 42%;
}
.line-two {
	top: 29%;
	width: 62%;
	opacity: 0.44;
}
.line-three {
	bottom: 22%;
	width: 48%;
	opacity: 0.28;
}

.glass-card {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	align-content: end;
	width: min(22vw, 250px);
	min-width: 180px;
	aspect-ratio: 0.78;
	padding: 22px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 30px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04) 42%, rgba(255, 255, 255, 0.1)),
		radial-gradient(circle at 30% 18%, rgba(159, 255, 238, 0.22), transparent 32%);
	backdrop-filter: blur(18px) saturate(1.35);
	box-shadow:
		var(--shadow),
		inset 0 1px 0 rgba(255, 255, 255, 0.18);
	transform: translate(-50%, -50%) rotateX(8deg) rotateY(-18deg) translateZ(8px);
	opacity: 0;
	will-change: transform, opacity;
}

.glass-card b,
.glass-card span {
	display: block;
}

.glass-card b {
	letter-spacing: -0.04em;
	font-size: clamp(26px, 3.2vw, 42px);
	line-height: 0.9;
}

.glass-card span {
	margin-top: 8px;
	color: rgba(255, 255, 255, 0.56);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 10px;
	font-weight: 760;
}

.spec-rail {
	position: absolute;
	right: 2%;
	bottom: 11%;
	display: flex;
	gap: 8px;
	transform: rotate(-3deg);
	opacity: 0;
}

.spec-rail span {
	padding: 10px 13px;
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.62);
	background: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(16px);
	font-size: 12px;
}

.gallery-section {
	min-height: 100vh;
	overflow: hidden;
	padding: 0;
}

.gallery-heading {
	position: absolute;
	top: clamp(100px, 12vw, 150px);
	left: clamp(20px, 5vw, 86px);
	z-index: 2;
	max-width: 760px;
	pointer-events: none;
}

.gallery-heading h2 {
	font-size: clamp(48px, 7vw, 102px);
}

.gallery-track {
	display: flex;
	align-items: flex-end;
	gap: clamp(18px, 3vw, 34px);
	width: max-content;
	height: 100vh;
	padding: 43vh clamp(20px, 5vw, 86px) 9vh;
	will-change: transform;
}

.gallery-card {
	position: relative;
	flex: 0 0 min(76vw, 520px);
	height: min(58vh, 610px);
	overflow: hidden;
	padding: clamp(24px, 4vw, 42px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--radius-xl);
	background:
		radial-gradient(circle at 24% 16%, rgba(255, 255, 255, 0.35), transparent 13rem),
		linear-gradient(145deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.03));
	box-shadow:
		0 34px 140px rgba(0, 0, 0, 0.38),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
	transform: translateZ(0);
}

.gallery-card::before,
.gallery-card::after,
.gallery-card i {
	position: absolute;
	pointer-events: none;
	content: "";
}

.gallery-card::before {
	inset: auto -18% -24% 24%;
	height: 58%;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	filter: blur(22px);
}

.gallery-card::after {
	inset: 12px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: calc(var(--radius-xl) - 12px);
}

.gallery-card i {
	right: 34px;
	bottom: 34px;
	width: 120px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.32);
	box-shadow:
		inset 0 -24px 38px rgba(0, 0, 0, 0.16),
		0 0 80px rgba(255, 255, 255, 0.18);
}

.card-index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
	color: rgba(255, 255, 255, 0.68);
	font-size: 12px;
	font-weight: 760;
}

.gallery-card h3 {
	max-width: 420px;
	margin: min(19vh, 170px) 0 0;
	letter-spacing: -0.065em;
	line-height: 0.9;
	font-size: clamp(48px, 6vw, 86px);
}

.gallery-card p {
	max-width: 390px;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 18px;
	line-height: 1.45;
}

.card-obsidian {
	background-color: #07070a;
}
.card-silver {
	background-color: #959da8;
	color: #08080a;
}
.card-silver p,
.card-silver .card-index {
	color: rgba(0, 0, 0, 0.58);
	border-color: rgba(0, 0, 0, 0.16);
}
.card-aurora {
	background:
		radial-gradient(circle at 20% 15%, #fff, transparent 21%), linear-gradient(135deg, #ff9fef, #8adfff 52%, #1d1742);
}
.card-ghost {
	background: linear-gradient(135deg, rgba(245, 245, 255, 0.24), rgba(255, 255, 255, 0.04)), #161820;
}
.card-sun {
	background:
		radial-gradient(circle at 35% 24%, #fff7da, transparent 22%), linear-gradient(135deg, #ff9d55, #8b3dff 76%);
}
.card-ice {
	background: radial-gradient(circle at 22% 12%, #fff, transparent 21%), linear-gradient(135deg, #dff6ff, #39415e);
	color: #030408;
}
.card-ice p,
.card-ice .card-index {
	color: rgba(0, 0, 0, 0.58);
	border-color: rgba(0, 0, 0, 0.16);
}

.morph {
	display: grid;
	grid-template-columns: minmax(280px, 0.9fr) minmax(340px, 1.1fr);
	align-items: center;
	gap: clamp(30px, 6vw, 110px);
	padding: clamp(100px, 12vw, 170px) clamp(20px, 5vw, 86px);
	overflow: hidden;
}

.morph-copy {
	max-width: 640px;
}

.morph-stage {
	position: relative;
	display: grid;
	place-items: center;
	min-height: min(76vw, 780px);
}

.morph-stage::before {
	position: absolute;
	inset: 12%;
	content: "";
	border-radius: 50%;
	background: conic-gradient(
		from 90deg,
		rgba(159, 255, 238, 0.2),
		rgba(152, 132, 255, 0.24),
		rgba(255, 141, 231, 0.18),
		rgba(255, 225, 168, 0.16),
		rgba(159, 255, 238, 0.2)
	);
	filter: blur(36px);
	opacity: 0.65;
}

.award-svg {
	position: relative;
	width: min(82vw, 660px);
	filter: drop-shadow(0 44px 120px rgba(152, 132, 255, 0.28));
	overflow: visible;
}

#morphShape,
.traveler,
#orbitPath {
	will-change: transform;
}

.lab {
	padding: clamp(100px, 12vw, 170px) clamp(20px, 5vw, 86px);
}

.lab-heading {
	max-width: 1000px;
	margin-bottom: 52px;
}

.spec-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.spec-card {
	min-height: 330px;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035)), rgba(255, 255, 255, 0.04);
	box-shadow:
		0 24px 100px rgba(0, 0, 0, 0.22),
		inset 0 1px 0 rgba(255, 255, 255, 0.13);
	transform-style: preserve-3d;
	will-change: transform, opacity;
}

.spec-card span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.11);
	color: rgba(255, 255, 255, 0.58);
	font-size: 12px;
	font-weight: 760;
}

.spec-card h3 {
	margin: 96px 0 0;
	letter-spacing: -0.05em;
	line-height: 0.98;
	font-size: clamp(31px, 3vw, 42px);
}

.spec-card p {
	margin: 18px 0 0;
	color: rgba(255, 255, 255, 0.58);
	line-height: 1.45;
}

.finale {
	display: grid;
	place-items: center;
	min-height: 112vh;
	padding: 120px 20px;
	text-align: center;
	overflow: hidden;
}

.finale::before {
	position: absolute;
	inset: auto auto -35vh 50%;
	width: 112vmax;
	aspect-ratio: 1;
	content: "";
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(255, 255, 255, 0.16),
		rgba(159, 255, 238, 0.11) 18%,
		rgba(152, 132, 255, 0.08) 38%,
		transparent 68%
	);
	transform: translateX(-50%);
}

.finale > * {
	grid-area: 1 / 1;
}

.finale .section-kicker {
	align-self: start;
	margin-top: 16vh;
}

.finale h2 {
	max-width: 1180px;
	margin-top: 0;
	font-size: clamp(56px, 9.5vw, 148px);
}

.finale p {
	align-self: end;
	max-width: 700px;
	margin-bottom: 18vh;
}

.finale-cta {
	align-self: end;
	margin-top: 210px;
}

.aperture {
	position: absolute;
	inset: auto auto 14% 50%;
	width: min(72vw, 580px);
	aspect-ratio: 1;
	transform: translateX(-50%) scale(0.72);
	opacity: 0.48;
	will-change: transform, opacity;
}

.aperture span {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 48%;
	height: 14%;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.45), transparent);
	transform-origin: -7% 50%;
	filter: blur(1px);
}

.aperture span:nth-child(1) {
	transform: rotate(0deg) translateX(20%);
}
.aperture span:nth-child(2) {
	transform: rotate(60deg) translateX(20%);
}
.aperture span:nth-child(3) {
	transform: rotate(120deg) translateX(20%);
}
.aperture span:nth-child(4) {
	transform: rotate(180deg) translateX(20%);
}
.aperture span:nth-child(5) {
	transform: rotate(240deg) translateX(20%);
}
.aperture span:nth-child(6) {
	transform: rotate(300deg) translateX(20%);
}

.magnet {
	transform-style: preserve-3d;
	will-change: transform;
}

.gsap-ready .reveal-line,
.gsap-ready .eyebrow,
.gsap-ready .hero-actions {
	will-change: transform, opacity;
}

@media (max-width: 980px) {
	.topbar {
		grid-template-columns: 1fr auto;
	}

	.nav-status {
		display: none;
	}

	.hero,
	.vault-stage,
	.morph {
		grid-template-columns: 1fr;
	}

	.hero-sculpture {
		width: min(86vw, 560px);
		order: -1;
		margin-top: 24px;
	}

	.vault-stage {
		align-content: start;
	}

	.device-scene {
		min-height: 760px;
	}

	.spec-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.topbar {
		top: 10px;
		right: 10px;
		left: 10px;
		padding: 9px;
	}

	.brand span:last-child {
		display: none;
	}

	.nav-cta {
		min-height: 32px;
		padding: 0 12px;
		font-size: 10px;
	}

	.hero {
		padding-top: 96px;
	}

	.hero-title {
		font-size: clamp(60px, 18vw, 100px);
	}

	.hero-sculpture {
		min-width: 0;
	}

	.hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.primary-action,
	.secondary-action,
	.finale-cta {
		width: 100%;
	}

	.device-scene {
		min-height: 650px;
	}

	.device-shell {
		min-width: 218px;
	}

	.glass-card {
		min-width: 150px;
		border-radius: 24px;
	}

	.gallery-track {
		padding-top: 46vh;
	}

	.gallery-card {
		flex-basis: 86vw;
		border-radius: 32px;
	}

	.spec-grid {
		grid-template-columns: 1fr;
	}

	.spec-card {
		min-height: 280px;
	}

	.finale p {
		margin-bottom: 24vh;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}

	.cursor-orb,
	.progress {
		display: none;
	}
}
