/* ============================================================================
   Rooted Stack — Typography
   Instrument Serif = voice (headlines, quotes, 400 only, tight leading)
   Archivo         = body & UI (400 read, 600 names/CTAs)
   IBM Plex Mono   = coordinates, codes, categories (uppercase, tracked)
   ============================================================================ */

/* Serif voice — never bold; weight is carried by size, not stroke. */
.rs-display, .rs-h1, .rs-h2, .rs-h3, .rs-quote {
    font-family: var(--rs-serif);
    font-weight: 400;
    color: var(--rs-text-strong);
    letter-spacing: -0.01em;
}
.rs-display { font-size: var(--rs-fs-display); line-height: var(--rs-lh-tight); }
.rs-h1 { font-size: var(--rs-fs-h1); line-height: var(--rs-lh-snug); }
.rs-h2 { font-size: var(--rs-fs-h2); line-height: var(--rs-lh-snug); }
.rs-h3 { font-size: var(--rs-fs-h3); line-height: var(--rs-lh-snug); }

/* Pull-quote — italic serif, first person, in the owner's own grammar. */
.rs-quote {
    font-size: var(--rs-fs-quote);
    line-height: var(--rs-lh-quote);
    font-style: italic;
}
.rs-quote cite,
.rs-quote-attr {
    display: block;
    margin-top: var(--rs-space-3);
    font-family: var(--rs-mono);
    font-style: normal;
    font-size: var(--rs-fs-xs);
    letter-spacing: var(--rs-track-caps);
    text-transform: uppercase;
    color: var(--rs-text-muted);
}

/* Body / lead */
.rs-lead { font-size: var(--rs-fs-lead); line-height: var(--rs-lh-body); color: var(--rs-text-body); }
.rs-body { font-size: var(--rs-fs-body); line-height: var(--rs-lh-body); color: var(--rs-text-body); }
.rs-sm { font-size: var(--rs-fs-sm); color: var(--rs-text-muted); }
.rs-meta { font-size: var(--rs-fs-xs); color: var(--rs-text-subtle); }
.rs-strong { font-weight: 600; color: var(--rs-text); }

/* Eyebrow / label caps — Archivo, tracked, uppercase (quiet, not ochre). */
.rs-eyebrow, .rs-label {
    font-family: var(--rs-sans);
    font-weight: 600;
    font-size: var(--rs-fs-xs);
    letter-spacing: var(--rs-track-caps);
    text-transform: uppercase;
    color: var(--rs-teal-400);
}

/* Coordinate / island code — mono, tracked. The map's fingerprint. */
.rs-coord {
    font-family: var(--rs-mono);
    font-size: var(--rs-fs-coord);
    letter-spacing: var(--rs-track-coord);
    text-transform: uppercase;
    color: var(--rs-text-muted);
    font-variant-numeric: tabular-nums;
}
.rs-coord--live { color: var(--rs-hibiscus); }

.rs-serif { font-family: var(--rs-serif); font-weight: 400; }
.rs-mono  { font-family: var(--rs-mono); }

/* Prose column defaults for owner stories / editorial */
.rs-prose { max-width: var(--rs-maxw-prose); color: var(--rs-text-body); }
.rs-prose > * + * { margin-top: var(--rs-space-4); }
.rs-prose h2 { font-family: var(--rs-serif); font-weight: 400; font-size: var(--rs-fs-h2); color: var(--rs-text-strong); margin-top: var(--rs-space-8); }
.rs-prose a { color: var(--rs-link); text-decoration: underline; text-underline-offset: 2px; }
