@Felix + @Markus on PR #693: viewBox computation is self-contained (reads only positions + the MIN/PAD constants). Lift it out so buildLayout ends with a readable two-line orchestration. Pure refactor under green tests — no behaviour change, no test diff. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>