:root {
  /* Brand palette */
  --charcoal: #2C2A29;
  --cream: #F4F1E8;
  --cream-2: #EAE5D8;
  --navy: #2B3F58;
  --navy-deep: #1F2E41;
  --slate: #8F9EAF;
  --gold: #E1B778;
  --gold-deep: #C99A4F;
  /* v2: accessible gold for TEXT on light surfaces only.
     WCAG 2.1 computed (relative luminance): #85601F on cream #F4F1E8 = 5.04:1,
     on cream-2 #EAE5D8 = 4.53:1, on white = 5.69:1 — all ≥ 4.5:1 AA (small text).
     Keep --gold/--gold-deep for text on navy/charcoal and for non-text accents. */
  --gold-text: #85601F;
  --ink-60: #5B5750;
  --hairline: #D9D2C4;

  /* Semantic aliases (kept for back-compat with any legacy partials) */
  --color-charcoal: var(--charcoal);
  --color-cream: var(--cream);
  --color-indigo: var(--navy);
  --color-indigo-light: #D8DFE8;
  --color-amber: var(--gold);
  --color-bg: var(--cream);
  --color-text: var(--charcoal);
  --color-heading: var(--navy);
  --color-accent: var(--gold);
  --color-link: var(--navy);
  --color-link-hover: var(--charcoal);
  --color-border: var(--hairline);
  --color-surface: #FFFFFF;

  /* Typography */
  --serif: 'Newsreader', Georgia, serif;
  --sans: 'Mulish', system-ui, sans-serif;
  --jp: 'Noto Serif JP', serif;
  --font-sans: var(--sans);
  --font-jp: var(--jp);

  /* Rhythm */
  --breath: clamp(5.5rem, 12vh, 9rem);
  --breath-sm: clamp(3.5rem, 7vh, 5.5rem);

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 8rem;

  /* Layout */
  --max-width: 1200px;
  --max-width-narrow: 800px;
  --max-width-wide: 1400px;
  --gutter: clamp(1rem, 4vw, 2rem);

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  /* Transitions */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --transition-fast: 150ms var(--ease-out);
  --transition-base: 300ms var(--ease-out);
  --transition-slow: 500ms var(--ease-out);

  /* v2 motion tokens — brand easing + durations (ma discipline: quiet, never rushed) */
  --ease-brand: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-micro: 0.3s;    /* CTA fill, press states */
  --dur-reveal: 0.55s;  /* scroll-reveal rise */
  --dur-settle: 0.8s;   /* image settle / skill-bar fill */
  --dur-draw: 1.5s;     /* ink-path / road draw */
  --stagger-step: 70ms; /* per-child reveal offset (JS caps total at 350ms) */
}
