

:root {
	--ground:#DED2BC;
	--surface:#D1C3AA;
	--surface-2:#C1B296;
	--line:#9E9074;
	--ink-soft:#564C39;
	--ink:#2B261C;
	--accent:#A65E2E;
	--accent-ink:#FFF;


	--accent-hover:#8C4D24;
	--accent-active:#733E1B;
	--ink-tint-06:rgba(43, 38, 28, 0.06);
	--ink-tint-12:rgba(43, 38, 28, 0.12);
	--ground-glass:rgba(222, 210, 188, 0.94);
	--surface-glass:rgba(209, 195, 170, 0.96);


	--wesa-1f7:'Cinzel', 'Cinzel Fallback', Georgia, 'Times New Roman', serif;
	--wesa-d56:'Literata', 'Literata Fallback', Georgia, 'Times New Roman', serif;
	--wesa-304:'JetBrains Mono', 'JetBrains Mono Fallback', ui-monospace, 'SFMono-Regular', Menlo, monospace;


	--text-display:clamp(1.75rem, 3.8vw + 0.7rem, 4.1rem);
	--text-h2:clamp(1.35rem, 2.2vw + 0.65rem, 2.45rem);
	--text-h3:clamp(1.125rem, 1.1vw + 0.72rem, 1.55rem);
	--text-h4:clamp(1rem, 0.6vw + 0.8rem, 1.2rem);
	--text-lede:clamp(1.0625rem, 0.55vw + 0.92rem, 1.32rem);
	--text-body:clamp(1rem, 0.2vw + 0.95rem, 1.125rem);
	--text-sm:0.875rem;
	--text-xs:0.75rem;
	--text-micro:0.6875rem;


	--space-1:0.25rem;
	--space-2:0.5rem;
	--space-3:0.75rem;
	--space-4:1rem;
	--space-5:1.5rem;
	--space-6:2rem;
	--space-7:3rem;
	--space-8:4.5rem;
	--space-9:6.5rem;


	--gutter:clamp(1rem, 3.2vw, 3rem);
	--container-max:86rem;

	--measure:65ch;
	--radius:0px;


	--dock-h:64px;
	--strip-h:44px;
	--tap-min:44px;
	--control-h:48px;


	--dur-fast:140ms;
	--dur-med:260ms;
	--dur-slow:540ms;

	--ease-snap:cubic-bezier(0.2, 0.8, 0.2, 1);
	--ease-mech:cubic-bezier(0.22, 1, 0.36, 1);


	--shadow-mech:0 2px 0 var(--ink);
	--shadow-float:0 12px 28px rgba(43, 38, 28, 0.16);
}


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


html {
	background-color:var(--ground);
	color:var(--ink);
	font-size:100%;
	scroll-behavior:smooth;
	-webkit-text-size-adjust:100%;
}


@media (min-width: 60rem) {
	html { scroll-padding-block-start:calc(var(--strip-h) + 1.25rem); }
}


body {
	margin:0;
	min-height:100dvh;
	background-color:var(--ground);
	color:var(--ink);
	font-family:var(--wesa-d56);
	font-size:var(--text-body);
	font-weight:400;
	line-height:1.62;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	overflow-x:clip;
}


@media (max-width: 59.99rem) {
	body { padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom, 0px)); }
}


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


button { cursor:pointer; }


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


img { height:auto; }


svg.icon {
	display:inline-block;
	width:1.25rem;
	height:1.25rem;
	vertical-align:middle;
	flex-shrink:0;
}


[hidden] { display:none !important; }


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


h1,
h2,
h3,
h4 {
	margin:0;
	font-family:var(--wesa-1f7);
	font-weight:700;
	color:var(--ink);
	line-height:1.12;
	letter-spacing:0.02em;
	overflow-wrap:normal;
	word-break:normal;
	hyphens:none;
}


h1 {
	font-size:var(--text-display);
	font-weight:800;
	line-height:1.06;
	letter-spacing:0.015em;
}


h2 {
	font-size:var(--text-h2);
	line-height:1.14;
}


h3 {
	font-size:var(--text-h3);
	line-height:1.2;
}


h4 {
	font-size:var(--text-h4);
	line-height:1.25;
}


p {
	margin:0;
	max-width:var(--measure);
}


p + p { margin-top:var(--space-4); }


.lede {
	font-size:var(--text-lede);
	line-height:1.5;
	color:var(--ink);
	max-width:52ch;
}


