/* ============================================
   Typography — Fraunces (display) + Inter (body)
   Fluid scale with clamp().
   ============================================ */

body {
    font-family: var(--font-body);
    font-weight: var(--fw-regular);
    font-size: 1rem;
    line-height: var(--lh-relaxed);
    color: var(--c-text);
    background-color: var(--c-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: var(--fw-regular);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-tight);
    color: var(--c-text);
    margin: 0 0 var(--s-4);
    font-optical-sizing: auto;
}

h1 { font-size: clamp(2.5rem, 5vw + 1rem, 5rem); }
h2 { font-size: clamp(2rem, 3.5vw + 0.75rem, 3.5rem); }
h3 { font-size: clamp(1.5rem, 2vw + 0.5rem, 2.25rem); font-weight: var(--fw-medium); }
h4 { font-size: clamp(1.25rem, 1.2vw + 0.5rem, 1.5rem); font-weight: var(--fw-medium); }
h5 { font-size: 1.125rem; font-weight: var(--fw-semi); }
h6 { font-size: 1rem; font-weight: var(--fw-semi); text-transform: uppercase; letter-spacing: var(--ls-wide); }

p { margin: 0 0 var(--s-4); max-width: 70ch; }

a {
    color: var(--c-accent);
    text-decoration: none;
    transition: color var(--t-fast) var(--ease-out);
}
a:hover { color: var(--c-accent-dark); }

strong, b { font-weight: var(--fw-semi); }

small, .text-sm { font-size: 0.875rem; }
.text-xs { font-size: 0.75rem; letter-spacing: var(--ls-wide); }

/* Editorial hero display */
.gn-display {
    font-family: var(--font-display);
    font-size: clamp(3rem, 7vw + 1rem, 7rem);
    font-weight: var(--fw-regular);
    line-height: 0.95;
    letter-spacing: -0.03em;
    font-variation-settings: "opsz" 144;
}

/* Eyebrow / kicker */
.gn-eyebrow {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--ls-wide);
    color: var(--c-accent-dark);
    margin-bottom: var(--s-3);
    display: inline-block;
}

::selection {
    background: var(--c-accent);
    color: var(--c-base);
}
