
:root {
	--ground:#111215;
	--surface:#181a1f;
	--surface-raised:#21242b;
	--surface-tint:#14171c;
	--ink:#f0f2f5;
	--ink-muted:#8e95a5;
	--ink-faint:#9ea7b8;
	--accent:#15944f;
	--accent-light:#1eb361;
	--accent-dark:#0d5e32;
	--accent-gold:#c99738;
	--accent-gold-soft:rgba(201, 151, 56, 0.18);
	--border:#2e333d;
	--border-subtle:#1e222a;
	--border-strong:#424957;
	--hazard:#d97706;
	--hazard-soft:rgba(217, 119, 6, 0.15);
	--error:#e04848;

	--cebi-b55:"Big Shoulders Display", -apple-system, BlinkMacSystemFont, "Impact", sans-serif;
	--cebi-8fc:"Roboto Slab", Georgia, "Times New Roman", serif;
	--cebi-380:"JetBrains Mono", "Consolas", "Courier New", monospace;

	--ease-ledger:cubic-bezier(0.16, 1, 0.3, 1);
	--ease-snap:cubic-bezier(0.2, 0, 0, 1);
	--duration-fast:140ms;
	--duration-base:220ms;
	--duration-deliberate:380ms;

	--shell-max:1280px;
	--shell-pad:clamp(1rem, 3.5vw, 2.75rem);
	--hairline:1px solid var(--border);
	--hairline-gold:1px solid var(--accent-gold);
}

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

html {
	background-color:var(--ground);
	color:var(--ink);
	font-family:var(--cebi-8fc);
	font-size:16px;
	line-height:1.55;
	text-rendering:optimizeLegibility;
	-webkit-text-size-adjust:100%;
	-moz-osx-font-smoothing:grayscale;
	scroll-behavior:smooth;
}

body {
	background-color:var(--ground);
	color:var(--ink);
	min-height:100vh;
	display:flex;
	flex-direction:column;
	overflow-x:hidden;
	position:relative;
}

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

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

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

ul, ol {
	list-style:none;
}

table {
	border-collapse:collapse;
	width:100%;
}

h1, h2, h3, h4, h5, h6 {
	font-family:var(--cebi-b55);
	font-weight:800;
	line-height:0.95;
	letter-spacing:-0.01em;
	text-transform:uppercase;
	color:var(--ink);
	word-break:break-word;
}

h1 {
	font-size:clamp(2.5rem, 7.5vw, 5.75rem);
	font-weight:900;
	letter-spacing:-0.02em;
}

h2 {
	font-size:clamp(1.85rem, 4.8vw, 3.5rem);
	font-weight:800;
}

h3 {
	font-size:clamp(1.35rem, 3vw, 2.15rem);
	font-weight:800;
}

h4 {
	font-size:clamp(1.1rem, 2vw, 1.45rem);
	font-weight:700;
	letter-spacing:0.02em;
}

p {
	font-size:clamp(0.95rem, 1.15vw, 1.0625rem);
	color:var(--ink);
	margin-bottom:1.15em;
	max-width:68ch;
}

p:last-child {
	margin-bottom:0;
}

p.standfirst {
	font-size:clamp(1.05rem, 1.4vw, 1.25rem);
	line-height:1.45;
	color:var(--ink);
	font-weight:400;
	max-width:72ch;
}

p.prose-sub {
	font-size:0.9375rem;
	color:var(--ink-muted);
	line-height:1.6;
}

.mono {
	font-family:var(--cebi-380);
	font-feature-settings:"tnum" on, "zero" on;
}

.shell {
	width:100%;
	max-width:var(--shell-max);
	margin-left:auto;
	margin-right:auto;
	padding-left:var(--shell-pad);
	padding-right:var(--shell-pad);
}

.shell--narrow {
	max-width:960px;
}

.shell--reading {
	max-width:820px;
}

.flow-section {
	padding-top:clamp(3rem, 7vw, 6.5rem);
	padding-bottom:clamp(3rem, 7vw, 6.5rem);
	border-bottom:var(--hairline);
	position:relative;
}

.flow-section--snug {
	padding-top:clamp(2rem, 4.5vw, 4rem);
	padding-bottom:clamp(2rem, 4.5vw, 4rem);
}

