Binary search on a sorted array is straightforward. Hard binary search is different. You search over an answer space, not an array. The question becomes: what's the minimum value where some condition holds?
This pattern appears when you see "minimize the maximum" or "maximize the minimum." You binary search over possible answers and check feasibility for each candidate. The feasibility check is where the real work happens.