/*
 * POW IT UP — main.css (V5 · PRISM · r2 boilerplate)
 *
 * Base system only: fonts, reset, type scale, layout, core components,
 * glass materials, reveal system, chrome (header/footer). Every value
 * comes from tokens.css / the ratified V5 r2 registry.
 *
 * Sections:
 *   a) @font-face          b) reset + base       c) type scale
 *   d) layout + bands      e) components         f) reveal system
 *   g) chrome: nav/footer  h) reduced motion
 */

/* ------------------------------------------------------------------ */
/* a) @font-face — self-hosted, font-display: swap                     */
/* ------------------------------------------------------------------ */

@font-face {
	font-family: 'Inter';
	src: url('../fonts/Inter-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Inter';
	src: url('../fonts/Inter-Medium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Inter';
	src: url('../fonts/Inter-SemiBold.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Inter Display';
	src: url('../fonts/InterDisplay-SemiBold.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Inter Display';
	src: url('../fonts/InterDisplay-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'JetBrains Mono';
	src: url('../fonts/JetBrainsMono-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ------------------------------------------------------------------ */
/* b) Reset + base                                                     */
/* ------------------------------------------------------------------ */

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

* {
	margin: 0;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	background: var(--piu-polar);
	color: var(--piu-ink);
	font-family: var(--piu-font-sans);
	font-size: 16px;
	line-height: 27px;
	letter-spacing: 0.005em;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

input,
button,
textarea,
select {
	font: inherit;
	color: inherit;
}

button {
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

ul[class],
ol[class] {
	list-style: none;
	padding: 0;
}

::selection {
	background: rgba(0, 135, 158, 0.18);
}

/* Focus law: 2px Meridian ring on EVERYTHING interactive. */
:focus-visible {
	outline: 2px solid var(--piu-meridian);
	outline-offset: 2px;
}

body.menu-open {
	overflow: hidden;
}

.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 200;
	padding: 10px 20px;
	background: var(--piu-white);
	color: var(--piu-ink);
	border: 1px solid var(--piu-border);
	border-radius: var(--piu-radius);
}

.skip-link:focus {
	top: 16px;
}

/* ------------------------------------------------------------------ */
/* c) Type scale                                                       */
/* ------------------------------------------------------------------ */

h1 {
	font-family: var(--piu-font-display);
	font-weight: 700;
	font-size: 60px;
	line-height: 68px;
	letter-spacing: -0.025em;
}

h2 {
	font-family: var(--piu-font-display);
	font-weight: 600;
	font-size: 38px;
	line-height: 46px;
	letter-spacing: -0.015em;
}

h3 {
	font-family: var(--piu-font-sans);
	font-weight: 500;
	font-size: 24px;
	line-height: 32px;
}

small,
.piu-small {
	font-size: 14px;
	line-height: 20px;
}

.piu-mono {
	font-family: var(--piu-font-mono);
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

/* ≤640px: display sizes −25–30%. */
@media (max-width: 640px) {
	h1 {
		font-size: 44px;
		line-height: 50px;
	}

	h2 {
		font-size: 28px;
		line-height: 36px;
	}

	h3 {
		font-size: 20px;
		line-height: 28px;
	}
}

/* ------------------------------------------------------------------ */
/* d) Layout + bands                                                   */
/* ------------------------------------------------------------------ */

.container {
	max-width: var(--piu-maxw);
	margin-inline: auto;
	padding-inline: 24px;
}

.piu-section {
	padding-block: 112px; /* desktop rhythm 96–128px */
}

@media (max-width: 640px) {
	.container {
		padding-inline: 16px;
	}

	.piu-section {
		padding-block: 64px; /* mobile rhythm 56–64px */
	}
}

.band--polar {
	background: var(--piu-polar);
}

.band--white {
	background: var(--piu-white);
}

.band--horizon {
	background: var(--piu-horizon);
}

/* The ≤1-per-page ink statement band — the page's single dramatic beat. */
.band--ink {
	background: var(--piu-ink);
	color: var(--piu-white);
}

.band--ink a {
	color: var(--piu-white);
	text-decoration: underline;
}

.band--ink .btn-primary {
	background: var(--piu-white);
	color: var(--piu-ink);
}

.band--ink .btn-primary:hover {
	background: var(--piu-polar);
}

.band--ink .btn-ghost {
	border-color: rgba(255, 255, 255, 0.35);
	color: var(--piu-white);
}

/* ------------------------------------------------------------------ */
/* e) Components                                                       */
/* ------------------------------------------------------------------ */

/* Text links — Meridian Deep, underline on hover (never Meridian at body size). */
a {
	color: var(--piu-meridian-deep);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

/* Eyebrow — the small technical voice above headings. */
.piu-eyebrow {
	display: block;
	font-family: var(--piu-font-mono);
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--piu-meridian-deep);
	margin-bottom: 16px;
}

/* Measurement tick — the machinist's mark under H1/H2:
   24px prism hairline at 80% + three 2px Meridian node ticks. */
.piu-tick {
	position: relative;
	display: block;
	width: 24px;
	height: 6px;
	margin-top: 16px;
}

.piu-tick::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 2px;
	height: 1px;
	background: var(--piu-prism);
	opacity: 0.8;
}

.piu-tick::after {
	content: '';
	position: absolute;
	left: 0;
	top: 1px;
	width: 24px;
	height: 2px;
	background-image:
		linear-gradient(var(--piu-meridian), var(--piu-meridian)),
		linear-gradient(var(--piu-meridian), var(--piu-meridian)),
		linear-gradient(var(--piu-meridian), var(--piu-meridian));
	background-size: 2px 2px;
	background-position: 0 0, 11px 0, 22px 0;
	background-repeat: no-repeat;
}

/* Buttons */
.btn-primary {
	display: inline-block;
	position: relative;
	background: var(--piu-ink);
	color: var(--piu-white);
	font-family: var(--piu-font-sans);
	font-weight: 600;
	font-size: 15px;
	line-height: 1;
	padding: 10px 20px;
	border-radius: var(--piu-radius);
	text-decoration: none;
	transition: background-color 160ms ease, transform 160ms ease;
}

.btn-primary:hover {
	background: #1a2938; /* Ink darkened ~6% */
	transform: translateY(-1px);
	text-decoration: none;
}

/* The micro-wow: 1px prism edge appears on primary hover. */
.btn-primary::after {
	content: '';
	position: absolute;
	inset: -1px;
	border-radius: 9px;
	padding: 1px;
	background: var(--piu-prism);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	opacity: 0;
	transition: opacity 160ms ease;
	pointer-events: none;
}

.btn-primary:hover::after {
	opacity: 1;
}

.btn-ghost {
	display: inline-block;
	background: transparent;
	color: var(--piu-ink);
	font-family: var(--piu-font-sans);
	font-weight: 600;
	font-size: 15px;
	line-height: 1;
	padding: 9px 19px; /* 1px border keeps outer size equal to primary */
	border: 1px solid var(--piu-ink);
	border-radius: var(--piu-radius);
	text-decoration: none;
	transition: background-color 160ms ease, transform 160ms ease;
}

.btn-ghost:hover {
	transform: translateY(-1px);
	text-decoration: none;
}

/* Flat card — the reading-mode workhorse on flat bands. */
.card {
	background: var(--piu-white);
	border: 1px solid var(--piu-border);
	border-radius: var(--piu-radius-card);
	box-shadow: 0 8px 28px rgba(28, 44, 60, 0.06);
	transition: transform 180ms ease, border-color 180ms ease;
}

.card:hover {
	transform: translateY(-6px);
	border-color: rgba(28, 44, 60, 0.14);
}

/* Prism Glass — instrument glass, ONLY over .piu-lightfield. */
.glass-p1 {
	background: var(--piu-glass-pane);
	-webkit-backdrop-filter: blur(var(--piu-blur-pane));
	backdrop-filter: blur(var(--piu-blur-pane));
	border: 1px solid var(--piu-glass-border);
	border-radius: var(--piu-radius-pane);
	box-shadow: inset 0 1px 0 #FFFFFF, var(--piu-shadow-ambient);
}

.glass-p2 {
	background: var(--piu-glass-card);
	-webkit-backdrop-filter: blur(var(--piu-blur-card));
	backdrop-filter: blur(var(--piu-blur-card));
	border: 1px solid rgba(28, 44, 60, 0.08);
	border-radius: var(--piu-radius-card);
	transition: transform 180ms ease, border-color 180ms ease;
}

.glass-p2:hover {
	transform: translateY(-4px);
	border-color: rgba(28, 44, 60, 0.14);
}

.glass-p3 {
	display: inline-block;
	background: var(--piu-glass-chip);
	-webkit-backdrop-filter: blur(var(--piu-blur-chip));
	backdrop-filter: blur(var(--piu-blur-chip));
	border: 1px solid rgba(0, 135, 158, 0.22);
	border-radius: 6px;
	font-family: var(--piu-font-mono);
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

/* Extra white layer behind dense text on glass (WCAG law). */
.glass-scrim {
	background: var(--piu-glass-scrim);
}

/* Solid-white fallback: no backdrop-filter support, or user preference. */
@supports not (backdrop-filter: blur(1px)) {
	.glass-p1,
	.glass-p2,
	.glass-p3 {
		background: var(--piu-white);
	}
}

@media (prefers-reduced-transparency: reduce) {
	.glass-p1,
	.glass-p2,
	.glass-p3 {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--piu-white);
	}
}

/* Corner tick-brackets — instrument framing, hero P1 only. */
.piu-brackets {
	position: relative;
}

.piu-brackets::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28));
	background-size: 8px 1px, 1px 8px, 8px 1px, 1px 8px, 8px 1px, 1px 8px, 8px 1px, 1px 8px;
	background-position:
		top left, top left,
		top right, top right,
		bottom left, bottom left,
		bottom right, bottom right;
	background-repeat: no-repeat;
}

/* Prism Edge — 2px animated gradient border, ≤2–3 flagship cards per page. */
.prism-edge {
	position: relative;
}

.prism-edge::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 2px;
	background: linear-gradient(90deg, #00879E, #6FC9E8, #ADBBF2, #00879E) 0 0 / 300% 100%;
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	animation: piu-edge-loop var(--piu-motion-edge) linear infinite;
	pointer-events: none;
}

@keyframes piu-edge-loop {
	to {
		background-position: 300% 0;
	}
}

/* The Lightfield — Polar base + ONE soft off-center Sky luminance ≤7%.
   JS mounts the node layer inside (.piu-lightfield__nodes). */
.piu-lightfield {
	position: relative;
	background:
		radial-gradient(640px 420px at 68% 18%, rgba(111, 201, 232, 0.07), transparent 70%),
		var(--piu-polar);
	overflow: hidden;
}

.piu-lightfield__nodes {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}

.piu-lightfield__nodes .piu-node {
	position: absolute;
	background: var(--piu-ink);
}

.piu-lightfield > :not(.piu-lightfield__nodes) {
	position: relative;
	z-index: 1;
}

/* Optional single blurred caustic ribbon, ≤12% opacity. */
.piu-lightfield__caustic {
	position: absolute;
	left: -10%;
	right: -10%;
	height: 160px;
	background: var(--piu-prism);
	filter: blur(48px);
	opacity: 0.12;
	pointer-events: none;
}

/* Status pills — P3 chips, semantic use only. */
.pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	border-radius: 6px;
	font-family: var(--piu-font-mono);
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--piu-ink);
}

.pill::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
}

.pill--live {
	background: #E7F7EF;
	border: 1px solid rgba(16, 185, 129, 0.35);
}

.pill--live::before {
	background: var(--piu-sem-success);
}

.pill--dev {
	background: rgba(245, 158, 11, 0.12);
	border: 1px solid rgba(245, 158, 11, 0.35);
}

.pill--dev::before {
	background: var(--piu-sem-warning);
}

/* Forms base — white fields, labels above, Meridian focus, semantic states. */
label {
	display: block;
	font-weight: 500;
	margin-bottom: 8px;
}

input[type='text'],
input[type='email'],
input[type='tel'],
input[type='url'],
input[type='number'],
input[type='search'],
input[type='password'],
textarea,
select {
	width: 100%;
	background: var(--piu-white);
	border: 1px solid var(--piu-border);
	border-radius: var(--piu-radius);
	padding: 10px 14px;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--piu-meridian);
	outline-offset: 0;
}

.field--error input,
.field--error textarea,
.field--error select {
	border-color: var(--piu-sem-error);
}

.field__message {
	font-size: 14px;
	line-height: 20px;
	margin-top: 6px;
}

.field--error .field__message {
	color: var(--piu-sem-error);
}

.field--success .field__message {
	color: var(--piu-sem-success);
}

/* fig. label — mono caption with leader line + 2px node endpoint. */
.fig-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--piu-font-mono);
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--piu-ink-muted);
	margin-top: 12px;
}