.muted { color:var(--ink-soft); }


.mono {
	font-family:var(--wesa-304);
	font-variant-numeric:tabular-nums;
}


.tnum { font-variant-numeric:tabular-nums; }


ul,
ol {
	margin:0;
	padding-inline-start:1.25rem;
	max-width:var(--measure);
}


li + li { margin-top:var(--space-2); }


a {
	color:var(--ink);
	text-decoration-color:var(--line);
	text-decoration-thickness:1px;
	text-underline-offset:0.22em;
	transition:color var(--dur-fast) var(--ease-snap), text-decoration-color var(--dur-fast) var(--ease-snap);
}


a:hover {
	color:var(--accent);
	text-decoration-color:var(--accent);
}


a:active { color:var(--accent-active); }


blockquote {
	margin:0;
	padding:var(--space-4) var(--space-5);
	border-left:3px solid var(--ink);
	background-color:var(--surface);
	font-style:italic;
	max-width:var(--measure);
}


hr {
	border:0;
	border-top:1px solid var(--line);

	margin:var(--space-6) 0;
}


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


.skip-link {
	position:absolute;
	top:-120px;
	left:var(--gutter);
	z-index:200;
	display:inline-flex;
	align-items:center;
	min-height:var(--tap-min);
	padding:0.65rem 1.15rem;
	background-color:var(--ink);
	color:var(--ground);
	font-family:var(--wesa-304);
	font-size:var(--text-xs);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:0.08em;
	text-decoration:none;
	border:1px solid var(--ground);
}


.skip-link:focus { top:0.75rem; }


.wrap {
	width:100%;
	max-width:var(--container-max);
	margin-inline:auto;
	padding-inline:var(--gutter);
}


.band {
	padding-block:clamp(2.75rem, 5.5vw, 5rem);
	border-top:1px solid var(--line);
}


.band-surface { background-color:var(--surface); }


.band-flush { padding-block:0; }


.grid-split {
	display:grid;
	grid-template-columns:minmax(0, 1fr);
	gap:var(--space-5) var(--space-7);
	align-items:start;
}


.grid-split > * { min-width:0; }


@media (min-width: 60rem) {
	.grid-2-1 { grid-template-columns:minmax(0, 2fr) minmax(0, 1fr); }


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


.margin-flow {
	display:grid;
	grid-template-columns:minmax(0, 1fr);
	gap:var(--space-6);
}


.margin-pair {
	display:grid;
	grid-template-columns:minmax(0, 1fr);
	gap:var(--space-4) var(--space-7);
	align-items:start;
}


.margin-pair > * { min-width:0; }


.main-col { min-width:0; }


.margin-col {
	min-width:0;
	padding-inline-start:var(--space-4);
	border-left:2px solid var(--line);
	font-size:var(--text-sm);
	color:var(--ink-soft);
}


.margin-col--reverse-order { order:2; }


@media (min-width: 60rem) {
	.margin-pair--right { grid-template-columns:minmax(0, 2fr) minmax(0, 1fr); }


	.margin-pair--left { grid-template-columns:minmax(0, 1fr) minmax(0, 2fr); }


	.margin-col {
		padding-inline-start:0;
		border-left:0;
		padding-top:var(--space-1);
		border-top:1px solid var(--line);
	}


	.margin-col--reverse-order { order:0; }
}


.full-span {
	grid-column:1 / -1;
	min-width:0;
}


.stack-xs > * + * { margin-top:var(--space-2); }


.stack-sm > * + * { margin-top:var(--space-3); }


.stack-md > * + * { margin-top:var(--space-5); }


.stack-lg > * + * { margin-top:var(--space-7); }


.cluster {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-3);
	align-items:center;
}


.cluster > * { min-width:0; }


.prose > * + * { margin-top:var(--space-4); }


.prose h2,
.prose h3 { margin-top:var(--space-6); }


.prose ul,
.prose ol { margin-top:var(--space-4); }


.coord-line {
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:var(--space-2) var(--space-4);
	padding-block:var(--space-2);
	border-bottom:1px solid var(--line);
	font-family:var(--wesa-304);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:0.06em;
}


.coord-line strong {
	color:var(--ink);
	font-weight:700;
}


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


	*,
	*::before,
	*::after {
		animation-duration:0.01ms !important;
		animation-iteration-count:1 !important;
		transition-duration:0.01ms !important;
	}
}
