- OnboardingFlow replaces app layout on first visit (no wrystr_pubkey in localStorage)
- Welcome screen: plain-language explanation of Nostr/keys, two paths
- Create path: NDKPrivateKeySigner.generate(), show npub with copy button
- Backup step: show nsec with danger styling, copy button, checkbox confirmation
required before proceeding — login happens only after user confirms backup
- Login path: existing nsec or read-only npub, back button to welcome
- On complete: normal app layout shown; pubkey in localStorage acts as the flag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>