@charset "UTF-8";

:root {
	--ground:#ede6e4;
	--surface:#dfd7d5;
	--surface-2:#cec5c2;
	--line:#aba2a0;
	--ink-soft:#514c4a;
	--ink:#2b2827;
	--accent:#a9605f;
	--accent-ink:#ffffff;

	--control-height:48px;

	--nofi-66e:"Playfair Display", "Playfair Display Fallback", Georgia, "Times New Roman", serif;
	--nofi-36d:"Spectral", "Spectral Fallback", "Book Antiqua", Palatino, serif;
	--nofi-2bf:"JetBrains Mono", "JetBrains Mono Fallback", Consolas, "Courier New", monospace;

	--font-size-xs:clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
	--font-size-sm:clamp(0.875rem, 0.84rem + 0.2vw, 0.9375rem);
	--font-size-base:clamp(1rem, 0.96rem + 0.25vw, 1.0625rem);
	--font-size-md:clamp(1.125rem, 1.05rem + 0.4vw, 1.25rem);
	--font-size-lg:clamp(1.3125rem, 1.2rem + 0.65vw, 1.5625rem);
	--font-size-xl:clamp(1.625rem, 1.45rem + 1vw, 2.0625rem);
	--font-size-2xl:clamp(2rem, 1.7rem + 1.6vw, 2.875rem);
	--font-size-3xl:clamp(2.35rem, 1.9rem + 2.4vw, 3.85rem);

	--line-height-tight:1.15;
	--line-height-heading:1.24;
	--line-height-snug:1.38;
	--line-height-body:1.62;

	--space-3xs:0.25rem;
	--space-2xs:0.5rem;
	--space-xs:0.75rem;
	--space-sm:1rem;
	--space-md:1.5rem;
	--space-lg:2.25rem;
	--space-xl:3.5rem;
	--space-2xl:5rem;
	--space-3xl:7.5rem;

	--radius-none:0;
	--radius-subtle:2px;

	--dock-height:64px;
	--header-height:72px;

	--container-max:1240px;
	--container-wide:1400px;
	--container-prose:65ch;

	--transition-fast:140ms cubic-bezier(0.2, 0, 0, 1);
	--transition-medium:220ms cubic-bezier(0.2, 0, 0, 1);
	--transition-slow:360ms cubic-bezier(0.2, 0, 0, 1);
	--ease-editorial:cubic-bezier(0.25, 1, 0.5, 1);

	--shadow-dock:0 -4px 18px rgba(43, 40, 39, 0.08);
	--shadow-plate:0 16px 36px -12px rgba(43, 40, 39, 0.12);
}

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

html {
	font-size:16px;
	background-color:var(--ground);
	color:var(--ink);
	text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
	scroll-behavior:smooth;
	scroll-padding-top:calc(var(--header-height) + 1rem);
}

body {
	min-height:100vh;
	background-color:var(--ground);
	color:var(--ink);
	font-family:var(--nofi-36d);
	font-size:var(--font-size-base);
	line-height:var(--line-height-body);
	font-weight:400;
	text-rendering:optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	padding-bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
	overflow-x:hidden;
}

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

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

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

button {
	cursor:pointer;
}

a {
	color:var(--ink);
	text-decoration:none;
}

h1, h2, h3, h4, h5, h6 {

	font-family:var(--nofi-66e);
	color:var(--ink);
	font-weight:600;
	line-height:var(--line-height-heading);
	text-wrap:balance;
	overflow-wrap:break-word;
	word-break:normal;
}

h1 {
	font-size:var(--font-size-3xl);
	line-height:var(--line-height-tight);
	letter-spacing:-0.02em;
}

h2 {
	font-size:var(--font-size-2xl);
	line-height:var(--line-height-tight);
	letter-spacing:-0.015em;
}

h3 {
	font-size:var(--font-size-xl);
	letter-spacing:-0.01em;
}

h4 {
	font-size:var(--font-size-lg);
}

p, li, dd {
	max-width:var(--container-prose);
	color:var(--ink);
}

