/* Erfverhaal — design tokens
   Richting "Register". Alles wat hier niet staat, is geen systeem.
   Randvoorwaarden: geen zwarte website, geen scheidingslijnen of kaders.
   Vlakken en witruimte doen het werk dat lijnen elders doen. */

:root {
  /* Kleur — vier waarden, niet meer */
  --ev-paper:  #FBFAF7;  /* registerpapier, de grond van de site */
  --ev-tint:   #EDEFF2;  /* koud grijs, vervangt elk kader en elke lijn */
  --ev-accent: #A8712A;  /* zegellak, oker. Alleen voor het apparaat en cijfers */
  --ev-ink:    #1B2A3A;  /* diep blauwzwart. Nooit #000 */

  /* Afgeleiden */
  --ev-ink-soft:   #33465A;  /* doorlopende tekst op paper: 9.1:1 */
  --ev-ink-mute:   #5A6B7C;  /* bijzin, bronregel: 5.4:1 */
  --ev-ink-faint:  #8496A8;  /* labels in kapitaal, nooit voor zinnen */
  --ev-on-ink:     #FBFAF7;  /* tekst op --ev-ink */
  --ev-on-ink-alt: #C6D3DE;
  --ev-accent-lt:  #E3AE63;  /* oker op --ev-ink, 6.2:1 */

  /* Binnenwerk is zwart-wit. Aparte set: een gekleurd vlak drukt als grijs. */
  /* --ev-print-paper is GEEN inkt. Het is alleen de voorvertoning op het
     scherm; de render zet geen achtergrond, want het papier is de achtergrond. */
  --ev-print-paper: #FDFDFB;
  /* Twee dichtheden, beide boven de 8% die print-on-demand op ongestreken
     papier nog betrouwbaar haalt. Onder de 8% valt een vlak weg of vlekt het.
     Het onderlinge verschil (12 tegen 8) blijft zichtbaar, ook op crème. */
  --ev-print-tint:     #E2E2E0;  /* ~12% zwart. Blokken: lede, note, gap. */
  --ev-print-tint-row: #EBEBE9;  /* ~8% zwart. Wisselende rijen. */
  --ev-print-ink:   #17171A;
  --ev-print-soft:  #3C3C3E;
  --ev-print-mute:  #6A6A66;
  --ev-print-faint: #9A9A96;
  /* Oker wordt in het binnenwerk 45% grijs. Nooit als vlak, alleen als cijfer. */
  --ev-print-accent: #5E5E5C;

  /* --- De tweede kleurset. Ronde 4, 7 september 2026. ---------------------
     Kleur is een betaalde optie op elk boek en niet een aparte uitgave.
     Zwart-wit blijft de standaard: de set hierboven verandert niet.

     De regel eronder is een regel en geen smaak: het materiaal krijgt kleur,
     het ontwerp niet. Een akte uit 1858 is sepia op vergeeld papier en dat is
     precies wat iemand voor deze meerprijs wil zien. De lopende tekst wint
     niets, dus er komen geen gekleurde koppen, geen gekleurde vlakken en geen
     oker. Bronnummers blijven 45% grijs, ook in kleur; anders is de dure
     versie een ingekleurde standaardversie. Besloten door de opdrachtgever
     op 7 september 2026.

     Er verandert daardoor maar op drie plekken iets: de scans, de kaart en
     het wapen. Alles wat hier niet staat is in kleur letterlijk hetzelfde
     bestand. --- */

  /* Geen kleur maar een filter, en hij staat hier omdat hij bij deze set
     hoort: zwart-wit is grayscale(1) contrast(1.1), kleur laat de scan zijn
     eigen kleur houden en corrigeert alleen wat de archiefscanner aanzet. */
  --ev-kleur-scan:  contrast(1.02) saturate(0.94);
  --ev-kleur-water: #C7D6DE;  /* de rivierband op de kaart */
  --ev-kleur-land:  #EAE3D4;  /* de ring van tien kilometer */

  /* Letters */
  --ev-display: "Libre Caslon Display", Georgia, serif;
  --ev-text: "Atkinson Hyperlegible", system-ui, sans-serif;
  --ev-mono: "IBM Plex Mono", ui-monospace, monospace;

  /* Atkinson is gekozen omdat de ontvanger 70 tot 85 is. Niet vervangen
     door een grotesk zonder die afweging opnieuw te maken. */

  /* Typografische trap — web */
  --ev-t-hero: 40px;   --ev-t-hero-lh: 1.05;
  --ev-t-h1: 29px;     --ev-t-h1-lh: 1.2;
  --ev-t-h2: 21px;     --ev-t-h2-lh: 1.25;
  --ev-t-body: 15px;   --ev-t-body-lh: 1.55;
  --ev-t-small: 13px;  --ev-t-small-lh: 1.5;
  --ev-t-fine: 11.5px; --ev-t-fine-lh: 1.6;
  --ev-t-label: 11px;  --ev-t-label-ls: 0.14em;

  /* Ruimte — 4px basis, alleen deze stappen */
  --ev-s1: 4px;  --ev-s2: 8px;  --ev-s3: 12px; --ev-s4: 16px;
  --ev-s5: 22px; --ev-s6: 30px; --ev-s7: 44px; --ev-s8: 64px;

  --ev-radius: 3px;   /* alleen op knoppen en invoervelden */

  /* Het raster: een akte, een punt. Drie dichtheden, met de schaal mee.
     Deze drie zijn sinds 7 september 2026 de bedoelde steek en niet meer de
     gezette steek. Een band zet zijn steek namelijk niet zelf; hij zet het
     aantal kolommen, en de steek volgt uit de breedte. Zie .ev-raster.
     Reken per oppervlak eenmalig uit: kolommen = afronden(breedte / steek). */
  --ev-dot-loose: 22px;  /* doos, sleeve, poster */
  --ev-dot-mid:   10px;  /* papier, site */
  --ev-dot-tight: 7px;   /* omslag */
}

