/* hoydbreton.com design tokens for !lab runs. GENERATED by scripts/export-lab-tokens.mjs
   from src/app/globals.css (every top-level :root block) plus docs/lab/_shared/extras.css.
   Do not edit here; edit the source and re-run. Use these names; never restate a value they cover. */
:root {
  --scrollbar-width: 8px; /* Increased from 6px for better visibility */
  --scrollbar-margin: 4px;
  --scrollbar-color: rgba(0, 0, 0, 0.15);
  --scrollbar-hover-color: rgba(0, 0, 0, 0.30);
  /* Motion tokens — one easing personality across the whole site */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);     /* strong ease-out: entering/exiting, presses */
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1); /* on-screen movement */
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* single overshoot: pressed controls only */
  --press-scale: 0.97;
  /* — Design tokens: one value per role — */
  --paper: #fff;                      /* the page; every colour on screen arrives inside an image */
  --font-sans: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --ink: rgb(17 24 39);               /* primary near-black */
  --ink-secondary: rgb(107 114 128);  /* muted / secondary text */
  --surface-subtle: rgb(249 250 251); /* passive near-white fill */
  --hairline: rgb(229 231 235);       /* opaque hairline on white */
  --radius-surface: 8px;
  --leading-body: 1.5;                /* short descriptions & UI prose — 24px */
  --leading-prose: 1.7;               /* long-form article body */
  --text-base: 1rem;                  /* 16px canonical */
  --text-meta: 0.875rem;              /* 14px controls & fine print */
  --gutter: 1.5rem;                   /* 24px page side gutter */
  --space-control: 32px;              /* ink-to-ink on control rows */
  --dur-fast: 200ms;
  --dur-move: 300ms;
  --dur-enter: 0.28s;
  --dur-exit: 0.2s;
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;   /* one line */
  --space-lg: 48px;   /* two */
  --space-xl: 96px;   /* four */
  --space-bottom: 64px;
  --space-opening: calc(var(--space-xl) + var(--space-lg));   /* 144 */
  --lead-baseline: round(calc((var(--leading-body) * 1rem - 20px) / 2 + 16px), 1px);
  --lead-cap: calc(var(--lead-baseline) - 11.52px);              /* box top → first cap */
  --lead-base: calc(var(--leading-body) * 1rem - var(--lead-baseline)); /* baseline → box bottom */
}
/* Lab-only tokens the site keeps in component stylesheets, not :root.
   Hand-kept; each line names where the value lives on the site. Promote a
   token into globals.css :root when a second production surface needs it. */
:root {
  --ink-faint: rgb(17 24 39 / 0.35);   /* non-text only: hairlines on plates, diagram marks, dimmed images (record page) */
  --plate-radius: 6px;                 /* the die-cut corner on every cover and plate (soft-ratios-hero.css) */
  --plate-pad: 12px;                   /* a hover plate's air either side of its words; half of --space-md, and under the 16px phone gutter it hangs into (the old hard-coded 4px read cramped, owner 2026-10-10) */
  --plate-dur: 560ms;                  /* the face spring's duration (SoftRatiosHero) */
  --plate-fall: 12px;                  /* the plate's one-time fall (HOME-HERO-RESOLVED.md) */
  --spring-face: linear(
    0, 0.070 5%, 0.223 10%, 0.398 15%, 0.561 20%, 0.699 25%, 0.805 30%,
    0.884 35%, 0.937 40%, 0.972 45%, 0.993 50%, 1.005 55%, 1.010 60%,
    1.011 65%, 1.010 70%, 1.009 75%, 1.007 80%, 1.005 85%, 1.003 90%,
    1.002 95%, 1
  );                                   /* ζ 0.82, 560ms, contact at 295ms, +1.1% (HOME-HERO-RESOLVED.md) */
  --sr-dash: repeating-linear-gradient(to right, var(--hairline) 0 2px, transparent 2px 5px); /* annotative rule (record page) */
  --lh: calc(1rem * var(--leading-prose));
}
