@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/fonts/IBMPlexSans.woff2') format('woff2');
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
}


:root {
  /* Colors */
  --color-canvas-white: #ffffff;
  --color-ink-black: #000000;
  --color-dim-gray: #6e6e6e;
  --color-whisper-gray: #c9c9c9;
  --color-storm-gray: #e5e7eb;
  --color-electric-blue: #004dff;
  --color-soft-violet: #E6C5F7;
  --color-pale-blue: #D9E4FF;

  /* Typography — Font Families */
  --font-main: 'IBM Plex Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-base: var(--font-main);
  --font-heading: var(--font-main);

  /* Typography — Scale */
  --text-caption: 10px;
  --text-small: 12px;
  --text-body: 14px;
  --leading-body: 1.3;
  --text-lead: 16px;
  --leading-lead: 1.3;
  --text-subheading: 24px;
  --text-heading: 38px;
  --text-title: 56px;
  --text-display: 68px;

  /* Typography — Weights */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;

  /* Spacing */
  --spacing-8: 8px;
  --spacing-16: 16px;
  --spacing-24: 24px;
  --spacing-32: 32px;
  --spacing-40: 40px;
  --spacing-48: 48px;
  --spacing-64: 64px;
  --spacing-96: 96px;

  /* Layout */
  --layout-max-width: 1200px;
  --layout-content-max: 720px;

  /* Border Radius */
  --radius: 6px;
  --radius-full: 80px;

  /* Shadows */
  --shadow: rgba(0, 0, 0, 0.16) 0px 2px 6px 0px;

  /* Header height (for scroll offset) */
  --header-height: 64px;

  /* Framing */
  --frame-line-color: var(--color-storm-gray);
  --frame-line-width: 1px;
}
