/* ============================================================
   Roky — Typography tokens
   Display: Civane Norm Light (300); emphasise ONE word per headline
            by bumping weight to Demi (~600) — same font, weight does
            the work, never colour, never a font-swap.
   Body/UI: Switzer 16–18px, generous leading.
   Technical labels / units / metrics / fig-numbers: JetBrains Mono,
            uppercase, slight tracking.
   No black/800 weights. Size + weight + surface contrast carry
   hierarchy. Never mix Civane and Switzer on the same headline line.
   ============================================================ */

:root {
  /* --- Families -------------------------------------------- */
  --font-display: 'Civane Norm', Georgia, 'Times New Roman', serif;
  --font-body:    'Switzer', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* --- Weights --------------------------------------------- */
  --fw-display:       300;  /* @kind font */ /* Civane Norm Light — default headline */
  --fw-display-emph:  600;  /* @kind font */ /* Civane Norm Demi — single emphasised word */
  --fw-light:         300;  /* @kind font */
  --fw-regular:       400;  /* @kind font */
  --fw-medium:        500;  /* @kind font */
  --fw-semibold:      600;  /* @kind font */

  /* --- Display scale (Civane Norm) ------------------------- */
  --display-1:   clamp(3.5rem, 7vw, 6.5rem);   /* @kind font */ /* hero */
  --display-2:   clamp(2.75rem, 5vw, 4.5rem);  /* @kind font */ /* section opener */
  --display-3:   clamp(2rem, 3.5vw, 3rem);     /* @kind font */ /* sub-section */
  --display-lh:  1.02;          /* @kind other */
  --display-tracking: -0.015em; /* @kind other */

  /* --- Body scale (Switzer) -------------------------------- */
  --text-xl:   1.5rem;    /* 24px — large lead copy */
  --text-lg:   1.25rem;   /* 20px */
  --text-md:   1.125rem;  /* 18px — default body */
  --text-base: 1rem;      /* 16px — UI default */
  --text-sm:   0.875rem;  /* 14px */
  --body-lh:   1.6;          /* @kind other */
  --body-lh-tight: 1.4;      /* @kind other */

  /* --- Technical / mono scale (JetBrains Mono) ------------- */
  --mono-md:   0.875rem;  /* 14px */
  --mono-sm:   0.75rem;   /* 12px */
  --mono-xs:   0.6875rem; /* 11px — fig numbers */
  --mono-tracking: 0.08em;      /* @kind other */
  --mono-tracking-wide: 0.14em; /* @kind other */
}

/* ------------------------------------------------------------
   Optional utility classes (consumers may use the tokens directly)
   ------------------------------------------------------------ */
.roky-display {
  font-family: var(--font-display);
  font-weight: var(--fw-display);
  line-height: var(--display-lh);
  letter-spacing: var(--display-tracking);
  color: var(--text-primary);
}
/* Emphasis: bump ONE word to Demi (600). Same font, real weight —
   never colour, never a font-swap. */
.roky-display em,
.roky-display .emph {
  font-style: normal;
  font-weight: var(--fw-display-emph);
}

.roky-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--mono-sm);
  font-weight: var(--fw-medium);
  letter-spacing: var(--mono-tracking-wide);
  text-transform: uppercase;
  color: var(--signal);
}

.roky-mono {
  font-family: var(--font-mono);
  font-size: var(--mono-sm);
  letter-spacing: var(--mono-tracking);
  text-transform: uppercase;
  color: var(--text-technical);
}

.roky-body {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--text-md);
  line-height: var(--body-lh);
  color: var(--text-secondary);
}
