scroll spy offset and hover state updates