.hairline-top {
	border-top:var(--hairline);
}

.hairline-bottom {
	border-bottom:var(--hairline);
}

.rule-gold {
	border:none;
	border-top:var(--hairline-gold);
	margin:1.5rem 0;
}

.rule-hazard {
	height:4px;
	background:repeating-linear-gradient(
		-45deg,
		var(--hazard),
		var(--hazard) 10px,
		#111215 10px,
		#111215 20px
	);
	width:100%;
}

.sr-only {
	position:absolute !important;
	width:1px !important;
	height:1px !important;
	padding:0 !important;
	margin:-1px !important;
	overflow:hidden !important;
	clip:rect(0, 0, 0, 0) !important;
	white-space:nowrap !important;
	border:0 !important;
}

.lockup-signature {
	display:flex;
	flex-direction:column;
	position:relative;
	padding:1.25rem 0 1.75rem;
}

.lockup-signature__line {
	display:block;
	font-family:var(--cebi-b55);
	font-weight:900;
	text-transform:uppercase;
	line-height:0.88;
	color:var(--ink);
	letter-spacing:-0.015em;
	font-size:clamp(2.75rem, 9.5vw, 7.5rem);
}

.lockup-signature__line--offset {
	padding-left:clamp(1.25rem, 6vw, 5.5rem);

	color:var(--ink);
}

.lockup-signature__line--accent {
	color:var(--accent-gold);
}

.lockup-signature__bar {
	display:block;
	width:clamp(70px, 14vw, 160px);
	height:3px;
	background-color:var(--accent);
	margin:0.9rem 0 1.1rem;
}

.spec-ledger {
	display:grid;
	grid-template-columns:1fr;
	width:100%;
	border-top:var(--hairline);
	margin-top:1.75rem;
	margin-bottom:2rem;
}

.spec-ledger__row {
	display:grid;
	grid-template-columns:minmax(140px, 260px) 1fr;
	align-items:baseline;
	gap:1.5rem;
	padding:1rem 0;
	border-bottom:var(--hairline);
}

.spec-ledger__key {

	font-family:var(--cebi-380);
	font-size:0.8125rem;
	text-transform:uppercase;
	letter-spacing:0.08em;

	color:var(--ink-muted);
	font-weight:500;
}

.spec-ledger__val {
	font-family:var(--cebi-8fc);
	font-size:1rem;
	color:var(--ink);
	min-width:0;
}

.spec-ledger__val strong {
	font-weight:700;
	color:var(--ink);
}

.spec-ledger__val .val-highlight {
	color:var(--accent-gold);
	font-family:var(--cebi-380);
	font-weight:700;
}

@media (max-width: 640px) {
	.spec-ledger__row {
		grid-template-columns:1fr;
		gap:0.35rem;
		padding:0.9rem 0;
	}
}

.interstitial-full {
	width:100%;
	margin:clamp(2rem, 5vw, 4rem) 0;
	border-top:var(--hairline);
	border-bottom:var(--hairline);
	position:relative;
	background-color:var(--surface);
}

.interstitial-full img {
	width:100%;
	aspect-ratio:16 / 9;
	object-fit:cover;
	object-position:center;
	display:block;
}

.interstitial-full figcaption {
	padding:0.75rem clamp(1rem, 3.5vw, 2.75rem);
	font-family:var(--cebi-380);
	font-size:0.75rem;
	color:var(--ink-muted);
	border-top:var(--hairline);
	background-color:var(--surface-tint);
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:0.5rem;
}

.icon {
	width:1.15em;
	height:1.15em;
	display:inline-block;
	vertical-align:-0.18em;
	stroke-width:0;
	stroke:currentColor;
	fill:currentColor;
	flex-shrink:0;
}

.skip-link {
	position:absolute;
	top:-100px;
	left:1rem;
	background-color:var(--accent);
	color:#ffffff;
	padding:0.75rem 1.25rem;
	font-family:var(--cebi-380);
	font-size:0.875rem;
	font-weight:700;
	z-index:9999;
	text-decoration:none;
	transition:top var(--duration-fast) var(--ease-snap);
	border:1px solid var(--accent-gold);
}

.skip-link:focus-visible {
	top:1rem;
	outline:2px solid var(--accent-gold);
	outline-offset:3px;
}

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