Closes https://github.com/ppy/osu/issues/33383.
SongSelectV2: Fix background dim not being applied correctly when returning to screen
SongSelectV2: Fix backgrounds taking too long to load due to model backed drawable
SongSelectV2: Fix unstable positions of panels when scrolling
PanelBeatmapStandalone
Standardises all the logic which is applied in both directions – entering/resuming and suspending/exiting.
SongSelectV2: Add padding to avoid overlap between mods button and personal best
Again, I don't know why the new implementation didn't just draw from the old which was known to work. This mostly matches what was there in v1.
CarouselItem
Fix random selection potentially selecting a filtered-away beatmap
SongSelectV2: Various polish, pass 3
Fix directory breadcrumb buttons playing clicking sounds twice
Duck music and dim background when "no results" placeholder is visible
SongSelectV2: Fix input gap between last beatmap panel in set and next set panel
SongSelectV2: Fix more crashes resulting from users deliberately trying to break things
See https://github.com/ppy/osu/issues/33336#issuecomment-2922443444. Can't wait for even more human fuzzing to come later.
SongSelectV2: Fix scroll to selected not always scrolling
Adds SFX for rank changes to the in-game rank display
SongSelectV2: Fix some missing/incorrect SFX
Closes https://github.com/ppy/osu/issues/33336. I was worried that doing that was going to cause terminal breakage but in testing it does not appear to so I'm just going to do this and call it a day.
Without it the layout height set does not take effect for the scroll to correctly execute.
`updateItemYPosition()` mutates `item.CarouselYPosition`, so storing that to the selections before it's updated is storing stale values.