/* Hallmark tokens · theme: Aurora (atmospheric genre) */
:root {
  /* paper — dark cool canvas, sits between the two bloom hues. never pure black. */
  --color-paper:    oklch(15% 0.020 250);
  --color-paper-2:  oklch(20% 0.022 250);  /* elevated surface (cards, tiles) */
  --color-paper-3:  oklch(25% 0.024 250);  /* modal / most-elevated */

  /* ink — light text, cool tilt. never pure white. */
  --color-ink:      oklch(94% 0.010 250);
  --color-ink-2:    oklch(78% 0.010 250);
  --color-muted:    oklch(62% 0.010 250);
  --color-rule:     oklch(32% 0.020 250);

  /* the two blooms — cool aurora spectrum (cyan + violet), not the genre's
     default warm amber. Aurora has no dedicated spec file in this install;
     this is built from the genre's structural rules (one canvas, ≤2 blooms,
     single accent on small surfaces) with the palette the theme's name calls
     for — cyan-to-violet, not Bloom/Midnight's warm register. */
  --color-accent:    oklch(72% 0.16 195);  /* cyan bloom — primary interactive */
  --color-accent-2:  oklch(66% 0.17 300);  /* violet bloom — secondary */
  --color-accent-ink: oklch(14% 0.020 220); /* dark text for use on either accent fill */
  --color-focus:     oklch(72% 0.16 195);
  --color-error:     oklch(62% 0.20 25);

  --glow-cyan:   oklch(72% 0.16 195 / 0.35);
  --glow-violet: oklch(66% 0.17 300 / 0.30);
  --glow-error:  oklch(62% 0.20 25 / 0.35);

  /* elevation washes — named so no shadow/scrim value is a mid-render literal */
  --scrim-ink-12: oklch(6% 0.01 250 / 0.24);
  --scrim-ink-18: oklch(6% 0.01 250 / 0.32);
  --scrim-ink-22: oklch(6% 0.01 250 / 0.38);
  --scrim-ink-35: oklch(6% 0.01 250 / 0.55);
  --scrim-ink-45: oklch(6% 0.01 250 / 0.65);

  /* tier scale — a standard hot-to-cold ranking ramp, independent of the
     theme's own bloom hues (S–E is a universal tier-list convention, not
     brand colour). Reads clean against the dark canvas either way. */
  --tier-s: oklch(72% 0.20 20);   /* hot — coral */
  --tier-a: oklch(78% 0.17 55);   /* warm orange */
  --tier-b: oklch(86% 0.16 95);   /* yellow */
  --tier-c: oklch(82% 0.14 150);  /* mint */
  --tier-d: oklch(76% 0.13 235);  /* sky-blue */
  --tier-e: oklch(60% 0.02 250);  /* cool neutral — coldest */
  --tier-t: oklch(50% 0.03 280);  /* "à tester" holding pen — outside the ranking ramp */

  /* type — Geist, atmospheric's confident plain-sans register */
  --font-display: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-outlier: "Geist Mono", ui-monospace, monospace;

  --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-display: clamp(1.75rem, 2.2vw + 1.1rem, 2.5rem);

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

  /* radii — composed, not toy-rounded */
  --radius-card:  14px;
  --radius-pill:  999px;
  --radius-input: 10px;

  /* motion — fade/glow only, no bounce, no press-toy mechanics */
  --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: 220ms;
  --dur-long:  420ms;

  /* z-scale */
  --z-base: 1;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
}
