/* uchū self-hosted brand fonts — per UchuBrandbook_Finalv4 (juli 2026)
   ====================================================================
   Het brandbook toont drie stalen, elk met een eigen rol:

     Open Sauce Black    titels, koppen, headlines, quotes
     Space Grotesk Reg.  bodytekst, menubalk, en labels (in hoofdletters)
     Space Rabbit        uitsluitend cijfers en coordinaten, spaarzaam

   LET OP, dit is bewust zo opgezet:
   de familienaam 'Open Sauce Sans' laadt PER GEWICHT een ander font.
   300 tot 600 komen uit Space Grotesk (dat is de bodytekst en het menu),
   700/800/900 komen uit Open Sauce (dat zijn de koppen). De site gebruikt
   die gewichten al consequent voor die twee rollen, dus de rolverdeling
   uit het brandbook valt hiermee op zijn plaats zonder 147 selectors te
   raken. Wie hier nieuwe CSS schrijft: kies het gewicht naar de ROL,
   niet naar de gewenste dikte, anders krijg je het verkeerde font.

   Om dezelfde reden wijst 'Space Rabbit' naar Space Grotesk: dat dekt de
   labels, die de grote meerderheid van het gebruik zijn. Het echte Space
   Rabbit staat onder de naam 'Rabbit Num' en wordt door uchu-shell.js
   teruggezet op de cijfer- en coordinaatelementen.

   ---- een bestand met een BEREIK, geen twaalf met een vast getal ----
   Space Grotesk is een VARIABEL font: een enkel bestand met een wght-as
   van 300 tot 700. Dat was hier al zo, maar het stond twaalf keer
   gedeclareerd op een vast gewicht, met tien byte-identieke kopieen van
   datzelfde bestand onder vijf gewichtsnamen. Twee dingen gingen mis.

   Ophalen: vijf URL's van hetzelfde bestand, dus de browser haalde het
   meerdere keren op. Op index waren dat drie Grotesk-kopieen, 66.864 bytes
   voor wat nu in een bestand van 39.308 zit.

   En het letterbeeld: voor 'Space Grotesk' bestond er geen face boven 500,
   dus een aanvraag op 600 of 700 pakte de 500-face en liet de browser er
   algoritmisch vet van maken. Gemeten op een regel van 100px gaf dat 39.151
   inktpixels, terwijl een echte 700 er 35.058 zet, bij een voorlooplengte
   die op 1157,47 bleef staan: meer inkt, zelfde breedte, het handschrift
   van namaakvet. Hetzelfde bij 'Rabbit Num' op 700 (45.520 tegen 36.101,
   breedte onveranderd 1225,90).

   Een bereik lost allebei op. De as staat vrij, dus 400, 500, 600 en 700
   zijn echte tussengewichten uit het bestand zelf en de browser hoeft
   niets meer na te maken. De ondergrens staat per familie precies daar
   waar hij vandaag al uitkwam, zodat niets lichter of zwaarder wordt dan
   het nu is: 'Open Sauce Sans' begint op 300 (dat rendert vandaag al echt
   Light en is de bodytekst), de labelfamilies beginnen op 400, want een
   aanvraag op 300 kwam daar ook al op 400 uit bij gebrek aan een 300-face.

   Het bestand hieronder is uit het merkpakket van de klant gesubset
   (Package0704/BrandbookAF_Folder/Fonts/SpaceGrotesk-VariableFont_wght.ttf)
   en gemeten tegen het bestand dat de site tot nu toe serveerde: op alle
   vijf de as-posities nul verschil in voorlooplengte en nul verschil in
   inkt. Het dekt latijn, latijn-uitgebreid EN de pijlen U+2190-21FF in een
   bestand, dus geen unicode-range-splitsing meer. Dat laatste was ook een
   stille bug: de twee oude URL's stonden in een src-lijst met hetzelfde
   format('woff2') en zonder unicode-range, dus de browser pakte altijd
   alleen de eerste en de latijn-uitgebreide glyphs (de ū van uchū) laadden
   nooit.

   De tien oude kopieen in fonts/space/ (300, 400, 500, 600, 700, elk latin
   en latin-ext) worden hierna nergens meer aangeroepen.
   ==================================================================== */

