/* ============================================================
   ARIA Design System — Typography Tokens
   Typeface: Publica Sans (geometric modern, all weights)
   v1.0 · 2026
   ============================================================ */

/* ── Publica Sans — all weights ── */
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-Thin.otf') format('opentype');
  font-weight: 100; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-ExtraLight.otf') format('opentype');
  font-weight: 200; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-Light.otf') format('opentype');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-Regular.otf') format('opentype');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-Medium.otf') format('opentype');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-Bold.otf') format('opentype');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Publica Sans';
  src: url('../assets/fonts/PublicaSans-Black.otf') format('opentype');
  font-weight: 900; font-style: normal; font-display: swap;
}

:root {
  /* ── Font stack ── */
  --aria-font: 'Publica Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* ── Weight tokens ── */
  --aria-w-thin:        100; /* @kind other */
  --aria-w-extralight:  200; /* @kind other */
  --aria-w-light:       300; /* @kind other */
  --aria-w-regular:     400; /* @kind other */
  --aria-w-medium:      500; /* @kind other */
  --aria-w-bold:        700; /* @kind other */
  --aria-w-black:       900; /* @kind other */

  /* ── Fluid type scale ── */
  --aria-text-eyebrow:  0.75rem;    /* 12px · labels, eyebrows, kickers    */
  --aria-text-sm:       0.875rem;   /* 14px · captions, helper text        */
  --aria-text-body:     1rem;       /* 16px · base reading size            */
  --aria-text-lg:       1.25rem;    /* 20px · lead paragraphs              */
  --aria-text-h3:       1.75rem;    /* 28px · block headings               */
  --aria-text-h2:       2.5rem;     /* 40px · section titles               */
  --aria-text-h1:       3.5rem;     /* 56px · page headings                */
  --aria-text-display:  5rem;       /* 80px · display headlines            */
  --aria-text-cinema:   8.75rem;    /* 140px · hero numerals / brand stage */

  /* ── Letter-spacing ── */
  --aria-track-tight:  -0.035em; /* @kind other */
  --aria-track-snug:   -0.02em;  /* @kind other */
  --aria-track-normal: -0.01em;  /* @kind other */
  --aria-track-wide:    0.30em;  /* @kind other */
  --aria-track-wider:   0.40em;  /* @kind other */

  /* ── Line heights ── */
  --aria-leading-tight:  0.95; /* @kind other */
  --aria-leading-snug:   1.15; /* @kind other */
  --aria-leading-body:   1.60; /* @kind other */
}
