# PyAI brand assets

The PyAI mark is the "status dot": a solid circle inside a soft concentric ring,
set in a dark rounded-square chip. It started life as the `status.pyai.com`
favicon and is now the product logo.

## Colors

| Token | Hex | Use |
|-------|-----|-----|
| Ink (chip) | `#0b0d10` | The rounded-square background |
| Brand green | `#1f9d55` | Default mark; also the "operational" status color |
| Brand blue | `#3a5bd0` | Alternate accent mark |
| Wordmark ink | `#0b0d10` / `#ffffff` | "PyAI" on light / dark backgrounds |

Green reads as "operational/status" — prefer it for status surfaces. Use the
blue mark for general brand placements where the status connotation isn't wanted.

## Files

Masters are SVG (scale to any size). The wordmark in the lockups uses
`fill="currentColor"`, so in HTML it inherits the surrounding text color (works
on light and dark). PNGs are pre-rendered for contexts that can't use SVG.

| File | What |
|------|------|
| `logo-mark-{green,blue}.svg` | Mark only (square) |
| `logo-horizontal-{green,blue}.svg` | Mark + "PyAI" to the right |
| `logo-stacked-{green,blue}.svg` | Mark above, "PyAI" centered below |
| `logo-mark-{green,blue}-{16..1024}.png` | Mark PNGs (16/32/48/64/128/180/256/512/1024) |
| `logo-{horizontal,stacked}-{green,blue}-{dark,light}-{64..512}.png` | Lockup PNGs; `dark` = near-black wordmark (light bg), `light` = white wordmark (dark bg) |

Convenience copies at `marketing/public/`: `favicon.svg`,
`favicon-16x16.png`, `favicon-32x32.png`, `apple-touch-icon.png` (180px).

Product screenshots for press live in `screenshots/`
(`console-dashboard.png`, `omni-call.png`, `trace-scorecard.png`). They are
representative product visuals, not captures of a specific customer account.

Product hero/social art lives in `hero/` (`omni.png`, `trace.png`,
`voice-designer.png`). These are illustrative brand visuals; small text baked
into them is not authoritative copy.

## Regenerating the PNGs

After editing any master SVG:

```bash
cd marketing
node scripts/export-logo-pngs.mjs
```

(Uses `sharp`, already a dependency via Next.js.)
