How Villa Duna was made
Villa Duna doesn’t exist. It’s a concept house, drawn with an image model, filmed with a video model and built into a website by hand. These are the six steps, with the prompts that worked and the ones that didn’t.

A brief before any pictures
The house had to be quiet: two thin roofs over a glass room, oak, black steel and concrete, raised a little above the dunes. The idea fits in three words, shelter in the open, and every prompt after this was written to it.
Four stills of one house
The front view was generated first, with Nano Banana Pro. It then went in as the reference image for every other still, so the roofs, the columns and the light stayed the same from shot to shot. The blue hour view keeps the morning’s exact framing, which is what lets the site turn day into night without the camera moving.

Morning, from the dune path. The reference for everything else.

The deck in afternoon sun.

The living room, where the walk ends.

Blue hour, in exactly the morning’s framing.
One camera move
The walk from the dune path into the living room is a single Higgsfield clip. It was given the front view as its first frame and the living room as its last, so it lands exactly on the still where the next chapter begins.
Smooth, slow cinematic dolly forward along the dune path, up the timber steps, through the open glass doors into the living room. Steady camera, no shake, no cuts, constant speed, soft morning light, eye level.
Constant speed matters more than it sounds: scrolling exposes every speed change. The clip came out at 1080p, visibly softer than the stills, so it was upscaled to 2K with FLUX.3 Upscale.

The clip as generated, 1080p. 
After upscaling to 2K. Scrolling instead of playing
Browsers jump around a video slowly, especially backwards, so the clip never plays as a video. It’s cut into 144 still frames, and the page draws whichever frame matches your scroll onto a canvas. The frames are AVIF, which came out 45% smaller than WebP and slightly closer to the original, so the whole walk is about 11 MB on a laptop and 3 MB on a phone.
Dusk reuses the same frames played backwards under a blue wash, and ends on the blue hour still. The still and the video’s first frame didn’t quite match, so the last frame is nudged 1.5% larger and a few pixels right, measured rather than eyeballed, and the cross-fade between them is seamless.
Close-ups, and a wall that took four tries
The four materials are macro stills made with the front view as a reference, so their light matches the house. Oak, steel and linen worked first time. The concrete wall didn’t:

First try: the formwork came out as timber boards.

Second: a staggered, brick-like pattern.

Third: naming the reference made it copy the shot.

Fourth: describing the camera angle worked.
The lesson: an image model copies the composition of a reference it’s told to use. To get a new angle, describe the camera, and use the reference only for colour and light.
The site
The site is built with Astro, which turns it into plain HTML with very little JavaScript and leaves the download budget for pictures. GSAP’s ScrollTrigger ties each scene to the scroll, and Lenis smooths the scroll without changing its speed. With reduced motion turned on, every scene becomes still pictures and text, and nothing is lost.