# Asset & usage notes — jim-riehl-proposal

Independent application project by Mousa Batarseh (Oct 1–3, 2026). Not affiliated with Jim Riehl's Friendly Automotive Group.

## Images

| File | Origin | Rights / usage | Where used |
|---|---|---|---|
| `road-bg.jpg` | jimriehl.com homepage background (`3176d-road-bg.jpg`), downloaded Oct 3, 2026 | © Jim Riehl's Friendly Automotive Group. Used solely inside this private, unlisted (noindex) application page to present the brand faithfully to its owner. Removal on request. | Hero background, plan-section wash |
| `lapeer-hd.webp` | jimriehl.com dealership card (`lapeer-hd.webp`), downloaded Oct 3, 2026 | © Jim Riehl's Friendly Automotive Group; same terms as above. Credited in the figure caption. | About section |
| `road-wrangler-1200.webp` | Campaign Release Studio `public/media/`, licensed illustrative stock; license and source URL in `studio/docs/ASSET-RIGHTS.md` and `studio/licenses/` | Illustrative vehicle — labeled "not listed inventory" wherever shown | Hero campaign board (website + social compositions) |
| `friendly-desktop.png`, `studio-creative-mobile.png`, `marine-mobile.png` | Screenshots of the Studio (own work), Oct 2, 2026 | Own work | "The campaign" section |
| `measure-shot.png` | Headless screenshot of the deployed Studio Measurement view, Oct 3, 2026 | Own work; shows live demo records | "How the numbers collect" |
| `favicon.svg` | Studio favicon (own work) | Own work | Tab icon |

No OEM logos, the Friendly wordmark or logo, or dealer-site screenshots are used.

## Code

- `engine/studio-engine.js` — ES-module build of the Studio's own domain logic (`src/domain/engine.ts`, `upgrade.ts`, fixtures) via `vite.embed.config.ts` in the Studio project. 25 KB, no React. Rebuild with `npx vite build --config vite.embed.config.ts` and copy `dist-embed/studio-engine.js` here. The demonstration on the page imports it directly; nothing on the page is scripted — every state shown comes from `validateCampaign`, `updateCampaign`, `regenerateVariants`, `approveSource` and `approveVariant`.
- Fonts: Roboto (Google Fonts) to match jimriehl.com's type.

## Demo clock

The engine's test clock is fixed at `2026-10-08T14:00:00Z` (10:00 AM EDT) so every visitor sees identical, reproducible results. "Release 10:20" is the narrative framing of the brief's premise ("an offer changes twenty minutes before launch").

## Maintenance

- Page: `applications/friendly/site/index.html` (single file; styles and the demonstration script inline).
- Deploy: `rsync` the `site/` folder to `~/public_html/jim-riehl-proposal/` on Bluehost (multiplex the SSH connection — the host rate-limits repeated dials), then `chmod 644` files / `755` dirs. `.htaccess` sets `X-Robots-Tag: noindex, nofollow`.
- Studio: rebuilt with `npx tsc -b && npx vite build --base=./` and synced to `jim-riehl-proposal/studio/`. Asset URLs inside the app are relative (`media/…`, `docs/…`) so it works under a sub-path.
- Explainer video: `explainer/` holds `Campaign-Studio-Explainer-Full.mp4` (5:41, one real-life example end to end), VTT/SRT captions and the player page; the earlier 5:39 cut (`Campaign-Studio-Explainer.mp4`) stays on the server unlinked. Source project: Remotion folder `campaign-studio-explainer-full` (scene-plan.json → `full_narrate.py` Cartesia narration, cached per scene → `capture_shots.py` Playwright screenshots with a 6.5 s settle so entrance animations are finished → `full_props.py` → `npx remotion render`). Re-rendering after a page change only needs new screenshots + props.
- Dependency-map lights: the travelling pulses on the map are always red (amber on stale edges) so they read on the pale lines; they are hidden under `prefers-reduced-motion: reduce`.
