  /* Self-hosted, because the CSP is default-src 'self' — a Google Fonts link is blocked
     outright and falls back silently. Same-origin files need no CSP change.
     Each face carries its unicode-range, which is what lets one stack serve three scripts: the
     Arabic faces are only ever downloaded, and only ever used, for Arabic characters. Nothing
     language-switched, nothing conditional. font-display:swap so text paints immediately in the
     fallback and reflows when the file lands — never a blank page waiting on a font.
     All three are SIL Open Font License; see fonts/OFL.txt. */
  @font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/jakarta-400-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}
  @font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/jakarta-400-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}
  @font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/jakarta-600-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}
  @font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/jakarta-600-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}
  @font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/jakarta-700-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}
  @font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/jakarta-700-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}
  @font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/playfair-600-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}
  @font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/playfair-600-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}
  @font-face{font-family:"Playfair Display";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/playfair-700-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}
  @font-face{font-family:"Playfair Display";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/playfair-700-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}
  @font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/plexar-400-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}
  @font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/plexar-600-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}
  @font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/plexar-700-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}

  :root{
    --paper:#f7f4ee; --paper2:#f1ece2; --card:#ffffff;
    --ink:#221c15; --muted:#6b6157; --line:#e3ddd1;
    --teal:#4a4036; --teal-soft:#4a403612;
    --amber:#e0a544; --amber-soft:#e0a5441f; --amber-ink:#7a5c2a;
    --clay:#a3462a;
    --land:#e0d8c6; --landline:#b9ad95; --ocean1:#dfe6e6; --ocean2:#c9d6d9;
    --shadow-fab:0 2px 8px rgba(34,28,21,.16);--shadow:0 24px 60px rgba(34,28,21,.22);
    --ff-display:"Playfair Display","IBM Plex Sans Arabic","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
    --ff-body:"Plus Jakarta Sans","IBM Plex Sans Arabic",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --ff-data:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  }
  @media (prefers-color-scheme:dark){
    :root{
      --paper:#14110f; --paper2:#1a1613; --card:#1e1a16;
      --ink:#f3ede5; --muted:#a2988e; --line:#2a231d;
      --teal:#b5aa9c; --teal-soft:#b5aa9c1f;
      --amber:#e8cfa9; --amber-soft:#e8cfa91f; --amber-ink:#dfc59b;
      --clay:#d98b6a; --land:#3a3129; --landline:#5f5145; --ocean1:#0f1a1f; --ocean2:#17272d;
      --shadow-fab:0 2px 8px rgba(0,0,0,.45);--shadow:0 24px 60px rgba(0,0,0,.55);
    }
  }
  :root[data-theme="light"]{
    --paper:#f7f4ee; --paper2:#f1ece2; --card:#ffffff;
    --ink:#221c15; --muted:#6b6157; --line:#e3ddd1;
    --teal:#4a4036; --teal-soft:#4a403612; --amber:#e0a544; --amber-soft:#e0a5441f; --amber-ink:#7a5c2a;
    --clay:#a3462a; --land:#e0d8c6; --landline:#b9ad95; --ocean1:#dfe6e6; --ocean2:#c9d6d9;
    --shadow-fab:0 2px 8px rgba(34,28,21,.16);--shadow:0 24px 60px rgba(34,28,21,.22);
  }
  :root[data-theme="dark"]{
    --paper:#14110f; --paper2:#1a1613; --card:#1e1a16;
    --ink:#f3ede5; --muted:#a2988e; --line:#2a231d;
    --teal:#b5aa9c; --teal-soft:#b5aa9c1f; --amber:#e8cfa9; --amber-soft:#e8cfa91f; --amber-ink:#dfc59b;
    --clay:#d98b6a; --land:#3a3129; --landline:#5f5145; --ocean1:#0f1a1f; --ocean2:#17272d;
    --shadow-fab:0 2px 8px rgba(0,0,0,.45);--shadow:0 24px 60px rgba(0,0,0,.55);
  }

