/* Hallmark · tokens · theme: Studio
 * axes — paper-band: light · display-style: high-contrast-serif · accent-hue: chromatic-green
 * Every colour and font in this project resolves through a token declared here.
 * ────────────────────────────────────────────────────────────── */

:root {
  /* ── Palette — Studio: cool near-white paper, forest-green accent ── */
  --color-paper:      oklch(96.5% 0.005 200);
  --color-paper-2:    oklch(93.5% 0.007 200);
  --color-paper-3:    oklch(89%   0.010 200);
  --color-rule:       oklch(82%   0.008 200);
  --color-rule-2:     oklch(68%   0.010 200);
  --color-muted:      oklch(48%   0.012 205);
  --color-neutral:    oklch(34%   0.016 205);
  --color-ink-2:      oklch(22%   0.020 205);
  --color-ink:        oklch(13%   0.024 205);
  --color-accent:     oklch(46%   0.140 145);
  --color-accent-ink: oklch(38%   0.130 145);
  --color-accent-tint:oklch(93%   0.030 145);
  --color-focus:      oklch(46%   0.140 145);

  /* ── Type ── */
  --font-display: "Fraunces", "Tiempos", ui-serif, Georgia, serif;
  --font-body:    "Geist", "Söhne", ui-sans-serif, system-ui, sans-serif;
  --font-label:   "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
  --font-mono:    "Geist Mono", "JetBrains Mono", ui-monospace, monospace;

  --display-weight:  400;
  --display-optical: 144;
  --display-soft:    30;

  --text-display:   clamp(2.75rem, 5vw + 0.75rem, 5.25rem);
  --text-display-s: clamp(2rem, 3.4vw + 0.9rem, 3.5rem);
  --text-3xl: clamp(1.75rem, 2vw + 1rem, 2.5rem);
  --text-2xl: 1.75rem;
  --text-xl:  1.375rem;
  --text-lg:  1.125rem;
  --text-md:  1rem;
  --text-sm:  0.9375rem;
  --text-xs:  0.8125rem;

  --tracking-display: -0.022em;
  --tracking-tight:   -0.012em;
  --tracking-label:    0.08em;

  --lh-tight: 1.06;
  --lh-snug:  1.22;
  --lh-body:  1.62;

  --measure: 62ch;

  /* ── Space — 4 pt scale ── */
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2rem;
  --space-2xl: 3rem;
  --space-3xl: 4.5rem;
  --space-4xl: 6.5rem;

  --section-gap:      6.5rem;
  --section-head-gap: 1.5rem;
  --page-gutter: clamp(1rem, 4vw, 2.5rem);
  --page-max: 78rem;

  /* ── Rules + shape ── */
  --rule-hair: 1px;
  --rule-fine: 2px;
  --radius-card:  6px;
  --radius-pill:  4px;
  --radius-input: 4px;
  --shadow-card: 0 1px 2px oklch(20% 0.014 205 / 0.05);

  /* ── Motion ── */
  --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-short: 160ms;
  --dur-mid:   320ms;
  --dur-long:  560ms;

  /* ── Chrome heights (N12 banner + retracting bar) ── */
  --banner-h: 40px;
  --bar-h:    68px;

  /* ── Z scale — six named levels, no 9999 ── */
  --z-base:    0;
  --z-raised:  10;
  --z-sticky:  100;
  --z-nav:     500;
  --z-overlay: 800;
  --z-top:     1000;
}
