Build a Vite + Three.js fullscreen experiment titled Ice Cream: a popsicle that contains an entire miniature solar system. Black background, no page chrome except a few glass pills.
The popsicle body is a rounded box (about 1.36 x 2.16 x 0.62) using MeshPhysicalMaterial with transmission 1, low roughness, ice bump, faint iridescence, and a cool attenuation tint so it reads as thick glass. Sit it at y = 0.92. Below it, a flat birch wooden stick with a real wood albedo, bump and roughness from luminance, clipped with a plane where it enters the glass so it never pokes through the ice.
Inside the glass, place nine textured planets: Jupiter, Saturn, Earth, Venus, Uranus, Neptune, Mars, Mercury, Pluto. Give Saturn shader rings with filaments, a Cassini gap, and a moving amber sheen, parented to the sphere so they stay locked through refraction. Planets slowly spin and bob. Keep them fully inside the glass volume so they never punch through the surface.
Fill the interior with a clipped galaxy: point stars, pink and blue nebula sprites, a few shooting stars, and a dense column of warm stars rising from the stick into the glass, fading from white to gold to amber. Stars and nebula must use clipping so they exist only inside the popsicle.
Light it like a small studio: key, fill, rim, a point light in the ice, plus warm lights on the stick. ACES tone mapping, light bloom, SMAA. Do not break transmission with EffectComposer tricks that turn the screen black.
OrbitControls with damping, gentle auto-rotate, pan on, polar limits so the popsicle stays framed. On Mac trackpad, two-finger wheel should orbit, not zoom. Left mouse rotates, right pans.
Click a planet to focus it. Ease the camera along the current view direction toward that planet over about two seconds, cubic ease-in-out, no sudden angle snap, no sideways arc. Keep the popsicle, stars, nebula, and colors visible the whole time. Show the planet name. Close, empty click, or Esc eases back home. If already focused, clicking another planet should hop from the current close-up without resetting the whole animation.
UI: FPS pill top left, Back pill top right. Focus name and Close appear as matching glass pills. Landing page can stay a dark portfolio card that opens this scene.