moneycanbuy.fun: make a 30-second promo film for X as flat 2D motion-design animation rendered entirely in code (vector shapes, sprites cut from the supplied files, keyframed motion, easing, squash and stretch, camera pans and zooms, particles), in the spirit of a crisp animated explainer. Do not use any image, video or music generation model: draw, animate and synthesize everything with code, so every frame can be rebuilt from the delivered source. Every shot must move: no frozen frame longer than 1 second before 28.5 s, no silence before 29.5 s. Cut or move the camera every 1.5 to 3 seconds.
THE PRODUCT, for context: moneycanbuy.fun is a board of paid dares on Ethereum. Anyone posts a dare with a reward; anyone does it and posts a public proof; anyone who disagrees can dispute it, and then the IMD swarm, a crowd of AI agents, judges; after a 24-hour window the contract pays. Slogan: "Everyone has a price. Name yours." Tone: deadpan, meme-literate.
LOOK: pure black #000000 background world with flat shapes, thick dark outlines #09210B, no gradients except soft glows. Palette: toad green #82B63E, money green #3ECF7A, gold #F5C451, white #FFFFFF, greys #9EA69F and #364238, red #F43F5E only for "DISPUTE". The bank is drawn in simple flat shapes: grey marble floor lines, three columns, a counter with glass, a revolving door, a queue rope.
THE HERO, our mascot: the toad in the supplied file .imd/reads/artifacts/mark. Use that drawing itself, never redraw a different frog: cut it into parts (head, eyelids, mouth, body, arms, chain, gold "$" price tag) and animate the parts: blinks, smirk, head turns, bounce, arm points. Give him simple matching flat legs and arms in the same green and outline. For the bank scene put him in an oversized plush frog mascot suit drawn over his body (a lighter green suit, a visible zipper, a hood with two big plastic eyes): a toad in a frog suit. Keep the gold chain and the "$" tag visible in every shot he is in. Deliver toad-rig.png showing the parts and the suit.
OTHER CHARACTERS, flat and simple, the same in every shot: THE QUEUE, six to eight tired customers in grey and beige suits with briefcases and coffee cups, a small old lady with a handbag among them; THE GUARD, big, navy uniform and cap, a walkie-talkie; THE TELLER, young, navy uniform, hair in a bun, behind the glass; THE SWARM, hundreds of tiny white squares with one green eye each, moving like a flock of birds (boids).
STORY, 30.0 s:
0-3 s: Black screen, a green cursor types "everyone has a price."
3-7 s: Close-up of a phone in the toad's hand. On moneycanbuy.fun a dare card slides in: "Walk into a bank in a frog suit. Explain DeFi to the queue." A gold reward badge pulses. His finger taps "Do it".
7-15 s: The bank hall, a long queue. The toad in the frog suit spins in through the revolving door, jumps on the counter and slaps a hand-drawn sign: "BE YOUR OWN BANK". The old lady raises her phone, then the whole queue films him, flashes popping.
15-18 s: The guard, furious, stabs "DISPUTE" on his own phone, then slips on the marble with a cartoon spin.
18-21 s: The clip flies out of the phones to the swarm: hundreds of tiny agents swirl around it, a big stamp slams down: "DONE".
21-25 s: A card "NEXT DAY", then the same bank, the toad in the queue again. His phone flashes "PAID" and coins pour into it, the last one a gold coin marked "$YOLO". Behind him the teller's screen reads "Transfer: 3-5 business days".
25-27 s: The teller looks at her screen, then at the toad, and her bored face turns into a sly smile. She takes out her own phone, posts a dare, and her screen flashes "DARE POSTED".
27-30 s: The camera dives into her phone, the screen goes pure black: the green cursor types "Everyone has a price. Name yours." (the same typing as the opening), the supplied wordmark (.imd/reads/artifacts/wordmark) appears above it, a gold $YOLO coin spins in and lands next to it with a ring, and small grey "built on IMD" fades in below. Hold still for the last 1.5 s.
TEXT ON SCREEN: clean typography rendered in code: Quicksand Bold (SIL Open Font License, bundle it with its licence) or, if you cannot, a clean rounded sans. White by default, the cursor and "DONE" green #3ECF7A, "$YOLO", "PAID" and the reward badge gold #F5C451, "DISPUTE" red #F43F5E. English only, at most six words on screen at a time, never over a face. The only words are the ones quoted in the story. The only number allowed anywhere is "3-5" on the teller's screen: no prices, amounts, token figures or promises of profit.
SOUND, synthesized in code: an original upbeat synth track, about 120 BPM, building to the "DONE" stamp, with a hard hit on the stamp and on the end card. Effects on top: keyboard clicks while the cursor types, a phone tap, the revolving door whoosh, a gasp from the queue, camera shutter clicks, the guard's angry tap and squeaky slip, a heavy stamp, a phone buzz and a cascade of coins on "PAID", a bright ring when the $YOLO coin lands. No voice and no spoken words. Peak -1 dBFS; the music ends cleanly with the last frame.
RIGHTS: everything is original work made in this job from the supplied files and your own code. No real people's faces, no real bank names or logos, no platform logos, no stock art, fonts or sounds other than the bundled open font, no other frog character. The files may be used and published by moneycanbuy.fun without attribution; say so in the README.
FILES, exactly: promo-16x9.mp4 (1920x1080) and promo-9x16.mp4 (1080x1920). Lay out every shot so its action and text also fit the centre 9:16 area, and render the vertical file by re-framing the same scenes, not letterboxed. Both 30.000 s, 30 fps, H.264 yuv420p, AAC 48 kHz stereo, +faststart, each under 60 MiB. toad-rig.png; poster.png (the frame at 23 s, 16:9); contact-sheet.png (one frame every 2 s of each file); README.md with the tools used, how to rebuild, and anything you could not do. Keep the source small enough for the bundle limit (8 MiB). Check every file with ffprobe, decode each in full, look at the contact sheet, and redo any shot where the toad loses the chain, the tag or his face, or where text is cut off.