Output EXACTLY ONE complete HTML file. No markdown fences. No explanation before or after the HTML. The file must run in Chrome with no build step. Tech stack (required): - Three.js r170+ from http://cdn.jsdelivr.net - WebGLRenderer only (NOT WebGPU) - OrbitControls: orbit a planet at origin; min/max distance clamped Scene: "Besiege Earth" - Procedural LOW-POLY planet at origin: • Build from icosahedron or cube-sphere (subdivided cube inflated to sphere) • Displace vertices with layered simplex/noise for continents and mountains • Color by height: deep ocean blue, green lowlands, brown peaks, white ice caps • Flat shading (MeshFlatMaterial or computed flat normals) for Besiege-like look - Thin atmosphere: slightly larger transparent sphere, fresnel/rim glow on edges - Slow cloud shell: second transparent layer or particle ring, subtle drift - Surface prop: one medieval SIEGE CATAPULT built from box/cylinder primitives (wood brown + metal gray), sitting on land near equator, correctly oriented to planet surface normal (not floating, not buried) - Lighting: warm sun directional + cool ambient; soft gradient sky background - UI overlay: title "Besiege Earth", subtitle with controls hint - Animation loop: planet rotates slowly (~0.05 rad/s); optional catapult arm sway - Responsive full-viewport canvas - Graceful error message if WebGL unavailable Constraints: - All geometry procedural; no external images or models - Keep total file under 900 lines if possible