/* fonts-2.css (wave rulang1, 2026-11-07): the same sheet as fonts.css, under a new name. After the Russian merge the edge
   (Cloudflare in front of Railway's own edge, max-age 86400) kept serving the pre-Cyrillic fonts.css, and a zone purge
   didn't reach Railway's copy, so Russian finder pages fell back to system fonts. The edge caches a static file whatever
   ?v= says (pages.mjs, mapshot-2/), so a new name is the fix. fonts.css stays for old cached HTML. */
/* Font URLs are RELATIVE to this stylesheet on purpose. This file is served
   at /meetings/static/fonts.css, so `fonts/x.woff2` resolves to
   /meetings/static/fonts/x.woff2. They were absolute `/static/fonts/...`
   from before find2 was promoted to /meetings/find/ (b3977f5) and had
   404'd ever since -- every meeting page and the map itself were falling
   back to a system font. The paths here must also match sw.js's CORE
   list, or the offline copy fetches a URL it never cached. */
@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/fraunces-600.woff2) format("woff2")}
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/outfit-400.woff2) format("woff2")}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/outfit-600.woff2) format("woff2")}
/* Devanagari (wave hi1, 2026-10-18): Noto Sans Devanagari (SIL OFL; Google Fonts' devanagari subset, variable weight),
   self-hosted like the Latin faces. It's declared under the Latin families' own names with Devanagari's unicode-range, so
   on every page and the map a Hindi glyph comes from Noto and a Latin one («AA», a town as its publisher prints it) stays
   Outfit or Fraunces: the Devanagari family sits after the Latin fonts, as the main site's prep notes ask. A page with no
   Devanagari on it never downloads the file. Not in sw.js's CORE list on purpose: an offline phone without it falls back
   to its own Devanagari font (Android ships Noto). Way back: delete these lines and the woff2. */
@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/noto-sans-devanagari.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF4,U+1CF7-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B0A}
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/noto-sans-devanagari.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF4,U+1CF7-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B0A}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/noto-sans-devanagari.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF4,U+1CF7-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B0A}
@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/noto-sans-devanagari.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF4,U+1CF7-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B0A}
/* a Hindi page mirrors the main site's style.hi.css (recoverystarts-site, wave hi1 S1): the stack names the Devanagari
   family after the Latin ones too, for any element whose own stack has no Outfit; no letter-spacing (it breaks Devanagari's
   headline); Devanagari has no true italic, so nothing is slanted and an <i>/<em> is set in the bold weight instead; the
   matras above the line and the conjuncts below need room, so running text gets line-height 1.8 and headings 1.45 on
   meeting pages, while the map keeps its own (its chips are sized to the line) */
html:lang(hi) body{font-family:Outfit,"Noto Sans Devanagari",system-ui,sans-serif}
html:lang(hi) *{letter-spacing:0!important}
html:lang(hi) em,html:lang(hi) i,html:lang(hi) cite,html:lang(hi) blockquote{font-style:normal!important}
html:lang(hi) em,html:lang(hi) i{font-weight:600}
html:lang(hi) input,html:lang(hi) textarea,html:lang(hi) select,html:lang(hi) button{font-family:Outfit,"Noto Sans Devanagari",system-ui,sans-serif}
html:lang(hi) .wrap{line-height:1.8}
html:lang(hi) .wrap h1,html:lang(hi) .wrap h2,html:lang(hi) .wrap h3{line-height:1.45}
/* Cyrillic (wave rulang1, 2026-11-01): the main site's ru prep chose Literata for headings (a soft bookish serif with a
   true Cyrillic, beside Fraunces) and Jost for body and UI (geometric, the closest in shape to Outfit), both SIL OFL from
   Google Fonts, self-hosted like the Latin faces (recoverystarts-site i18n/ru/PREP-NOTES.md "Font"). Two layers:
   (1) on every page and the map, a Cyrillic glyph in Fraunces or Outfit text comes from Literata or Jost (declared under
       the Latin families' own names with Cyrillic's unicode-range, as Devanagari is above), so a Russian group name on an
       English page never falls back to the phone's serif;
   (2) on a Russian page the Cyrillic face goes first for the whole line, Latin letters included («Собрания АА — Moscow»
       in one face), as the prep asks: body and form fields in Jost, every heading the finder sets in Fraunces in Literata.
   A page with no Cyrillic on it never downloads the Cyrillic files; italics stay (both faces have true Cyrillic italics,
   synthesised here from the upright, as Fraunces's are). Not in sw.js's CORE list on purpose, as Devanagari isn't. Way
   back: delete these lines and the four woff2 files. */
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/jost-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/literata-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Jost;font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/jost-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Jost;font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/jost-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:Literata;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/literata-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Literata;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/literata-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}
html:lang(ru) body,html:lang(ru) input,html:lang(ru) textarea,html:lang(ru) select,html:lang(ru) button{font-family:Jost,Outfit,system-ui,sans-serif}
html:lang(ru) :is(h1,h2,h3,header.site a.brand,.dayhead,.swlab,.phead,.hline,#count,.sthead,.btile .tm,.m.st-live .mt,.cnowcount,.calhead .ttl,.cdayh h3,.myweek h4){font-family:Literata,Fraunces,Georgia,serif}
