

:root {
	--ground: #141212;
	--surface: #1d1d1d;
	--surface-2: #2a2a2a;
	--line: #464646;
	--ink-soft: #b7b7b7;
	--ink: #e8e8e8;
	--accent: #268551;
	--accent-ink: #ffffff;
	--hairline: #b08d57;


	--povo-30a: 'Cinzel', 'Cinzel Fallback', Georgia, serif;
	--povo-d65: 'Zilla Slab', 'Zilla Slab Fallback', Cambria, Georgia, serif;
	--povo-b4d: 'JetBrains Mono', 'JetBrains Mono Fallback', ui-monospace, SFMono-Regular, Menlo, monospace;


	--font-weight-regular: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;
	--font-weight-display-bold: 800;


	--step--2: clamp(0.7292rem, 0.7073rem + 0.1094vw, 0.8rem);
	--step--1: clamp(0.875rem, 0.8386rem + 0.1818vw, 1rem);
	--povo-f51: clamp(1rem, 0.9455rem + 0.2727vw, 1.1875rem);
	--povo-2b5: clamp(1.1875rem, 1.1045rem + 0.4148vw, 1.4725rem);
	--povo-7e0: clamp(1.425rem, 1.2886rem + 0.6818vw, 1.895rem);
	--povo-1bf: clamp(1.71rem, 1.4989rem + 1.0557vw, 2.4388rem);
	--povo-f46: clamp(2.052rem, 1.7377rem + 1.5714vw, 3.1378rem);
	--povo-00b: clamp(2.4624rem, 2.0071rem + 2.2764vw, 4.0371rem);
	--povo-e19: clamp(2.9549rem, 2.3088rem + 3.2307vw, 5.1936rem);


	--space-3xs: clamp(0.25rem, 0.2318rem + 0.0909vw, 0.3125rem);
	--space-2xs: clamp(0.5rem, 0.4636rem + 0.1818vw, 0.625rem);
	--space-xs: clamp(0.75rem, 0.6955rem + 0.2727vw, 0.9375rem);
	--space-s: clamp(1rem, 0.9273rem + 0.3636vw, 1.25rem);
	--space-m: clamp(1.5rem, 1.3909rem + 0.5455vw, 1.875rem);
	--space-l: clamp(2rem, 1.8545rem + 0.7273vw, 2.5rem);
	--space-xl: clamp(3rem, 2.7818rem + 1.0909vw, 3.75rem);
	--space-2xl: clamp(4rem, 3.7091rem + 1.4545vw, 5rem);
	--space-3xl: clamp(6rem, 5.5636rem + 2.1818vw, 7.5rem);


	--line-height-tight: 1.12;
	--line-height-snug: 1.24;
	--line-height-editorial: 1.45;
	--line-height-prose: 1.68;


	--letter-spacing-tight: -0.02em;
	--letter-spacing-editorial: 0.015em;
	--letter-spacing-caps: 0.08em;
	--letter-spacing-wide: 0.14em;


	--measure-prose: 65ch;
	--measure-lede: 54ch;
	--measure-display: 24ch;
	--measure-container: 78rem;
	--measure-narrow: 56rem;


	--dock-height: 4.125rem;
	--header-desktop-height: 6.25rem;
	--header-condensed-height: 3.75rem;


	--ease-editorial: cubic-bezier(0.19, 1, 0.22, 1);
	--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--ease-in-out-smooth: cubic-bezier(0.65, 0, 0.35, 1);


	--duration-instant: 120ms;
	--duration-fast: 180ms;
	--duration-medium: 280ms;
	--duration-slow: 460ms;


	--radius-sharp: 0px;
	--radius-subtle: 2px;
	--radius-sm: 4px;
	--radius-pill: 9999px;


	--shadow-ledger: 0 1px 0 0 var(--hairline);
	--shadow-elevation-1: 0 4px 18px rgba(0, 0, 0, 0.45);
	--shadow-elevation-2: 0 12px 32px rgba(0, 0, 0, 0.65);


	--ledger-rule-line: 1px solid var(--hairline);
	--ledger-subtle-rule: 1px solid var(--line);
}


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


html {
	font-size: 100%;
	background-color: var(--ground);
	color: var(--ink);
	scroll-behavior: smooth;
	scroll-padding-block-start: calc(var(--header-condensed-height) + 1.5rem);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}


body {
	min-height: 100vh;
	min-height: 100dvh;
	font-family: var(--povo-d65);
	font-size: var(--povo-f51);
	font-weight: var(--font-weight-regular);
	line-height: var(--line-height-prose);
	color: var(--ink);
	background-color: var(--ground);
	padding-bottom: calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	position: relative;
}


@media (min-width: 960px) {
	body {
		padding-bottom: 0;
	}
}


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


