
:root {
	--ground:#4a1f22;
	--oxblood-deep:#381618;
	--oxblood-surface:#2f1214;
	--oxblood-card:#3f191c;
	--oxblood-border:#632c30;
	--oxblood-light:#5a262a;
	--cream:#fbf7ee;
	--cream-muted:#d6cebe;
	--cream-subtle:#a89f8f;
	--gold:#f3c954;
	--gold-hover:#fcd96d;
	--gold-active:#cfa426;
	--gold-subtle:rgba(212, 175, 55, 0.15);
	--gold-glow:rgba(212, 175, 55, 0.28);
	--ink:#fbf7ee;
	--rule:rgba(251, 247, 238, 0.16);
	--rule-strong:rgba(251, 247, 238, 0.28);
	--rule-subtle:rgba(251, 247, 238, 0.08);
	--error:#e65c5c;
	--error-bg:rgba(230, 92, 92, 0.12);
	--success:#48bb78;
	--success-bg:rgba(72, 187, 120, 0.12);
	--info:#d4af37;

	--falu-98e:'Cinzel', Georgia, 'Times New Roman', serif;
	--falu-ce8:'Mulish', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--falu-a12:'JetBrains Mono', 'SFMono-Regular', Menlo, Consolas, monospace;

	--font-size-3xs:clamp(0.6875rem, 0.66rem + 0.1vw, 0.75rem);
	--font-size-2xs:clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
	--font-size-xs:clamp(0.8125rem, 0.78rem + 0.2vw, 0.875rem);
	--font-size-sm:clamp(0.875rem, 0.84rem + 0.25vw, 0.9375rem);
	--font-size-base:clamp(1rem, 0.96rem + 0.3vw, 1.0625rem);
	--font-size-md:clamp(1.125rem, 1.06rem + 0.45vw, 1.25rem);
	--font-size-lg:clamp(1.25rem, 1.15rem + 0.7vw, 1.5rem);
	--font-size-xl:clamp(1.5rem, 1.35rem + 1vw, 1.875rem);
	--font-size-2xl:clamp(1.85rem, 1.6rem + 1.5vw, 2.5rem);
	--font-size-3xl:clamp(2.25rem, 1.9rem + 2.2vw, 3.5rem);
	--font-size-display:clamp(2.75rem, 2.2rem + 3.8vw, 5.25rem);

	--line-height-tight:1.15;
	--line-height-snug:1.3;
	--line-height-base:1.6;
	--line-height-relaxed:1.75;

	--letter-spacing-tight:-0.02em;
	--letter-spacing-normal:0;
	--letter-spacing-wide:0.05em;
	--letter-spacing-wider:0.1em;
	--letter-spacing-widest:0.18em;

	--space-3xs:0.25rem;
	--space-2xs:0.5rem;
	--space-xs:0.75rem;
	--space-sm:1rem;
	--space-md:1.5rem;
	--space-lg:2rem;
	--space-xl:3rem;
	--space-2xl:4.5rem;
	--space-3xl:6.5rem;
	--space-4xl:9rem;

	--gutter:clamp(0.75rem, 4vw, 3.5rem);
	--container-max:1280px;
	--container-wide:1440px;
	--container-narrow:860px;
	--container-reading:740px;

	--radius-xs:2px;
	--radius-sm:4px;
	--radius-md:6px;
	--radius-pill:9999px;

	--shadow-sm:0 2px 4px rgba(24, 7, 9, 0.4);
	--shadow-md:0 4px 12px rgba(24, 7, 9, 0.5);
	--shadow-lg:0 12px 28px rgba(24, 7, 9, 0.65);
	--shadow-gold:0 0 24px rgba(212, 175, 55, 0.2);

	--duration-instant:90ms;
	--duration-fast:160ms;
	--duration-base:240ms;
	--duration-slow:400ms;
	--duration-deliberate:700ms;

	--ease-standard:cubic-bezier(0.2, 0, 0, 1);
	--ease-out:cubic-bezier(0.16, 1, 0.3, 1);
	--ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);
	--ease-spring:cubic-bezier(0.34, 1.56, 0.64, 1);

	--z-below:-1;
	--z-base:1;
	--z-elevate:10;
	--z-header:100;
	--z-overlay:200;
	--z-banner:300;
	--z-chat:400;
	--z-modal:500;
	--z-top:1000;
}

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

html {
	-webkit-text-size-adjust:100%;
	scroll-behavior:smooth;
	color-scheme:dark;
}

body {
	min-height:100vh;
	background-color:var(--ground);
	color:var(--cream);
	font-family:var(--falu-ce8);
	font-size:var(--font-size-base);
	font-weight:400;
	line-height:var(--line-height-base);
	letter-spacing:var(--letter-spacing-normal);
	text-rendering:optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
	overflow-x:hidden;
}

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

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

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

