169f8798f3
A `cover.*` image (jpg/jpeg/png/webp/heic/heif) in a hike's images/ dir (or hike root) now always becomes the overview-card cover, overriding the "first public route photo" heuristic. Unlike route photos it needs no track.gpx waypoint, is always public, and is excluded from the photo strip; alt text falls back heroAlt → title → "Titelbild". The shared responsive encoder is extracted from processImage into encodeImageVariant so the cover reuses it; its outputs join the orphan-cleanup keep-set.