/* ══ Chuleta design tokens — "warm paper" ══
   Single source of truth. Nothing below this file hardcodes a colour.

   Direction chosen 12 Aug. The old dark palette came from the Cambridge FCE
   build, where it suited a "contraband playbook" brand. This product is the
   opposite: reassurance for a tutor, low-friction habit for a teenager, and a
   report a parent can be shown. Paper, ink, and one warm accent.             */

:root {
  /* ── surfaces: paper ── */
  --paper:    #FBF8F3;   /* page */
  --paper-2:  #F5F0E7;   /* recessed */
  --card:     #FFFFFF;   /* raised */
  --rule:     #E7E0D5;   /* hairline */
  --rule-2:   #D8CFC0;   /* stronger */

  /* ── ink ── */
  --ink:      #221F1A;   /* body */
  --ink-2:    #55504A;   /* secondary */
  --ink-3:    #78716A;   /* tertiary */
  --ink-4:    #A69E93;   /* faint */

  /* ── accents ── */
  --terra:    #C1452B;   /* the one accent. Spanish without the flag. */
  --terra-d:  #9E3520;
  --olive:    #1F6F5C;   /* correct / owned */
  --ochre:    #B45309;   /* shaky / attention */
  --indigo:   #3B4E7A;   /* information */
  --sand:     #EFE7DA;   /* chip fill */

  /* ── semantic ── */
  --brand:      var(--terra);
  --action:     var(--terra);
  --ok:         var(--olive);
  --warn:       var(--ochre);
  --danger:     var(--terra-d);
  --text:       var(--ink);
  --text-dim:   var(--ink-3);
  --text-faint: var(--ink-4);
  --line:       var(--rule);
  --line-soft:  rgba(34,31,26,.07);

  /* ── word states. Colour AND weight, never colour alone. ── */
  --st-new:     #D8CFC0;
  --st-seen:    #A69E93;
  --st-shaky:   var(--ochre);
  --st-owned:   var(--olive);
  --st-cooling: var(--indigo);

  /* ── type ── */
  --fd: 'Fraunces', Georgia, serif;      /* display — a little warmth and grit */
  --fb: 'DM Sans', system-ui, sans-serif;/* body */
  --fm: ui-monospace, 'SF Mono', monospace;

  /* ── scale ── */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 22px; --s6: 30px; --s7: 44px; --s8: 62px;
  --r1: 5px; --r2: 9px; --r3: 13px; --r4: 18px; --rp: 999px;

  /* paper lifts rather than glows */
  --lift-1: 0 1px 2px rgba(34,31,26,.05);
  --lift-2: 0 2px 8px rgba(34,31,26,.07);

  /* ── motion ── */
  --fast: .15s; --med: .25s; --slow: .45s;
  --ease: cubic-bezier(.4,0,.2,1);

  /* ── layout ── */
  --gutter: 20px; --measure: 620px; --nav-h: 46px;
  --z-nav: 900; --z-sheet: 1000; --z-gate: 9999;
}

/* Respect the setting. Non-negotiable. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
