Testing347 commited on
Commit
41ee2ed
·
verified ·
1 Parent(s): 37e6fe7

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +132 -9
index.html CHANGED
@@ -152,6 +152,13 @@
152
  box-shadow: 0 0 0 1px rgba(99,102,241,0.22), 0 0 28px rgba(99,102,241,0.08);
153
  transform: translateY(-1px);
154
  }
 
 
 
 
 
 
 
155
  </style>
156
  </head>
157
 
@@ -160,7 +167,7 @@
160
  <div id="vanta-bg" class="fixed top-0 left-0 w-full h-full z-0"></div>
161
 
162
  <!-- NAVIGATION BAR -->
163
- <nav class="relative z-10 py-6 px-8 flex justify-between items-center backdrop-blur-sm">
164
  <!-- Logo + mini orb -->
165
  <div class="flex items-center space-x-2">
166
  <a href="index.html" class="flex items-center space-x-2">
@@ -171,8 +178,23 @@
171
  </a>
172
  </div>
173
 
 
 
 
 
 
 
 
 
 
 
174
  <!-- Right controls: single Constellation glyph + Access -->
175
  <div class="flex items-center space-x-3">
 
 
 
 
 
176
  <!-- Constellation Glyph (opens the Lab Navigator) -->
177
  <button id="lab-nav-btn"
178
  class="w-10 h-10 rounded-full border border-indigo-500/40 bg-gray-900/20 hover:bg-gray-900/40 backdrop-blur-sm transition flex items-center justify-center"
@@ -188,6 +210,26 @@
188
  </div>
189
  </nav>
190
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  <!-- HERO SECTION -->
192
  <section class="relative z-10 min-h-screen flex flex-col justify-center items-center px-6 py-20 text-center">
193
  <div class="max-w-4xl mx-auto">
@@ -209,8 +251,8 @@
209
  </div>
210
 
211
  <div class="mt-24 w-64 h-64 relative conscious-element" id="conscious-orb-container">
212
- <svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" class="w-full h-full">
213
- <canvas id="orb-neural-canvas" class="absolute top-0 left-0 w-full h-full pointer-events-none"></canvas>
214
  <circle cx="100" cy="100" r="80" fill="url(#orbGradient)" filter="url(#orbGlow)" />
215
  <path d="M100,20 Q120,50 100,80 Q80,50 100,20 Z" fill="rgba(255,255,255,0.1)" />
216
  <path d="M100,180 Q80,150 100,120 Q120,150 100,180 Z" fill="rgba(255,255,255,0.1)" />
@@ -1538,7 +1580,10 @@
1538
  SUPER BOLD & LARGE HEARTBEAT NEURAL ANIMATION
1539
  ----------------------------------------------------------------- */
1540
  const neuralCanvas = document.getElementById('orb-neural-canvas');
1541
- const neuralCtx = neuralCanvas.getContext('2d');
 
 
 
1542
 
1543
  function resizeNeuralCanvas() {
1544
  if (neuralCanvas && neuralCanvas.parentElement) {
@@ -1546,15 +1591,19 @@
1546
  neuralCanvas.height = neuralCanvas.parentElement.clientHeight;
1547
  }
1548
  }
1549
- resizeNeuralCanvas();
1550
- window.addEventListener('resize', () => {
1551
  resizeNeuralCanvas();
1552
- setupNeurons();
1553
- });
 
 
 
1554
 
1555
  const neuronCount = 22;
1556
  const neurons = [];
1557
  function setupNeurons() {
 
1558
  neurons.length = 0;
1559
  const w = neuralCanvas.width;
1560
  const h = neuralCanvas.height;
@@ -1570,7 +1619,9 @@
1570
  });
1571
  }
1572
  }
1573
- setupNeurons();
 
 
1574
 
1575
  function drawNeuralActivity(time) {
1576
  if (!neuralCanvas || !neuralCtx) return;
@@ -1910,8 +1961,80 @@
1910
  closeAccessModal(true);
1911
  return;
1912
  }
 
 
 
 
1913
  });
1914
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1915
  // Initial dossier render
1916
  renderDossier('start');
1917
  </script>
 
152
  box-shadow: 0 0 0 1px rgba(99,102,241,0.22), 0 0 28px rgba(99,102,241,0.08);
153
  transform: translateY(-1px);
154
  }
155
+
156
+ /* Mobile menu - hide on desktop */
157
+ @media (min-width: 768px) {
158
+ #mobile-menu {
159
+ display: none !important;
160
+ }
161
+ }
162
  </style>
163
  </head>
164
 
 
167
  <div id="vanta-bg" class="fixed top-0 left-0 w-full h-full z-0"></div>
