@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300..900;1,300..900&display=swap');

:root {
  /* --- Typography Family --- */
  --font-montserrat: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* --- Color Tokens (Pro-Grade Slate/Black) --- */
  --text-primary: #0f172a;      /* Extremely dark slate (richer than pure black) */
  --text-secondary: #334155;    /* Subtitle & body text */
  --text-tertiary: #64748b;     /* Captions & secondary info */
  --text-disabled: #94a3b8;     /* Disabled state */
  --text-inverse: #ffffff;      /* Contrast text */

  /* --- Font Weights --- */
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;

  /* --- Strict Standard Type Scale (Font Size / Line Height / Tracking) --- */
  /* Text XS: 12px / 18px */
  --fs-xs: 0.75rem;
  --lh-xs: 1.125rem;
  --ls-xs: 0em;

  /* Text SM: 14px / 20px */
  --fs-sm: 0.875rem;
  --lh-sm: 1.25rem;
  --ls-sm: -0.006em;

  /* Text Base: 16px / 24px */
  --fs-base: 1rem;
  --lh-base: 1.5rem;
  --ls-base: -0.011em;

  /* Text LG: 18px / 28px */
  --fs-lg: 1.125rem;
  --lh-lg: 1.75rem;
  --ls-lg: -0.014em;

  /* Text XL: 20px / 30px */
  --fs-xl: 1.25rem;
  --lh-xl: 1.875rem;
  --ls-xl: -0.017em;

  /* Display SM: 24px / 32px */
  --fs-display-sm: 1.5rem;
  --lh-display-sm: 2rem;
  --ls-display-sm: -0.02em;

  /* Display MD: 30px / 38px */
  --fs-display-md: 1.875rem;
  --lh-display-md: 2.375rem;
  --ls-display-md: -0.022em;

  /* Display LG: 36px / 44px */
  --fs-display-lg: 2.25rem;
  --lh-display-lg: 2.75rem;
  --ls-display-lg: -0.025em;

  /* Display XL: 48px / 60px */
  --fs-display-xl: 3rem;
  --lh-display-xl: 3.75rem;
  --ls-display-xl: -0.03em;

  /* Display 2XL: 60px / 72px */
  --fs-display-2xl: 3.75rem;
  --lh-display-2xl: 4.5rem;
  --ls-display-2xl: -0.035em;
}

/* Base Body Setup */
body {
  font-family: var(--font-montserrat);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-base);
  color: var(--text-secondary);
  background-color: #ffffff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}