# LCARS — recommended fonts

This theme **bundles** two libre families (OFL-1.1) so it renders on-brand with
no admin setup:

| Slot | Bundled family | Role |
|------|----------------|------|
| Heading | **Antonio** | Tall condensed grotesque for LCARS labels, headings, buttons, and nav pills. |
| Body | **Antonio** | Same family for panel copy; condensed and legible at reading sizes. |
| Mono | **Share Tech Mono** | Numeric readouts, stardate stamps, statistics, prices, metadata. Tabular by design. |

Bundled files live in `assets/fonts/` (latin subsets); licenses in
`assets/fonts/LICENSES.md`. The theme CSS resolves every family through
`var(--font-heading | --font-body | --font-mono, <fallback>)`, and the fallback
stacks name the bundled families, so the identity holds even before an admin
touches the typography panel.

## Optional upgrade — Roboto Condensed for body (Google Fonts tab)

The locked direction pairs Antonio labels with **Roboto Condensed** (Apache-2.0)
for longer readout copy. Roboto Condensed is not bundled here (no libre woff2 was
available in the workspace at build time), so the body fallback stack degrades to
Antonio then a system condensed sans (`"Arial Narrow", system-ui`). To match the
locked direction exactly, assign Roboto Condensed to the **Body** slot from the
Google Fonts tab:

| Slot | Source | Family | Why |
|------|--------|--------|-----|
| Body | `google:Roboto Condensed` | Roboto Condensed | The locked body face for readout copy. Wider aperture than Antonio at small sizes. |
| Mono | `google:Share Tech Mono` | Share Tech Mono | Already bundled; also available in the picker if you prefer the Google source. |

## How to apply an override

1. Open **Admin → Theme → Typography**.
2. Switch to the **Google Fonts** tab.
3. Search and pick the family.
4. Assign it to the matching slot (Heading / Body / Mono).
5. Save. The pick is stored as `google:<Family>` and binds the `--font-*`
   variable, overriding the bundled fallback.
