:root {
  /* Palette B. arbiterresearch.md is the lock. No Domain cyan. */
  --void: #09080C;
  --stone: #121018;
  --alloy: #1A1814;
  --edge: #2E2A22;
  --hardlight: #F0E6C8;
  --gold: #C4A35A;
  --gold-hl: #F5E6B8;
  --bronze: #8B6A2E;
  --text: #EDE6D6;
  --text-dim: #8A8378;
  --amber: #FFB020;

  --font-display: "Outfit", sans-serif;
  --font-body: "Source Sans 3", sans-serif;
  --font-serif: "Source Serif 4", serif;
  --font-mono: "IBM Plex Mono", monospace;

  --wide: 70rem;
  --nav-h: 64px;
  --margin-w: clamp(13rem, 20vw, 18rem);
  --hero-shrink: 0.58;

  /* Chamfered, never rounded. */
  --clip-cell: polygon(
    8px 0,
    calc(100% - 8px) 0,
    100% 8px,
    100% calc(100% - 8px),
    calc(100% - 8px) 100%,
    8px 100%,
    0 calc(100% - 8px),
    0 8px
  );

  /* scrollcraft engine roles, mapped onto Palette B. The engine drifts
     --sc-canvas between acts, so anything that should track the ground reads
     it rather than --void. Gold is deliberately NOT the engine accent: that
     token feeds selection, caret and focus, and gold has exactly one job on
     this page, the adversary's ink. */
  --sc-canvas: var(--void);
  --sc-surface: var(--stone);
  --sc-ink: var(--text);
  --sc-ink-soft: var(--text-dim);
  --sc-accent: var(--hardlight);
  --sc-accent-ink: var(--void);
  --sc-hairline: var(--edge);
  --sc-hairline-strong: color-mix(in oklab, var(--edge) 55%, var(--text-dim));
  --sc-font-display: var(--font-display);
  --sc-font-text: var(--font-body);
  --sc-font-mono: var(--font-mono);
  --sc-shadow-color: 260 24% 2%;
  --sc-maxw: var(--wide);
  --sc-r-sm: 0px;
  --sc-r-md: 0px;
  --sc-r-lg: 0px;
}
