/* Breeder Web Studio — design tokens.
   Palette: Paper white ground, Navy accent. Chosen 27 Aug 2026.
   Every value below was derived from three inputs (ground #FCFBF9, ink #26262B, accent #1F3D73)
   and corrected until it cleared WCAG AA. Do not hand-edit one token in isolation;
   change the three inputs and re-derive, or the relationships break.
   Build standard §5: light only, no dark mode, no near-black. */

@font-face{font-family:'Newsreader';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/newsreader-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:300;font-display:swap;src:url('/fonts/newsreader-latin-300-italic.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/newsreader-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/newsreader-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/public-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/public-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/public-sans-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2')}

:root{
  --ground:#FCFBF9;
  --surface:#FEFEFD;
  --raise:#ECEBEA;
  --ink:#26262B;
  --ink-2:#666669;
  --ink-3:#48484C;
  /* Darkened from #8C8C8D on 28 August 2026. The old value failed WCAG AA on every ground
     the site uses: 3.33 on the surface, 3.25 on the paper ground and 2.82 on the raised
     panels, against a floor of 4.5. Measured across 22 live pages, 232 elements failing.
     This value clears it everywhere: 5.34, 5.21 and 4.53. The readers are sixty year old
     breeders, so pale grey was the wrong bet twice over. */
  --muted:#6A6A6D;
  --line:#E0DFDE;
  --edge:#CDCCCC;
  --hair:#BCBBBB;
  --field:#FDFDFC;
  /* Was #A6A6A7, which is 2.41 to 1 on a field. Placeholder text is the only writing on
     the scan box and on half the contact form until somebody types. 4.75 now. */
  --placeholder:#737376;
  --shot:#E7E6E4;
  --shot-2:#DCDBDA;
  /* Was #ABAAAB, 1.86 to 1 on --shot, the worst ratio on the site. Only used by .kit-ph,
     which no current page renders, so this is insurance rather than a repair. */
  --faint:#666669;
  /* Status colours for the availability badges. These are the ONE permitted exception to
     the derive-from-three-inputs rule: available, reserved and sold have to read as
     different things at a glance, and three tints of one navy cannot do that. Each pair
     was checked for WCAG AA on its own background and clears it:
     available 5.14, reserved 5.19, sold 5.23. Change one, re-check it. */
  --ok-bg:#DCEBE2;   --ok-ink:#2E6B48;
  --warn-bg:#F3E7CE; --warn-ink:#7A5A18;
  --accent:#1F3D73;
  --accent-2:#18305A;
  --accent-soft:#C0C9D8;
  /* The wash tint. Same hue as the accent, lifted in lightness and pushed in chroma,
     because a navy this deep laid over paper at low alpha reads slate grey rather than
     blue. Derived, not picked: change --accent and this follows. The fallback is the
     accent itself, which is the quieter version of the same idea. */
  --wash-tint:var(--accent);
  --deep:#26262B;
  --deep-2:#3C3C40;
  --deep-line:#5E5E62;
  --deep-hover:#37373C;
  --on-deep-2:#C0BFBF;
  --flash:#DBE0E7;
  /* type */
  --f-display:'Newsreader',Georgia,'Times New Roman',serif;
  --f-body:'Public Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;

  /* scale */
  --step--1:0.8125rem;
  --step-0:1rem;
  --step-1:1.0625rem;
  --step-2:clamp(1.5rem,2.4vw,1.9rem);
  --step-3:clamp(1.75rem,3.2vw,2.5rem);
  --step-4:clamp(2.375rem,4.6vw,3.875rem);

  --measure:66ch;
  --r:2px;
  --gap:20px;
  --pad:clamp(22px,5vw,80px);
}

@supports (color: oklch(from red l c h)) {
  :root{ --wash-tint: oklch(from var(--accent) 70% calc(c * 2.1) h); }
}
