Align returns a y-offset that keeps the selection away from viewport edges.
It behaves like a lightweight scrolloff: nudge just enough to keep a small buffer.
Reveal returns a y-offset that makes sure the span [start,end] is visible
with a small buffer above and below when possible. If the span is already
comfortably visible, the current offset is returned.