.fig-label::before {
	content: '';
	flex: none;
	width: 26px;
	height: 2px;
	background-image:
		linear-gradient(rgba(28, 44, 60, 0.28), rgba(28, 44, 60, 0.28)),
		linear-gradient(var(--piu-meridian), var(--piu-meridian));
	background-size: 24px 1px, 2px 2px;
	background-position: 0 50%, 24px 50%;
	background-repeat: no-repeat;
}

/* ------------------------------------------------------------------ */
/* f) Reveal system — hidden only when JS is present (html.js)          */
/* ------------------------------------------------------------------ */

html.js [data-reveal] {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity var(--piu-motion-reveal), transform var(--piu-motion-reveal);
}

html.js [data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

/* ------------------------------------------------------------------ */
/* g) Chrome — header, dropdowns, mobile menu, footer                  */
/* ------------------------------------------------------------------ */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	height: 72px;
	background: var(--piu-glass-pane);
	-webkit-backdrop-filter: blur(var(--piu-blur-pane));
	backdrop-filter: blur(var(--piu-blur-pane));
	border-bottom: 1px solid var(--piu-glass-border);
}

@supports not (backdrop-filter: blur(1px)) {
	.site-header {
		background: var(--piu-white);
	}
}

@media (prefers-reduced-transparency: reduce) {
	.site-header {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--piu-white);
	}
}

