Closes#98
Replace sequential await-in-list-comprehension with asyncio.gather() so
all card embed fetches run concurrently. Cuts 50 sequential DB round-trips
(5 packs × 5 cards × 2 calls each) down to ~2 concurrent batches.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>