pub fn gap_at(t: f32, gaps: &[(f32, f32)]) -> Option<(f32, f32)>
Return the gap range containing t, or None.
Handles wrap-around ranges where start > end (for closed splines).