Testing347 commited on
Commit
121e169
Β·
verified Β·
1 Parent(s): 93a96fd

Update capabilities.html

Browse files
Files changed (1) hide show
  1. capabilities.html +579 -209
capabilities.html CHANGED
@@ -3,20 +3,89 @@
3
  <head>
4
  <meta charset="UTF-8" />
5
  <meta name="viewport" content="width=device-width,initial-scale=1.0" />
6
- <title>SILENTPATTERN β€” Program Bay</title>
7
 
 
8
  <script src="https://cdn.tailwindcss.com"></script>
 
 
9
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
10
  <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js"></script>
11
 
 
12
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
13
  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap">
14
- <link rel="stylesheet" href="assets/site.css">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  </head>
16
 
17
  <body class="bg-black text-white overflow-x-hidden">
 
18
  <div id="vanta-bg" class="fixed top-0 left-0 w-full h-full z-0"></div>
19
 
 
20
  <nav class="relative z-10 py-6 px-8 flex justify-between items-center backdrop-blur-sm">
21
  <a href="index.html" class="flex items-center space-x-2">
22
  <div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center">
@@ -39,132 +108,265 @@
39
  </div>
40
  </nav>
41
 
42
- <section class="relative z-10 px-6 pt-14 pb-10">
 
43
  <div class="max-w-6xl mx-auto">
44
- <div class="inline-flex items-center gap-3 self-start px-4 py-2 rounded-full border border-gray-800 bg-gray-900/20 backdrop-blur-sm">
45
- <span class="w-2 h-2 rounded-full bg-indigo-400 animate-pulse"></span>
46
- <span class="text-xs text-gray-300 tracking-widest uppercase">Programs</span>
47
- <span class="text-xs text-gray-500">Program Bay</span>
48
- </div>
 
49
 
50
- <div class="mt-6">
51
- <h1 class="text-3xl md:text-5xl font-bold leading-tight">
52
  <span class="gradient-text">Program Bay</span><br>
53
- Dossiers, protocols, and evaluation gates
54
  </h1>
55
- <p class="mt-4 text-gray-300 max-w-3xl text-lg leading-relaxed">
56
- Each program is presented as a dossier: scope, assumptions, evaluation protocol, and access gating.
57
- This page is intentionally conservative: it is an interface to artifacts, not promotional copy.
58
  </p>
 
 
 
 
59
  </div>
 
 
 
 
 
 
 
60
 
61
- <div class="mt-8 grid grid-cols-1 lg:grid-cols-3 gap-4">
62
- <!-- MCAP -->
63
- <div class="rounded-2xl border border-gray-800 bg-gray-900/20 p-6 aura conscious-element">
64
- <div class="flex items-start justify-between gap-4">
65
  <div>
66
- <div class="text-sm text-gray-200 font-semibold"><i class="fas fa-diagram-project mr-2 text-indigo-300"></i>MCAP</div>
67
- <div class="text-xs text-gray-500 mt-1">Causal abstraction and fidelity evaluation</div>
 
 
 
68
  </div>
69
- <span class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">DRAFT</span>
70
- </div>
71
- <ul class="mt-4 text-sm text-gray-300 space-y-2">
72
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Explicit abstraction mapping</span></li>
73
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Testable causal fidelity criteria</span></li>
74
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Baseline comparisons and failure modes</span></li>
75
- </ul>
76
- <div class="mt-5 flex gap-3">
77
- <a href="chat.html" class="px-4 py-2 rounded-xl bg-indigo-600 hover:bg-indigo-700 transition text-sm">Open in Console</a>
78
- <a href="research.html" class="px-4 py-2 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition text-sm">View Notes</a>
79
  </div>
80
- </div>
81
 
82
- <!-- CHAI -->
83
- <div class="rounded-2xl border border-gray-800 bg-gray-900/20 p-6 aura conscious-element">
84
- <div class="flex items-start justify-between gap-4">
85
- <div>
86
- <div class="text-sm text-gray-200 font-semibold"><i class="fas fa-chart-line mr-2 text-indigo-300"></i>CHAI</div>
87
- <div class="text-xs text-gray-500 mt-1">Regime modeling and forecasting harness</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  </div>
89
- <span class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">DRAFT</span>
90
- </div>
91
- <ul class="mt-4 text-sm text-gray-300 space-y-2">
92
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Clear horizon and labeling rules</span></li>
93
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Walk-forward protocol and leakage checks</span></li>
94
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Risk and calibration metrics</span></li>
95
- </ul>
96
- <div class="mt-5 flex gap-3">
97
- <a href="chat.html" class="px-4 py-2 rounded-xl bg-indigo-600 hover:bg-indigo-700 transition text-sm">Open in Console</a>
98
- <a href="research.html" class="px-4 py-2 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition text-sm">View Notes</a>
99
  </div>
100
  </div>
101
 
102
- <!-- Quantum Lambda -->
103
- <div class="rounded-2xl border border-gray-800 bg-gray-900/20 p-6 aura conscious-element">
104
- <div class="flex items-start justify-between gap-4">
105
- <div>
106
- <div class="text-sm text-gray-200 font-semibold"><i class="fas fa-bolt mr-2 text-indigo-300"></i>Quantum Lambda</div>
107
- <div class="text-xs text-gray-500 mt-1">High-frequency decision systems constraints</div>
 
 
 
 
 
 
108
  </div>
109
- <span class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">DRAFT</span>
110
- </div>
111
- <ul class="mt-4 text-sm text-gray-300 space-y-2">
112
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Microstructure realism (slippage/latency)</span></li>
113
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Execution assumptions documented</span></li>
114
- <li class="flex gap-2"><span class="text-indigo-300">β€’</span><span>Risk limits and fail-closed behavior</span></li>
115
- </ul>
116
- <div class="mt-5 flex gap-3">
117
- <a href="chat.html" class="px-4 py-2 rounded-xl bg-indigo-600 hover:bg-indigo-700 transition text-sm">Open in Console</a>
118
- <a href="research.html" class="px-4 py-2 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition text-sm">View Notes</a>
119
  </div>
120
- </div>
121
 
122
- <!-- AI Scientist -->
123
- <div class="rounded-2xl border border-gray-800 bg-gray-900/20 p-6 aura conscious-element lg:col-span-2">
124
- <div class="flex items-start justify-between gap-4">
125
- <div>
126
- <div class="text-sm text-gray-200 font-semibold"><i class="fas fa-flask mr-2 text-indigo-300"></i>AI Scientist</div>
127
- <div class="text-xs text-gray-500 mt-1">Hypothesis β†’ experiment β†’ report pipeline</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  </div>
129
- <span class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">PROTOTYPE</span>
130
  </div>
