/* TowerSystem promo — timeline composition */
const DUR = 31;
function TimecodeTagger() {
const t = useTime();
React.useEffect(() => {
const root = document.getElementById('video-root');
if (root) root.setAttribute('data-screen-label', `t=${t.toFixed(0)}s`);
}, [Math.floor(t)]);
return null;
}
// persistent small brand mark, appears after the intro
function Watermark() {
const t = useTime();
if (t < 4.6 || t > 27.4) return null;
const op = clamp((t - 4.6) / 0.5, 0, 1) * (1 - clamp((t - 27.0) / 0.4, 0, 1));
return (
);
}
// thin chapter progress ticks at the very bottom of the canvas
function ProgressTicks() {
const t = useTime();
const marks = [0, 4.5, 9, 14, 19, 24, 27.5, DUR];
return (