/* ==========================================================================
   HackerContent brand tokens — v1.0.0 (2026-08-21)
   Canonical values from hackercontent.com (resources/css/base.css).
   Colours are authored in oklch; sRGB hex renderings are in the comments.
   ========================================================================== */

:root {
  color-scheme: dark;

  /* --- Colour ---------------------------------------------------------- */
  --ink-900: oklch(0.13 0.008 60);   /* #0a0705  page base / bezel        */
  --ink-850: oklch(0.15 0.009 60);   /* #0e0a08  panel                    */
  --ink-800: oklch(0.18 0.010 60);   /* #15110d  raised panel             */
  --ink-700: oklch(0.23 0.012 60);   /* #211c17  inputs                   */
  --ink-600: oklch(0.32 0.012 60);   /* #38322d  subtle chrome            */

  --chalk:    oklch(0.95 0.005 80);  /* #f0eeeb  primary text on dark     */
  --mute-300: oklch(0.74 0.010 70);  /* #afaaa4  secondary text on dark   */
  --mute-500: oklch(0.58 0.012 70);  /* #7f7973  muted labels on dark     */

  --trace:     oklch(0.72 0.19 45);  /* #ff7527  THE accent — rationed.
                                        Never as text on paper (2.46:1).  */
  --trace-hot: oklch(0.80 0.17 55);  /* #ff9c41  hover accent             */
  --trace-dim: oklch(0.62 0.17 45);  /* #d55c13  pressed / deep           */
  --trace-ink: oklch(0.48 0.15 45);  /* #9e3800  AA-safe accent on paper  */

  --paper:      oklch(0.97 0.006 85); /* #f7f5f1  document surface        */
  --paper-2:    oklch(0.94 0.008 85); /* #edebe5  raised paper            */
  --paper-ink:  oklch(0.21 0.010 60); /* #1c1714  text on paper           */
  --paper-mute: oklch(0.46 0.012 65); /* #5d5751  muted text on paper     */

  --line:       oklch(0.72 0.02 70 / 0.14); /* calibration lines, dark    */
  --line-firm:  oklch(0.72 0.02 70 / 0.26); /* firm borders, dark         */
  --line-paper: oklch(0.21 0.01 60 / 0.13); /* calibration lines, paper   */

  /* --- Type ------------------------------------------------------------ */
  --font-display: 'Bricolage Grotesque Variable', 'Bricolage Grotesque',
                  ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono Variable', 'JetBrains Mono',
               ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* Fluid scale — 320px → 1440px */
  --step--2: clamp(0.69rem, 0.67rem + 0.09vw, 0.75rem);
  --step--1: clamp(0.83rem, 0.79rem + 0.18vw, 0.94rem);
  --step-0:  clamp(1rem, 0.96rem + 0.21vw, 1.13rem);
  --step-1:  clamp(1.2rem, 1.12rem + 0.4vw, 1.44rem);
  --step-2:  clamp(1.44rem, 1.3rem + 0.7vw, 1.94rem);
  --step-3:  clamp(1.73rem, 1.5rem + 1.15vw, 2.61rem);
  --step-4:  clamp(2.07rem, 1.7rem + 1.85vw, 3.5rem);
  --step-5:  clamp(2.49rem, 1.9rem + 2.95vw, 4.71rem);
  --step-6:  clamp(2.99rem, 2.05rem + 4.7vw, 6.35rem);
  --display: clamp(2.75rem, 1.1rem + 8.2vw, 8.5rem);

  /* --- Space ------------------------------------------------------------ */
  --space-3xs: clamp(0.25rem, 0.24rem + 0.05vw, 0.31rem);
  --space-2xs: clamp(0.5rem, 0.48rem + 0.11vw, 0.56rem);
  --space-xs:  clamp(0.75rem, 0.72rem + 0.16vw, 0.88rem);
  --space-s:   clamp(1rem, 0.96rem + 0.21vw, 1.13rem);
  --space-m:   clamp(1.5rem, 1.43rem + 0.32vw, 1.69rem);
  --space-l:   clamp(2rem, 1.91rem + 0.43vw, 2.25rem);
  --space-xl:  clamp(3rem, 2.87rem + 0.64vw, 3.38rem);
  --space-2xl: clamp(4rem, 3.83rem + 0.86vw, 4.5rem);
  --space-3xl: clamp(6rem, 5.74rem + 1.28vw, 6.75rem);
  --space-4xl: clamp(8rem, 7.4rem + 3vw, 10rem);

  /* --- Structure ---------------------------------------------------------- */
  --shell: 78rem;
  --shell-narrow: 46rem;
  --gutter: clamp(1.25rem, 0.9rem + 1.75vw, 2.5rem);
  --radius: 4px;
  --radius-lg: 10px;

  /* --- Motion ------------------------------------------------------------- */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 160ms;
  --dur: 320ms;
  --dur-slow: 700ms;
}
