/* Grid Performance · design tokens
 * Every colour, font, size and timing used on the site is defined here.
 * Change a value here and it changes everywhere.
 */
:root {
  /* Colour — anchored on the logo lime (#D0FD07), neutrals tinted toward it */
  --color-paper:      oklch(14.5% 0.012 125);
  --color-paper-2:    oklch(18%   0.014 125);
  --color-paper-3:    oklch(22%   0.016 125);
  --color-rule:       oklch(34%   0.016 125);
  --color-rule-2:     oklch(26%   0.014 125);
  --color-neutral:    oklch(60%   0.014 123);
  --color-muted:      oklch(76%   0.014 122);
  --color-ink:        oklch(95.5% 0.008 120);
  --color-accent:     oklch(92.9% 0.224 121.8); /* brand lime, #D0FD07 */
  --color-accent-ink: oklch(17%   0.03  125);
  --color-focus:      oklch(92.9% 0.224 121.8);

  /* Type */
  --font-display: "Archivo", "Arial Black", "Helvetica Neue", sans-serif;
  --font-body:    "IBM Plex Sans", "Segoe UI", sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SF Mono", monospace;
  --font-display-stretch: 125%;

  --text-label:     0.8125rem;
  --text-base:      1.0625rem;
  --text-lg:        clamp(1.1875rem, 0.6vw + 1.05rem, 1.4375rem);
  --text-2xl:       clamp(1.5rem, 1.9vw + 1rem, 2.5rem);
  --text-display:   clamp(1.75rem, 8.2vw, 3rem);
  --text-display-s: clamp(1.5rem, 6.4vw, 2.5rem);

  /* Space — 4pt 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: 4rem;
  --space-4xl: 6rem;

  --page-gutter: clamp(1rem, 4vw, 3rem);
  --page-max:    78rem;
  --split-gap:   clamp(2.5rem, 6vw, 6rem);

  /* Lines and frames */
  --rule-hair:  1px;
  --rule-heavy: 2px;
  --radius-none: 0;
  --frame-w: clamp(8px, 0.9vw, 13px);

  /* 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: 140ms;
  --dur-med:   360ms;
  --dur-long:  760ms;

  /* Layers */
  --z-nav: 10;
  --z-skip: 20;
}

@media (min-width: 60rem) {
  :root {
    --text-display:   clamp(2.5rem, 4.1vw, 4.25rem);
    --text-display-s: clamp(2.125rem, 3.2vw, 3.25rem);
  }
}
