/* Unvessel AI — design tokens.
   Monochrome by rule: ink on paper, nothing else. The intro plays the
   inverse (paper on ink), so both poles live here and nowhere else. */
:root {
  /* color */
  --ink: #111111;
  --ink-soft: #555555;
  --grey-mid: #b9b9b9;
  --paper: #ffffff;
  --hairline: #e4e4e4;

  /* the one non-monochrome note: seal-stamp red, used sparingly —
     the CJK phrase, one full stop, link hovers. Never for surfaces. */
  --accent: #b0402c;

  /* type */
  --font-sans: "Helvetica Neue", "Neue Haas Grotesk", Helvetica, Arial,
               system-ui, sans-serif;
  --font-mono: "SF Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --font-cjk-serif: "Songti SC", "Noto Serif SC", "Source Han Serif SC", serif;

  --text-xs: 0.75rem;     /* 12 — section markers, footer */
  --text-sm: 0.875rem;    /* 14 — nav, captions */
  --text-base: 1.0625rem; /* 17 — body */
  --text-md: 1.375rem;    /* 22 — leads, card titles */
  --text-lg: 2rem;        /* 32 — section headings */
  --text-xl: clamp(2.75rem, 7vw, 5.5rem); /* hero */

  --leading-tight: 1.08;
  --leading-snug: 1.3;
  --leading-body: 1.6;

  --tracking-wide: 0.14em; /* uppercase labels */
  --tracking-tight: -0.02em;

  /* space */
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.75rem;
  --space-4: 3rem;
  --space-5: 5rem;
  --space-6: clamp(6rem, 14vh, 10rem); /* between sections */

  --measure: 38rem;      /* max width for running text */
  --page-max: 72rem;
  --page-pad: clamp(1.25rem, 5vw, 4rem);

  /* the frame */
  --bracket-size: 1.5rem;
  --bracket-stroke: 2px;

  /* motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-fast: 180ms;
}
