01fdd2f380
Adds androidx.palette dependency and a rememberDominantColor() helper that pulls the cover bitmap via Coil's singleton loader (shares the cache with the on-screen AsyncImage), runs Palette extraction on Dispatchers.Default, and animates the resulting color with animateColorAsState so track changes tween smoothly. NowPlayingScreen wraps the body in a Box with a vertical gradient (0% dominant @ 55%α → 45% dominant @ 18%α → 100% scheme.background) and lets the Scaffold's containerColor go transparent so the gradient shows through. Falls back to a near-transparent gradient on bitmap-load failure so the screen never sits on flat black. Hero transition (MiniPlayer → NowPlaying cover) and cover preload still pending — those land in a follow-up commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>