Build a **Link to the Past-style action-adventure slice in procedural low-poly 3D** — the toy-box look of the modern Zelda remakes (Link's Awakening style: tilted top-down camera, miniature diorama feel, soft shadows, rounded low-poly everything). Pure three.js procgen — NO gpt-image-2, NO external assets. Original IP: pick your own hero + world name.

## ⚠️ THE TEST (user's exact words):
*"i want to cut grass, break pots, kill slimes and stuff. im very curious how well fable can make the swing animations and visual juice feel when attacking enemies."*

So the bar is **MELEE FEEL**. Everything else is supporting cast. Get these right:

### The sword swing
- A readable 3-beat swing: windup (brief anticipation) → arc (fast, ~120° horizontal sweep) → follow-through/recovery. Procedural skeletal animation via three.js group pivots (shoulder/arm/sword hierarchy) — you've done procedural legs (spider bots, APHELION gait); this is the arm version.
- **Motion trail**: a fading arc-mesh that sweeps with the blade (the classic Zelda white crescent). This single effect carries the whole feel.
- Swing cancels into movement smoothly; ~0.35s total; small forward step during the arc.
- Stretch if budget allows: hold-to-charge spin attack with 360° trail.

### Hit feedback (per target type)
- **Grass**: tufts scattered everywhere in patches; swinging through them cuts them — they POP into 4-6 green confetti fragments that flutter down + occasionally drop a heart/gem. Cut grass regrows after ~20s. The iconic satisfaction loop — make cutting a whole field feel compulsive.
- **Pots**: clay pots on the ground + on ledges; one hit shatters into 5-8 spinning shards with gravity + bounce, puff of dust, sometimes a pickup inside.
- **Slimes**: squishy low-poly blobs (squash-and-stretch idle bounce). On hit: **hit-stop (3-5 frames)**, white flash, knockback with squash, gel splatter particles. 2 hits to kill → death = satisfying pop into droplets + pickup drop. 4-6 slimes that hop toward the player slowly. Maybe one BIG slime that splits into two smalls (your call).
- **Screen shake** scaled by impact, **brief radial particle burst** at the contact point, and a subtle camera punch on kills.
- Pickups (hearts, gems) **magnetize** to the player within ~2 units. Gem counter + hearts HUD.

## THE WORLD (one slice, diorama-pretty):
- One compact zone (~40×40 units): grassy field with grass patches, a few trees (low-poly canopy spheres/cones), pots clustered near a little ruin or shrine corner, a pond or stream edge, scattered rocks. Soft rolling height variation.
- **Toy-box rendering**: tilted top-down camera (~50-60° down) following the player, soft directional light + warm hemisphere, round soft shadows (blob shadows fine), gentle depth-of-field/tilt-shift feel if cheap (vignette + slight blur at top/bottom edges sells miniature), vivid saturated palette.
- Wind sway on grass + canopy. Ambient: butterflies or drifting pollen motes.
- Player: low-poly hero (capsule-ish body, head, tunic colors, sword + simple shield on back). Charming > detailed.

## CONTROLS:
- Mobile portrait-first (390×844, scales; desktop works too — camera handles any aspect).
- Virtual stick (left) = move, ATTACK button (right) = swing; tap-tap for combo swing is a nice-to-have. Desktop: WASD + J/Space.

## TECH:
- Vite + TS, three.js. `base: './'`. TS strict. `npm run build` → dist/.
- `window.__game` hook: { phase, hearts, gems, slimes, grassCut, potsBroken, attack(), teleport(x,z) }.
- Playwright e2e (portrait): title → start → move → attack() → grass count drops → slime takes damage → no console errors.

## SHIPPING DISCIPLINE (checkpoint culture — user may pause you anytime):
- ~turn 12: world renders, hero moves, swing animation with trail works. COMMIT green build.
- ~turn 25: grass/pots/slimes all reactive with full feedback. COMMIT.
- ~turn 38: pickups + HUD + ambient polish + e2e. COMMIT.
- Hard cap **45 turns**.

## OUT OF SCOPE:
Dungeons, bosses, NPCs/dialogue, inventory/items beyond the sword, multiple zones, day/night, save system, music (light Web Audio SFX only: swing whoosh, grass swish, pot crack, slime squish, pickup chime).

WHEN DONE: one-line summary with the name you chose.
