Topic filter now exposed in the UI (was in the data model since v1.0). New "topic" chip row on the setup screen: all / math / science / language / history / arts. Same chips also appear inside the new mid-session filter panel.
Filter panel — a ⚙ button in the top bar opens a slide-in panel with both difficulty and topic chips (plus a live "N cards match" preview). Changes take effect on the next card; the current visible card stays put so the mark you're about to make still records against the right question. Panel dismisses on the ✕, "done" button, or tapping the dark backdrop.
Smart summary on the filter button. The ⚙ icon is passive when both filters are on "all"; when you narrow the pool (e.g. math + easy), the button tints moon-gold and shows a compact ⚙ math · easy summary right in the top bar — you never have to open the panel to know what pool you're on.
Setup + panel chip states are mirrored — flip the filter one place, it flips in the other.
v1.1 — card flip
Card-flip reveal. v1.0 revealed the answer inline by hiding a "reveal answer" button and expanding a block below the question — functional but flat. v1.1 replaces it with a real 3D flip: the whole card rotates 180° on the Y-axis (GPU-composited rotateY, .65 s cubic-bezier easing), question on the front, answer + why on the back. Tap anywhere on the card face to flip. Pi-safe: single transform, no re-paints during the animation.
Mark bar fades in ~halfway through the flip so the buttons don't compete visually during the rotation.
Advancing to the next question snaps the card back to its front face without animation (the flip-out would flash the previous answer at the incoming question, which felt wrong).
Back face uses a slightly warmer parchment tint so the two sides feel distinct on quick glances.
v1.0 — first playable
600 cards across 5 categories (math / science / language / history / arts+logic), roughly balanced at 120 each.
Difficulty tagging (easy / medium / stretch), roughly 48 / 48 / 24 per category.
Setup screen: pick a difficulty filter (all / easy / medium / stretch), see progress stats (seen / missed / retired / total in pool).
Card flow: question → tap "reveal answer" → answer + "why" appear → mark ✓ / ✗ / 🗑 retire → next card.
Open-ended session: tap through until you tap leave. End-of-session tally shows totals.
Per-card state persisted to localStorage (night-deck:state) with three status values: wrong, right, retired.
Queue prioritises unseen + previously-missed cards. "Right" cards cool down for ~30 other-card marks before rejoining the rotation. "Retired" cards never come back unless progress is reset.
Auto-refill: if the queue drains mid-session, it rebuilds from the still-eligible pool so play doesn't stall.
"Reset progress" button on the setup screen wipes localStorage and starts fresh.
Aesthetic: deep navy background with a subtle starfield + moon accents; card face uses warm parchment-cream so questions read like a physical library card.
Landing page: new "learning" section separates study tools from games.
Seeded from the 60-question docs/brain-quest-plus.md deck Benjamin wrote; expanded ~10× per the design conversation.