/* Noe — typography tokens
   ════════════════════════════════════════════════════════════════════
   Inter everywhere; JetBrains Mono for code / IDs / counts. Noe runs SMALL
   and DENSE — this is a productivity tool, not a marketing page. Body is
   13.5px, headings top out at 22px. Tight negative tracking (-0.005em body,
   -0.025em on the page H1) gives the Linear-grade crispness. Inter feature
   settings cv11/ss01/ss03 are on globally.
   ──────────────────────────────────────────────────────────────────── */
:root {
  /* ── Families ───────────────────────────────────────────────────── */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Helvetica, Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;

  /* ── Type scale (px — fixed, dense) ─────────────────────────────── */
  --fs-page-title: 22px;   /* h1 — board / task / triage page heading */
  --fs-h2:         17px;   /* section heads, modal titles */
  --fs-h3:         14px;   /* sub-heads */
  --fs-md:         14px;   /* markdown body */
  --fs-body:       13.5px; /* default UI body */
  --fs-body-sm:    13px;   /* cards, list rows */
  --fs-meta:       12px;   /* meta + helper */
  --fs-mini:       11px;   /* timestamps, counts, section labels */
  --fs-chip:       10.5px; /* chips, kbd, badges */

  /* ── Weights ────────────────────────────────────────────────────── */
  --fw-regular:  400; /* @kind other */
  --fw-medium:   500; /* @kind other */
  --fw-semibold: 600; /* @kind other */
  --fw-bold:     700; /* @kind other */

  /* ── Line heights ───────────────────────────────────────────────── */
  --lh-tight:  1.25; /* @kind other */  /* headings */
  --lh-snug:   1.4;  /* @kind other */  /* cards, list rows */
  --lh-body:   1.5;  /* @kind other */  /* body copy */
  --lh-relaxed:1.55; /* @kind other */  /* long-form summaries */

  /* ── Letter spacing ─────────────────────────────────────────────── */
  --tracking-tight: -0.025em;  /* page H1 */
  --tracking-h2:    -0.015em;
  --tracking-body:  -0.005em;  /* default */
  --tracking-label:  0.06em;   /* UPPERCASE section labels */

  /* Inter OpenType features used app-wide */
  --font-features: "cv11", "ss01", "ss03";
}

/* ── Base element styling ─────────────────────────────────────────── */
html, body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.42;
  letter-spacing: var(--tracking-body);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: var(--font-features);
}
code, pre, .mono {
  font-family: var(--font-mono);
  font-size: 12px;
}
::selection { background: var(--selection); }

/* ── Semantic type utilities ──────────────────────────────────────── */
.t-h1 {
  font-size: var(--fs-page-title); font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight); color: var(--text);
  line-height: var(--lh-tight); margin: 0;
}
.t-h2 {
  font-size: var(--fs-h2); font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-h2); color: var(--text); line-height: 1.3; margin: 0;
}
.t-h3 {
  font-size: var(--fs-h3); font-weight: var(--fw-semibold); color: var(--text); margin: 0;
}
.t-body { font-size: var(--fs-body-sm); color: var(--text-2); line-height: var(--lh-relaxed); }
.t-meta { font-size: var(--fs-meta); color: var(--muted); }
.t-mini { font-size: var(--fs-mini); color: var(--muted-2); }
.t-mono { font-family: var(--font-mono); font-size: 12px; color: var(--text-2); }

/* The signature uppercase section label above every block in Noe. */
.t-section-label {
  font-size: var(--fs-mini); font-weight: var(--fw-semibold);
  text-transform: uppercase; letter-spacing: var(--tracking-label);
  color: var(--muted-2);
}
