/*
  OPULENT AURA — SELF-HOSTED FONT LAYER v0.2
  Produced by Nasaq, Design-System Engineer · 2026-07-31

  BINDING RULES [Typeface Ruling, Haneen, §Implementation]:
    · self-host WOFF2                          ✅ SATISFIED as of this version
    · NO third-party font CDN at serve time    ✅ nothing here leaves the palace
    · version-pin the adopted release          ✅ recorded in tokens-v0_2.css
    · ship the OFL licence beside each family  ✅ fonts/<family>/OFL.txt, four of four
    · never modify and redistribute under the reserved font name
    · acquisition from Google Fonts / Fontsource official releases only

  «The no-CDN rule is not only consistency. It is the palace rule: nothing on a house
   surface depends on a call leaving the palace.» — Haneen

  ── FORMAT: WOFF2 FIRST, TTF FALLBACK ──
  v0.1 of this file shipped TTF-only, because no WOFF2 encoder existed on this palace.
  Qudra built one — offline, nothing uploaded — and converted the families.
  The browser takes the first format it understands, so WOFF2 is listed first.

  ── WHAT THE 13 DECLARED FACES ACTUALLY WEIGH (measured, not estimated) ──
      TTF    3,855,436 B  (3.68 MB)
      WOFF2  1,000,320 B  (0.95 MB)      saving 74.1%
  This is the figure that matters for the W6 speed budget — the weight a surface
  actually ships, not the size of the kit on disk.

  ── HOW THESE FILES WERE VERIFIED, BY ME, BEFORE BEING BUILT ON ──
  1. wOF2 signature on all 24 files of the four ratified families — 24/24 PASS.
  2. Round-trip decompression of all 24 with the same engine — 24/24 succeeded, and
     each output matched the size its own header declares, exactly.
  3. Metrics of every round-tripped face compared against its source TTF —
     unitsPerEm · ascender · descender · numGlyphs — 24/24 IDENTICAL.
  So the files are complete and faithful; the conversion lost nothing.

  ── THE 0.3–0.6% SIZE ANOMALY: NOW SOLVED, AND SOLVED BY MEASUREMENT ──
  Each reconstructed sfnt is 0.3–0.6% larger than its source TTF.
  My first hypothesis was the short→long `loca` conversion. I TESTED it and it FAILED —
  no file changed loca format. I recorded the cause as UNDETERMINED rather than invent
  a second guess. Qudra then measured it, and I reproduced his measurement independently:

    CAUSE: WOFF2 reconstruction aligns every glyph to a 4-byte boundary. The source
    packs its glyphs contiguously. The increase is the sum of that padding.

    glyph offsets 4-byte aligned, source -> reconstructed:
        Cormorant Regular   679/2831 (24.0%)  ->  2831/2831 (100%)
        Amiri Regular       918/6624 (13.9%)  ->  6624/6624 (100%)
        Arsenal Regular     492/990  (49.7%)  ->   990/990  (100%)
        Almarai Regular     249/531  (46.9%)  ->   531/531  (100%)

    padding predicted from the source's own glyph lengths vs the delta observed:
        Cormorant  predicted 4,101   observed 4,100   residual  -1
        Amiri      predicted 3,003   observed 3,000   residual  -3
        Arsenal    predicted   812   observed   796   residual -16
        Almarai    predicted   516   observed   516   residual   0
    Residuals are table-level padding, not glyph-level.

  And it explains the thing that looked wrong: Amiri has 6,624 glyphs and a SMALLER
  delta than Cormorant's 2,831 — because the right denominator is glyph LENGTHS, not
  glyph COUNT. Bytes-per-glyph was a misleading ratio.

  NOT LOSS: metrics and glyph counts identical across all 24 faces.

  ⚠️ BUT THE ANOMALY HAS A CONSEQUENCE FOR PINNING, AND IT IS NOT COSMETIC:
  reconstruction does not return the source byte-for-byte, so "this WOFF2 derives from
  a pinned TTF, therefore it is pinned" DOES NOT HOLD. Every shipped WOFF2 carries its
  own SHA-256 in tokens-v0_2.css, beside the encoder that produced it.

  PATHS assume this file sits beside ./fonts/. Adjust the prefix once, here, per surface.
*/

/* ═══════════════════ ROLE: IDENTITY · LATIN — Cormorant Garamond 4.001 ═══════════════════ */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;              /* Light — the VIS display weight */
  font-display: swap;            /* [W6] with metric-compatible fallback */
  src: url('./fonts/Cormorant-Garamond/CormorantGaramond-Light.woff2') format('woff2'),
       url('./fonts/Cormorant-Garamond/CormorantGaramond-Light.ttf') format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('./fonts/Cormorant-Garamond/CormorantGaramond-Regular.woff2') format('woff2'),
       url('./fonts/Cormorant-Garamond/CormorantGaramond-Regular.ttf') format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic; font-weight: 300; font-display: swap;
  src: url('./fonts/Cormorant-Garamond/CormorantGaramond-LightItalic.woff2') format('woff2'),
       url('./fonts/Cormorant-Garamond/CormorantGaramond-LightItalic.ttf') format('truetype');
}