svg.icon {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentColor;
	flex-shrink: 0;
}


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


button {

	cursor: pointer;
	background: none;
	border: 0;
}


a {
	color: inherit;
	text-decoration: none;
	transition: color var(--duration-fast) var(--ease-out-quad);
}


h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--povo-30a);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-tight);
	color: var(--ink);
	letter-spacing: var(--letter-spacing-editorial);
	text-wrap: balance;
}


h1 {
	font-size: var(--povo-00b);
	font-weight: var(--font-weight-display-bold);
	letter-spacing: var(--letter-spacing-tight);
	max-width: var(--measure-display);
}


h2 {
	font-size: var(--povo-1bf);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-snug);
	max-width: 32ch;
}


h3 {
	font-size: var(--povo-7e0);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-snug);
}


h4 {
	font-size: var(--povo-2b5);
	font-weight: var(--font-weight-semibold);
}


p {
	max-width: var(--measure-prose);
	margin-block-end: var(--space-s);
	color: var(--ink);
}


p:last-child {
	margin-block-end: 0;
}


.lede {
	font-size: var(--povo-2b5);
	line-height: var(--line-height-editorial);
	color: var(--ink-soft);
	max-width: var(--measure-lede);
}


strong,
b {
	font-weight: var(--font-weight-bold);
	color: var(--ink);
}


em,
i {
	font-style: italic;
}


small {
	font-size: var(--step--1);
	line-height: var(--line-height-editorial);
	color: var(--ink-soft);
}


ul,
ol {
	list-style-position: inside;
	margin-block-end: var(--space-m);
	max-width: var(--measure-prose);
}


li {
	margin-block-end: var(--space-2xs);
}


li::marker {

	color: var(--hairline);
}


blockquote {
	margin-block: var(--space-l);
	padding-inline-start: var(--space-m);
	border-inline-start: 2px solid var(--hairline);
	font-style: italic;
	font-size: var(--povo-2b5);
	line-height: var(--line-height-editorial);
	color: var(--ink);
	max-width: var(--measure-lede);
}


table {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
}


th,
td {
	padding: var(--space-xs) var(--space-s);
	border-bottom: 1px solid var(--line);
}


th {
	font-family: var(--povo-30a);
	font-size: var(--step--1);
	letter-spacing: var(--letter-spacing-caps);
	text-transform: uppercase;
	color: var(--hairline);
	font-weight: var(--font-weight-semibold);
}


td {
	font-size: var(--povo-f51);
	color: var(--ink-soft);
}


td.tabular,
.tabular-figure {
	font-family: var(--povo-b4d);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
	color: var(--ink);
}


code,
pre,
kbd,
samp {
	font-family: var(--povo-b4d);
	font-size: var(--step--1);
}


:focus-visible {
	outline: 2px solid var(--hairline);
	outline-offset: 3px;
}


.sr-only,
.visually-hidden {
	position: absolute;
	width: 1px;

	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}


.flow > * + * {
	margin-block-start: var(--space-m);
}


.flow-snug > * + * {
	margin-block-start: var(--space-xs);
}


.flow-loose > * + * {
	margin-block-start: var(--space-xl);
}


.layout-container {
	width: min(100% - (var(--space-m) * 2), var(--measure-container));
	margin-inline: auto;
}


.layout-narrow {
	width: min(100% - (var(--space-m) * 2), var(--measure-narrow));
	margin-inline: auto;
}


.layout-reading {
	width: min(100% - (var(--space-m) * 2), var(--measure-prose));
	margin-inline: auto;
}


.ledger-rule {
	height: 1px;
	background-color: var(--hairline);
	border: 0;
	margin-block: var(--space-xl);
	opacity: 0.65;
}


.subtle-rule {
	height: 1px;
	background-color: var(--line);
	border: 0;
	margin-block: var(--space-l);
}


.ledger-baseline-grid {
	background-image: linear-gradient(to bottom, transparent calc(100% - 1px), rgba(176, 141, 87, 0.08) 100%);
	background-size: 100% 1.75rem;
}


.hairline-frame {
	border: 1px solid var(--hairline);
	padding: var(--space-m);
	background-color: var(--surface);
}


.skip-link {
	position: fixed;
	top: var(--space-s);
	left: var(--space-s);
	z-index: 2000;
	padding: var(--space-xs) var(--space-m);
	background: var(--accent);
	color: var(--accent-ink);
	font-family: var(--povo-d65);
	font-weight: var(--font-weight-bold);
	font-size: var(--povo-f51);
	border: 1px solid var(--hairline);
	box-shadow: var(--shadow-elevation-2);
	transform: translateY(-160%);
	transition: transform var(--duration-fast) var(--ease-editorial);
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}


.skip-link:focus-visible {
	transform: translateY(0);
}


@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;
	}
}
