:root {
    --paper: #faf8f2;
    --paper-rgb: 250,248,242;
    --white: #ffffff;
    --white-rgb: 255,255,255;
    --ink: #191a18;
    --ink-rgb: 25,26,24;
    --green: #1b2c25;
    --green-rgb: 27,44,37;
    --green-2: #243c33;
    --green-2-rgb: 36,60,51;
    --green-deep: #15231e;
    --green-deep-rgb: 21,35,30;
    --beige: #e7d6ba;
    --beige-rgb: 231,214,186;
    --beige-2: #f0e8da;
    --beige-2-rgb: 240,232,218;
    --wine: #4a1f28;
    --wine-rgb: 74,31,40;
    --wine-deep: #35141d;
    --wine-deep-rgb: 53,20,29;
    --taupe: #aaa48f;
    --taupe-rgb: 170,164,143;
    --surface: #f2eee5;
    --surface-rgb: 242,238,229;
    --shadow-base: #141f1b;
    --shadow-base-rgb: 20,31,27;
    --overlay: #0a1410;
    --overlay-rgb: 10,20,16;
    --line: rgba(var(--ink-rgb),.16);
    --serif: Georgia, 'Times New Roman', serif;
    --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --container: min(1240px, calc(100vw - 48px));
    --wide: min(1440px, calc(100vw - 32px));
    --reading: min(760px, calc(100vw - 40px));
    --ease: cubic-bezier(.22,1,.36,1);
    --shadow: 0 24px 70px rgba(var(--shadow-base-rgb),.12);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.6; text-rendering: optimizeLegibility; }
img { display: block; width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
svg { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
::selection { background: var(--green); color: var(--paper); }

.container { width: var(--container); margin-inline: auto; }
.container-wide { width: var(--wide); margin-inline: auto; }
.reading-column { width: var(--reading); margin-inline: auto; }
.section-pad { padding: clamp(72px, 9vw, 140px) 0; }
.compact-top { padding-top: clamp(28px, 4vw, 56px); }
.compact-bottom { padding-bottom: clamp(28px, 4vw, 56px); }
.site-main { min-height: 60vh; overflow: clip; }

h1, h2, h3, h4 { margin: 0; font-family: var(--serif); font-weight: 500; line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
h1 { font-size: clamp(3.6rem, 9vw, 8.8rem); }
h2 { font-size: clamp(2.5rem, 5vw, 5.4rem); }
h3 { font-size: clamp(1.7rem, 3vw, 3rem); }
p { margin: 0; }

.eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 24px; height: 1px; background: currentColor; opacity: .7; }
.hero-deck { max-width: 680px; font-family: var(--serif); font-size: clamp(1.28rem, 2.2vw, 2rem); line-height: 1.28; color: rgba(var(--ink-rgb),.8); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 0 22px; border: 1px solid transparent; border-radius: 999px; font-size: .82rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; transition: transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); }
.button svg { transition: transform .3s var(--ease); }
.button:hover { transform: translateY(-2px); }
.button:hover svg { transform: translateX(4px); }
.button-dark { background: var(--green); color: var(--paper); }
.button-dark:hover { background: var(--wine); }
.button-paper { background: var(--paper); color: var(--green); }
.button-paper:hover { background: var(--beige); }

.text-link { display: inline-flex; align-items: center; gap: 9px; border-bottom: 1px solid currentColor; padding-bottom: 4px; font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.text-link svg { transition: transform .3s var(--ease); }
.text-link:hover svg { transform: translateX(5px); }
.text-link.light { color: var(--paper); }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed !important; top: 12px; left: 12px; z-index: 99999; width: auto; height: auto; clip: auto; background: var(--paper); color: var(--green); padding: 12px 18px; border-radius: 999px; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .reveal { opacity: 1; transform: none; }
}
