/* PULSE V20.14.79 — the report's three typefaces, served from this host.
   ============================================================================
   WHY THIS FILE EXISTS

   Every page carried a stylesheet link to fonts.googleapis.com. The link was
   already written the careful way -- media="print" onload="this.media='all'"
   -- which stops it blocking FIRST PAINT. It does not stop it blocking the
   LOAD EVENT, because the browser still counts it as a subresource of the
   document.

   Measured on a cold load of the report (tests/bench-coldload.js):

     DOMContentLoaded                   2,648 ms
     last resource finished            13,170 ms   <- the Google Fonts request
     load event                        13,173 ms

   One request, 12.8 seconds, and nothing else in the page was waiting on
   anything. The report was drawn and usable at about three seconds; the tab
   went on showing its loading spinner for another ten, and the type reflowed
   when the faces finally arrived. From the reader's side that is "the
   dashboard has got slower", and no amount of work on the snapshot or the
   charts would have moved it.

   How long that request takes depends entirely on the network the browser is
   on, which is why this could look fine on one machine and terrible on
   another. On a corporate network where egress is filtered -- which is the
   normal case for an internal BI portal on a Windows host -- it is a request
   that may never succeed at all.

   Self-hosting removes the variable rather than hiding it. Three consequences
   worth stating:

     * no third-party request is needed to render the report, so it behaves
       the same on a filtered network as on an open one;
     * nothing about who is reading the report leaves this host;
     * font-display:swap still applies, so text paints immediately in the
       fallback and swaps when the face is ready -- from local disk, so the
       swap is imperceptible rather than ten seconds late.

   WHAT IS HERE: latin only, four weights per family, woff2 only. 228 KB for
   all twelve faces. The Arabic and Cyrillic subsets are deliberately not
   shipped -- this report is English-language and they would more than double
   the payload for glyphs nothing renders. Add a subset here if that changes;
   do not add one "just in case".

   Sources are the SIL Open Font License releases of each family, taken from
   the @fontsource packages. See fonts/LICENSE.txt.
   ==========================================================================*/

/* Space Grotesk — display / headings (--font-display) */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/space-grotesk-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/space-grotesk-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/space-grotesk-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/space-grotesk-latin-700-normal.woff2') format('woff2');
}

/* IBM Plex Mono — figures, labels, anything that has to line up (--font-mono) */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-latin-700-normal.woff2') format('woff2');
}

/* Inter — body copy (--font-body) */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/inter-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/inter-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/inter-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/inter-latin-700-normal.woff2') format('woff2');
}

/* V20.14.430 -- Unbounded, the reports' names (Ramy, 13 Oct: "make the reports names in each report a bit bigger and make the font
   unique and fancy and clear"; his choice of the four shown). Two weights, latin, from @fontsource/unbounded (SIL OFL 1.1). */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/unbounded-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('fonts/unbounded-latin-800-normal.woff2') format('woff2');
}
