/* Foundation: local fonts, colour, spacing, accessible defaults. */
@font-face {
	font-family: "Cormorant Garamond"; src: url("../fonts/cormorant-regular.woff2") format("woff2");
	font-style: normal; font-weight: 400; font-display: swap;
}
@font-face {
	font-family: "Cormorant Garamond"; src: url("../fonts/cormorant-italic.woff2") format("woff2");
	font-style: italic; font-weight: 400; font-display: swap;
}
@font-face {
	font-family: Inter; src: url("../fonts/inter-latin.woff2") format("woff2");
	font-style: normal; font-weight: 100 900; font-display: swap;
}
:root {
	--color-background: #11120f;
	--color-surface: #1a1b17;
	--color-surface-raised: #23241f;
	--color-text: #f1eee5;
	--color-text-muted: #b5b5a8;
	--color-accent: #c6ac76;
	--color-border: #ffffff26;
	--font-primary: Inter, Arial, sans-serif;
	--font-secondary: "Cormorant Garamond", Georgia, serif;
	--container-wide: 1360px;
	--container-width: 1120px;
	--gutter: clamp(22px, 4.5vw, 80px);
	--space-xs: .5rem;
	--space-sm: 1rem;
	--space-md: 1.5rem;
	--space-lg: 2.5rem;
	--space-xl: 4rem;
	--space-2xl: clamp(5rem, 9vw, 9rem);
	--radius-sm: 2px;
	--radius-md: 6px;
	--ease: cubic-bezier(.22, 1, .36, 1);
	--transition-fast: 180ms ease;
	--transition-default: 500ms var(--ease);
	--header-height: 96px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
body { margin: 0; background: var(--color-background); color: var(--color-text); font: 400 1rem/1.7 var(--font-primary); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
figure, blockquote { margin: 0; }
a { color: inherit; text-underline-offset: .25em; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: default; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 6px; }
::selection { background: var(--color-accent); color: var(--color-background); }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--font-secondary); font-weight: 400; }
h1, h2 { line-height: .95; letter-spacing: -.045em; }
h2 { font-size: clamp(3rem, 5vw, 5.15rem); }
h2 em { display: block; color: var(--color-accent); font-weight: 400; }
h3 { font-size: clamp(1.9rem, 2.5vw, 2.7rem); line-height: 1.05; letter-spacing: -.025em; }
p + p { margin-top: var(--space-md); }
.wide { width: min(calc(100% - var(--gutter) * 2), var(--container-wide)); margin-inline: auto; }
.container { width: min(calc(100% - var(--gutter) * 2), var(--container-width)); margin-inline: auto; }
.section { padding-block: var(--space-2xl); }
.eyebrow { font-size: .75rem; line-height: 1.5; letter-spacing: .15em; font-weight: 500; text-transform: uppercase; color: var(--color-accent); }
.lead { font-size: 1.0625rem; line-height: 1.8; }
.muted { color: var(--color-text-muted); }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 200; transform: translateY(-200%); background: var(--color-accent); color: #111; padding: 12px; }
.skip-link:focus { transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 767px) {
	:root { --header-height: 76px; }
	h2 { font-size: clamp(2.5rem, 10vw, 4rem); }
	.lead { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}
