arshia-a1 commited on
Commit
e4f3cac
·
verified ·
1 Parent(s): 16a3ceb

تم را مدرن تر کن ومحتوا را افزایش بده محتوای خلاقانه ی سه بعدی اضافه کن

Browse files
Files changed (1) hide show
  1. index.html +344 -47
index.html CHANGED
@@ -24,10 +24,13 @@
24
 
25
  <!-- Three.js for 3D elements -->
26
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
 
 
27
 
28
  <!-- GSAP for advanced animations -->
29
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
30
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
 
31
 
32
  <!-- Custom styling -->
33
  <style>
@@ -108,6 +111,81 @@
108
  height: 100%;
109
  z-index: -1;
110
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
112
  .section-divider {
113
  height: 100px;
@@ -153,6 +231,7 @@
153
  <a href="#services" class="font-medium hover:text-indigo-600 transition-colors">Services</a>
154
  <a href="#team" class="font-medium hover:text-indigo-600 transition-colors">Team</a>
155
  <a href="#projects" class="font-medium hover:text-indigo-600 transition-colors">Projects</a>
 
156
  <a href="#contact" class="font-medium hover:text-indigo-600 transition-colors">Contact</a>
157
  </div>
158
 
@@ -166,9 +245,10 @@
166
  <!-- Hero Section with 3D Background -->
167
  <section id="home" class="relative min-h-screen flex items-center justify-center overflow-hidden">
168
  <div id="three-container"></div>
 
169
  <div class="container mx-auto px-4 text-center z-10">
170
- <h1 class="text-5xl md:text-7xl font-bold mb-6">
171
- <span class="text-gradient">SuperNova</span>
172
  </h1>
173
  <p class="text-xl md:text-2xl mb-8 max-w-3xl mx-auto text-gray-600">
174
  We transform complex ideas into <span class="font-semibold text-indigo-600">stellar digital experiences</span> that push the boundaries of innovation
@@ -177,7 +257,7 @@
177
  Elite Programming Collective
178
  </div>
179
  <div class="flex flex-col sm:flex-row gap-4 justify-center">
180
- <button class="px-8 py-3 bg-indigo-600 text-white rounded-full font-medium hover:bg-indigo-700 transition-colors shadow-lg">
181
  Explore Our Work
182
  </button>
183
  <button class="px-8 py-3 border-2 border-indigo-600 text-indigo-600 rounded-full font-medium hover:bg-indigo-50 transition-colors">
@@ -186,6 +266,19 @@
186
  </div>
187
  </div>
188
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  <div class="absolute bottom-10 left-1/2 transform -translate-x-1/2">
190
  <div class="floating">
191
  <i data-feather="chevron-down" class="text-gray-400"></i>
@@ -193,6 +286,82 @@
193
  </div>
194
  </section>
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  <!-- About Section -->
197
  <section id="about" class="py-20 bg-white">
198
  <div class="container mx-auto px-4">
@@ -295,8 +464,8 @@
295
  </div>
296
  </section>
297
 
298
- <!-- Services Section -->
299
- <section id="services" class="py-20 bg-gray-50">
300
  <div class="section-divider"></div>
301
  <div class="container mx-auto px-4 -mt-20">
302
  <div class="text-center mb-16">
@@ -306,9 +475,9 @@
306
 
307
  <div class="grid md:grid-cols-3 gap-8">
308
  <!-- Service 1 -->
309
- <div class="bg-white rounded-2xl p-8 shadow-lg card-hover">
310
- <div class="w-16 h-16 rounded-full bg-indigo-100 flex items-center justify-center mb-6">
311
- <i data-feather="globe" class="text-indigo-600 text-2xl"></i>
312
  </div>
313
  <h3 class="text-2xl font-bold mb-4">Web Development</h3>
314
  <p class="text-gray-600 mb-6">From responsive websites to complex web applications, we build digital experiences that engage users and drive results.</p>
@@ -329,9 +498,9 @@
329
  </div>
330
 
331
  <!-- Service 2 -->
332
- <div class="bg-white rounded-2xl p-8 shadow-lg card-hover">
333
- <div class="w-16 h-16 rounded-full bg-amber-100 flex items-center justify-center mb-6">
334
- <i data-feather="smartphone" class="text-amber-600 text-2xl"></i>
335
  </div>
336
  <h3 class="text-2xl font-bold mb-4">Mobile Development</h3>
337
  <p class="text-gray-600 mb-6">Native and cross-platform mobile applications that deliver seamless experiences across iOS and Android devices.</p>
@@ -352,9 +521,9 @@
352
  </div>
353
 
354
  <!-- Service 3 -->
355
- <div class="bg-white rounded-2xl p-8 shadow-lg card-hover">
356
- <div class="w-16 h-16 rounded-full bg-purple-100 flex items-center justify-center mb-6">
357
- <i data-feather="database" class="text-purple-600 text-2xl"></i>
358
  </div>
359
  <h3 class="text-2xl font-bold mb-4">Backend & API</h3>
360
  <p class="text-gray-600 mb-6">Robust server architecture, database design, and API development to power your applications with reliability and scale.</p>
@@ -850,43 +1019,120 @@
850
  // Initialize Feather Icons
851
  feather.replace();
852
 
853
- // Initialize Three.js 3D background
854
  document.addEventListener('DOMContentLoaded', function() {
855
- // Three.js scene setup for hero section
856
  const scene = new THREE.Scene();
857
  const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
858
- const renderer = new THREE.WebGLRenderer({ alpha: true });
 
 
 
859
  renderer.setSize(window.innerWidth, window.innerHeight);
 
860
  document.getElementById('three-container').appendChild(renderer.domElement);
861
 
862
- // Create stars
863
  const starGeometry = new THREE.BufferGeometry();
864
- const starCount = 5000;
865
  const positions = new Float32Array(starCount * 3);
 
 
866
 
867
- for (let i = 0; i < starCount * 3; i++) {
868
- positions[i] = (Math.random() - 0.5) * 2000;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
869
  }
870
 
871
  starGeometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
 
 
872
 
873
  const starMaterial = new THREE.PointsMaterial({
874
- color: 0xffffff,
875
  size: 2,
876
- sizeAttenuation: true
 
 
877
  });
878
 
879
  const stars = new THREE.Points(starGeometry, starMaterial);
880
  scene.add(stars);
881
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
882
  camera.position.z = 1;
883
 
884
- // Animation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
885
  function animate() {
886
  requestAnimationFrame(animate);
887
 
888
- stars.rotation.x += 0.0001;
889
- stars.rotation.y += 0.0002;
 
 
 
 
 
 
 
 
890
 
891
  renderer.render(scene, camera);
892
  }
@@ -901,40 +1147,91 @@
901
  });
902
 
903
  // GSAP animations for scroll-triggered elements
904
- gsap.registerPlugin(ScrollTrigger);
905
 
906
- // Animate elements on scroll
907
  gsap.utils.toArray('.card-hover').forEach(card => {
908
  gsap.from(card, {
909
  scrollTrigger: {
910
  trigger: card,
911
- start: "top 80%",
912
- end: "bottom 20%",
913
  toggleActions: "play none none reverse"
914
  },
915
- y: 50,
916
  opacity: 0,
917
- duration: 1,
918
- ease: "power2.out"
919
  });
920
  });
921
 
922
- // Animate stats counters
923
- const counters = document.querySelectorAll('.text-4xl');
924
- counters.forEach(counter => {
925
- const target = parseInt(counter.textContent);
926
- gsap.to(counter, {
927
- scrollTrigger: {
928
- trigger: counter,
929
- start: "top 80%",
930
- toggleActions: "play none none reverse"
931
- },
932
- innerText: target,
933
- duration: 2,
934
- snap: { innerText: 1 },
935
- stagger: 1
 
 
 
 
 
 
 
 
936
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
937
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
938
  });
939
  </script>
940
  </body>
 
24
 
25
  <!-- Three.js for 3D elements -->
26
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
27
+ <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
28
+ <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/loaders/GLTFLoader.js"></script>
29
 
30
  <!-- GSAP for advanced animations -->
31
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
32
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
33
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollToPlugin.min.js"></script>
34
 
35
  <!-- Custom styling -->
36
  <style>
 
111
  height: 100%;
112
  z-index: -1;
113
  }
114
+
115
+ .particle-network {
116
+ position: absolute;
117
+ top: 0;
118
+ left: 0;
119
+ width: 100%;
120
+ height: 100%;
121
+ z-index: -1;
122
+ }
123
+
124
+ .floating-3d {
125
+ transform-style: preserve-3d;
126
+ animation: float3d 6s ease-in-out infinite;
127
+ }
128
+
129
+ @keyframes float3d {
130
+ 0%, 100% { transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0deg); }
131
+ 50% { transform: translate3d(0, -20px, 0) rotate3d(1, 1, 1, 5deg); }
132
+ }
133
+
134
+ .neon-glow {
135
+ box-shadow: 0 0 10px #6366f1, 0 0 20px #6366f1, 0 0 30px #6366f1;
136
+ }
137
+
138
+ .hologram-effect {
139
+ background: linear-gradient(45deg, transparent 30%, rgba(99, 102, 241, 0.1), rgba(245, 158, 11, 0.1);
140
+ backdrop-filter: blur(10px);
141
+ border: 1px solid rgba(255, 255, 255, 0.2);
142
+ position: relative;
143
+ overflow: hidden;
144
+ }
145
+
146
+ .hologram-effect::before {
147
+ content: '';
148
+ position: absolute;
149
+ top: -50%;
150
+ left: -50%;
151
+ width: 200%;
152
+ height: 200%;
153
+ background: conic-gradient(from 0deg, transparent, rgba(99, 102, 241, 0.5), transparent 70%);
154
+ animation: hologram 3s linear infinite;
155
+ }
156
+
157
+ @keyframes hologram {
158
+ 0% { transform: rotate(0deg); }
159
+ 100% { transform: rotate(360deg); }
160
+ }
161
+
162
+ .cyber-grid {
163
+ background-image:
164
+ linear-gradient(rgba(99, 102, 241, 0.1) 1px, transparent 1px),
165
+ linear-gradient(90deg, rgba(99, 102, 241, 0.1) 1px, transparent 1px);
166
+ background-size: 50px 50px;
167
+ }
168
+
169
+ .matrix-rain {
170
+ position: relative;
171
+ overflow: hidden;
172
+ }
173
+
174
+ .matrix-rain::after {
175
+ content: '';
176
+ position: absolute;
177
+ top: -100%;
178
+ left: 0;
179
+ width: 100%;
180
+ height: 100%;
181
+ background: linear-gradient(transparent 70%, rgba(99, 102, 241, 0.3);
182
+ animation: matrixFall 2s linear infinite;
183
+ }
184
+
185
+ @keyframes matrixFall {
186
+ 0% { transform: translateY(-100%); }
187
+ 100% { transform: translateY(100%); }
188
+ }
189
 
190
  .section-divider {
191
  height: 100px;
 
231
  <a href="#services" class="font-medium hover:text-indigo-600 transition-colors">Services</a>
232
  <a href="#team" class="font-medium hover:text-indigo-600 transition-colors">Team</a>
233
  <a href="#projects" class="font-medium hover:text-indigo-600 transition-colors">Projects</a>
234
+ <a href="#showcase" class="font-medium hover:text-indigo-600 transition-colors">3D Showcase</a>
235
  <a href="#contact" class="font-medium hover:text-indigo-600 transition-colors">Contact</a>
236
  </div>
237
 
 
245
  <!-- Hero Section with 3D Background -->
246
  <section id="home" class="relative min-h-screen flex items-center justify-center overflow-hidden">
247
  <div id="three-container"></div>
248
+ <div class="particle-network"></div>
249
  <div class="container mx-auto px-4 text-center z-10">
250
+ <h1 class="text-5xl md:text-7xl font-bold mb-6 floating-3d">
251
+ <span class="text-gradient neon-glow">SuperNova</span>
252
  </h1>
253
  <p class="text-xl md:text-2xl mb-8 max-w-3xl mx-auto text-gray-600">
254
  We transform complex ideas into <span class="font-semibold text-indigo-600">stellar digital experiences</span> that push the boundaries of innovation
 
257
  Elite Programming Collective
258
  </div>
259
  <div class="flex flex-col sm:flex-row gap-4 justify-center">
260
+ <button class="px-8 py-3 bg-indigo-600 text-white rounded-full font-medium hover:bg-indigo-700 transition-colors shadow-lg neon-glow">
261
  Explore Our Work
262
  </button>
263
  <button class="px-8 py-3 border-2 border-indigo-600 text-indigo-600 rounded-full font-medium hover:bg-indigo-50 transition-colors">
 
266
  </div>
267
  </div>
268
 
269
+ <!-- Interactive 3D Elements -->
270
+ <div class="absolute top-20 right-10 w-32 h-32 floating-3d">
271
+ <div class="w-full h-full bg-gradient-to-r from-indigo-500 to-purple-600 rounded-full flex items-center justify-center neon-glow">
272
+ <i data-feather="cpu" class="text-white text-2xl"></i>
273
+ </div>
274
+ </div>
275
+
276
+ <div class="absolute bottom-32 left-10 w-24 h-24 floating-3d" style="animation-delay: 1s">
277
+ <div class="w-full h-full bg-gradient-to-r from-amber-500 to-orange-600 rounded-full flex items-center justify-center neon-glow">
278
+ <i data-feather="zap" class="text-white text-xl"></i>
279
+ </div>
280
+ </div>
281
+
282
  <div class="absolute bottom-10 left-1/2 transform -translate-x-1/2">
283
  <div class="floating">
284
  <i data-feather="chevron-down" class="text-gray-400"></i>
 
286
  </div>
287
  </section>
288
 
289
+ <!-- Interactive 3D Showcase Section -->
290
+ <section id="showcase" class="py-20 bg-gradient-to-br from-gray-900 via-purple-900 to-indigo-900 text-white relative overflow-hidden">
291
+ <div class="cyber-grid absolute inset-0"></div>
292
+ <div class="container mx-auto px-4 relative z-10">
293
+ <div class="text-center mb-16">
294
+ <h2 class="text-4xl font-bold mb-4">3D Interactive Showcase</h2>
295
+ <p class="text-xl max-w-2xl mx-auto">Experience our capabilities through immersive 3D demonstrations</p>
296
+ </div>
297
+
298
+ <div class="max-w-6xl mx-auto">
299
+ <div class="grid md:grid-cols-2 gap-12 items-center">
300
+ <div class="hologram-effect rounded-2xl p-8">
301
+ <div id="showcase-container" class="w-full h-96 bg-black/30 rounded-xl flex items-center justify-center">
302
+ <div class="text-center">
303
+ <i data-feather="cube" class="w-16 h-16 mx-auto mb-4 text-indigo-400"></i>
304
+ <h3 class="text-2xl font-bold mb-4">Interactive 3D Models</h3>
305
+ <p class="text-gray-300 mb-6">Drag to rotate, scroll to zoom</h3>
306
+ <p class="text-sm text-gray-400">Powered by Three.js</p>
307
+ </div>
308
+ </div>
309
+
310
+ <div>
311
+ <h3 class="text-3xl font-bold mb-6">Real-time 3D Visualization</h3>
312
+ <p class="text-lg text-gray-300 mb-6">
313
+ Explore our projects in stunning 3D detail. Each model showcases the technical excellence and creative vision that defines SuperNova.
314
+ </p>
315
+ <div class="grid grid-cols-2 gap-4">
316
+ <div class="bg-white/10 rounded-lg p-4 backdrop-blur-sm">
317
+ <h4 class="font-bold text-lg mb-3">Features:</h4>
318
+ <ul class="space-y-2 text-gray-300">
319
+ <li class="flex items-center">
320
+ <i data-feather="rotate-cw" class="w-4 h-4 mr-2 text-indigo-400"></i>
321
+ <span>360° Product Views</span>
322
+ </li>
323
+ <li class="flex items-center">
324
+ <i data-feather="zoom-in" class="w-4 h-4 mr-2 text-amber-400"></i>
325
+ <span>Interactive Prototypes</span>
326
+ </li>
327
+ <li class="flex items-center">
328
+ <i data-feather="layers" class="w-4 h-4 mr-2 text-green-400"></i>
329
+ <span>Real-time Animations</span>
330
+ </li>
331
+ <li class="flex items-center">
332
+ <i data-feather="code" class="w-4 h-4 mr-2 text-purple-400"></i>
333
+ <span>WebGL Powered</span>
334
+ </li>
335
+ </ul>
336
+ </div>
337
+ </div>
338
+ </div>
339
+
340
+ <div class="grid md:grid-cols-3 gap-6 mt-12">
341
+ <div class="bg-white/5 rounded-xl p-6 backdrop-blur-sm border border-white/10">
342
+ <div class="w-12 h-12 rounded-full bg-indigo-500/20 flex items-center justify-center mr-4">
343
+ <i data-feather="eye" class="text-indigo-400"></i>
344
+ <h4 class="font-bold mt-3">Architecture Visualization</h4>
345
+ <p class="text-sm text-gray-400 mt-2">3D building models with interactive elements</p>
346
+ </div>
347
+ <div class="bg-white/5 rounded-xl p-6 backdrop-blur-sm border border-white/10">
348
+ <div class="w-12 h-12 rounded-full bg-amber-500/20 flex items-center justify-center mr-4">
349
+ <i data-feather="box" class="text-amber-400"></i>
350
+ <h4 class="font-bold mt-3">Product Design</h4>
351
+ <p class="text-sm text-gray-400 mt-2">Detailed 3D product showcases</p>
352
+ </div>
353
+ <div class="bg-white/5 rounded-xl p-6 backdrop-blur-sm border border-white/10">
354
+ <div class="w-12 h-12 rounded-full bg-green-500/20 flex items-center justify-center mr-4">
355
+ <i data-feather="globe" class="text-green-400"></i>
356
+ <h4 class="font-bold mt-3">Data Visualization</h4>
357
+ <p class="text-sm text-gray-400 mt-2">Interactive data in 3D space</p>
358
+ </div>
359
+ </div>
360
+ </div>
361
+ </div>
362
+ </div>
363
+ </section>
364
+
365
  <!-- About Section -->
366
  <section id="about" class="py-20 bg-white">
367
  <div class="container mx-auto px-4">
 
464
  </div>
465
  </section>
466
 
467
+ <!-- Services Section with 3D Icons -->
468
+ <section id="services" class="py-20 bg-gradient-to-tr from-indigo-50 via-white to-amber-50">
469
  <div class="section-divider"></div>
470
  <div class="container mx-auto px-4 -mt-20">
471
  <div class="text-center mb-16">
 
475
 
476
  <div class="grid md:grid-cols-3 gap-8">
477
  <!-- Service 1 -->
478
+ <div class="bg-white/80 backdrop-blur-sm rounded-2xl p-8 shadow-xl card-hover floating-3d">
479
+ <div class="w-20 h-20 rounded-full bg-gradient-to-r from-indigo-500 to-purple-600 flex items-center justify-center mb-6 neon-glow">
480
+ <i data-feather="globe" class="text-white text-3xl"></i>
481
  </div>
482
  <h3 class="text-2xl font-bold mb-4">Web Development</h3>
483
  <p class="text-gray-600 mb-6">From responsive websites to complex web applications, we build digital experiences that engage users and drive results.</p>
 
498
  </div>
499
 
500
  <!-- Service 2 -->
501
+ <div class="bg-white/80 backdrop-blur-sm rounded-2xl p-8 shadow-xl card-hover floating-3d" style="animation-delay: 0.5s">
502
+ <div class="w-20 h-20 rounded-full bg-gradient-to-r from-amber-500 to-orange-600 flex items-center justify-center mb-6 neon-glow">
503
+ <i data-feather="smartphone" class="text-white text-3xl"></i>
504
  </div>
505
  <h3 class="text-2xl font-bold mb-4">Mobile Development</h3>
506
  <p class="text-gray-600 mb-6">Native and cross-platform mobile applications that deliver seamless experiences across iOS and Android devices.</p>
 
521
  </div>
522
 
523
  <!-- Service 3 -->
524
+ <div class="bg-white/80 backdrop-blur-sm rounded-2xl p-8 shadow-xl card-hover floating-3d" style="animation-delay: 1s">
525
+ <div class="w-20 h-20 rounded-full bg-gradient-to-r from-purple-500 to-pink-600 flex items-center justify-center mb-6 neon-glow">
526
+ <i data-feather="database" class="text-white text-3xl"></i>
527
  </div>
528
  <h3 class="text-2xl font-bold mb-4">Backend & API</h3>
529
  <p class="text-gray-600 mb-6">Robust server architecture, database design, and API development to power your applications with reliability and scale.</p>
 
1019
  // Initialize Feather Icons
1020
  feather.replace();
1021
 
1022
+ // Advanced Three.js 3D Scene
1023
  document.addEventListener('DOMContentLoaded', function() {
1024
+ // Main Hero Scene
1025
  const scene = new THREE.Scene();
1026
  const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
1027
+ const renderer = new THREE.WebGLRenderer({
1028
+ alpha: true,
1029
+ antialias: true
1030
+ });
1031
  renderer.setSize(window.innerWidth, window.innerHeight);
1032
+ renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
1033
  document.getElementById('three-container').appendChild(renderer.domElement);
1034
 
1035
+ // Enhanced stars with different sizes and colors
1036
  const starGeometry = new THREE.BufferGeometry();
1037
+ const starCount = 8000;
1038
  const positions = new Float32Array(starCount * 3);
1039
+ const colors = new Float32Array(starCount * 3);
1040
+ const sizes = new Float32Array(starCount);
1041
 
1042
+ const color = new THREE.Color();
1043
+
1044
+ for (let i = 0; i < starCount; i++) {
1045
+ const i3 = i * 3;
1046
+ positions[i3] = (Math.random() - 0.5) * 3000;
1047
+ positions[i3 + 1] = (Math.random() - 0.5) * 3000;
1048
+ positions[i3 + 2] = (Math.random() - 0.5) * 3000;
1049
+
1050
+ // Color variation
1051
+ const hue = Math.random() * 0.1 + 0.6; // Blue to purple range
1052
+ color.setHSL(hue, 0.8, 0.5 + Math.random() * 0.5);
1053
+ colors[i3] = color.r;
1054
+ colors[i3 + 1] = color.g;
1055
+ colors[i3 + 2] = color.b;
1056
+
1057
+ // Size variation
1058
+ sizes[i] = Math.random() * 3 + 1;
1059
  }
1060
 
1061
  starGeometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
1062
+ starGeometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));
1063
+ starGeometry.setAttribute('size', new THREE.BufferAttribute(sizes, 1));
1064
 
1065
  const starMaterial = new THREE.PointsMaterial({
 
1066
  size: 2,
1067
+ sizeAttenuation: true,
1068
+ vertexColors: true,
1069
+ transparent: true
1070
  });
1071
 
1072
  const stars = new THREE.Points(starGeometry, starMaterial);
1073
  scene.add(stars);
1074
 
1075
+ // Add floating geometric shapes
1076
+ const geometry = new THREE.IcosahedronGeometry(50, 0);
1077
+ const material = new THREE.MeshPhongMaterial({
1078
+ color: 0x6366f1,
1079
+ transparent: true,
1080
+ opacity: 0.7
1081
+ });
1082
+ const mesh = new THREE.Mesh(geometry, material);
1083
+ mesh.position.set(100, 100, -200);
1084
+ scene.add(mesh);
1085
+
1086
+ // Add ambient light
1087
+ const ambientLight = new THREE.AmbientLight(0x404040, 0.4);
1088
+ scene.add(ambientLight);
1089
+
1090
+ // Add directional light
1091
+ const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8);
1092
+ directionalLight.position.set(1, 1, 1);
1093
+ scene.add(directionalLight);
1094
+
1095
  camera.position.z = 1;
1096
 
1097
+ // Particle Network Animation
1098
+ const particleScene = new THREE.Scene();
1099
+ const particleCamera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
1100
+
1101
+ // Create particle system
1102
+ const particleCount = 1500;
1103
+ const particleGeometry = new THREE.BufferGeometry();
1104
+ const particlePositions = new Float32Array(particleCount * 3);
1105
+
1106
+ for (let i = 0; i < particleCount * 3; i++) {
1107
+ particlePositions[i] = (Math.random() - 0.5) * 2000;
1108
+ }
1109
+
1110
+ particleGeometry.setAttribute('position', new THREE.BufferAttribute(particlePositions, 3));
1111
+
1112
+ const particleMaterial = new THREE.PointsMaterial({
1113
+ color: 0x6366f1,
1114
+ size: 2,
1115
+ transparent: true,
1116
+ opacity: 0.6
1117
+ });
1118
+
1119
+ const particles = new THREE.Points(particleGeometry, particleMaterial);
1120
+ particleScene.add(particles);
1121
+
1122
+ // Animation function
1123
  function animate() {
1124
  requestAnimationFrame(animate);
1125
 
1126
+ // Rotate stars
1127
+ stars.rotation.x += 0.0002;
1128
+ stars.rotation.y += 0.0003;
1129
+
1130
+ // Animate floating mesh
1131
+ mesh.rotation.x += 0.005;
1132
+ mesh.rotation.y += 0.008;
1133
+
1134
+ // Animate particles
1135
+ particles.rotation.y += 0.001;
1136
 
1137
  renderer.render(scene, camera);
1138
  }
 
1147
  });
1148
 
1149
  // GSAP animations for scroll-triggered elements
1150
+ gsap.registerPlugin(ScrollTrigger, ScrollToPlugin);
1151
 
1152
+ // Enhanced scroll animations
1153
  gsap.utils.toArray('.card-hover').forEach(card => {
1154
  gsap.from(card, {
1155
  scrollTrigger: {
1156
  trigger: card,
1157
+ start: "top 85%",
1158
+ end: "bottom 15%",
1159
  toggleActions: "play none none reverse"
1160
  },
1161
+ y: 80,
1162
  opacity: 0,
1163
+ duration: 1.2,
1164
+ ease: "power3.out"
1165
  });
1166
  });
1167
 
1168
+ // 3D Showcase Scene
1169
+ const showcaseScene = new THREE.Scene();
1170
+ const showcaseCamera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
1171
+ const showcaseRenderer = new THREE.WebGLRenderer({
1172
+ alpha: true,
1173
+ antialias: true
1174
+ });
1175
+
1176
+ if (document.getElementById('showcase-container')) {
1177
+ showcaseRenderer.setSize(document.getElementById('showcase-container').offsetWidth,
1178
+ document.getElementById('showcase-container').offsetHeight
1179
+ );
1180
+ document.getElementById('showcase-container').appendChild(showcaseRenderer.domElement);
1181
+
1182
+ // Add showcase objects
1183
+ const showcaseGeometry = new THREE.TorusKnotGeometry(10, 3, 100, 16);
1184
+ const showcaseMaterial = new THREE.MeshPhysicalMaterial({
1185
+ color: 0x6366f1,
1186
+ metalness: 0.8,
1187
+ roughness: 0.2,
1188
+ clearcoat: 1,
1189
+ clearcoatRoughness: 0.1
1190
  });
1191
+ const showcaseMesh = new THREE.Mesh(showcaseGeometry, showcaseMaterial);
1192
+ showcaseScene.add(showcaseMesh);
1193
+
1194
+ // Add showcase lighting
1195
+ const showcaseLight = new THREE.DirectionalLight(0xffffff, 1);
1196
+ showcaseLight.position.set(5, 5, 5);
1197
+ showcaseScene.add(showcaseLight);
1198
+
1199
+ showcaseCamera.position.z = 30;
1200
+
1201
+ function animateShowcase() {
1202
+ requestAnimationFrame(animateShowcase);
1203
+ showcaseMesh.rotation.x += 0.01;
1204
+ showcaseMesh.rotation.y += 0.005;
1205
+
1206
+ showcaseRenderer.render(showcaseScene, showcaseCamera);
1207
+ }
1208
+
1209
+ // Interactive cursor effects
1210
+ document.addEventListener('mousemove', function(e) {
1211
+ const mouseX = e.clientX / window.innerWidth - 0.5;
1212
+ const mouseY = e.clientY / window.innerHeight - 0.5;
1213
+
1214
+ if (mesh) {
1215
+ mesh.rotation.y = mouseX * 0.5;
1216
+ mesh.rotation.x = mouseY * 0.5;
1217
+ }
1218
  });
1219
+
1220
+ // Enhanced typewriter effect
1221
+ const typewriterElement = document.querySelector('.typewriter');
1222
+ if (typewriterElement) {
1223
+ const text = typewriterElement.textContent;
1224
+ typewriterElement.textContent = '';
1225
+ let i = 0;
1226
+
1227
+ function typeWriter() {
1228
+ if (i < text.length) {
1229
+ typewriterElement.textContent += text.charAt(i);
1230
+ i++;
1231
+ setTimeout(typeWriter, 100);
1232
+ }
1233
+ typeWriter();
1234
+ }
1235
  });
1236
  </script>
1237
  </body>