/* ============================================================
   SOAR THEME — "ELEVATED" v3.01
   Token contract: identical variable names to heritage.css, so the
   whole design swaps by switching this one <link>.

   ── TYPE ──────────────────────────────────────────────────
   STILL ONE FAMILY. That rule is not relaxed.

   What changed in v3.01 is WHICH family. The stack was
   "Helvetica Neue, Helvetica, Arial" — which on most Windows machines
   renders as Arial, and that is the literal definition of generic. It
   also gave no real weight range and no width axis, so hierarchy had to
   come from size alone.

   Now: ARCHIVO, a variable grotesk with BOTH a weight and a width axis.
   - One family, so labels, body and display are still the same voice —
     the client's hard rule is intact.
   - NOT on the AI-tell list. Geist, Inter and Space Grotesk stay banned.
     Archivo is a grotesk drawn for performance at display sizes, closer
     to the Suisse Int'l that Path Robotics uses than Helvetica ever was.
   - The width axis is where the editorial character comes from: display
     runs slightly EXPANDED, micro-labels run CONDENSED and tracked.
     Real hierarchy from a single family — exactly what the rule asks for.

   ── COLOR ─────────────────────────────────────────────────
   Navy + muted gold read dull because they sat at the SAME middle value:
   a mid navy against a mid gold on a mid blue-grey is three mid-tones and
   no contrast anywhere. Fixed by pushing the ends apart, not by inventing
   a new brand:

   - The dark deepens to an INK NAVY (#08192F) — still navy, still SOAR,
     just richer. A grey-black would read as somebody else's brand.
   - The accent moves from muted #DDA63E to marigold #EFAE22: SOAR's real
     mark is #FFDC25, so this returns energy the "elevated" theme had
     drained, without going lemon.
   - Paper becomes a warm bone. This is the actual fix — a cool grey ground
     desaturates a warm accent, which is why navy + gold looked dead. Blue
     and amber are complements; they need a warm field to resolve on.
   - Pure white returns as a PANEL colour only, for blocks that overlap a
     dark band. Bone / white / ink-navy is a real three-value system.

   ── BOLDNESS ──────────────────────────────────────────────
   SOAR's CURRENT site, for all its faults, has one thing this redesign had
   lost: nerve. "Who We Are" is set heavy and white on a saturated navy, and
   the CTA is a solid block of brand yellow with black type. It is loud, and
   it reads more confident than a tasteful medium-weight page.

   So display weight goes 520 -> 600, headings 600 -> 700, and the accent is
   held at full brand strength (#FFC629, near the real #FFDC25) and used as a
   SOLID FILL rather than a tint. Path Robotics' medium weight stays only
   where it belongs — the huge hero line, where 600 at 100px would shout.
   The short rule under a heading is theirs too; it is kept.

   ── SHAPE ─────────────────────────────────────────────────
   Radii collapse from 12-16px to 2px. Rounding every card at 12px+ is
   the SaaS-template tell; the references that read as serious (Anduril,
   Saildrone, Hermeus) are square. SOAR's heritage brand is square too,
   so this is a return, not an invention.
   ============================================================ */
:root{
  /* ---- color: ONE voice sings ----
     Measured from the reference sites' own CSS in OKLCH: Anduril, Saildrone,
     Path Robotics and Hermeus each run exactly ONE color above C=0.05 and clamp
     everything else to near-neutral. SOAR was running THREE (navy .077, yellow
     .178, green .158) — which is why it read as hazard signage, not design.

     The one voice: DAWN AMBER, the brand yellow shifted warm toward the
     dawn/dust brief (Hermeus sits at #F2A500 and reads aerospace, not hazard).
     Navy survives as the recognisable dark, chroma pulled down so it grounds
     instead of competing. Green leaves the UI entirely; the environmental cue
     lives in imagery and language now, not in a third accent. */
  --c-bg:            #F3F3F0;   /* near-neutral stone */
  --c-surface:       #FFFFFF;
  --c-surface-2:     #E8E8E4;
  --c-ink:           #191D22;   /* chroma-clamped near-black */
  --c-muted:         #626870;
  --c-border:        #DBDBD5;
  --c-primary:       #12233C;   /* SOAR navy, deepened + quieted */
  --c-primary-strong:#0C1626;   /* the dark bands */
  --c-on-primary:    #FFFFFF;
  --c-accent:        #DC740C;   /* dawn orange, hue 30deg — the logo navy's complement (214+180), near neighbour of the logo yellow at 50deg. Derived from the mark, not borrowed. */
  --c-on-accent:     #FFFFFF;
  --c-accent-2:      #DC740C;   /* alias — one accent */
  --c-on-accent-2:   #FFFFFF;
  --c-link:          #191D22;   /* links are ink + underline, not a color */


  /* ---- type: ONE family, weight + WIDTH give the hierarchy ---- */
  --font-display: Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-heading: Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-body:    Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono:    Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --fw-display: 600;   /* see BOLDNESS note — their own site is heavy, and it works */
  --fw-heading: 700;
  --fw-body:    400;
  --fw-strong:  600;
  /* the width axis — the editorial lever */
  --wd-display: 112;   /* slightly expanded: authority at large sizes */
  --wd-body:    100;
  --wd-label:    88;   /* condensed + tracked + uppercase for micro-labels */

  /* ---- scale ---- */
  --text-display: 64px;
  --text-h1:      48px;
  --text-h2:      36px;
  --text-h3:      23px;
  --text-h4:      18px;
  --text-body:    17px;
  --text-body-lg: 19px;
  --text-small:   14px;
  --text-caption: 12px;
  --tracking-display: -0.015em;  /* still barely-there; tight tracking reads as AI */
  --leading-body: 1.62;

  /* ---- vertical rhythm (one source of truth) ---- */
  --section-y:       clamp(64px, 6.4vw, 96px);
  --section-y-tight: clamp(44px, 4.4vw, 64px);

  /* ---- motion (GPU-composited; smooth on any thread) ---- */
  --ease-out:        cubic-bezier(.22,.61,.36,1);
  --ease-out-strong: cubic-bezier(.16,.84,.34,1);

  /* ---- shape: sharp. see the header note ---- */
  --radius-sm: 0px;
  --radius:    2px;
  --radius-lg: 2px;
  --btn-radius:  2px;
  --btn-case:    none;
  --btn-weight:  600;
  --btn-tracking:normal;
  --btn-padding: 15px 28px;
}
