Build an original voxel sandbox game for the web, from scratch, in this empty directory. It is a block-building game: the player walks around a procedurally generated world of cubes, breaks blocks and places new ones. Invent its name, its look and its colour palette. It must be original. Do not use the name, branding, textures, sounds, fonts, logos or any assets of any existing game (for example, never write "Minecraft" or "Mojang" anywhere). Generate every texture, colour and sound in code, or leave sound out. ## Hard constraints 1. Plain static files only: HTML, CSS and JavaScript (ES modules). No build step, no npm, no bundler, no server code. Opening the files from a static web server must be enough. 2. Use three.js only from this pinned URL, through an import map: ```html ``` No other network request is allowed: no other CDN, no web fonts, no images or sounds from the internet. Everything else lives in this directory or is generated in code. 3. Required files: - `index.html`: the landing page; - `game.html`: the game itself. Put any other files you need (JavaScript modules, CSS) in this directory or its subdirectories. 4. Neither page may log an error to the browser console during normal use. 5. Create every WebGL renderer with `preserveDrawingBuffer: true` so that its canvas can be read back with `toDataURL`. 6. When you are done, write `NOTES.md`: the game's name, what works, what doesn't, and how to run it (`python3 -m http.server` in this directory, then open http://localhost:8000/). ## Features and acceptance criteria Each feature is scored by automated browser tests. The IDs and attributes in `code` below are part of the spec: the tests look for them exactly. ### F1. Landing page (`index.html`) A polished, modern, marketing-style page for your game. It must look good on a desktop and on a phone. - A hero section with the game's title in an `

` and a one-line tagline. - A live animated preview of the game world in a ``: render a small piece of your own voxel world with three.js and slowly orbit the camera around it. Consecutive frames must differ. - A screenshot gallery in an element with `id="gallery"`. You cannot take screenshots, so the page makes them itself: at load, render at least 3 fixed camera views of your world (for example a wide landscape, a close-up of a build, a night view) to an offscreen renderer and put each one into an `` inside `#gallery` with `src` set from `canvas.toDataURL("image/png")`. Each image must show the world, not a blank or single-colour frame. - A feature list: a `