/* ==========================================================================
   VILARCI - SUBSETTED FONT AWESOME

   !! DEPLOYING A CHANGE HERE? RUN FROM THE REPO ROOT:

          pwsh .\stamp-cache-version.ps1

      Served immutable for a year, so the ?v= in the pages is the only thing
      that makes a browser fetch a new copy.

   Replaces the Font Awesome CDN, which cost 73,890 bytes of CSS plus 183,692
   bytes of webfont to deliver 2,441 icons -- of which this site renders 120.

     fa-solid-900.woff2   158,220 ->  13544 bytes  (115 glyphs)
     fa-regular-400.woff2  25,472 ->   1196 bytes  (5 glyphs)

   Built with pyftsubset (fontTools), keeping only the codepoints below.

   ADDING AN ICON: putting a new fa-* class in the markup is NOT enough --
   its glyph is not in these files. Add the name to the source list and
   regenerate, or it renders as blank. That is the tradeoff for 95% smaller
   fonts, and it is why fa-brands is gone entirely (see vlr-icons.js).

   Two font files, not one: fa-heart occupies U+f004 in BOTH families, so
   merging would make one shape overwrite the other -- and outline-vs-filled
   heart is the wishlist saved/unsaved state.
   ========================================================================== */

@font-face {
    font-family: 'Vilarci FA Solid';
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url('fonts/vlr-fa-solid.woff2') format('woff2');
}
@font-face {
    font-family: 'Vilarci FA Regular';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('fonts/vlr-fa-regular.woff2') format('woff2');
}

/* Base: mirrors Font Awesome's own so existing markup needs no changes. */
.fa, .fas, .fa-solid, .far, .fa-regular {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
}
.fa::before, .fas::before, .fa-solid::before,
.far::before, .fa-regular::before { content: var(--fa); }

.fa, .fas, .fa-solid { font-family: 'Vilarci FA Solid'; font-weight: 900; }
.far, .fa-regular    { font-family: 'Vilarci FA Regular'; font-weight: 400; }

/* Only modifier the site actually uses. */
.fa-spin { animation: vlr-fa-spin 2s linear infinite; }
@keyframes vlr-fa-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fa-spin { animation: none; } }

