All loaders
Geometric6s loop
Pebble
One shape flexing, with an outline running behind it.
Pauses off screen
The prompt
Build a fullscreen preloader called Pebble. Centre a square about 44% of the stage's smaller dimension on a near-black background. Fill it with a 140-degree linear gradient running from white at 15% to a saturated accent at 115%, so the light on the shape shifts as it turns. Animate it over 6s on ease-in-out through four keyframes, changing the full eight-value border-radius and the rotation together. Start at 42% 58% 62% 38% / 46% 42% 58% 54% with no rotation and scale 1; at 25% go to 64% 36% 33% 67% / 62% 57% 43% 38% with 90deg and scale 0.88; at 50% to 33% 67% 58% 42% / 37% 63% 37% 63% with 180deg and scale 1.06; at 75% to 58% 42% 46% 54% / 55% 33% 67% 45% with 270deg and scale 0.92; then home. Rotating while the corners travel is what makes it read as one solid object flexing rather than an amorphous blob wobbling in place. Behind it, place a copy with no fill and a one-pixel white border at 25% opacity, inset slightly larger, running the exact same animation with a -0.5s delay. That single negative delay gives you a wake trailing the shape for free, with no second set of keyframes to maintain. Loop forever. Under prefers-reduced-motion, hold both shapes on one frame.