/* Dekodi type v2. Two working families.
   GEIST — the single voice. Display, body, and UI. A neutral grotesk with real
   optical correction at large sizes, so one family can carry a 7rem headline and
   a 12px label without a second face propping it up.
   BEBAS NEUE — measured outputs only. Stats, prices, indices, watermarks. It is a
   numeral face here, not a headline face.
   NEWSREADER is not a third working family: it is a restricted italic accent
   permitted on exactly one word per major statement, and nowhere else. Its optical
   sizing is the reason it replaced a static display serif: the same declaration
   holds at 1.6rem in a report and at 7.4rem in a hero. */
:root{
  --dk-font-head:'Geist','Inter',system-ui,sans-serif;
  --dk-font-body:'Geist','Inter',system-ui,sans-serif;
  --dk-font-display:'Bebas Neue',sans-serif;
  --dk-font-serif:'Newsreader',Georgia,serif;

  --dk-weight-body:400;
  --dk-weight-strong:500;
  --dk-weight-head:700;
  --dk-weight-display:800;
  --dk-weight-serif:500;

  /* tracking · heavy type takes less, small caps take more */
  --dk-track-display:-.045em;
  --dk-track-h2:-.035em;
  --dk-track-h3:-.025em;
  --dk-track-kicker:.16em;
  --dk-track-cap:.12em;
  --dk-track-badge:.22em;

  /* scale · display sizes are fluid so the range earns itself */
  --dk-size-hero:clamp(3.4rem,7.2vw,7.4rem);
  --dk-size-h2:clamp(3rem,6vw,6.4rem);
  --dk-size-h3:clamp(1.3rem,2vw,2rem);
  --dk-size-h4:1.6rem;
  --dk-size-lede:clamp(1rem,1.4vw,1.18rem);
  --dk-size-body:.94rem;
  --dk-size-small:.84rem;
  --dk-size-kicker:.68rem;
  --dk-size-cap:.72rem;
  --dk-size-stat:clamp(3.2rem,6vw,6.5rem);
  --dk-size-price:3.7rem;
  --dk-size-index:1.2rem;

  /* line-height by context */
  --dk-lh-display:.96; /* @kind other */
  --dk-lh-head:1.05; /* @kind other */
  --dk-lh-lede:1.7; /* @kind other */
  --dk-lh-body:1.65; /* @kind other */
  --dk-lh-cap:1.5; /* @kind other */

  --dk-measure:64ch;

  /* legacy aliases */
  --dk-track-h1:var(--dk-track-display);
  --dk-track-label:var(--dk-track-kicker);
  --dk-size-h1:var(--dk-size-hero);
  --dk-size-label:11px;
  --dk-weight-head-legacy:700;

  /* semantic */
  --font-display:var(--dk-font-display);
  --font-heading:var(--dk-font-head);
  --font-body:var(--dk-font-body);
  --font-accent:var(--dk-font-serif);
}
