/* ==========================================================================
   shared/fonts.css — JEDYNE miejsce z definicjami @font-face w projekcie.

   Wcześniej te same 30 reguł istniało w ośmiu kopiach: w shared/theme.css oraz
   w każdym z 7 modułów odziedziczonych, które mają własny arkusz stylów. Kopie
   trzeba było aktualizować równolegle — przy dokładaniu warstwy `latin-ext`
   i subsetu matematycznego (Faza 4) było to osiem osobnych edycji.

   Fonty hostowane lokalnie (shared/fonts/) — zero zależności sieciowych, działa
   w pełni offline (sala bez Wi-Fi, plik file://).

   TRZY warstwy podzbiorów na rodzinę, rozdzielone przez unicode-range:
     1. latin      — alfabet podstawowy,
     2. latin-ext  — polskie znaki diakrytyczne (ą ć ę ł ń ś ź ż i wersaliki),
     3. math       — symbole matematyczne (∫ ∮ Σ ∇ λ π ℝ ℤ ⇒ ∈, indeksy…).
   Blok matematyczny jest ostatni: przy nakładaniu się zakresów wygrywa reguła
   późniejsza. Subset matematyczny pochodzi z DejaVu Sans i jest zadeklarowany
   pod tymi samymi nazwami rodzin, więc każde font-family i każde ctx.font
   w kodzie rysującym dostaje go bez żadnej zmiany.

   Licencje: shared/fonts/LICENSE-*.txt.

   UWAGA: ścieżki url() są względne WOBEC TEGO PLIKU, czyli shared/fonts/…
   ========================================================================== */

/* --- 1. Alfabet lacinski podstawowy (podzbior `latin`) --- */
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/lora-latin-400-normal.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:'Lora';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/lora-latin-500-normal.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:'Lora';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/lora-latin-500-italic.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:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/lora-latin-600-normal.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:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-latin-400-normal.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:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-latin-500-normal.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:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-latin-600-normal.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:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/inter-latin-700-normal.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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/jetbrains-mono-latin-400-normal.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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/jetbrains-mono-latin-500-normal.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;}
/* --- 2. Polskie znaki diakrytyczne: a c e l n s z z (podzbior `latin-ext`).
       Bez tego bloku KAZDE polskie slowo z ogonkiem spada na kroj systemowy. --- */
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/lora-latin-ext-400-normal.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:'Lora';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/lora-latin-ext-500-normal.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:'Lora';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/lora-latin-ext-500-italic.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:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/lora-latin-ext-600-normal.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:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-latin-ext-400-normal.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:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-latin-ext-500-normal.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:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-latin-ext-600-normal.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:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/inter-latin-ext-700-normal.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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/jetbrains-mono-latin-ext-400-normal.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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/jetbrains-mono-latin-ext-500-normal.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;}
/* --- 3. Notacja matematyczna: greka, indeksy, calki, strzalki, operatory.
       Zadna z rodzin Lora/Inter/JetBrains Mono nie ma tych glifow w ZADNYM
       swoim podzbiorze, a projekt swiadomie uzywa unicode zamiast LaTeX-a
       (spec 5.4) - wiec dokladamy je pod TYMI SAMYMI nazwami rodzin przez
       unicode-range. Dzieki temu kazde istniejace font-family i kazde
       ctx.font w kodzie rysujacym dostaje je bez zadnej zmiany.
       Zrodlo: DejaVu Sans, subset do 594 glifow (28 kB). Blok deklarowany
       jako OSTATNI - przy nakladajacych sie zakresach wygrywa ostatnia regula. --- */
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Lora';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Lora';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/math-symbols.woff2') format('woff2');unicode-range:U+0302,U+0391-03A1,U+03A3-03C9,U+1D40,U+2016,U+2070-2071,U+2074-208E,U+2090-209C,U+2102,U+210D,U+2115,U+2119-211A,U+211D,U+2124,U+2150,U+2153,U+2155,U+2159,U+215B,U+2190,U+2192,U+2194-21FE,U+2200-2211,U+2213-2214,U+2216-22FE,U+2300,U+2302,U+2500-2502,U+2550,U+25A0-25FE,U+2713,U+2717,U+27F0-27FE,U+2B21;}
