fn contains_ignore_case(s: &str, needle: &str) -> bool
Case-insensitive contains for ASCII strings (no heap allocation).