Role-aware Car/public-financial joins

Run python3 verify_joins_offline.py after extracting portable-joins-proof.zip. The standard-library verifier decodes7Safe getOwners results, recovers20retained main-key digest/signature pairs, checks8public-profile/8controller bindings and recomputes exact111withdrawal-role joins and400recipient overlaps. It makes no network calls.

It does not establish8human private-key possession proofs. Public human/account association comes from the cited author disclosure; contract getters bind wallets to keys. The111outer transaction cryptographic proofs are reused from hash-pinned ROOT-WINDOW-FINDINGS.json and the parent root-window evidence, rather than reconstructed from full typed payloads in this smaller capsule.

build_join_capsules.py rebuilds the projections in the retained investigation workspace from SOURCE-PROVENANCE.json. Full social post/API text bodies are excluded. The one-hop graph available here is actor-side and contains no disclosed16edge, so its zero nonzero-role overlap is not a full Car/onward-history test. Any later genuine transfer still would not by itself map the C91 Tornado note to a withdrawal.
