:root {
	--bg: #eaf2ff;
	--bg-2: #f6f9ff;
	--bg-deep: #07182d;
	--electric-cyan: #15d6ff;
	--electric-blue: #1f7dff;
	--solar-orange: #ff8b2a;
	--surface: rgba(250, 253, 255, 0.92);
	--surface-strong: #f9fcff;
	--ink: #0d1f34;
	--muted: #4f6280;
	--line: rgba(18, 95, 181, 0.22);
	--primary: #0f9af8;
	--primary-strong: #0078c6;
	--accent: #ff8c2b;
	--accent-soft: #ffd7b5;
	--success: #1bba8e;
	--danger: #f65f5f;
	--radius: 18px;
	--radius-sm: 12px;
	--shadow: 0 20px 60px rgba(9, 35, 77, 0.18);
	--shell: min(1140px, calc(100% - 3rem));
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: "Manrope", sans-serif;
	color: var(--ink);
	background:
		radial-gradient(circle at 12% -6%, rgba(21, 214, 255, 0.58), transparent 34%),
		radial-gradient(circle at 88% 8%, rgba(255, 139, 42, 0.46), transparent 38%),
		radial-gradient(circle at 50% 120%, rgba(31, 125, 255, 0.32), transparent 54%),
		linear-gradient(155deg, #d6e8ff 0%, #f2f7ff 43%, #dcf5ff 100%);
	min-height: 100vh;
	position: relative;
}

body::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(112deg, rgba(7, 24, 45, 0.16) 0%, rgba(7, 24, 45, 0) 44%),
		repeating-linear-gradient(
			90deg,
			rgba(18, 132, 246, 0.12) 0,
			rgba(18, 132, 246, 0.12) 1px,
			transparent 1px,
			transparent 82px
		),
		repeating-linear-gradient(
			0deg,
			rgba(18, 132, 246, 0.08) 0,
			rgba(18, 132, 246, 0.08) 1px,
			transparent 1px,
			transparent 82px
		);
	animation: grid-shift 32s linear infinite;
	z-index: -1;
}

body::after {
	content: "";
	position: fixed;
	inset: -22%;
	pointer-events: none;
	background:
		conic-gradient(
			from 130deg at 72% 28%,
			rgba(21, 214, 255, 0.35),
			rgba(31, 125, 255, 0.08),
			rgba(255, 139, 42, 0.28),
			rgba(21, 214, 255, 0.35)
		);
	filter: blur(46px);
	opacity: 0.86;
	animation: aurora-drift 20s ease-in-out infinite alternate;
	z-index: -2;
}

