/* ============================================================
   Gnomon Planning — Spacing, radii, shadow, texture tokens
   Spacing scale: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96
   Radius: 4 (inputs) · 10 (cards) · 0 (letterpress framing)
   ============================================================ */
:root {
  /* --- Spacing scale --- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;

  /* --- Radii --- */
  --radius-sm:   4px;   /* inputs, small controls */
  --radius-md:   10px;  /* cards */
  --radius-full: 999px; /* pills, avatars */
  --radius-press:0px;   /* pressed / letterpress framing */

  /* --- Borders --- */
  --border-width: 1px;
  --border-width-strong: 2px;

  /* --- Shadows — soft, warm, low; pressed paper, not floating glass --- */
  --shadow-xs: 0 1px 2px rgba(42, 35, 27, 0.06);
  --shadow-sm: 0 1px 3px rgba(42, 35, 27, 0.08), 0 1px 2px rgba(42, 35, 27, 0.06);
  --shadow-md: 0 4px 14px rgba(42, 35, 27, 0.10);
  --shadow-lg: 0 12px 32px rgba(42, 35, 27, 0.14);
  /* Letterpress: inner emboss for sunk wells */
  --shadow-press: inset 0 1px 2px rgba(42, 35, 27, 0.18), inset 0 -1px 1px rgba(242, 233, 218, 0.5);

  /* --- Paper grain overlay ---
     2–4% opacity noise keeps fills feeling pressed, not flat-digital.
     Apply --texture-grain as a background-image layer on large fills. */
  --grain-opacity: 0.03; /* @kind other */
  --texture-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); /* @kind other */
}
