diff --git a/public/ABOUT RAISE INCUBATOR.pdf b/public/ABOUT RAISE INCUBATOR.pdf new file mode 100644 index 0000000..5b5edb7 Binary files /dev/null and b/public/ABOUT RAISE INCUBATOR.pdf differ diff --git a/public/RAISE.png b/public/RAISE.png new file mode 100644 index 0000000..52463de Binary files /dev/null and b/public/RAISE.png differ diff --git a/public/Raiselogo.png b/public/Raiselogo.png new file mode 100644 index 0000000..4719d88 Binary files /dev/null and b/public/Raiselogo.png differ diff --git a/src/App.tsx b/src/App.tsx index 5e506a3..1e72303 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -16,6 +16,7 @@ import Faculty from '@/pages/Faculty/Faculty'; import DevCollab from '@/pages/DevCollab/DevCollab'; import LeetcodeLeaderboard from '@/pages/LeetcodeLeaderboard/LeetcodeLeaderboard'; import AdminDashboard from '@/pages/Admin/AdminDashboard'; +import Raise from '@/pages/Raise/Raise'; const queryClient = new QueryClient({ defaultOptions: { @@ -47,6 +48,9 @@ function App() { } /> } /> + {/* Standalone RAISE Route */} + } /> + }> } /> } /> diff --git a/src/assets/raise/Raiselogo.png b/src/assets/raise/Raiselogo.png new file mode 100644 index 0000000..4719d88 Binary files /dev/null and b/src/assets/raise/Raiselogo.png differ diff --git a/src/assets/raise/Raiselogo.webp b/src/assets/raise/Raiselogo.webp new file mode 100644 index 0000000..d459429 Binary files /dev/null and b/src/assets/raise/Raiselogo.webp differ diff --git a/src/assets/raise/college-logo.webp b/src/assets/raise/college-logo.webp new file mode 100644 index 0000000..5a6b553 Binary files /dev/null and b/src/assets/raise/college-logo.webp differ diff --git a/src/assets/raise/hero.png b/src/assets/raise/hero.png new file mode 100644 index 0000000..02251f4 Binary files /dev/null and b/src/assets/raise/hero.png differ diff --git a/src/index.css b/src/index.css index c5a32cf..b02c487 100644 --- a/src/index.css +++ b/src/index.css @@ -1,4 +1,4 @@ -@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=Archivo+Black&display=swap'); @import "tailwindcss"; @@ -34,6 +34,11 @@ --shadow-medium: 0 4px 25px -5px rgba(0,0,0,0.1), 0 10px 30px -5px rgba(0,0,0,0.07); --shadow-strong: 0 8px 40px -8px rgba(0,0,0,0.15), 0 20px 45px -8px rgba(0,0,0,0.1); --shadow-orange: 0 8px 30px -4px rgba(249,115,22,0.3); + + --color-brand-orange: #ff5722; + --color-brand-pink: #e91e63; + --color-brand-purple: #9c27b0; + --animate-pulse-slow: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* Tailwind Preflight handles resets natively. Custom modifications go here: */ @@ -306,3 +311,69 @@ h1, h2, h3, h4, h5, h6 { border-color: #F97316 !important; box-shadow: none !important; } + +/* RAISE Incubator Website Styles */ +.raise-website { + --font-sans: 'Inter', sans-serif; + --font-heading: 'Plus Jakarta Sans', sans-serif; + --color-primary: #101010; +} + +.raise-website body { + font-family: var(--font-sans); + background-color: #fafafa; + color: #171717; +} + +.raise-website h1, +.raise-website h2, +.raise-website h3, +.raise-website h4, +.raise-website h5, +.raise-website h6 { + font-family: var(--font-heading) !important; +} + +.text-gradient { + background: linear-gradient(135deg, #2563eb 0%, #3b82f6 50%, #06b6d4 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.logo-blue { + filter: invert(29%) sepia(92%) saturate(2377%) hue-rotate(215deg) brightness(93%) contrast(97%); +} + +.logo-black { + filter: brightness(0); +} + +.glassmorphism { + background: rgba(255, 255, 255, 0.7); + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + border: 1px solid rgba(255, 255, 255, 0.6); +} + +.shadow-premium { + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.02), + 0 1px 3px rgba(0, 0, 0, 0.05), + 0 20px 40px rgba(0, 0, 0, 0.03); +} + +.shadow-premium-hover { + transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); +} +.shadow-premium-hover:hover { + transform: translateY(-4px); + box-shadow: 0 10px 40px rgba(0, 0, 0, 0.04), + 0 2px 8px rgba(0, 0, 0, 0.06), + 0 30px 60px rgba(0, 0, 0, 0.05); +} + +.grid-bg { + background-size: 40px 40px; + background-image: + linear-gradient(to right, rgba(0, 0, 0, 0.02) 1px, transparent 1px), + linear-gradient(to bottom, rgba(0, 0, 0, 0.02) 1px, transparent 1px); +} diff --git a/src/pages/Raise/Raise.tsx b/src/pages/Raise/Raise.tsx new file mode 100644 index 0000000..84246a0 --- /dev/null +++ b/src/pages/Raise/Raise.tsx @@ -0,0 +1,40 @@ +import { Hero } from './components/Hero'; +import { AboutSection } from './components/AboutSection'; +import { ProcessSection } from './components/ProcessSection'; +import { StatsSection } from './components/StatsSection'; +import { PortfolioShowcase } from './components/PortfolioShowcase'; +import { PitchBooking } from './components/PitchBooking'; +import { FooterContact } from './components/FooterContact'; + +export default function Raise() { + const handleScrollToSection = (sectionId: string) => { + if (sectionId === 'hero') { + window.scrollTo({ top: 0, behavior: 'smooth' }); + return; + } + const element = document.getElementById(sectionId); + if (element) { + element.scrollIntoView({ behavior: 'smooth', block: 'start' }); + } + }; + + return ( +
+
+ +
+ + + + + + + + + + + + +
+ ); +} diff --git a/src/pages/Raise/components/AboutSection.tsx b/src/pages/Raise/components/AboutSection.tsx new file mode 100644 index 0000000..eae38c5 --- /dev/null +++ b/src/pages/Raise/components/AboutSection.tsx @@ -0,0 +1,143 @@ +import React from 'react'; +import { motion } from 'framer-motion'; +import { BookOpen, Target, Sparkles, Milestone, Award, Lightbulb, Cpu, ShieldCheck } from 'lucide-react'; + +export const AboutSection: React.FC = () => { + const offerings = [ + { icon: , name: "Guidance & Training" }, + { icon: , name: "Infrastructure support" }, + { icon: , name: "1-on-1 Mentorship" }, + { icon: , name: "Seed Funding Support" }, + { icon: , name: "IPR & Patent Filing" }, + { icon: , name: "Networking Events" } + ]; + + const curriculumPoints = [ + { title: "Academic Ideation", desc: "Formulate ideas with solid validation and engineering frameworks built into your college curriculum." }, + { title: "Business Model Design", desc: "Map your target market, construct unit economics, and define your revenue capture strategy." }, + { title: "IPR & Pitch Readiness", desc: "Gain legal structures, learn patent filing mechanics, and polish your investor-facing deck." } + ]; + + return ( +
+
+ +
+ {/* Core Vision & Mission */} +
+ + + Who We Are + +

+ Empowering Student Founders +

+

+ RAISE Incubator is a dedicated Section 8 (not-for-profit) company situated directly within the Rajalakshmi Institute of Technology campus. We transform engineering ideas into market-viable products. +

+ + {/* Offerings Icons List */} +
+

+ What We Provide +

+
+ {offerings.map((item, i) => ( +
+
+ {item.icon} +
+ {item.name} +
+ ))} +
+
+
+ + + {/* Vision Card */} +
+
+ +
+

Our Vision

+

+ To create a vibrant innovation and entrepreneurship ecosystem that transforms ideas into impactful startups, fosters industry-relevant technologies, and nurtures socially responsible innovators. +

+
+ + {/* Mission Card */} +
+
+ +
+

Our Mission

+
    +
  • Promote entrepreneurial thinking among students & faculty through structured ideation.
  • +
  • Facilitate industry partnerships, IP/Patent creation, and critical seed funding.
  • +
  • Align initiatives with national missions for long-term societal and economic impact.
  • +
+
+
+
+ + {/* Unique Differentiator - Academic Course */} +
+ {/* Subtle decoration */} +
+ +
+
+ + Unique Differentiator + +

+ Not Just a Club.
An Academic Course. +

+

+ RAISE is different from regular university incubators. We integrate entrepreneurship as a structured academic course for RIT students. +

+
+
+ +
+
+ Structured Syllabus + Earn course credits while launching a company. +
+
+
+ + {/* Differentiator Milestones */} +
+
+ {curriculumPoints.map((point, index) => ( +
+ 0{index + 1} +

{point.title}

+

{point.desc}

+
+ ))} +
+
+
+
+
+
+ ); +}; diff --git a/src/pages/Raise/components/FooterContact.tsx b/src/pages/Raise/components/FooterContact.tsx new file mode 100644 index 0000000..c7103a7 --- /dev/null +++ b/src/pages/Raise/components/FooterContact.tsx @@ -0,0 +1,174 @@ +import React from 'react'; +import { MapPin, Phone, Mail, Landmark, ExternalLink, User } from 'lucide-react'; +import raiseLogo from '@/assets/raise/Raiselogo.webp'; + +interface FooterProps { + onScrollToSection: (sectionId: string) => void; +} + +export const FooterContact: React.FC = ({ onScrollToSection }) => { + return ( +
+
+
+ + {/* Brand Column */} +
+
+ RAISE Incubator Logo +
+ RAISE + + Incubation Cell + +
+
+ +

+ Rajalakshmi Accelerator & Incubator for Startup Enterprises Association (RAISE) is a Sec 8 Not-For-Profit company built to elevate student builders at Rajalakshmi Institute of Technology. +

+ +
+ + Affiliated with Rajalakshmi Institute of Technology +
+
+ + {/* Quick Links Column */} +
+

+ Quick Navigation +

+
+ + + + + +
+
+ + {/* Contact Details Column */} +
+

+ Contact & Location +

+ +
+ {/* Incubation Manager Contact Card */} +
+
+
+ +
+
+

+ Incubation Manager +

+

+ Mr. B. Aravind +

+
+
+ +
+ {/* Email */} + + + {/* Phone */} + + + {/* Office */} +
+ + + Office: C Block 3rd floor, C306,
Panel 4 Inside Placement Cell +
+
+
+
+ + {/* Address */} +
+
+ +
+
+

+ Campus Lab Address +

+

+ C Block 3rd floor, C306,
+ Panel 4 Inside Placement Cell,
+ RIT Campus, Chennai – 600124. +

+
+
+
+
+
+ + {/* Footer Bottom Bar */} +
+
+ © {new Date().getFullYear()} RAISE Incubation Cell. All rights reserved. +
+ +
+
+
+ ); +}; diff --git a/src/pages/Raise/components/Hero.tsx b/src/pages/Raise/components/Hero.tsx new file mode 100644 index 0000000..b7a8b27 --- /dev/null +++ b/src/pages/Raise/components/Hero.tsx @@ -0,0 +1,253 @@ +import React, { useState, useEffect } from 'react'; +import { motion } from 'framer-motion'; +import { ArrowDown, Award } from 'lucide-react'; +import raiseLogo from '@/assets/raise/Raiselogo.webp'; +import collegeLogo from '@/assets/raise/college-logo.webp'; + +interface HeroProps { + onScrollToSection: (sectionId: string) => void; +} + +export const Hero: React.FC = ({ onScrollToSection }) => { + const letters = ['R', 'A', 'I', 'S', 'E']; + + // Track drag/hover status for each letter + const [hoveredStates, setHoveredStates] = useState([false, false, false, false, false]); + const [isIntro, setIsIntro] = useState(true); + const [entryCompleted, setEntryCompleted] = useState(false); + const [hoverActive, setHoverActive] = useState(false); + + useEffect(() => { + // Start entrance animation almost immediately after mount + const entryTimer = setTimeout(() => { + setEntryCompleted(true); + }, 10); + + // Clear entrance delays for responsive hover events + const hoverTimer = setTimeout(() => { + setHoverActive(true); + }, 300); + + // End intro state and introduce surrounding content + const introTimer = setTimeout(() => { + setIsIntro(false); + }, 400); + + return () => { + clearTimeout(entryTimer); + clearTimeout(hoverTimer); + clearTimeout(introTimer); + }; + }, []); + + const handleMouseEnter = (index: number) => { + if (!hoverActive) return; // disable hover actions during entry + setHoveredStates(prev => { + const next = [...prev]; + next[index] = true; + return next; + }); + }; + + const handleMouseLeave = (index: number) => { + setHoveredStates(prev => { + const next = [...prev]; + next[index] = false; + return next; + }); + }; + + + return ( +
+ {/* Background Gradients for Premium Touch */} +
+
+ + {/* Glassmorphism Header */} + +
onScrollToSection('hero')}> +
+ RAISE Incubator Logo +
+
+
+ + {/* Nav links */} +
+ + + + +
+ + {/* Call to Action Button & RIT Logo */} +
+ + + + + + {/* Hero Central Content */} + + {/* RIT Institution Badge */} + {!isIntro && ( + + + + Rajalakshmi Institute of Technology + + + )} + + {/* Giant RAISE Text with stroke outline, slanted format, and staggered load */} + + {letters.map((letter, idx) => ( + handleMouseEnter(idx)} + onMouseLeave={() => handleMouseLeave(idx)} + onTouchStart={() => handleMouseEnter(idx)} + onTouchEnd={() => handleMouseLeave(idx)} + className="text-[18vw] md:text-[14vw] leading-none select-none inline-block" + style={{ + fontFamily: '"Archivo Black", sans-serif', + WebkitTextStroke: '4.5px #000000', + WebkitTextFillColor: hoveredStates[idx] ? '#000000' : 'transparent', + color: hoveredStates[idx] ? '#000000' : 'transparent', + display: 'inline-block', + opacity: entryCompleted ? 1 : 0, + transform: !entryCompleted + ? 'scale(0.3) skewX(0deg)' + : hoveredStates[idx] + ? 'scale(1.08) translateY(-4px) skewX(-12deg)' + : 'scale(1) skewX(-12deg)', + transition: 'all 0.6s cubic-bezier(0.16, 1, 0.3, 1)', + transitionDelay: hoverActive ? '0ms' : `${idx * 40}ms`, + textShadow: hoveredStates[idx] ? '0 10px 30px rgba(0,0,0,0.05)' : 'none' + }} + > + {letter} + + ))} + + + {/* Subtitle, Description, and Action Pills */} + {!isIntro && ( + +

+ Rajalakshmi Accelerator & Incubator for Startup Enterprises Association +

+ +

+ A section 8 (not-for-profit) company inside the RIT campus. We empower student founders by providing continuous mentorship, infrastructure, and structured startup paths from ideation to seed funding. +

+ + + + + APPROVED UNIQUE IDEAS SECURE FUNDS UP TO ₹20,000 + + +
+ )} +
+ + {/* Footer / Scroll Indicator */} + +
+
+ + Active Batch 2026 +
+
+ + onScrollToSection('about')} + animate={{ y: [0, 8, 0] }} + transition={{ duration: 2, repeat: Infinity, ease: "easeInOut" }} + className="flex flex-col items-center gap-1 font-sans font-semibold text-xs text-neutral-400 hover:text-neutral-900 transition-colors uppercase tracking-wider cursor-pointer" + > + Scroll to explore + + + +
+ RIT Innovation Cell +
+
+
+ ); +}; diff --git a/src/pages/Raise/components/PitchBooking.tsx b/src/pages/Raise/components/PitchBooking.tsx new file mode 100644 index 0000000..3ac35fe --- /dev/null +++ b/src/pages/Raise/components/PitchBooking.tsx @@ -0,0 +1,376 @@ +import React, { useState } from 'react'; +import { motion, AnimatePresence } from 'framer-motion'; +import { Calendar, User, Mail, GraduationCap, FileText, CheckCircle, Clock } from 'lucide-react'; + +export const PitchBooking: React.FC = () => { + const [formData, setFormData] = useState({ + name: '', + email: '', + department: '', + projectTitle: '', + uniqueness: '', + slotDate: '', + slotTime: '' + }); + + const [isSubmitted, setIsSubmitted] = useState(false); + const [isSubmitting, setIsSubmitting] = useState(false); + const [errors, setErrors] = useState>({}); + + const handleInputChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + + if (name === 'slotDate' && value) { + const date = new Date(value); + const day = date.getUTCDay(); + if (day === 6 || day === 0) { + setErrors(prev => ({ + ...prev, + slotDate: 'Sessions cannot be scheduled on weekends (Saturday/Sunday)' + })); + setFormData(prev => ({ ...prev, slotDate: '' })); + return; + } + } + + setFormData(prev => ({ ...prev, [name]: value })); + if (errors[name]) { + setErrors(prev => { + const next = { ...prev }; + delete next[name]; + return next; + }); + } + }; + + const validateForm = () => { + const newErrors: Record = {}; + if (!formData.name.trim()) newErrors.name = 'Full name is required'; + if (!formData.email.trim()) { + newErrors.email = 'RIT student email is required'; + } else if (!/\S+@\S+\.\S+/.test(formData.email)) { + newErrors.email = 'Please enter a valid email address'; + } + if (!formData.department) newErrors.department = 'Department is required'; + if (!formData.projectTitle.trim()) newErrors.projectTitle = 'Project title is required'; + if (!formData.uniqueness.trim()) { + newErrors.uniqueness = 'Please explain what makes your project unique'; + } else if (formData.uniqueness.trim().length < 20) { + newErrors.uniqueness = 'Please provide a more detailed description (min 20 characters)'; + } + if (!formData.slotDate) { + newErrors.slotDate = 'Please select a date'; + } else { + const date = new Date(formData.slotDate); + const day = date.getUTCDay(); + if (day === 6 || day === 0) { + newErrors.slotDate = 'Sessions cannot be scheduled on weekends (Saturday/Sunday)'; + } + } + if (!formData.slotTime) newErrors.slotTime = 'Please select a time slot'; + + setErrors(newErrors); + return Object.keys(newErrors).length === 0; + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (validateForm()) { + setIsSubmitting(true); + // Simulate API submit delay + setTimeout(() => { + setIsSubmitting(false); + setIsSubmitted(true); + }, 1500); + } + }; + + const timeSlots = [ + "09:00 AM - 11:00 AM", + "11:00 AM - 01:00 PM", + "01:00 PM - 03:00 PM" + ]; + + return ( +
+
+ + {/* Header */} +
+ + Work With Us + +

+ Pitch Your Startup Idea +

+

+ Ready to present? Secure a time slot with our RAISE Incubation Manager, Mr. B. Aravind. Once approved, the project will be fast-tracked to college administration for seed grant checks up to ₹20,000. +

+
+ +
+ + {!isSubmitted ? ( + + {/* Form Grid */} +
+ {/* Founder Name */} +
+ + + {errors.name && {errors.name}} +
+ + {/* Email Address */} +
+ + + {errors.email && {errors.email}} +
+ + {/* Department */} +
+ + + {errors.department && {errors.department}} +
+ + {/* Project Title */} +
+ + + {errors.projectTitle && {errors.projectTitle}} +
+
+ + {/* Uniqueness description */} +
+
+ + + Required for Incubation Manager approval + +
+