168
 
169
  <!-- NAVIGATION BAR -->
170
+ <nav class="relative z-10 py-6 px-8 flex justify-between items-center backdrop-blur-sm bg-black/50">
171
  <!-- Logo + mini orb -->
172
  <div class="flex items-center space-x-2">
173
  <a href="index.html" class="flex items-center space-x-2">
 
178
  </a>
179
  </div>
180
 
181
+ <!-- Navigation Links (Desktop) -->
182
+ <div class="hidden md:flex items-center space-x-6">
183
+ <a href="about.html" class="text-gray-300 hover:text-indigo-400 transition">About</a>
184
+ <a href="research.html" class="text-gray-300 hover:text-indigo-400 transition">Research</a>
185
+ <a href="capabilities.html" class="text-gray-300 hover:text-indigo-400 transition">Capabilities</a>
186
+ <a href="consciousness.html" class="text-gray-300 hover:text-indigo-400 transition">Consciousness</a>
187
+ <a href="chat.html" class="text-gray-300 hover:text-indigo-400 transition">Chat</a>
188
+ <a href="contact.html" class="text-gray-300 hover:text-indigo-400 transition">Contact</a>
189
+ </div>
190
+
191
  <!-- Right controls: single Constellation glyph + Access -->
192
  <div class="flex items-center space-x-3">
193
+ <!-- Mobile Menu Button -->
194
+ <button id="mobile-menu-btn" class="md:hidden w-10 h-10 rounded-full border border-indigo-500/40 bg-gray-900/20 hover:bg-gray-900/40 backdrop-blur-sm transition flex items-center justify-center" aria-label="Toggle Menu">
195
+ <i class="fas fa-bars text-indigo-300"></i>
196
+ </button>
197
+
198
  <!-- Constellation Glyph (opens the Lab Navigator) -->
199
  <button id="lab-nav-btn"
200
  class="w-10 h-10 rounded-full border border-indigo-500/40 bg-gray-900/20 hover:bg-gray-900/40 backdrop-blur-sm transition flex items-center justify-center"
 
210
  </div>
211
  </nav>
212
 
213
+ <!-- Mobile Menu Dropdown -->
214
+ <div id="mobile-menu" class="fixed top-[73px] left-0 right-0 z-[100] bg-black/95 backdrop-blur-md border-b border-gray-800 modal modal-hidden" style="display: none;">
215
+ <div class="px-6 py-4">
216
+ <div class="flex justify-between items-center mb-6">
217
+ <span class="text-lg font-semibold">Menu</span>
218
+ <button id="mobile-menu-close" class="w-10 h-10 rounded-full border border-gray-700 bg-gray-900/50 hover:bg-gray-900/70 transition flex items-center justify-center" aria-label="Close Menu">
219
+ <i class="fas fa-times text-gray-300"></i>
220
+ </button>
221
+ </div>
222
+ <div class="flex flex-col space-y-4 pb-6">
223
+ <a href="about.html" class="text-gray-300 hover:text-indigo-400 transition py-2">About</a>
224
+ <a href="research.html" class="text-gray-300 hover:text-indigo-400 transition py-2">Research</a>
225
+ <a href="capabilities.html" class="text-gray-300 hover:text-indigo-400 transition py-2">Capabilities</a>
226
+ <a href="consciousness.html" class="text-gray-300 hover:text-indigo-400 transition py-2">Consciousness</a>
227
+ <a href="chat.html" class="text-gray-300 hover:text-indigo-400 transition py-2">Chat</a>
228
+ <a href="contact.html" class="text-gray-300 hover:text-indigo-400 transition py-2">Contact</a>
229
+ </div>
230
+ </div>
231
+ </div>
232
+
233
  <!-- HERO SECTION -->
234
  <section class="relative z-10 min-h-screen flex flex-col justify-center items-center px-6 py-20 text-center">
235
  <div class="max-w-4xl mx-auto">
 
251
  </div>
252
 
253
  <div class="mt-24 w-64 h-64 relative conscious-element" id="conscious-orb-container">
254
+ <canvas id="orb-neural-canvas" class="absolute top-0 left-0 w-full h-full pointer-events-none z-10"></canvas>
255
+ <svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" class="w-full h-full relative z-20">
256
  <circle cx="100" cy="100" r="80" fill="url(#orbGradient)" filter="url(#orbGlow)" />
257
  <path d="M100,20 Q120,50 100,80 Q80,50 100,20 Z" fill="rgba(255,255,255,0.1)" />
258
  <path d="M100,180 Q80,150 100,120 Q120,150 100,180 Z" fill="rgba(255,255,255,0.1)" />
 
