/* ────────────────────────────────────────────────────────────
   Root + Stalk · Design Tokens
   v1.2.0 · 26 May 2026
──────────────────────────────────────────────────────────── */

:root {
  /* COLOR — primary palette */
  --rs-ink:           #2A1C0F;  /* warm dark brown — primary text & strokes */
  --rs-paper:         #FAF7F2;  /* off-white — primary surface */
  --rs-cream:         #F3EEE5;  /* section / backstop */
  --rs-terra:         #B8482B;  /* terracotta — single accent */
  --rs-terra-light:   #DA7855;  /* terracotta on dark — reverse accent */
  --rs-mute:          #6B5A47;  /* muted body color */
  --rs-olive:         #6E6A3D;  /* status: positive (do) */

  /* COLOR — derived */
  --rs-rule:          rgba(42, 28, 15, 0.10);   /* 1px dividers on paper */
  --rs-rule-soft:     rgba(42, 28, 15, 0.07);   /* fainter dividers */
  --rs-rule-dark:     rgba(250, 247, 242, 0.15); /* dividers on ink */

  /* TYPOGRAPHY */
  --rs-font-serif:    "Spectral", "Source Serif Pro", Georgia, serif;
  --rs-font-mono:     "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  --rs-fs-display:    7rem;     /* 112px — hero name */
  --rs-fs-h1:         3.75rem;  /* 60px */
  --rs-fs-h2:         2rem;     /* 32px */
  --rs-fs-h3:         1.375rem; /* 22px */
  --rs-fs-body:       1.125rem; /* 18px */
  --rs-fs-small:      0.9375rem;/* 15px */
  --rs-fs-caption:    0.75rem;  /* 12px */
  --rs-fs-mono:       0.65625rem; /* 10.5px */

  --rs-lh-display:    0.92;
  --rs-lh-tight:      1.0;
  --rs-lh-body:       1.55;

  --rs-tracking-display: -0.015em;
  --rs-tracking-tight:   -0.006em;
  --rs-tracking-smcaps:  0.32em;
  --rs-tracking-mono:    0.1em;

  /* SPACING — 8pt scale with a 4pt half-step */
  --rs-space-1:   0.25rem;  /*  4px */
  --rs-space-2:   0.5rem;   /*  8px */
  --rs-space-3:   0.75rem;  /* 12px */
  --rs-space-4:   1rem;     /* 16px */
  --rs-space-5:   1.5rem;   /* 24px */
  --rs-space-6:   2rem;     /* 32px */
  --rs-space-7:   2.75rem;  /* 44px */
  --rs-space-8:   3.5rem;   /* 56px */
  --rs-space-9:   4.5rem;   /* 72px */
  --rs-space-10:  6rem;     /* 96px */

  /* LINE / RULE */
  --rs-stroke-mark:    6;    /* SVG units, default mark */
  --rs-stroke-bold:    13;      /* bold variant ≤32px */
  --rs-stroke-tiny:    20;     /* tiny variant ≤16px */
  --rs-border-width:   1px;

  /* RADIUS — minimal use; the brand is geometric */
  --rs-radius-0:  0;
  --rs-radius-1:  2px;   /* tags, buttons */
  --rs-radius-2:  6px;   /* favicon plate, app icon */
  --rs-radius-pill: 999px;

  /* ELEVATION — paper shadows. No glows. */
  --rs-shadow-card:    0 18px 36px -18px rgba(42, 28, 15, 0.25),
                       0 2px 4px rgba(42, 28, 15, 0.06);
  --rs-shadow-poster:  0 32px 80px -28px rgba(42, 28, 15, 0.30),
                       0 4px 8px rgba(42, 28, 15, 0.08);

  /* MOTION — slow, breath-like */
  --rs-ease-breath:   cubic-bezier(0.4, 0.0, 0.2, 1);
  --rs-duration-fast: 180ms;
  --rs-duration-med:  320ms;
  --rs-duration-slow: 600ms;
}

/* OPTIONAL — dark variant flips paper ↔ ink and terra ↔ terra-light */
[data-theme="dark"] {
  --rs-paper:         #2A1C0F;
  --rs-cream:         #3a2c1f;
  --rs-ink:           #FAF7F2;
  --rs-terra:         #DA7855;
  --rs-mute:          #C8BDA9;
  --rs-rule:          rgba(250, 247, 242, 0.15);
}

/* Base */
html, body {
  background: var(--rs-paper);
  color: var(--rs-ink);
  font-family: var(--rs-font-serif);
  font-size: var(--rs-fs-body);
  line-height: var(--rs-lh-body);
  font-feature-settings: "kern", "liga", "onum";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--rs-terra); color: var(--rs-paper); }

/* Utility — small-caps eyebrow */
.rs-smcaps {
  font-variant: small-caps;
  letter-spacing: var(--rs-tracking-smcaps);
  text-transform: lowercase;
  padding-left: var(--rs-tracking-smcaps);
}

/* Utility — mono meta tag */
.rs-meta {
  font-family: var(--rs-font-mono);
  font-size: var(--rs-fs-mono);
  letter-spacing: var(--rs-tracking-mono);
  text-transform: uppercase;
  color: var(--rs-mute);
}
