# Clone Prompt: Hydraulic Press Tycoon

Paste this entire file as your **first message** in a new Lovable project.

---

Build **Hydraulic Press Tycoon**, a single-page physics-flavored clicker.

## Stack rules
- TanStack Start template (React 19, Tailwind v4). No backend, no extra deps.
- One route at `/` (the game IS the homepage).
- Semantic color tokens in `src/styles.css`. Never `text-white`, `bg-black` etc.
- All state in a single `useReducer` inside the route component.
- Per-frame updates via a `useGameTick(fps)` hook using `requestAnimationFrame`.

## Core loop
Player clicks a big PUMP button to build PSI in a hydraulic piston. When PSI
exceeds the current item's `hardness`, the item is crushed and the player
earns money. PSI decays slowly when not pumping.

## Items (queue, ascending hardness)
1. Marshmallow — hardness 10, reward $5
2. Banana — 25, $12
3. Apple — 60, $30
4. Watermelon — 150, $90
5. Coconut — 400, $250
6. Bowling Ball — 1,000, $700
7. Concrete Block — 2,500, $1,800
8. Steel Bar — 6,000, $5,000
9. Titanium Ingot — 15,000, $14,000
10. Diamond — 40,000, $42,000
11. Prince Rupert's Drop — 100,000, $130,000
12. Neutron Star Frag — 300,000, $500,000

When crushed, advance to the next item. Use emoji for each item, scaled large.

## Mechanics
- **Per-click PSI**: starts at 5. Upgrade "Piston Power" multiplies it.
- **Passive PSI/sec**: starts at 0. Upgrade "Hydraulic Pump" raises it.
- **Auto-clicks/sec**: upgrade "Auto-Pumper" adds simulated clicks.
- **Pressure decay**: 2 PSI/sec, reduced by "Pressure Seals" upgrade.
- **Over-crush bonus**: reward × (1 + min(2, overflow/hardness) × tipFactor).
- **Combo**: crushing within 2.5s of previous crush gives ×1.1, stacking up to ×3.

## Upgrades (6 tracks, exponential cost, base × 1.6^owned)
1. Piston Power — +50% per-click PSI, base $25
2. Hydraulic Pump — +1 passive PSI/sec, base $80
3. Auto-Pumper — +1 auto-click/sec, base $300
4. Pressure Seals — −15% decay, base $150
5. Tip Jar — +25% over-crush bonus factor, base $500
6. Crusher's Insurance — +20% base reward, base $1,000

## Visuals
- Industrial hazard-stripe yellow/black header.
- Big SVG piston that descends when PSI is high, snaps back on release.
- Item squishes (scaleY shrinks proportional to PSI/hardness) before crushing.
- On crush: screen shake (CSS keyframe), debris particles (10–20 colored divs
  with randomized velocity, gravity, rotation — managed in the tick loop).
- Floating "+$NNN" text rising from crush site.
- PSI readout as a chunky LCD-style gauge with red zone above hardness.

## Layout
- Center: piston + item stage.
- Left: stats panel (cash, PSI, per-click, passive, combo×).
- Right: upgrades list with cost, owned count, effect.
- Bottom: giant PUMP button (also accepts Space key).

## Acceptance
- Clicking PUMP visibly raises PSI bar.
- First marshmallow crushable in ~2 clicks; Neutron Star realistically requires
  heavy upgrade investment.
- All 6 upgrades buyable and visibly affect the loop.
- No console errors. Works on mobile (button + auto-pumper let it idle).