/* ---- de as van space-grotesk-var.woff2, gemeten en niet aangenomen ----
   Op canvas gerenderd op tien asposities, inktpixels op dezelfde regel van 60px:

     100 / 200 / 300  5106   dezelfde telling, dus de as begint op 300
     350              5685
     400              6374
     500              7751
     600              8481
     700 / 800 / 900  9165   dezelfde telling, dus de as houdt op bij 700

   De as loopt dus echt van 300 tot 700. Dat betekent dat de ondergrens 400
   hieronder op de labelfamilies GEEN ontbrekende snede afdekt maar een bestaande
   300 wegneemt: het verschil tussen 300 en 400 is 5106 tegen 6374 inktpixels,
   ruwweg een vijfde meer inkt.
   Dat is bewust. Het brandbook zet labels op Regular, en de labelelementen
   erven font-weight:300 van de body zonder het zelf te zetten. Zonder deze vloer
   zouden 214 labels over acht pagina's stilletjes op 300 gaan staan.
   Wie de vloer verlaagt, verandert dus het beeld van elk label op de site. Dat
   is een ontwerpkeuze, geen opruimactie.

   Besloten 20-08-2026: de vloer blijft op 400 en de aanvragen worden erop
   gepind. De labelregels zetten nu zelf font-weight:400 in plaats van de 300
   van de body te erven, zodat de bron zegt wat de browser toch al tekende.
   Gepind is alleen waar gemeten 300 uitkwam; regels die al op 400, 500 of 700
   stonden (.uchu-rm-step, .wc-n, .uchu-btn, .uchu-mchap .mlab, .uchu-faq-n)
   zijn met rust gelaten, want daar zou een 400 het beeld wel veranderen. */

/* ---- bodytekst, menu en labels: Space Grotesk, hele as in een bestand ---- */

/* 'Open Sauce Sans' 300-600 = Space Grotesk. Ondergrens 300: dat is de body. */
@font-face{font-family:'Open Sauce Sans';font-style:normal;font-weight:300 600;font-display:block;src:url('../fonts/space/space-grotesk-var.woff2') format('woff2');}

/* 'Space Rabbit' 400-700 = dezelfde Grotesk, in hoofdletters gezet door de shell. */
@font-face{font-family:'Space Rabbit';font-style:normal;font-weight:400 700;font-display:block;src:url('../fonts/space/space-grotesk-var.woff2') format('woff2');}

/* 'Space Grotesk' onder zijn eigen naam, voor nieuwe code en voor de labels op
   de case-paginas. Hier zat het namaakvet op 600 en 700. */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400 700;font-display:block;src:url('../fonts/space/space-grotesk-var.woff2') format('woff2');}

