/*
 * NEXORA Typography — Cycle 008 / task-003
 * -------------------------------------------------------------------------
 * Applies the canonical NEXORA type system established by the landing page:
 *   - Orbitron       → display / brand / primary page titles
 *   - Space Grotesk  → body & UI (headings h2–h6, controls, prose)
 *   - JetBrains Mono  → technical/security data (ids, hashes, timestamps, code)
 *
 * Font files are loaded via the Google Fonts stylesheet linked in the layout
 * <head> (same source already shipped by apps/landpage-nexora). Every family
 * has a system fallback in its --nx-font-* token, so if the CDN is unreachable
 * the UI degrades to a readable system stack instead of breaking.
 */

html,
body {
  font-family: var(--nx-font-body);
  font-size: var(--nx-fs-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Primary display: brand wordmark, page hero title, explicit display class. */
.nx-display,
.brand-name,
.hero h1 {
  font-family: var(--nx-font-display);
  letter-spacing: 0.04em;
  font-weight: 700;
}

/* Section/page headings stay on Space Grotesk for density + legibility. */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--nx-font-body);
  color: var(--nx-text-strong);
  line-height: 1.25;
  font-weight: 600;
}

h1 {
  font-size: var(--nx-fs-h1);
  font-weight: 700;
  letter-spacing: 0.01em;
}
h2 {
  font-size: var(--nx-fs-h2);
}
h3 {
  font-size: var(--nx-fs-h3);
}

/* Eyebrow / nav-style labels: uppercase display accents. */
.eyebrow,
.nx-eyebrow {
  font-family: var(--nx-font-display);
  font-size: var(--nx-fs-label);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* Technical / security data — monospace. */
code,
pre,
kbd,
samp,
.nx-mono,
[data-mono],
.security-drift-ref,
.definition-list dd code {
  font-family: var(--nx-font-mono);
  font-variant-ligatures: none;
  font-feature-settings: "calt" 0;
}

pre,
code {
  font-size: 0.9em;
}
