diff --git a/src/app/components/BackgroundPattern.tsx b/src/app/components/BackgroundPattern.tsx
new file mode 100644
index 0000000..1f55f99
--- /dev/null
+++ b/src/app/components/BackgroundPattern.tsx
@@ -0,0 +1,157 @@
+"use client";
+import { useState, useEffect } from "react";
+import {
+ type LucideIcon,
+ HandCoins,
+ Bitcoin,
+ Coins,
+ DollarSign,
+ Euro,
+ IndianRupee,
+ JapaneseYen,
+ PiggyBank,
+ PoundSterling,
+ Wallet,
+ Banknote,
+ ChartCandlestick,
+ CirclePercent,
+ CreditCard,
+ Gem,
+ Receipt,
+ ShoppingBasket,
+ Rocket,
+ RockingChair,
+ Sparkles,
+ ChartPie,
+ ChartBar,
+ BarChart3,
+ ChartLine,
+ TrendingDown,
+ TrendingUp,
+ Vault,
+ Landmark,
+ Briefcase,
+ Handshake,
+ Shield,
+ Lock,
+ CalendarRange,
+ Hourglass,
+ Sprout,
+ Target,
+} from "lucide-react";
+
+export default function MultiIconPattern({ opacity = 0.2, spacing = 160 }) {
+ const [width, setWidth] = useState(0);
+ const [height, setHeight] = useState(0);
+ const [rows, setRows] = useState(0);
+ const [columns, setColumns] = useState(0);
+
+ useEffect(() => {
+ const updateDimensions = () => {
+ if (window.innerWidth > width + spacing * 2) {
+ setWidth(window.innerWidth);
+ }
+ if (window.innerHeight > height + spacing * 2) {
+ setHeight(window.innerHeight);
+ }
+ };
+
+ updateDimensions();
+ window.addEventListener("resize", updateDimensions);
+
+ return () => {
+ window.removeEventListener("resize", updateDimensions);
+ };
+ }, [height, width, spacing]);
+
+ useEffect(() => {
+ setColumns(Math.ceil(width / spacing) + 3);
+ }, [width, spacing]);
+
+ useEffect(() => {
+ setRows(Math.ceil(height / spacing) + 3);
+ }, [height, spacing]);
+
+ // Explicitly type the array as LucideIcon[]
+ const iconComponents: LucideIcon[] = [
+ HandCoins,
+ Bitcoin,
+ Coins,
+ DollarSign,
+ Euro,
+ IndianRupee,
+ JapaneseYen,
+ PiggyBank,
+ PoundSterling,
+ Wallet,
+ Banknote,
+ ChartCandlestick,
+ CirclePercent,
+ CreditCard,
+ Gem,
+ Receipt,
+ ShoppingBasket,
+ Rocket,
+ RockingChair,
+ Sparkles,
+ ChartPie,
+ ChartBar,
+ BarChart3,
+ ChartLine,
+ TrendingDown,
+ TrendingUp,
+ Vault,
+ Landmark,
+ Briefcase,
+ Handshake,
+ Shield,
+ Lock,
+ CalendarRange,
+ Hourglass,
+ Sprout,
+ Target,
+ ];
+
+ const renderIcons = ({
+ rows,
+ columns,
+ }: {
+ rows: number;
+ columns: number;
+ }) => {
+ const icons = [];
+ for (let y = 0; y < rows; y++) {
+ for (let x = 0; x < columns; x++) {
+ // Pick a random icon component from the array
+ const randomIndex = Math.floor(Math.random() * iconComponents.length);
+ const IconComponent = iconComponents[randomIndex]!;
+
+ // Slightly randomize size and position for more organic feel
+ const size = 28 + Math.floor(Math.random() * 8);
+ const xOffset = Math.floor(Math.random() * (spacing / 1.618));
+ const yOffset = Math.floor(Math.random() * (spacing / 1.618));
+
+ icons.push(
+ ,
+ );
+ }
+ }
+ return icons;
+ };
+
+ return (
+
+ {width > 0 && renderIcons({ rows, columns })}
+
+ );
+}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 7f56ec5..3cc73c9 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -7,11 +7,13 @@ import {
AccordionTrigger,
} from "@/components/ui/accordion";
import Footer from "./components/footer";
+import BackgroundPattern from "./components/BackgroundPattern";
export default function HomePage() {
return (
-
+
+
{/* Added SEO Content Sections */}
-
+
What Is FIRE? Understanding Financial Independence and Early
@@ -247,7 +249,7 @@ export default function HomePage() {
financial independence and smart investing.
-
+
Getting Started with FIRE:
-