diff --git a/script.html b/script.html
index 3fea10e..fe1c37d 100644
--- a/script.html
+++ b/script.html
@@ -939,7 +939,12 @@ function pzPaint(lines) {
if (!PZ.length) { el.innerHTML = ""; return; }
var total = PZ.reduce(function (a, b) { return a + (b.seconds || 0); }, 0);
var bought = segs.length * 8;
- var over = PZ.filter(function (x) { return x.over; });
+ // Spoken here, but filmed by Veo, which was asked to over-enunciate so the
+ // mouth is readable and therefore runs slower. Measured on a real clip:
+ // 17 words took 7.02s filmed against about 5.7s spoken, so ~1.25x.
+ var FILMED = 1.25;
+ var filmed = total * FILMED;
+ var over = PZ.filter(function (x) { return (x.seconds || 0) * FILMED > 8.0; });
el.innerHTML = '
Spoken, this runs '
- + total.toFixed(1) + ' seconds but only ' + bought + ' seconds are being '
- + 'filmed. Something will be cut off. Shorten the words, or buy more length.
'
- : (total < bought * 0.85
- ? '
Spoken, this runs only '
- + total.toFixed(1) + ' seconds across ' + bought + ' seconds of video, '
- + 'so roughly ' + ((bought - total) / PZ.length).toFixed(1) + ' seconds of '
- + 'every shot is silence. That is where trailing sound effects and echo come '
- + 'from: the model is handed a gap and fills it. More words per shot is the fix.
'
+ + PZ.length + ' lines · ' + total.toFixed(1) + 's spoken, about '
+ + filmed.toFixed(1) + 's once filmed, against ' + bought + 's of shots'
+ + (filmed > bought
+ ? '
Filmed, this would run about '
+ + filmed.toFixed(1) + ' seconds but only ' + bought + ' seconds are being '
+ + 'shot. Something will be cut off. Shorten the words, or buy more length.
'
+ : (filmed < bought * 0.88
+ ? '
Filmed, this would run about '
+ + filmed.toFixed(1) + ' seconds across ' + bought + ' seconds of video, '
+ + 'leaving roughly ' + ((bought - filmed) / PZ.length).toFixed(1) + ' seconds '
+ + 'of silence at the end of every shot. That is where trailing sound effects '
+ + 'and echo come from: the model is handed a gap and fills it. More words per '
+ + 'shot is the fix.
'
: ''))
+ (over.length
? '
Shot' + (over.length > 1 ? 's ' : ' ')
+ over.map(function (x) { return x.index; }).join(", ")
- + ' will not fit in eight seconds: '
- + over.map(function (x) { return x.index + " runs " + x.seconds.toFixed(1) + "s"; }).join(", ")
+ + ' will not fit in eight seconds once filmed: '
+ + over.map(function (x) { return x.index + " would run " + (x.seconds * FILMED).toFixed(1) + "s"; }).join(", ")
+ '. Trim those lines before filming.
'
: '')
+ '
'
+ PZ.map(function (x) {
+ var f = (x.seconds || 0) * FILMED;
return '