/* Hallmark · tokens · NexaNano installer LP v2 · theme: custom (tuned)
 * vibe: "field test plate, violet ink, plain and exact"
 * paper: oklch(98.2% 0.006 289) · accent: oklch(50% 0.19 289) (NexaNano violet, midpoint of the brand gradient)
 * display: Bricolage Grotesque · body: Geist · outlier: Geist Mono (test-plate notes + spec values only)
 * axes: light / geometric-sans (heavy) / cool (violet 289) */
@font-face{font-family:"Bricolage Grotesque";src:url(/assets/fonts/bricolage-latin.woff2) format("woff2");font-weight:600 800;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(/assets/fonts/geist-mono-latin.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
:root{
  /* paper + ink, tinted toward the brand violet (hue 289) */
  --color-paper:    oklch(98.2% 0.006 289);
  --color-paper-2:  oklch(95.6% 0.011 289);
  --color-card:     oklch(99.4% 0.003 289);
  --color-rule:     oklch(86% 0.014 289);
  --color-rule-2:   oklch(91% 0.010 289);
  --color-muted:    oklch(47% 0.022 289);
  --color-ink-2:    oklch(36% 0.026 289);
  --color-ink:      oklch(19% 0.030 289);
  /* the dark test plate */
  --color-plate:    oklch(19.5% 0.038 289);
  --color-plate-2:  oklch(25% 0.045 289);
  --color-plate-rule: oklch(38% 0.040 289);
  --color-plate-ink:  oklch(96% 0.008 289);
  --color-plate-muted: oklch(78% 0.025 289);
  /* accent: NexaNano violet, the one action colour. accent-2: NexaNano sky, v3 uses it only for the focus ring on dark */
  --color-accent:     oklch(50% 0.19 289);
  --color-accent-hover: oklch(43% 0.18 289);
  --color-accent-ink: oklch(98.5% 0.005 289);
  --color-accent-2:   oklch(75.4% 0.139 233);
  --color-untreated:  oklch(62% 0.020 70);
  --color-focus:      oklch(52% 0.22 289);
  --color-focus-dark: oklch(80% 0.13 233);
  /* v3: soft lift under the hero form card, plate-tinted */
  --color-shadow:     oklch(19.5% 0.038 289 / 0.18);

  --font-display: "Bricolage Grotesque", ui-sans-serif, sans-serif;
  --font-body:    "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-outlier: "Geist Mono", ui-monospace, monospace;

  /* major third from a 17px body */
  --text-xs:   0.8125rem;
  --text-sm:   0.9375rem;
  --text-base: 1.0625rem;
  --text-md:   1.25rem;
  --text-lg:   1.5625rem;
  --text-xl:   clamp(1.6rem, 1.2vw + 1.2rem, 2.1rem);
  --text-2xl:  clamp(1.85rem, 2vw + 1.1rem, 2.75rem);
  --text-display-s: clamp(2.2rem, 3vw + 1.1rem, 3.85rem);

  /* 4pt spacing */
  --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: 6rem;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-pill: 999px;
  --rule-hair: 1px;

  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-in: cubic-bezier(.55,0,1,.45);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --dur-fast: 120ms;
  --dur-med: 200ms;

  --wrap: 72rem;
  --wrap-wide: 84rem;
  --gutter: clamp(1rem, 4vw, 2.5rem);
}