.site-header__inner {
	display: flex;
	align-items: center;
	height: 72px;
}

.site-header__logo img {
	height: 32px;
	width: auto;
}

.site-nav {
	margin-left: 48px;
}

.site-nav__list {
	display: flex;
	align-items: center;
	gap: 32px;
}

.site-nav__item {
	position: relative;
	display: flex;
	align-items: center;
}

.site-nav__link {
	color: var(--piu-ink);
	font-weight: 500;
	font-size: 15px;
	text-decoration: none;
}

.site-nav__link:hover {
	text-decoration: underline;
}

.site-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-left: 2px;
	color: var(--piu-ink);
}

.site-nav__toggle[aria-expanded='true'] .site-nav__chevron {
	transform: rotate(180deg);
}

.site-nav__chevron {
	transition: transform 180ms ease;
}

.site-nav__dropdown {
	position: absolute;
	top: calc(100% + 16px);
	left: -16px;
	min-width: 220px;
	padding: 8px;
	opacity: 0;
	transform: translateY(-8px);
	visibility: hidden;
	transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
	z-index: 110;
}

.site-nav__dropdown.is-open {
	opacity: 1;
	transform: none;
	visibility: visible;
	transition: opacity 180ms ease, transform 180ms ease;
}

.site-nav__sublink {
	display: block;
	padding: 8px 12px;
	border-radius: var(--piu-radius);
	color: var(--piu-ink);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}

