/*
 * Design tokens — Regalo Natale
 * Sampled from the approved decision comp (.impeccable/mocks/comp-1-ledger-hero.jpg)
 * World: apothecary formulary / sealed correspondence ledger.
 * Do not hardcode these values elsewhere; reference the custom properties.
 */

:root {
  /* Ground */
  --rn-cream: #f6ede0;
  --rn-cream-deep: #eee2ce;
  --rn-paper-line: #d8c9ab;

  /* Structural */
  --rn-green-900: #16241b;
  --rn-green-800: #1c2f22;
  --rn-green-700: #213226;
  --rn-green-600: #2c4232;

  /* Accent */
  --rn-bordeaux-900: #3f1c14;
  --rn-bordeaux-700: #572b24;
  --rn-bordeaux-600: #6e372c;
  --rn-bordeaux-500: #86463a;

  /* Gold / brass */
  --rn-gold-300: #e7d3a1;
  --rn-gold-400: #c8a779;
  --rn-gold-500: #a28f6f;
  --rn-gold-600: #8a7752;

  /* Text */
  --rn-ink: #1c2318;
  --rn-ink-soft: #3c453a;
  --rn-on-green: #f6ede0;
  --rn-on-bordeaux: #f0e2c9;

  /* Type */
  --rn-font-display: 'EB Garamond', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --rn-font-label: 'Archivo', 'Helvetica Neue', Arial, sans-serif;

  /*
   * Motion. One shared exponential ease-out so every transition in the
   * theme moves with the same hand, instead of the assorted
   * "0.2s ease" values that were scattered per-component.
   */
  --rn-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --rn-dur-fast: 140ms;
  --rn-dur: 260ms;
  --rn-dur-slow: 520ms;

  /* Rhythm */
  --rn-space-xs: 0.5rem;
  --rn-space-sm: 1rem;
  --rn-space-md: 1.75rem;
  --rn-space-lg: 3rem;
  --rn-space-xl: 5rem;
  --rn-space-2xl: 8rem;

  --rn-radius-seal: 50%;
  --rn-border-hairline: 1px solid var(--rn-gold-400);

  --rn-container: 1240px;
  --rn-container-wide: 1440px;

  /*
   * Paper grain, reusable on any opaque surface. Without this, only
   * the page background (body.rn-formulary) had texture — every
   * component sitting on top (header, cards, badges, footer) was a
   * flat opaque fill that covered it up, so the "aged paper" feel
   * never actually showed on the surfaces people look at. Two
   * variants: dark grain for cream/light fills, light grain for
   * green/dark fills, same fractalNoise technique as the body.
   */
  --rn-grain-on-light: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch' result='t'/%3E%3CfeColorMatrix in='t' type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --rn-grain-on-dark: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch' result='t'/%3E%3CfeColorMatrix in='t' type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
