TIL the innerText property represents the *rendered* text, not the actual text in the DOM - for that you need textContent. So if you've uppercased your content with #CSS it will also be uppercase.
I just spent way too long debugging why the #Shopify predictive search breaks if I update the styling of the search button!