1580
  SUPER BOLD & LARGE HEARTBEAT NEURAL ANIMATION
1581
  ----------------------------------------------------------------- */
1582
  const neuralCanvas = document.getElementById('orb-neural-canvas');
1583
+ if (!neuralCanvas) {
1584
+ console.warn('Neural canvas element not found');
1585
+ }
1586
+ const neuralCtx = neuralCanvas ? neuralCanvas.getContext('2d') : null;
1587
 
1588
  function resizeNeuralCanvas() {
1589
  if (neuralCanvas && neuralCanvas.parentElement) {
 
1591
  neuralCanvas.height = neuralCanvas.parentElement.clientHeight;
1592
  }
1593
  }
1594
+
1595
+ if (neuralCanvas) {
1596
  resizeNeuralCanvas();
1597
+ window.addEventListener('resize', () => {
1598
+ resizeNeuralCanvas();
1599
+ setupNeurons();
1600
+ });
1601
+ }
1602
 
1603
  const neuronCount = 22;
1604
  const neurons = [];
1605
  function setupNeurons() {
1606
+ if (!neuralCanvas) return;
1607
  neurons.length = 0;
1608
  const w = neuralCanvas.width;
1609
  const h = neuralCanvas.height;
 
1619
  });
1620
  }
1621
  }
1622
+ if (neuralCanvas && neuralCtx) {
1623
+ setupNeurons();
1624
+ }
1625
 
1626
  function drawNeuralActivity(time) {
1627
  if (!neuralCanvas || !neuralCtx) return;
 
1961
  closeAccessModal(true);
1962
  return;
1963
  }
1964
+ if (mobileMenu && !mobileMenu.classList.contains('modal-hidden')) {
1965
+ toggleMobileMenu(false);
1966
+ return;
1967
+ }
1968
  });
1969
 
1970
+ /* -----------------------------------------------------------------
1971
+ MOBILE MENU TOGGLE
1972
+ ----------------------------------------------------------------- */
1973
+ const mobileMenuBtn = document.getElementById('mobile-menu-btn');
1974
+ const mobileMenu = document.getElementById('mobile-menu');
1975
+ const mobileMenuClose = document.getElementById('mobile-menu-close');
1976
+
1977
+ function toggleMobileMenu(show) {
1978
+ if (!mobileMenu) return;
1979
+
1980
+ // Only show on mobile screens
1981
+ if (window.innerWidth >= 768) {
1982
+ return; // Don't show on desktop
1983
+ }
1984
+
1985
+ if (show) {
1986
+ mobileMenu.style.display = 'block';
1987
+ // Force a reflow
1988
+ mobileMenu.offsetHeight;
1989
+ mobileMenu.classList.remove('modal-hidden');
1990
+ mobileMenu.classList.add('modal-visible');
1991
+ document.body.style.overflow = 'hidden';
1992
+ } else {
1993
+ mobileMenu.classList.remove('modal-visible');
1994
+ mobileMenu.classList.add('modal-hidden');
1995
+ setTimeout(() => {
1996
+ if (mobileMenu.classList.contains('modal-hidden')) {
1997
+ mobileMenu.style.display = 'none';
1998
+ }
1999
+ }, 300);
2000
+ document.body.style.overflow = '';
2001
+ }
2002
+ }
2003
+
2004
+ if (mobileMenuBtn) {
2005
+ mobileMenuBtn.addEventListener('click', (e) => {
2006
+ e.preventDefault();
2007
+ e.stopPropagation();
2008
+ toggleMobileMenu(true);
2009
+ });
2010
+ }
2011
+
2012
+ if (mobileMenuClose) {
2013
+ mobileMenuClose.addEventListener('click', (e) => {
2014
+ e.preventDefault();
2015
+ e.stopPropagation();
2016
+ toggleMobileMenu(false);
2017
+ });
2018
+ }
2019
+
2020
+ if (mobileMenu) {
2021
+ mobileMenu.addEventListener('click', (e) => {
2022
+ if (e.target === mobileMenu) {
2023
+ toggleMobileMenu(false);
2024
+ }
2025
+ });
2026
+ }
2027
+
2028
+ // Close mobile menu when clicking on a link
2029
+ if (mobileMenu) {
2030
+ const mobileMenuLinks = mobileMenu.querySelectorAll('a');
2031
+ mobileMenuLinks.forEach(link => {
2032
+ link.addEventListener('click', () => {
2033
+ toggleMobileMenu(false);
2034
+ });
2035
+ });
2036
+ }
2037
+
2038
  // Initial dossier render
2039
  renderDossier('start');
2040
  </script>