diff --git a/script.html b/script.html
index 1c5ff74..9e8705b 100644
--- a/script.html
+++ b/script.html
@@ -258,7 +258,12 @@ function render(r) {
document.getElementById("sub").textContent = s.premise || "";
var stage = stageOf(p.status);
- if (VIEW === null || VIEW > stage) VIEW = stage;
+ // Clamp to what the stepper actually allows, not to the stage. These differ
+ // for an approved project: it sits at stage 2 but must be able to reach the
+ // Filming panel, which is where the button to start filming lives. Clamping
+ // to stage undid the click on every redraw.
+ var reach = reachOf(p.status);
+ if (VIEW === null || VIEW > reach) VIEW = Math.min(stage, reach);
// Shot controls belong to the layout stage. Elsewhere the shots are shown
// but not touchable, which is what "locked" means to shotHtml.
var locked = VIEW !== 2;