Background = Mask = PDF = Manifest = Replay
All 23 active templates · 4 audit phases · Complete dimension traceability
Goal: Background Dims = Mask Dims = PDF Canvas = Frontend Geo = Manifest Geo = Replay Geo
| Template Group | BG Dims | Mask Dims | PDF Canvas | Frontend Geo | Manifest Geo | Replay Geo | Match | Notes |
|---|---|---|---|---|---|---|---|---|
| Angel (Default) | 1620×1200 | pending upload | 800×593 | 800×534 | 800×593 | 800×593 | ✗ | frontendGeo uses legacy 534 |
| Soldier Letter | 2250×1667 | — | 800×593 | 800×593 | 800×593 | 800×593 | ✓ | ✓ Fully aligned |
| Starship Bridge | 1620×1200 | — | 800×593 | 800×593 | 800×593 | 800×593 | ✓ | ✓ pdfLayout correct; registry dims stale (declares 1920×1440) |
| Navy Ship | 1536×2304 | — | 683×1024 | 800×593 | 683×1024 | 683×1024 | ✗ | CRITICAL: portrait misrouted as landscape in templateGeometry.js |
| 1920×1440 group (×9) | 1920×1440 | — | 800×600 | 800×1120 | 800×600 | 800×600 | ✗ | STD_H=1120 phantom — all zone bottomY values are offset |
| 1024×683 group (×3) | 1620×1200* | — | 800×593 | 800×1120 | 800×593 | 800×593 | ✗ | *Registry says 1024×683 but you produced at 1620×1200 |
| Floral group (×5) | 2250×4000 | — | 800×1422 | 800×1120 | 800×1422 | 800×1422 | ✗ | STD_H=1120 — actual canvas is 302px TALLER than assumed |
lib/templateGeometry.js: Change angH = 534 → 593 in default case, angelMarginAtY(), and getContinuousAngelCSS(). Adds 59px of correct canvas height to Angel.lib/templateGeometry.js: Change STD_H = 1120 → derive pdfH per-template from actual asset dimensions. All portrait templates currently use a phantom height.lib/templateGeometry.js: Navy Ship is a portrait asset (1536×2304). Its canvas is 683×1024, not 800×593. Remove it from the LAND_H=593 group. Recalculate all zone coordinates.lib/backgroundTemplates.js: Update stale imageWidth/imageHeight metadata for Angel, tropical_beach_01, birthday_celebration_01, and starship_01 to reflect actual CDN dimensions.TemplateGeometry records are populated for all templates, templateGeometry.js hardcoded values become the fallback of last resort only.Verify every active template CDN URL resolves to a valid asset (HTTP HEAD)
Load each background PNG and measure actual pixel dimensions. Compare against registry and frontend geometry.
All hardcoded dimension values found in the codebase, their source files, and their status.
Trace every rendering surface to confirm geometry source. Identify any surface still reading legacy constants.