/* RE-Lab design tokens. Every colour, type step, space, radius and motion timing lives here. */
/* Instrument Sans (display + text) and Martian Mono (labels, buttons, data): both SIL OFL, variable, self-hosted */
@font-face {
  font-family: "Instrument Sans";
  src: url("../assets/fonts/instrument-sans.woff2") format("woff2");
  font-weight: 400 700;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Martian Mono";
  src: url("../assets/fonts/martian-mono.woff2") format("woff2");
  font-weight: 100 800;
  font-stretch: 75% 112.5%;
  font-display: swap;
}

:root {
  color-scheme: dark;          /* a deliberate single dark look (with one light "paper" section) */
  /* ink stage */
  --bg: #05080e;               /* page base: near-black so light and glass read */
  --ink-950: #060b15;
  --ink-900: #0a1220;
  --ink-850: #0d1727;
  --ink-800: #0f1b2d;          /* brand ink */
  --ink-700: #16253b;
  --ink-600: #1f314a;
  --line: rgba(255, 255, 255, 0.075);
  --line-2: rgba(255, 255, 255, 0.14);
  --line-3: rgba(255, 255, 255, 0.24);

  /* text on ink (all >= 4.5:1 on --ink-900) */
  --fg: #eaf0f7;
  --fg-2: #aab7c9;
  --fg-3: #8291a7;

  /* brand accent: teal only for verified or live things */
  --teal: #14b8a6;             /* brand teal; ink text on it (6.9:1) */
  --teal-hi: #2dd4bf;
  --teal-ink: #0f766e;         /* teal text on white (5.5:1) */
  --teal-a10: rgba(20, 184, 166, 0.10);
  --teal-a20: rgba(20, 184, 166, 0.20);
  --teal-a40: rgba(45, 212, 191, 0.40);

  /* semantic */
  --fail: #f2777d;
  --loop: #8fb1ff;

  /* paper section */
  --paper: #f3f5f8;
  --paper-2: #e9edf2;
  --paper-fg: #0f1b2d;
  --paper-fg-2: #46566c;
  --paper-line: rgba(15, 27, 45, 0.11);

  /* type */
  --font-sans: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "Martian Mono", ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --fs-display: clamp(2.1rem, 0.6rem + 5.2vw, 5.1rem); /* "Reverse-engineering" must fit one line of the 780px copy column */
  --fs-h2: clamp(2.05rem, 1.25rem + 2.5vw, 3.6rem);
  --fs-h3: clamp(1.2rem, 1.05rem + 0.45vw, 1.45rem);
  --fs-lead: clamp(1.08rem, 1rem + 0.35vw, 1.28rem);
  --fs-body: 1rem;
  --fs-small: 0.875rem;
  --fs-mono: 0.8125rem;
  --fs-label: 0.72rem;
  --tracking-display: -0.038em;
  --tracking-h2: -0.03em;
  --tracking-label: 0.14em;

  /* space */
  --wrap: 1200px;
  --gutter: clamp(16px, 4vw, 40px);
  --section: clamp(96px, 11vw, 168px);
  --r-sm: 7px;
  --r: 11px;
  --r-lg: 16px;

  /* motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
  --t-fast: 180ms;
  --t: 320ms;
  --t-slow: 700ms;
  --t-reveal: 900ms;
}