131
- <p class="mt-4 text-sm text-gray-300 leading-relaxed">
132
- Standardizes experiments, enforces reproducibility hooks, and produces auditable reports with uncertainty, baselines, and known failure modes.
133
- </p>
134
- <div class="mt-5 flex gap-3">
135
- <a href="chat.html" class="px-4 py-2 rounded-xl bg-indigo-600 hover:bg-indigo-700 transition text-sm">Open in Console</a>
136
- <a href="research.html" class="px-4 py-2 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition text-sm">View Notes</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  </div>
138
  </div>
139
 
140
- <!-- Agentic Workforce -->
141
- <div class="rounded-2xl border border-gray-800 bg-gray-900/20 p-6 aura conscious-element">
142
- <div class="flex items-start justify-between gap-4">
143
- <div>
144
- <div class="text-sm text-gray-200 font-semibold"><i class="fas fa-users-gear mr-2 text-indigo-300"></i>Agentic Workforce</div>
145
- <div class="text-xs text-gray-500 mt-1">Governed agent workflows (fail-closed)</div>
146
- </div>
147
- <span class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">CONCEPT</span>
148
  </div>
149
- <p class="mt-4 text-sm text-gray-300 leading-relaxed">
150
- A structured approach to multi-agent task execution with explicit permissions, audit trails, and safe failure behavior.
151
- </p>
152
- <div class="mt-5 flex gap-3">
153
- <button id="access-cta"
154
- class="px-4 py-2 rounded-xl bg-gradient-to-r from-indigo-600 to-purple-600 hover:opacity-90 transition text-sm">
155
- Request Access
156
- </button>
157
- <a href="contact.html" class="px-4 py-2 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition text-sm">Contact</a>
158
  </div>
159
  </div>
160
- </div>
161
 
162
- <div class="mt-10 text-xs text-gray-500 max-w-4xl">
163
- Implementation note: if you deploy the Console with real model access, keep keys server-side, log policy decisions, and store transcript exports as immutable artifacts.
 
 
 
 
164
  </div>
165
  </div>
166
  </section>
167
 
 
168
  <footer class="relative z-10 px-6 pb-10">
169
  <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">
170
  <div class="text-sm text-gray-500">Β© 2025 SILENTPATTERN. All rights reserved.</div>
@@ -177,7 +379,7 @@
177
  </div>
178
  </footer>
179
 
180
- <!-- ACCESS MODAL (same as index) -->
181
  <div id="access-modal"
182
  class="fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm modal modal-hidden"
183
  role="dialog" aria-modal="true" aria-labelledby="access-modal-title" tabindex="-1">
@@ -227,11 +429,13 @@
227
  </div>
228
  </div>
229
 
230
- <!-- LAB NAVIGATOR (reused structure) -->
231
  <div id="lab-navigator"
232
  class="fixed inset-0 z-[60] bg-black/80 backdrop-blur-md modal modal-hidden"
233
  role="dialog" aria-modal="true" aria-label="Lab Navigator" tabindex="-1">
 
234
  <div class="absolute inset-0" data-lab-close="true"></div>
 
235
  <div class="relative w-full h-full flex items-center justify-center p-6">
236
  <div class="w-full max-w-6xl mx-auto grid grid-cols-1 lg:grid-cols-2 gap-6">
237
  <div class="relative rounded-2xl border border-gray-800 bg-gray-900/20 overflow-hidden">
@@ -245,6 +449,7 @@
245
  <div class="text-xs text-gray-500">Lab Navigator</div>
246
  </div>
247
  </div>
 
248
  <button id="lab-nav-close"
249
  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"
250
  aria-label="Close Lab Navigator">
@@ -253,43 +458,42 @@
253
  </div>
254
 
255
  <div class="relative p-6 min-h-[420px]">
 
 
 
 
256
  <div class="relative grid grid-cols-1 sm:grid-cols-2 gap-3">
257
  <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"
258
- data-dossier="start">
259
  <div class="text-sm text-gray-200 font-medium">Start Here</div>
260
  <div class="text-xs text-gray-500 mt-1">Entry interface</div>
261
  </button>
262
 
263
  <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"
264
- data-dossier="programs">
265
  <div class="text-sm text-gray-200 font-medium">Programs</div>
266
  <div class="text-xs text-gray-500 mt-1">This page</div>
267
  </button>
268
 
269
  <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"
270
- data-dossier="console">
271
  <div class="text-sm text-gray-200 font-medium">Console</div>
272
  <div class="text-xs text-gray-500 mt-1">Controlled chat</div>
273
  </button>
274
 
275
  <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"
276
- data-dossier="research">
277
  <div class="text-sm text-gray-200 font-medium">Research</div>
278
  <div class="text-xs text-gray-500 mt-1">Notes and briefs</div>
279
  </button>
280
 
281
- <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"
282
- data-dossier="contact">
283
  <div class="text-sm text-gray-200 font-medium">Contact</div>
284
  <div class="text-xs text-gray-500 mt-1">Direct channel</div>
285
  </button>
286
-
287
- <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"
288
- data-dossier="access">
289
- <div class="text-sm text-gray-200 font-medium">Access</div>
290
- <div class="text-xs text-gray-500 mt-1">Curated entry</div>
291
- </button>
292
  </div>
 
293
  <div class="relative mt-6 text-xs text-gray-500">
294
  Tip: Press <span class="text-gray-300">Esc</span> to close.
295
  </div>
@@ -298,38 +502,12 @@
298
 
299
  <div class="relative rounded-2xl border border-gray-800 bg-gray-900/30 overflow-hidden">
300
  <div class="px-6 py-5 border-b border-gray-800/60">
301
- <div class="flex items-start justify-between gap-4">
302
- <div>
303
- <div id="dossier-title" class="text-lg font-semibold text-gray-100">Lab Dossier</div>
304
- <div id="dossier-subtitle" class="text-xs text-gray-500 mt-1">Select a node to load details.</div>
305
- </div>
306
- <div id="dossier-status"
307
- class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">
308
- READY
309
- </div>
310
- </div>
311
  </div>
