/* Joe Makuza / Hasst Media — shared design tokens. Both routes read from this file only. */

:root {
  /* Colour — warm paper, deep forest, restrained terracotta */
  --paper:        #F4F0E6;
  --paper-2:      #ECE6D8;
  --paper-3:      #E2DBCA;
  --paper-bright: #FBF8F1;
  --ink:          #17211D;
  --ink-soft:     #47534D;
  --ink-faint:    #6B756F;
  --forest:       #15302A;
  --forest-2:     #1C3B33;
  --forest-3:     #264A40;
  --on-forest:        #F1ECE0;
  --on-forest-soft:   rgba(241, 236, 224, 0.74);
  --on-forest-faint:  rgba(241, 236, 224, 0.52);
  --terracotta:       #A84F31; /* fills, buttons */
  --terracotta-ink:   #9A472B; /* text on paper — 5.4:1 */
  --terracotta-light: #E0916F; /* text on forest — 5.6:1 */
  --terracotta-hover: #93432A;

  --rule:        rgba(23, 33, 29, 0.16);
  --rule-strong: rgba(23, 33, 29, 0.42);
  --rule-dark:   rgba(241, 236, 224, 0.18);
  --focus:       #C9612F;
  --focus-dark:  #F2B08F;

  /* Type */
  --font-serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --font-sans:  "Instrument Sans", -apple-system, "Segoe UI", sans-serif;

  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1.0625rem;
  --text-md:   1.1875rem;
  --text-lg:   clamp(1.3rem, 1.1rem + 0.8vw, 1.6rem);
  --text-xl:   clamp(1.65rem, 1.3rem + 1.4vw, 2.25rem);
  --text-2xl:  clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
  --text-3xl:  clamp(2.35rem, 1.5rem + 3.9vw, 4.6rem);

  --leading-tight: 1.06;
  --leading-snug:  1.25;
  --leading-body:  1.6;
  --tracking-label: 0.14em;

  /* Space — 4pt scale */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 20px;
  --s-6: 24px; --s-8: 32px; --s-10: 40px; --s-12: 48px; --s-16: 64px;
  --s-20: 80px; --s-24: 96px; --s-32: 128px;
  --section-y: clamp(64px, 5vw + 40px, 128px);
  --gutter: clamp(16px, 4vw, 48px);

  --radius: 3px;
  --radius-lg: 6px;
  --measure: 62ch;
  --content-max: 1180px;

  /* Motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 150ms;
  --dur-base: 240ms;
  --dur-slow: 600ms;
}