body.page-home {
	--hero-core-1: #04152f;
	--hero-core-2: #0c3f90;
	--hero-glow-1: rgba(20, 226, 255, 0.66);
	--hero-glow-2: rgba(255, 126, 38, 0.54);
	--hero-glow-3: rgba(58, 125, 255, 0.52);
	background:
		radial-gradient(circle at 14% 10%, rgba(21, 214, 255, 0.62), transparent 34%),
		radial-gradient(circle at 88% 6%, rgba(255, 139, 42, 0.5), transparent 40%),
		radial-gradient(circle at 52% 116%, rgba(31, 125, 255, 0.34), transparent 54%),
		linear-gradient(160deg, #d4e7ff 0%, #eef5ff 46%, #d8f6ff 100%);
}

body.page-architecture {
	--hero-core-1: #071432;
	--hero-core-2: #164c93;
	--hero-glow-1: rgba(31, 125, 255, 0.66);
	--hero-glow-2: rgba(21, 214, 255, 0.52);
	--hero-glow-3: rgba(109, 173, 255, 0.5);
	background:
		radial-gradient(circle at 18% 8%, rgba(31, 125, 255, 0.54), transparent 38%),
		radial-gradient(circle at 84% 16%, rgba(21, 214, 255, 0.45), transparent 42%),
		radial-gradient(circle at 54% 114%, rgba(255, 139, 42, 0.3), transparent 56%),
		linear-gradient(160deg, #d7e6ff 0%, #edf4ff 48%, #e0f8ff 100%);
}

body.page-program {
	--hero-core-1: #1a0f2e;
	--hero-core-2: #123f87;
	--hero-glow-1: rgba(255, 139, 42, 0.62);
	--hero-glow-2: rgba(21, 214, 255, 0.54);
	--hero-glow-3: rgba(160, 83, 255, 0.44);
	background:
		radial-gradient(circle at 14% 8%, rgba(255, 139, 42, 0.5), transparent 38%),
		radial-gradient(circle at 84% 12%, rgba(21, 214, 255, 0.46), transparent 40%),
		radial-gradient(circle at 48% 116%, rgba(31, 125, 255, 0.32), transparent 54%),
		linear-gradient(160deg, #dce9ff 0%, #f1f7ff 46%, #e2f8ff 100%);
}

img {
	max-width: 100%;
	display: block;
}

a {
	color: var(--primary-strong);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

a:hover {
	text-decoration: none;
}

p {
	line-height: 1.72;
	color: var(--muted);
}

h1,
h2,
h3,
h4 {
	margin: 0;
	font-family: "Orbitron", sans-serif;
	letter-spacing: 0.03em;
	color: var(--ink);
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 1rem;
	background: #ffffff;
	color: var(--ink);
	padding: 0.65rem 0.95rem;
	border: 2px solid var(--primary);
	border-radius: 999px;
	z-index: 1200;
	text-decoration: none;
}

.skip-link:focus {
	left: 1rem;
}

.shell {
	width: var(--shell);
	margin: 0 auto;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	backdrop-filter: blur(12px) saturate(1.22);
	background: linear-gradient(90deg, rgba(245, 251, 255, 0.97), rgba(233, 245, 255, 0.93));
	border-bottom: 1px solid transparent;
	transition: border-color 220ms ease, box-shadow 220ms ease;
}

.site-header.scrolled {
	border-bottom-color: var(--line);
	box-shadow: 0 12px 36px rgba(7, 31, 72, 0.14);
}

.header-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 76px;
	gap: 1rem;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: "Orbitron", sans-serif;
	font-size: 0.95rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-decoration: none;
	color: var(--ink);
}

.brand span {
	color: var(--primary-strong);
}

.menu-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 0.4rem 0.9rem;
	font: inherit;
	color: var(--ink);
}

.site-nav {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.site-nav a {
	padding: 0.5rem 0.9rem;
	text-decoration: none;
	color: var(--ink);
	font-size: 0.9rem;
	font-weight: 700;
	border-radius: 999px;
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a.active {
	background: rgba(15, 154, 248, 0.14);
	color: var(--primary-strong);
	outline: none;
}

.page-hero {
	position: relative;
	overflow: clip;
	padding: 5.2rem 0 4rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.26);
}

.page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(124deg, rgba(3, 15, 31, 0.94), rgba(7, 28, 58, 0.78) 44%, rgba(5, 18, 39, 0.92)),
		radial-gradient(circle at 12% 22%, var(--hero-glow-1), transparent 40%),
		radial-gradient(circle at 88% 72%, var(--hero-glow-2), transparent 44%),
		radial-gradient(circle at 52% 118%, var(--hero-glow-3), transparent 58%),
		repeating-linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.06) 0,
			rgba(255, 255, 255, 0.06) 1px,
			transparent 1px,
			transparent 112px
		),
		repeating-linear-gradient(
			0deg,
			rgba(255, 255, 255, 0.04) 0,
			rgba(255, 255, 255, 0.04) 1px,
			transparent 1px,
			transparent 112px
		),
		linear-gradient(155deg, var(--hero-core-1) 0%, var(--hero-core-2) 100%);
	filter: saturate(1.35) contrast(1.1);
	transform: scale(1.03);
	animation: hero-scan 18s ease-in-out infinite alternate;
	z-index: -2;
}