/* Het raster staat nooit onder tekst. Het is een band, geen achtergrond.

   Twee regels, besloten op 7 september 2026 en hier vanaf ronde 4.

   1. Een bolletje mag nooit afgebroken zijn en het rooster moet vierkant
      blijven. Een vaste steek haalt dat niet: 136mm gedeeld door 10px is 51,4
      kolommen, dus aan de rechterrand valt vier tiende bolletje weg. Hele
      delen van de band nemen lost het afbreken op maar maakt de tegel
      rechthoekig, en dat mag ook niet.

      Beide eisen tegelijk kan maar op een manier: de band haalt zijn hoogte
      uit zijn breedte. De tegel is in beide richtingen breedte gedeeld door
      het aantal kolommen en is daarmee per definitie vierkant. De prijs is
      dat je de hoogte niet meer kiest; je kiest het aantal rijen.

      Op een vaste millimeterbreedte klopte de oude steek toevallig, dus in
      het boek was dit niet te zien. Op een meebewegende schermbreedte hing
      het van de toevallige vensterbreedte af of er een bolletje sneuvelde.

   2. flex: none. De band heeft geen eigen inhoud en wordt in een flexkolom
      als eerste tot nul gedrukt. Gemeten in het testboek: vijftien van de
      negentien hoofdstukken stonden zonder band, en dat volgde geen inhoud
      maar tekstlengte. Na flex: none nul.

   Elk oppervlak zet zelf --ev-kol en --ev-rij. De waarden hieronder zijn een
   werkende terugval, niet een maat om over te nemen: een band zonder eigen
   kolomtelling hoort er nog steeds goed uit te zien, maar hij staat dan op de
   steek van een ander oppervlak. */
/* De vier staan naast elkaar en niet onder .ev-raster. Een dichtheid wordt in
   het boek en in de pijplijn los geschreven (class="ev-chap__band
   ev-raster--print"), zonder de basisklasse ernaast. Toen de meetkunde alleen
   op .ev-raster stond, hadden alle zes de banden in book.html een hoogte van
   nul en stond flex-shrink weer op 1. Gemeten voor deze regel bestond. */
.ev-raster,
.ev-raster--loose,
.ev-raster--tight,
.ev-raster--print {
  --ev-kol: 48;
  --ev-rij: 3;
  flex: none;
  width: 100%;
  aspect-ratio: var(--ev-kol) / var(--ev-rij);
  background-size: calc(100% / var(--ev-kol)) calc(100% / var(--ev-rij));
}
/* De dichtheden verschillen alleen nog in bolgrootte en kleur. De steek zit in
   het kolomaantal dat het oppervlak zet, want alleen daar is de breedte bekend. */
.ev-raster {
  background-image: radial-gradient(var(--ev-accent) 1.7px, transparent 1.8px); }
.ev-raster--loose {
  background-image: radial-gradient(var(--ev-accent) 2.6px, transparent 2.7px); }
.ev-raster--tight {
  background-image: radial-gradient(var(--ev-accent-lt) 1.6px, transparent 1.7px); }
.ev-raster--print {
  background-image: radial-gradient(var(--ev-print-soft) 1.6px, transparent 1.7px); }
