/* ===================================================================
   STILLS — typeface
   Heming is a variable font with a wght axis of 300–700 ONLY. The old file
   claimed 100–900, which makes browsers clamp silently; the range below is
   the honest one.

   The second src is a load-failure fallback, not a weight fallback: if the
   variable file never arrives, the static Regular still renders in Heming
   rather than dropping the whole site to Helvetica.

   GLYPH WARNING — these codepoints are mapped in Heming but have zero
   contours, so they render as BLANK SPACE and the browser will not fall
   back:  ·  ©  §  …  •  °  ½
   Never put them in copy. Use an em dash, a CSS-drawn dot, or plain words.
   =================================================================== */

@font-face{
  font-family:Heming;
  src:url("fonts/Heming-Variable.ttf") format("truetype"),
      url("fonts/Heming-Regular.ttf") format("truetype");
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}

:root{
  --heming:Heming,"Helvetica Neue",Helvetica,Arial,sans-serif;

  /* THE CAPITAL D IS DRAWN TOO WIDE, and this is the correction.
     Measured out of the font binary rather than guessed:

       glyph   advance   ink ends   space after
         B       570        540         30
         H       570        540         30
         T       570        540         30
       > D       730        540        190

     Every capital whose ink ends at 540 is given a 570 advance — except D,
     which is given 730. It carries 160 units of empty space no other letter
     has, which is why "DISPOSABLE" reads as "D ISPOSABLE" and why it only
     ever looks wrong after that one letter.

     The exact correction is -0.16em. This is -0.14em, which leaves D on a
     50-unit sidebearing against everyone else's 30 — a hair loose, and
     chosen because a slightly wide D is invisible while a tight one collides
     with a following round letter at display sizes. Change it here and it
     changes everywhere. */
  --d-kern:-0.14em;
}

html,body,button,input,textarea,select{font-family:var(--heming)}

/* CAREFUL WITH BARE `span` RULES ANYWHERE ON THE SITE. kern.js wraps every
   capital D in the document body in <span class="dk">, so a rule like
   `.card span{display:block}` will land on one and break the word it is
   sitting inside — "GOLDEN MIDS" once rendered as GOL / D / EN MI / D / S
   because a caption rule said `display:block` on `span`. The span is not in
   any markup you can grep for; it appears at DOMContentLoaded. Use a child
   combinator (`> span`), a class, or a different element.

   MARGIN, NOT LETTER-SPACING, and the distinction is load-bearing.
   `letter-spacing` is inherited, so setting it on this span REPLACES whatever
   tracking the heading already had rather than adding to it — inside the hero
   h1 (-.048em) a -0.14em rule would be a -0.092em correction, and inside the
   eyebrow (+.21em) it would fight the tracking it is supposed to preserve.
   A negative right margin is purely additive and composes with any of them. */
.dk{margin-right:var(--d-kern)}
