pub fn encrypt(key: &[u8; 32], plaintext: &[u8]) -> Result<String, String>
Encrypt plaintext with AES-256-GCM. Returns base64url(nonce[12] || ciphertext || tag[16]).