- Replace daisyUI navbar sections with custom flex layout
- Branding centered: simple solid-color text (no gradient tricks)
- Tabs on the left, search + theme + settings on the right
- Search wrapper has max-width 420px, flex-shrink parent prevents overflow
- Feed ORDER BY adds NULLS LAST handling for empty dates
- Search box now fills navbar center with max-width 400px
- Dropdown items have more padding (p-4) and hover contrast
- Branding uses cross-browser gradient text with visible tagline
- Navbar centers tabs + search together in navbar-center
- Feed redesigned as responsive card grid (cover-centered, details below)
- Cards show large cover art with aspect-ratio:1, fallback SVG on 404
- Artist name, title, type badge, and date positioned under cover
- Fix search results dropdown: absolute position relative to search wrapper
- Make release group fetching async via Vert.x executeBlocking (avoid blocking add)
- Add OOB swap for artist list so +Add works from any page
- Simplify search-results template styling
- Add Response type for combined OOB responses
- Wrap search in HTMX form for reliable parameter serialization
- Replace daisyUI data-choose-theme with custom JS (localStorage persistence)
- Restructure navbar: logo+tabs left, search center, theme+settings right
- Center releases page with max-w-4xl constrained layout
- Center artist page content
- Add loading spinner centering