= CUES[i] + DUR - 2 ? 0 : 1,
}}
/>
))}
{cards.map((c, i) => {
const cue = CUES[i];
const t = interpolate(frame, [cue, cue + DUR], [0, 1], {
extrapolateLeft: 'clamp', extrapolateRight: 'clamp', easing: FLY_EASE,
});
if (t <= 0) return null;
const settled = t >= 0.999;
const dy = 600 * (1 - t) + (settled ? stackPress(i) : 0);
const rot = TILTS[i] * (1 - t);
const scale = 1.06 - 0.06 * t;
const shadow = settled
? '0 2px 8px rgba(60,45,30,.10)'
: `0 32px 64px rgba(60,45,30,${0.22 * (1 - t) + 0.06})`;
// amber highlight over the linked-project name, after landing
const hlStart = cue + DUR;
const hlGrow = interpolate(frame, [hlStart, hlStart + 7], [0, 1], {
extrapolateLeft: 'clamp', extrapolateRight: 'clamp', easing: Easing.bezier(0.3, 0, 0.2, 1),
});
const hlFade = interpolate(frame, [hlStart + 7, hlStart + 12], [1, 0], {
extrapolateLeft: 'clamp', extrapolateRight: 'clamp',
});
return (
})
{hlGrow > 0 && hlFade > 0 ? (
) : null}
);
})}
{/* page-space glaze sweep at the end */}
{/* screen-space counter, top-right — lands one digit per card */}
Paper Radar
Of 31 Fetched Today
);
};