312
-
313
- <div class="p-6 space-y-5 max-h-[560px] overflow-auto thin-scroll">
314
- <div id="dossier-body" class="text-sm text-gray-300 leading-relaxed"></div>
315
-
316
- <div class="rounded-xl border border-gray-800 bg-black/20 p-4">
317
- <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">Evidence Capsule</div>
318
- <ul id="dossier-evidence" class="text-sm text-gray-300 space-y-1"></ul>
319
- </div>
320
-
321
- <div class="flex flex-col sm:flex-row gap-3">
322
- <button id="dossier-primary"
323
- class="flex-1 px-5 py-3 rounded-xl bg-gradient-to-r from-indigo-600 to-purple-600 hover:opacity-90 transition">
324
- Open
325
- </button>
326
- <button id="dossier-secondary"
327
- class="flex-1 px-5 py-3 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition">
328
- View Note
329
- </button>
330
- </div>
331
-
332
- <div id="dossier-meta" class="text-xs text-gray-500"></div>
333
  </div>
334
  </div>
335
 
@@ -337,77 +515,269 @@
337
  </div>
338
  </div>
339
 
340
- <script src="assets/site.js"></script>
341
  <script>
342
- document.addEventListener('DOMContentLoaded', () => {
343
- SilentPattern.initVanta();
344
- SilentPattern.setupAccessModal();
345
-
346
- const DOSSIERS = {
347
- start: {
348
- title: "Start Here",
349
- subtitle: "Return to the main interface",
350
- status: "ACTIVE",
351
- body: "SILENTPATTERN is presented as a lab interface: minimal surface, deep artifacts. The index is the entrypoint.",
352
- evidence: ["Public entry layer", "Dossiers reveal depth", "Controlled demos by access"],
353
- primary: { label: "Go to Index", action: () => { window.location.href = "index.html"; } },
354
- secondary: { label: "Research", action: () => { window.location.href = "research.html"; } },
355
- updated: "β€”"
356
- },
357
- programs: {
358
- title: "Programs",
359
- subtitle: "Program Bay dossiers",
360
- status: "ACTIVE",
361
- body: "This page collects program dossiers. Each dossier should be expanded over time with explicit protocols and evaluation artifacts.",
362
- evidence: ["MCAP Β· CHAI Β· Quantum Lambda", "AI Scientist", "Agentic Workforce"],
363
- primary: { label: "Close Navigator", action: () => SilentPattern.toggleModal(document.getElementById('lab-navigator'), false) },
364
- secondary: { label: "Open Console", action: () => { window.location.href = "chat.html"; } },
365
- updated: "β€”"
366
- },
367
- console: {
368
- title: "Console",
369
- subtitle: "Controlled interaction channel",
370
- status: "DRAFT",
371
- body: "Use the Console for structured requests. Keep model access server-side and export transcripts for auditability.",
372
- evidence: ["No client-side secrets", "Policy + logging server-side", "Exportable transcripts"],
373
- primary: { label: "Open Console", action: () => { window.location.href = "chat.html"; } },
374
- secondary: { label: "Close Navigator", action: () => SilentPattern.toggleModal(document.getElementById('lab-navigator'), false) },
375
- updated: "β€”"
376
- },
377
- research: {
378
- title: "Research",
379
- subtitle: "Notes and briefs",
380
- status: "DRAFT",
381
- body: "Research artifacts should keep protocols and uncertainty explicit. This page should host reproducibility hooks and failure modes.",
382
- evidence: ["Evaluation artifacts", "Reproducibility hooks", "Conservative external wording"],
383
- primary: { label: "Open Research", action: () => { window.location.href = "research.html"; } },
384
- secondary: { label: "Contact", action: () => { window.location.href = "contact.html"; } },
385
- updated: "β€”"
386
- },
387
- contact: {
388
- title: "Contact",
389
- subtitle: "Direct channel",
390
- status: "ACTIVE",
391
- body: "Use Contact for coordination, partnerships, and qualified inquiries.",
392
- evidence: ["Curated inbound", "Clear scope alignment", "Responsible scaling"],
393
- primary: { label: "Open Contact", action: () => { window.location.href = "contact.html"; } },
394
- secondary: { label: "Request Access", action: () => { SilentPattern.toggleModal(document.getElementById('lab-navigator'), false); document.getElementById('access-btn').click(); } },
395
- updated: "β€”"
396
- },
397
- access: {
398
- title: "Access",
399
- subtitle: "Curated entry",
400
- status: "ACTIVE",
401
- body: "Access is curated for controlled evaluation: qualified users, high-signal feedback, and responsible iteration.",
402
- evidence: ["Application-based", "Segmented by intent", "Controlled demos"],
403
- primary: { label: "Request Access", action: () => { SilentPattern.toggleModal(document.getElementById('lab-navigator'), false); document.getElementById('access-btn').click(); } },
404
- secondary: { label: "Contact", action: () => { window.location.href = "contact.html"; } },
405
- updated: "β€”"
406
  }
407
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
408
 
409
- SilentPattern.setupLabNavigator(DOSSIERS, 'programs');
 
 
410
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
411
  </script>
412
  </body>
413
  </html>
 
3
  <head>
4
  <meta charset="UTF-8" />
5
  <meta name="viewport" content="width=device-width,initial-scale=1.0" />
6
+ <title>SILENTPATTERN β€” Programs</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
+ .conscious-element { transition: all 0.28s ease; }
37
+ .conscious-element:hover { transform: translateY(-2px); }
38
+
39
+ .focus-ring:focus { outline: none; box-shadow: 0 0 0 2px rgba(99,102,241,0.65); }
40
+
41
+ /* Scrollbar for dossier panel */
42
+ .thin-scroll {
43
+ scrollbar-width: thin;
44
+ scrollbar-color: #4f46e5 #1e1b4b;
45
+ }
46
+ .thin-scroll::-webkit-scrollbar { width: 6px; }
47
+ .thin-scroll::-webkit-scrollbar-track { background: #1e1b4b; }
48
+ .thin-scroll::-webkit-scrollbar-thumb { background-color: #4f46e5; border-radius: 3px; }
49
+
50
+ .modal { transition: opacity 0.3s ease, transform 0.3s ease; }
51
+ .modal-hidden { opacity: 0; transform: translateY(20px); pointer-events: none; }
52
+ .modal-visible { opacity: 1; transform: translateY(0); }
53
+
54
+ /* Stage badges */
55
+ .badge {
56
+ display: inline-flex;
57
+ align-items: center;
58
+ gap: 8px;
59
+ padding: 6px 10px;
60
+ border-radius: 999px;
61
+ font-size: 12px;
62
+ border: 1px solid rgba(148,163,184,0.18);
63
+ background: rgba(15,23,42,0.25);
64
+ color: rgba(226,232,240,0.9);
65
+ letter-spacing: 0.08em;
66
+ text-transform: uppercase;
67
+ }
68
+ .dot { width: 8px; height: 8px; border-radius: 999px; }
69
+ .dot-concept { background: rgba(99,102,241,0.9); }
70
+ .dot-proto { background: rgba(139,92,246,0.9); }
71
+ .dot-validated { background: rgba(16,185,129,0.9); }
72
+
73
+ /* Subtle β€œbay” grid */
74
+ .bay-grid {
75
+ background-image:
76
+ linear-gradient(rgba(148,163,184,0.06) 1px, transparent 1px),
77
+ linear-gradient(90deg, rgba(148,163,184,0.06) 1px, transparent 1px);
78
+ background-size: 40px 40px;
79
+ background-position: center;
80
+ }
81
+ </style>
82
  </head>
83
 
84
  <body class="bg-black text-white overflow-x-hidden">
85
+ <!-- Animated background -->
86
  <div id="vanta-bg" class="fixed top-0 left-0 w-full h-full z-0"></div>
87
 
88
+ <!-- Minimal top bar -->
89
  <nav class="relative z-10 py-6 px-8 flex justify-between items-center backdrop-blur-sm">
90
  <a href="index.html" class="flex items-center space-x-2">
91
  <div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center">
 
108
  </div>
109
  </nav>
110
 
111
+ <!-- HERO -->
112
+ <section class="relative z-10 px-6 pt-14 pb-8">
113
  <div class="max-w-6xl mx-auto">
114
+ <div class="flex flex-col gap-5">
115
+ <div class="inline-flex items-center gap-3 self-start px-4 py-2 rounded-full border border-gray-800 bg-gray-900/20 backdrop-blur-sm">
116
+ <span class="w-2 h-2 rounded-full bg-indigo-400 animate-pulse"></span>
117
+ <span class="text-xs text-gray-300 tracking-widest uppercase">Programs</span>
118
+ <span class="text-xs text-gray-500">Research artifacts and prototypes</span>
119
+ </div>
120
 
121
+ <h1 class="text-3xl md:text-6xl font-bold leading-tight">
 
122
  <span class="gradient-text">Program Bay</span><br>
123
+ Capabilities as auditable systems
124
  </h1>
125
+
126
+ <p class="text-gray-300 max-w-3xl text-lg md:text-xl">
127
+ SILENTPATTERN is presented as an interface, not a brochure. Each program has a dossier: scope, assumptions, evaluation protocol, and access gates.
128
  </p>
129
+
130
+ <div class="text-xs text-gray-500 max-w-3xl">
131
+ Note: Programs involving markets are research prototypes. Nothing here constitutes investment advice, solicitation, or performance claims.
132
+ </div>
133
  </div>
134
+ </div>
135
+ </section>
136
+
137
+ <!-- PROGRAM BAY + DOSSIER PANEL -->
138
+ <section class="relative z-10 px-6 pb-16">
139
+ <div class="max-w-6xl mx-auto">
140
+ <div class="grid grid-cols-1 lg:grid-cols-5 gap-6">
141
 
142
+ <!-- LEFT: Program Bay -->
143
+ <div class="lg:col-span-3 rounded-2xl border border-gray-800 bg-gray-900/20 overflow-hidden aura">
144
+ <div class="px-6 py-5 border-b border-gray-800/60 flex items-center justify-between">
 
145
  <div>
146
+ <div class="text-sm text-gray-200 font-medium">Program Bay</div>
147
+ <div class="text-xs text-gray-500 mt-1">Select a module to load its dossier.</div>
148
+ </div>
149
+ <div class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">
150
+ INTERFACE MODE
151
  </div>
 
 
 
 
 
 
 
 
 
 
152
  </div>
 
153
 
154
+ <div class="p-6 bay-grid">
155
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
156
+
157
+ <!-- MCAP -->
158
+ <button type="button"
159
+ class="program-card text-left rounded-2xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/55 hover:bg-gray-900/45 transition p-5 conscious-element"
160
+ data-dossier="mcap">
161
+ <div class="flex items-start justify-between gap-4">
162
+ <div>
163
+ <div class="text-lg font-semibold text-gray-100">MCAP</div>
164
+ <div class="text-xs text-gray-500 mt-1">Minimal Causal Abstraction Principle</div>
165
+ </div>
166
+ <span class="badge"><span class="dot dot-proto"></span>Prototype</span>
167
+ </div>
168
+ <p class="text-sm text-gray-300 mt-4 leading-relaxed">
169
+ A compression rule for causal structure: preserve intervention-relevant information while minimizing representation.
170
+ </p>
171
+ <div class="mt-4 text-xs text-gray-500 flex items-center gap-2">
172
+ <i class="fas fa-shield-halved"></i>
173
+ <span>Evaluation-first; claims gated by evidence</span>
174
+ </div>
175
+ </button>
176
+
177
+ <!-- CHAI -->
178
+ <button type="button"
179
+ class="program-card text-left rounded-2xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/55 hover:bg-gray-900/45 transition p-5 conscious-element"
180
+ data-dossier="chai">
181
+ <div class="flex items-start justify-between gap-4">
182
+ <div>
183
+ <div class="text-lg font-semibold text-gray-100">CHAI</div>
184
+ <div class="text-xs text-gray-500 mt-1">Forecasting & regime inference stack</div>
185
+ </div>
186
+ <span class="badge"><span class="dot dot-concept"></span>Concept</span>
187
+ </div>
188
+ <p class="text-sm text-gray-300 mt-4 leading-relaxed">
189
+ A research pipeline for market prediction under distribution shift: features, regimes, calibration, and robust validation.
190
+ </p>
191
+ <div class="mt-4 text-xs text-gray-500 flex items-center gap-2">
192
+ <i class="fas fa-triangle-exclamation"></i>
193
+ <span>Markets are adversarial; protocols matter</span>
194
+ </div>
195
+ </button>
196
+
197
+ <!-- Quantum Lambda -->
198
+ <button type="button"
199
+ class="program-card text-left rounded-2xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/55 hover:bg-gray-900/45 transition p-5 conscious-element"
200
+ data-dossier="quantum_lambda">
201
+ <div class="flex items-start justify-between gap-4">
202
+ <div>
203
+ <div class="text-lg font-semibold text-gray-100">Quantum Lambda</div>
204
+ <div class="text-xs text-gray-500 mt-1">High-frequency decision systems</div>
205
+ </div>
206
+ <span class="badge"><span class="dot dot-concept"></span>Concept</span>
207
+ </div>
208
+ <p class="text-sm text-gray-300 mt-4 leading-relaxed">
209
+ A microstructure-aware control loop: latency budgets, execution constraints, and risk-aware action selection.
210
+ </p>
211
+ <div class="mt-4 text-xs text-gray-500 flex items-center gap-2">
212
+ <i class="fas fa-stopwatch"></i>
213
+ <span>Assumptions must be explicit (latency, slippage)</span>
214
+ </div>
215
+ </button>
216
+
217
+ <!-- AI Scientist -->
218
+ <button type="button"
219
+ class="program-card text-left rounded-2xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/55 hover:bg-gray-900/45 transition p-5 conscious-element"
220
+ data-dossier="ai_scientist">
221
+ <div class="flex items-start justify-between gap-4">
222
+ <div>
223
+ <div class="text-lg font-semibold text-gray-100">AI Scientist</div>
224
+ <div class="text-xs text-gray-500 mt-1">Hypothesis β†’ Experiment β†’ Report</div>
225
+ </div>
226
+ <span class="badge"><span class="dot dot-proto"></span>Prototype</span>
227
+ </div>
228
+ <p class="text-sm text-gray-300 mt-4 leading-relaxed">
229
+ An internal research engine that standardizes experiments, enforces reproducibility, and generates concise research notes with uncertainty.
230
+ </p>
231
+ <div class="mt-4 text-xs text-gray-500 flex items-center gap-2">
232
+ <i class="fas fa-flask"></i>
233
+ <span>Reproducibility is a feature, not a slogan</span>
234
+ </div>
235
+ </button>
236
+
237
+ <!-- Agentic Workforce -->
238
+ <button type="button"
239
+ class="program-card text-left rounded-2xl border border-gray-800 bg-gray-900/30 hover:border-indigo-500/55 hover:bg-gray-900/45 transition p-5 conscious-element md:col-span-2"
240
+ data-dossier="agentic_workforce">
241
+ <div class="flex items-start justify-between gap-4">
242
+ <div>
243
+ <div class="text-lg font-semibold text-gray-100">Agentic Workforce</div>
244
+ <div class="text-xs text-gray-500 mt-1">Autonomous workflows under governance</div>
245
+ </div>
246
+ <span class="badge"><span class="dot dot-concept"></span>Concept</span>
247
+ </div>
248
+ <p class="text-sm text-gray-300 mt-4 leading-relaxed">
249
+ β€œAI employees” as controlled agents: scoped permissions, logging, approval gates, and outcome verification.
250
+ </p>
251
+ <div class="mt-4 text-xs text-gray-500 flex items-center gap-2">
252
+ <i class="fas fa-key"></i>
253
+ <span>Permissions + audits + fail-closed behaviors</span>
254
+ </div>
255
+ </button>
256
+
257
  </div>
 
 
 
 
 
 
 
 
 
 
258
  </div>
259
  </div>
260
 
261
+ <!-- RIGHT: Dossier Panel -->
262
+ <div class="lg:col-span-2 rounded-2xl border border-gray-800 bg-gray-900/30 overflow-hidden">
263
+ <div class="px-6 py-5 border-b border-gray-800/60">
264
+ <div class="flex items-start justify-between gap-4">
265
+ <div>
266
+ <div id="dossier-title" class="text-lg font-semibold text-gray-100">Dossier</div>
267
+ <div id="dossier-subtitle" class="text-xs text-gray-500 mt-1">Select a module to load details.</div>
268
+ </div>
269
+ <div id="dossier-status"
270
+ class="text-xs px-2.5 py-1 rounded-full border border-indigo-500/30 text-indigo-200 bg-indigo-900/15">
271
+ READY
272
+ </div>
273
  </div>
 
 
 
 
 
 
 
 
 
 
274
  </div>
 
275
 
276
+ <div class="p-6 space-y-5 max-h-[740px] overflow-auto thin-scroll">
277
+ <div class="rounded-xl border border-gray-800 bg-black/20 p-4">
278
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">Summary</div>
279
+ <div id="dossier-body" class="text-sm text-gray-300 leading-relaxed">
280
+ This panel is designed to be stable and audit-friendly: scope, assumptions, evaluation protocol, and access gates.
281
+ </div>
282
+ </div>
283
+
284
+ <div class="rounded-xl border border-gray-800 bg-black/20 p-4">
285
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">Evidence Capsule</div>
286
+ <ul id="dossier-evidence" class="text-sm text-gray-300 space-y-1">
287
+ <li class="text-gray-500">No module selected.</li>
288
+ </ul>
289
+ </div>
290
+
291
+ <div class="rounded-xl border border-gray-800 bg-black/20 p-4">
292
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">Public Interface</div>
293
+ <div id="dossier-public" class="text-sm text-gray-300 leading-relaxed">
294
+ Public copy remains conservative. Claims scale with verified evidence.
295
+ </div>
296
+ </div>
297
+
298
+ <div class="rounded-xl border border-gray-800 bg-black/20 p-4">
299
+ <div class="text-xs text-gray-400 uppercase tracking-wider mb-2">Evaluation Protocol</div>
300
+ <div id="dossier-eval" class="text-sm text-gray-300 leading-relaxed">
301
+ Define the benchmark first; then allow the method to earn its reputation.
302
+ </div>
303
+ </div>
304
+
305
+ <div class="flex flex-col gap-3">
306
+ <button id="dossier-primary"
307
+ class="px-5 py-3 rounded-xl bg-gradient-to-r from-indigo-600 to-purple-600 hover:opacity-90 transition">
308
+ Request Access
309
+ </button>
310
+ <button id="dossier-secondary"
311
+ class="px-5 py-3 rounded-xl border border-gray-700 bg-gray-900/20 hover:bg-gray-900/35 transition">
312
+ Open Console
313
+ </button>
314
+ </div>
315
+
316
+ <div id="dossier-meta" class="text-xs text-gray-500">
317
+ Last updated: <span class="text-gray-300">β€”</span>
318
  </div>
 
319
  </div>
320
+ </div>
321
+
322
+ </div>
323
+ </div>
324
+ </section>
325
+
326
+ <!-- CAPABILITY PRIMITIVES (SHORT, NON-BROCHURE) -->
327
+ <section class="relative z-10 px-6 pb-16">
328
+ <div class="max-w-6xl mx-auto rounded-2xl border border-gray-800 bg-gray-900/20 overflow-hidden">
329
+ <div class="px-6 py-5 border-b border-gray-800/60 flex items-center justify-between">
330
+ <div>
331
+ <div class="text-sm text-gray-200 font-medium">Capability Primitives</div>
332
+ <div class="text-xs text-gray-500 mt-1">The building blocks behind programs.</div>
333
+ </div>
334
+ <div class="text-xs text-gray-500">Concise by design</div>
335
+ </div>
336
+
337
+ <div class="p-6 grid grid-cols-1 md:grid-cols-2 gap-4">
338
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5">
339
+ <div class="text-sm font-semibold text-gray-100">Causal Abstraction</div>
340
+ <div class="text-sm text-gray-300 mt-2">
341
+ Distill mechanisms, not correlations. Prefer intervention-relevant representations.
342
  </div>
343
  </div>
344
 
345
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5">
346
+ <div class="text-sm font-semibold text-gray-100">Regime Awareness</div>
347
+ <div class="text-sm text-gray-300 mt-2">
348
+ Models must survive distribution shift; calibration and uncertainty are first-class.
 
 
 
 
349
  </div>
350
+ </div>
351
+
352
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5">
353
+ <div class="text-sm font-semibold text-gray-100">Experiment Automation</div>
354
+ <div class="text-sm text-gray-300 mt-2">
355
+ Repeatable harnesses, tracked assumptions, and reportable deltas per change.
 
 
 
356
  </div>
357
  </div>
 
358
 
359
+ <div class="rounded-2xl border border-gray-800 bg-gray-900/30 p-5">
360
+ <div class="text-sm font-semibold text-gray-100">Agentic Orchestration</div>
361
+ <div class="text-sm text-gray-300 mt-2">
362
+ Autonomous workflows with permissions, logs, approvals, and fail-closed behavior.
363
+ </div>
364
+ </div>
365
  </div>
366
  </div>
367
  </section>
368
 
369
+ <!-- Minimal Footer -->
370
  <footer class="relative z-10 px-6 pb-10">
371
  <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">
372
  <div class="text-sm text-gray-500">Β© 2025 SILENTPATTERN. All rights reserved.</div>
 
379
  </div>
380
  </footer>
381
 
382
+ <!-- ACCESS MODAL -->
383
  <div id="access-modal"
384
  class="fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm modal modal-hidden"
385
  role="dialog" aria-modal="true" aria-labelledby="access-modal-title" tabindex="-1">
 
429
  </div>
430
  </div>
431
 
432
+ <!-- LAB NAVIGATOR -->
433
  <div id="lab-navigator"
434
  class="fixed inset-0 z-[60] bg-black/80 backdrop-blur-md modal modal-hidden"
435
  role="dialog" aria-modal="true" aria-label="Lab Navigator" tabindex="-1">
436
+
437
  <div class="absolute inset-0" data-lab-close="true"></div>
438
+
439
  <div class="relative w-full h-full flex items-center justify-center p-6">
440
  <div class="w-full max-w-6xl mx-auto grid grid-cols-1 lg:grid-cols-2 gap-6">
441
  <div class="relative rounded-2xl border border-gray-800 bg-gray-900/20 overflow-hidden">
 
449
  <div class="text-xs text-gray-500">Lab Navigator</div>
450
  </div>
451
  </div>
452
+
453
  <button id="lab-nav-close"
454
  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"
455
  aria-label="Close Lab Navigator">
 
458
  </div>
459
 
460
  <div class="relative p-6 min-h-[420px]">
461
+ <div class="absolute inset-0 opacity-70 pointer-events-none"
462
+ style="background: radial-gradient(circle at 30% 20%, rgba(99,102,241,0.18), transparent 45%),
463
+ radial-gradient(circle at 70% 70%, rgba(236,72,153,0.10), transparent 50%);"></div>
464
+
465
  <div class="relative grid grid-cols-1 sm:grid-cols-2 gap-3">
466
  <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"
467
+ data-nav="index.html">
468
  <div class="text-sm text-gray-200 font-medium">Start Here</div>
469
  <div class="text-xs text-gray-500 mt-1">Entry interface</div>
470
  </button>
471
 
472
  <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"
473
+ data-nav="capabilities.html">
474
  <div class="text-sm text-gray-200 font-medium">Programs</div>
475
  <div class="text-xs text-gray-500 mt-1">This page</div>
476
  </button>
477
 
478
  <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"
479
+ data-nav="chat.html">
480
  <div class="text-sm text-gray-200 font-medium">Console</div>
481
  <div class="text-xs text-gray-500 mt-1">Controlled chat</div>
482
  </button>
483
 
484
  <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"
485
+ data-nav="research.html">
486
  <div class="text-sm text-gray-200 font-medium">Research</div>
487
  <div class="text-xs text-gray-500 mt-1">Notes and briefs</div>
488
  </button>
489
 
490
+ <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"
491
+ data-nav="contact.html">
492
  <div class="text-sm text-gray-200 font-medium">Contact</div>
493
  <div class="text-xs text-gray-500 mt-1">Direct channel</div>
494
  </button>
 
 
 
 
 
 
495
  </div>
496
+
497
  <div class="relative mt-6 text-xs text-gray-500">
498
  Tip: Press <span class="text-gray-300">Esc</span> to close.
499
  </div>
 
502
 
503
  <div class="relative rounded-2xl border border-gray-800 bg-gray-900/30 overflow-hidden">
504
  <div class="px-6 py-5 border-b border-gray-800/60">
505
+ <div class="text-lg font-semibold text-gray-100">Navigation</div>
506
+ <div class="text-xs text-gray-500 mt-1">No top menu; only the lab interface.</div>
 
 
 
 
 
 
 
 
507
  </div>
508
+ <div class="p-6 text-sm text-gray-300 leading-relaxed">
509
+ SILENTPATTERN uses a reduced navigation surface to maintain a β€œlab console” feel.
510
+ Pages are modules. Each module is accessed through this navigator.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
511
  </div>
512
  </div>
513
 
 
515
  </div>
516
  </div>
517
 
 
518
  <script>
519
+ /* VANTA BACKGROUND */
520
+ const vantaEffect = VANTA.NET({
521
+ el: "#vanta-bg",
522
+ mouseControls: true,
523
+ touchControls: true,
524
+ gyroControls: false,
525
+ minHeight: 200.00,
526
+ minWidth: 200.00,
527
+ scale: 1.00,
528
+ scaleMobile: 1.00,
529
+ color: 0x4f46e5,
530
+ backgroundColor: 0x020617,
531
+ points: 12.00,
532
+ maxDistance: 20.00,
533
+ spacing: 15.00
534
+ });
535
+ window.addEventListener('resize', () => vantaEffect.resize());
536
+
537
+ /* MODAL HELPERS */
538
+ function trapFocus(modal) {
539
+ const focusable = modal.querySelectorAll('a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])');
540
+ if (!focusable.length) return;
541
+ const first = focusable[0];
542
+ const last = focusable[focusable.length - 1];
543
+
544
+ function handler(e) {
545
+ if (e.key === 'Tab') {
546
+ if (e.shiftKey) {
547
+ if (document.activeElement === first) { e.preventDefault(); last.focus(); }
548
+ } else {
549
+ if (document.activeElement === last) { e.preventDefault(); first.focus(); }
550
+ }
551
+ } else if (e.key === 'Escape') {
552
+ toggleModal(modal, false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
553
  }
554
+ }
555
+ modal.addEventListener('keydown', handler);
556
+ modal._focusHandler = handler;
557
+ }
558
+ function untrapFocus(modal) {
559
+ if (modal._focusHandler) {
560
+ modal.removeEventListener('keydown', modal._focusHandler);
561
+ delete modal._focusHandler;
562
+ }
563
+ }
564
+ const toggleModal = (modal, show) => {
565
+ if (show) {
566
+ modal.classList.remove('modal-hidden');
567
+ modal.classList.add('modal-visible');
568
+ document.body.style.overflow = 'hidden';
569
+ setTimeout(() => { modal.focus(); trapFocus(modal); }, 0);
570
+ } else {
571
+ modal.classList.remove('modal-visible');
572
+ modal.classList.add('modal-hidden');
573
+ document.body.style.overflow = '';
574
+ untrapFocus(modal);
575
+ }
576
+ };
577
+
578
+ /* ACCESS MODAL */
579
+ const accessModal = document.getElementById('access-modal');
580
+ const accessBtn = document.getElementById('access-btn');
581
+ const closeAccessModal = document.getElementById('close-access-modal');
582
+
583
+ accessBtn.addEventListener('click', () => {
584
+ toggleModal(accessModal, true);
585
+ setTimeout(() => document.getElementById('name').focus(), 50);
586
+ });
587
+ closeAccessModal.addEventListener('click', () => toggleModal(accessModal, false));
588
+ accessModal.addEventListener('click', (e) => { if (e.target === accessModal) toggleModal(accessModal, false); });
589
+
590
+ document.getElementById('access-form').addEventListener('submit', (e) => {
591
+ e.preventDefault();
592
+ const name = document.getElementById('name').value.trim();
593
+ const email = document.getElementById('email').value.trim();
594
+ const institution = document.getElementById('institution').value.trim();
595
+ const purpose = document.getElementById('purpose').value;
596
+ if (!name || !email || !institution || !purpose) {
597
+ alert('Please fill in all fields.');
598
+ return;
599
+ }
600
+ alert('Request received. You will be contacted after review.');
601
+ e.target.reset();
602
+ toggleModal(accessModal, false);
603
+ });
604
+
605
+ /* LAB NAVIGATOR */
606
+ const labNav = document.getElementById('lab-navigator');
607
+ const labNavBtn = document.getElementById('lab-nav-btn');
608
+ const labNavClose = document.getElementById('lab-nav-close');
609
+
610
+ function openLabNav() { toggleModal(labNav, true); setTimeout(() => labNav.focus(), 0); }
611
+ function closeLabNav() { toggleModal(labNav, false); }
612
+
613
+ labNavBtn.addEventListener('click', openLabNav);
614
+ labNavClose.addEventListener('click', closeLabNav);
615
 
616
+ labNav.addEventListener('click', (e) => {
617
+ const shouldClose = e.target && e.target.getAttribute('data-lab-close') === 'true';
618
+ if (shouldClose) closeLabNav();
619
  });
620
+
621
+ document.querySelectorAll('.lab-node').forEach(btn => {
622
+ btn.addEventListener('click', () => {
623
+ const href = btn.getAttribute('data-nav');
624
+ if (href) window.location.href = href;
625
+ });
626
+ });
627
+
628
+ /* DOSSIERS */
629
+ const DOSSIERS = {
630
+ mcap: {
631
+ title: "MCAP",
632
+ subtitle: "Minimal Causal Abstraction Principle",
633
+ status: "PROTOTYPE",
634
+ body:
635
+ "MCAP is a proposed principle for building minimal representations of systems that preserve intervention-relevant causal structure. The public posture remains conservative until results are reproduced and benchmarked.",
636
+ evidence: [
637
+ "Defined abstraction objective (intervention-relevant compression)",
638
+ "Planned: causal fidelity checks under interventions",
639
+ "Planned: baseline comparisons (causal discovery + representation learning)"
640
+ ],
641
+ public:
642
+ "Public-facing language should emphasize: a research principle, an evaluation harness, and transparent baselines. Avoid performance claims until replicated.",
643
+ eval:
644
+ "Evaluation focus: (1) identifiability assumptions, (2) interventional accuracy, (3) stability under distribution shift, (4) ablation against simpler baselines. Prefer preregistered protocols where possible.",
645
+ primary: { label: "Request Access", action: () => accessBtn.click() },
646
+ secondary: { label: "Open Console", action: () => { window.location.href = "chat.html"; } },
647
+ updated: "β€”"
648
+ },
649
+ chai: {
650
+ title: "CHAI",
651
+ subtitle: "Forecasting & regime inference stack",
652
+ status: "CONCEPT",
653
+ body:
654
+ "CHAI is positioned as a forecasting pipeline that prioritizes robustness: regime detection, calibration, and evidence-first evaluation. Markets are adversarial; the protocol is the product.",
655
+ evidence: [
656
+ "Regime-aware framing (distribution shift explicit)",
657
+ "Planned: walk-forward evaluation + leakage controls",
658
+ "Planned: calibration and uncertainty reporting"
659
+ ],
660
+ public:
661
+ "Public copy should emphasize methodology and evaluation (walk-forward, leakage prevention, calibration). Avoid any statement implying guaranteed returns or β€œhigh accuracy.”",
662
+ eval:
663
+ "Evaluation focus: strict temporal splits, realistic transaction cost modeling, sensitivity to slippage assumptions, and robustness across assets/regimes. Report uncertainty and failure modes.",
664
+ primary: { label: "Request Access", action: () => accessBtn.click() },
665
+ secondary: { label: "Open Console", action: () => { window.location.href = "chat.html"; } },
666
+ updated: "β€”"
667
+ },
668
+ quantum_lambda: {
669
+ title: "Quantum Lambda",
670
+ subtitle: "High-frequency decision systems",
671
+ status: "CONCEPT",
672
+ body:
673
+ "Quantum Lambda is framed as a decision system under tight latency constraints. The core requirement is explicit assumptions: data latency, execution model, risk limits, and compliance boundaries.",
674
+ evidence: [
675
+ "Microstructure-aware constraints (latency/slippage explicit)",
676
+ "Planned: simulation harness with realistic fills",
677
+ "Planned: risk controls as first-class objects"
678
+ ],
679
+ public:
680
+ "Public copy should focus on systems engineering (constraints, risk, audit trails). Do not imply edge without verification. Emphasize that this is research, not a trading service.",
681
+ eval:
682
+ "Evaluation focus: execution realism, latency budgets, out-of-sample stability, and adversarial conditions. If assumptions are not auditable, results are not meaningful.",
683
+ primary: { label: "Request Access", action: () => accessBtn.click() },
684
+ secondary: { label: "Open Console", action: () => { window.location.href = "chat.html"; } },
685
+ updated: "β€”"
686
+ },
687
+ ai_scientist: {
688
+ title: "AI Scientist",
689
+ subtitle: "Hypothesis β†’ Experiment β†’ Report",
690
+ status: "PROTOTYPE",
691
+ body:
692
+ "The AI Scientist is the lab’s internal instrument: it standardizes experiments, manages baselines, logs assumptions, and produces concise research notes with uncertainty and reproducibility hooks.",
693
+ evidence: [
694
+ "Experiment templates (dataset β†’ protocol β†’ metrics)",
695
+ "Baseline registry + ablation tracking",
696
+ "Report generator (results + uncertainty + failure modes)"
697
+ ],
698
+ public:
699
+ "Public positioning: an internal research engine for reproducibility and speed. Emphasize transparency, auditable reports, and discipline in evaluation.",
700
+ eval:
701
+ "Evaluation focus: reproducibility rates, time-to-result, and quality of decision-making under uncertainty. Output must be traceable from claim β†’ experiment β†’ evidence.",
702
+ primary: { label: "Open Console", action: () => { window.location.href = "chat.html"; } },
703
+ secondary: { label: "Research", action: () => { window.location.href = "research.html"; } },
704
+ updated: "β€”"
705
+ },
706
+ agentic_workforce: {
707
+ title: "Agentic Workforce",
708
+ subtitle: "Autonomous workflows under governance",
709
+ status: "CONCEPT",
710
+ body:
711
+ "Agentic AI employees are introduced as controlled agents, not unbounded automation: scoped permissions, action logs, approval gates, and verification layers. Governance is the differentiator.",
712
+ evidence: [
713
+ "Scope definitions (what agents can and cannot do)",
714
+ "Audit trails (logs, transcripts, tool usage)",
715
+ "Approval gates (human-in-the-loop where required)"
716
+ ],
717
+ public:
718
+ "Public positioning: a governed agent platform for research ops and internal productivity. Avoid anthropomorphic claims; emphasize controls, accountability, and measurable outcomes.",
719
+ eval:
720
+ "Evaluation focus: error rates, containment failures avoided, auditability, and ROI in constrained workflows (data prep, experiments, reporting). Fail-closed behaviors are required.",
721
+ primary: { label: "Request Access", action: () => accessBtn.click() },
722
+ secondary: { label: "Contact", action: () => { window.location.href = "contact.html"; } },
723
+ updated: "β€”"
724
+ }
725
+ };
726
+
727
+ const dossierTitle = document.getElementById('dossier-title');
728
+ const dossierSubtitle = document.getElementById('dossier-subtitle');
729
+ const dossierStatus = document.getElementById('dossier-status');
730
+ const dossierBody = document.getElementById('dossier-body');
731
+ const dossierEvidence = document.getElementById('dossier-evidence');
732
+ const dossierPublic = document.getElementById('dossier-public');
733
+ const dossierEval = document.getElementById('dossier-eval');
734
+ const dossierPrimary = document.getElementById('dossier-primary');
735
+ const dossierSecondary = document.getElementById('dossier-secondary');
736
+ const dossierMeta = document.getElementById('dossier-meta');
737
+
738
+ function renderDossier(key) {
739
+ const d = DOSSIERS[key];
740
+ if (!d) return;
741
+
742
+ dossierTitle.textContent = d.title;
743
+ dossierSubtitle.textContent = d.subtitle;
744
+ dossierStatus.textContent = d.status;
745
+
746
+ dossierBody.textContent = d.body;
747
+
748
+ dossierEvidence.innerHTML = "";
749
+ d.evidence.forEach(item => {
750
+ const li = document.createElement('li');
751
+ li.textContent = item;
752
+ dossierEvidence.appendChild(li);
753
+ });
754
+
755
+ dossierPublic.textContent = d.public;
756
+ dossierEval.textContent = d.eval;
757
+
758
+ dossierPrimary.textContent = d.primary.label;
759
+ dossierPrimary.onclick = d.primary.action;
760
+
761
+ dossierSecondary.textContent = d.secondary.label;
762
+ dossierSecondary.onclick = d.secondary.action;
763
+
764
+ dossierMeta.innerHTML = `Last updated: <span class="text-gray-300">${d.updated}</span>`;
765
+ }
766
+
767
+ document.querySelectorAll('.program-card').forEach(btn => {
768
+ btn.addEventListener('click', () => renderDossier(btn.getAttribute('data-dossier')));
769
+ });
770
+
771
+ /* ESC behavior */
772
+ document.addEventListener('keydown', (e) => {
773
+ if (e.key === 'Escape') {
774
+ if (labNav && !labNav.classList.contains('modal-hidden')) closeLabNav();
775
+ if (accessModal && !accessModal.classList.contains('modal-hidden')) toggleModal(accessModal, false);
776
+ }
777
+ });
778
+
779
+ /* Default dossier */
780
+ renderDossier('mcap');
781
  </script>
782
  </body>
783
  </html>