Client-side Unicode steganography

Invisible Message

Type a message; it becomes invisible characters woven into an ordinary-looking cover line — indistinguishable to the eye. The correct key reveals it; a wrong key is rejected. Everything runs in your browser — nothing is sent anywhere.

Hide a message
Reveal a message
Three keyed layers. (1) the message is scrambled by a key-derived keystream; (2) an integrity tag makes a wrong key reject instead of returning garbage; (3) key-scheduled chaff decoy characters are interleaved so the raw invisible stream can't even be parsed into clean bytes without the key. Honest scope: still invisible only to the eye / to a rendered view — a raw-character analyzer can see that some hidden data exists (it just can't read or parse it), and an invisible-character strip filter removes it. The technique itself (variation-selector encoding) is well-known prior art, not novel. A self-contained client-side proof of concept.