- Vector tile graphics (
1mb/sprites.js, 25 SVG symbols themed by each floor's CSS variables).gtoggles graphics/ASCII; default on. - Side panel lists what every visible interactable does and where every exit leads, with warnings for the five instant deaths (door d, effigies, unsafe pit edges, unbowed crown, crack with gold).
tools/validate.jsfails if any tile, effigy, or exit destination that can appear on floors 1-7 has no legend entry.- Status line no longer prints the room text twice; a step lost to darkness dims and shakes the grid.
- Thin flame: torch pickup and brazier cap get
THIN_FUEL_BONUS(10). Seed 8q10qn could not finish floor 1 without it. tools/playthrough.js: full-run simulator through the real engine, wins replayed throughkey(). 17/20 seeds won; the 3 misses are thin-flame seeds that exhausted the search budget. Not part ofcheck.sh(1-3 min per seed). Headless loader moved totools/engine.js.
Size: 112,564 B (10.7% of budget), ledger row in docs/SIZES.txt.
tools/check.sh: 1400/1400 floors solvable, legend coverage OK.