:root {
    --color-background: #faf8f5;
    --color-text: #1f1e1b;
    --color-text-secondary: #6b6862;
    --color-primary: #3d6b4f;
    --color-primary-dark: #2f5540;
    --color-white: #ffffff;
    --color-gray-200: #e7e4de;

    --max-width: 1400px;
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 1.5rem;
    --spacing-lg: 2rem;
    --spacing-xl: 3rem;
    --spacing-2xl: 5rem;
    --border-radius: 8px;
    --border-radius-sm: 4px;

    --font-body: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-display: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

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

html { scroll-behavior: smooth; height: 100%; }

body {
    font-family: var(--font-body);
    background: var(--color-background);
    color: var(--color-text);
    line-height: 1.6;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

body > *:not(.nav):not(.footer) { flex: 1 0 auto; }
.footer { flex-shrink: 0; }

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 6rem; }
.nav .container, .footer .container { max-width: none; }

h1, h2, h3 { font-family: var(--font-display); font-weight: 600; line-height: 1.2; text-wrap: balance; }

a { color: var(--color-primary); }
a:hover { color: var(--color-primary-dark); }

.nav {
    padding: var(--spacing-md) 0;
    background: var(--color-background);
    border-bottom: 1px solid var(--color-gray-200);
}

.nav-container { display: flex; align-items: center; }

.nav-wordmark {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--color-text);
    text-decoration: none;
}
.nav-wordmark:hover { color: var(--color-text); }

.hero { padding: var(--spacing-2xl) 0 var(--spacing-xl); }

.hero h1 {
    font-size: 2.75rem;
    max-width: 22ch;
}

.hero-subtitle {
    margin-top: var(--spacing-md);
    font-size: 1.25rem;
    color: var(--color-text-secondary);
    max-width: 58ch;
    text-wrap: balance;
}

.prose-section { padding: var(--spacing-lg) 0 var(--spacing-2xl); }

.prose { max-width: 42rem; }
.prose h2 { font-size: 1.375rem; margin-top: var(--spacing-xl); }
.prose h2:first-child { margin-top: 0; }
.prose p { margin-top: var(--spacing-sm); color: var(--color-text); }

.legal { padding: var(--spacing-xl) 0 var(--spacing-2xl); }
.legal-inner { max-width: 42rem; }
.legal h1 { font-size: 2rem; }
.legal-updated { margin-top: var(--spacing-xs); color: var(--color-text-secondary); font-size: 0.9375rem; }
.legal h2 { font-size: 1.25rem; margin-top: var(--spacing-lg); }
.legal p { margin-top: var(--spacing-sm); }
.legal-link { color: var(--color-primary); }

.footer {
    padding: var(--spacing-sm) 0;
    background: var(--color-background);
    border-top: 1px solid var(--color-gray-200);
}

.footer-container { display: flex; justify-content: space-between; align-items: center; }
.footer-copyright { font-size: 0.875rem; color: var(--color-text-secondary); margin: 0; }
.footer-links { display: flex; gap: var(--spacing-lg); }
.footer-links a { color: var(--color-text-secondary); font-size: 0.875rem; text-decoration: none; }
.footer-links a:hover { color: var(--color-text); }

@media (max-width: 768px) {
    .container { padding: 0 var(--spacing-md); }
    .hero h1 { font-size: 2rem; }
    .footer-container { flex-direction: column; text-align: center; gap: var(--spacing-sm); }
    .footer-links { justify-content: center; }
}
