How it behaves
Exactly what the prompt builds — every timing and easing is specified, so the result matches the demo.
- Split: the text is split into words and then letters. Words sit side by side with a quarter-em gap, and each letter is its own inline block.
- Scramble in: letters start hidden. Each one appears in order, stagger ms after the previous one. On appearing, it swaps to a random character every charDelay ms, 3 to 8 times (or exactly maxIterations), then shows its real letter. A safety timer (duration) forces the real letter if the flicker runs long.
- Scramble on hover: the letters stay visible and flicker in the same way, faster: 10ms stagger, 25ms swaps, 5 swaps, 0.1s cap, and at most once every 250ms.
- Triggers: mount plays after delay seconds, view waits until the text is 90% up the screen, and hover replays on pointer enter.
- Demo: a full-screen contact panel over a darkened photo. It holds a 75% wide centered block of 48px uppercase lines (the studio name in the accent colour) and two footer lines. Everything scrambles in, 0.1s apart, from 0.75s after load, and the email and social lines re-scramble on hover.
- Fallbacks: reduced motion and no JavaScript show the text straight away. Screen readers always get the real text.