A · Vector slideshow (HTML+SVG)
onboarding.html
3 SVGs · CSS crossfade + per-scene micro-anim · ~96 KB total · scales perfectly
B · Lottie JSON (3-pose)
koala-onboarding.json
429 KB · 7.5s loop · 30fps · 800×800 · embedded base64 PNG poses
C · Koala wave — rigged (no ghost)
koala-wave.json / .webp
After path-surgery: arm outline split out of body path. 1.77 MB Lottie · 132 KB WebP · 48f @ 24fps · 2s loop · 540×540 · transparent
C2 · Rigged wave (live CSS)
wave-koala-rigged.html
CSS animation on the rigged SVG. The arm rotates ±25° around the shoulder pivot, body silhouette stays clean.
C3 · Before / After comparison
Why path surgery mattered
BROKEN
Original SVG · arm outline baked into body
FIXED
Rigged SVG · arm outline is its own path · pixel-identical at rest
Same artwork. Rigged version has the arm separable from the body outline — rotation no longer leaves a ghost.
D · Source video → bear WebP
bear-wave.webp
1.6 MB · animated WebP · transparent · 24fps · 5s loop
D · Source poses (vector)
poses/*.svg
18 KB + 36 KB + 44 KB raw SVG · 40 / 83 / 106 paths