/* ============================================================
   xmesh DS · md3/_type.css — Material Design 3 typescale.

   15 roles × 5 sub-tokens (font/size/line-height/tracking/weight).
   Family overrides per the plan:
     display-*, headline-*  → Source Serif 4 (xmesh display family)
     body-*, label-*, title-* → Inter (xmesh UI family)
     mono is NOT an MD3 concept — see _xmesh-extensions.css.

   Sizes diverge from the MD3 spec where xmesh chat density requires
   a tighter scale (body 15 instead of 16, button/label-large 15
   instead of 14, headline-medium 22 instead of 28). Document any
   future change against this comment block.
   ============================================================ */

:root {
  /* Display (serif) */
  --md-sys-typescale-display-large-font:        var(--t-family-display);
  --md-sys-typescale-display-large-size:        57px;
  --md-sys-typescale-display-large-line-height: 64px;
  --md-sys-typescale-display-large-tracking:    -0.02em;
  --md-sys-typescale-display-large-weight:      400;

  --md-sys-typescale-display-medium-font:        var(--t-family-display);
  --md-sys-typescale-display-medium-size:        45px;
  --md-sys-typescale-display-medium-line-height: 52px;
  --md-sys-typescale-display-medium-tracking:    -0.02em;
  --md-sys-typescale-display-medium-weight:      400;

  --md-sys-typescale-display-small-font:        var(--t-family-display);
  --md-sys-typescale-display-small-size:        36px; /* xmesh display H1 — was 34, snapped to spec */
  --md-sys-typescale-display-small-line-height: 44px;
  --md-sys-typescale-display-small-tracking:    -0.02em;
  --md-sys-typescale-display-small-weight:      400;

  /* Headline (serif in xmesh; MD3 default is sans) */
  --md-sys-typescale-headline-large-font:        var(--t-family-display);
  --md-sys-typescale-headline-large-size:        32px;
  --md-sys-typescale-headline-large-line-height: 40px;
  --md-sys-typescale-headline-large-tracking:    -0.02em;
  --md-sys-typescale-headline-large-weight:      400;

  --md-sys-typescale-headline-medium-font:        var(--t-family-display);
  --md-sys-typescale-headline-medium-size:        22px; /* xmesh override of MD3 28 — preserves chat density */
  --md-sys-typescale-headline-medium-line-height: 32px;
  --md-sys-typescale-headline-medium-tracking:    -0.01em;
  --md-sys-typescale-headline-medium-weight:      400;

  --md-sys-typescale-headline-small-font:        var(--t-family-display);
  --md-sys-typescale-headline-small-size:        18px; /* xmesh override of MD3 24 */
  --md-sys-typescale-headline-small-line-height: 26px;
  --md-sys-typescale-headline-small-tracking:    -0.01em;
  --md-sys-typescale-headline-small-weight:      400;

  /* Title (sans, Inter) */
  --md-sys-typescale-title-large-font:        var(--t-family-display); /* serif — xmesh H4 */
  --md-sys-typescale-title-large-size:        18px;
  --md-sys-typescale-title-large-line-height: 24px;
  --md-sys-typescale-title-large-tracking:    -0.01em;
  --md-sys-typescale-title-large-weight:      400;

  --md-sys-typescale-title-medium-font:        var(--t-family-ui);
  --md-sys-typescale-title-medium-size:        15px;
  --md-sys-typescale-title-medium-line-height: 22px;
  --md-sys-typescale-title-medium-tracking:    0;
  --md-sys-typescale-title-medium-weight:      500;

  --md-sys-typescale-title-small-font:        var(--t-family-ui);
  --md-sys-typescale-title-small-size:        14px;
  --md-sys-typescale-title-small-line-height: 20px;
  --md-sys-typescale-title-small-tracking:    0;
  --md-sys-typescale-title-small-weight:      500;

  /* Body (sans) — xmesh body baseline is 15px (MD3 spec is 16) */
  --md-sys-typescale-body-large-font:        var(--t-family-ui);
  --md-sys-typescale-body-large-size:        15px; /* xmesh override of MD3 16 */
  --md-sys-typescale-body-large-line-height: 22px;
  --md-sys-typescale-body-large-tracking:    0;
  --md-sys-typescale-body-large-weight:      400;

  --md-sys-typescale-body-medium-font:        var(--t-family-ui);
  --md-sys-typescale-body-medium-size:        13px; /* xmesh row size */
  --md-sys-typescale-body-medium-line-height: 20px;
  --md-sys-typescale-body-medium-tracking:    0;
  --md-sys-typescale-body-medium-weight:      400;

  --md-sys-typescale-body-small-font:        var(--t-family-ui);
  --md-sys-typescale-body-small-size:        12px;
  --md-sys-typescale-body-small-line-height: 16px;
  --md-sys-typescale-body-small-tracking:    0;
  --md-sys-typescale-body-small-weight:      400;

  /* Label (sans) */
  --md-sys-typescale-label-large-font:        var(--t-family-ui);
  --md-sys-typescale-label-large-size:        15px; /* xmesh button text — override of MD3 14 */
  --md-sys-typescale-label-large-line-height: 1;
  --md-sys-typescale-label-large-tracking:    0;
  --md-sys-typescale-label-large-weight:      600;

  --md-sys-typescale-label-medium-font:        var(--t-family-ui);
  --md-sys-typescale-label-medium-size:        12px;
  --md-sys-typescale-label-medium-line-height: 16px;
  --md-sys-typescale-label-medium-tracking:    0;
  --md-sys-typescale-label-medium-weight:      500;

  --md-sys-typescale-label-small-font:        var(--t-family-ui);
  --md-sys-typescale-label-small-size:        11px; /* xmesh eyebrow */
  --md-sys-typescale-label-small-line-height: 16px;
  --md-sys-typescale-label-small-tracking:    0;
  --md-sys-typescale-label-small-weight:      500;
}
