# RC106 · Library CSS + theme architecture cleanup

## Reference model read first
- RC104 direct-composite model is retained as the active stable premium image path.
- Enbensrodd direct-composite renderer remains the accepted reference for premium composites.
- RC101/RC102 floating/layered experiments are not active.

## What changed
- Added central theme service: `assets/js/services/theme-service.js`.
- Reused existing `exercise-illustration-service.js`; updated it to read global theme state and stable theme backgrounds for fallback foregrounds.
- Reused existing `.next-exercise-illustration*`, `.next-card`, `.next-button`, `.next-chip` classes instead of creating a parallel layout system.
- Cleaned exercise library detail layout and button/chip sizing with one RC106 CSS ownership block in `next-system.css`.
- Library OTA video preview now tries `ota_youtube_proxy.php` and replaces the OTA page iframe with direct YouTube embed when found.
- S2P1 premium remains direct composite: `assets/img/exercises/premium/s2p1/<exerciseKey>.webp`.
- Generated fallback exercises still use existing generated foregrounds, now backed by stable global theme background registry.

## Background assets mapped
- assets/img/themes/exercise-backgrounds/downhill-alpine-terrace.svg
- assets/img/themes/exercise-backgrounds/hockey-window-rink.svg
- assets/img/themes/exercise-backgrounds/neutral-soft.svg

## Removed from active package
- Old RC101/RC102/RC103 active cutout/layer experiment folders under S2P1.
- Old QA/static screenshot bulk from previous RCs.
- Stale root architecture/QA report clutter from prior RCs.

## Not changed
- No new AI images.
- No new background images.
- No pass page rebuild.
- Server backup import flow remains.

## QA focus
- Exercise rows compact before expand.
- Inline detail contained, no floating premium card.
- YouTube direct preview for OTA when proxy succeeds.
- Theme background registry exists centrally for future profile/global theme use.
- Direct composite premium images remain visible for S2P1.
