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)