Make a wordless, ~1-minute animated short starring [CHARACTER], built as one self-contained HTML file. Everything is code: draw every frame on a <canvas> with vanilla JavaScript as a pure function of time t, so any moment can be rendered exactly and scrubbed to. Don't use images, fonts, video, audio files or libraries. Generate all textures (paper, grain, watercolour, the character's surface) procedurally when the page loads. Put no text on screen.
For the look, use a hand-drawn sketchbook style: slightly jittering ink lines, watercolour washes, cross-hatching, and film grain on procedural paper. Draw each shot in layers (base wash, colour fill, ink, characters on top) so colour can spread into the scene as masked watercolour blobs. Give every shot a moving camera (push-ins, pans, shake, orbits) and mix quick cuts with slow, held moments. Personify [CHARACTER] with simple facial expressions and squash-and-stretch, and give it a story with a real emotional arc: [ONE-LINE STORY].
For sound, synthesize everything live with the Web Audio API. Build instruments from oscillators, filters and envelopes (piano, music box, flute, strings, bass, drums, noise-based effects). Place each one in stereo and route it through a generated reverb, an echo, and a compressor and limiter. Sequence the score on a beat grid in time with the cuts, with recurring themes that change with the mood. Schedule notes against the audio clock so picture and sound stay locked together.
For delivery, wrap it in a simple video player (play/pause, scrubber, fullscreen) and deploy it to a public URL. For a video file, render the frames deterministically in headless Chrome and the audio offline with an OfflineAudioContext, then combine them into an MP4 with ffmpeg.