double norm01Linear(double v, double lo, double hi) { if (!v.isFinite) return 0.5; if (!hi.isFinite || !lo.isFinite || hi <= lo) return 0.5; return clamp01((v - lo) / (hi - lo)); }