/* AdsPatch design tokens — copied from docs/Brand/tokens.css.
   SOURCE OF TRUTH: docs/Brand/tokens.css. Do not edit this copy by hand;
   edit the file in docs/Brand/ and re-copy so the brand book stays canonical. */

/* AdsPatch design tokens — v1.1, September 2026
   The brand book (AdsPatch_Brand_Book_v1.pdf) is the source of truth.
   Import this file, then style through the tokens. Never hard-code a hex. */

:root {
  /* ---- Ground & surfaces ---- */
  --ap-rack:        #0F1A1F;  /* primary dark ground, ~55% of a layout */
  --ap-panel:       #17262C;  /* cards and panels on Rack. One step up, never two */
  --ap-panel-2:     #1E323A;  /* chips and inset wells on Panel */
  --ap-hairline:    #2A434B;  /* 1px separators on dark */

  --ap-silk:        #EAEFED;  /* type on Rack, and the light ground, ~30% */
  --ap-paper:       #E1E8E6;  /* cards and panels on Silk */
  --ap-hairline-lt: #C6D2D0;  /* 1px separators on light */

  /* ---- Type colours ---- */
  --ap-mist:        #9FB3B4;  /* secondary text on dark. 10.0:1 on Rack */
  --ap-slate:       #52666A;  /* secondary text on light. 5.2:1 on Silk */

  /* ---- Signal ---- */
  /* v1.1, September 2026. Brass was previously capped at ~8% of a layout and
     confined to dark grounds. The public site now uses it the other way round,
     as a full-bleed GROUND carrying Rack type, so the cap no longer describes
     what the brand does and has been withdrawn. What replaces it is a pairing
     rule, which is the thing that was actually protecting legibility:

       Brass as a GROUND  -> type is always Rack. Measured 8.2:1, AA at every
                             size and AAA at large. This is the .ap-on-brass
                             pairing, now the primary public-site ground.
       Brass as INK       -> only ever on Rack or Panel. Never on Silk, Paper
                             or Brass itself.
       Copper as INK      -> the light-ground signal. Brass still fails AA as
                             ink on Silk, so Copper is still the only way to
                             say 'signal' on a light ground.

     The one thing that has not changed: Brass and Copper are never used as
     ink on each other's grounds. */
  --ap-brass:       #E8A33D;  /* the signal. A ground under Rack type, or ink on Rack */
  --ap-brass-deep:  #C9861F;  /* Brass one step down: hover fills and rules drawn on Brass */
  --ap-copper:      #9A5E14;  /* the same signal as ink on LIGHT grounds. Brass fails AA there */

  /* ---- Semantic states (not brand colours) ---- */
  --ap-patch:       #4E9E92;  /* secondary data series, verified / replaced */
  --ap-alert:       #D4553F;  /* banned / failed only */

  /* ---- Type ---- */
  --ap-font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --ap-font-data:    "Azeret Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --ap-font-body:    "Instrument Sans", "Helvetica Neue", Arial, sans-serif;

  /* ---- Geometry ---- */
  --ap-radius-card:  12px;
  --ap-radius-chip:  5px;
  --ap-radius-sticker: 16px; /* the drawn card on a Brass ground, which carries a rule not a shadow */

  /* The drawn rule. On Brass a 1px hairline disappears, so panels on the
     public site are bounded by a 2px Rack rule instead of a shadow. */
  --ap-rule:         2px;
  --ap-motion:       180ms cubic-bezier(.2, .7, .3, 1); /* 120–260ms, ease-out, no bounce */
}

/* Text on a Brass surface is always Rack. White on Brass is 2.2:1 and fails. */
.ap-on-brass { background: var(--ap-brass); color: var(--ap-rack); }

/* Every figure that lines up in a column uses the data voice with tabular numerals. */
.ap-figure {
  font-family: var(--ap-font-data);
  font-variant-numeric: tabular-nums;
}

@media (prefers-reduced-motion: reduce) {
  :root { --ap-motion: 1ms; }
}
