Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/components/landing/About.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ShieldCheck, Target, Users, Terminal } from 'lucide-react';
import animation from '@/src/animation';

const LandingAboutInCTF = () => (
<section className="container mx-auto py-20 px-6 md:px-8" id="what-is-inctf">
<section className="container mx-auto py-20 px-6 md:px-8 relative z-20" id="what-is-inctf">
<div className="flex flex-col lg:flex-row gap-12 items-center">
{/* Main Brief Column */}
<div className="lg:w-1/2">
Expand Down Expand Up @@ -48,7 +48,7 @@ const LandingAboutInCTF = () => (
<Target size={20} />
</div>
<p className="text-slate-300 leading-relaxed font-medium">
multi-month, world-class programme.
Multi-month, world-class programme.
</p>
</li>
<li className="flex items-start gap-4">
Expand All @@ -68,7 +68,7 @@ const LandingAboutInCTF = () => (
</p>
</li>
</ul>

<div className="mt-8 p-6 border border-sky-digital/30 bg-sky-digital/5 rounded relative">
<div className="absolute top-0 left-0 w-4 h-4 border-t border-l border-sky-digital"></div>
<div className="absolute bottom-0 right-0 w-4 h-4 border-b border-r border-sky-digital"></div>
Expand Down
2 changes: 1 addition & 1 deletion src/components/landing/CurrentSpeakers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ const CurrentSpeakers: React.FC = () => {
}, [selectedSpeaker]);

return (
<section className="relative z-10 w-full py-16 md:py-24 overflow-hidden" ref={containerRef}>
<section className="relative z-20 w-full py-16 md:py-24 overflow-hidden" ref={containerRef}>
{/* Section Header */}
<div className="speakers-header px-6 md:px-16 mb-10 md:mb-16 opacity-0 text-center">
<div>
Expand Down
46 changes: 28 additions & 18 deletions src/components/landing/CurrentSponsors.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,62 +30,72 @@ const CurrentSponsors = () => {
<div className="flex items-center gap-4 md:gap-6 w-full justify-center mb-2">
<div className="h-[1px] w-12 md:w-20 bg-gradient-to-r from-transparent to-sky-400 opacity-50"></div>
<h3 className="text-white font-mono font-medium tracking-[0.25em] text-sm md:text-lg uppercase whitespace-nowrap">
Our Current <span className="text-cyan-400 font-bold">Sponsors</span>
Our <span className="text-cyan-400 font-bold">Sponsors</span>
</h3>
<div className="h-[1px] w-12 md:w-20 bg-gradient-to-l from-transparent to-sky-400 opacity-50"></div>
</div>

{/* Grid/Flex Layout for Sponsors */}
<div className="flex flex-wrap justify-center items-end gap-x-12 gap-y-10 w-full">
<div className="flex flex-wrap justify-center items-start gap-x-12 gap-y-10 w-full">

{/* Powered By Section */}
<div className="flex flex-col items-center gap-4">
<div className="text-white/60 font-mono text-xs uppercase tracking-[0.25em]">
Powered By
</div>
<a href="https://www.tcs.com/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/Tata_Consultancy_Services_old_logo.svg.png" alt="Tata Consultancy Services Logo" className="h-10 md:h-14 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
<div className="flex items-center justify-center h-10 md:h-14">
<a href="https://www.tcs.com/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/Tata_Consultancy_Services_old_logo.svg.png" alt="Tata Consultancy Services Logo" className="h-10 md:h-14 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
</div>
</div>

{/* Co-Powered By Section */}
<div className="flex flex-col items-center gap-4">
<div className="text-white/60 font-mono text-xs uppercase tracking-[0.25em]">
Co-Powered By
</div>
<a href="https://nielseniq.com/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/NIQ-logo-bright-blue-web.png" alt="NIQ Logo" className="h-8 md:h-10 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
<div className="flex items-center justify-center h-10 md:h-14">
<a href="https://nielseniq.com/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/NIQ-logo-bright-blue-web.png" alt="NIQ Logo" className="h-8 md:h-10 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
</div>
</div>

{/* Supported By Section */}
<div className="flex flex-col items-center gap-4">
<div className="text-white/60 font-mono text-xs uppercase tracking-[0.25em]">
Supported By
</div>
<a href="https://www.siemens.com/en-gb/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/Siemens.png" alt="Siemens Logo" className="h-8 md:h-10 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
<div className="flex items-center justify-center h-10 md:h-14">
<a href="https://www.siemens.com/en-gb/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/Siemens.png" alt="Siemens Logo" className="h-8 md:h-10 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
</div>
</div>

{/* Organizing Partner Section */}
<div className="flex flex-col items-center gap-4">
<div className="text-white/60 font-mono text-xs uppercase tracking-[0.25em]">
Organizing Partner
</div>
<a href="https://traboda.com/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/logos/traboda_light.png" alt="Traboda CyberLabs Logo" className="h-10 md:h-14 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
<div className="flex items-center justify-center h-10 md:h-14">
<a href="https://traboda.com/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/logos/traboda_light.png" alt="Traboda CyberLabs Logo" className="h-10 md:h-14 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
</div>
</div>

{/* Community Partner Section */}
<div className="flex flex-col items-center gap-4">
<div className="text-white/60 font-mono text-xs uppercase tracking-[0.25em]">
Community Partner
</div>
<a href="https://www.iotsrg.org/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/Gold-IoTSRG.png" alt="IoT Security Research Group" className="h-10 md:h-14 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
<div className="flex items-center justify-center h-10 md:h-14">
<a href="https://www.iotsrg.org/" target="_blank" rel="noopener noreferrer" className="transition-all duration-500 hover:scale-105 filter drop-shadow-[0_0_15px_rgba(255,255,255,0.1)]">
<img src="/inctf/assets/images/current_sponsors/Gold-IoTSRG.png" alt="IoT Security Research Group" className="h-10 md:h-14 w-auto object-contain brightness-0 invert opacity-90 hover:opacity-100 transition-opacity" />
</a>
</div>
</div>
</div>
</div>
Expand Down
39 changes: 12 additions & 27 deletions src/components/landing/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -322,15 +322,13 @@ const LandingHeader = () => {
<SectionCard className="mb-0 w-full !p-5 md:!py-10 md:!px-8" paddingClassName="p-0">
<h1 className="text-[28px] sm:text-4xl md:text-5xl lg:text-6xl font-black font-heading mb-4 text-ghost-white text-left break-words leading-tight">
<span className="block mb-2">
<GlitchText
text="India's Cybersecurity Championship"
triggerOnView={true}
<GlitchText
text="India's Cybersecurity Championship"
triggerOnView={true}
className="text-ghost-white"
/>
</span>
<span className="block text-[20px] sm:text-2xl md:text-3xl text-white mt-2">
for Students & Professionals
</span>

</h1>

<div className="mt-6 text-left w-full">
Expand Down Expand Up @@ -376,7 +374,7 @@ const LandingHeader = () => {

{/* Registration Alert Status */}
<div className="mt-6 w-full flex justify-center md:justify-start">
<motion.div
<motion.div
initial={{ opacity: 0, y: 10 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 2.5 }}
Expand Down Expand Up @@ -411,10 +409,10 @@ const LandingHeader = () => {
transition={{ duration: 1.2, delay: 0.5 }}
className="relative z-10 floating md:static absolute inset-0 md:inset-auto flex justify-center items-center pointer-events-none md:pointer-events-auto mt-0"
>
<img
src="/inctf/assets/design/Homepage/satellite_laser.webp"
alt="InCTF Satellite"
className="w-[68%] md:w-[550px] lg:w-[680px] h-auto object-contain md:filter-none filter blur-none opacity-40 md:opacity-90 scale-150 md:scale-100 mt-4 ml-24"
<img
src="/inctf/assets/design/Homepage/satellite_laser.webp"
alt="InCTF Satellite"
className="w-[68%] md:w-[550px] lg:w-[680px] h-auto object-contain md:filter-none filter blur-none opacity-40 md:opacity-90 scale-150 md:scale-100 mt-4 ml-24"
draggable="false"
style={{
filter: 'drop-shadow(0 0 30px rgba(56, 189, 248, 0.4))'
Expand Down Expand Up @@ -449,22 +447,9 @@ const LandingHeader = () => {
</div>

{/* Hero Quick Facts Row */}
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 mt-16 md:mt-24 pb-12 w-full mx-auto relative z-20">
{/* Fact 1 */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 1.0 }}
className="bg-slate-900/40 border border-sky-500/20 p-5 md:p-6 rounded-lg backdrop-blur-sm"
>
<h4 className="text-cyan-400 font-mono font-bold text-sm md:text-base uppercase mb-2 tracking-wider flex items-center gap-2">
<Terminal size={16} /> What is InCTF?
</h4>
<p className="text-slate-300 text-sm leading-relaxed">India's first and flagship ethical hacking contest with a multi-month free programme.</p>
</motion.div>

<div className="grid grid-cols-1 md:grid-cols-2 gap-4 mt-16 md:mt-24 pb-12 w-full max-w-4xl mx-auto relative z-20">
{/* Fact 2 */}
<motion.div
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 1.1 }}
Expand All @@ -477,7 +462,7 @@ const LandingHeader = () => {
</motion.div>

{/* Fact 3 */}
<motion.div
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 1.2 }}
Expand Down
12 changes: 6 additions & 6 deletions src/components/landing/HowItWorks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const steps = [
},
{
title: "Practice",
desc: "Learners can use the bi0s wiki, challenge archive, and related learning channels to practice concepts and improve confidence.",
desc: "Learners can use the bi0s wiki and related learning channels to practice concepts and improve confidence.",
icon: <Terminal size={16} />
},
{
Expand All @@ -52,7 +52,7 @@ const MotionLink = motion(Link);

const LandingChampionshipWorks = () => {
return (
<ChampionshipSection className="container mx-auto px-6 md:px-8" id="how-it-works">
<ChampionshipSection className="container mx-auto px-6 md:px-8 relative z-20" id="how-it-works">
{/* Title & Subtitle */}
<div className="text-center mb-16 max-w-4xl mx-auto">
<motion.div
Expand All @@ -67,7 +67,7 @@ const LandingChampionshipWorks = () => {
How the <span className="text-sky-400">Championship Works</span>
</h2>
<p className="text-lg md:text-xl text-cyan-400 font-medium">
Training, practice, competition, and final deployment.
Training, practice, competition, and finals.
</p>
</motion.div>
</div>
Expand All @@ -85,14 +85,14 @@ const LandingChampionshipWorks = () => {
</div>

{/* Supporting Links */}
<motion.div
<motion.div
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true }}
transition={{ delay: 0.4 }}
className="flex flex-col sm:flex-row justify-center items-center gap-10 sm:gap-8 mt-12"
>
<MotionLink
<MotionLink
href="/championship"
initial={{ opacity: 0, y: 20, boxShadow: "4px 4px 0 rgba(255,255,255,0.5)" }}
whileInView={{ opacity: 1, y: 0, boxShadow: "4px 4px 0 rgba(255,255,255,0.5)" }}
Expand All @@ -103,7 +103,7 @@ const LandingChampionshipWorks = () => {
>
[ View Detailed Contest Format ]
</MotionLink>
<MotionLink
<MotionLink
href="/championship#finals"
initial={{ opacity: 0, y: 20, boxShadow: "4px 4px 0 rgba(255,255,255,0.5)" }}
whileInView={{ opacity: 1, y: 0, boxShadow: "4px 4px 0 rgba(255,255,255,0.5)" }}
Expand Down
6 changes: 3 additions & 3 deletions src/components/landing/LandingFAQ.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const LandingFAQ = () => {
question: "I'm a complete beginner. Can I still participate?",
answer: (
<>
Yes! InCTF is explicitly designed for beginners. We provide guided training, resources, and practice challenges to help you learn from scratch. Check out our <a href="#training" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Training & Learning</a> section to get started.
Yes! InCTF is explicitly designed for beginners. We provide guided training and resources to help you learn from scratch. Check out our <a href="#training" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Training & Learning</a> section to get started.
</>
)
},
Expand All @@ -65,7 +65,7 @@ const LandingFAQ = () => {
question: "Where can I practice before the contest?",
answer: (
<>
You can practice on <a href="https://traboda.com/" target="_blank" rel="noopener noreferrer" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Traboda</a>, read the <a href="https://wiki.bi0s.in/" target="_blank" rel="noopener noreferrer" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">bi0s Wiki</a>, or explore our <a href="/writeups" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Writeups</a>. Find all the links in the <a href="#resources" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Resources</a> section.
You can read the <a href="https://wiki.bi0s.in/" target="_blank" rel="noopener noreferrer" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">bi0s Wiki</a>, or explore our <a href="/writeups" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Writeups</a>. Find all the links in the <a href="#resources" className="text-sky-400 hover:text-sky-300 underline underline-offset-2">Resources</a> section.
</>
)
},
Expand All @@ -80,7 +80,7 @@ const LandingFAQ = () => {
];

return (
<section className="relative py-24 bg-obsidian z-20 border-t border-sky-400/10" id="landing-faq">
<section className="relative py-24 z-20" id="landing-faq">
<div className="container mx-auto px-6 md:px-8 max-w-4xl">
<div className="text-center mb-16">
<motion.div
Expand Down
2 changes: 1 addition & 1 deletion src/components/landing/LandingOrganizedBy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const LandingOrganizedBy = () => {
];

return (
<section className="relative py-24 bg-obsidian z-20 border-t border-sky-400/10" id="organized-by">
<section className="relative py-24 z-20" id="organized-by">
<div className="container mx-auto px-6 md:px-8 max-w-6xl">
{/* Section Title */}
<div className="text-center mb-16">
Expand Down
Loading
Loading