Your data and encryption
Every upload is one file and its kind, sealed in your browser.
A record is one file and its kind. Six kinds on day one: voice notes, dashcam rides, typing rhythm, dream journals, receipts and screen time.
Sealing. Your browser encrypts the file with HPKE base mode (RFC 9180): DHKEM(X25519, HKDF-SHA256), HKDF-SHA256 and AES-128-GCM, to the room's public key. The info string is tacit-v1 and the associated data is kind|room, so a record opens only inside that room and only as the kind it was sealed as. The implementation is about a hundred lines of WebCrypto and is tested both ways against an independent HPKE library.
Where it goes. Until your wave opens, the sealed copy stays in this browser (IndexedDB) and only its hash goes to the waitlist. When your wave opens, the ciphertext uploads straight to the room. This site never sees a file in the clear.
On the record. Hash, kind, size and owner. Never the contents.
Deleting. One signed message. The record leaves the next payout and the next training, and its ciphertext is dropped from the room's disk.