Task T8 evidence — song/sermon background layer RED: - `ddev exec php artisan test tests/Feature/ProFileExportTest.php` - Failed as expected before implementation: - song slides had no BACKGROUND media action - slides table had no `cover_mode` column for full-cover detection GREEN: - `ddev exec php artisan test tests/Feature/ProFileExportTest.php` - 13 passed, 76 assertions - Verified: - every song text slide gets BACKGROUND media when ServiceImageResolver resolves a background - sermon image slides get BACKGROUND media when not full-cover - full-cover sermon image slides (`cover_mode=true`) skip BACKGROUND media - final .proplaylist export preserves the same sermon/full-cover behavior Full suite: - `ddev exec ./vendor/bin/pint ... && ddev exec php artisan test` - 537 passed, 2683 assertions