/* ---- glyphs: solid (115) ---- */
.fa-arrow-down-wide-short { --fa: "\f160"; }
.fa-arrow-left { --fa: "\f060"; }
.fa-arrow-right { --fa: "\f061"; }
.fa-arrow-up { --fa: "\f062"; }
.fa-arrow-up-wide-short { --fa: "\f161"; }
.fa-baby-carriage { --fa: "\f77d"; }
.fa-bag-shopping { --fa: "\f290"; }
.fa-ban { --fa: "\f05e"; }
.fa-bars { --fa: "\f0c9"; }
.fa-basket-shopping { --fa: "\f291"; }
.fa-blender { --fa: "\f517"; }
.fa-bolt { --fa: "\f0e7"; }
.fa-bolt-lightning { --fa: "\e0b7"; }
.fa-book { --fa: "\f02d"; }
.fa-book-open { --fa: "\f518"; }
.fa-bowl-food { --fa: "\e4c6"; }
.fa-bowl-rice { --fa: "\e2eb"; }
.fa-box-open { --fa: "\f49e"; }
.fa-broom { --fa: "\f51a"; }
.fa-bug { --fa: "\f188"; }
.fa-building { --fa: "\f1ad"; }
.fa-building-columns { --fa: "\f19c"; }
.fa-calendar-check { --fa: "\f274"; }
.fa-camera { --fa: "\f030"; }
.fa-car { --fa: "\f1b9"; }
.fa-carrot { --fa: "\f787"; }
.fa-cart-plus { --fa: "\f217"; }
.fa-cart-shopping { --fa: "\f07a"; }
.fa-chair { --fa: "\f6c0"; }
.fa-chalkboard-user { --fa: "\f51c"; }
.fa-champagne-glasses { --fa: "\f79f"; }
.fa-check-double { --fa: "\f560"; }
.fa-chevron-down { --fa: "\f078"; }
.fa-chevron-left { --fa: "\f053"; }
.fa-chevron-right { --fa: "\f054"; }
.fa-circle-check { --fa: "\f058"; }
.fa-circle-exclamation { --fa: "\f06a"; }
.fa-code { --fa: "\f121"; }
.fa-coins { --fa: "\f51e"; }
.fa-comments { --fa: "\f086"; }
.fa-couch { --fa: "\f4b8"; }
.fa-credit-card { --fa: "\f09d"; }
.fa-dumbbell { --fa: "\f44b"; }
.fa-faucet { --fa: "\e005"; }
.fa-file-signature { --fa: "\f573"; }
.fa-gift { --fa: "\f06b"; }
.fa-globe { --fa: "\f0ac"; }
.fa-graduation-cap { --fa: "\f19d"; }
.fa-grip { --fa: "\f58d"; }
.fa-hand-holding-heart { --fa: "\f4be"; }
.fa-hands-praying { --fa: "\f684"; }
.fa-handshake { --fa: "\f2b5"; }
.fa-heart { --fa: "\f004"; }
.fa-heart-pulse { --fa: "\f21e"; }
.fa-hourglass-end { --fa: "\f253"; }
.fa-hourglass-half { --fa: "\f252"; }
.fa-house { --fa: "\f015"; }
.fa-info-circle { --fa: "\f05a"; }
.fa-key { --fa: "\f084"; }
.fa-laptop { --fa: "\f109"; }
.fa-laptop-code { --fa: "\f5fc"; }
.fa-lightbulb { --fa: "\f0eb"; }
.fa-location-crosshairs { --fa: "\f601"; }
.fa-location-dot { --fa: "\f3c5"; }
.fa-lock { --fa: "\f023"; }
.fa-magnifying-glass { --fa: "\f002"; }
.fa-map-location-dot { --fa: "\f5a0"; }
.fa-mobile-screen-button { --fa: "\f3cd"; }
.fa-motorcycle { --fa: "\f21c"; }
.fa-music { --fa: "\f001"; }
.fa-paint-roller { --fa: "\f5aa"; }
.fa-palette { --fa: "\f53f"; }
.fa-paper-plane { --fa: "\f1d8"; }
.fa-paw { --fa: "\f1b0"; }
.fa-pen { --fa: "\f304"; }
.fa-pen-nib { --fa: "\f5ad"; }
.fa-pen-ruler { --fa: "\f5ae"; }
.fa-pen-to-square { --fa: "\f044"; }
.fa-people-group { --fa: "\e533"; }
.fa-person-chalkboard { --fa: "\e53d"; }
.fa-person-dress { --fa: "\f182"; }
.fa-phone { --fa: "\f095"; }
.fa-plane { --fa: "\f072"; }
.fa-plug { --fa: "\f1e6"; }
.fa-receipt { --fa: "\f543"; }
.fa-rotate { --fa: "\f2f1"; }
.fa-route { --fa: "\f4d7"; }
.fa-scale-balanced { --fa: "\f24e"; }
.fa-scissors { --fa: "\f0c4"; }
.fa-screwdriver-wrench { --fa: "\f7d9"; }
.fa-seedling { --fa: "\f4d8"; }
.fa-shapes { --fa: "\f61f"; }
.fa-share-nodes { --fa: "\f1e0"; }
.fa-shield-halved { --fa: "\f3ed"; }
.fa-shirt { --fa: "\f553"; }
.fa-spa { --fa: "\f5bb"; }
.fa-spinner { --fa: "\f110"; }
.fa-star { --fa: "\f005"; }
.fa-star-and-crescent { --fa: "\f699"; }
.fa-store { --fa: "\f54e"; }
.fa-tags { --fa: "\f02c"; }
.fa-tower-broadcast { --fa: "\f519"; }
.fa-tractor { --fa: "\f722"; }
.fa-triangle-exclamation { --fa: "\f071"; }
.fa-truck { --fa: "\f0d1"; }
.fa-truck-fast { --fa: "\f48b"; }
.fa-user { --fa: "\f007"; }
.fa-user-check { --fa: "\f4fc"; }
.fa-user-nurse { --fa: "\f82f"; }
.fa-utensils { --fa: "\f2e7"; }
.fa-video { --fa: "\f03d"; }
.fa-wand-magic-sparkles { --fa: "\e2ca"; }
.fa-wand-sparkles { --fa: "\f72b"; }
.fa-wifi { --fa: "\f1eb"; }
.fa-xmark { --fa: "\f00d"; }

/* ---- glyphs: regular (5) ---- */
.fa-calendar { --fa: "\f133"; }
.fa-circle-user { --fa: "\f2bd"; }
.fa-clock { --fa: "\f017"; }
.fa-heart { --fa: "\f004"; }
.fa-rectangle-list { --fa: "\f022"; }
