# Nashville PBS DS — broadcast standards (always apply)

## Safe areas (station guide — see uploads/Safe_Areas (1).jpg) — MANDATORY for every broadcast graphic template
- Canvas: 16:9 broadcast. Author masters at UHD 3840×2160 (true 16:9 — never DCI 4K 4096×2160); HD delivery is a clean 2:1 downscale to 1920×1080.
- Action-safe = 90% of screen: inset 5% per edge.
- Title-safe = 80% of screen: inset 10% per edge — ALL text, logos, and readable elements stay inside. Nothing readable ever leaves this box.
- Backgrounds and color bars MAY bleed to the frame edges (e.g. the lower-third bar runs full width, edge to edge) — only the text/logos on them must sit in title-safe.
- 4:3 center-cut zones: not required — ignore.
- Pixel reads: HD title (192,108)–(1728,972), action (96,54)–(1824,1026). UHD title (384,216)–(3456,1944), action (192,108)–(3648,2052).
- Express type size, stroke weight, corner radius, and padding as % of frame height (not fixed px) so designs scale 4K↔HD cleanly.

## On-air backgrounds (Toolkit v3.1, p.64)
- Backgrounds on on-air templates must be switchable between: Primary Gradient, brand Pattern (Community/Insight), or Navy Blue. Never hard-lock a template to one background.
- Do NOT use the Curve shape on broadcast graphics — the station rejected every rendering of it. Endpage and title card sit directly on the background.
- Endpage/title-card gradient angle: light source TOP-RIGHT — linear-gradient(225deg, light-blue → pbs-blue → medium-blue). The 135deg token default is wrong here.
- Lower third (Toolkit 1.0 "Lower Third_Blue"): full-width PBS Blue bar, ~20% of frame height, floating ~6.5% of frame height above the bottom edge (footage visible below); messaging left (lower lines in the accent color), co-branded logo right; both inside title-safe.

## Template portability
Templates are consumed from other projects — never hardcode `../../assets/...` paths in template markup. Resolve the DS base at runtime from the loaded `_ds_bundle.js` script src and set image srcs via logic (see templates/on-air/OnAir.dc.html `_syncAssets`).
