/* ============================================================
   Prodigy — Design Tokens
   Identical across sites. Only --accent is overridden per site.
   Aesthetic: editorial / technical-specimen — warm paper, precise
   typography, hairline rules, accent used sparingly.
   ============================================================ */
:root {
  /* ---- Canvas & ink (warm neutrals, not cold) -------------- */
  --c-bg:        #F6F1E8;  /* warm paper */
  --c-bg-soft:   #EFE9DD;  /* slightly deeper paper for alt bands */
  --c-bg-ink:    #11110F;  /* warm near-black — inverted sections */
  --c-bg-ink-2:  #1A1916;
  --c-ink:       #11110F;
  --c-ink-soft:  #3A3833;
  --c-ink-mute:  #6A6457;
  --c-rule:      #D6CDBD;  /* tinted hairline rule */
  --c-rule-soft: #E4DCC8;
  --c-paper-on-ink: #F1E8D5;  /* paper-tone type on near-black */
  --c-paper-dim:    rgba(241, 232, 213, 0.64);

  /* ---- Accent (per-site override) -------------------------- */
  --accent:        #2563eb;
  --accent-ink:    #F6F1E8;        /* paper on accent */
  --accent-soft:   color-mix(in srgb, var(--accent) 10%, var(--c-bg));
  --accent-softer: color-mix(in srgb, var(--accent) 5%,  var(--c-bg));
  --accent-strong: color-mix(in srgb, var(--accent) 82%, var(--c-bg-ink));
  --accent-dim:    color-mix(in srgb, var(--accent) 40%, var(--c-bg-ink));

  /* ---- State ---------------------------------------------- */
  --c-success: #1e8e5c;
  --c-danger:  #c4352d;
  --c-warn:    #b4841c;

  /* ---- Typography ----------------------------------------- */
  --font-display: "Fraunces", ui-serif, "Iowan Old Style", Georgia, serif;
  --font-sans:    "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, "SF Mono", "Menlo", Consolas, monospace;

  /* Size scale — slightly editorial (bigger headlines, smaller UI) */
  --fs-2xs:  0.75rem;
  --fs-xs:   0.8125rem;
  --fs-sm:   0.9375rem;
  --fs-base: 1.0625rem;
  --fs-md:   1.1875rem;
  --fs-lg:   1.4375rem;
  --fs-xl:   1.9rem;
  --fs-2xl:  2.625rem;
  --fs-3xl:  3.625rem;
  --fs-4xl:  4.75rem;
  --fs-5xl:  6.25rem;

  --lh-tight:  1.05;
  --lh-snug:   1.2;
  --lh-normal: 1.55;
  --lh-read:   1.65;

  --tracking-tight:  -0.02em;
  --tracking-snug:   -0.012em;
  --tracking-normal:  0;
  --tracking-wide:    0.02em;
  --tracking-label:   0.12em;

  /* Fraunces axes */
  --fraunces-soft:  50;
  --fraunces-wonk:  1;

  /* ---- Spacing (4px base) --------------------------------- */
  --s-1: 0.25rem; --s-2: 0.5rem;  --s-3: 0.75rem; --s-4: 1rem;
  --s-5: 1.25rem; --s-6: 1.5rem;  --s-7: 1.75rem; --s-8: 2rem;
  --s-10: 2.5rem; --s-12: 3rem;   --s-14: 3.5rem; --s-16: 4rem;
  --s-20: 5rem;   --s-24: 6rem;   --s-32: 8rem;   --s-40: 10rem;

  /* ---- Radii (editorial = small / none mostly) ------------ */
  --r-xs:   2px;
  --r-sm:   4px;
  --r-md:   6px;
  --r-lg:   10px;
  --r-pill: 999px;

  /* ---- Borders -------------------------------------------- */
  --bw:      1px;             /* hairline */
  --bw-2:    2px;
  --b-rule:  var(--bw) solid var(--c-rule);
  --b-soft:  var(--bw) solid var(--c-rule-soft);

  /* ---- Shadows (used sparingly, warm-tinted) -------------- */
  --shadow-sm: 0 1px 0 rgba(17,17,15,0.04);
  --shadow-md: 0 2px 0 rgba(17,17,15,0.06), 0 12px 32px -8px rgba(17,17,15,0.08);
  --shadow-lg: 0 4px 0 rgba(17,17,15,0.08), 0 24px 48px -12px rgba(17,17,15,0.16);

  /* ---- Layout --------------------------------------------- */
  --container:        1240px;
  --container-narrow: 780px;
  --container-wide:   1400px;
  --nav-h:            72px;

  /* ---- Motion --------------------------------------------- */
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1);
  --dur: 220ms;
  --dur-slow: 500ms;
}

/* Forced colours / reduced motion — honour user intent */
@media (prefers-reduced-motion: reduce) {
  :root { --dur: 0ms; --dur-slow: 0ms; }
  *, *::before, *::after { animation-duration: 0ms !important; transition-duration: 0ms !important; }
}
