The encryption stack, end to end
Key derivation: Argon2id with 64 MB memory cost, 3 iterations, parallelism 1. Salt is a per-user random 16 bytes stored alongside the wrapped vault key. The output is a 256-bit wrapping key used only to encrypt and decrypt the vault key — it never directly encrypts vault items.
Vault key wrapping: AES-256-GCM with a random nonce. The wrapped vault key is stored as base64 ciphertext on our servers; without your master password it cannot be unwrapped.
Item encryption: AES-256-GCM with a fresh 96-bit nonce per item per write. Item ciphertext, nonce, and authentication tag are concatenated into a single blob that syncs to the server. Browser uses Web Crypto subtle.encrypt — hardware-accelerated, audited natively.