Architecture
- Smart Contract: `MidpointEscrow.sol` on Polygon Amoy.
- Frontend: Next.js App Router + Tailwind + shadcn/ui.
- Wallet / Chain: RainbowKit + Wagmi + Viem.
- Storage: IPFS uploads through backend route with signature auth.
- Data model: Event-driven indexing + on-chain reads for project state.
