Retriggerable shake (invalid-input feedback) + ping (notification ring) action
Fires once per trigger change. Use alongside a static error affordance (color, label).
Skipped entirely when prefers-reduced-motion is set.
Submit empty to see shake + static error label together.
Single expanding fading ring. Fires once per trigger — never loops.