/* SHIPIFY tokens — the single source of truth. Consume, never fork. */
:root {
  /* color — print-shop material honesty */
  --bg: #FAF7F2;            /* paper */
  --surface: #F0E6D6;       /* manila */
  --kraft: #D9C4A5;         /* cardboard */
  --ink: #181410;
  --ink-muted: #5C5348;
  --accent: #CE3226;        /* fragile-sticker red — AA with white text */
  --accent-bright: #E5372B; /* decorative only, never under small text */
  --accent-ink: #FFFFFF;
  --line: #2B241D;          /* label rules/borders */

  /* type — Fredoka display / Nunito Sans body / IBM Plex Mono receipts */
  --font-display: 'Fredoka', 'Trebuchet MS', sans-serif;
  --font-body: 'Nunito Sans', 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', 'Consolas', monospace;
  --fs-xs: 10.2px; --fs-sm: 12.8px; --fs-base: 16px; --fs-lg: 20px;
  --fs-xl: 25px; --fs-2xl: 31.3px; --fs-3xl: 39.1px; --fs-4xl: 48.8px;

  /* spacing — 8px rhythm on a 4px base unit. Every step is a multiple of 4px and
     every step from --sp-100 up is a multiple of 8px; --sp-050 (4px) and
     --sp-150 (12px) are the half-steps, for optical trims inside a label. */
  --sp-050: 4px; --sp-100: 8px; --sp-150: 12px; --sp-200: 16px; --sp-300: 24px;
  --sp-400: 32px; --sp-600: 48px; --sp-800: 64px; --sp-1200: 96px;

  /* radius — varies by surface role (one-radius-everywhere is a slop tell) */
  --r-none: 0;      /* barcode strips, perforation edges */
  --r-sm: 4px;      /* inputs, chips */
  --r-md: 8px;      /* label cards */
  --r-lg: 16px;     /* buttons, big friendly surfaces */

  /* motion */
  --ease-stamp: cubic-bezier(.34, 1.56, .64, 1);   /* button press / Zip bounce */
  --ease-print: cubic-bezier(.22, .9, .36, 1);      /* thermal sweep reveals */
  --dur-quick: 160ms; --dur-print: 700ms;
}
