/* aeryx brand tokens. Single source of truth for every value the aeryx
   properties render. Consumers vendor this file verbatim and guard the copy
   against a recorded hash; never hand-edit a vendored copy.

   The discipline, taken from scanduit: grayscale everything, the accent is the
   only color. Neutrals carry no hue of their own, which is what makes a single
   purple land as hard as it does. Nothing is pure black; #08090b is the floor,
   which keeps OLED panels from smearing and leaves the surfaces above it room
   to sit. */

:root {
  /* ---- surface ramp: cool neutral, no hue of its own ---- */
  --aeryx-950: #08090b;
  --aeryx-900: #0d0f13;
  --aeryx-800: #12151b;
  --aeryx-700: #171b23;
  --aeryx-600: #1c2027;
  --aeryx-500: #262b34;
  --aeryx-400: #3a414c;
  --aeryx-300: #5b636e;
  --aeryx-200: #79818c;
  --aeryx-100: #b9c0c9;
  --aeryx-50: #dfe3e8;

  /* ---- the one color ----
     hot is the emissive core: lit glyphs, the middle of a beam, the point a
     highlight is brightest. dim is the same color at rest. */
  --aeryx-accent: #a98fd6;
  --aeryx-hot: #ede4fa;
  --aeryx-dim: #73548f;

  /* ---- semantic surfaces ---- */
  --aeryx-bg: var(--aeryx-950);
  --aeryx-surface: var(--aeryx-900);
  --aeryx-raised: var(--aeryx-700);
  --aeryx-border: var(--aeryx-600);
  --aeryx-border-active: var(--aeryx-500);

  /* ---- semantic text ----
     No text token sits below AA. Prose is not dimmed: gray body copy is hard
     to read, so secondary text is separated by size, tracking and case rather
     than by fading it out. muted and faint stay as names for intent, not as
     lower contrast. Anything dimmer than this is a mark or a border and must
     never be named as text. */
  --aeryx-text: #dfe3e8;
  --aeryx-bright: #ffffff;
  --aeryx-heading: var(--aeryx-bright);
  --aeryx-muted: var(--aeryx-50);
  --aeryx-faint: var(--aeryx-50);

  /* ---- decorative marks: rules, crop marks, anything that is not read ---- */
  --aeryx-mark: var(--aeryx-400);

  /* ---- inverted chip: a light tag on a dark page ---- */
  --aeryx-chip: #e9ebee;
  --aeryx-chip-ink: #15171a;

  /* ---- dusk gradient, aeryx.ai only ----
     The one place a neutral gives way, because it is a sky and not a surface.
     Restrained on purpose so it reads as night, not as a purple wash. */
  --aeryx-night: #08090b;
  --aeryx-dusk: #15121f;

  /* ---- terminal chrome ---- */
  --aeryx-mac-close: #ff5f57;
  --aeryx-mac-min: #febc2e;
  --aeryx-mac-max: #28c840;
  --aeryx-error: #ff8d7a;

  /* ---- glow ----
     ambient and hero are wide and faint, for surfaces that catch light.
     beam is two-stop, a tight hot core inside a wide halo, for anything that
     emits: a laser, a lit rule, a cursor. Never a text-shadow on body copy. */
  --aeryx-glow-ambient: 0 0 40px 10px rgba(169, 143, 214, 0.05);
  --aeryx-glow-hero: 0 0 140px 0 rgba(169, 143, 214, 0.1);
  --aeryx-glow-beam: 0 0 6px 1px rgba(169, 143, 214, 0.9), 0 0 28px 8px rgba(169, 143, 214, 0.35);
  --aeryx-glow-focus: 0 0 0 2px rgba(169, 143, 214, 0.6);

  /* ---- scanline texture: 1.2% white every 4th pixel row ---- */
  --aeryx-scanlines: repeating-linear-gradient(0deg, transparent 0 3px, rgba(255, 255, 255, 0.012) 3px 4px);

  /* ---- radius ---- */
  --aeryx-r-xs: 4px;
  --aeryx-r-sm: 6px;
  --aeryx-r-md: 8px;
  --aeryx-r-lg: 12px;
  --aeryx-r-xl: 16px;

  /* ---- spacing ---- */
  --aeryx-s-1: 4px;
  --aeryx-s-2: 8px;
  --aeryx-s-3: 12px;
  --aeryx-s-4: 16px;
  --aeryx-s-5: 24px;
  --aeryx-s-6: 32px;
  --aeryx-s-7: 48px;
  --aeryx-s-8: 64px;
  --aeryx-s-9: 96px;
  --aeryx-s-10: 128px;

  /* ---- containers ---- */
  --aeryx-w-prose: 880px;
  --aeryx-w-wide: 1160px;

  /* ---- type ----
     Small type is tracked out hard, the way a scanner label is. Display type
     is tracked in. */
  --aeryx-mono: "Hack", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --aeryx-sans: system-ui, -apple-system, "Segoe UI", sans-serif;
  --aeryx-track-display: -0.02em;
  --aeryx-track-tight: 0.02em;
  --aeryx-track-label: 0.14em;
  --aeryx-track-wide: 0.18em;

  /* ---- motion ---- */
  --aeryx-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --aeryx-t-micro: 150ms;
  --aeryx-t-base: 250ms;
}
