Let users reveal a book's remaining OpenLibrary subjects without letting long subject lists dominate the book viewer by default. ## Tasks - [x] Build on the subject limit from #33 and show up to three subjects by default in src/components/BookCard.tsx - [x] Replace the passive `+N more` indicator with a clearly labelled button when additional subjects exist - [x] Reveal all remaining subjects after activation and offer a Show fewer subjects control to collapse the list again - [x] Keep the subject list readable when a book has many or unusually long subject names; preserve wrapping and avoid horizontal overflow at 320 px width - [x] Reset the expanded state when the displayed book changes so one book's choice does not affect another book - [x] Preserve useful list semantics and clear keyboard focus for the expand/collapse control - [x] Add component and user-interaction tests for books with three or fewer subjects, expanding, collapsing, and changing to another book - [x] Update snapshots deliberately if the rendered subject control changes ## Acceptance criteria - [x] A book with at most three subjects has no expand control - [x] A book with more than three subjects initially shows three subject tags, with a button such as Show 7 more subjects for the remaining subjects - [x] The button reveals every remaining subject and the list can be collapsed again - [x] Switching to another book starts with that book's subjects collapsed - [x] Subject controls work with keyboard and remain usable on narrow screens - [x] No additional OpenLibrary request is made by expanding or collapsing subjects - [x] `npm run format:check` / `npm run lint` / `npm test` / `npm run build` pass Branch `feat/<n>-expand-book-subjects` from main after #34 merges. Part of M4.