:root {
  /* === Font Families === */
  --font-display: 'Geist';
  --font-body: 'Iosevka Aile';
  --font-mono: 'Iosevka';

  /* === Font Sizes === */
  --font-size-responsive: clamp(1rem, 2.5vw, 1.25rem);
  --typo-size-base: 16px;
  --typo-size-6xl: 4em;               /* 64px */
  --typo-size-5xl: 3.1875em;          /* 51px */
  --typo-size-4xl: 2.5em;             /* 40px */
  --typo-size-3xl: 2em;               /* 32px */
  --typo-size-2xl: 1.5625em;          /* 25px */
  --typo-size-xl: 1.25em;             /* 20px */
  --typo-size-lg: 1.125em;            /* 18px */
  --typo-size-md: 1em;                /* 16px */
  --typo-size-sm: 0.875em;            /* 14px */
  --typo-size-xs: 0.8125em;           /* 13px */
  --typo-size-2xs: 0.625em;           /* 10px */

  /* === Line Height === */
  --typo-leading-compressed: 1.0;     /* 1.0 - very tight */
  --typo-leading-tight: 1.125;        /* 1.125 - tight */
  --typo-leading-snug: 1.25;          /* 1.25 - snug */
  --typo-leading-cozy: 1.375;         /* 1.375 - cozy */
  --typo-leading-normal: 1.5;         /* 1.5 - normal */
  --typo-leading-relaxed: 1.625;      /* 1.625 - relaxed */
  --typo-leading-comfortable: 1.75;   /* 1.75 - comfortable */
  --typo-leading-loose: 1.875;        /* 1.875 - loose */
  --typo-leading-spacious: 2.0;       /* 2.0 - very loose */

  /* === Letter Spacing === */
  --typo-spacing-tightest: -0.05em;   /* -0.05em - very tight */
  --typo-spacing-tighter: -0.025em;   /* -0.025em - tight */
  --typo-spacing-tight: -0.0125em;    /* -0.0125em - slightly tight */
  --typo-spacing-normal: 0em;         /* 0 - normal */
  --typo-spacing-relaxed: 0.025em;    /* 0.025em - slightly loose */
  --typo-spacing-comfortable: 0.05em; /* 0.05em - comfortable */
  --typo-spacing-loose: 0.1em;        /* 0.1em - loose */
  --typo-spacing-looser: 0.15em;      /* 0.15em - very loose */
  --typo-spacing-loosest: 0.2em;      /* 0.2em - extremely loose */

  /* === Font Weight === */
  --typo-weight-thin: 100;
  --typo-weight-extralight: 200;
  --typo-weight-light: 300;
  --typo-weight-regular: 400;
  --typo-weight-medium: 500;
  --typo-weight-semibold: 600;
  --typo-weight-bold: 700;
  --typo-weight-extrabold: 800;
  --typo-weight-black: 900;

  /* === Vertical Spacing === */
  --vspace-compressed: 0.25;
  --vspace-tight: 0.5;
  --vspace-snug: 0.75;
  --vspace-cozy: 1;
  --vspace-normal: 1.25;
  --vspace-relaxed: 1.5;
  --vspace-comfortable: 1.75;
  --vspace-loose: 2;
  --vspace-spacious: 2.5;
}