.site-nav__sublink:hover {
	background: var(--piu-horizon);
	text-decoration: none;
}

.site-header__cta {
	margin-left: auto;
}

/* Hamburger — ≥44px target, hidden on desktop. */
.site-header__hamburger {
	display: none;
	margin-left: auto;
	width: 44px;
	height: 44px;
	padding: 10px;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
}

.site-header__hamburger-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--piu-ink);
	margin-inline: auto;
}

/* Mobile menu — full-screen Polar menu on P1 material, CTA pinned bottom. */
.mobile-menu {
	position: fixed;
	inset: 72px 0 0 0;
	z-index: 90;
	display: flex;
	flex-direction: column;
	padding: 32px 24px;
	overflow-y: auto;
	background: var(--piu-glass-pane);
	-webkit-backdrop-filter: blur(var(--piu-blur-pane));
	backdrop-filter: blur(var(--piu-blur-pane));
}

@supports not (backdrop-filter: blur(1px)) {
	.mobile-menu {
		background: var(--piu-polar);
	}
}

@media (prefers-reduced-transparency: reduce) {
	.mobile-menu {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--piu-polar);
	}
}

.mobile-menu[hidden] {
	display: none;
}

.mobile-menu__list > li + li {
	margin-top: 8px;
}

.mobile-menu__link {
	display: block;
	padding: 12px 0;
	color: var(--piu-ink);
	font-family: var(--piu-font-display);
	font-weight: 600;
	font-size: 24px;
	line-height: 32px;
	text-decoration: none;
}

