Immutable 2D Float vector. Arithmetic follows the scalar type, including overflow and non-finite values.
Linear interpolation; amounts outside 0..1 extrapolate.
Unit direction; a zero vector stays zero. Double intermediates avoid Float magnitude overflow.