:root {
    --color-midnight: #19222D;
    --color-pine: #1C2E24;
    --color-graphite: #2E3033;
    --color-gold: #C5A880;
    --color-champagne: #D4B996;
    --color-bronze: #C5A059;
    --color-cotton: #EAE6E1;
    --color-cashmere: #F5F5F3;
    --color-mist: #EBEBE8;

    --bg-hero: var(--color-midnight);
    --bg-page: var(--color-cashmere);
    --bg-elevated: var(--color-mist);
    --bg-forest: var(--color-pine);

    --fg-on-dark: var(--color-cotton);
    --fg-on-light: var(--color-graphite);
    --fg-muted-on-dark: rgba(234, 230, 225, 0.72);
    --fg-muted-on-light: rgba(46, 48, 51, 0.68);

    --accent: var(--color-gold);
    --accent-soft: var(--color-champagne);
    --line-on-light: rgba(46, 48, 51, 0.12);

    --font-display: "Cormorant Garamond", serif;
    --font-ui: "Manrope", sans-serif;
    --font-body: "Roboto", sans-serif;

    --type-brand: clamp(2.4rem, 8vw, 3.75rem);
    --type-tagline: clamp(0.95rem, 2.5vw, 1.15rem);
    --type-h2: clamp(1.5rem, 3.5vw, 2rem);
    --type-lead: clamp(1.2rem, 2.5vw, 1.5rem);
    --type-body: 1rem;
    --type-label: 0.8rem;
    --type-small: 0.875rem;

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --space-8: 4.5rem;

    --radius-control: 2px;
    --dur-presence: 1.1s;
    --dur-ui: 200ms;
    --ease-presence: ease;
}

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

html, body {
    min-height: 100%;
}

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

a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--color-gold);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