ul,
ol {
	list-style:none;
}

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

hr {
	border:0;
	border-top:1px solid var(--rule);
	margin:var(--space-xl) 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family:var(--falu-98e);
	font-weight:700;
	line-height:var(--line-height-tight);
	color:var(--cream);
	letter-spacing:var(--letter-spacing-tight);
	text-wrap:balance;
}

h1 {
	font-size:var(--font-size-3xl);
	font-weight:800;
}

h2 {
	font-size:var(--font-size-2xl);
	font-weight:700;
}

h3 {
	font-size:var(--font-size-xl);
	font-weight:600;
}

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

h5 {
	font-size:var(--font-size-md);
	font-weight:600;
}

h6 {
	font-size:var(--font-size-sm);
	font-weight:600;
	letter-spacing:var(--letter-spacing-wider);
	text-transform:uppercase;
}

p {
	margin-bottom:var(--space-md);
	max-width:68ch;
	color:var(--cream);
}

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

p.lead,
.lead {
	font-size:var(--font-size-md);
	line-height:var(--line-height-snug);
	color:var(--cream);
	font-weight:300;
	max-width:64ch;
}

p.standfirst,
.standfirst {
	font-size:var(--font-size-base);
	line-height:var(--line-height-relaxed);
	color:var(--cream-muted);
	font-weight:400;
	margin-bottom:var(--space-lg);
	max-width:70ch;
}

strong,
b {
	font-weight:700;
	color:var(--cream);
}

em,
i {
	font-style:italic;
}

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

code,
kbd,
samp,
pre {
	font-family:var(--falu-a12);
	font-size:0.9em;
}

blockquote {
	border-left:2px solid var(--gold);
	padding-left:var(--space-md);
	margin:var(--space-lg) 0;
	font-style:italic;
	color:var(--cream-muted);
}

mark {
	background-color:var(--gold-subtle);
	color:var(--gold);
	padding:0.1em 0.35em;
	border-radius:var(--radius-xs);
}

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

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

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

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

.section {
	padding-block:clamp(3.5rem, 7vw, 7.5rem);
	position:relative;
}

.section-tight {
	padding-block:clamp(2rem, 4vw, 4rem);
	position:relative;
}

.section-hero {
	padding-top:clamp(4rem, 8vw, 8rem);
	padding-bottom:clamp(3rem, 6vw, 6rem);
	position:relative;

}

.grid {
	display:grid;
	gap:var(--space-lg);
}

.grid-2 {
	grid-template-columns:1fr;
}

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

.grid-3 {
	grid-template-columns:1fr;
}

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

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

.grid-4 {

	grid-template-columns:1fr;
}

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

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

.flex {
	display:flex;
	gap:var(--space-md);
}

.flex-col {

	flex-direction:column;
}

.flex-wrap {
	flex-wrap:wrap;
}

.items-center {
	align-items:center;
}

.items-start {
	align-items:flex-start;
}

.items-baseline {
	align-items:baseline;
}

.justify-between {
	justify-content:space-between;
}

.justify-center {
	justify-content:center;
}

.justify-end {
	justify-content:flex-end;
}

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

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

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

.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:fixed;
	top:var(--space-sm);
	left:var(--space-sm);
	padding:var(--space-xs) var(--space-md);
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background-color:var(--gold);
	color:#1a0809;
	font-family:var(--falu-a12);
	font-size:var(--font-size-sm);
	font-weight:600;
	text-decoration:none;
	border-radius:var(--radius-xs);
	z-index:var(--z-top);
	transform:translateY(-180%);
	transition:transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);
}

.skip-link:hover {
	background-color:var(--gold-hover);
}

.skip-link:active {
	background-color:var(--gold-active);
}

.skip-link:focus-visible {
	transform:translateY(0);
	outline:2px solid var(--cream);
	outline-offset:3px;
}

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

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

.text-muted {
	color:var(--cream-muted);
}

.text-subtle {
	color:var(--cream-subtle);
}

.text-mono {
	font-family:var(--falu-a12);
}

.font-display {
	font-family:var(--falu-98e);
}

.tracking-wide {
	letter-spacing:var(--letter-spacing-wide);
}

.tracking-widest {
	letter-spacing:var(--letter-spacing-widest);
	text-transform:uppercase;
}

.hairline {
	border:0;
	border-top:1px solid var(--rule);
	width:100%;
}

.hairline-strong {
	border:0;
	border-top:1px solid var(--rule-strong);
	width:100%;
}

.hairline-gold {
	border:0;
	border-top:1px solid var(--gold);
	width:100%;
}

[data-depth] {
	will-change:transform;
}

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

	[data-depth] {
		transform:none !important;
	}
}
