the trip map is not a projection
why each pin uses two percentages, and where the map deliberately cheats
the trip map stores each pin as mapX and mapY, two percentages inside a fixed map box. that keeps the content independent from the svg path and makes every coordinate easy to inspect in a markdown file
the compromise is visible around coastlines. the land is a simplified Natural Earth path, so a geographically exact point can land in water. big sur and the north cascades each get a small documented nudge, then npm run verify:pins checks that every published point still lands on the drawn map
zooming changes the svg viewbox. the pins stay in world coordinates, then convert back to screen percentages after every pan or zoom. when western trips overlap, a small repulsion pass separates the hit targets without rewriting the stored coordinates