Decode Ctrl+D/Ctrl+U as HalfPageDown/HalfPageUp intents (matching the existing DeleteWord/DeleteLine chord pattern, so the editor stays ignorant of Ctrl). They step display (soft-wrapped) rows, not logical lines, so half a page is half the visible window regardless of how prose wraps: Normal moves the caret and the viewport follows, View scrolls the viewport, Insert/Command are no-ops.