.page-hero::after {
	content: "";
	position: absolute;
	inset: auto -10% -58% auto;
	width: clamp(24rem, 44vw, 36rem);
	aspect-ratio: 1;
	border-radius: 50%;
	background:
		radial-gradient(circle at 26% 28%, rgba(21, 214, 255, 0.72), transparent 36%),
		radial-gradient(circle at 72% 60%, rgba(255, 139, 42, 0.68), transparent 46%),
		conic-gradient(
			from 16deg at 52% 52%,
			rgba(31, 125, 255, 0.5),
			rgba(255, 139, 42, 0.28),
			rgba(21, 214, 255, 0.56),
			rgba(31, 125, 255, 0.5)
		);
	filter: blur(8px) saturate(1.16);
	opacity: 0.96;
	animation: float-orb 10s ease-in-out infinite, spin-glow 28s linear infinite;
	z-index: -1;
}

.page-hero .shell {
	position: relative;
}

.page-hero .shell::after {
	content: "";
	position: absolute;
	top: -2.8rem;
	right: min(8%, 4rem);
	width: clamp(12rem, 30vw, 24rem);
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 58% 42% 62% 38%;
	opacity: 0.62;
	pointer-events: none;
	animation: spin-glow 32s linear infinite reverse;
}

.hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: 1.8rem;
	align-items: end;
}

.eyebrow {
	display: inline-block;
	padding: 0.35rem 0.8rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.32);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.hero-copy h1 {
	margin-top: 1rem;
	font-size: clamp(2rem, 4.6vw, 3.8rem);
	line-height: 1.1;
	color: #ffffff;
}

.hero-copy p {
	margin: 1rem 0 1.8rem;
	color: rgba(255, 255, 255, 0.88);
	max-width: 58ch;
}

.hero-copy {
	position: relative;
	padding: 1.1rem 1.2rem 1.3rem;
	border-radius: 16px;
	background: linear-gradient(145deg, rgba(3, 18, 38, 0.58), rgba(8, 34, 67, 0.38));
	border: 1px solid rgba(121, 220, 255, 0.25);
	box-shadow: 0 20px 42px rgba(1, 9, 21, 0.38);
	backdrop-filter: blur(3px);
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.68rem 1.1rem;
	border-radius: 999px;
	border: 1px solid transparent;
	text-decoration: none;
	font-weight: 800;
	font-size: 0.86rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.btn-primary {
	background: linear-gradient(90deg, var(--primary), #2dc9ff);
	color: #ffffff;
}

.btn-primary:hover {
	filter: brightness(1.06);
}

.btn-ghost {
	border-color: rgba(255, 255, 255, 0.58);
	color: #ffffff;
	background: rgba(255, 255, 255, 0.08);
}

.signal-panel {
	position: relative;
	overflow: hidden;
	background: linear-gradient(152deg, rgba(4, 22, 44, 0.96), rgba(10, 48, 98, 0.92));
	border: 1px solid rgba(98, 220, 255, 0.36);
	border-radius: var(--radius);
	box-shadow: 0 26px 56px rgba(2, 11, 25, 0.56), inset 0 0 0 1px rgba(255, 255, 255, 0.07);
	padding: 1.15rem;
}

.signal-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		0deg,
		rgba(145, 223, 255, 0.12) 0,
		rgba(145, 223, 255, 0.12) 1px,
		transparent 1px,
		transparent 14px
	);
	opacity: 0.34;
	pointer-events: none;
}

.signal-panel > * {
	position: relative;
	z-index: 1;
}

.signal-panel h2 {
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.8rem;
	color: #dcf7ff;
}

.signal-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

.signal {
	background: rgba(8, 27, 52, 0.76);
	border: 1px solid rgba(102, 216, 255, 0.3);
	border-radius: var(--radius-sm);
	padding: 0.75rem;
}

