# BEFORE R0: narration

t=0 is the first video frame showing the overlay box (video time 0.04 s). Each mark changes the overlay colour; the t column is the first video frame showing that mark's colour (frame-accurate at 25 fps). Wall-clock prediction vs observed max error 0.047 s over 7 marks; frames at 15.7 s, 17.38 s, 20.62 s were extracted and checked.

Hold: /bounded held 2934 ms (HOLD_MS 2500 + measurement), framesDuringHold 75, loadingSeenDuringHold True.
The overlay reads `loading thread; /bounded held 2500 ms` (grey) from t=0 until the mount mark.

| t (s), first frame showing this mark | wall-clock prediction (s) | overlay text |
|---|---|---|
| 15.6 | 15.60 | thread mounted after the hold |
| 15.64 | 15.67 | wheel up 339 px |
| 17.24 | 17.27 | after wheel: gap 339 px (0.40 ch) gate ok |
| 17.28 | 17.31 | release t1-start |
| 18.24 | 18.27 | release t1-finish |
| 19.2 | 19.22 | release p1 |
| 20.52 | 20.57 | end of row |

## Samples

| label | scrollTop | scrollHeight | clientHeight | gap | anchor | anchorTop | pill | follow listeners (timeline/doc keydown) |
|---|---|---|---|---|---|---|---|---|
| S0 mounted | 5145 | 5993 | 848 | 0 | P090 | 61.3 | False | 0/0 |
| S_up | 4806 | 5993 | 848 | 339 | P084 | 64.9 | False | 0/0 |
| after t1-start | 5145 | 5993 | 848 | 0 | P090 | 61.3 | False | 0/0 |
| after t1-finish | 5145 | 5993 | 848 | 0 | P090 | 61.3 | False | 0/0 |
| after p1 | 5201 | 6049 | 848 | 0 | P091 | 61.2 | False | 0/0 |
