CMakeLists.txt: generate firmware.map via -Wl,-Map. CI build job: - Writes per-section size table to the Gitea job summary (visible in the Actions UI after each run). - Uploads firmware.hex and firmware.map as a downloadable artifact named firmware-<sha>. CI docs job: - On push to main, force-pushes docs/html/ as an orphan commit to the gh-pages branch. Gitea Pages must be enabled in site admin for the HTML to be served; the branch is always available via the repo file browser regardless.