/* ==========================================================================
   AES TYPE SCALE
   Modular scale, ratio 1.15 from a 16px base, floored at 10.4px.

   The site carried 16 fixed sizes with no relationship between them —
   10.5, 11, 11.5, 12, 12.5, 13.5, 14 ... differences too small to be
   intentional and too many to be a system. They now sit on 6 steps.

   Ratio and base were chosen by measurement, not preference: 1.15/16
   displaces the existing type least (max 6.7%, mean 3.3%) while keeping
   every label at or above its current size. Nothing gets smaller.

   Sizes are in rem so a visitor who has raised their browser text size
   gets a page that scales with it. Fluid clamp() sizes are untouched —
   they are already a scale.

   Generated. Loads last, so it wins on source order at equal specificity.
   To revert: delete this file and its <link> from each page.
   ========================================================================== */

.aes-ap__bar h2{ font-size:0.7562rem }
.aes-ap__demo{ font-size:0.8694rem }
.aes-ap__foot button{ font-size:0.6575rem }
.aes-ap__hint{ font-size:0.8694rem }
.aes-ap__num{ font-size:0.8694rem }
.aes-ap__row label{ font-size:0.8694rem }
.aes-ap__unit{ font-size:0.6575rem }
.aes-ap__x{ font-size:1.0000rem }
.aes-mark-btn__cap{ font-size:0.6575rem }
.aes-spec button{ font-size:0.6575rem }
.aes-spec header{ font-size:0.7562rem }
.aes-spec textarea{ font-size:0.7562rem }
.aes-spec__note{ font-size:0.8694rem }
.band-head p{ font-size:1.1500rem }
.brand .nm b{ font-size:0.8694rem }
.brand .nm small{ font-size:0.6575rem }
.btn{ font-size:0.8694rem }
.card .go{ font-size:1.0000rem }
.card .k{ font-size:0.8694rem }
.card p{ font-size:1.0000rem }
.cfield span{ font-size:0.6575rem }
.cline{ font-size:1.1500rem }
.cred span{ font-size:0.6575rem }
.cred span,
.cfield span{ font-size:0.8694rem }
.dl-card .file{ font-size:0.8694rem }
.dl-card p{ font-size:1.0000rem }
.foot-in{ font-size:0.7562rem }
.hero-tags span{ font-size:0.8694rem }
.meter-ends{ font-size:0.6575rem }
.nav-burger{ font-size:1.3225rem }
.nav-links a{ font-size:0.8694rem }
.owner-link{ font-size:0.7562rem }
.pager .home{ font-size:0.8694rem }
.pager .lab{ font-size:0.8694rem }
.pager a{ font-size:1.0000rem }
.panel h3{ font-size:0.7562rem }
.panel p{ font-size:1.0000rem }
.prose .lead{ font-size:1.1500rem }
.psel{ font-size:0.6575rem }
.ptime{ font-size:0.6575rem }
.ptitle{ font-size:0.6575rem }
.pull small{ font-size:0.8694rem }
.qual-strip span{ font-size:0.7562rem }
.rhero .pos{ font-size:0.8694rem }
.sector-strip span{ font-size:0.7562rem }
.sig{ font-size:1.0000rem }
.signoff{ font-size:1.0000rem }
.skillcol li{ font-size:0.8694rem }
.smr-panel .row{ font-size:1.0000rem }
.spec{ font-size:0.8694rem }
.svc-block li{ font-size:0.8694rem }
.svc-block p{ font-size:1.0000rem }
.vclose{ font-size:0.7562rem }
body{ font-size:1.1500rem }
h3{ font-size:1.1500rem }


/* ==========================================================================
   STAGE 8 — EDITORIAL REBALANCE, FOR TRUE 100%

   The site carried body{zoom:0.8}. With a browser at 100% — confirmed by
   physical measurement, a declared 100mm bar reading exactly 100mm — that
   meant everything rendered at four fifths of its designed size: body copy
   at 12.8px and the smallest labels at 8.4px, well under the 10.4px floor
   the type scale was built to protect.

   The zoom is removed here rather than compensated for. A zoom multiplier
   shrinks everything equally, including what was already correct; the right
   instrument is the layout itself.

   Measured against a 1491px viewport, which is what this site is read at.
   ========================================================================== */

/* ---- 1. no more multiplier ------------------------------------------- */
body{ zoom:1 }

/* ---- 2. reading measure ----------------------------------------------
   .band-head is 760px wide. At 16px that is 103 characters per line, and
   at 18.4px still 90 — both far outside the 60-75 band where prose is
   comfortable. This was true at any zoom, so the multiplier had been
   hiding it rather than causing it. Capping in ch makes the measure
   self-limiting whatever the type size.                                  */
.band-head{ max-width:min(760px, 66ch) }
.band-head p{ max-width:66ch }
.prose .lead,
.prose .block p{ max-width:68ch }
.card p{ max-width:52ch }

/* ---- 3. prose one step up --------------------------------------------
   16px -> 18.4px, the next step on the 1.15 scale. At 100% with a capped
   measure this is the size long-form copy wants; at 80% it would have been
   14.7px, which is why the page felt tight rather than generous.         */
body{ font-size:1.15rem }                 /* 18.4px */
.band-head p{ font-size:1.15rem }
.prose .lead{ font-size:1.15rem }
.card p{ font-size:1.0625rem }            /* 17px — secondary to the lead */

/* ---- 4. vertical rhythm -----------------------------------------------
   Section padding was tuned by eye at 80%, where 84px read as 67px. At
   full size the sections now carry the air the type needs. Expressed in
   rem so they move with the scale rather than drifting from it.          */
section.band{ padding:6rem 0 }            /* 96px, was 84 */
.rhero{ padding:5rem 0 4rem }             /* 80/64, was 70/54 */
.band-head{ margin-bottom:3.25rem }       /* 52px, was 44 */
.prose .block{ margin-bottom:3rem }       /* 48px, was 40 */

@media(max-width:900px){
  section.band{ padding:3.75rem 0 }
  .rhero{ padding:3.25rem 0 2.75rem }
}


/* Visually hidden, but present for assistive technology and for the
   document outline. Used where a page's title is carried by artwork or a
   component rather than a heading element. */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;
}
