6078cb7a80
normalizeInterval rounded the interval (Math.round), so a 60fps interval (16.67ms) became 17ms and 8.4ms became 8ms — drifting frame=floor(elapsed/interval) and the scheduler's nextDueTime over time. Ink's normalizeAnimationInterval (use-animation.ts:147-151) does not round. Removed Math.round; the clamp (>=1, <=MAX_TIMER_INTERVAL) is unchanged and the scheduler already ceil()s the setTimeout delay so a fractional interval doesn't busy-loop. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>