use `input` event for immediate feedback