46 languages and a face-lift
Two big changes.
The UI now speaks 46 languages. Pick yours from the globe button. Arabic, Hebrew, Persian, and Urdu flip the whole layout right-to-left, map panels included. Detection follows your browser, your choice sticks, and a language whose catalog fails to load falls back to English instead of breaking. The runtime is a small hand-rolled module, not a framework.
The redesign that rode along: an own palette for dark and light, SVG icons instead of emoji, B612 Mono for the numbers that matter, themed map pins and tiles, and hand-drawn brand marks. Plus a batch of accessibility and correctness fixes from a line-by-line review of the frontend: results focus handling, listbox semantics, a language-switch race, CSP font and manifest directives, and token corruption on place names containing dollar signs.
Still zero runtime dependencies. The one vendored font is OFL-licensed and served same-origin.
Translation fixes from native speakers are the friendliest PR there is — see CONTRIBUTING.md.