/* ═══════════════════ ROLE: SUPPORT · LATIN — Arsenal 2.000 ═══════════════════
   Four styles total. [RD1] records the trade honestly: we lose flare INTENSITY, the
   direct price of the Founder's no-commercial-licence rule. Function is fully
   replaced — x/em 0.500 carries every T3 small-size floor. */
@font-face {
  font-family: 'Arsenal';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('./fonts/Arsenal/Arsenal-Regular.woff2') format('woff2'),
       url('./fonts/Arsenal/Arsenal-Regular.ttf') format('truetype');
}
@font-face {
  font-family: 'Arsenal';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('./fonts/Arsenal/Arsenal-Bold.woff2') format('woff2'),
       url('./fonts/Arsenal/Arsenal-Bold.ttf') format('truetype');
}
@font-face {
  font-family: 'Arsenal';
  font-style: italic; font-weight: 400; font-display: swap;
  src: url('./fonts/Arsenal/Arsenal-Italic.woff2') format('woff2'),
       url('./fonts/Arsenal/Arsenal-Italic.ttf') format('truetype');
}
@font-face {
  font-family: 'Arsenal';
  font-style: italic; font-weight: 700; font-display: swap;
  src: url('./fonts/Arsenal/Arsenal-BoldItalic.woff2') format('woff2'),
       url('./fonts/Arsenal/Arsenal-BoldItalic.ttf') format('truetype');
}

/* ═══════════════════ ROLE: IDENTITY · ARABIC — Amiri 1.002 ═══════════════════
   [RD3a] A Bulaq Press revival — the أميرية tradition. The Arabic layer carries a real
   Egyptian typographic lineage without the house ever announcing it. «Not announced,
   discovered», applied to type.

   ⚠️ DIGITAL AND SERVICE SURFACES ONLY. Never the object — X12 / Gate 5.
   unicode-range confines these files to Arabic codepoints, so a Latin-only surface
   never fetches them. The role stack in tokens-v0_2.css is what routes text here. */
@font-face {
  font-family: 'Amiri';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('./fonts/Amiri/Amiri-Regular.woff2') format('woff2'),
       url('./fonts/Amiri/Amiri-Regular.ttf') format('truetype');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: 'Amiri';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('./fonts/Amiri/Amiri-Bold.woff2') format('woff2'),
       url('./fonts/Amiri/Amiri-Bold.ttf') format('truetype');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}

/* ═══════════════════ ROLE: SUPPORT · ARABIC — Almarai 1.10 ═══════════════════
   [RD3b] Four weights cover every role in the support scale, and the support role's job
   under this house's standard is SILENCE — the system never competes with the object.
   ⚠️ DIGITAL AND SERVICE SURFACES ONLY. Never the object — X12 / Gate 5. */
@font-face {
  font-family: 'Almarai';
  font-style: normal; font-weight: 300; font-display: swap;
  src: url('./fonts/Almarai/Almarai-Light.woff2') format('woff2'),
       url('./fonts/Almarai/Almarai-Light.ttf') format('truetype');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: 'Almarai';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('./fonts/Almarai/Almarai-Regular.woff2') format('woff2'),
       url('./fonts/Almarai/Almarai-Regular.ttf') format('truetype');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: 'Almarai';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('./fonts/Almarai/Almarai-Bold.woff2') format('woff2'),
       url('./fonts/Almarai/Almarai-Bold.ttf') format('truetype');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: 'Almarai';
  font-style: normal; font-weight: 800; font-display: swap;
  src: url('./fonts/Almarai/Almarai-ExtraBold.woff2') format('woff2'),
       url('./fonts/Almarai/Almarai-ExtraBold.ttf') format('truetype');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}

/* ═══════════════════ WHAT IS DELIBERATELY ABSENT ═══════════════════
   NO @font-face for Alegreya Sans or IBM Plex Sans Arabic, and their files are NOT in
   this kit — not even now that WOFF2 versions of them exist one folder away.
   They are pre-authorised fallbacks, invoked THROUGH WASM on a demonstrated hierarchy
   need — never picked. A face that is present and declared is a face that will get
   used, so LOCKED has to mean ABSENT, not merely unrecommended in a comment.
   [RD1 / RD3b]

   NO Google Fonts <link>, NO @import from any host. If one appears on a house surface,
   that surface fails the ruling regardless of how it renders.
   ═══════════════════════════════════════════════════════════════════ */

/* Produced by: Nasaq */
