+ // Parallax refs — same depths as before, preserved for parity
+ const cardRef = useParallax({ depth: 12 })
+ const bgRef = useParallax({ depth: -8 })
- {/* Main Heading */}
-
-
Predict.
-
Repeat.
-
-
Earn.
-
-
+ // Listen for global open-connect-wallet event from navbar / drawer
+ useEffect(() => {
+ const handler = () => setIsWalletModalOpen(true)
+ document.addEventListener("open-connect-wallet", handler as EventListener)
+ return () => document.removeEventListener("open-connect-wallet", handler as EventListener)
+ }, [])
- {/* Description */}
-
- Join the decentralized prediction platform where your insights turn into rewards. Powered by blockchain
- technology for transparent and instant payouts.
-
+ const handleWalletDisconnect = () => {
+ setIsConnected(false)
+ setWalletName(null)
+ setWalletAddress(null)
+ }
+
+ return (
+ <>
+ {/* ── Section wrapper ──────────────────────────────────────────────────
+ overflow-hidden clips the mesh SVG and the parallax orb so they
+ don't bleed past the section boundary on narrow viewports. */}
+
+
+ {/* ── Gradient mesh background (fix #2) ──────────────────────────────
+ The SVG is an so it counts as a single network request and
+ is decoded off the main thread. object-cover keeps the aspect
+ ratio correct at any viewport width.
+ The radial CSS overlay above it blends the mesh into the page
+ gradient, removing the hard edge where the section begins/ends. */}
+
+ {/* SVG mesh layer */}
+ {/* eslint-disable-next-line @next/next/no-img-element */}
+
+ {/* Soft radial vignette — blends mesh edges into surrounding page colour
+ without introducing a linear stop that would cause banding */}
+
- {/* Right Column - Prediction Markets Preview */}
-
- {/* Win Notification Badge */}
-
-
-
-
+ {/* ── Decorative parallax orb (unchanged position, opacity reduced
+ slightly to let the mesh read through) */}
+
+
+ {/* ── Content container ─────────────────────────────────────────── */}
+
+
+ {/* ── Headline (fix #1 — kerning) ─────────────────────────
+ Three breakpoint-tuned letter-spacing values:
+ default → tracking-tight (−0.025 em)
+ sm → −0.035 em via inline style (no Tailwind step)
+ lg → −0.045 em via inline style (max optical tightness)
+
+ The CSS custom-property trick keeps the JSX clean while
+ letting each breakpoint override cleanly via media queries
+ defined in the style tag below. */}
+
+
+
+ Join the decentralized prediction platform where your insights turn into rewards. Powered by
+ blockchain technology for transparent and instant payouts.
+
+ {/* PRIMARY CTA */}
+
+
+ {/* SECONDARY CTA — ghost variant, size="sm" keeps it visually
+ lighter than the primary without hiding it from keyboard nav */}
+
+