diff --git a/cpsquad/app/component/AnimatedHero/AnimatedHero.jsx b/cpsquad/app/component/AnimatedHero/AnimatedHero.jsx
new file mode 100644
index 0000000..a6d2eb3
--- /dev/null
+++ b/cpsquad/app/component/AnimatedHero/AnimatedHero.jsx
@@ -0,0 +1,183 @@
+"use client";
+
+import { motion } from "framer-motion";
+import { useState, useEffect } from "react";
+import DecryptedText from './DecryptedText';
+import '../../glitch.css';
+
+const AnimatedHero = () => {
+ // Cycling texts for decrypted animation
+ const texts = [
+ "WELCOME TO CP SQUAD_",
+ "IF YOU LOVE CODING_",
+ "YOU'RE AT THE RIGHT PLACE_",
+ "SOLVE PROBLEMS_"
+ ];
+
+ const [currentTextIndex, setCurrentTextIndex] = useState(0);
+ const [key, setKey] = useState(0);
+
+ // Cycle through texts automatically
+ useEffect(() => {
+ const interval = setInterval(() => {
+ setCurrentTextIndex((prev) => (prev + 1) % texts.length);
+ setKey(prev => prev + 1); // Force re-render of DecryptedText
+ }, 4000);
+
+ return () => clearInterval(interval);
+ }, [texts.length]);
+
+ // Delta Triangle Background with Matrix Characters (Static Pattern)
+ const DeltaTriangleBackground = () => {
+ const [triangleChars, setTriangleChars] = useState([]);
+ const matrixChars = "abcdefghijklmnopqrstuvwxyz0123456789@#$%^&*";
+
+ useEffect(() => {
+ const createTriangleMatrix = () => {
+ const chars = [];
+ const rows = 20; // Reduced rows for smaller triangle
+
+ for (let row = 0; row < rows; row++) {
+ // Calculate characters per row (triangle shape - wider at bottom)
+ const charsInRow = Math.floor(3 + (row * 1.8));
+ const rowWidth = charsInRow * 2; // Total width of this row
+ const startX = 50 - (rowWidth / 2); // Center each row
+
+ for (let col = 0; col < charsInRow; col++) {
+ const randomBrightness = 0.4 + Math.random() * 0.6;
+ chars.push({
+ id: `char-${row}-${col}`,
+ char: matrixChars[Math.floor(Math.random() * matrixChars.length)],
+ x: startX + (col * 2), // Horizontal spacing
+ y: 15 + (row * 3), // Vertical spacing - starts lower for centered triangle
+ brightness: randomBrightness,
+ glowDelay: Math.random() * 5, // Random glow timing
+ });
+ }
+ }
+
+ setTriangleChars(chars);
+ };
+
+ createTriangleMatrix();
+
+ // Refresh characters occasionally for variety
+ const interval = setInterval(createTriangleMatrix, 12000);
+ return () => clearInterval(interval);
+ }, []);
+
+ return (
+
+ {/* Dense Triangle Matrix Characters - Static with subtle glow */}
+ {triangleChars.map((charData) => (
+
+ {charData.char}
+
+ ))}
+
+ {/* Subtle random character flicker effect */}
+
+
+ );
+ };
+
+ return (
+
+ {/* Delta Triangle Background - Only the triangle */}
+
+
+ {/* Main Content */}
+
+ {/* Animated Container */}
+
+ {/* Main Title: CP SQUAD (Delta Force Style) */}
+
+ CP SQUAD
+
+
+ {/* Decrypted Text Animation - Green text like Delta Force */}
+
+
+
+
+
+
+
+
+ {/* Gradient Overlay at bottom */}
+
+
+ );
+};
+
+export default AnimatedHero;
\ No newline at end of file
diff --git a/cpsquad/app/component/AnimatedHero/AnimatedHero_Complete.jsx b/cpsquad/app/component/AnimatedHero/AnimatedHero_Complete.jsx
new file mode 100644
index 0000000..84afa88
--- /dev/null
+++ b/cpsquad/app/component/AnimatedHero/AnimatedHero_Complete.jsx
@@ -0,0 +1,425 @@
+"use client";
+
+import { motion, AnimatePresence } from "framer-motion";
+import { useState, useEffect } from "react";
+import DecryptedText from './DecryptedText';
+import '../../glitch.css';
+
+const AnimatedHero = () => {
+ // Cycling texts for decrypted animation
+ const texts = [
+ "WELCOME TO CP SQUAD",
+ "IF YOU LOVE CODING",
+ "YOU'RE AT THE RIGHT PLACE_",
+ "SOLVE PROBLEMS"
+ ];
+
+ const [currentTextIndex, setCurrentTextIndex] = useState(0);
+ const [key, setKey] = useState(0);
+
+ // Cycle through texts automatically
+ useEffect(() => {
+ const interval = setInterval(() => {
+ setCurrentTextIndex((prev) => (prev + 1) % texts.length);
+ setKey(prev => prev + 1);
+ }, 4000);
+
+ return () => clearInterval(interval);
+ }, [texts.length]);
+
+ // Delta Triangle with Full Animation Cycle
+ const DeltaTriangleBackground = () => {
+ const [triangleChars, setTriangleChars] = useState([]);
+ const [animationPhase, setAnimationPhase] = useState('drawing'); // drawing, filling, filled, glitch, reset
+ const [visibleChars, setVisibleChars] = useState(new Set());
+ const [borderComplete, setBorderComplete] = useState(false);
+ const matrixChars = "abcdefghijklmnopqrstuvwxyz0123456789@#$%^&*";
+
+ useEffect(() => {
+ const createTriangleMatrix = () => {
+ const chars = [];
+ const rows = 28;
+
+ for (let row = 0; row < rows; row++) {
+ const charsInRow = Math.floor((row + 1) * 3.2);
+ const startX = 50 - (charsInRow * 1.1) / 2;
+
+ for (let col = 0; col < charsInRow; col++) {
+ chars.push({
+ id: `char-${row}-${col}`,
+ char: matrixChars[Math.floor(Math.random() * matrixChars.length)],
+ x: startX + (col * 2.2),
+ y: 12 + (row * 2.9),
+ row: row,
+ col: col,
+ fillDelay: (row * 0.08) + (col * 0.02),
+ });
+ }
+ }
+
+ return chars;
+ };
+
+ const chars = createTriangleMatrix();
+ setTriangleChars(chars);
+
+ // Animation Cycle Timeline (15 seconds total)
+ const startCycle = () => {
+ // Phase 1: Draw border (0-2s)
+ setAnimationPhase('drawing');
+ setBorderComplete(false);
+ setVisibleChars(new Set());
+
+ setTimeout(() => {
+ setBorderComplete(true);
+ }, 2000);
+
+ // Phase 2: Fill with characters one by one (2-7s)
+ setTimeout(() => {
+ setAnimationPhase('filling');
+
+ // Add characters one by one
+ chars.forEach((char) => {
+ setTimeout(() => {
+ setVisibleChars(prev => new Set([...prev, char.id]));
+ }, char.fillDelay * 1000);
+ });
+ }, 2000);
+
+ // Phase 3: Fully filled state (7-11s)
+ setTimeout(() => {
+ setAnimationPhase('filled');
+ }, 7000);
+
+ // Phase 4: Glitch effect (11-13s)
+ setTimeout(() => {
+ setAnimationPhase('glitch');
+ }, 11000);
+
+ // Phase 5: Reset/fade out (13-15s)
+ setTimeout(() => {
+ setAnimationPhase('reset');
+ setVisibleChars(new Set());
+ setBorderComplete(false);
+ }, 13000);
+ };
+
+ startCycle();
+ const interval = setInterval(startCycle, 15000);
+
+ return () => clearInterval(interval);
+ }, []);
+
+ return (
+
+ {/* Animated Triangle Border */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Main Triangle Outline */}
+
+
+ {/* Corner Accents */}
+ {borderComplete && animationPhase !== 'reset' && (
+ <>
+
+
+
+ >
+ )}
+
+
+ {/* Matrix Characters filling the triangle */}
+
+ {triangleChars.map((charData) => {
+ const isVisible = visibleChars.has(charData.id);
+
+ if (!isVisible && animationPhase !== 'glitch' && animationPhase !== 'filled') return null;
+
+ return (
+
+ {charData.char}
+
+ );
+ })}
+
+
+ );
+ };
+
+ // Subtle Background Matrix Rain
+ const BackgroundMatrixRain = () => {
+ const [columns, setColumns] = useState([]);
+ const matrixChars = "01";
+
+ useEffect(() => {
+ const createColumns = () => {
+ if (typeof window === 'undefined') return [];
+
+ const width = window.innerWidth;
+ const height = window.innerHeight;
+ const columnCount = width < 640 ? 6 : width < 1024 ? 10 : 15;
+
+ const cols = [];
+ for (let i = 0; i < columnCount; i++) {
+ const charsPerColumn = Math.floor(height / 35) + 2;
+ cols.push({
+ id: i,
+ x: (i / columnCount) * 100,
+ chars: Array.from({ length: charsPerColumn }, () =>
+ matrixChars[Math.floor(Math.random() * matrixChars.length)]
+ ),
+ delay: Math.random() * 10,
+ speed: 10 + Math.random() * 5,
+ });
+ }
+ return cols;
+ };
+
+ setColumns(createColumns());
+
+ const handleResize = () => setColumns(createColumns());
+ window.addEventListener('resize', handleResize);
+ return () => window.removeEventListener('resize', handleResize);
+ }, []);
+
+ return (
+
+ {columns.map((column) => (
+
+ {column.chars.join('')}
+
+ ))}
+
+ );
+ };
+
+ return (
+
+ {/* Background Matrix Rain */}
+
+
+ {/* Delta Triangle Background */}
+
+
+ {/* Main Content */}
+
+
+ {/* Main Title: CP SQUAD */}
+
+ CP SQUAD
+
+
+ {/* Decrypted Text */}
+
+
+
+
+ {/* Description */}
+
+ At CP Squad, we bridge the gaps between problems and solutions. We combine our
+ expertise in competitive programming to craft powerful problem-solving skills.
+
+
+ {/* CTA Buttons */}
+
+
+ Learn More
+
+
+ Explore
+
+
+
+
+
+ {/* Gradient Overlay */}
+
+
+ );
+};
+
+export default AnimatedHero;
diff --git a/cpsquad/app/component/AnimatedHero/AnimatedHero_delta.jsx b/cpsquad/app/component/AnimatedHero/AnimatedHero_delta.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/cpsquad/app/component/AnimatedHero/DecryptedText.jsx b/cpsquad/app/component/AnimatedHero/DecryptedText.jsx
new file mode 100644
index 0000000..e62dd52
--- /dev/null
+++ b/cpsquad/app/component/AnimatedHero/DecryptedText.jsx
@@ -0,0 +1,207 @@
+import { useEffect, useState, useRef } from 'react';
+import { motion } from 'framer-motion';
+
+const styles = {
+ wrapper: {
+ display: 'inline-block',
+ whiteSpace: 'pre-wrap'
+ },
+ srOnly: {
+ position: 'absolute',
+ width: '1px',
+ height: '1px',
+ padding: 0,
+ margin: '-1px',
+ overflow: 'hidden',
+ clip: 'rect(0,0,0,0)',
+ border: 0
+ }
+};
+
+export default function DecryptedText({
+ text,
+ speed = 50,
+ maxIterations = 10,
+ sequential = false,
+ revealDirection = 'start',
+ useOriginalCharsOnly = false,
+ characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+',
+ className = '',
+ parentClassName = '',
+ encryptedClassName = '',
+ animateOn = 'hover',
+ ...props
+}) {
+ const [displayText, setDisplayText] = useState(text);
+ const [isHovering, setIsHovering] = useState(false);
+ const [isScrambling, setIsScrambling] = useState(false);
+ const [revealedIndices, setRevealedIndices] = useState(new Set());
+ const [hasAnimated, setHasAnimated] = useState(false);
+ const containerRef = useRef(null);
+
+ useEffect(() => {
+ let interval;
+ let currentIteration = 0;
+
+ const getNextIndex = revealedSet => {
+ const textLength = text.length;
+ switch (revealDirection) {
+ case 'start':
+ return revealedSet.size;
+ case 'end':
+ return textLength - 1 - revealedSet.size;
+ case 'center': {
+ const middle = Math.floor(textLength / 2);
+ const offset = Math.floor(revealedSet.size / 2);
+ const nextIndex = revealedSet.size % 2 === 0 ? middle + offset : middle - offset - 1;
+
+ if (nextIndex >= 0 && nextIndex < textLength && !revealedSet.has(nextIndex)) {
+ return nextIndex;
+ }
+
+ for (let i = 0; i < textLength; i++) {
+ if (!revealedSet.has(i)) return i;
+ }
+ return 0;
+ }
+ default:
+ return revealedSet.size;
+ }
+ };
+
+ const availableChars = useOriginalCharsOnly
+ ? Array.from(new Set(text.split(''))).filter(char => char !== ' ')
+ : characters.split('');
+
+ const shuffleText = (originalText, currentRevealed) => {
+ if (useOriginalCharsOnly) {
+ const positions = originalText.split('').map((char, i) => ({
+ char,
+ isSpace: char === ' ',
+ index: i,
+ isRevealed: currentRevealed.has(i)
+ }));
+
+ const nonSpaceChars = positions.filter(p => !p.isSpace && !p.isRevealed).map(p => p.char);
+
+ for (let i = nonSpaceChars.length - 1; i > 0; i--) {
+ const j = Math.floor(Math.random() * (i + 1));
+ [nonSpaceChars[i], nonSpaceChars[j]] = [nonSpaceChars[j], nonSpaceChars[i]];
+ }
+
+ let charIndex = 0;
+ return positions
+ .map(p => {
+ if (p.isSpace) return ' ';
+ if (p.isRevealed) return originalText[p.index];
+ return nonSpaceChars[charIndex++];
+ })
+ .join('');
+ } else {
+ return originalText
+ .split('')
+ .map((char, i) => {
+ if (char === ' ') return ' ';
+ if (currentRevealed.has(i)) return originalText[i];
+ return availableChars[Math.floor(Math.random() * availableChars.length)];
+ })
+ .join('');
+ }
+ };
+
+ if (isHovering) {
+ setIsScrambling(true);
+ interval = setInterval(() => {
+ setRevealedIndices(prevRevealed => {
+ if (sequential) {
+ if (prevRevealed.size < text.length) {
+ const nextIndex = getNextIndex(prevRevealed);
+ const newRevealed = new Set(prevRevealed);
+ newRevealed.add(nextIndex);
+ setDisplayText(shuffleText(text, newRevealed));
+ return newRevealed;
+ } else {
+ clearInterval(interval);
+ setIsScrambling(false);
+ return prevRevealed;
+ }
+ } else {
+ setDisplayText(shuffleText(text, prevRevealed));
+ currentIteration++;
+ if (currentIteration >= maxIterations) {
+ clearInterval(interval);
+ setIsScrambling(false);
+ setDisplayText(text);
+ }
+ return prevRevealed;
+ }
+ });
+ }, speed);
+ } else {
+ setDisplayText(text);
+ setRevealedIndices(new Set());
+ setIsScrambling(false);
+ }
+
+ return () => {
+ if (interval) clearInterval(interval);
+ };
+ }, [isHovering, text, speed, maxIterations, sequential, revealDirection, characters, useOriginalCharsOnly]);
+
+ useEffect(() => {
+ if (animateOn !== 'view' && animateOn !== 'both') return;
+
+ const observerCallback = entries => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting && !hasAnimated) {
+ setIsHovering(true);
+ setHasAnimated(true);
+ }
+ });
+ };
+
+ const observerOptions = {
+ root: null,
+ rootMargin: '0px',
+ threshold: 0.1
+ };
+
+ const observer = new IntersectionObserver(observerCallback, observerOptions);
+ const currentRef = containerRef.current;
+ if (currentRef) {
+ observer.observe(currentRef);
+ }
+
+ return () => {
+ if (currentRef) {
+ observer.unobserve(currentRef);
+ }
+ };
+ }, [animateOn, hasAnimated]);
+
+ const hoverProps =
+ animateOn === 'hover' || animateOn === 'both'
+ ? {
+ onMouseEnter: () => setIsHovering(true),
+ onMouseLeave: () => setIsHovering(false)
+ }
+ : {};
+
+ return (
+
+ {displayText}
+
+
+ {displayText.split('').map((char, index) => {
+ const isRevealedOrDone = revealedIndices.has(index) || !isScrambling || !isHovering;
+
+ return (
+
+ {char}
+
+ );
+ })}
+
+
+ );
+}
diff --git a/cpsquad/app/component/ScrollSidebar/ScrollSidebar.jsx b/cpsquad/app/component/ScrollSidebar/ScrollSidebar.jsx
index 0d56ddb..2cc113c 100644
--- a/cpsquad/app/component/ScrollSidebar/ScrollSidebar.jsx
+++ b/cpsquad/app/component/ScrollSidebar/ScrollSidebar.jsx
@@ -12,7 +12,6 @@ const ScrollSidebar = () => {
{ id: "hero", label: "Home" },
{ id: "about", label: "About" },
{ id: "features", label: "Features" },
- { id: "blogs", label: "Blogs" },
{ id: "footer", label: "Contact" },
];
diff --git a/cpsquad/app/glitch.css b/cpsquad/app/glitch.css
new file mode 100644
index 0000000..ce77b30
--- /dev/null
+++ b/cpsquad/app/glitch.css
@@ -0,0 +1,323 @@
+/* Performance Optimization - Hardware Acceleration */
+* {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* Matrix Rain Glow Effect - Optimized */
+@keyframes matrix-glow {
+ 0%, 100% {
+ filter: brightness(1) blur(0.3px);
+ }
+ 50% {
+ filter: brightness(1.3) blur(0.5px);
+ }
+}
+
+/* Matrix Character Flicker - Optimized */
+@keyframes matrix-flicker {
+ 0%, 100% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0.5;
+ }
+}
+
+/* Import Chava Font */
+/*@import url('https://fonts.googleapis.com/css2?family=Chava&display=swap');*/
+
+/* Matrix Background Subtle Pulse */
+@keyframes matrix-pulse-bg {
+ 0%, 100% {
+ opacity: 0.6;
+ filter: brightness(1);
+ }
+ 50% {
+ opacity: 0.7;
+ filter: brightness(1.1);
+ }
+}
+
+/* Matrix Background Flickering */
+@keyframes matrix-flicker-bg {
+ 0%, 90%, 100% {
+ opacity: 0.6;
+ }
+ 92%, 96% {
+ opacity: 0.4;
+ }
+ 94%, 98% {
+ opacity: 0.65;
+ }
+}
+
+.matrix-background {
+ animation: matrix-pulse-bg 4s ease-in-out infinite, matrix-flicker-bg 8s ease-in-out infinite;
+ will-change: opacity;
+ transform: translateZ(0);
+ backface-visibility: hidden;
+ perspective: 1000px;
+}
+
+.matrix-background-static {
+ animation: matrix-pulse-bg 6s ease-in-out infinite;
+ will-change: opacity;
+ transform: translateZ(0);
+}
+
+.matrix-background-filled {
+ animation: matrix-pulse-bg 4s ease-in-out infinite, matrix-flicker-bg 6s ease-in-out infinite;
+ will-change: opacity;
+ transform: translateZ(0);
+ backface-visibility: hidden;
+}
+
+/* Yellow Border Pulse Animation */
+@keyframes border-pulse {
+ 0%, 100% {
+ filter: drop-shadow(0 0 8px rgba(255, 235, 59, 0.6));
+ }
+ 50% {
+ filter: drop-shadow(0 0 15px rgba(255, 235, 59, 0.9));
+ }
+}
+
+/* Delta Frame Glow */
+@keyframes frame-glow {
+ 0%, 100% {
+ opacity: 0.8;
+ }
+ 50% {
+ opacity: 1;
+ }
+}
+
+.matrix-rain-container {
+ animation: matrix-glow 2s ease-in-out infinite;
+}
+
+/* Glitch Keyframes for the large text (CP SQUAD) - Subtle effect */
+@keyframes glitch {
+ 0%, 90%, 100% {
+ transform: translate(0);
+ }
+ 92% {
+ transform: translate(-2px, 2px);
+ }
+ 94% {
+ transform: translate(2px, -2px);
+ }
+ 96% {
+ transform: translate(-2px, -2px);
+ }
+ 98% {
+ transform: translate(2px, 2px);
+ }
+}
+
+/* Glitch Keyframes for the typing cursor (_ character) */
+@keyframes glitch-cursor {
+ 0% {
+ text-shadow: 2px 0 #00ff00, -2px 0 #00ffc4;
+ opacity: 1;
+ clip-path: inset(0 0 0 0);
+ }
+ 25% {
+ text-shadow: 4px 0 #00ff00, -4px 0 #00ffc4;
+ opacity: 0.8;
+ clip-path: inset(0 50% 0 0);
+ }
+ 50% {
+ text-shadow: -2px 0 #00ff00, 2px 0 #00ffc4;
+ opacity: 1;
+ clip-path: inset(0 0 0 0);
+ }
+ 75% {
+ text-shadow: 0 5px #00ff00, 0 -5px #00ffc4;
+ opacity: 0.7;
+ clip-path: inset(50% 0 0 0);
+ }
+ 100% {
+ text-shadow: 2px 0 #00ff00, -2px 0 #00ffc4;
+ opacity: 1;
+ clip-path: inset(0 0 0 0);
+ }
+}
+
+/* Cursor Blink Keyframes */
+@keyframes blink-cursor {
+ 0% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+/* Glitch Title Styling - Clean & Optimized for all screen sizes */
+.glitch-text {
+ position: relative;
+ font-family: 'Chava', monospace, 'Courier New', Courier;
+ font-size: clamp(2.5rem, 8vw, 7rem);
+ font-weight: 400;
+ color: white;
+ animation: glitch 4s infinite alternate;
+ letter-spacing: 0.08em;
+ line-height: 1.2;
+ will-change: transform;
+ text-shadow:
+ 0 0 20px rgba(255, 255, 255, 0.5),
+ 0 0 40px rgba(0, 255, 196, 0.3);
+ transform: translateZ(0);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+/* Tablet optimization */
+@media (max-width: 1024px) {
+ .glitch-text {
+ font-size: clamp(2rem, 10vw, 5rem);
+ letter-spacing: 0.05em;
+ }
+}
+
+/* Mobile optimization */
+@media (max-width: 640px) {
+ .glitch-text {
+ font-size: clamp(1.75rem, 12vw, 3.5rem);
+ letter-spacing: 0.03em;
+ }
+}
+
+/* Pseudo-elements for the color-separated glitch effect - Subtle */
+.glitch-text::before,
+.glitch-text::after {
+ content: attr(data-text);
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+}
+
+.glitch-text::before {
+ left: 2px;
+ text-shadow: -2px 0 #ff00c4;
+ clip-path: inset(20% 0 70% 0);
+ animation: glitch 4s infinite alternate-reverse, glitch-flicker 4s infinite;
+}
+
+.glitch-text::after {
+ left: -2px;
+ text-shadow: -2px 0 #00ffc4;
+ clip-path: inset(40% 0 55% 0);
+ animation: glitch 4s infinite alternate, glitch-flicker 4s infinite 0.2s;
+}
+
+/* Glitch flicker animation */
+@keyframes glitch-flicker {
+ 0%, 89%, 100% {
+ opacity: 0;
+ }
+ 90%, 99% {
+ opacity: 0.8;
+ }
+}
+
+/* Glitch Cursor Styling - Optimized */
+.glitch-cursor {
+ display: inline-block;
+ color: #00ffc4;
+ text-shadow: 2px 0 #00ff00, -2px 0 #00ffc4;
+ animation: glitch-cursor 0.5s infinite alternate, blink-cursor 0.7s infinite step-end;
+ will-change: opacity, text-shadow;
+}
+
+/* Typing Subtitle Styling - Fully Responsive & Optimized */
+.typing-text {
+ font-family: 'Chava', monospace, 'Courier New', Courier;
+ font-size: clamp(0.875rem, 2.5vw, 1.5rem);
+ font-weight: 400;
+ color: #00ffc4;
+ margin-top: 20px;
+ letter-spacing: 0.08em;
+ line-height: 1.6;
+ min-height: 2em;
+ display: inline-block;
+ will-change: contents;
+ transform: translateZ(0);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+/* Revealed text styling */
+.typing-text-revealed {
+ font-family: 'Chava', monospace;
+ color: #00ffc4;
+ text-shadow: 0 0 8px rgba(0, 255, 196, 0.5);
+}
+
+/* Encrypted text styling */
+.typing-text-encrypted {
+ font-family: 'Chava', monospace;
+ color: #00ff00;
+ opacity: 0.6;
+ text-shadow: 0 0 5px rgba(0, 255, 0, 0.3);
+}
+
+/* Tablet optimization */
+@media (max-width: 1024px) {
+ .typing-text {
+ font-size: clamp(0.75rem, 3vw, 1.25rem);
+ letter-spacing: 0.05em;
+ }
+}
+
+/* Mobile optimization */
+@media (max-width: 640px) {
+ .typing-text {
+ font-size: clamp(0.75rem, 4vw, 1rem);
+ letter-spacing: 0.03em;
+ line-height: 1.8;
+ }
+}
+
+/* Delta Frame Responsive Styling */
+.delta-frame {
+ transition: all 0.3s ease;
+}
+
+.delta-outer-border {
+ vector-effect: non-scaling-stroke;
+}
+
+/* Responsive stroke widths for delta frame */
+@media (max-width: 640px) {
+ .delta-frame svg path,
+ .delta-frame svg line {
+ stroke-width: 0.5 !important;
+ }
+
+ .delta-outer-border {
+ stroke-width: 0.6 !important;
+ }
+}
+
+@media (min-width: 641px) and (max-width: 1024px) {
+ .delta-frame svg path,
+ .delta-frame svg line {
+ stroke-width: 0.4 !important;
+ }
+}
+
+@media (min-width: 1025px) {
+ .delta-frame svg path,
+ .delta-frame svg line {
+ stroke-width: 0.3 !important;
+ }
+}
diff --git a/cpsquad/app/page.js b/cpsquad/app/page.js
index 7b92eab..4e7d4c1 100644
--- a/cpsquad/app/page.js
+++ b/cpsquad/app/page.js
@@ -9,10 +9,7 @@ export default function Home() {
return (
{/* Hero Section */}
-
+
CP SQUAD_
@@ -38,32 +35,24 @@ export default function Home() {
{/* About Section */}
-
+
ABOUT US_
- We're coders, enthusiasts, geeks. We're CP Squad - a community
- dedicated to building competitive programming skills and fostering a
- culture of continuous learning.
+ We're coders, enthusiasts, geeks. We're CP Squad - a community dedicated to
+ building competitive programming skills and fostering a culture of continuous learning.
- Fueled by a passion for programming and problem-solving, our club
- doesn't just build skills, we delve deeper into algorithms, data
- structures, and competitive programming strategies.
+ Fueled by a passion for programming and problem-solving, our club doesn't just
+ build skills, we delve deeper into algorithms, data structures, and competitive programming strategies.
{/* Features Section */}
-
+
WHAT WE DO_
@@ -72,22 +61,19 @@ export default function Home() {
{[
{
title: "Competitive Programming",
- description:
- "Regular contests, practice sessions, and algorithm workshops to sharpen your coding skills.",
- icon: "💻",
+ description: "Regular contests, practice sessions, and algorithm workshops to sharpen your coding skills.",
+ icon: "💻"
},
{
title: "Community Events",
- description:
- "Hackathons, coding competitions, and collaborative learning sessions with peers.",
- icon: "🚀",
+ description: "Hackathons, coding competitions, and collaborative learning sessions with peers.",
+ icon: "🚀"
},
{
title: "Skill Development",
- description:
- "Learn from industry experts, improve problem-solving abilities, and build your portfolio.",
- icon: "📚",
- },
+ description: "Learn from industry experts, improve problem-solving abilities, and build your portfolio.",
+ icon: "📚"
+ }
].map((feature, index) => (
-
- {/* Blogs Section */}
-
-
-
- OUR BLOGS_
-
-
-
-
- {blogdata.slice(0, 3).map((item, id) => (
-
- ))}
-
-
-
-
- View more
-
-
-
-
);
}