A 5-character code has about 33 million possible values. If the code were also the decryption key, anyone who obtained the stored ciphertext could try every combination offline in minutes. That would defeat the point of encryption.
So the key travels in the part of the link after the #. Browsers never send that part to any server — it stays between the sender and the recipient. The trade-off is simple: a Private share must be opened with the full link, not just the code. When the toggle is on, the result card shows only the link.
If someone types only the code, we stop before fetching anything, so the share is not consumed. Ask the sender to copy the full link (or use the QR code) instead.