.signal strong {
	display: block;
	font-family: "Orbitron", sans-serif;
	font-size: 1.3rem;
	color: #ffffff;
}

.signal span {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: rgba(220, 239, 255, 0.86);
}

.section {
	padding: 4rem 0;
}

.section.tight {
	padding-top: 2rem;
}

.section > .shell {
	padding: 1.3rem;
	border-radius: calc(var(--radius) + 2px);
	border: 1px solid rgba(17, 94, 175, 0.22);
	background: linear-gradient(152deg, rgba(252, 255, 255, 0.97), rgba(239, 249, 255, 0.94));
	box-shadow: 0 18px 40px rgba(6, 27, 62, 0.12);
}

.section.tight > .shell {
	padding-top: 1rem;
}

.section-head {
	max-width: 68ch;
	margin-bottom: 1.6rem;
	padding: 1rem 1.1rem 1.2rem;
	border-radius: 14px;
	border: 1px solid rgba(17, 94, 175, 0.18);
	background: linear-gradient(150deg, rgba(255, 255, 255, 0.94), rgba(240, 249, 255, 0.92));
	box-shadow: 0 10px 26px rgba(6, 27, 62, 0.08);
}

.section-head h2 {
	font-size: clamp(1.45rem, 3vw, 2.4rem);
}

.section-head p {
	margin-top: 0.9rem;
}

.cards-3,
.cards-4,
.media-grid {
	display: grid;
	gap: 1rem;
}

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

.cards-4,
.media-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.card {
	padding: 1.15rem;
	border-radius: var(--radius);
	background: linear-gradient(155deg, rgba(251, 254, 255, 0.97), rgba(238, 249, 255, 0.94));
	border: 1px solid rgba(18, 95, 181, 0.24);
	box-shadow: 0 18px 44px rgba(7, 30, 68, 0.16);
	position: relative;
	overflow: hidden;
}

.card::before {
	content: "";
	position: absolute;
	left: -20%;
	top: 0;
	width: 70%;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--primary), transparent);
}

.card h3 {
	font-size: 1.02rem;
	margin-bottom: 0.5rem;
}

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

.metric {
	background: var(--surface-strong);
	border: 1px solid rgba(18, 95, 181, 0.25);
	border-radius: var(--radius-sm);
	padding: 1rem;
	box-shadow: 0 12px 26px rgba(5, 24, 53, 0.11);
}

.metric strong {
	display: block;
	font-family: "Orbitron", sans-serif;
	font-size: clamp(1.35rem, 2.8vw, 2rem);
	color: var(--ink);
}

.metric span {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--muted);
}

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

.rail-step {
	position: relative;
	padding: 1rem 1rem 1rem 1.15rem;
	border-radius: var(--radius-sm);
	background: var(--surface-strong);
	border: 1px solid rgba(18, 95, 181, 0.24);
	box-shadow: 0 12px 24px rgba(5, 24, 53, 0.1);
}

.rail-step::before {
	content: attr(data-step);
	position: absolute;
	top: -0.8rem;
	left: 0.9rem;
	font-family: "Orbitron", sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	color: #ffffff;
	background: var(--primary-strong);
	border-radius: 999px;
	padding: 0.2rem 0.5rem;
}

.rail-step h3 {
	font-size: 0.96rem;
	margin-bottom: 0.45rem;
}

