Favorites that survive closing the browser (course requirement: localStorage). ## Tasks - [ ] `FavoriteButton`: heart/star toggle on the book card, `aria-pressed` state and accessible name including the book title - [ ] Persist favorites in `localStorage` under `t19.favorites` (JSON array of book keys); tolerate missing/corrupt data - [ ] `FavoritesView`: simple list/section of favorited books (title + author + remove option) reachable from the app shell - [ ] Tests: toggle updates storage, reload restores state, removing works, corrupt JSON falls back to empty list ## Acceptance criteria - [ ] `npm run lint` / `npm test` / `npm run build` pass, jsx-a11y clean Branch `feat/<n>-favorites` from main. Part of M3 (due Fri 11/9).