From 54849f357a5601465cbe2e3bd6b5ff761fa58935 Mon Sep 17 00:00:00 2001 From: v0 Date: Sun, 2 Nov 2025 00:33:21 +0000 Subject: [PATCH] feat: create ICS subdomain and simplify home page Add `/ics` route with current content and update home page with intriguing message. #VERCEL_SKIP Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com> --- app/ics/page.tsx | 19 +++++++ app/page.tsx | 144 ++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 150 insertions(+), 13 deletions(-) create mode 100644 app/ics/page.tsx diff --git a/app/ics/page.tsx b/app/ics/page.tsx new file mode 100644 index 0000000..6cc45ca --- /dev/null +++ b/app/ics/page.tsx @@ -0,0 +1,19 @@ +import { Hero } from "@/components/hero" +import { ConceptsGrid } from "@/components/concepts-grid" +import { NetworkVisualization } from "@/components/network-visualization" +import { Principles } from "@/components/principles" +import { Applications } from "@/components/applications" +import { Footer } from "@/components/footer" + +export default function ICSPage() { + return ( +
+ + + + + +
+
+ ) +} diff --git a/app/page.tsx b/app/page.tsx index f4357e9..b854671 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,19 +1,137 @@ -import { Hero } from "@/components/hero" -import { ConceptsGrid } from "@/components/concepts-grid" -import { NetworkVisualization } from "@/components/network-visualization" -import { Principles } from "@/components/principles" -import { Applications } from "@/components/applications" -import { Footer } from "@/components/footer" +"use client" + +import { useEffect, useState } from "react" +import Link from "next/link" export default function Home() { + const [glitchText, setGlitchText] = useState("ENTER THE NETWORK") + + useEffect(() => { + const glitchChars = "!<>-_\\/[]{}—=+*^?#________" + const originalText = "ENTER THE NETWORK" + + const glitchInterval = setInterval(() => { + if (Math.random() > 0.95) { + const glitched = originalText + .split("") + .map((char) => (Math.random() > 0.9 ? glitchChars[Math.floor(Math.random() * glitchChars.length)] : char)) + .join("") + setGlitchText(glitched) + + setTimeout(() => setGlitchText(originalText), 100) + } + }, 100) + + return () => clearInterval(glitchInterval) + }, []) + return ( -
- - - - - -