Frontend: CHARM card — epoch CHARM, pending CRED, claim on Last Buy reset
Context
CHARM + pending CRED card and claim UX. Parent epic: #238 (closed).
Relevant files
- Replace
TimeCurveStakeAtLaunchSection.tsx - New:
ArenaCharmCredCard.tsx frontend/src/pages/timecurve/useTimeCurveSaleSession.ts
Acceptance criteria
- Shows current Last Buy epoch id, user CHARM, pending CRED
- When epoch ends: Claim CRED CTA; calls
claimCred(epoch) - After claim: zero epoch CHARM; pending CRED cleared
- Remove "worth at launch" / CL8Y redemption projection
Verification checklist
- Anvil: buy → accrue pending → epoch roll → claim
- Empty states per #200 (closed)