.mobile-menu__sublist {
	margin: 0 0 8px 16px;
}

.mobile-menu__sublink {
	display: block;
	padding: 10px 0;
	color: var(--piu-ink);
	font-weight: 500;
	font-size: 16px;
	text-decoration: none;
}

.mobile-menu__cta {
	margin-top: auto;
	padding-top: 32px;
}

.mobile-menu__cta .btn-primary {
	display: block;
	text-align: center;
}

/* ≤1024px: nav + CTA collapse into the hamburger (6 links + CTA
   physically cannot fit below ~1140px). */
@media (max-width: 1024px) {
	.site-nav,
	.site-header__cta {
		display: none;
	}

	.site-header__hamburger {
		display: flex;
	}
}

@media (min-width: 1025px) {
	.mobile-menu {
		display: none;
	}
}

/* Footer — light chrome on every page; never the ink moment. */
.site-footer {
	border-top: 1px solid var(--piu-border);
	padding-top: 80px;
	padding-bottom: 32px;
	/* Static sparse node-field texture, Ink 4–6%, no drift. */
	background-image:
		radial-gradient(rgba(28, 44, 60, 0.06) 1px, transparent 1.6px),
		radial-gradient(rgba(28, 44, 60, 0.04) 1px, transparent 1.6px);
	background-size: 104px 104px, 148px 148px;
	background-position: 18px 26px, 74px 92px;
}

.site-footer__columns {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
}

@media (max-width: 1024px) {
	.site-footer__columns {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 48px;
	}
}

@media (max-width: 640px) {
	.site-footer__columns {
		grid-template-columns: 1fr;
	}
}

.site-footer__heading {
	font-family: var(--piu-font-sans);
	font-weight: 600;
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0.02em;
	margin-bottom: 16px;
}

.site-footer__list li + li {
	margin-top: 10px;
}

.site-footer__list a {
	color: var(--piu-meridian-deep);
	text-decoration: none;
	font-size: 15px;
}

.site-footer__list a:hover {
	text-decoration: underline;
}

.site-footer__plain {
	font-size: 15px;
	color: var(--piu-ink-muted);
}

.site-footer__brand {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 64px;
	padding-top: 32px;
	border-top: 1px solid var(--piu-border);
}

.site-footer__brand img {
	height: 28px;
	width: auto;
}

.site-footer__tagline {
	font-size: 14px;
	line-height: 20px;
	color: var(--piu-ink);
}

.site-footer__legal {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
	color: var(--piu-ink-muted);
}

.site-footer__legal a {
	color: var(--piu-ink-muted);
	text-decoration: underline;
}

/* ------------------------------------------------------------------ */
/* h) Reduced motion — the page renders complete and static            */
/* ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}

	html.js [data-reveal] {
		opacity: 1;
		transform: none;
	}

	/* Prism edges render as static gradients; nodes are a static scatter (JS). */
}
