# Brand Decisions v1 — Follow-up #1: Display Font Cyrillic Gap Date: 2026-05-17 Open against: **D-05** (Type pairing) Owner: **Design team** (per D-05 OWNER row) Blocker for: Plan 01-12 (Design Integration) planner spawn; Plan 01-10 welcome hero text rendering --- ## What was picked (D-05) A · Newsreader + IBM Plex Sans + IBM Plex Mono ## What engineering research found Engineering research (`.planning/phases/01-stabilize-video-pipeline/01-12-RESEARCH.md`, commit `3df2750`, §1) verified Newsreader's glyph coverage via two independent sources: 1. **The Decision Brief's own embedded `@font-face` declarations** — subsets shipped: `latin` / `latin-ext` / `vietnamese` 2. **Production Type's `productiontype/Newsreader` repo README** — quote: "Google Fonts Latin Plus glyph set" **Newsreader ships NO Cyrillic glyphs.** Under the current D-05 pick, Russian display text (welcome hero, tagline, any future display-register H1/H2) would silently fall through `--mks-font-display` to `Iowan Old Style → Times New Roman → serif`. Mokosh's audience is Russian operators primary; display text in Russian is the default case, not the exception. This is therefore not a corner case — it affects the default rendering path. ## Options for designer to pick | Option | Approach | Trade-off | |---|---|---| | **R1** | Keep Newsreader for Latin; add Cyrillic-capable OFL serif as fallback in `--mks-font-display` chain (e.g. `'Newsreader', 'PT Serif', serif`) | Preserves Newsreader aesthetic for Latin/English. Mixed-glyph paragraphs (Latin tagline + RU phrase together, or English wordmark + Russian subtitle) render in two different serifs — visually disharmonious | | **R2** | Substitute Newsreader entirely with a Cyrillic-native OFL serif | Unified rendering across all locales. Departs from designer's Newsreader pick — the aesthetic match for the Loom palette + 2×2 weave mark may or may not transfer | | **R3** | Other — designer proposes alternative (different display family / drop display register in favor of unified Plex Sans / use unicode-range `@font-face` to scope Newsreader to Latin-only and load second face for Cyrillic without disharmony / etc.) | Designer's call | | **R4** | Keep Newsreader as-is, accept Cyrillic fallback to `Iowan Old Style → Times New Roman` | If the operator-facing aesthetic for RU is intentional or acceptable | ## Candidate Cyrillic-capable OFL serifs (research §1 R1) | Family | Provenance | Aesthetic notes | |---|---|---| | **PT Serif** | ParaType (Russian foundry) | Designed specifically for Russian government use; excellent Cyrillic coverage; visually pairs well with IBM Plex Sans | | **EB Garamond** | OFL recreation of classic Garamond | Classical, formal feel; full Cyrillic | | **Lora** | OFL contemporary serif | Modern, slightly humanist; Cyrillic native | | **Source Serif** | Adobe OFL | Clean, neutral; Cyrillic via subset | ## What we need back from designer A one-line reply is enough: - `"R1, fallback chain Newsreader → PT Serif"` (or another fallback) - `"R2, substitute with PT Serif"` (or another family) - `"R3: "` - `"R4, accept the Iowan/Times fallback for Cyrillic"` You can also reply on the Decision Brief HTML, send updated `tokens.css`, a Figma link, or just a Slack/Russian-voice-memo — anything readable. ## What's paused until designer responds - Plan 01-12 (Design Integration) planner spawn — needs final `--mks-font-display` token value to write the WOFF2 bundling task spec - Plan 01-10 (welcome tab) execution — welcome hero uses display register, needs the resolved font - The 8 i18n copy strings work (Brief §02) — depends on whether display-register copy lands in the welcome hero (most candidates do) Plan 01-11 (Puppeteer UAT harness) runs in parallel — non-overlapping surface; not affected. --- ## Related - `.planning/intel/brand-decisions-v1.md` — original 9 decisions - `.planning/intel/design-incoming/system/bundle/mokosh-handoff/tokens.css` — current tokens.css (with Newsreader pick at line 76) - `.planning/phases/01-stabilize-video-pipeline/01-12-RESEARCH.md` §1 — full engineering research - Open against D-05 in `.planning/intel/design-incoming/mokosh/dist/Decision Brief (standalone).html`