/* ---- koppen: Open Sauce, de drie zware gewichten met elk een eigen bestand ---- */
@font-face{font-family:'Open Sauce Sans';font-style:normal;font-weight:700;font-display:block;src:url('../fonts/opensauce/open-sauce-sans-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Open Sauce Sans';font-style:normal;font-weight:800;font-display:block;src:url('../fonts/opensauce/open-sauce-sans-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'Open Sauce Sans';font-style:normal;font-weight:900;font-display:block;src:url('../fonts/opensauce/open-sauce-sans-latin-900-normal.woff2') format('woff2');}

/* ---- cijfers en coordinaten: het echte Space Rabbit ----
   Het bestand dekt 171 tekens en houdt daar op. Alles daarbuiten viel terug op
   de volgende familie in de stack, en die staat op vrijwel elke plek op
   'monospace': dat is Consolas op Windows, een systeemfont midden in een
   merkregel. Gemeten op about.html en de case-paginas ging dat om het
   middenpunt ·, de graad °, de drie pijlen ← → ↗ en de ū van uchū.

   De familie wordt daarom in twee lagen gedeclareerd. Eerst Grotesk als
   bodem voor de hele familie, daarna het echte Space Rabbit met exact de
   tekens die het bestand bevat (uit de cmap gelezen). Bij overlap wint de
   laatst gedeclareerde face, dus cijfers en letters blijven Space Rabbit en
   alleen wat het bestand mist zakt door naar Grotesk in plaats van Consolas.
   Het bereik 400-700 op de Rabbit-face voorkomt dat een aanvraag op 700 nog
   een nagemaakte vetversie oplevert; er is maar een gewicht. */
@font-face{font-family:'Rabbit Num';font-style:normal;font-weight:400 700;font-display:block;src:url('../fonts/space/space-grotesk-var.woff2') format('woff2');}
@font-face{font-family:'Rabbit Num';font-style:normal;font-weight:400 700;font-display:block;src:url('../fonts/rabbit/space-rabbit.woff2') format('woff2');unicode-range:U+0020-005F,U+0061-007D,U+00A0,U+00A3,U+00AB,U+00AD,U+00BB,U+00C0-00CF,U+00D1-00DD,U+00E0-00EF,U+00F1-00FD,U+00FF,U+0152-0153,U+0178,U+2014,U+2018-2019,U+201C-201D,U+20AC;}

/* ---- de afsluiterregel, op elke pagina hetzelfde ----
   "let's build your world." staat op zeven pagina's in identieke opmaak:
   <h2 class="h2 text-weight">. Toch tekende hij alleen op index uit Open Sauce.
   Oorzaak: index heeft in zijn eigen <style> een regel die elke kop op
   font-weight:900 zet, en de andere pagina's hebben die niet. Daar viel de
   regel terug op .h2.text-weight{font-weight:var(--font-weight--500)}, en 500
   ligt in het bereik dat naar Space Grotesk wijst. Zo wisselde een displayregel
   van lettertype zonder dat er iets aan die regel veranderd was.
   Het brandbook zet elke regel op displaymaat in Open Sauce Black, dus 900.
   Deze regel staat hier omdat fonts-local.css als laatste stylesheet op alle
   pagina's geladen wordt: een bron in plaats van zeven. Specificiteit 0,2,1
   tegen 0,2,0 en later in de volgorde, dus geen !important nodig. */
h2.h2.text-weight{ font-weight:900; }

/* ====================================================================
   VOORGENOMEN HERNOEMING VAN DE FAMILIENAMEN  ·  vastgelegd 20-08-2026
   NOG NIET UITGEVOERD. Dit blok staat hier zodat het venster waarin het
   wel gebeurt mechanisch is en niemand de afleiding opnieuw hoeft te doen.

   Waarom. Vandaag dekt een familienaam meer dan een lettertype, en bepaalt
   het gevraagde gewicht welk van de twee je krijgt. 'Open Sauce Sans' op
   300..600 tekent Space Grotesk, dezelfde naam op 700..900 tekent het echte
   Open Sauce. 'Space Rabbit' tekent helemaal geen Space Rabbit maar Grotesk.
   Zolang dat zo is, is elke gewichtswijziging stilletjes ook een
   lettertypewijziging. Dat ging drie keer mis: de vijf manifestoregels, de
   afsluitregel op zes pagina's en de hoofdstuklabels.

   Na de hernoeming heeft elke naam nog een bestand, en kan een gewicht niet
   meer van lettertype wisselen omdat er niets is om naar over te stappen.

     'Open Sauce Sans' 300..600   ->  'Uchu Text'     space-grotesk-var.woff2
     'Open Sauce Sans' 700/800/900 -> 'Uchu Display'  de drie Open Sauce-sneden
     'Space Rabbit'    400..700   ->  'Uchu Text'     space-grotesk-var.woff2
     'Space Grotesk'   400..700   ->  'Uchu Text'     space-grotesk-var.woff2
     'Rabbit Num'      400..700   ->  'Uchu Label'    space-rabbit.woff2,
                                       met 'Uchu Text' als bodemlaag

   Bij 'Uchu Label' blijft de bodemlaag nodig: het echte Space Rabbit heeft
   geen u-macron, en zonder bodemlaag valt die op de systeem-monospace terug.
   De unicode-range hierboven blijft dus staan zoals hij nu is.
   Bij 'Uchu Text' komen drie oude namen op een nieuwe uit. Dat is de
   bedoeling; het waren altijd al drie namen voor hetzelfde bestand, en het
   verschil in bereik verhuist naar de aanvragende regel.

   Wat het raakt, gemeten over de repo zonder _parked*, _launch, roadmap-a/b/c
   en index-r1/r2/r3: Open Sauce Sans 384 regels, Space Rabbit 231, Rabbit Num
   102, Space Grotesk 42. Samen 759 regels over 29 bestanden, verdeeld over
   alle drie de sporen. Een hernoeming die halverwege stilvalt laat de site in
   twee naamstelsels achter en tekent de helft van de pagina's in de
   systeemletter, dus dit hoort in een venster met de andere sporen stil.

   Nameten: voor en na moet CSS.getPlatformFontsForNode per element hetzelfde
   bestand en hetzelfde aantal glyphs geven. De computed fontFamily verandert
   per definitie en zegt dus niets.
   ==================================================================== */
