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>