What problem does it solve? Authoring JavaScript-driven animations that must render deterministically at any seeked timestamp is difficult, since native Web Animations API playback is time-based and asynchronous. This Skill provides the contract and patterns for making element.animate() animations seekable by the HyperFrames waapi runtime adapter. ## Core Features & Use Cases - Seekable Animation Contract: Enforces finite duration and iterations, fill: "both", synchronous creation, and paused animations so HyperFrames can set currentTime deterministically. - Ready-Made Patterns: Includes a basic keyframe pattern with delay and cubic-bezier easing, plus a stagger pattern for animating lists of elements with incremental delays. - Anti-Pattern Guidance: Lists what to avoid, such as infinite iterations, animation.finished callbacks, requestAnimationFrame clocks, and layout-property animation. - Use Case: You are building a HyperFrames video composition and want lightweight DOM motion without a GSAP dependency; use this Skill to write WAAPI keyframes that scrub correctly frame-by-frame, then verify with npx hyperframes lint and validate. ## Quick Start Use the waapi skill to write a seekable element.animate() animation for my HyperFrames composition with a staggered fade-in of list items.