/* Design tokens from docs/design-system.md ("Midnight terminal with violet beacons").
   The first block is the supplied token set (docs/design-tokens.css); font stacks name the
   original faces first and fall back to the self-hosted substitutes in fonts.css. The
   second block maps those tokens to the names the site's stylesheet uses. */
:root {
  color-scheme: dark;

  /* Colors */
  --color-near-black: #090909;
  --color-almost-white: #f7f9fa;
  --color-soft-white: #f0f0f0;
  --color-steel: #828384;
  --color-graphite: #474747;
  --color-iron: #423738;
  --color-ash: #6b6b6b;
  --color-signal-violet: #af50ff;
  --color-lavender-mist: #e1bdff;

  /* Typography — Font Families */
  --font-whyte-inktrap: 'Whyte Inktrap', 'Geist', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-whyte-inktrap-mono: 'Whyte Inktrap Mono', 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --font-grandslang: 'GrandSlang', 'Instrument Serif', ui-serif, Georgia, "Times New Roman", serif;

  /* Typography — Scale */
  --text-caption: 10px;
  --leading-caption: 1;
  --tracking-caption: 1.8px;
  --text-body-sm: 14px;
  --leading-body-sm: 1.5;
  --tracking-body-sm: 0px;
  --text-body: 16px;
  --leading-body: 1.5;
  --tracking-body: 0px;
  --text-subheading: 20px;
  --leading-subheading: 1;
  --tracking-subheading: -0.2px;
  --text-heading-sm: 32px;
  --leading-heading-sm: 1.2;
  --tracking-heading-sm: -0.32px;
  --text-heading: 48px;
  --leading-heading: 1.2;
  --tracking-heading: -0.48px;
  --text-heading-lg: 64px;
  --leading-heading-lg: 1.2;
  --tracking-heading-lg: -0.64px;
  --text-section-stamp: 74px;
  --leading-section-stamp: 0.9;
  --tracking-section-stamp: 14.8px;
  --text-display: 88px;
  --leading-display: 0.8;
  --tracking-display: -2.64px;

  /* Typography — Weights */
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Spacing */
  --spacing-unit: 4px;
  --spacing-4: 4px;
  --spacing-8: 8px;
  --spacing-12: 12px;
  --spacing-16: 16px;
  --spacing-20: 20px;
  --spacing-24: 24px;
  --spacing-32: 32px;
  --spacing-40: 40px;
  --spacing-48: 48px;
  --spacing-64: 64px;
  --spacing-72: 72px;
  --spacing-80: 80px;
  --spacing-96: 96px;
  --spacing-128: 128px;
  --spacing-136: 136px;
  --spacing-160: 160px;

  /* Layout */
  --page-max-width: 1200px;
  --section-gap: 120px;
  --card-padding: 40px;
  --element-gap: 16px;

  /* Border Radius */
  --radius-lg: 8px;
  --radius-lg-2: 10.8px;
  --radius-2xl: 19.2px;
  --radius-full: 99px;
  --radius-full-2: 1584px;
  --radius-full-3: 10000px;

  /* Named Radii */
  --radius-cards: 19.2px;
  --radius-pills: 1584px;
  --radius-buttons: 8px;
  --radius-smallcontrols: 6px;

  /* Shadows */
  --shadow-subtle: rgba(16, 24, 40, 0.05) 0px 1px 2px 0px;

  /* Surfaces */
  --surface-void-canvas: #090909;
  --surface-translucent-panel: #333248b3;
  --surface-iron-wash: #423738;
  --surface-violet-bloom: #af50ff;

  /* ——— Site aliases, as measured on dope.security (the live source of this system) ——— */
  --font-sans: var(--font-whyte-inktrap);
  --font-mono: var(--font-whyte-inktrap-mono);
  --font-serif: var(--font-grandslang);

  /* Text is Almost White at stepped opacities: primary, body (.75, 12.6:1), muted (.54, 5.7:1), decorative only (.4) */
  --bg: var(--surface-void-canvas);
  --text: var(--color-almost-white);
  --text-2: #f7f9fabf;
  --text-3: #f7f9fa8a;
  --text-4: #f7f9fa66;

  /* White hairlines and fills stand in for shadows */
  --line: #ffffff1a;
  --line-2: #ffffff33;
  --line-3: #ffffff66;
  --chip: #f7f9fa14;
  --raise: #1c1c1c;
  --wash: #edc3c40d;
  --wash-2: #edc3c466;
  /* A 1px frame lit from above, as on dope.security's feature rows and cards */
  --frame: linear-gradient(#ffffff38, #ffffff05);
  --violet: var(--color-signal-violet);
  --violet-glow: #af50ff59;
  --glow: #6c4bd6;

  /* Layout: dope.security's 5% gutters inside a 2240px container; sections pad 80px above and 160px below */
  --gutter: max(16px, 5vw);
  --container: 140rem;
  --header-h: 54px;
  --section-top: clamp(3.5rem, 2.5rem + 2.5vw, 5rem);
  --section-bottom: clamp(5rem, 2.5rem + 6.5vw, 10rem);
  --flap-size: clamp(1.25rem, 5.1vw, 6rem);

  /* Motion: easeOutQuint for surfaces, easeOutQuart for rings, easeOutExpo for entrances */
  --ease-quint: cubic-bezier(.23, 1, .32, 1);
  --ease-quart: cubic-bezier(.165, .84, .44, 1);
  --ease-out: cubic-bezier(.19, 1, .22, 1);
}
