Add hero illustration and structural addiction section

- New Gemini-generated hero image: mushrooms decomposing money and shells
  into fertile soil (used as both OG thumbnail and hero section image)
- New "Addicted to Extraction" section bridging systemic critique to
  mycoeconomics: war, oil, exploitation, and extractive finance vs
  open protocols of redistribution
- Updated OG/Twitter metadata descriptions
- Removed stale @vercel/analytics import

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-05 15:02:50 -08:00
parent d2c3baf402
commit 47f20c009b
7 changed files with 183 additions and 89 deletions

View File

@ -2,7 +2,6 @@ import type React from "react"
import type { Metadata } from "next" import type { Metadata } from "next"
import { GeistSans } from "geist/font/sans" import { GeistSans } from "geist/font/sans"
import { GeistMono } from "geist/font/mono" import { GeistMono } from "geist/font/mono"
import { Analytics } from "@vercel/analytics/next"
import { Suspense } from "react" import { Suspense } from "react"
import "./globals.css" import "./globals.css"
@ -10,22 +9,22 @@ export const metadata: Metadata = {
metadataBase: new URL("https://trippinballs.lol"), metadataBase: new URL("https://trippinballs.lol"),
title: "TrippinBalls.lol - Post-Capitalist Alternatives", title: "TrippinBalls.lol - Post-Capitalist Alternatives",
description: description:
"Exploring mycoeconomics, permaculture currencies, and post-capitalist alternatives to neoliberalism. Society is trippin balls on extraction - let's find better ways.", "Society is trippin balls — addicted to war, oil, and exploitation through extractive financial institutions. Mushrooms have been running open protocols of redistribution for a billion years. Let's learn from them.",
generator: "v0.app", generator: "v0.app",
keywords: "mycoeconomics, permaculture, post-capitalism, alternative economics, mutual aid, degrowth, commons", keywords: "mycoeconomics, permaculture, post-capitalism, alternative economics, mutual aid, degrowth, commons, extractive finance, open protocols, redistribution",
openGraph: { openGraph: {
type: "website", type: "website",
locale: "en_US", locale: "en_US",
url: "https://trippinballs.lol", url: "https://trippinballs.lol",
title: "TrippinBalls.lol - Post-Capitalist Alternatives", title: "TrippinBalls.lol - Post-Capitalist Alternatives",
description: "Exploring mycoeconomics and post-capitalist alternatives to neoliberalism", description: "Addicted to war, oil, and exploitation — structurally. Mushrooms have been running open redistribution protocols for a billion years. Let's learn from them.",
siteName: "TrippinBalls.lol", siteName: "TrippinBalls.lol",
images: [ images: [
{ {
url: "/og-image.jpg", url: "/og-image.jpg",
width: 1200, width: 1200,
height: 630, height: 630,
alt: "TrippinBalls.lol - Post-Capitalist Alternatives", alt: "Society is Trippin Balls - A mushroom decomposing money and tank shells into new growth",
}, },
], ],
}, },
@ -33,7 +32,7 @@ export const metadata: Metadata = {
card: "summary_large_image", card: "summary_large_image",
title: "TrippinBalls.lol - Post-Capitalist Alternatives", title: "TrippinBalls.lol - Post-Capitalist Alternatives",
description: description:
"Exploring mycoeconomics, permaculture currencies, and post-capitalist alternatives to neoliberalism. Society is trippin balls on extraction - let's find better ways.", "Society is trippin balls — addicted to war, oil, and exploitation through extractive financial institutions. Mushrooms have been running open protocols of redistribution for a billion years. Let's learn from them.",
images: ["/og-image.jpg"], images: ["/og-image.jpg"],
}, },
icons: { icons: {
@ -50,7 +49,6 @@ export default function RootLayout({
<html lang="en"> <html lang="en">
<body className={`font-sans ${GeistSans.variable} ${GeistMono.variable}`}> <body className={`font-sans ${GeistSans.variable} ${GeistMono.variable}`}>
<Suspense fallback={null}>{children}</Suspense> <Suspense fallback={null}>{children}</Suspense>
<Analytics />
</body> </body>
</html> </html>
) )

View File

@ -2,6 +2,7 @@ import { HeroSection } from "@/components/hero-section"
import { MycoeconomicsSection } from "@/components/mycoeconomics-section" import { MycoeconomicsSection } from "@/components/mycoeconomics-section"
import { AlternativesSection } from "@/components/alternatives-section" import { AlternativesSection } from "@/components/alternatives-section"
import { CritiqueSection } from "@/components/critique-section" import { CritiqueSection } from "@/components/critique-section"
import { StructuralAddictionSection } from "@/components/structural-addiction-section"
import { CompostCapitalismSection } from "@/components/compost-capitalism-section" import { CompostCapitalismSection } from "@/components/compost-capitalism-section"
import { PostAppitalismSection } from "@/components/post-appitalism-section" import { PostAppitalismSection } from "@/components/post-appitalism-section"
import { ActionSection } from "@/components/action-section" import { ActionSection } from "@/components/action-section"
@ -14,6 +15,7 @@ export default function HomePage() {
<Navigation /> <Navigation />
<HeroSection /> <HeroSection />
<CritiqueSection /> <CritiqueSection />
<StructuralAddictionSection />
<MycoeconomicsSection /> <MycoeconomicsSection />
<AlternativesSection /> <AlternativesSection />
<CompostCapitalismSection /> <CompostCapitalismSection />

View File

@ -1,5 +1,6 @@
"use client" "use client"
import Image from "next/image"
import { Button } from "@/components/ui/button" import { Button } from "@/components/ui/button"
import { ArrowDown, Sparkles } from "lucide-react" import { ArrowDown, Sparkles } from "lucide-react"
@ -35,6 +36,18 @@ export function HeroSection() {
{" inspired by nature's wisdom."} {" inspired by nature's wisdom."}
</p> </p>
{/* Hero illustration */}
<div className="relative w-full max-w-3xl mx-auto mb-10 rounded-xl overflow-hidden shadow-2xl shadow-primary/20 border border-primary/20">
<Image
src="/hero-mushrooms.png"
alt="Mushrooms growing from decomposing money and shell casings, transforming extraction into regeneration"
width={1408}
height={768}
className="w-full h-auto"
priority
/>
</div>
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center mb-12"> <div className="flex flex-col sm:flex-row gap-4 justify-center items-center mb-12">
<Button <Button
size="lg" size="lg"

View File

@ -0,0 +1,103 @@
import { Flame, Droplets, Swords, Landmark, ArrowRight, Sprout } from "lucide-react"
export function StructuralAddictionSection() {
return (
<section className="py-20 relative overflow-hidden">
{/* Subtle background texture */}
<div className="absolute inset-0 bg-gradient-to-b from-destructive/5 via-transparent to-primary/5" />
<div className="container mx-auto px-4 relative z-10">
<div className="text-center mb-16">
<h2 className="text-4xl md:text-5xl font-bold mb-6 text-balance">
{"Addicted to "}
<span className="text-destructive">Extraction</span>
</h2>
<p className="text-xl text-muted-foreground max-w-3xl mx-auto text-pretty leading-relaxed">
{"War. Oil. Exploitation. These aren't bugs in the system — they're features. "}
{"Our society is structurally addicted to extraction over stewardship, and the pusher is our financial architecture itself."}
</p>
</div>
{/* The Addiction Loop */}
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-6 mb-16">
<div className="bg-card border border-destructive/20 rounded-lg p-6 hover:border-destructive/40 transition-colors">
<Swords className="h-8 w-8 text-destructive mb-4" />
<h3 className="text-lg font-bold mb-2">Addiction to War</h3>
<p className="text-muted-foreground text-sm leading-relaxed">
Perpetual conflict feeds the extractive machine. Military-industrial complexes demand endless growth in destruction because peace doesn't generate quarterly returns.
</p>
</div>
<div className="bg-card border border-destructive/20 rounded-lg p-6 hover:border-destructive/40 transition-colors">
<Droplets className="h-8 w-8 text-destructive mb-4" />
<h3 className="text-lg font-bold mb-2">Addiction to Oil</h3>
<p className="text-muted-foreground text-sm leading-relaxed">
Fossil fuel dependency isn't just an energy problem — it's a financial one. Petrodollar hegemony locks us into ecological destruction as monetary policy.
</p>
</div>
<div className="bg-card border border-destructive/20 rounded-lg p-6 hover:border-destructive/40 transition-colors">
<Flame className="h-8 w-8 text-destructive mb-4" />
<h3 className="text-lg font-bold mb-2">Addiction to Exploitation</h3>
<p className="text-muted-foreground text-sm leading-relaxed">
Cheap labor, land grabs, resource extraction from the Global South colonialism never ended, it just got rebranded as "development" and "free trade."
</p>
</div>
<div className="bg-card border border-destructive/20 rounded-lg p-6 hover:border-destructive/40 transition-colors">
<Landmark className="h-8 w-8 text-destructive mb-4" />
<h3 className="text-lg font-bold mb-2">The Structural Root</h3>
<p className="text-muted-foreground text-sm leading-relaxed">
All of this is enabled by our choice of extractive private financial institutions over open public protocols for distributing resources and capital.
</p>
</div>
</div>
{/* The Bridge: From Extraction to Mycelium */}
<div className="max-w-4xl mx-auto">
<div className="bg-gradient-to-r from-destructive/10 via-primary/10 to-primary/20 border border-primary/30 rounded-lg p-8 md:p-12">
<div className="flex items-center gap-3 mb-6">
<div className="h-px flex-1 bg-gradient-to-r from-destructive/40 to-transparent" />
<ArrowRight className="h-6 w-6 text-primary" />
<Sprout className="h-8 w-8 text-primary" />
<div className="h-px flex-1 bg-gradient-to-l from-primary/40 to-transparent" />
</div>
<h3 className="text-2xl md:text-3xl font-bold mb-6 text-center text-primary">
But There Is an Ancient Alternative
</h3>
<div className="space-y-4 text-lg leading-relaxed">
<p>
{"For over a "}
<span className="text-primary font-semibold">billion years</span>
{", fungi have been running the most successful resource distribution network on the planet. "}
{"No central banks. No extractive intermediaries. No hoarding. "}
{"Just open protocols of redistribution — breaking down the dead to feed the living."}
</p>
<p>
{"Mycelial networks pre-distribute and re-distribute nutrients, water, and chemical signals across entire ecosystems. "}
{"They don't accumulate — they circulate. They don't exploit — they regenerate. "}
{"Every forest you've ever walked through exists because fungi figured out public infrastructure before we even evolved."}
</p>
<p className="text-primary font-medium text-xl text-center pt-4">
{"This is why we're here. This is why the mushrooms matter. "}
<br className="hidden md:block" />
{"So let's learn from them."}
</p>
</div>
</div>
</div>
{/* Quote */}
<div className="mt-16 text-center">
<blockquote className="text-xl md:text-2xl font-medium italic max-w-3xl mx-auto text-balance text-muted-foreground">
{"The choice between extractive private institutions and open public protocols "}
{"isn't just economic — it's the choice between a world that devours itself "}
{"and one that regenerates."}
</blockquote>
</div>
</div>
</section>
)
}

View File

@ -92,9 +92,6 @@ importers:
'@radix-ui/react-tooltip': '@radix-ui/react-tooltip':
specifier: 1.1.6 specifier: 1.1.6
version: 1.1.6(@types/react-dom@18.0.0)(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0) version: 1.1.6(@types/react-dom@18.0.0)(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
'@vercel/analytics':
specifier: latest
version: 1.5.0(next@14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(react@18.0.0)
autoprefixer: autoprefixer:
specifier: ^10.4.20 specifier: ^10.4.20
version: 10.4.20(postcss@8.5.0) version: 10.4.20(postcss@8.5.0)
@ -115,7 +112,7 @@ importers:
version: 8.5.1(react@18.0.0) version: 8.5.1(react@18.0.0)
geist: geist:
specifier: latest specifier: latest
version: 1.5.1(next@14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0)) version: 1.5.1(next@14.2.35(react-dom@18.0.0(react@18.0.0))(react@18.0.0))
input-otp: input-otp:
specifier: 1.4.1 specifier: 1.4.1
version: 1.4.1(react-dom@18.0.0(react@18.0.0))(react@18.0.0) version: 1.4.1(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
@ -123,8 +120,8 @@ importers:
specifier: ^0.454.0 specifier: ^0.454.0
version: 0.454.0(react@18.0.0) version: 0.454.0(react@18.0.0)
next: next:
specifier: 14.2.16 specifier: 14.2.35
version: 14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0) version: 14.2.35(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
next-themes: next-themes:
specifier: latest specifier: latest
version: 0.4.6(react-dom@18.0.0(react@18.0.0))(react@18.0.0) version: 0.4.6(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
@ -241,59 +238,63 @@ packages:
'@jridgewell/trace-mapping@0.3.31': '@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
'@next/env@14.2.16': '@next/env@14.2.35':
resolution: {integrity: sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag==} resolution: {integrity: sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==}
'@next/swc-darwin-arm64@14.2.16': '@next/swc-darwin-arm64@14.2.33':
resolution: {integrity: sha512-uFT34QojYkf0+nn6MEZ4gIWQ5aqGF11uIZ1HSxG+cSbj+Mg3+tYm8qXYd3dKN5jqKUm5rBVvf1PBRO/MeQ6rxw==} resolution: {integrity: sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@next/swc-darwin-x64@14.2.16': '@next/swc-darwin-x64@14.2.33':
resolution: {integrity: sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g==} resolution: {integrity: sha512-8HGBeAE5rX3jzKvF593XTTFg3gxeU4f+UWnswa6JPhzaR6+zblO5+fjltJWIZc4aUalqTclvN2QtTC37LxvZAA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@next/swc-linux-arm64-gnu@14.2.16': '@next/swc-linux-arm64-gnu@14.2.33':
resolution: {integrity: sha512-yhkNA36+ECTC91KSyZcgWgKrYIyDnXZj8PqtJ+c2pMvj45xf7y/HrgI17hLdrcYamLfVt7pBaJUMxADtPaczHA==} resolution: {integrity: sha512-JXMBka6lNNmqbkvcTtaX8Gu5by9547bukHQvPoLe9VRBx1gHwzf5tdt4AaezW85HAB3pikcvyqBToRTDA4DeLw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
'@next/swc-linux-arm64-musl@14.2.16': '@next/swc-linux-arm64-musl@14.2.33':
resolution: {integrity: sha512-X2YSyu5RMys8R2lA0yLMCOCtqFOoLxrq2YbazFvcPOE4i/isubYjkh+JCpRmqYfEuCVltvlo+oGfj/b5T2pKUA==} resolution: {integrity: sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
'@next/swc-linux-x64-gnu@14.2.16': '@next/swc-linux-x64-gnu@14.2.33':
resolution: {integrity: sha512-9AGcX7VAkGbc5zTSa+bjQ757tkjr6C/pKS7OK8cX7QEiK6MHIIezBLcQ7gQqbDW2k5yaqba2aDtaBeyyZh1i6Q==} resolution: {integrity: sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
'@next/swc-linux-x64-musl@14.2.16': '@next/swc-linux-x64-musl@14.2.33':
resolution: {integrity: sha512-Klgeagrdun4WWDaOizdbtIIm8khUDQJ/5cRzdpXHfkbY91LxBXeejL4kbZBrpR/nmgRrQvmz4l3OtttNVkz2Sg==} resolution: {integrity: sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
'@next/swc-win32-arm64-msvc@14.2.16': '@next/swc-win32-arm64-msvc@14.2.33':
resolution: {integrity: sha512-PwW8A1UC1Y0xIm83G3yFGPiOBftJK4zukTmk7DI1CebyMOoaVpd8aSy7K6GhobzhkjYvqS/QmzcfsWG2Dwizdg==} resolution: {integrity: sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@next/swc-win32-ia32-msvc@14.2.16': '@next/swc-win32-ia32-msvc@14.2.33':
resolution: {integrity: sha512-jhPl3nN0oKEshJBNDAo0etGMzv0j3q3VYorTSFqH1o3rwv1MQRdor27u1zhkgsHPNeY1jxcgyx1ZsCkDD1IHgg==} resolution: {integrity: sha512-pc9LpGNKhJ0dXQhZ5QMmYxtARwwmWLpeocFmVG5Z0DzWq5Uf0izcI8tLc+qOpqxO1PWqZ5A7J1blrUIKrIFc7Q==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@next/swc-win32-x64-msvc@14.2.16': '@next/swc-win32-x64-msvc@14.2.33':
resolution: {integrity: sha512-OA7NtfxgirCjfqt+02BqxC3MIgM/JaGjw9tOe4fyZgPsqfseNiMPnCRP44Pfs+Gpo9zPN+SXaFsgP6vk8d571A==} resolution: {integrity: sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -998,24 +999,28 @@ packages:
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
'@tailwindcss/oxide-linux-arm64-musl@4.1.9': '@tailwindcss/oxide-linux-arm64-musl@4.1.9':
resolution: {integrity: sha512-qCZ4QTrZaBEgNM13pGjvakdmid1Kw3CUCEQzgVAn64Iud7zSxOGwK1usg+hrwrOfFH7vXZZr8OhzC8fJTRq5NA==} resolution: {integrity: sha512-qCZ4QTrZaBEgNM13pGjvakdmid1Kw3CUCEQzgVAn64Iud7zSxOGwK1usg+hrwrOfFH7vXZZr8OhzC8fJTRq5NA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
'@tailwindcss/oxide-linux-x64-gnu@4.1.9': '@tailwindcss/oxide-linux-x64-gnu@4.1.9':
resolution: {integrity: sha512-bmzkAWQjRlY9udmg/a1bOtZpV14ZCdrB74PZrd7Oz/wK62Rk+m9+UV3BsgGfOghyO5Qu5ZDciADzDMZbi9n1+g==} resolution: {integrity: sha512-bmzkAWQjRlY9udmg/a1bOtZpV14ZCdrB74PZrd7Oz/wK62Rk+m9+UV3BsgGfOghyO5Qu5ZDciADzDMZbi9n1+g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
'@tailwindcss/oxide-linux-x64-musl@4.1.9': '@tailwindcss/oxide-linux-x64-musl@4.1.9':
resolution: {integrity: sha512-NpvPQsXj1raDHhd+g2SUvZQoTPWfYAsyYo9h4ZqV7EOmR+aj7LCAE5hnXNnrJ5Egy/NiO3Hs7BNpSbsPEOpORg==} resolution: {integrity: sha512-NpvPQsXj1raDHhd+g2SUvZQoTPWfYAsyYo9h4ZqV7EOmR+aj7LCAE5hnXNnrJ5Egy/NiO3Hs7BNpSbsPEOpORg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
'@tailwindcss/oxide-wasm32-wasi@4.1.9': '@tailwindcss/oxide-wasm32-wasi@4.1.9':
resolution: {integrity: sha512-G93Yuf3xrpTxDUCSh685d1dvOkqOB0Gy+Bchv9Zy3k+lNw/9SEgsHit50xdvp1/p9yRH2TeDHJeDLUiV4mlTkA==} resolution: {integrity: sha512-G93Yuf3xrpTxDUCSh685d1dvOkqOB0Gy+Bchv9Zy3k+lNw/9SEgsHit50xdvp1/p9yRH2TeDHJeDLUiV4mlTkA==}
@ -1090,32 +1095,6 @@ packages:
'@types/scheduler@0.26.0': '@types/scheduler@0.26.0':
resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==} resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==}
'@vercel/analytics@1.5.0':
resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
peerDependencies:
'@remix-run/react': ^2
'@sveltejs/kit': ^1 || ^2
next: '>= 13'
react: ^18 || ^19 || ^19.0.0-rc
svelte: '>= 4'
vue: ^3
vue-router: ^4
peerDependenciesMeta:
'@remix-run/react':
optional: true
'@sveltejs/kit':
optional: true
next:
optional: true
react:
optional: true
svelte:
optional: true
vue:
optional: true
vue-router:
optional: true
aria-hidden@1.2.6: aria-hidden@1.2.6:
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -1321,24 +1300,28 @@ packages:
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
lightningcss-linux-arm64-musl@1.30.1: lightningcss-linux-arm64-musl@1.30.1:
resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
lightningcss-linux-x64-gnu@1.30.1: lightningcss-linux-x64-gnu@1.30.1:
resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
lightningcss-linux-x64-musl@1.30.1: lightningcss-linux-x64-musl@1.30.1:
resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
lightningcss-win32-arm64-msvc@1.30.1: lightningcss-win32-arm64-msvc@1.30.1:
resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
@ -1390,8 +1373,8 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
next@14.2.16: next@14.2.35:
resolution: {integrity: sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==} resolution: {integrity: sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==}
engines: {node: '>=18.17.0'} engines: {node: '>=18.17.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -1686,33 +1669,33 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2 '@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
'@next/env@14.2.16': {} '@next/env@14.2.35': {}
'@next/swc-darwin-arm64@14.2.16': '@next/swc-darwin-arm64@14.2.33':
optional: true optional: true
'@next/swc-darwin-x64@14.2.16': '@next/swc-darwin-x64@14.2.33':
optional: true optional: true
'@next/swc-linux-arm64-gnu@14.2.16': '@next/swc-linux-arm64-gnu@14.2.33':
optional: true optional: true
'@next/swc-linux-arm64-musl@14.2.16': '@next/swc-linux-arm64-musl@14.2.33':
optional: true optional: true
'@next/swc-linux-x64-gnu@14.2.16': '@next/swc-linux-x64-gnu@14.2.33':
optional: true optional: true
'@next/swc-linux-x64-musl@14.2.16': '@next/swc-linux-x64-musl@14.2.33':
optional: true optional: true
'@next/swc-win32-arm64-msvc@14.2.16': '@next/swc-win32-arm64-msvc@14.2.33':
optional: true optional: true
'@next/swc-win32-ia32-msvc@14.2.16': '@next/swc-win32-ia32-msvc@14.2.33':
optional: true optional: true
'@next/swc-win32-x64-msvc@14.2.16': '@next/swc-win32-x64-msvc@14.2.33':
optional: true optional: true
'@radix-ui/number@1.1.0': {} '@radix-ui/number@1.1.0': {}
@ -2528,11 +2511,6 @@ snapshots:
'@types/scheduler@0.26.0': {} '@types/scheduler@0.26.0': {}
'@vercel/analytics@1.5.0(next@14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0))(react@18.0.0)':
optionalDependencies:
next: 14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
react: 18.0.0
aria-hidden@1.2.6: aria-hidden@1.2.6:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
@ -2667,9 +2645,9 @@ snapshots:
fraction.js@4.3.7: {} fraction.js@4.3.7: {}
geist@1.5.1(next@14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0)): geist@1.5.1(next@14.2.35(react-dom@18.0.0(react@18.0.0))(react@18.0.0)):
dependencies: dependencies:
next: 14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0) next: 14.2.35(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
get-nonce@1.0.1: {} get-nonce@1.0.1: {}
@ -2758,9 +2736,9 @@ snapshots:
react: 18.0.0 react: 18.0.0
react-dom: 18.0.0(react@18.0.0) react-dom: 18.0.0(react@18.0.0)
next@14.2.16(react-dom@18.0.0(react@18.0.0))(react@18.0.0): next@14.2.35(react-dom@18.0.0(react@18.0.0))(react@18.0.0):
dependencies: dependencies:
'@next/env': 14.2.16 '@next/env': 14.2.35
'@swc/helpers': 0.5.5 '@swc/helpers': 0.5.5
busboy: 1.6.0 busboy: 1.6.0
caniuse-lite: 1.0.30001750 caniuse-lite: 1.0.30001750
@ -2770,15 +2748,15 @@ snapshots:
react-dom: 18.0.0(react@18.0.0) react-dom: 18.0.0(react@18.0.0)
styled-jsx: 5.1.1(react@18.0.0) styled-jsx: 5.1.1(react@18.0.0)
optionalDependencies: optionalDependencies:
'@next/swc-darwin-arm64': 14.2.16 '@next/swc-darwin-arm64': 14.2.33
'@next/swc-darwin-x64': 14.2.16 '@next/swc-darwin-x64': 14.2.33
'@next/swc-linux-arm64-gnu': 14.2.16 '@next/swc-linux-arm64-gnu': 14.2.33
'@next/swc-linux-arm64-musl': 14.2.16 '@next/swc-linux-arm64-musl': 14.2.33
'@next/swc-linux-x64-gnu': 14.2.16 '@next/swc-linux-x64-gnu': 14.2.33
'@next/swc-linux-x64-musl': 14.2.16 '@next/swc-linux-x64-musl': 14.2.33
'@next/swc-win32-arm64-msvc': 14.2.16 '@next/swc-win32-arm64-msvc': 14.2.33
'@next/swc-win32-ia32-msvc': 14.2.16 '@next/swc-win32-ia32-msvc': 14.2.33
'@next/swc-win32-x64-msvc': 14.2.16 '@next/swc-win32-x64-msvc': 14.2.33
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- babel-plugin-macros - babel-plugin-macros

BIN
public/hero-mushrooms.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 152 KiB