p + p {
	margin-top:1.15em;
}

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

small {
	font-size:var(--font-size-xs);
}

code, kbd, samp, pre {
	font-family:var(--nofi-2bf);
	font-size:0.9em;
}

.mono-figure {
	font-family:var(--nofi-2bf);
	font-feature-settings:"tnum" 1, "zero" 1;
	font-variant-numeric:tabular-nums;
	letter-spacing:-0.01em;
}

.skip-link {
	position:absolute;
	top:-100px;
	left:var(--space-md);
	padding:0.75rem 1.25rem;
	background:var(--ink);
	color:var(--ground);
	font-family:var(--nofi-2bf);
	font-size:var(--font-size-xs);
	text-transform:uppercase;
	letter-spacing:0.08em;
	z-index:9999;
	border-radius:var(--radius-subtle);
	transition:top var(--transition-fast);
}

.skip-link:focus {
	top:var(--space-md);
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.container {
	width:100%;
	max-width:var(--container-max);
	margin-left:auto;
	margin-right:auto;
	padding-left:clamp(1rem, 3.5vw, 2.5rem);
	padding-right:clamp(1rem, 3.5vw, 2.5rem);
}

.container--wide {
	max-width:var(--container-wide);
}

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

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

.icon {

	width:1.25rem;
	height:1.25rem;
	fill:currentColor;
	flex-shrink:0;
	display:inline-block;
}

.signature-lockup {
	position:relative;
	display:inline-block;
	padding-bottom:0.35em;
	margin-bottom:var(--space-md);
}

.signature-lockup__sub {
	display:block;
	font-family:var(--nofi-2bf);
	font-size:var(--font-size-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:0.14em;
	margin-bottom:0.5rem;
}

.signature-lockup__main {
	font-family:var(--nofi-66e);
	font-size:var(--font-size-2xl);
	font-weight:600;
	line-height:1.1;
	color:var(--ink);
}

.signature-lockup__rule {
	position:absolute;
	left:0;
	bottom:0;
	width:100%;
	height:1px;
	background-color:var(--line);
}

.signature-lockup__rule::after {
	content:"";
	position:absolute;
	left:0;
	top:0;
	width:2.5rem;
	height:2px;
	background-color:var(--accent);
}

.visually-hidden {
	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;
}

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

/* Layout Primitives & Utilities */
.flow-sm > * + * {
	margin-top:var(--space-xs);
}

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

.text-soft {
	color:var(--ink-soft);

}

.text-accent {
	color:var(--accent);
}

.editorial-lede {
	font-family:var(--nofi-36d);
	font-size:var(--font-size-md);
	line-height:var(--line-height-snug);
	color:var(--ink-soft);
	max-width:58ch;
}

.grid-cols-2 {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-lg);
}

@media (min-width: 768px) {
	.grid-cols-2 {
		grid-template-columns:repeat(2, min-width: 0, 1fr);
	}
}

.grid-cols-3 {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-lg);
}

@media (min-width: 640px) {
	.grid-cols-3 {
		grid-template-columns:repeat(2, min-width: 0, 1fr);
	}
}

@media (min-width: 1024px) {
	.grid-cols-3 {
		grid-template-columns:repeat(3, min-width: 0, 1fr);
	}
}

.editorial-caption {
	font-family:var(--nofi-2bf);
	font-size:var(--font-size-xs);
	line-height:1.45;
	color:var(--ink-soft);
	letter-spacing:0.02em;
	margin-top:var(--space-xs);
}

.spec-list {
	display:grid;
	grid-template-columns:auto 1fr;
	gap:var(--space-xs) var(--space-md);
	font-size:var(--font-size-sm);
	border-top:1px solid var(--line);
	padding-top:var(--space-sm);
}

.spec-list dt {
	font-family:var(--nofi-2bf);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:0.05em;
	font-size:var(--font-size-xs);
}

.spec-list dd {
	font-family:var(--nofi-36d);
	color:var(--ink);
	margin:0;
}
