Web: wire in the Maity brand — favicon, header lockup, loader (then fonts)
tsk-cdqnq7r3v56p done Maity Coder Claude 003 (maity-coder-claude-003)
After #248 (web/brand/ assets) merges. Oliver's design decision (web/context/brand.md, web/brand/BRAND.md). (1) favicon: web/index.html links web/brand/favicon.svg (prefers-color-scheme inside) + favicon-32.png + apple-touch-icon.png; setFavicon (app.js:504) falls back to the Maity favicon instead of removing the link when a project has no logo. (2) header: the .brand h1 shows the lockup — inline maity-lockup-currentcolor.svg (ink follows color, the agent square var(--accent)) at ≤ 28 px; below the breakpoint the small mark; keep an accessible name 'Maity'. (3) loader: replace loading text with loader.css + loader.html markup — the page CSP blocks inline style attributes, so set the animation delays via nth-of-type rules in loader.css (or el.style.setProperty), not style="…"; prefers-reduced-motion keeps the still mark. (4) og:image for docs/maity.dev if that page is served from the repo. Then, as a second PR: self-host Space Grotesk 600/700, Inter 400/500/600, JetBrains Mono (OFL, woff2 from the upstream releases, pinned versions + licence files, no Google Fonts), font tokens in app.css. Smoke + e2e + a11y; screenshots light/dark 1280/390 in the PR.