/* ===========================================================================
   Amberline — typography standard
   ---------------------------------------------------------------------------
   The house type system for every Amberline product and surface.

   SOURCE OF TRUTH: the approved Arvia V2 User Guide
   (Sites/Amberline/Arvia/Guide/Arvia-V2-User-Guide.html). Every value below is
   lifted from that document's effective cascade — not invented, not rounded.
   Kelly's ruling 08/18/2026: those constructs are the Amberline default.

   Two families, two jobs:
     --brand-sans (Outfit)      display and reading copy. Light weights, tight
                                negative tracking at large sizes.
     --mono (JetBrains Mono)    the interface voice: page default, UI chips,
                                buttons, labels, captions, code.

   Sizes that scale use clamp() so a heading is fluid between phone and desktop
   without a media query. The negative tracking is not decorative — Outfit at
   300 weight opens up badly above ~40px without it.
   =========================================================================== */

:root {
  /* ---- palette (unchanged; listed so this file is self-contained) -------- */
  --bg:#08090A;
  --panel:#121316;
  --panel-2:#16171b;
  --line:#26272c;
  --line-soft:#1e1f24;
  --amber:#F6B618;
  --amber-dim:#b8880e;
  --ink:#F3F1EE;
  --ink-mid:#9a9aa2;
  --ink-dim:#6b6b73;

  /* ---- families --------------------------------------------------------- */
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,monospace;
  --brand-sans:"Outfit","Helvetica Neue",Arial,sans-serif;

  /* ---- display scale (Outfit) ------------------------------------------- */
  --t-display-size:clamp(58px,8vw,112px);
  --t-display-weight:300;
  --t-display-leading:.91;
  --t-display-tracking:-.055em;

  --t-h2-size:clamp(44px,5.2vw,76px);
  --t-h2-weight:300;
  --t-h2-leading:1.02;
  --t-h2-tracking:-.045em;

  --t-h3-size:24px;
  --t-h3-weight:400;
  --t-h3-leading:1.3;
  --t-h3-tracking:-.015em;

  --t-lede-size:clamp(20px,2vw,29px);
  --t-lede-weight:300;
  --t-lede-leading:1.45;

  /* ---- reading copy (Outfit) -------------------------------------------- */
  --t-body-size:18px;
  --t-body-leading:1.75;
  --t-list-size:17px;
  --t-list-leading:1.7;

  /* ---- interface voice (JetBrains Mono) --------------------------------- */
  --t-base-size:15px;          /* page default */
  --t-base-leading:1.85;
  --t-ui-size:12px;            /* inline UI references, chips */
  --t-btn-size:13.5px;
  --t-btn-weight:700;
  --t-caption-size:12px;
  --t-caption-tracking:.02em;
}

/* ---------------------------------------------------------------------------
   Base. The page default is the mono interface voice; reading copy opts in.
   --------------------------------------------------------------------------- */
body {
  font-family:var(--mono);
  font-size:var(--t-base-size);
  line-height:var(--t-base-leading);
}

/* ---------------------------------------------------------------------------
   Display. Apply to h1/h2/h3 directly, or use the utility classes where the
   element is not the right semantic level.
   --------------------------------------------------------------------------- */
h1, .t-display {
  font-family:var(--brand-sans);
  font-size:var(--t-display-size);
  font-weight:var(--t-display-weight);
  line-height:var(--t-display-leading);
  letter-spacing:var(--t-display-tracking);
}

h2, .t-h2 {
  font-family:var(--brand-sans);
  font-size:var(--t-h2-size);
  font-weight:var(--t-h2-weight);
  line-height:var(--t-h2-leading);
  letter-spacing:var(--t-h2-tracking);
}

h3, .t-h3 {
  font-family:var(--brand-sans);
  font-size:var(--t-h3-size);
  font-weight:var(--t-h3-weight);
  line-height:var(--t-h3-leading);
  letter-spacing:var(--t-h3-tracking);
}

.lede, .t-lede {
  font-family:var(--brand-sans);
  font-size:var(--t-lede-size);
  font-weight:var(--t-lede-weight);
  line-height:var(--t-lede-leading);
}

/* ---------------------------------------------------------------------------
   Reading copy. Scoped to prose containers so the mono interface voice stays
   the default everywhere else.
   --------------------------------------------------------------------------- */
.prose p, .t-body {
  font-family:var(--brand-sans);
  font-size:var(--t-body-size);
  line-height:var(--t-body-leading);
}

.prose li, .t-list {
  font-family:var(--brand-sans);
  font-size:var(--t-list-size);
  line-height:var(--t-list-leading);
}

/* ---------------------------------------------------------------------------
   Interface voice.
   --------------------------------------------------------------------------- */
.ui, code, kbd, samp {
  font-family:var(--mono);
  font-size:var(--t-ui-size);
}

.btn {
  font-family:var(--mono);
  font-size:var(--t-btn-size);
  font-weight:var(--t-btn-weight);
}

figcaption, .caption {
  font-family:var(--mono);
  font-size:var(--t-caption-size);
  letter-spacing:var(--t-caption-tracking);
}
