/* ==========================================================================
   AG NOVA — 01 TOKENS
   The single source of truth for colour, type, spacing and motion.
   Change a value here and it propagates across the entire terminal.
   Nothing in this file should be a rule. Variables only.
   ========================================================================== */

:root {

  /* ----------------------------------------------------------------------
     STRUCTURE COLOURS — the physical body of the ship
     Deep navy. Never pure black, never grey, never green.
     ---------------------------------------------------------------------- */

  /* Page background. The void the chassis sits in. Use on <body> only. */
  --nova-space: #08111B;

  /* The main chassis plate. Use for the OS frame, header and taskbar. */
  --nova-chassis: #0E1A2A;

  /* Default panel surface. Use for every standard content panel. */
  --nova-panel: #142437;

  /* Raised or highlighted panel surface. Use for nested blocks,
     table header rows, and the inside of dossier cards. */
  --nova-panel-alt: #1A2E45;

  /* Structural border. Use for the visible edge of every panel.
     This is what makes the interface feel built rather than floated. */
  --nova-border: #314B63;

  /* Internal divider. Use for hairlines, table rules, dashed separators
     and background grid lines. Always quieter than --nova-border. */
  --nova-grid: #22374D;


  /* ----------------------------------------------------------------------
     OPERATIONAL ACCENTS — semantic, not decorative
     Each accent means something. Do not use them interchangeably.
     ---------------------------------------------------------------------- */

  /* CYAN = the system is alive and operating.
     Use for: telemetry, active nav state, links, LIVE status, charts,
     wireframe graphics, anything reporting a live reading. */
  --nova-cyan: #8FD8E0;

  /* CYAN BRIGHT = a single value worth looking at right now.
     Use sparingly. One or two per screen, never a whole block. */
  --nova-cyan-bright: #B8F3FF;

  /* ORANGE = work in progress, warnings, captain deviations.
     Use for: IN_DEV status, warning readings, active mission markers,
     anything the captain is currently disturbing. */
  --nova-orange: #E6822F;

  /* IVORY = knowledge and archive.
     Use for: body copy emphasis, quotes, STANDBY status, declassified
     sections, brand moments. This is the warm human layer. */
  --nova-ivory: #DCCFAA;

  /* DANGER = genuine failure only.
     Do not use for decoration. If everything is critical, nothing is. */
  --nova-danger: #D56756;


  /* ----------------------------------------------------------------------
     TEXT COLOURS
     ---------------------------------------------------------------------- */

  /* Headings and primary reading text. */
  --nova-text-primary: #F3F3EE;

  /* Body copy, descriptions, paragraphs. The default reading colour. */
  --nova-text-secondary: #CBD5E1;

  /* Labels, metadata, field names, secondary data. */
  --nova-text-muted: #7D90A6;

  /* Lowest tier. Background telemetry, log feed, decorative codes.
     Deliberately hard to read. Never put real content here. */
  --nova-text-diagnostic: #587187;


  /* ----------------------------------------------------------------------
     DERIVED SURFACES — translucent layers built from the accents
     ---------------------------------------------------------------------- */

  --nova-cyan-dim: rgba(143, 216, 224, 0.12);
  --nova-cyan-line: rgba(143, 216, 224, 0.35);
  --nova-orange-dim: rgba(230, 130, 47, 0.14);
  --nova-orange-line: rgba(230, 130, 47, 0.40);
  --nova-ivory-dim: rgba(220, 207, 170, 0.12);
  --nova-ivory-line: rgba(220, 207, 170, 0.38);
  --nova-danger-dim: rgba(213, 103, 86, 0.14);
  --nova-scrim: rgba(8, 17, 27, 0.86);
  --nova-highlight: rgba(255, 255, 255, 0.04);
  --nova-recess: rgba(0, 0, 0, 0.3);


  /* ----------------------------------------------------------------------
     TYPOGRAPHY
     Two roles only: structure and data. Body copy borrows from structure.
     ---------------------------------------------------------------------- */

  /* Headings, section titles, taskbar, buttons. Wide letter spacing. */
  --font-heading: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Paragraphs and descriptions. */
  --font-body: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* All data: IDs, stardates, statuses, telemetry, log feed, code. */
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, monospace;

  --fs-micro: 0.625rem;   /* 10px — panel codes, telemetry labels */
  --fs-tiny: 0.6875rem;   /* 11px — metadata, field labels */
  --fs-small: 0.75rem;    /* 12px — data rows, taskbar */
  --fs-base: 0.875rem;    /* 14px — body copy */
  --fs-mid: 1rem;         /* 16px — panel titles */
  --fs-large: 1.25rem;    /* 20px — page titles */
  --fs-xl: 1.75rem;       /* 28px — hero numbers, dossier titles */
  --fs-display: 2.25rem;  /* 36px — rare */

  --ls-wide: 0.08em;      /* Default for headings and labels */
  --ls-wider: 0.16em;     /* Panel codes, taskbar, stamps */
  --ls-data: 0.03em;      /* Monospace data */


  /* ----------------------------------------------------------------------
     SPACING — 4px base scale
     ---------------------------------------------------------------------- */

  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.25rem;
  --sp-6: 1.5rem;
  --sp-8: 2rem;
  --sp-10: 2.5rem;
  --sp-12: 3rem;
  --sp-16: 4rem;


  /* ----------------------------------------------------------------------
     STRUCTURE METRICS
     ---------------------------------------------------------------------- */

  --border-thin: 1px;
  --border-structural: 2px;    /* Standard panel edge */
  --border-heavy: 3px;         /* Emphasised panel edge */
  --chamfer: 10px;             /* Clipped corner size on panels */
  --chamfer-sm: 6px;           /* Clipped corner on chips and buttons */

  --panel-gap: var(--sp-4);    /* Grid gap between panels. Rack spacing. */
  --shell-pad: var(--sp-5);    /* Inner padding of the OS frame */
  --content-max: 1600px;       /* Maximum terminal width */

  --header-h: 46px;
  --taskbar-h: 56px;


  /* ----------------------------------------------------------------------
     MOTION
     Durations live here so the whole terminal can be retuned at once.
     ---------------------------------------------------------------------- */

  /* The page-to-page retrieving transition. This is the value to tweak
     if navigation feels too slow or too abrupt. 200ms–400ms is the range. */
  --t-navigation: 320ms;

  /* Mechanical key press. Must stay fast to feel physical, not soft. */
  --t-press: 70ms;

  /* Hover and focus changes. */
  --t-hover: 140ms;

  /* Slow ambient drift on telemetry bars. */
  --t-ambient: 1200ms;

  --ease-mechanical: cubic-bezier(0.2, 0.8, 0.3, 1);
  --ease-snap: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-hardware: cubic-bezier(0.4, 0.0, 0.2, 1.2);
}
