/* Whisper Maps site tokens
 *
 * Controlling records, repo-resident under /docs:
 *   Whisper Maps Brand Foundation v2.0            master tokens and semantics
 *   Whisper Maps City Artwork Design System v4.0  poster object and edition art
 *   Whisper Maps Marketing Site Design Guidelines v4.0
 *
 * Master brand tokens never change per city. City edition tokens live on a
 * [data-city] selector and are the only values a new city replaces.
 *
 * Do not add marketing colors. Do not hardcode hex outside this file.
 */

:root {
  /* Master brand tokens. Brand Foundation v2.0 section 05. */
  --ink: #0C0E13;    /* core dark, canvas, type plate */
  --crypt: #14171F;  /* raised dark, cards, secondary dark layers */
  --bone: #ECE3D0;   /* core light, primary light text, paper field */
  --amber: #E8A94C;  /* action and activation only */

  /* LOCKED SEMANTIC RULE, Brand Foundation v2.0.
   * Gaslight Amber is action and activation. It is never sky, sunlight,
   * window glow, lamp glow, foliage, a city color, or a general decorative
   * warm color. In the site stylesheet --amber is used by the CTA component,
   * by the master-brand step and beat marks authorized for the current Home
   * slice, and by the :focus-visible outline. Those are its only uses. */

  /* Bone at reduced emphasis, on dark fields.
   * Measured against Ink: quiet 8.07 to 1, faint 5.11 to 1.
   * Against Crypt: 7.76 and 5.01. Both clear WCAG AA for normal text.
   * Do not lower these alphas without remeasuring. */
  --bone-quiet: rgba(236, 227, 208, 0.72);
  --bone-faint: rgba(236, 227, 208, 0.55);
  --hairline: rgba(236, 227, 208, 0.16);

  /* Ink at reduced emphasis, on the light Bone field.
   * Measured against Bone: quiet 8.52 to 1, faint 5.00 to 1. Both clear WCAG
   * AA for normal text. Faint was 0.58 during the build, which measured 4.42
   * and failed, so it is held at 0.62. Do not lower it without remeasuring. */
  --ink-quiet: rgba(12, 14, 19, 0.78);
  --ink-faint: rgba(12, 14, 19, 0.62);
  --hairline-ink: rgba(12, 14, 19, 0.14);

  /* Type. Brand Foundation v2.0 section 06. */
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-ui: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --text-body: 1.0625rem;
  --text-small: 0.875rem;
  --text-eyebrow: 0.75rem;
  --leading-body: 1.65;

  /* Spacing, 8px base */
  --s1: 0.5rem;
  --s2: 1rem;
  --s3: 1.5rem;
  --s4: 2rem;
  --s5: 3rem;
  --s6: 4rem;
  --s7: 6rem;

  --measure: 34rem;
  --page-max: 78rem;

  /* Motion. Restrained and editorial. Zeroed under reduced motion. */
  --motion: 160ms;
  --ease: ease-out;
}

/* City edition tokens.
 *
 * Brand Foundation v2.0 approved planned city accent library. Each city has
 * one accent and one deeper companion. Accents carry the frame, the city
 * edition brand line, supporting rules, and edition-signaling cues. An accent
 * is never a button fill, and Amber is never used as a city color.
 *
 * St. Augustine deliberately declares nothing. It does not appear in the
 * approved accent library, and no accent is invented for it here.
 */
[data-city="savannah"] {
  --accent: #8FCBC4;       /* Haint Blue */
  --accent-deep: #5AA39C;  /* Haint Deep */
}

[data-city="charleston"] {
  --accent: #7791D5;       /* Indigo, approved planned accent */
}

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