diff --git a/src/components/airdrop/CampaignHero.tsx b/src/components/airdrop/CampaignHero.tsx index cf3b1eb..a84dd14 100644 --- a/src/components/airdrop/CampaignHero.tsx +++ b/src/components/airdrop/CampaignHero.tsx @@ -283,52 +283,110 @@ export function CampaignHero() { poolUsd={burnState.poolUsd} /> - {/* ── What happens as PLOT grows ── */} + {/* ── Section 1: Your airdrop grows with $PLOT ── */}
- What happens as PLOT grows + Your airdrop grows with $PLOT
+

+ The pool is {data.poolAmount.toLocaleString()} PLOT. Its value depends on the market. +

-
+
+ {/* "Now" row */} +
+ Now + MCap {data.currentFdv > 0 ? formatCompact(data.currentFdv) : "—"} + Pool value: {data.currentFdv > 0 ? formatUsdValue(burnState.poolUsd) : "$0"} +
+ {/* Milestone rows */} {milestoneRows.map((row, i) => ( -
- {i > 0 &&
} +
+ + Step {i + 1} + + MCap {formatCompact(row.fdv)} + + Pool ~{formatCompact(row.poolUsd)} + +
+ ))} +
+ +

+ The same {data.poolAmount.toLocaleString()} PLOT — worth{" "} + {data.currentFdv > 0 ? formatUsdValue(burnState.poolUsd) : "$0"} today, or{" "} + ~{formatCompact(milestoneRows[milestoneRows.length - 1]?.poolUsd ?? 0)} at full distribution. + Your airdrop size = market growth. +

+
+ + {/* ── Section 2: Four steps — not unrealistic ── */} +
+
+ Four steps — not unrealistic +
+

+ Each step unlocks a bigger share of the pool. +

+ +
+ {milestoneRows.map((row) => { + const reached = data.currentFdv >= row.fdv; + return (
-
- - MCap {formatCompact(row.fdv)} - - {row.cmcRank && ( - {row.cmcRank} - )} -
-
- - {row.pct}% unlocked - - - {row.burnPct}% burned - +
+ {formatCompact(row.fdv)}
-
- {row.unlockPlot.toLocaleString()} PLOT -
-
- Pool ~{formatCompact(row.poolUsd)} - {row.isFull && ( - - Full distribution - - )} + {row.cmcRank && ( +
{row.cmcRank}
+ )} +
unlocks
+
+ {row.pct}%
-
- ))} + ); + })} +
+ + {!AIRDROP_TEST_MODE && ( +

+ These aren't moonshot numbers — #250 on CMC is a mid-tier project. + Thousands of tokens have done it. +

+ )} +
+ + {/* ── Section 3: Not reached? Burned forever. ── */} +
+
+ Not reached? Burned forever.
+ +
+
+ If MCap stays below {formatCompact(milestoneRows[0]?.fdv ?? 0)}: +
+
+ {data.poolAmount.toLocaleString()} PLOT → burned permanently 🔥 +
+

+ No team keeps it. No treasury recycles it.
+ Burned = reduced supply = value for holders. +

+
+ +

+ Either way, PLOT holders benefit:
+ reach milestones → earn airdrop. + Miss milestones → supply shrinks. +

{/* ── Participant count ── */}