.media-grid figure {
	margin: 0;
	border-radius: var(--radius-sm);
	overflow: hidden;
	position: relative;
	isolation: isolate;
	min-height: 190px;
	border: 1px solid rgba(89, 199, 255, 0.42);
	box-shadow: 0 18px 42px rgba(5, 25, 56, 0.24);
	background:
		radial-gradient(circle at 18% 20%, rgba(21, 214, 255, 0.44), transparent 44%),
		radial-gradient(circle at 84% 16%, rgba(255, 139, 42, 0.34), transparent 42%),
		radial-gradient(circle at 50% 118%, rgba(31, 125, 255, 0.38), transparent 58%),
		linear-gradient(140deg, #061a34 0%, #0c3f82 52%, #0b264e 100%);
}

.media-grid figure::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(
			90deg,
			rgba(146, 220, 255, 0.12) 0,
			rgba(146, 220, 255, 0.12) 1px,
			transparent 1px,
			transparent 18px
		),
		repeating-linear-gradient(
			0deg,
			rgba(146, 220, 255, 0.09) 0,
			rgba(146, 220, 255, 0.09) 1px,
			transparent 1px,
			transparent 18px
		);
	opacity: 0.46;
	animation: grid-shift 22s linear infinite;
}

.media-grid figure::after {
	content: attr(data-label);
	position: absolute;
	left: 0.75rem;
	right: 0.75rem;
	bottom: 0.75rem;
	padding: 0.45rem 0.65rem;
	font-family: "Orbitron", sans-serif;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #d7f8ff;
	border: 1px solid rgba(105, 220, 255, 0.38);
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(4, 22, 44, 0.9), rgba(7, 37, 72, 0.74));
}

.media-grid figure:nth-child(4n + 2) {
	background:
		radial-gradient(circle at 12% 82%, rgba(255, 139, 42, 0.34), transparent 38%),
		radial-gradient(circle at 86% 14%, rgba(21, 214, 255, 0.46), transparent 44%),
		radial-gradient(circle at 50% 116%, rgba(50, 119, 255, 0.34), transparent 54%),
		linear-gradient(140deg, #081728 0%, #124f8f 56%, #0a2a4f 100%);
}

.media-grid figure:nth-child(4n + 3) {
	background:
		radial-gradient(circle at 16% 18%, rgba(109, 173, 255, 0.42), transparent 44%),
		radial-gradient(circle at 80% 78%, rgba(21, 214, 255, 0.3), transparent 42%),
		radial-gradient(circle at 88% 14%, rgba(255, 139, 42, 0.32), transparent 40%),
		linear-gradient(140deg, #081f3b 0%, #1a3c75 56%, #0b2444 100%);
}

.media-grid figure:nth-child(4n + 4) {
	background:
		radial-gradient(circle at 18% 78%, rgba(21, 214, 255, 0.34), transparent 38%),
		radial-gradient(circle at 84% 16%, rgba(255, 139, 42, 0.4), transparent 44%),
		radial-gradient(circle at 52% 120%, rgba(64, 112, 255, 0.38), transparent 56%),
		linear-gradient(150deg, #07172e 0%, #113968 54%, #0a2040 100%);
}

.media-grid img {
	display: none;
}

.split {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 1rem;
}

.label-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}

.label-list li {
	padding: 0.75rem 0.9rem;
	border-radius: 10px;
	background: rgba(15, 154, 248, 0.08);
	border: 1px solid rgba(15, 154, 248, 0.2);
	font-weight: 700;
	color: #1c3761;
}

.matrix {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	border-radius: var(--radius-sm);
	border: 1px solid rgba(18, 95, 181, 0.26);
	box-shadow: 0 14px 34px rgba(7, 31, 72, 0.14);
	background: var(--surface-strong);
}

.matrix th,
.matrix td {
	padding: 0.78rem 0.9rem;
	text-align: left;
	font-size: 0.88rem;
	border-bottom: 1px solid var(--line);
}

.matrix thead th {
	background: rgba(15, 154, 248, 0.1);
	font-size: 0.74rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #1c3761;
}

.matrix tr:last-child td {
	border-bottom: none;
}

.status {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.07em;
}

.status-green {
	background: rgba(27, 186, 142, 0.16);
	color: #117f61;
}

.status-amber {
	background: rgba(255, 140, 43, 0.16);
	color: #b36414;
}

.status-red {
	background: rgba(246, 95, 95, 0.16);
	color: #bf2f2f;
}

.contact-card {
	background: linear-gradient(150deg, rgba(251, 254, 255, 0.97), rgba(240, 250, 255, 0.94));
	border: 1px solid rgba(18, 95, 181, 0.24);
	border-radius: var(--radius);
	padding: 1rem;
	box-shadow: 0 18px 42px rgba(7, 30, 68, 0.15);
}

.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.85rem;
}

.form-grid .full {
	grid-column: 1 / -1;
}

label {
	display: block;
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #274878;
	margin-bottom: 0.35rem;
}

input,
textarea,
select {
	width: 100%;
	border-radius: 10px;
	border: 1px solid rgba(16, 92, 178, 0.25);
	padding: 0.7rem 0.8rem;
	font: inherit;
	color: var(--ink);
	background: #ffffff;
}

textarea {
	min-height: 130px;
	resize: vertical;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.btn:focus-visible,
.menu-toggle:focus-visible,
.site-nav a:focus-visible {
	outline: 3px solid rgba(15, 154, 248, 0.45);
	outline-offset: 2px;
}

.site-footer {
	padding: 2.2rem 0 2.8rem;
}

.footer-shell {
	background: linear-gradient(152deg, rgba(252, 255, 255, 0.96), rgba(238, 249, 255, 0.92));
	border: 1px solid rgba(17, 94, 175, 0.2);
	border-radius: var(--radius);
	padding: 1.2rem;
	border-top: 1px solid var(--line);
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	box-shadow: 0 14px 36px rgba(6, 27, 62, 0.12);
}

.footer-links {
	display: inline-flex;
	gap: 0.9rem;
	flex-wrap: wrap;
}

.footer-links a {
	text-decoration: none;
	font-weight: 700;
	color: var(--muted);
}

.footer-links a:hover {
	color: var(--primary-strong);
}

.reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 500ms ease, transform 500ms ease;
}

.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@keyframes float-orb {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-12px);
	}
}

