# Magazine Bold — fonts

This theme **bundles** a Latin subset of three open-licence (SIL OFL 1.1)
families, so it looks correct the moment it is activated — no admin setup
required. The bundled faces are declared in `fonts.json` and land in the
typography picker as `source=template` rows.

| Slot    | Bundled family | Weights / styles       | Role                                                          |
|---------|----------------|------------------------|---------------------------------------------------------------|
| Heading | Archivo Black  | 400 normal             | Massive condensed uppercase cover headlines and the wordmark  |
| Body    | Inter          | 400 / 500 / 700 normal | Body copy, decks and UI text                                  |
| Mono    | IBM Plex Mono  | 400 / 500 normal       | Kickers, datelines, folio numbers, captions and button labels |

The bundled woff2 files and their licence record live in `assets/fonts/`
(`LICENSES.md`). Every `font-family` in the theme is routed through
`var(--font-heading, ...)`, `var(--font-body, ...)` and `var(--font-mono, ...)`
with a fallback stack, so the layout is usable before any font is assigned and
the admin font picker stays in full control.

## Assigning the bundled faces

1. In the BlockNinja admin, open **Settings → Theme → Typography**.
2. In the **Bundled** tab, assign **Archivo Black** to the *Heading* slot.
3. Assign **Inter** to the *Body* slot.
4. Assign **IBM Plex Mono** to the *Mono* slot.

## Optional swaps (Google Fonts tab)

The identity is condensed-heavy display + neutral sans body + mono details.
Any of these drop in via the CSS variables with no template change:

- **Anton** (`google:Anton`) — a taller, more condensed display face for the
  *Heading* slot; the loudest cover-headline option and the WO's alternate.
- **Archivo** (`google:Archivo`) — for the *Body* slot if you want the body to
  echo the display family.
- **Space Grotesk** (`google:Space Grotesk`) — an alternative body / deck face.
- **Space Mono** (`google:Space Mono`) — a chunkier mono for the *Mono* slot.

## Bundling a commercial display face (out of scope for Wave A)

If the brand locks in a licensed display face in place of Archivo Black, licence
and subset the woff2 set, drop it in `assets/fonts/`, and add the family +
variants to `fonts.json`. The CSS does not change — the same `var(--font-heading)`
consumer picks up whichever face an admin assigns.
