@namespace DeepDrftPublic.Client.Controls @* Shared background-image hero with all release metadata overlaid: top row (genre/date + share), bottom row (optional cover thumb + title/artist + play). Single source of truth for the overlay composition consumed by both Session and Mix detail. Purely presentational — owns no data fetch and no player wiring; play/share ride in as slots so each page keeps its own toggle. Per-page aspect/sizing variance rides the Class parameter (e.g. Mix's square `mix-hero`), never a fork. *@ @{ var hasGenre = !string.IsNullOrEmpty(Genre); var hasDate = ReleaseDate is not null; // Show the cover thumbnail only when it differs from the hero background — otherwise it would // duplicate the same image. Mix passes CoverThumbKey=null, so this is false there for free. var showCover = !string.IsNullOrEmpty(CoverThumbKey) && CoverThumbKey != HeroImageKey; } @* The hero is the positioning context for every overlay row; the gradient shim and the top/bottom overlays are absolutely positioned children of this wrapper. *@