diff --git a/components/interactive-map/interactive-map.tsx b/components/pixel-sidebar/pixel-sidebar.tsx similarity index 98% rename from components/interactive-map/interactive-map.tsx rename to components/pixel-sidebar/pixel-sidebar.tsx index b1a3415a..ec6cb7c3 100644 --- a/components/interactive-map/interactive-map.tsx +++ b/components/pixel-sidebar/pixel-sidebar.tsx @@ -11,7 +11,7 @@ const links: Link[] = [ { href: "https://discord.com/invite/8vAQpFWCYH", children: "Discord" }, ]; -export default function InteractiveNavigationMap() { +export default function PixelSideBar() { return (
diff --git a/components/title-components/mobile-title.tsx b/components/title-components/mobile-title.tsx index 18f9a323..30fa0e35 100644 --- a/components/title-components/mobile-title.tsx +++ b/components/title-components/mobile-title.tsx @@ -1,7 +1,6 @@ "use client"; import TitleText from "./mobile-title-text"; -import InteractiveNavigationMap from "../interactive-map/interactive-map"; import RegistrationButton from "@/components/themed-components/registration-link"; export default function MobileTitleComponent() { diff --git a/components/title-components/title-text.tsx b/components/title-components/title-text.tsx index 23e0939c..362e213f 100644 --- a/components/title-components/title-text.tsx +++ b/components/title-components/title-text.tsx @@ -1,44 +1,64 @@ "use client"; import { useState, useEffect } from "react"; -import RegistrationButton from "@/components/themed-components/registration-link"; -import InteractiveNavigationMap from "../interactive-map/interactive-map"; import Image from "next/image"; +import PixelSideBar from "../pixel-sidebar/pixel-sidebar"; export default function TitleText() { const fullText = "HACK\u00A0\u00A0\u00A0RPI"; const [displayedText, setDisplayedText] = useState(""); - const [isDeleting, setIsDeleting] = useState(false); const [index, setIndex] = useState(0); + const [isGlitching, setIsGlitching] = useState(false); + const [glitchCount, setGlitchCount] = useState(0); + + // Helper to make random glitch characters + const randomChar = () => { + const chars = "@#$%&*!?/"; + return chars[Math.floor(Math.random() * chars.length)]; + }; useEffect(() => { - const typingSpeed = isDeleting ? 100 : 150; + let timeout: NodeJS.Timeout; + const typingSpeed = isGlitching ? 50 : 120; - const handleTyping = setTimeout(() => { - if (!isDeleting) { + if (!isGlitching) { + // Normal typing phase + timeout = setTimeout(() => { if (index < fullText.length) { + // Randomly start a glitch + if (Math.random() < 0.1 && index > 1) { + setIsGlitching(true); + setGlitchCount(0); + return; + } setDisplayedText((prev) => prev + fullText[index]); setIndex((prev) => prev + 1); - } else { - // finished typing, stop blinking - return; } - } else { - if (index > 0) { - setDisplayedText((prev) => prev.slice(0, -1)); - setIndex((prev) => prev - 1); + }, typingSpeed); + } else { + // Glitch phase — happens for a few cycles + timeout = setTimeout(() => { + if (glitchCount < 5) { + // Replace last character(s) with random junk + setDisplayedText((prev) => { + const base = prev.slice(0, -1); + return base + randomChar(); + }); + setGlitchCount((prev) => prev + 1); } else { - setIsDeleting(false); + // End glitch, fix the text, and resume typing + setIsGlitching(false); + setDisplayedText(fullText.slice(0, index)); } - } - }, typingSpeed); + }, typingSpeed); + } - return () => clearTimeout(handleTyping); - }, [index, isDeleting]); + return () => clearTimeout(timeout); + }, [index, isGlitching, glitchCount]); return (
- {/* Left side: Box with image */} + {/* Box with skyline image */}
- {/* Overlayed typing text */} + {/* Typing + glitch text */}

|

- {/* Overlayed typing text */} -

- {displayedText} - | -

- - {/* Overlayed typing text */} + {/* Colored glow layers */}

{displayedText} - |

+ {/* Subtitle */}

- - November 15-16, 2025 • Troy, NY + + November 15-16, 2025 • Troy, NY

- + Retro V. Modern

- {/* Right side: Map overlapping the box */} + {/* Sidebar */}
- +
); diff --git a/data/members.ts b/data/members.ts index b519bce9..806a3bde 100644 --- a/data/members.ts +++ b/data/members.ts @@ -1,11 +1,11 @@ -import xenia from "../public/team/photos/Xenia_Khusid.jpg"; -import cj from "../public/team/photos/CJ_Marino.jpg"; -import matthew from "../public/team/photos/Xenia_Khusid.jpg"; -import shankar from "../public/team/photos/Shankar_Palanickal.jpg"; -import aaryan from "../public/team/photos/Aaryan_Gautam.jpg"; -import tobias from "../public/team/photos/Xenia_Khusid.jpg"; -import jackson from "../public/team/photos/Xenia_Khusid.jpg"; -import suyash from "../public/team/photos/Suyash_Amatya.jpg"; +import xenia from "../public/team/photos/xenia.jpg"; +import cj from "../public/team/photos/cj.jpg"; +import matthew from "../public/team/photos/matthew.jpg"; +import shankar from "../public/team/photos/shankar.jpg"; +import aaryan from "../public/team/photos/aaryan.jpg"; +import tobias from "../public/team/photos/tobias.jpg"; +import jackson from "../public/team/photos/jackson.jpg"; +import suyash from "../public/team/photos/suyash.jpg"; export const executive = { "Xenia Khusid": xenia, @@ -65,7 +65,7 @@ export const team: Team = { { name: "Xenia Khusid", role: "President", - image: "../public/team/photos/joerogansauna.jpg", + image: "xenia.jpg", "team-color": teamColors.president, teamDescription: "The President leads the overall planning and execution of the hackathon, coordinating with all teams to ensure a successful event.", diff --git a/public/sponsors/sponsor_logos/AccentureWhite.png b/public/sponsors/sponsor_logos/AccentureWhite.png new file mode 100644 index 00000000..012e9102 Binary files /dev/null and b/public/sponsors/sponsor_logos/AccentureWhite.png differ diff --git a/public/sponsors/sponsor_logos/VelanStudios.png b/public/sponsors/sponsor_logos/VelanStudios.png new file mode 100644 index 00000000..d0f6d499 Binary files /dev/null and b/public/sponsors/sponsor_logos/VelanStudios.png differ diff --git a/public/sponsors/sponsors.json b/public/sponsors/sponsors.json index 96d75718..028c76fa 100644 --- a/public/sponsors/sponsors.json +++ b/public/sponsors/sponsors.json @@ -9,9 +9,10 @@ ], "SILVER": [ { "name": "Global Foundries", "logoPath": "/GlobalFoundries.png", "url": "https://gf.com/" }, - { "name": "Lutron", "logoPath": "/Lutron.jpeg", "url": "https://www.lutron.com/en-US/Pages/default.aspx" }, + { "name": "Accenture", "logoPath": "/AccentureWhite.png", "url": "https://www.accenture.com" }, { "name": "Palantir", "logoPath": "/Palantir.png", "url": "https://www.palantir.com/" }, - { "name": "Rensselaer School of Science", "logoPath": "/RPI_SOS.png", "url": "https://science.rpi.edu/" } + { "name": "Rensselaer School of Science", "logoPath": "/RPI_SOS.png", "url": "https://science.rpi.edu/" }, + { "name": "Velan Studios", "logoPath": "/VelanStudios.png", "url": "https://velanstudios.com/" } ], "BRONZE": [ { diff --git a/public/team/photos/Aaryan_Gautam.jpg b/public/team/photos/Aaryan_Gautam.jpg deleted file mode 100644 index 25e3f884..00000000 Binary files a/public/team/photos/Aaryan_Gautam.jpg and /dev/null differ diff --git a/public/team/photos/CJ_Marino.jpg b/public/team/photos/CJ_Marino.jpg deleted file mode 100644 index 737fc194..00000000 Binary files a/public/team/photos/CJ_Marino.jpg and /dev/null differ diff --git a/public/team/photos/Shankar_Palanickal.jpg b/public/team/photos/Shankar_Palanickal.jpg deleted file mode 100644 index 977aa575..00000000 Binary files a/public/team/photos/Shankar_Palanickal.jpg and /dev/null differ diff --git a/public/team/photos/Suyash_Amatya.jpg b/public/team/photos/Suyash_Amatya.jpg deleted file mode 100644 index 0cdbe017..00000000 Binary files a/public/team/photos/Suyash_Amatya.jpg and /dev/null differ diff --git a/public/team/photos/Xenia_Khusid.jpg b/public/team/photos/Xenia_Khusid.jpg deleted file mode 100644 index 33b41161..00000000 Binary files a/public/team/photos/Xenia_Khusid.jpg and /dev/null differ diff --git a/public/team/photos/aaryan.JPG b/public/team/photos/aaryan.JPG new file mode 100644 index 00000000..73489380 Binary files /dev/null and b/public/team/photos/aaryan.JPG differ diff --git a/public/team/photos/cj.JPG b/public/team/photos/cj.JPG new file mode 100644 index 00000000..c8ca9590 Binary files /dev/null and b/public/team/photos/cj.JPG differ diff --git a/public/team/photos/jackson.JPG b/public/team/photos/jackson.JPG new file mode 100644 index 00000000..985e95b3 Binary files /dev/null and b/public/team/photos/jackson.JPG differ diff --git a/public/team/photos/matthew.JPG b/public/team/photos/matthew.JPG new file mode 100644 index 00000000..ac86f4b4 Binary files /dev/null and b/public/team/photos/matthew.JPG differ diff --git a/public/team/photos/shankar.JPG b/public/team/photos/shankar.JPG new file mode 100644 index 00000000..9c70c0a5 Binary files /dev/null and b/public/team/photos/shankar.JPG differ diff --git a/public/team/photos/suyash.JPG b/public/team/photos/suyash.JPG new file mode 100644 index 00000000..d84696fa Binary files /dev/null and b/public/team/photos/suyash.JPG differ diff --git a/public/team/photos/tobias.JPG b/public/team/photos/tobias.JPG new file mode 100644 index 00000000..b8efbb9c Binary files /dev/null and b/public/team/photos/tobias.JPG differ diff --git a/public/team/photos/xenia.JPG b/public/team/photos/xenia.JPG new file mode 100644 index 00000000..9748c807 Binary files /dev/null and b/public/team/photos/xenia.JPG differ