/* WEBSITE-FONTS-FORMS-0919 · 19 September 2026 · fs-fonts.css
   The self-hosted replacement for the two Google-CDN font stylesheets focalshift.ai used to load
   on every page. It is the completion, on this box, of what PAGE-WEIGHT did on Mission Control on
   11 September 2026.

   WHAT IT REPLACES, measured from the wire on 19 Sep (proof/wire/before, 20 runs = 5 pages x
   {1280,400} x {light,dark}, with an ESSENTIALS-ONLY consent cookie already answered):

     header.php:61   <link> to  css2?family=Inter:wght@400..800&family=Sora:wght@400;600;700;800
     style-...css:0  @import of css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,...

   Between them: 5 or 6 requests to the two Google font hosts per page, 156,450 to
   229,621 bytes, and two extra DNS + TLS handshakes in front of first paint - while the page was
   showing a cookie card offering "Essentials only". That is a privacy item first and a weight
   item second.

   THE FILES ARE THE ESTATE'S OWN. Every woff2 beside this file was copied from Mission Control's
   /assets/fonts/ (WO-FT1 + PAGE-WEIGHT), not re-cut here. Two of the four faces the live site
   actually downloads are BYTE-IDENTICAL to the CDN's current bytes (md5 6960e1e3 italic-latin,
   e990806d upright-latin - measured 19 Sep by fetching both). The other two - the static Inter
   and Sora - are an earlier Google subset vintage of the same families and axes (48,256 vs
   48,432 B; 25,284 vs 25,240 B), which is why this package proves the rendered result rather
   than asserting it: proof/specimen/ holds the pixel diff.

   CASCADE ORDER IS PRESERVED, and that is the whole reason the two blocks below are in this
   order in ONE file rather than left in two. Today the static <link> is declared FIRST (header
   line 61) and the variable @import SECOND (byte 0 of the page sheet, which loads at line 63).
   For a weight both sets cover, CSS font matching breaks the tie on declaration order, so the
   variable faces win wherever their unicode-range matches - which is what the engine reports
   today (Inter normal 100 900 and Inter italic 100 900 both `loaded` on every page). Block A
   below is the statics, block B the variables, in exactly that order.

   FAITHFUL, NOT TIDIED: block A declares the five Inter weights and the FOUR Sora weights the
   site's own link asked for (400, 600, 700, 800). Sora 500 is deliberately NOT declared, even
   though Mission Control's _chrome.css declares it, because adding a face changes what the
   browser paints for any element asking for 500 and this package is not allowed to change that.

   ONE DOWNLOAD PER FAMILY IN BLOCK A: inter-400.woff2 and sora-400.woff2 are each a single
   VARIABLE font file (measured: Mission Control's inter-400/500/600/700/800.woff2 are five names
   for one 48,256-byte file, md5 260c81a4 for all five; sora-400..800 likewise, md5 fc575ebf), so
   all five Inter weights and all four Sora weights point at the ONE url. The browser fetches it
   once; a single-value font-weight descriptor pins the wght axis to that weight.

   font-display: swap on every face, as both CDN stylesheets had.

   The two third-party hostnames are deliberately not written out anywhere in this file: a grep
   for them must come back empty once this ships, and a comment naming them would make that
   grep lie.

   REVERT: put header.php:61 and byte 0 of style-mission-control-live.css back (both are one
   fenced hunk) and delete assets/fonts/. Nothing else reads this file. */

/* ---- BLOCK A - the static weights the header link declared ------------------------------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(inter/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(inter/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(inter/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(inter/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url(inter/inter-400.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:400;font-display:swap;src:url(sora/sora-400.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url(sora/sora-400.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url(sora/sora-400.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:800;font-display:swap;src:url(sora/sora-400.woff2) format('woff2')}

/* ---- BLOCK B - the fourteen variable subsets the page sheet's @import declared ------------
   Copied from Mission Control's style-mission-control-live.css (PAGE-WEIGHT, 11 Sep), which
   copied every font-family / font-style / font-weight / font-display / unicode-range value
   verbatim from the CDN stylesheet. Only the url() prefix is rewritten, from Mission Control's
   absolute /assets/fonts/ to this file's own directory. */
/* cyrillic-ext */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-cyrillic-ext.woff2) format('woff2');unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
/* cyrillic */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-cyrillic.woff2) format('woff2');unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
/* greek-ext */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-greek-ext.woff2) format('woff2');unicode-range: U+1F00-1FFF;}
/* greek */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-greek.woff2) format('woff2');unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}
/* vietnamese */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-vietnamese.woff2) format('woff2');unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
/* latin-ext */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* latin */
@font-face {font-family: 'Inter';font-style: italic;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-italic-latin.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* cyrillic-ext */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-cyrillic-ext.woff2) format('woff2');unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
/* cyrillic */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-cyrillic.woff2) format('woff2');unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
/* greek-ext */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-greek-ext.woff2) format('woff2');unicode-range: U+1F00-1FFF;}
/* greek */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-greek.woff2) format('woff2');unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}
/* vietnamese */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-vietnamese.woff2) format('woff2');unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
/* latin-ext */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* latin */
@font-face {font-family: 'Inter';font-style: normal;font-weight: 100 900;font-display: swap;src: url(inter/inter-var-upright-latin.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
