:root{
  --font-display:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-body:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:700; /* @kind font */
  --fw-black:800; /* @kind font */

  /* Type scale — display sizes are clamped for the marketing surfaces */
  --fs-display-1:clamp(2.75rem,6vw,4.5rem); /* @kind font *//* hero H1        */
  --fs-display-2:clamp(2rem,4vw,3.25rem); /* @kind font *//* section H2     */
  --fs-display-3:1.75rem; /* @kind font *//* sub-section    */
  --fs-title:1.25rem; /* @kind font *//* card title     */
  --fs-title-sm:1.0625rem; /* @kind font */
  --fs-body-lg:1.0625rem; /* @kind font */
  --fs-body:0.9375rem; /* @kind font */
  --fs-body-sm:0.875rem; /* @kind font */
  --fs-caption:0.8125rem; /* @kind font */
  --fs-micro:0.6875rem; /* @kind font *//* eyebrows, tags */

  --lh-tight:1.04; /* @kind font */
  --lh-snug:1.2; /* @kind font */
  --lh-normal:1.5; /* @kind font */
  --lh-relaxed:1.7; /* @kind font */

  --ls-display:-0.03em; /* @kind font */
  --ls-heading:-0.02em; /* @kind font */
  --ls-normal:0; /* @kind font */
  --ls-mono:0.02em; /* @kind font */
  --ls-eyebrow:0.16em; /* @kind font */
  --ls-caps:0.1em; /* @kind font */

  /* Semantic aliases */
  --type-eyebrow:var(--fw-medium) var(--fs-micro)/1.2 var(--font-mono);
  --type-hero:var(--fw-bold) var(--fs-display-1)/var(--lh-tight) var(--font-display);
  --type-section:var(--fw-bold) var(--fs-display-2)/var(--lh-snug) var(--font-display);
  --type-card-title:var(--fw-semibold) var(--fs-title)/var(--lh-snug) var(--font-display);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-relaxed) var(--font-body);
  --type-terminal:var(--fw-regular) var(--fs-body-sm)/1.9 var(--font-mono);
  --type-tag:var(--fw-medium) var(--fs-micro)/1 var(--font-mono);
}
