diff --git a/src/components/faq.jsx b/src/components/faq.jsx
index 3b11f51..b1df0bd 100644
--- a/src/components/faq.jsx
+++ b/src/components/faq.jsx
@@ -1,5 +1,5 @@
import { useState } from "react";
-import { Plus, Mail } from "lucide-react";
+import { Plus, Mail, MessageSquare, MapPin } from "lucide-react";
import { motion, AnimatePresence } from "framer-motion";
const faqData = [
@@ -8,10 +8,8 @@ const faqData = [
{ question: "What is the registration deadline?", answer: "Registration closes on 30th April 2026 at 3:00 PM IST. No registrations will be accepted after this deadline.",},
{ question: "Can we use open-source libraries and APIs?", answer: "Yes. Open-source tools, libraries, frameworks, and APIs are permitted. The core idea and implementation must be original and built during the hackathon." },
{ question: "Can team members be from different colleges?", answer: "Yes. Cross-college teams are allowed as long as all members are enrolled students who meet the eligibility criteria.",},
- // { question: "What are the hackathon tracks?", answer: "AI, Cybersecurity, Blockchain, Smart India & Sustainability, and Open Innovation." },
{ question: "What is the duration?", answer: "36 hours of continuous development including evaluation rounds and final presentations." },
{ question: "What should I bring?", answer: "Bring your own laptop, charger, and a valid college ID card. ID is mandatory for entry and accommodation."},
- // { question: "How are projects evaluated?", answer: "Projects go through internal shortlisting followed by final jury evaluation based on innovation, technical depth, and usability." },
{ question: "Is accommodation available for outstation participants?", answer: "Yes. Separate accommodation for male and female participants is available on campus with ID verification. Contact codex.club@quantumeducation.in or +91 9897301104 for availability and charges.", },
{ question: "How are projects evaluated?", answer: "Projects are shortlisted in Round 1, and top teams present in the Final Round on 9th May. Judging is based on innovation, technical depth, real-world relevance, feasibility, and presentation quality." },
{ question: "What are the prizes?", answer: "Winner: ₹15,000 cash + Trophy + Certificate + Goodies. 1st Runner-Up: ₹10,000 cash + Trophy + Certificate + Goodies. 2nd Runner-Up: ₹5,000 cash + Trophy + Certificate + Goodies. All participants receive goodies (notebook, stickers, pens, bookmark), a free .xyz domain, and a participation certificate." },
@@ -84,10 +82,10 @@ const FAQ = () => {
id="faq"
className="py-20 sm:py-32 px-4 sm:px-6 relative bg-transparent overflow-hidden"
>
-
+
- {/*left side*/}
-
+ {/* Left Side */}
+
{
Everything you need to know about participating in Q-Hackathon 2026. Can't find the answer you're looking for?
-
- {/*supportbox*/}
@@ -118,15 +114,48 @@ const FAQ = () => {
className="text-sm font-bold hover:underline transition-all"
style={{ color: "var(--primary)" }}
>
- codex.club@quantumeducation.in →
+ codex.club@quantumeducation.in →
+
+
+
+
+
+
+
+
+
Unstop Portal
+
Visit the Unstop Page for More Information.
+
+ Unstop →
+
+
-
- {/*right side*/}
-
+
{faqData.map((item, i) => (
))}
diff --git a/src/components/timeline.jsx b/src/components/timeline.jsx
index ba4d287..e9902ba 100644
--- a/src/components/timeline.jsx
+++ b/src/components/timeline.jsx
@@ -1,9 +1,9 @@
-import { useRef } from "react";
+import { useState, useRef } from "react";
import {
ClipboardList, ClipboardX, PartyPopper, ScanSearch,
- Trophy, CheckCircle2, Target, BookOpen
+ Trophy, CheckCircle2, Target, BookOpen, ChevronDown
} from "lucide-react";
-import { motion, useScroll, useSpring, useMotionValue, useTransform } from "framer-motion";
+import { motion, AnimatePresence, useScroll, useSpring, useMotionValue, useTransform } from "framer-motion";
const events = [
{
@@ -81,6 +81,8 @@ const events = [
];
const PipelineCard = ({ title, description, instructions, deliverables, evaluation, Icon }) => {
+ const [isOpen, setIsOpen] = useState(false);
+
const x = useMotionValue(0);
const y = useMotionValue(0);
const mouseXSpring = useSpring(x, { stiffness: 150, damping: 15 });
@@ -94,6 +96,8 @@ const PipelineCard = ({ title, description, instructions, deliverables, evaluati
y.set((e.clientY - rect.top) / rect.height - 0.5);
};
+ const hasDetails = instructions || deliverables || evaluation;
+
return (
setIsOpen(!isOpen)}
+ className="roadmap-card relative overflow-hidden rounded-2xl border shadow-sm hover:shadow-lg p-6 sm:p-7 transition-all duration-500 text-left cursor-pointer bg-white"
>
-
+
-
-
{title}
-
{description}
-
- {/* Details are now permanently visible */}
-
- {instructions && (
-
-
- Guidelines
-
- {instructions.map((item, i) => (
-
- {item}
-
- ))}
-
- )}
- {deliverables && (
-
-
- Deliverables
-
- {deliverables.map((item, i) => (
-
- • {item}
-
- ))}
-
+
+
+
+
+
{title}
+
{description}
+
+
+ {hasDetails && (
+
+
+
)}
- {evaluation && (
-
-
- Evaluation Criteria
-
- {evaluation.map((item, i) => (
-
- ))}
+
+
+ {/* Smooth height accordion for details */}
+
+ {isOpen && hasDetails && (
+
+
+ {instructions && (
+
+
+ Guidelines
+
+ {instructions.map((item, i) => (
+
+ {item}
+
+ ))}
+
+ )}
+ {deliverables && (
+
+
+ Deliverables
+
+ {deliverables.map((item, i) => (
+
+ • {item}
+
+ ))}
+
+ )}
+ {evaluation && (
+
+
+ Evaluation Criteria
+
+ {evaluation.map((item, i) => (
+
+ ))}
+
+ )}
+
)}
-
+
+
@@ -177,15 +210,15 @@ const Timeline = () => {
className="text-center mb-24"
>
Event Roadmap
-
+
Detailed schedule, deliverables, and expectations.
@@ -200,17 +233,17 @@ const Timeline = () => {
viewport={{ once: true, margin: "-100px" }}
className="relative flex flex-col md:flex-row items-start w-full"
>
-
+
-
{evt.date}
+
{evt.date}
{isEven ? (
<>
-
{evt.date}
+
{evt.date}
@@ -221,7 +254,7 @@ const Timeline = () => {
<>
-
{evt.date}
+
{evt.date}