@@ -78,13 +78,12 @@ interface Testimonial {
7878function TestimonialSlider ( { testimonials } : { testimonials : Testimonial [ ] } ) {
7979 const [ index , setIndex ] = useState ( 0 ) ;
8080 const [ visibleCards , setVisibleCards ] = useState ( 3 ) ;
81- const ref = useRef ( null ) ;
82- const isInView = useInView ( ref , { once : true , amount : 0.1 } ) ;
81+ const sliderRef = useRef ( null ) ;
8382
8483 // Update visible cards on resize
8584 useEffect ( ( ) => {
8685 const handleResize = ( ) => {
87- setVisibleCards ( window . innerWidth < 768 ? 1 : 3 ) ;
86+ setVisibleCards ( window . innerWidth < 1024 ? ( window . innerWidth < 640 ? 1 : 2 ) : 3 ) ;
8887 } ;
8988 handleResize ( ) ;
9089 window . addEventListener ( "resize" , handleResize ) ;
@@ -105,20 +104,26 @@ function TestimonialSlider({ testimonials }: { testimonials: Testimonial[] }) {
105104
106105 return (
107106 < motion . div
108- ref = { ref }
109- initial = { { opacity : 0 , y : 20 } }
110- animate = { isInView ? { opacity : 1 , y : 0 } : { } }
111- transition = { { duration : 0.8 } }
112- className = "relative w-full overflow-hidden"
107+ ref = { sliderRef }
108+ initial = { { opacity : 1 , y : 0 } }
109+ className = "relative w-full overflow-hidden py-4"
113110 >
114111 < motion . div
115112 animate = { { x : `-${ ( index ) * ( 100 / extendedTestimonials . length ) } %` } }
116113 transition = { {
117114 type : "spring" ,
118- stiffness : 50 ,
115+ stiffness : 40 ,
119116 damping : 20 ,
120117 mass : 1
121118 } }
119+ onUpdate = { ( ) => {
120+ // If we've reached the end of the middle section, jump back seamlessly
121+ // Note: index calculation for seamless loop can be complex,
122+ // but for simple auto-slide, just keeping it in bounds is enough.
123+ if ( index >= testimonials . length * 2 ) {
124+ setIndex ( testimonials . length ) ;
125+ }
126+ } }
122127 className = "flex"
123128 style = { { width : `${ ( extendedTestimonials . length * 100 ) / visibleCards } %` } }
124129 >
@@ -172,7 +177,7 @@ function TestimonialSlider({ testimonials }: { testimonials: Testimonial[] }) {
172177
173178export default function HomePage ( ) {
174179 return (
175- < div className = "min-h-screen bg-[#F1F5F9] text-slate-900 font-sans selection:bg-emerald-100 selection:text-emerald-900" >
180+ < div className = "min-h-screen bg-white text-slate-900 font-sans selection:bg-emerald-100 selection:text-emerald-900" >
176181 < Navbar />
177182
178183 < main >
@@ -293,64 +298,99 @@ export default function HomePage() {
293298 </ div >
294299 </ section >
295300
296- { /* How it Works */ }
297- < section className = "py-24 sm:py-32 relative overflow-hidden bg-white" >
301+ { /* How it Works - Redesigned for Premium Minimal Look */ }
302+ < section className = "py-24 sm:py-40 relative overflow-hidden bg-white" >
303+ { /* Subtle Background Pattern */ }
304+ < div className = "absolute inset-0 opacity-[0.03] pointer-events-none" style = { { backgroundImage : 'radial-gradient(#10b981 1px, transparent 1px)' , backgroundSize : '40px 40px' } } />
305+
298306 < div className = "max-w-[1440px] mx-auto px-4 sm:px-6 relative z-10" >
299- < div className = "text-center max-w-2xl mx-auto mb-24" >
300- < span className = "text-emerald-600 font-bold text-xs uppercase tracking-widest mb-4 inline-block" > Simple Workflow</ span >
301- < h2 className = "text-4xl md:text-5xl font-black text-slate-900 mb-6 tracking-tight" > The Path to Success</ h2 >
302- < p className = "text-slate-500 font-medium text-lg leading-relaxed" >
303- Experience a streamlined collaboration process designed for elite speed.
307+ < div className = "flex flex-col lg:flex-row lg:items-end justify-between mb-20 gap-8" >
308+ < div className = "max-w-2xl" >
309+ < motion . div
310+ initial = { { opacity : 0 , x : - 20 } }
311+ whileInView = { { opacity : 1 , x : 0 } }
312+ viewport = { { once : true } }
313+ className = "flex items-center gap-3 mb-6"
314+ >
315+ < div className = "w-10 h-[2px] bg-emerald-500" />
316+ < span className = "text-emerald-600 font-bold text-xs uppercase tracking-[0.3em]" > Execution Strategy</ span >
317+ </ motion . div >
318+ < h2 className = "text-5xl md:text-7xl font-black text-slate-900 tracking-tighter leading-[0.9]" >
319+ The Path to < br />
320+ < span className = "text-transparent bg-clip-text bg-gradient-to-r from-emerald-600 to-teal-500" > Perfect Synergy</ span >
321+ </ h2 >
322+ </ div >
323+ < p className = "text-slate-500 font-medium text-lg max-w-md leading-relaxed border-l-2 border-slate-100 pl-8" >
324+ We've distilled months of collaboration overhead into three high-velocity steps.
304325 </ p >
305326 </ div >
306327
307- < div className = "grid grid-cols-1 lg:grid-cols-3 gap-8" >
328+ < div className = "grid grid-cols-1 md:grid-cols-3 gap-12 relative" >
329+ { /* Connecting Line for Desktop */ }
330+ < div className = "hidden md:block absolute top-1/4 left-0 w-full h-[1px] bg-slate-100 z-0" />
331+
308332 { [
309333 {
310- title : "Discover Talent " ,
311- desc : "Browse a curated list of verified creators across every niche imaginable ." ,
334+ title : "Discovery " ,
335+ desc : "Our AI-driven engine filters through thousands to find your perfect niche matches ." ,
312336 icon : < Search className = "w-6 h-6" /> ,
313- color : "bg -blue-500 "
337+ gradient : "from -blue-600 to-indigo-600 "
314338 } ,
315339 {
316- title : "Instant Booking " ,
317- desc : "Check real-time availability and lock in your campaign with one click ." ,
318- icon : < Calendar className = "w-6 h-6" /> ,
319- color : "bg -emerald-500"
340+ title : "Activation " ,
341+ desc : "One-click contracts and instant calendar syncing to launch your campaign at light speed ." ,
342+ icon : < Zap className = "w-6 h-6" /> ,
343+ gradient : "from -emerald-500 to-teal -500"
320344 } ,
321345 {
322- title : "Secure Delivery " ,
323- desc : "Funds are released only when you're 100% satisfied with the results ." ,
346+ title : "Growth " ,
347+ desc : "Funds released on satisfaction, backed by real-time analytics and escrow protection ." ,
324348 icon : < CreditCard className = "w-6 h-6" /> ,
325- color : "bg-indigo-500 "
349+ gradient : "from-slate-800 to-slate-900 "
326350 }
327351 ] . map ( ( step , i ) => (
328352 < motion . div
329353 key = { i }
330- initial = { { opacity : 0 , y : 20 } }
354+ initial = { { opacity : 0 , y : 30 } }
331355 whileInView = { { opacity : 1 , y : 0 } }
332356 viewport = { { once : true } }
333- transition = { { delay : i * 0.2 } }
334- className = "relative p-8 sm:p-10 rounded-3xl bg-slate-50 border border-slate-100 hover:bg-white hover:shadow-[0_20px_50px_-20px_rgba(0,0,0,0.1)] transition-all duration-500 group"
357+ transition = { { delay : i * 0.2 , duration : 0.8 } }
358+ className = "relative group"
335359 >
336- < div className = "absolute top-10 right-10 text-6xl font-black text-slate-200/50 group-hover:text-emerald-500/10 transition-colors" > 0{ i + 1 } </ div >
337- < div className = { `w-14 h-14 rounded-2xl mb-8 flex items-center justify-center text-white shadow-lg ${ step . color } ` } >
338- { step . icon }
360+ < div className = "relative z-10" >
361+ < div className = "mb-12 relative inline-block" >
362+ < div className = { `w-20 h-20 rounded-[2rem] bg-gradient-to-br ${ step . gradient } flex items-center justify-center text-white shadow-2xl shadow-emerald-200/20 group-hover:scale-110 transition-transform duration-500` } >
363+ { step . icon }
364+ </ div >
365+ < div className = "absolute -top-4 -right-4 w-10 h-10 rounded-full bg-white border border-slate-100 flex items-center justify-center text-xs font-black text-slate-900 shadow-sm" >
366+ 0{ i + 1 }
367+ </ div >
368+ </ div >
369+
370+ < h3 className = "text-3xl font-black text-slate-900 mb-6 tracking-tight group-hover:text-emerald-600 transition-colors" >
371+ { step . title }
372+ </ h3 >
373+ < p className = "text-slate-500 font-medium leading-relaxed mb-8 group-hover:text-slate-700 transition-colors" >
374+ { step . desc }
375+ </ p >
376+
377+ < div className = "w-0 group-hover:w-full h-[2px] bg-emerald-500 transition-all duration-500" />
339378 </ div >
340- < h3 className = "text-2xl font-bold text-slate-900 mb-4" > { step . title } </ h3 >
341- < p className = "text-slate-500 text-sm font-medium leading-relaxed" > { step . desc } </ p >
342379 </ motion . div >
343380 ) ) }
344381 </ div >
345382 </ div >
346383 </ section >
347384
348- { /* Platform Features */ }
349- < section className = "py-24 sm:py-32 bg-slate-50 relative" >
350- < div className = "max-w-[1440px] mx-auto px-4 sm:px-6" >
385+ { /* Platform Features - Updated for Color Theme */ }
386+ < section className = "py-24 sm:py-40 bg-slate-900 relative overflow-hidden" >
387+ < div className = "absolute top-0 right-0 w-[500px] h-[500px] bg-emerald-500/10 rounded-full blur-[120px] -mr-64 -mt-64" />
388+ < div className = "absolute bottom-0 left-0 w-[500px] h-[500px] bg-blue-500/10 rounded-full blur-[120px] -ml-64 -mb-64" />
389+
390+ < div className = "max-w-[1440px] mx-auto px-4 sm:px-6 relative z-10" >
351391 < div className = "text-center mb-24" >
352- < span className = "bg-emerald-100 text-emerald-700 px-4 py-1.5 rounded-full text-[10px] font-black uppercase tracking-widest mb-6 inline-block" > Cutting Edge </ span >
353- < h2 className = "text-4xl md:text-5xl font-black text-slate-900 tracking-tight " > The Noillin Edge</ h2 >
392+ < span className = "text-emerald-400 font-bold text-[10px] uppercase tracking-[0.4em] mb-6 inline-block" > System Architecture </ span >
393+ < h2 className = "text-4xl md:text-6xl font-black text-white tracking-tighter " > The Noillin Edge</ h2 >
354394 </ div >
355395
356396 < div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" >
@@ -368,13 +408,13 @@ export default function HomePage() {
368408 whileInView = { { opacity : 1 , y : 0 } }
369409 viewport = { { once : true } }
370410 transition = { { delay : i * 0.05 } }
371- className = "p-8 bg-white border border-slate-200/60 rounded-[2.5rem] hover:border-emerald-500/30 hover:shadow-[0_20px_50px_-20px_rgba(16,185,129,0.15)] transition-all duration-300 group"
411+ className = "p-10 bg-white/5 backdrop-blur-sm border border-white/10 rounded-[2.5rem] hover:bg-white/10 hover:border-emerald-500/50 transition-all duration-300 group"
372412 >
373- < div className = "w-12 h-12 rounded-2xl bg-slate-50 flex items-center justify-center text-slate -400 group-hover:bg-emerald-500 group-hover:text-white transition-all duration-300 mb-6 " >
413+ < div className = "w-12 h-12 rounded-2xl bg-white/5 flex items-center justify-center text-emerald -400 group-hover:bg-emerald-500 group-hover:text-white transition-all duration-300 mb-8 " >
374414 { feature . icon }
375415 </ div >
376- < h3 className = "text-lg font-bold text-slate-900 mb-3 group-hover:text-emerald-600 transition-colors" > { feature . title } </ h3 >
377- < p className = "text-slate-500 text-sm font-medium leading-relaxed" > { feature . desc } </ p >
416+ < h3 className = "text-xl font-bold text-white mb-4 group-hover:text-emerald-400 transition-colors" > { feature . title } </ h3 >
417+ < p className = "text-slate-400 text-sm font-medium leading-relaxed" > { feature . desc } </ p >
378418 </ motion . div >
379419 ) ) }
380420 </ div >
@@ -436,12 +476,12 @@ export default function HomePage() {
436476 </ motion . div >
437477 </ section >
438478
439- { /* Testimonials */ }
440- < section className = "py-24 sm:py-32 bg-white" >
479+ { /* Testimonials - Updated for Color Theme */ }
480+ < section className = "py-24 sm:py-40 bg-white relative " >
441481 < div className = "max-w-[1440px] mx-auto px-4 sm:px-6" >
442482 < div className = "text-center mb-24" >
443- < span className = "text-emerald-600 font-bold text-[10px] uppercase tracking-[0.3em ] mb-4 inline-block" > Success Stories </ span >
444- < h2 className = "text-4xl md:text-5xl font-black text-slate-900 tracking-tight " > The Community Voice</ h2 >
483+ < span className = "text-emerald-600 font-bold text-[10px] uppercase tracking-[0.4em ] mb-4 inline-block" > Validation </ span >
484+ < h2 className = "text-4xl md:text-6xl font-black text-slate-900 tracking-tighter " > The Community Voice</ h2 >
445485 </ div >
446486 < TestimonialSlider testimonials = { [
447487 { name : "Alex Rivera" , role : "TECHFLOW DIRECTOR" , img : "11" , text : "Noillin streamlined our influencer outreach. We found the perfect micro-influencers within hours." } ,
0 commit comments