/* Hallmark · tokens
 * Theme: Midnight (atmospheric cluster) · accent pulled from AJI logo amber
 * Paper-band: dark · Display-style: condensed-sans · Accent-hue: warm-amber
 * Three faces: Tomorrow (display) · Geist (body) · Geist Mono (outlier)
 */

:root {
  /* Surface — cool dark canvas, single warm accent (amber from logo). */
  --color-paper:      oklch(13% 0.014 250);
  --color-paper-2:    oklch(17% 0.016 250);
  --color-paper-3:    oklch(22% 0.018 250);
  --color-paper-warm: oklch(15% 0.022 60);
  --color-rule:       oklch(30% 0.018 245);
  --color-rule-2:     oklch(45% 0.018 240);
  --color-muted:      oklch(58% 0.014 240);
  --color-neutral:    oklch(70% 0.012 235);
  --color-ink-2:      oklch(84% 0.008 230);
  --color-ink:        oklch(95% 0.006 80);

  --color-accent:     oklch(78% 0.15 65);
  --color-accent-2:   oklch(68% 0.18 55);
  --color-accent-ink: oklch(82% 0.16 70);
  --color-focus:      oklch(82% 0.18 70);

  /* Typography — sans top-to-bottom per atmospheric rules. */
  --font-display: "Tomorrow", "Geist", ui-sans-serif, sans-serif;
  --font-body:    "Geist", "Söhne", ui-sans-serif, sans-serif;
  --font-mono:    "Geist Mono", "JetBrains Mono", ui-monospace, monospace;

  --display-weight: 600;
  --body-weight:    380;
  --strong-weight:  600;

  /* Sizing — major-third ratio (1.25). Display clamps for fluidity. */
  --text-xs:    0.75rem;
  --text-sm:    0.875rem;
  --text-base:  1rem;
  --text-md:    1.125rem;
  --text-lg:    1.375rem;
  --text-xl:    1.75rem;
  --text-2xl:   2.25rem;
  --text-3xl:   2.875rem;
  --text-4xl:   3.625rem;
  --text-display:    clamp(3.5rem, 7vw + 1rem, 7rem);
  --text-display-s:  clamp(2.25rem, 3vw + 1rem, 3.5rem);
  --text-marquee:    clamp(8rem, 36vw, 26rem);

  --lh-tight:   0.92;
  --lh-snug:    1.12;
  --lh-normal:  1.5;
  --lh-relaxed: 1.65;

  --tracking-marquee: -0.045em;
  --tracking-display: -0.03em;
  --tracking-tight:   -0.015em;
  --tracking-normal:   0;
  --tracking-label:    0.16em;

  /* Spacing — 4pt scale, semantic names. */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6.5rem;
  --space-4xl: 10rem;
  --space-5xl: 14rem;

  --section-gap:      var(--space-4xl);
  --section-head-gap: var(--space-lg);

  --page-max:    84rem;
  --page-gutter: clamp(1.25rem, 4vw, 3rem);
  --measure:     58ch;

  --rule-hair: 0.5px;
  --rule-fine: 1px;
  --rule-thick: 2px;
  --rule-slab:  4px;

  --radius-card:  0;
  --radius-pill:  999px;
  --radius-input: 0;

  /* Motion — three named easings, three named durations. */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 240ms;
  --dur-long:  460ms;

  --z-base:       1;
  --z-raised:     10;
  --z-sticky-nav: 300;
  --z-modal:      400;

  --banner-height: 56px;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-micro: 1ms;
    --dur-short: 1ms;
    --dur-long:  1ms;
  }
}
