/* GENERATED by scripts/build-tokens-css.mjs — do not edit.
 *
 * The TextQL brand tokens as custom properties, for every app on this domain:
 * the Svelte brand kit, /poster and /deck. Authored in landing-page-v2 at
 * src/lib/theme/brand.tokens.ts and mirrored here; run `pnpm tokens:check` to
 * prove the copy has not drifted. */

:root {

  /* color — One ink and one paper. Every de-emphasised tone is ink at a lower alpha,
   not a separate grey, so the whole domain carries one hue. */
  --ink: #333D36;
  --ink-strong: rgba(51, 61, 54, 0.72);
  --ink-muted: rgba(51, 61, 54, 0.55);
  --ink-soft: rgba(51, 61, 54, 0.42);
  --ink-faint: rgba(51, 61, 54, 0.38);
  --ink-ghost: rgba(51, 61, 54, 0.3);
  --hair: rgba(51, 61, 54, 0.13);
  --hair-flat: #DEE0DF;
  --wash: rgba(51, 61, 54, 0.075);
  --paper: #F8F8F8;
  --paper-veil: rgba(248, 248, 248, 0.86);
  --paper-scrim: rgba(248, 248, 248, 0.5);
  --paper-bar: rgba(248, 248, 248, 0.97);
  --surface: #FFFFFF;
  --shade: #E4E8E5;
  --accent: #047A55;
  --accent-soft: rgba(4, 122, 85, 0.45);
  --error: #CC4444;
  --on-art: rgba(255, 255, 255, 0.95);
  --on-ink: rgba(248, 248, 248, 0.92);
  --on-ink-muted: rgba(248, 248, 248, 0.5);
  --on-ink-faint: rgba(248, 248, 248, 0.32);
  --hair-on-ink: rgba(248, 248, 248, 0.16);

  /* font — Roobert (Displaay). The bundled builds are TRIAL — license before launch. */
  --font-sans: Roobert, system-ui, -apple-system, sans-serif;
  --font-mono: RoobertMono, ui-monospace, SFMono-Regular, monospace;

  /* text — Five text sizes. The mono register (12/11/10) is UI furniture, not text. */
  --text-micro: 10px;
  --text-label: 11px;
  --text-meta: 12px;
  --text-small: 14px;
  --text-body: 14px;
  --text-lead: 18px;
  --text-title: 24px;
  --text-h4: 24px;
  --text-h3: 24px;
  --text-h2: 36px;
  --text-h1: 36px;
  --text-hero: clamp(32px, 1.5vw + 28px, 88px);
  --text-display: clamp(32px, 1.5vw + 28px, 88px);
  --text-wordmark: clamp(40px, 10vw, 152px);

  /* weight — Regular is the brand weight. The other rungs are documented exceptions. */
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;

  /* tracking — -4% on titles 24px and up, -1% on body. */
  --tracking-tight: -0.04em;
  --tracking-snug: -0.04em;
  --tracking-prose: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.05em;
  --tracking-wider: 0.09em;
  --tracking-widest: 0.12em;

  /* leading */
  --leading-tight: 1.12;
  --leading-snug: 1.2;
  --leading-normal: 1.3;
  --leading-relaxed: 1.55;
  --leading-loose: 1.6;

  /* space — 4px ramp. */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;
  --space-4xl: 96px;
  --space-5xl: 128px;

  /* radius */
  --radius-sm: 3px;

  /* layout */
  --layout-max-width: 1600px;
  --layout-gutter: clamp(20px, 4vw, 60px);
  --layout-nav-height: 64px;
  --layout-rail-inset: 42px;
  --layout-band-top: clamp(56px, 6.1vw, 92px);
  --layout-band-bottom: clamp(60px, 6.6vw, 100px);

  /* motion — The house easing: fast out, long settle. */
  --motion-ease: cubic-bezier(0.23, 1, 0.32, 1);
  --motion-fast: 150ms;
  --motion-base: 220ms;
  --motion-slow: 320ms;
  --motion-lazy: 520ms;

  /* channels, for computed alphas */
  --ink-channels: 51, 61, 54;
  --paper-channels: 248, 248, 248;

  /* kit — NOT brand tokens. Values the tools need and the brand has no
     opinion on. Anything added here needs a reason on the line below it. */

  /* The imagery and video field, from the brand deck cover. Not `ink`:
     behind a photograph, ink reads as a green cast. */
  --matte: #101412;
}
