/* ============================================================
   BIMNovate · Typography
   Title-block metaphor borrowed from construction drawings.
   Display = DM Serif Display.  Body = Instrument Sans.  Data = JetBrains Mono.
   ============================================================ */

html {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-ink);
  background: var(--color-white);
}

body {
  font-size: var(--text-base);
  line-height: 1.65;
  text-wrap: pretty;
  font-feature-settings: 'kern', 'liga', 'calt';
}

/* === Display headings (DM Serif Display) ================== */

.display,
h1, h2 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-wrap: balance;
  color: var(--color-ink);
}

h1, .h1 { font-size: var(--text-hero); }
h2, .h2 { font-size: var(--text-2xl); line-height: 1.1; letter-spacing: -0.02em; }
h3, .h3 {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-lg);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

/* === Title-block utilities =============================== */

.subhead {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-lg);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.3;
}

.eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-ink-muted);
  line-height: 1.4;
}

.mono {
  font-family: var(--font-mono);
  font-feature-settings: 'tnum';
  font-variant-numeric: tabular-nums;
}

.caption {
  font-size: var(--text-sm);
  color: var(--color-ink-muted);
  line-height: 1.5;
}

.lead {
  font-size: var(--text-lg);
  line-height: 1.55;
  color: var(--color-ink-light);
  max-width: 52ch;
  text-wrap: pretty;
}

/* Body paragraphs — readable measure */
p { max-width: 60ch; }
p + p { margin-top: var(--space-md); }

/* Links — blueprint cyan, restrained */
a:not([class]) {
  color: var(--color-blueprint);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in srgb, var(--color-blueprint) 35%, transparent);
  transition: text-decoration-color var(--duration-fast) var(--ease-out);
}
a:not([class]):hover {
  text-decoration-color: var(--color-blueprint);
}

/* Inverted typography for dark sections */
.section--dark,
.section--dark h1,
.section--dark h2,
.section--dark h3 { color: var(--color-white); }
.section--dark .eyebrow,
.section--dark .caption,
.section--dark .lead { color: color-mix(in srgb, var(--color-white) 70%, transparent); }
.section--dark .mono { color: var(--color-white); }
