/* Club crest image references — one .gaf-crest-<code>{background-image:url(...)}
   rule per current Premier League club, each pointing at its own individually
   cacheable static file under ./crests/<code>.svg (NOT a data URI — see
   crest_data.js for why: an earlier version inlined the full payload per
   player row and blew Template & Differentials' single-tab HTML to 13.4MB).
   gafCrestHtml() (app.js) emits <span class="gaf-crest gaf-crest-<code>">
   per player; the crest bytes are referenced by class, never repeated in
   any page's HTML, and each of the 20 files is its own browser-cacheable
   resource (HTTP/2 multiplexes the fetch on first load; every load after
   that is a cache hit, individually, per club — not one shared blob).
   Source: ~/Desktop/GAFFER/premier_league_crests.html (crest-main layer
   only — the decorative glint/depth layers are excluded; confirmed absent
   from the extracted content, not just unreferenced). Total payload: 20
   files, 859.4 KB combined (SVGO-passed). COV is an outlier at 252KB — its
   source "crest-main" is an SVG wrapper around an embedded raster PNG, not
   a true vector crest; left as-is per instruction (cached-file cost is
   fine, inlining it would not have been). Do not hand-edit; regenerate
   crest_data.js/.css and crests/*.svg together if the source asset
   changes. */
/* GATE — MAGAZINE PASS: `aspect-ratio` per crest, measured directly off
   each SVG's real natural width/height (fetched + Image()-loaded, not
   guessed). Every other consumer of .gaf-crest-XXX sets BOTH width and
   height explicitly (a fixed square), and `aspect-ratio` has zero effect
   whenever both dimensions are already non-auto — so this is a pure
   addition, safe everywhere else in the app. It only activates for a
   consumer that sets ONE dimension (e.g. height) and leaves the other
   auto, which is exactly what fixes the Briefing story-visual bug: these
   crests are NOT all the same natural shape (Chelsea's SVG is a square
   150x150; Liverpool's is a tall 1307x2389 sliver; Tottenham's is
   115x236) — forcing every crest into an identical SQUARE box via
   background-size:contain letterboxes the non-square ones, making them
   render visibly narrower/smaller than the square ones even though the
   box itself is pixel-identical. A fixed height + auto width, sized by
   the crest's own true aspect-ratio, renders every crest at the same
   VISUAL HEIGHT with no letterboxing — the correct fix, not a new
   uniform-square hack. */
.gaf-crest-ARS { background-image: url("./crests/ars.svg?v=1"); aspect-ratio: 292 / 343; }
.gaf-crest-AVL { background-image: url("./crests/avl.svg?v=1"); aspect-ratio: 272 / 368; }
.gaf-crest-BHA { background-image: url("./crests/bha.svg?v=1"); aspect-ratio: 300 / 300; }
.gaf-crest-BOU { background-image: url("./crests/bou.svg?v=1"); aspect-ratio: 152 / 200; }
.gaf-crest-BRE { background-image: url("./crests/bre.svg?v=1"); aspect-ratio: 85 / 85; }
.gaf-crest-CHE { background-image: url("./crests/che.svg?v=1"); aspect-ratio: 150 / 150; }
.gaf-crest-COV { background-image: url("./crests/cov.svg?v=1"); aspect-ratio: 278 / 360; }
.gaf-crest-CRY { background-image: url("./crests/cry.svg?v=1"); aspect-ratio: 283 / 353; }
.gaf-crest-EVE { background-image: url("./crests/eve.svg?v=1"); aspect-ratio: 313 / 320; }
.gaf-crest-FUL { background-image: url("./crests/ful.svg?v=1"); aspect-ratio: 274 / 365; }
.gaf-crest-HUL { background-image: url("./crests/hul.svg?v=1"); aspect-ratio: 158 / 200; }
.gaf-crest-IPS { background-image: url("./crests/ips.svg?v=1"); aspect-ratio: 283 / 353; }
.gaf-crest-LEE { background-image: url("./crests/lee.svg?v=1"); aspect-ratio: 163 / 200; }
.gaf-crest-LIV { background-image: url("./crests/liv.svg?v=1"); aspect-ratio: 1307 / 2389; }
.gaf-crest-MCI { background-image: url("./crests/mci.svg?v=1"); aspect-ratio: 316 / 316; }
.gaf-crest-MUN { background-image: url("./crests/mun.svg?v=1"); aspect-ratio: 296 / 300; }
.gaf-crest-NEW { background-image: url("./crests/new.svg?v=1"); aspect-ratio: 300 / 302; }
.gaf-crest-NFO { background-image: url("./crests/nfo.svg?v=1"); aspect-ratio: 94 / 200; }
.gaf-crest-SUN { background-image: url("./crests/sun.svg?v=1"); aspect-ratio: 300 / 250; }
.gaf-crest-TOT { background-image: url("./crests/tot.svg?v=1"); aspect-ratio: 115 / 236; }
