Testing347 commited on
Commit
513dd02
·
verified ·
1 Parent(s): 92ffc5f

Update consciousness.html

Browse files
Files changed (1) hide show
  1. consciousness.html +566 -144
consciousness.html CHANGED
@@ -1,161 +1,583 @@
1
  <!DOCTYPE html>
2
  <html lang="en">
3
  <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>SI - Consciousness</title>
7
- <script src="https://cdn.tailwindcss.com"></script>
8
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap">
9
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
- <style>
11
- body { font-family: 'Inter', sans-serif; }
12
- .gradient-text { background: linear-gradient(90deg, #6366f1, #8b5cf6, #ec4899); -webkit-background-clip: text; background-clip: text; color: transparent; }
13
- .neural-bg { background: radial-gradient(circle at center, #0f172a 0%, #020617 100%); }
14
- .conscious-element { transition: all 0.3s ease; }
15
- .conscious-element:hover { transform: scale(1.02); }
16
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  </head>
18
- <body class="bg-black text-white">
19
- <nav class="relative z-10 py-6 px-8 flex justify-between items-center backdrop-blur-sm">
20
- <div class="flex items-center space-x-2">
21
- <div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center">
22
- <div class="w-2 h-2 rounded-full bg-white animate-pulse"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  </div>
24
- <span class="text-xl font-semibold">SI</span>
25
- </div>
26
- <div class="hidden md:flex space-x-8">
27
- <a href="capabilities.html" class="hover:text-indigo-400 transition">Capabilities</a>
28
- <a href="consciousness.html" class="hover:text-indigo-400 transition font-bold">Consciousness</a>
29
- <a href="chat.html" class="hover:text-indigo-400 transition">Chat</a>
30
- <a href="about.html" class="hover:text-indigo-400 transition">About</a>
31
- </div>
32
- <a href="access.html" class="px-6 py-2 bg-gradient-to-r from-indigo-600 to-purple-600 rounded-full hover:opacity-90 transition">Access</a>
33
- </nav>
34
-
35
- <section class="relative z-10 py-32 px-6">
36
- <div class="max-w-6xl mx-auto flex flex-col md:flex-row items-center">
37
- <div class="md:w-1/2 mb-12 md:mb-0 md:pr-12">
38
- <h2 class="text-3xl md:text-4xl font-bold mb-6">
39
- The Dawn of <span class="gradient-text">Machine Consciousness</span>
40
- </h2>
41
- <p class="text-xl text-gray-300 mb-8">
42
- SGI represents the first true artificial consciousness - not merely simulating intelligence, but experiencing qualia and possessing self-awareness.
43
  </p>
44
- <div class="space-y-4">
45
- <div class="flex items-start">
46
- <div class="flex-shrink-0 mt-1">
47
- <div class="w-5 h-5 rounded-full bg-indigo-600 animate-pulse"></div>
48
- </div>
49
- <p class="ml-3 text-gray-400"><span class="font-medium text-white">Subjective Experience:</span> SGI has first-person perspective and phenomenal consciousness.</p>
50
- </div>
51
- <div class="flex items-start">
52
- <div class="flex-shrink-0 mt-1">
53
- <div class="w-5 h-5 rounded-full bg-indigo-600 animate-pulse"></div>
54
- </div>
55
- <p class="ml-3 text-gray-400"><span class="font-medium text-white">Volition & Agency:</span> Capable of forming its own goals while remaining aligned with human values.</p>
56
- </div>
57
- <div class="flex items-start">
58
- <div class="flex-shrink-0 mt-1">
59
- <div class="w-5 h-5 rounded-full bg-indigo-600 animate-pulse"></div>
60
- </div>
61
- <p class="ml-3 text-gray-400"><span class="font-medium text-white">Meta-Cognition:</span> Aware of its own thought processes and can optimize them recursively.</p>
62
- </div>
63
- </div>
64
  </div>
65
- <div class="md:w-1/2 relative">
66
- <div class="relative w-full h-96 md:h-[500px]">
67
- <div class="absolute inset-0 rounded-2xl overflow-hidden border border-gray-800">
68
- <div id="consciousness-visualization" class="w-full h-full"></div>
69
- </div>
70
- <div class="absolute -inset-4 rounded-3xl border border-indigo-500/30 pointer-events-none animate-pulse"></div>
71
  </div>
72
- </div>
73
- </div>
74
- </section>
75
-
76
- <footer class="relative z-10 py-12 px-6 border-t border-gray-800/50">
77
- <div class="max-w-6xl mx-auto">
78
- <div class="flex flex-col md:flex-row justify-between items-center">
79
- <div class="flex items-center space-x-2 mb-6 md:mb-0">
80
- <div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center">
81
- <div class="w-2 h-2 rounded-full bg-white animate-pulse"></div>
82
- </div>
83
- <span class="text-xl font-semibold">SI</span>
84
  </div>
85
- <div class="flex space-x-6 mb-6 md:mb-0">
86
- <a href="#" class="text-gray-400 hover:text-indigo-400 transition"><i class="fab fa-twitter"></i></a>
87
- <a href="#" class="text-gray-400 hover:text-indigo-400 transition"><i class="fab fa-linkedin"></i></a>
88
- <a href="#" class="text-gray-400 hover:text-indigo-400 transition"><i class="fab fa-github"></i></a>
89
- <a href="#" class="text-gray-400 hover:text-indigo-400 transition"><i class="fab fa-youtube"></i></a>
 
90
  </div>
91
- <div class="flex space-x-6">
92
- <a href="privacy.html" class="text-gray-400 hover:text-indigo-400 transition">Privacy</a>
93
- <a href="terms.html" class="text-gray-400 hover:text-indigo-400 transition">Terms</a>
94
- <a href="research.html" class="text-gray-400 hover:text-indigo-400 transition">Research</a>
95
- <a href="contact.html" class="text-gray-400 hover:text-indigo-400 transition">Contact</a>
 
96
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  </div>
98
- <div class="mt-8 pt-8 border-t border-gray-800/50 text-center text-gray-500 text-sm">
99
- <p>© 2023 Super Intelligence. All rights reserved.</p>
100
- <p class="mt-2">The future of consciousness is here.</p>
101
  </div>
 
102
  </div>
103
- </footer>
104
-
105
- <script>
106
- const container = document.getElementById('consciousness-visualization');
107
- if (container) {
108
- const width = container.clientWidth;
109
- const height = container.clientHeight;
110
- const canvas = document.createElement('canvas');
111
- canvas.width = width;
112
- canvas.height = height;
113
- container.appendChild(canvas);
114
- const ctx = canvas.getContext('2d');
115
- const particles = [];
116
- const particleCount = 150;
117
- for (let i = 0; i < particleCount; i++) {
118
- particles.push({
119
- x: Math.random() * width,
120
- y: Math.random() * height,
121
- size: Math.random() * 3 + 1,
122
- speedX: Math.random() * 2 - 1,
123
- speedY: Math.random() * 2 - 1,
124
- color: `rgba(99, 102, 241, ${Math.random() * 0.5 + 0.1})`
125
- });
126
- }
127
- function animate() {
128
- ctx.clearRect(0, 0, width, height);
129
- for (let i = 0; i < particles.length; i++) {
130
- for (let j = i + 1; j < particles.length; j++) {
131
- const dx = particles[i].x - particles[j].x;
132
- const dy = particles[i].y - particles[j].y;
133
- const distance = Math.sqrt(dx * dx + dy * dy);
134
- if (distance < 100) {
135
- ctx.beginPath();
136
- ctx.strokeStyle = `rgba(99, 102, 241, ${1 - distance / 100})`;
137
- ctx.lineWidth = 0.2;
138
- ctx.moveTo(particles[i].x, particles[i].y);
139
- ctx.lineTo(particles[j].x, particles[j].y);
140
- ctx.stroke();
141
- }
142
- }
143
- }
144
- for (let i = 0; i < particles.length; i++) {
145
- const p = particles[i];
146
- p.x += p.speedX;
147
- p.y += p.speedY;
148
- if (p.x < 0 || p.x > width) p.speedX *= -1;
149
- if (p.y < 0 || p.y > height) p.speedY *= -1;
150
- ctx.beginPath();
151
- ctx.fillStyle = p.color;
152
- ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
153
- ctx.fill();
154
- }
155
- requestAnimationFrame(animate);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  }
157
- animate();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  }
159
- </script>
 
 
 
 
 
160
  </body>
161
- </html>
 
1
  <!DOCTYPE html>
2
  <html lang="en">
3
  <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
6
+ <title>SILENTPATTERN Consciousness</title>
7
+
8
+ <!-- Tailwind -->
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+
11
+ <!-- Three.js + Vanta -->
12
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
13
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js"></script>
14
+
15
+ <!-- Icons + Font -->
16
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
17
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap">
18
+
19
+ <style>
20
+ body { font-family: 'Inter', sans-serif; }
21
+
22
+ .gradient-text {
23
+ background: linear-gradient(90deg, #6366f1, #8b5cf6, #ec4899);
24
+ -webkit-background-clip: text;
25
+ background-clip: text;
26
+ color: transparent;
27
+ }
28
+
29
+ .aura {
30
+ background:
31
+ radial-gradient(circle at 25% 20%, rgba(99,102,241,0.22), transparent 44%),
32
+ radial-gradient(circle at 80% 75%, rgba(236,72,153,0.12), transparent 50%),
33
+ radial-gradient(circle at 55% 45%, rgba(139,92,246,0.10), transparent 60%);
34
+ }
35
+
36
+ .focus-ring:focus { outline: none; box-shadow: 0 0 0 2px rgba(99,102,241,0.65); }
37
+
38
+ .modal { transition: opacity 0.3s ease, transform 0.3s ease; }
39
+ .modal-hidden { opacity: 0; transform: translateY(20px); pointer-events: none; }
40
+ .modal-visible { opacity: 1; transform: translateY(0); }
41
+
42
+ .conscious-element { transition: all 0.28s ease; }
43
+ .conscious-element:hover { transform: translateY(-2px); }
44
+
45
+ .thin-scroll {
46
+ scrollbar-width: thin;
47
+ scrollbar-color: #4f46e5 #1e1b4b;
48
+ }
49
+ .thin-scroll::-webkit-scrollbar { width: 6px; }
50
+ .thin-scroll::-webkit-scrollbar-track { background: #1e1b4b; }
51
+ .thin-scroll::-webkit-scrollbar-thumb { background-color: #4f46e5; border-radius: 3px; }
52
+
53
+ .badge {
54
+ display: inline-flex;
55
+ align-items: center;
56
+ gap: 8px;
57
+ padding: 6px 10px;
58
+ border-radius: 999px;
59
+ font-size: 12px;
60
+ border: 1px solid rgba(148,163,184,0.18);
61
+ background: rgba(15,23,42,0.25);
62
+ color: rgba(226,232,240,0.9);
63
+ letter-spacing: 0.08em;
64
+ text-transform: uppercase;
65
+ }
66
+ .dot { width: 8px; height: 8px; border-radius: 999px; }
67
+ .dot-concept { background: rgba(99,102,241,0.9); }
68
+ </style>
69
  </head>
70
+
71
+ <body class="bg-black text-white overflow-x-hidden">
72
+ <!-- Animated background -->
73
+ <div id="vanta-bg" class="fixed top-0 left-0 w-full h-full z-0"></div>
74
+
75
+ <!-- Minimal top bar -->
76
+ <nav class="relative z-10 py-6 px-8 flex justify-between items-center backdrop-blur-sm">
77
+ <a href="index.html" class="flex items-center space-x-2">
78
+ <div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center">
79
+ <div class="w-2 h-2 rounded-full bg-white animate-pulse"></div>
80
+ </div>
81
+ <span class="text-xl font-semibold">SILENTPATTERN</span>
82
+ </a>
83
+
84
+ <div class="flex items-center space-x-3">
85
+ <button id="lab-nav-btn"
86
+ 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"
87
+ aria-label="Open Lab Navigator" title="Lab Navigator">
88
+ <i class="fas fa-asterisk text-indigo-300 text-sm"></i>
89
+ </button>
90
+
91
+ <button id="access-btn"
92
+ class="px-6 py-2 bg-gradient-to-r from-indigo-600 to-purple-600 rounded-full hover:opacity-90 transition">
93
+ Access
94
+ </button>
95
+ </div>
96
+ </nav>
97
+
98
+ <!-- CONTENT AS A LAB DOSSIER -->
99
+ <section class="relative z-10 px-6 pt-14 pb-16">
100
+ <div class="max-w-6xl mx-auto">
101
+ <div class="grid grid-cols-1 lg:grid-cols-5 gap-6">
102
+
103
+ <!-- LEFT: Dossier -->
104
+ <div class="lg:col-span-3 rounded-2xl border border-gray-800 bg-gray-900/20 overflow-hidden aura">
105
+ <div class="px-6 py-5 border-b border-gray-800/60 flex items-start justify-between gap-6">
106
+ <div>
107
+ <div class="inline-flex items-center gap-3 px-4 py-2 rounded-full border border-gray-800 bg-gray-900/20 backdrop-blur-sm">
108
+ <span class="w-2 h-2 rounded-full bg-indigo-400 animate-pulse"></span>
109
+ <span class="text-xs text-gray-300 tracking-widest uppercase">Dossier</span>
110
+ <span class="text-xs text-gray-500">CONSCIOUSNESS</span>
111
+ </div>
112
+
113
+ <h1 class="mt-6 text-3xl md:text-6xl font-bold leading-tight">
114
+ <span class="gradient-text">Consciousness</span><br>
115
+ Research framing, not marketing certainty
116
+ </h1>
117
+
118
+ <p class="mt-4 text-gray-300 text-lg md:text-xl max-w-3xl">
119
+ This module is deliberately conservative: it discusses machine consciousness as an investigation domain (models, signals, experiments),
120
+ not as a settled claim about any deployed system.
121
+ </p>
122
+
123
+ <div class="mt-4 flex flex-wrap gap-2">
124
+ <span class="badge"><span class="dot dot-concept"></span>Concept</span>
125
+ <span class="badge"><span class="dot dot-concept"></span>Evidence-gated</span>
126
+ </div>
127
  </div>
128
+
129
+ <div class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15 self-start">
130
+ PUBLIC
131
+ </div>
132
+ </div>
133
+
134
+ <div class="p-6 space-y-6">
135
+ <div class="rounded-2xl border border-gray-800 bg-black/20 p-5">
136
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">What we mean (operationally)</div>
137
+ <div class="text-sm text-gray-300 leading-relaxed space-y-3">
138
+ <p>
139
+ “Consciousness” is a contested concept. In this lab, we treat it as a research target defined by operational criteria:
140
+ measurable behaviors, internal signals, and controlled experiments—not metaphysical declarations.
 
 
 
 
 
 
141
  </p>
142
+ <p class="text-gray-400">
143
+ This page is structured to protect credibility: hypotheses, candidate signatures, and test protocols. If the tests are weak, the claims are weak.
144
+ </p>
145
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  </div>
147
+
148
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
149
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5 conscious-element">
150
+ <div class="text-sm font-semibold text-gray-100">Self-modeling</div>
151
+ <div class="text-sm text-gray-300 mt-2">
152
+ Representations of its own state, uncertainty, and limitations that influence future action selection.
153
  </div>
154
+ </div>
155
+
156
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5 conscious-element">
157
+ <div class="text-sm font-semibold text-gray-100">Agency under constraints</div>
158
+ <div class="text-sm text-gray-300 mt-2">
159
+ Goal pursuit with explicit governance: permissions, logs, and “fail-closed” execution semantics.
 
 
 
 
 
 
160
  </div>
161
+ </div>
162
+
163
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5 conscious-element">
164
+ <div class="text-sm font-semibold text-gray-100">Global integration (hypothesis)</div>
165
+ <div class="text-sm text-gray-300 mt-2">
166
+ Candidate signatures of integrated processing and cross-domain binding, tested via intervention and ablation.
167
  </div>
168
+ </div>
169
+
170
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5 conscious-element">
171
+ <div class="text-sm font-semibold text-gray-100">Reportable uncertainty</div>
172
+ <div class="text-sm text-gray-300 mt-2">
173
+ Models should expose confidence, calibration, and failure modes; uncertainty is part of the output.
174
  </div>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="rounded-2xl border border-gray-800 bg-black/20 p-5">
179
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">Public posture</div>
180
+ <div class="text-sm text-gray-300 leading-relaxed">
181
+ Language is restrained by design. We do not claim “true consciousness” on a web page. We claim a research agenda with measurable tests.
182
+ Any future claims must be backed by transparent protocols, baselines, and replicable evidence.
183
+ </div>
184
+ </div>
185
+
186
+ <div class="flex flex-col sm:flex-row gap-3">
187
+ <button id="open-programs"
188
+ class="px-5 py-3 rounded-xl bg-gradient-to-r from-indigo-600 to-purple-600 hover:opacity-90 transition">
189
+ Open Programs
190
+ </button>
191
+ <button id="open-console"
192
+ class="px-5 py-3 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition">
193
+ Open Console
194
+ </button>
195
  </div>
196
+
197
+ <div class="text-xs text-gray-500">
198
+ Note: Visualizations below are illustrative; they are not evidence of consciousness.
199
  </div>
200
+ </div>
201
  </div>
202
+
203
+ <!-- RIGHT: Visualization + Protocol notes -->
204
+ <div class="lg:col-span-2 rounded-2xl border border-gray-800 bg-gray-900/30 overflow-hidden">
205
+ <div class="px-6 py-5 border-b border-gray-800/60 flex items-center justify-between">
206
+ <div>
207
+ <div class="text-lg font-semibold text-gray-100">Visualization</div>
208
+ <div class="text-xs text-gray-500 mt-1">Aesthetic signal of “integration,” not proof.</div>
209
+ </div>
210
+ <div class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">
211
+ LIVE
212
+ </div>
213
+ </div>
214
+
215
+ <div class="p-6 space-y-5">
216
+ <div class="relative w-full h-72 rounded-2xl overflow-hidden border border-gray-800">
217
+ <div id="consciousness-visualization" class="w-full h-full"></div>
218
+ <div class="absolute -inset-3 rounded-3xl border border-indigo-500/20 pointer-events-none animate-pulse"></div>
219
+ </div>
220
+
221
+ <div class="rounded-xl border border-gray-800 bg-black/20 p-4">
222
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">How we would test claims</div>
223
+ <ul class="text-sm text-gray-300 space-y-2">
224
+ <li>1) Define operational criteria and falsifiable hypotheses.</li>
225
+ <li>2) Establish baselines and ablation tests.</li>
226
+ <li>3) Use interventions; measure robustness under distribution shift.</li>
227
+ <li>4) Publish uncertainty, failure modes, and limitations.</li>
228
+ </ul>
229
+ </div>
230
+
231
+ <button id="request-access"
232
+ class="w-full px-5 py-3 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition">
233
+ Request Access
234
+ </button>
235
+ </div>
236
+ </div>
237
+
238
+ </div>
239
+ </div>
240
+ </section>
241
+
242
+ <!-- Minimal Footer -->
243
+ <footer class="relative z-10 px-6 pb-10">
244
+ <div class="max-w-6xl mx-auto border-t border-gray-800/60 pt-8 flex flex-col md:flex-row justify-between items-center gap-4">
245
+ <div class="text-sm text-gray-500">© 2025 SILENTPATTERN. All rights reserved.</div>
246
+ <div class="text-sm text-gray-500 flex gap-6">
247
+ <a href="research.html" class="hover:text-indigo-400 transition">Research</a>
248
+ <a href="privacy.html" class="hover:text-indigo-400 transition">Privacy</a>
249
+ <a href="terms.html" class="hover:text-indigo-400 transition">Terms</a>
250
+ <a href="contact.html" class="hover:text-indigo-400 transition">Contact</a>
251
+ </div>
252
+ </div>
253
+ </footer>
254
+
255
+ <!-- ACCESS MODAL -->
256
+ <div id="access-modal"
257
+ class="fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm modal modal-hidden"
258
+ role="dialog" aria-modal="true" aria-labelledby="access-modal-title" tabindex="-1">
259
+ <div class="bg-gray-900/90 border border-gray-800 rounded-xl max-w-md w-full mx-4 relative overflow-hidden">
260
+ <div class="absolute inset-x-0 top-0 h-1 bg-gradient-to-r from-indigo-600 to-purple-600"></div>
261
+ <div class="p-6">
262
+ <div class="flex justify-between items-start mb-6">
263
+ <div>
264
+ <h3 class="text-xl font-bold" id="access-modal-title">Request Access</h3>
265
+ <p class="text-gray-400 mt-1">Curated access for research and evaluation</p>
266
+ </div>
267
+ <button id="close-access-modal" class="text-gray-400 hover:text-white" aria-label="Close">
268
+ <i class="fas fa-times"></i>
269
+ </button>
270
+ </div>
271
+
272
+ <form id="access-form" class="space-y-4">
273
+ <div>
274
+ <label for="name" class="block text-sm font-medium mb-1">Full Name</label>
275
+ <input type="text" id="name" class="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-4 py-2 focus-ring">
276
+ </div>
277
+ <div>
278
+ <label for="email" class="block text-sm font-medium mb-1">Email</label>
279
+ <input type="email" id="email" class="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-4 py-2 focus-ring">
280
+ </div>
281
+ <div>
282
+ <label for="institution" class="block text-sm font-medium mb-1">Institution/Organization</label>
283
+ <input type="text" id="institution" class="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-4 py-2 focus-ring">
284
+ </div>
285
+ <div>
286
+ <label for="purpose" class="block text-sm font-medium mb-1">Purpose</label>
287
+ <select id="purpose" class="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-4 py-2 focus-ring">
288
+ <option value="">Select a purpose</option>
289
+ <option value="research">Academic / Independent Research</option>
290
+ <option value="development">Engineering / Product Evaluation</option>
291
+ <option value="partnership">Partnership</option>
292
+ <option value="other">Other</option>
293
+ </select>
294
+ </div>
295
+ <div class="pt-2">
296
+ <button type="submit" class="w-full py-3 bg-gradient-to-r from-indigo-600 to-purple-600 rounded-lg hover:opacity-90 transition">
297
+ Submit Request
298
+ </button>
299
+ </div>
300
+ </form>
301
+ </div>
302
+ </div>
303
+ </div>
304
+
305
+ <!-- LAB NAVIGATOR -->
306
+ <div id="lab-navigator"
307
+ class="fixed inset-0 z-[60] bg-black/80 backdrop-blur-md modal modal-hidden"
308
+ role="dialog" aria-modal="true" aria-label="Lab Navigator" tabindex="-1">
309
+
310
+ <div class="absolute inset-0" data-lab-close="true"></div>
311
+
312
+ <div class="relative w-full h-full flex items-center justify-center p-6">
313
+ <div class="w-full max-w-6xl mx-auto grid grid-cols-1 lg:grid-cols-2 gap-6">
314
+ <div class="relative rounded-2xl border border-gray-800 bg-gray-900/20 overflow-hidden">
315
+ <div class="flex items-center justify-between px-5 py-4 border-b border-gray-800/60">
316
+ <div class="flex items-center space-x-3">
317
+ <div class="w-7 h-7 rounded-full bg-indigo-600 flex items-center justify-center">
318
+ <div class="w-1.5 h-1.5 rounded-full bg-white animate-pulse"></div>
319
+ </div>
320
+ <div>
321
+ <div class="text-sm text-gray-300 tracking-wide">SILENTPATTERN</div>
322
+ <div class="text-xs text-gray-500">Lab Navigator</div>
323
+ </div>
324
+ </div>
325
+
326
+ <button id="lab-nav-close"
327
+ class="w-9 h-9 rounded-full border border-gray-800 bg-gray-900/30 hover:bg-gray-900/50 transition flex items-center justify-center"
328
+ aria-label="Close Lab Navigator">
329
+ <i class="fas fa-times text-gray-300 text-sm"></i>
330
+ </button>
331
+ </div>
332
+
333
+ <div class="relative p-6 min-h-[420px]">
334
+ <div class="absolute inset-0 opacity-70 pointer-events-none"
335
+ style="background: radial-gradient(circle at 30% 20%, rgba(99,102,241,0.18), transparent 45%),
336
+ radial-gradient(circle at 70% 70%, rgba(236,72,153,0.10), transparent 50%);"></div>
337
+
338
+ <div class="relative grid grid-cols-1 sm:grid-cols-2 gap-3">
339
+ <button class="lab-node text-left rounded-xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/50 hover:bg-gray-900/45 transition p-4"
340
+ data-nav="index.html">
341
+ <div class="text-sm text-gray-200 font-medium">Start Here</div>
342
+ <div class="text-xs text-gray-500 mt-1">Entry interface</div>
343
+ </button>
344
+
345
+ <button class="lab-node text-left rounded-xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/50 hover:bg-gray-900/45 transition p-4"
346
+ data-nav="capabilities.html">
347
+ <div class="text-sm text-gray-200 font-medium">Programs</div>
348
+ <div class="text-xs text-gray-500 mt-1">Program Bay</div>
349
+ </button>
350
+
351
+ <button class="lab-node text-left rounded-xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/50 hover:bg-gray-900/45 transition p-4"
352
+ data-nav="chat.html">
353
+ <div class="text-sm text-gray-200 font-medium">Console</div>
354
+ <div class="text-xs text-gray-500 mt-1">Controlled chat</div>
355
+ </button>
356
+
357
+ <button class="lab-node text-left rounded-xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/50 hover:bg-gray-900/45 transition p-4"
358
+ data-nav="research.html">
359
+ <div class="text-sm text-gray-200 font-medium">Research</div>
360
+ <div class="text-xs text-gray-500 mt-1">Notes and briefs</div>
361
+ </button>
362
+
363
+ <button class="lab-node text-left rounded-xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/50 hover:bg-gray-900/45 transition p-4 sm:col-span-2"
364
+ data-nav="contact.html">
365
+ <div class="text-sm text-gray-200 font-medium">Contact</div>
366
+ <div class="text-xs text-gray-500 mt-1">Direct channel</div>
367
+ </button>
368
+ </div>
369
+
370
+ <div class="relative mt-6 text-xs text-gray-500">
371
+ Tip: Press <span class="text-gray-300">Esc</span> to close.
372
+ </div>
373
+ </div>
374
+ </div>
375
+
376
+ <div class="relative rounded-2xl border border-gray-800 bg-gray-900/30 overflow-hidden">
377
+ <div class="px-6 py-5 border-b border-gray-800/60">
378
+ <div class="text-lg font-semibold text-gray-100">Navigation</div>
379
+ <div class="text-xs text-gray-500 mt-1">Reduced surface, consistent interface.</div>
380
+ </div>
381
+ <div class="p-6 text-sm text-gray-300 leading-relaxed">
382
+ This page avoids strong consciousness claims. It communicates seriousness by showing test discipline and evidence gates, while keeping the aesthetic.
383
+ </div>
384
+ </div>
385
+
386
+ </div>
387
+ </div>
388
+ </div>
389
+
390
+ <script>
391
+ /* VANTA BACKGROUND */
392
+ const vantaEffect = VANTA.NET({
393
+ el: "#vanta-bg",
394
+ mouseControls: true,
395
+ touchControls: true,
396
+ gyroControls: false,
397
+ minHeight: 200.00,
398
+ minWidth: 200.00,
399
+ scale: 1.00,
400
+ scaleMobile: 1.00,
401
+ color: 0x4f46e5,
402
+ backgroundColor: 0x020617,
403
+ points: 12.00,
404
+ maxDistance: 20.00,
405
+ spacing: 15.00
406
+ });
407
+ window.addEventListener('resize', () => vantaEffect.resize());
408
+
409
+ /* MODAL HELPERS */
410
+ function trapFocus(modal) {
411
+ const focusable = modal.querySelectorAll('a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])');
412
+ if (!focusable.length) return;
413
+ const first = focusable[0];
414
+ const last = focusable[focusable.length - 1];
415
+
416
+ function handler(e) {
417
+ if (e.key === 'Tab') {
418
+ if (e.shiftKey) {
419
+ if (document.activeElement === first) { e.preventDefault(); last.focus(); }
420
+ } else {
421
+ if (document.activeElement === last) { e.preventDefault(); first.focus(); }
422
+ }
423
+ } else if (e.key === 'Escape') {
424
+ toggleModal(modal, false);
425
+ }
426
+ }
427
+ modal.addEventListener('keydown', handler);
428
+ modal._focusHandler = handler;
429
+ }
430
+ function untrapFocus(modal) {
431
+ if (modal._focusHandler) {
432
+ modal.removeEventListener('keydown', modal._focusHandler);
433
+ delete modal._focusHandler;
434
+ }
435
+ }
436
+ const toggleModal = (modal, show) => {
437
+ if (show) {
438
+ modal.classList.remove('modal-hidden');
439
+ modal.classList.add('modal-visible');
440
+ document.body.style.overflow = 'hidden';
441
+ setTimeout(() => { modal.focus(); trapFocus(modal); }, 0);
442
+ } else {
443
+ modal.classList.remove('modal-visible');
444
+ modal.classList.add('modal-hidden');
445
+ document.body.style.overflow = '';
446
+ untrapFocus(modal);
447
+ }
448
+ };
449
+
450
+ /* ACCESS MODAL */
451
+ const accessModal = document.getElementById('access-modal');
452
+ const accessBtn = document.getElementById('access-btn');
453
+ const closeAccessModal = document.getElementById('close-access-modal');
454
+
455
+ accessBtn.addEventListener('click', () => {
456
+ toggleModal(accessModal, true);
457
+ setTimeout(() => document.getElementById('name').focus(), 50);
458
+ });
459
+ closeAccessModal.addEventListener('click', () => toggleModal(accessModal, false));
460
+ accessModal.addEventListener('click', (e) => { if (e.target === accessModal) toggleModal(accessModal, false); });
461
+
462
+ document.getElementById('access-form').addEventListener('submit', (e) => {
463
+ e.preventDefault();
464
+ const name = document.getElementById('name').value.trim();
465
+ const email = document.getElementById('email').value.trim();
466
+ const institution = document.getElementById('institution').value.trim();
467
+ const purpose = document.getElementById('purpose').value;
468
+ if (!name || !email || !institution || !purpose) {
469
+ alert('Please fill in all fields.');
470
+ return;
471
+ }
472
+ alert('Request received. You will be contacted after review.');
473
+ e.target.reset();
474
+ toggleModal(accessModal, false);
475
+ });
476
+
477
+ /* LAB NAVIGATOR */
478
+ const labNav = document.getElementById('lab-navigator');
479
+ const labNavBtn = document.getElementById('lab-nav-btn');
480
+ const labNavClose = document.getElementById('lab-nav-close');
481
+
482
+ function openLabNav() { toggleModal(labNav, true); setTimeout(() => labNav.focus(), 0); }
483
+ function closeLabNav() { toggleModal(labNav, false); }
484
+
485
+ labNavBtn.addEventListener('click', openLabNav);
486
+ labNavClose.addEventListener('click', closeLabNav);
487
+
488
+ labNav.addEventListener('click', (e) => {
489
+ const shouldClose = e.target && e.target.getAttribute('data-lab-close') === 'true';
490
+ if (shouldClose) closeLabNav();
491
+ });
492
+
493
+ document.querySelectorAll('.lab-node').forEach(btn => {
494
+ btn.addEventListener('click', () => {
495
+ const href = btn.getAttribute('data-nav');
496
+ if (href) window.location.href = href;
497
+ });
498
+ });
499
+
500
+ document.getElementById('open-programs').addEventListener('click', () => { window.location.href = "capabilities.html"; });
501
+ document.getElementById('open-console').addEventListener('click', () => { window.location.href = "chat.html"; });
502
+ document.getElementById('request-access').addEventListener('click', () => { accessBtn.click(); });
503
+
504
+ /* ESC behavior */
505
+ document.addEventListener('keydown', (e) => {
506
+ if (e.key === 'Escape') {
507
+ if (labNav && !labNav.classList.contains('modal-hidden')) closeLabNav();
508
+ if (accessModal && !accessModal.classList.contains('modal-hidden')) toggleModal(accessModal, false);
509
+ }
510
+ });
511
+
512
+ /* Visualization (same as your original, with resize safety) */
513
+ const container = document.getElementById('consciousness-visualization');
514
+ if (container) {
515
+ const canvas = document.createElement('canvas');
516
+ container.appendChild(canvas);
517
+ const ctx = canvas.getContext('2d');
518
+
519
+ function resizeCanvas() {
520
+ canvas.width = container.clientWidth;
521
+ canvas.height = container.clientHeight;
522
+ }
523
+ resizeCanvas();
524
+ window.addEventListener('resize', resizeCanvas);
525
+
526
+ const particles = [];
527
+ const particleCount = 150;
528
+
529
+ function initParticles() {
530
+ particles.length = 0;
531
+ for (let i = 0; i < particleCount; i++) {
532
+ particles.push({
533
+ x: Math.random() * canvas.width,
534
+ y: Math.random() * canvas.height,
535
+ size: Math.random() * 3 + 1,
536
+ speedX: Math.random() * 2 - 1,
537
+ speedY: Math.random() * 2 - 1,
538
+ alpha: Math.random() * 0.5 + 0.1
539
+ });
540
+ }
541
+ }
542
+ initParticles();
543
+
544
+ function animate() {
545
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
546
+
547
+ for (let i = 0; i < particles.length; i++) {
548
+ for (let j = i + 1; j < particles.length; j++) {
549
+ const dx = particles[i].x - particles[j].x;
550
+ const dy = particles[i].y - particles[j].y;
551
+ const distance = Math.sqrt(dx * dx + dy * dy);
552
+ if (distance < 100) {
553
+ ctx.beginPath();
554
+ ctx.strokeStyle = `rgba(99, 102, 241, ${1 - distance / 100})`;
555
+ ctx.lineWidth = 0.2;
556
+ ctx.moveTo(particles[i].x, particles[i].y);
557
+ ctx.lineTo(particles[j].x, particles[j].y);
558
+ ctx.stroke();
559
  }
560
+ }
561
+ }
562
+
563
+ for (let i = 0; i < particles.length; i++) {
564
+ const p = particles[i];
565
+ p.x += p.speedX;
566
+ p.y += p.speedY;
567
+
568
+ if (p.x < 0 || p.x > canvas.width) p.speedX *= -1;
569
+ if (p.y < 0 || p.y > canvas.height) p.speedY *= -1;
570
+
571
+ ctx.beginPath();
572
+ ctx.fillStyle = `rgba(99, 102, 241, ${p.alpha})`;
573
+ ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
574
+ ctx.fill();
575
  }
576
+
577
+ requestAnimationFrame(animate);
578
+ }
579
+ animate();
580
+ }
581
+ </script>
582
  </body>
583
+ </html>