6a932405f8
Wraps the NavHost in a SharedTransitionLayout and applies Modifier.sharedElement to both the MiniPlayer cover and the NowPlayingCover, keyed on a single HERO_KEY_NOW_PLAYING_COVER. Tapping the MiniPlayer cover now morphs into the full NowPlaying cover instead of cross-fading. Plumbing: * HeroScopes.kt — staticCompositionLocalOf holders for both the SharedTransitionScope (set once at NavHost root) and the AnimatedContentScope (re-set per composable<>, since each route has its own). * MinstrelNavGraph.kt — private WithAnimatedScope helper wraps each composable<> lambda so its AnimatedContentScope reaches the nested cover. * MiniPlayer.kt MiniCover + NowPlayingScreen.kt NowPlayingCover each read both scopes and prepend Modifier.sharedElement when both are present; degrade gracefully (no hero, still renders) outside the layout for previews / tests. Cover preload still pending — that's slice 3 if you want it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>