The artifact-count poll was gated behind if (!m_replayPlayer) (from the merge
resolution), so ArtifactCountChangedEvent never fired in replay mode: the header
stayed at its initial "Artifacts: 0/?" literal and never reflected replayed
artifact picks.
Unlike the schematic/win/game-over polls (live-input sources / interruptions
that stay gated), artifact count is a passive reflection of sim state. Move it
out of the replay gate so it tracks m_sim->artifactCount() during playback too,
including the first-frame emit that populates the win-count max.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DUsFgd2Ga6pmLz8giS8WUn