@keyframes grid-shift {
	0% {
		transform: translate3d(0, 0, 0);
	}
	50% {
		transform: translate3d(20px, 10px, 0);
	}
	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes aurora-drift {
	0% {
		transform: translate3d(-2%, -1%, 0) scale(1);
	}
	50% {
		transform: translate3d(2%, 1%, 0) scale(1.08);
	}
	100% {
		transform: translate3d(0, -2%, 0) scale(1.02);
	}
}

@keyframes spin-glow {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

@keyframes hero-scan {
	0% {
		transform: scale(1.03) translateX(0);
	}
	50% {
		transform: scale(1.035) translateX(-0.7%);
	}
	100% {
		transform: scale(1.03) translateX(0.7%);
	}
}

@media (max-width: 980px) {
	.hero-grid,
	.split {
		grid-template-columns: 1fr;
	}

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

	.cards-4,
	.metric-grid,
	.rail,
	.media-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	:root {
		--shell: min(1140px, calc(100% - 1.5rem));
	}

	.menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.site-nav {
		position: absolute;
		top: 74px;
		right: 0.75rem;
		display: grid;
		gap: 0.2rem;
		padding: 0.55rem;
		border-radius: 14px;
		border: 1px solid var(--line);
		background: rgba(255, 255, 255, 0.94);
		box-shadow: 0 22px 45px rgba(8, 29, 66, 0.15);
		min-width: 220px;
		transform-origin: top right;
		transform: scale(0.96);
		opacity: 0;
		pointer-events: none;
		transition: opacity 180ms ease, transform 180ms ease;
	}

	.site-nav.open {
		opacity: 1;
		transform: scale(1);
		pointer-events: auto;
	}

	.site-nav a {
		border-radius: 10px;
	}

	.cards-3,
	.cards-4,
	.metric-grid,
	.rail,
	.media-grid,
	.form-grid {
		grid-template-columns: 1fr;
	}

	.page-hero {
		padding-top: 4.2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
