- piecesBig counter guard used .parent (always undefined on container
children in this Phaser build — they get .parentContainer), so the
'PIECES' count-up never rendered; drop the dead guard.
- buttonHit() had the same .parent assumption; use .parentContainer.
- Add tools/smokeJigsaw.mjs: headless-Chromium smoke test driving
menu -> play -> win showcase (camera settle, counter, confetti,
frame/shine) -> Play Again -> Menu -> play again, asserting zero JS
errors. Verified pass in browser.