Static HTML. No build step, no framework, no npm install. Open any file in a browser and it works. They exist because the AI concept images in graphics/ found a layout and could not evaluate one: gibberish body text, duplicated rows, five identical timestamps, real national borders where the design wants abstract provinces. The log for that run says plainly that the next version of the Brief is HTML. This is that.
There is no number anywhere in this set that states a fact about another player. Every rival value is a dated, attributed, corroborated-or-not claim, or a band with a confidence and an age, or the words NO ASSESSMENT. If a screen here ever showed a rival's true value, that screen would be the bug the whole game exists to avoid.
Everything here is a static design artifact. There is no server, no state, no persistence and no engine. The stack decision in docs/20-tech-stack.md (Cloudflare Workers, Durable Objects, Vite, React, MapLibre) governs the product and deliberately does not govern these files.