/* type-calm-agents · /ai-agents onto the calm type layer (user, 2026-10-04: "fix the typography on home page and agent page based on our new
   style"). Type only: family, weight, size, line height, tracking, and a text colour where contrast needed it. No layout, spacing, copy,
   motion or asset change; the page is frozen otherwise (K1-K3).
   Loaded after type-calm.css and the nine asset stylesheets. The body carries "pg-ag type-calm" but not "elv": calm.css restyles .btn
   heights and the FAQ markers, which would move this page.
   Two kinds of text:
   - page text (headings, body, captions, links, the lifecycle index, the roster, the Authorize foot) takes Inter, one weight (400) with
     light 300 display, hierarchy by size and tone;
   - product UI inside the motion assets (tiles, consoles, diagrams) keeps Geist and its own weights, and mono stays Geist Mono. Its
     metrics were drawn for Geist, so it is pinned back here rather than reflowed. */
body.pg-ag{--sans-ui:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}

/* ---- product UI: back to Geist and v4's inks, with no inherited calm tracking ---- */
body.pg-ag :where(.bento .tile .art,.aa-rollcall,.aa-rl-fig,.aa-jn-stage,.aa-gates,.aa-siding,.aa-rc-stage,.aa-sw-stage){
  --sans:var(--sans-ui);font-family:var(--sans);letter-spacing:normal;
  --ink:#0a0a0a;--ink-80:rgba(10,10,10,.8);--ink-60:rgba(10,10,10,.6);--ink-40:rgba(10,10,10,.42);--ink-15:rgba(10,10,10,.15);
  --ink-08:rgba(10,10,10,.08);--ink-06:rgba(10,10,10,.06);--hair:#e6e6e3}
body.pg-ag :where(.aa-rollcall,.aa-rl-fig,.aa-rc-stage,.aa-sw-stage){color:var(--ink)}   /* the light ones inherit body ink */
/* type-calm's one-weight rule (body.type-calm *) outranks a few of the mock-ups' own weights; give them back */
body.pg-ag .idc .ok *,body.pg-ag .conv .res,body.pg-ag .aa-siding .aa-sd-ok *,body.pg-ag .aa-sw-stage .side .org i,
body.pg-ag .aa-sw-stage .main-h b,body.pg-ag .aa-sw-stage .st *{font-weight:500}
/* mono stays mono, at its own weight and tracking */
body.pg-ag .ann .ann-tag{font-weight:500}
body.pg-ag :is(.aa-route .aa-rt-i,.aa-jn-note,.aa-roster .aa-rs-cap,.aa-roster .aa-rs-demo){letter-spacing:normal}
/* the mono labels that carry meaning in the page's own diagrams, raised to 4.5:1 (were 2.9:1 and 4.4:1); "Demo data" tags stay as drawn */
body.pg-ag :is(.aa-route .aa-rt-plabel,.aa-route .aa-rt-i,.aa-roster .aa-rs-lab){color:var(--ink-60)}
body.pg-ag .aa-junction .aa-jn-note{color:rgba(255,255,255,.5)}

/* ---- hero (K1 composition kept): H1 52/58 light, the second line dim in the same family; lede 17/27 ---- */
body.pg-ag .hero .h1{font-size:52px;line-height:58px;letter-spacing:-.032em}
body.pg-ag .hero .h1,body.pg-ag .hero .h1 *{font-weight:300}
body.pg-ag .hero .h1 .l2{margin-top:0;font-family:var(--sans);font-size:inherit;line-height:inherit;letter-spacing:inherit;
  font-variation-settings:normal;color:rgba(255,255,255,.55)}
body.pg-ag .hero .sub{font-size:17px;line-height:27px;letter-spacing:-.002em;color:rgba(255,255,255,.62)}
body.pg-ag .tile .tfoot h3,body.pg-ag .tile .tfoot a,body.pg-ag .tile .tfoot a *{font-weight:400}
body.pg-ag .tile .tfoot a{color:rgba(255,255,255,.55)}            /* was .45: 4.2:1 on the tile */
body.pg-ag .tile .tfoot a:hover{color:#fff}
body.pg-ag .cap{color:var(--ink-60)}                               /* was ink-40 / white .35: under 4.5:1 */
body.pg-ag :is(.hero,.dark) .cap{color:rgba(255,255,255,.55)}

/* ---- section heads: H2 38/44 light, the dim line at 4.5:1; body 16/25 ---- */
body.pg-ag .h2{font-size:38px;line-height:44px;letter-spacing:-.025em}
body.pg-ag .h2,body.pg-ag .h2 *{font-weight:300}
body.pg-ag .h2 .dim{display:block;color:var(--ink-60)}   /* its own block, so text-wrap:balance sets it without a one-word last line */
body.pg-ag .dark .h2 .dim{color:rgba(255,255,255,.55)}
body.pg-ag .body{font-size:16px;line-height:25px;letter-spacing:.003em}
/* the Authorize band (K3) keeps its own text colours on the blue; type-calm's .body / .h2 .dim would otherwise win */
body.pg-ag .aa-gates-band .h2 .dim{color:rgba(255,255,255,.7)}
body.pg-ag .aa-gates-band .body{color:rgba(255,255,255,.92)}

/* ---- #problem: the lifecycle index (ag-route) is page text; its mono numerals and phase labels stay mono ---- */
body.pg-ag .aa-route .aa-rt-n{font-weight:300;letter-spacing:-.015em}
body.pg-ag .aa-route .aa-rt-prob{font-weight:400;letter-spacing:-.006em}
body.pg-ag .aa-route .aa-rt-fix b{font-weight:400}
body.pg-ag .aa-route-rail a{font-weight:400;letter-spacing:.005em}

/* ---- #identify and #govern: the short lists beside the copy ---- */
body.pg-ag .aa-rootline .aa-rl-kinds h3,body.pg-ag .aa-sw-stops h3{font-size:16px;line-height:24px;font-weight:400;letter-spacing:-.003em}
body.pg-ag .aa-rootline .aa-rl-kinds p,body.pg-ag .aa-sw-stops p{font-size:15px;line-height:23px;letter-spacing:.003em}

/* ---- #authorize foot: the pull line leaves the serif for a light Inter line; emphasis by tone ---- */
body.pg-ag .aa-gates-foot .aa-gf-pull{font-family:var(--sans);font-weight:300;font-variation-settings:normal;letter-spacing:-.025em}
body.pg-ag .aa-gates-foot .aa-gf-close p b{font-weight:400}

/* ---- #stack: the roster's names are light display, the rest one weight ---- */
body.pg-ag .aa-roster .aa-rs-name{font-weight:300;letter-spacing:-.015em}

@media (max-width:1100px){
  body.pg-ag .hero .h1{font-size:46px;line-height:52px}
}
@media (max-width:760px){
  body.pg-ag .hero .h1{font-size:36px;line-height:42px;letter-spacing:-.026em}
  body.pg-ag .h2{font-size:30px;line-height:36px}
}
