File size: 17,069 Bytes
35a92dd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
import React, { useEffect, useState, useMemo } from 'react';

interface ResearchSectionProps {
  onClose: () => void;
}

interface BlogPost {
  id: string;
  title: string;
  date: string;
  url: string;
  category: string;
}

export const ResearchSection: React.FC<ResearchSectionProps> = ({ onClose }) => {
  const [isLoaded, setIsLoaded] = useState(false);
  const [role, setRole] = useState<'passenger' | 'rider'>('passenger');
  
  // Blog State
  const [visibleCount, setVisibleCount] = useState(3);
  const [searchQuery, setSearchQuery] = useState('');

  const blogs: BlogPost[] = [
    {
      id: 'mcp',
      title: "The Incredible Journey of MCP: Unleashing AI’s True Potential",
      date: "April 12, 2025",
      url: "https://medium.com/@devarshia5/the-incredible-journey-of-mcp-unleashing-ais-true-potential-f386161c65e8",
      category: "Architecture"
    },
    {
      id: 'plato',
      title: "When I Discovered That Plato Predicted AI: A Weekend Deep Dive",
      date: "July 20, 2025",
      url: "https://medium.com/@devarshia5/when-i-discovered-that-plato-predicted-ai-a-weekend-deep-dive-872e9421e280",
      category: "Philosophy"
    },
    {
      id: 'time',
      title: "Time Is Universal : Burns Relentlessly",
      date: "July 05, 2025",
      url: "https://medium.com/@devarshia5/time-is-universal-burns-relentlessly-7f5ecfbc606f",
      category: "Entropy"
    },
    {
      id: 'logistic',
      title: "Logistic Regression: The Magic of Predicting Yes or No",
      date: "March 26, 2025",
      url: "https://medium.com/@devarshia5/logistic-regression-the-magic-of-predicting-yes-or-no-f766703ee581",
      category: "Mathematics"
    }
  ];

  useEffect(() => {
    const t = setTimeout(() => setIsLoaded(true), 100);
    return () => clearTimeout(t);
  }, []);

  const toggleRole = () => {
    setRole(prev => prev === 'passenger' ? 'rider' : 'passenger');
  };

  const filteredBlogs = useMemo(() => {
    return blogs.filter(b => b.title.toLowerCase().includes(searchQuery.toLowerCase()));
  }, [searchQuery]);

  const displayedBlogs = filteredBlogs.slice(0, visibleCount);

  return (
    <div className={`fixed inset-0 z-50 flex flex-col bg-[#050000]/95 backdrop-blur-xl overflow-hidden transition-opacity duration-700 ${isLoaded ? 'opacity-100' : 'opacity-0'}`}>
      
      {/* Top Bar */}
      <div className="w-full max-w-[1400px] mx-auto px-6 py-6 md:px-12 flex justify-between items-center z-10 border-b border-white/5">
        <div className="flex items-center gap-4">
           <span className="text-cyan-400 font-mono text-xs animate-pulse">β—ˆ</span>
           <span className="text-white/80 font-mono text-xs uppercase tracking-widest">R&D Division</span>
        </div>
        <button 
          onClick={onClose}
          className="group flex items-center gap-3 text-white/50 hover:text-white transition-colors"
        >
          <span className="text-[10px] uppercase tracking-widest group-hover:tracking-[0.2em] transition-all duration-300">Abort</span>
          <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5">
             <line x1="18" y1="6" x2="6" y2="18"></line>
             <line x1="6" y1="6" x2="18" y2="18"></line>
          </svg>
        </button>
      </div>

      {/* Main Content */}
      <div className="flex-1 w-full overflow-y-auto overflow-x-hidden scroll-smooth custom-scrollbar">
        <div className="w-full max-w-[1400px] mx-auto px-6 md:px-12 pt-12 pb-32">
          
          {/* Header Title */}
          <div className={`mb-16 transition-all duration-1000 delay-100 ease-out ${isLoaded ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-12'}`}>
            <h1 className="text-5xl md:text-7xl lg:text-8xl font-light text-white tracking-tight leading-none">
              Experimental <br />
              <span className="text-cyan-500/50 font-serif italic">Protocols.</span>
            </h1>
          </div>

          {/* FEATURED PROJECT: ANTARAM */}
          <div 
            className={`relative w-full rounded-sm border border-white/10 bg-gradient-to-br from-white/5 to-transparent overflow-hidden transition-all duration-1000 delay-300 ${isLoaded ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-12'}`}
          >
            {/* Background Decor */}
            <div className="absolute -top-24 -right-24 w-64 h-64 bg-cyan-500/20 rounded-full blur-[100px] pointer-events-none"></div>

            <div className="grid grid-cols-1 lg:grid-cols-2 min-h-[500px]">
              
              {/* Left Column: The Pitch */}
              <div className="p-8 md:p-12 flex flex-col justify-between relative z-10">
                <div>
                   <div className="inline-flex items-center gap-2 px-3 py-1 rounded-full border border-cyan-500/30 bg-cyan-500/10 mb-6">
                      <span className="w-1.5 h-1.5 rounded-full bg-cyan-400 animate-pulse"></span>
                      <span className="text-[10px] font-mono uppercase tracking-widest text-cyan-300">Live Beta</span>
                   </div>
                   <h2 className="text-4xl md:text-5xl font-light text-white mb-4">Antaram</h2>
                   <p className="text-white/60 text-lg leading-relaxed max-w-md">
                     The open-source answer to the last-mile problem. We removed the corporate middleman so you don't have to pay for their yacht.
                   </p>
                </div>
                
                <div className="mt-12 space-y-6">
                  <div className="flex flex-col gap-1">
                    <p className="text-xs font-mono uppercase text-white/30 tracking-widest">Core Directive</p>
                    <p className="text-white/80 font-light">"Why pay surge pricing when your neighbor is going the same way?"</p>
                  </div>
                  
                  <a 
                    href="https://www.antaram.org" 
                    target="_blank" 
                    rel="noreferrer"
                    className="inline-flex items-center gap-3 text-cyan-400 hover:text-white transition-colors group cursor-pointer"
                  >
                    <span className="text-sm border-b border-cyan-500/30 pb-0.5 group-hover:border-white transition-all">Deploy on Network (www.antaram.org)</span>
                    <span className="transform group-hover:translate-x-1 transition-transform">β†’</span>
                  </a>
                </div>
              </div>

              {/* Right Column: The Interactive Demo */}
              <div className="relative border-t lg:border-t-0 lg:border-l border-white/10 bg-black/20 p-8 md:p-12 flex flex-col items-center justify-center">
                 
                 {/* Simulation UI */}
                 <div className="w-full max-w-sm">
                    {/* Toggle Switch */}
                    <div className="flex justify-center mb-10">
                       <button 
                         onClick={toggleRole}
                         className="relative w-64 h-14 bg-white/5 rounded-full border border-white/10 p-1 flex items-center cursor-pointer transition-all hover:border-white/20"
                       >
                          <div 
                            className={`absolute top-1 bottom-1 w-[calc(50%-4px)] bg-gradient-to-r ${role === 'passenger' ? 'from-cyan-600 to-cyan-400 left-1' : 'from-purple-600 to-purple-400 left-[calc(50%+2px)]'} rounded-full shadow-lg transition-all duration-500 cubic-bezier(0.4, 0, 0.2, 1)`}
                          ></div>
                          <span className={`flex-1 text-center text-[10px] font-mono uppercase tracking-widest z-10 transition-colors duration-300 ${role === 'passenger' ? 'text-white' : 'text-white/30'}`}>Passenger</span>
                          <span className={`flex-1 text-center text-[10px] font-mono uppercase tracking-widest z-10 transition-colors duration-300 ${role === 'rider' ? 'text-white' : 'text-white/30'}`}>Rider</span>
                       </button>
                    </div>

                    {/* Dynamic Card */}
                    <div className={`p-6 rounded-sm border transition-all duration-500 ${role === 'passenger' ? 'border-cyan-500/30 bg-cyan-900/10' : 'border-purple-500/30 bg-purple-900/10'}`}>
                       <div className="flex justify-between items-start mb-4">
                          <div className={`text-xs font-mono uppercase tracking-widest ${role === 'passenger' ? 'text-cyan-400' : 'text-purple-400'}`}>
                            {role === 'passenger' ? 'Status: Requesting' : 'Status: Online'}
                          </div>
                          <div className="flex gap-1">
                             <div className="w-1 h-1 bg-white/40 rounded-full"></div>
                             <div className="w-1 h-1 bg-white/40 rounded-full"></div>
                             <div className="w-1 h-1 bg-white/40 rounded-full"></div>
                          </div>
                       </div>
                       
                       <div className="h-24 flex items-center justify-center border border-dashed border-white/10 rounded-sm mb-4">
                          <p className="text-white/40 font-mono text-xs text-center px-4">
                             {role === 'passenger' 
                               ? "Searching for nearby community drivers..." 
                               : "Scanning for passengers on your route..."}
                          </p>
                       </div>

                       <div className="text-sm text-white/70 font-light">
                          {role === 'passenger' ? (
                             <>
                                <p className="mb-2">βœ“ No algorithm surge fees</p>
                                <p>βœ“ Direct P2P Payment</p>
                             </>
                          ) : (
                             <>
                                <p className="mb-2">βœ“ Keep 100% of the fare</p>
                                <p>βœ“ Zero platform commission</p>
                             </>
                          )}
                       </div>
                    </div>
                    
                    <p className="text-[10px] text-white/20 font-mono text-center mt-6">
                       *Simulated Interface. Actual freedom may vary.
                    </p>
                 </div>
              </div>

            </div>
          </div>

          {/* SECONDARY RESEARCH GRID */}
          <div className="mt-24 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
             <div className={`p-8 border border-white/5 hover:border-white/10 hover:bg-white/5 transition-all duration-500 delay-500 ${isLoaded ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-8'}`}>
                <h3 className="text-white/80 font-light text-xl mb-2">Zero-Knowledge Identity</h3>
                <p className="text-white/40 text-sm font-mono leading-relaxed mb-4">
                   Proving you are human without revealing who you are. The end of the data-harvesting era.
                </p>
                <div className="w-full h-1 bg-white/5 overflow-hidden">
                   <div className="h-full bg-cyan-500/50 w-2/3"></div>
                </div>
                <span className="text-[10px] text-cyan-500/50 font-mono mt-2 block">Progress: 65%</span>
             </div>

             <div className={`p-8 border border-white/5 hover:border-white/10 hover:bg-white/5 transition-all duration-500 delay-600 ${isLoaded ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-8'}`}>
                <h3 className="text-white/80 font-light text-xl mb-2">Cognitive Noise Filtering</h3>
                <p className="text-white/40 text-sm font-mono leading-relaxed mb-4">
                   Audio models that strip environmental chaos from voice data in real-time, purely on-device.
                </p>
                <div className="w-full h-1 bg-white/5 overflow-hidden">
                   <div className="h-full bg-purple-500/50 w-1/3"></div>
                </div>
                <span className="text-[10px] text-purple-500/50 font-mono mt-2 block">Progress: 32%</span>
             </div>

             <div className={`p-8 border border-white/5 hover:border-white/10 hover:bg-white/5 transition-all duration-500 delay-700 ${isLoaded ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-8'}`}>
                <h3 className="text-white/80 font-light text-xl mb-2">Generative UI Streams</h3>
                <p className="text-white/40 text-sm font-mono leading-relaxed mb-4">
                   Interfaces that build themselves based on user intent and context, discarding static templates.
                </p>
                <div className="w-full h-1 bg-white/5 overflow-hidden">
                   <div className="h-full bg-emerald-500/50 w-4/5"></div>
                </div>
                <span className="text-[10px] text-emerald-500/50 font-mono mt-2 block">Progress: 89%</span>
             </div>
          </div>

          {/* LATEST BLOGS (FIELD NOTES) */}
          <div className={`mt-32 transition-all duration-700 delay-300 ${isLoaded ? 'opacity-100' : 'opacity-0'}`}>
            <div className="flex flex-col md:flex-row justify-between items-end mb-12 border-b border-white/10 pb-6 gap-6">
              <div>
                <h2 className="text-3xl md:text-4xl font-light text-white mb-2">Field Notes</h2>
                <p className="text-white/40 text-sm font-mono">Transmissions from the lab.</p>
              </div>
              
              {/* Search Bar */}
              <div className="relative w-full md:w-64">
                <input 
                  type="text" 
                  placeholder="SEARCH_DB..." 
                  value={searchQuery}
                  onChange={(e) => setSearchQuery(e.target.value)}
                  className="w-full bg-white/5 border border-white/10 text-white text-xs font-mono p-3 pl-8 focus:outline-none focus:border-cyan-500/50 transition-colors uppercase tracking-widest placeholder:text-white/20"
                />
                <span className="absolute left-3 top-1/2 -translate-y-1/2 text-white/30 text-xs">πŸ”</span>
              </div>
            </div>

            <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
              {displayedBlogs.map((blog) => (
                <a 
                  key={blog.id} 
                  href={blog.url} 
                  target="_blank" 
                  rel="noreferrer"
                  className="group block"
                >
                  <div className="bg-white/5 border border-white/5 p-6 h-full transition-all duration-300 group-hover:bg-white/10 group-hover:border-white/20 group-hover:-translate-y-1">
                    <div className="flex justify-between items-center mb-4">
                       <span className="text-[10px] font-mono uppercase tracking-widest text-cyan-500/70 border border-cyan-500/20 px-2 py-0.5 rounded-full">{blog.category}</span>
                       <span className="text-[10px] font-mono text-white/30">{blog.date}</span>
                    </div>
                    <h3 className="text-lg md:text-xl font-light text-white/90 group-hover:text-cyan-400 transition-colors leading-snug mb-4">
                      {blog.title}
                    </h3>
                    <div className="flex items-center text-[10px] font-mono uppercase tracking-widest text-white/40 group-hover:text-white transition-colors mt-auto">
                       <span>Read Transmission</span>
                       <span className="ml-2 group-hover:translate-x-1 transition-transform">β†’</span>
                    </div>
                  </div>
                </a>
              ))}
            </div>

            {/* Load More / Pagination */}
            {filteredBlogs.length > visibleCount && (
              <div className="mt-12 flex justify-center">
                <button 
                  onClick={() => setVisibleCount(prev => prev + 3)}
                  className="text-xs font-mono uppercase tracking-[0.2em] text-white/40 hover:text-cyan-400 transition-colors border-b border-white/10 hover:border-cyan-400 pb-1"
                >
                  Load_More_Entries [+]
                </button>
              </div>
            )}
            
            {filteredBlogs.length === 0 && (
              <div className="py-12 text-center border border-dashed border-white/10">
                 <p className="text-white/30 font-mono text-xs">No records found matching query sequence.</p>
              </div>
            )}
          </div>

          {/* Footer Humor */}
          <div className="mt-24 border-t border-white/5 pt-8 text-center">
             <p className="text-white/30 font-mono text-xs">
                "We break things so you don't have to."
             </p>
          </div>

        </div>
      </div>
    </div>
  );
};