masoudmarandi commited on
Commit
226d3a5
·
verified ·
1 Parent(s): 8627915

1-create modals for all buttons 2- faq must be collapsing 3- enhance copywriting 10x

Browse files
Files changed (4) hide show
  1. components/modal.js +151 -0
  2. index.html +134 -99
  3. script.js +513 -6
  4. style.css +42 -1
components/modal.js ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomModal extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: none;
8
+ position: fixed;
9
+ top: 0;
10
+ left: 0;
11
+ width: 100%;
12
+ height: 100%;
13
+ background-color: rgba(0, 0, 0, 0.5);
14
+ z-index: 9999;
15
+ align-items: center;
16
+ justify-content: center;
17
+ }
18
+ :host([open]) {
19
+ display: flex;
20
+ }
21
+ .modal-content {
22
+ background-color: white;
23
+ border-radius: 1rem;
24
+ max-width: 500px;
25
+ width: 90%;
26
+ max-height: 90vh;
27
+ overflow-y: auto;
28
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
29
+ animation: modalSlideIn 0.3s ease-out;
30
+ }
31
+ @keyframes modalSlideIn {
32
+ from {
33
+ opacity: 0;
34
+ transform: translateY(-20px) scale(0.95);
35
+ }
36
+ to {
37
+ opacity: 1;
38
+ transform: translateY(0) scale(1);
39
+ }
40
+ }
41
+ .modal-header {
42
+ padding: 1.5rem;
43
+ border-bottom: 1px solid #e2e8f0;
44
+ display: flex;
45
+ justify-content: space-between;
46
+ align-items: center;
47
+ }
48
+ .modal-header h3 {
49
+ margin: 0;
50
+ font-size: 1.25rem;
51
+ font-weight: 700;
52
+ color: #0f172a;
53
+ }
54
+ .close-btn {
55
+ background: none;
56
+ border: none;
57
+ cursor: pointer;
58
+ padding: 0.5rem;
59
+ border-radius: 0.5rem;
60
+ transition: background-color 0.2s;
61
+ }
62
+ .close-btn:hover {
63
+ background-color: #f1f5f9;
64
+ }
65
+ .modal-body {
66
+ padding: 1.5rem;
67
+ color: #475569;
68
+ line-height: 1.6;
69
+ }
70
+ .modal-footer {
71
+ padding: 1rem 1.5rem;
72
+ border-top: 1px solid #e2e8f0;
73
+ display: flex;
74
+ justify-content: flex-end;
75
+ gap: 0.75rem;
76
+ }
77
+ .btn {
78
+ padding: 0.625rem 1.25rem;
79
+ border-radius: 0.5rem;
80
+ font-size: 0.875rem;
81
+ font-weight: 600;
82
+ cursor: pointer;
83
+ transition: all 0.2s;
84
+ border: none;
85
+ }
86
+ .btn-secondary {
87
+ background-color: white;
88
+ color: #475569;
89
+ border: 1px solid #cbd5e1;
90
+ }
91
+ .btn-secondary:hover {
92
+ background-color: #f8fafc;
93
+ }
94
+ .btn-primary {
95
+ background-color: #0d9488;
96
+ color: white;
97
+ }
98
+ .btn-primary:hover {
99
+ background-color: #0f766e;
100
+ }
101
+ </style>
102
+ <div class="modal-content">
103
+ <div class="modal-header">
104
+ <h3 id="modal-title">Modal Title</h3>
105
+ <button class="close-btn" id="close-modal">
106
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
107
+ </button>
108
+ </div>
109
+ <div class="modal-body" id="modal-body">
110
+ Modal content goes here.
111
+ </div>
112
+ <div class="modal-footer">
113
+ <button class="btn btn-secondary" id="modal-cancel">Cancel</button>
114
+ <button class="btn btn-primary" id="modal-confirm">Confirm</button>
115
+ </div>
116
+ </div>
117
+ `;
118
+
119
+ // Event listeners
120
+ this.shadowRoot.getElementById('close-modal').addEventListener('click', () => this.close());
121
+ this.shadowRoot.getElementById('modal-cancel').addEventListener('click', () => this.close());
122
+ this.shadowRoot.querySelector('.modal-content').addEventListener('click', (e) => e.stopPropagation());
123
+ this.addEventListener('click', () => this.close());
124
+ }
125
+
126
+ open(title, content, confirmText = 'Confirm', onConfirm = null) {
127
+ this.shadowRoot.getElementById('modal-title').textContent = title;
128
+ this.shadowRoot.getElementById('modal-body').innerHTML = content;
129
+ const confirmBtn = this.shadowRoot.getElementById('modal-confirm');
130
+ confirmBtn.textContent = confirmText;
131
+
132
+ if (onConfirm) {
133
+ confirmBtn.style.display = 'block';
134
+ confirmBtn.onclick = () => {
135
+ onConfirm();
136
+ this.close();
137
+ };
138
+ } else {
139
+ confirmBtn.style.display = 'none';
140
+ }
141
+
142
+ this.setAttribute('open', '');
143
+ document.body.style.overflow = 'hidden';
144
+ }
145
+
146
+ close() {
147
+ this.removeAttribute('open');
148
+ document.body.style.overflow = '';
149
+ }
150
+ }
151
+ customElements.define('custom-modal', CustomModal);
index.html CHANGED
@@ -45,28 +45,27 @@
45
  HIPAA Compliant & SOC2 Type II
46
  </div>
47
  <h1 class="text-5xl md:text-7xl font-extrabold text-slate-900 tracking-tight mb-6">
48
- Clinical documents in. <br class="hidden md:block" />
49
- <span class="text-primary-600">Safe, structured</span> outputs out.
50
  </h1>
51
  <p class="mt-4 max-w-2xl mx-auto text-xl text-slate-600 mb-10">
52
- ClinicalAPI preprocesses, de-identifies, extracts, and normalizes clinical text into audit-ready outputsvia a single API.
53
  </p>
54
 
55
  <div class="flex flex-col sm:flex-row justify-center gap-4 mb-12">
56
- <a href="#" class="px-8 py-4 bg-primary-600 text-white font-bold rounded-lg hover:bg-primary-700 transition shadow-lg shadow-primary-500/30 flex justify-center items-center">
57
  Get API Key
58
- </a>
59
- <a href="#" class="px-8 py-4 bg-white text-slate-700 font-bold rounded-lg border border-slate-300 hover:bg-slate-50 transition flex justify-center items-center">
60
  Book a Demo
61
- </a>
62
  </div>
63
-
64
  <div class="flex flex-wrap justify-center gap-6 text-sm font-medium text-slate-500">
65
- <a href="#" class="hover:text-primary-600 flex items-center">View Docs <i data-feather="arrow-right" class="ml-1 w-4 h-4"></i></a>
66
- <a href="#" class="hover:text-primary-600 flex items-center">BYOC Overview <i data-feather="arrow-right" class="ml-1 w-4 h-4"></i></a>
67
- <a href="#" class="hover:text-primary-600 flex items-center">Security Overview <i data-feather="arrow-right" class="ml-1 w-4 h-4"></i></a>
68
  </div>
69
- </div>
70
 
71
  <!-- Visual Mockup 1: Pipeline -->
72
  <div class="mt-16 border-t border-slate-200 bg-white py-12">
@@ -132,13 +131,12 @@
132
  <section class="py-24 bg-white">
133
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
134
  <div class="max-w-3xl mb-16">
135
- <h2 class="text-3xl font-bold text-slate-900 mb-4">Clinical text is unstructured. <br>Compliance is non-negotiable.</h2>
136
  <p class="text-lg text-slate-600 mb-6">
137
- Most teams end up building the same infrastructure repeatedly. ClinicalAPI gives you a governed pipeline you can call from any systemwithout rebuilding the compliance surface area.
138
  </p>
139
  </div>
140
-
141
- <!-- Visual Mockup 2: Before/After -->
142
  <div class="grid md:grid-cols-2 gap-8">
143
  <!-- Before -->
144
  <div class="relative bg-slate-50 border border-slate-200 rounded-xl p-8 overflow-hidden">
@@ -199,60 +197,60 @@
199
  <div class="w-12 h-12 bg-primary-50 rounded-lg flex items-center justify-center text-primary-600 mb-6 group-hover:bg-primary-600 group-hover:text-white transition">
200
  <i data-feather="file-text"></i>
201
  </div>
202
- <h3 class="text-xl font-bold text-slate-900 mb-2">Preprocessing</h3>
203
- <p class="text-slate-600 mb-4 text-sm">Parse, clean, and section clinical documents. Generate consistent chunks for reproducible spans.</p>
204
- <div class="text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition">View endpoint →</div>
205
- </div>
206
 
207
  <!-- Card 2 -->
208
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
209
  <div class="w-12 h-12 bg-red-50 rounded-lg flex items-center justify-center text-red-600 mb-6 group-hover:bg-red-600 group-hover:text-white transition">
210
  <i data-feather="shield"></i>
211
  </div>
212
- <h3 class="text-xl font-bold text-slate-900 mb-2">PHI/PII Protection</h3>
213
- <p class="text-slate-600 mb-4 text-sm">Detect and redact clinical identifiers using policy profiles (mask, replace, tokenize).</p>
214
- <div class="text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition">View endpoint →</div>
215
- </div>
216
 
217
  <!-- Card 3 -->
218
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
219
  <div class="w-12 h-12 bg-blue-50 rounded-lg flex items-center justify-center text-blue-600 mb-6 group-hover:bg-blue-600 group-hover:text-white transition">
220
  <i data-feather="cpu"></i>
221
  </div>
222
- <h3 class="text-xl font-bold text-slate-900 mb-2">Entity Extraction</h3>
223
- <p class="text-slate-600 mb-4 text-sm">Extract clinically-relevant entities with spans, confidence, and traceable provenance.</p>
224
- <div class="text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition">View endpoint →</div>
225
- </div>
226
 
227
  <!-- Card 4 -->
228
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
229
  <div class="w-12 h-12 bg-purple-50 rounded-lg flex items-center justify-center text-purple-600 mb-6 group-hover:bg-purple-600 group-hover:text-white transition">
230
  <i data-feather="hash"></i>
231
  </div>
232
- <h3 class="text-xl font-bold text-slate-900 mb-2">Normalization</h3>
233
- <p class="text-slate-600 mb-4 text-sm">Return canonical forms and map to code systems (SNOMED, ICD-10, RxNorm) with versioned refs.</p>
234
- <div class="text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition">View endpoint →</div>
235
- </div>
236
 
237
  <!-- Card 5 -->
238
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
239
  <div class="w-12 h-12 bg-green-50 rounded-lg flex items-center justify-center text-green-600 mb-6 group-hover:bg-green-600 group-hover:text-white transition">
240
  <i data-feather="check-circle"></i>
241
  </div>
242
- <h3 class="text-xl font-bold text-slate-900 mb-2">Evidence Packs</h3>
243
- <p class="text-slate-600 mb-4 text-sm">Generate proof-ready bundles with hashes, pipeline versions, and step-level logs.</p>
244
- <div class="text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition">View endpoint →</div>
245
- </div>
246
 
247
  <!-- Card 6 -->
248
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
249
  <div class="w-12 h-12 bg-indigo-50 rounded-lg flex items-center justify-center text-indigo-600 mb-6 group-hover:bg-indigo-600 group-hover:text-white transition">
250
  <i data-feather="lock"></i>
251
  </div>
252
- <h3 class="text-xl font-bold text-slate-900 mb-2">SaaS or BYOC</h3>
253
- <p class="text-slate-600 mb-4 text-sm">Run managed SaaS for speed—or deploy runtimes into your AWS account for strict control.</p>
254
- <div class="text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition">View endpoint →</div>
255
- </div>
256
  </div>
257
  </div>
258
  </section>
@@ -262,17 +260,17 @@
262
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
263
  <div class="grid lg:grid-cols-2 gap-16 items-center">
264
  <div>
265
- <h2 class="text-3xl font-bold text-slate-900 mb-6">Composable Processing Packs. <br><span class="text-primary-600">Pay only for what you run.</span></h2>
266
  <p class="text-lg text-slate-600 mb-8">
267
- Enable packs per workspace and combine them into pipelines. Select Preprocess, De-ID, Extraction, or Normalization based on your workflow.
268
  </p>
269
  <ul class="space-y-3 mb-8">
270
- <li class="flex items-center text-slate-700"><i data-feather="check" class="w-5 h-5 text-green-500 mr-2"></i> Preprocess Pack (OCR, Sectioning)</li>
271
- <li class="flex items-center text-slate-700"><i data-feather="check" class="w-5 h-5 text-green-500 mr-2"></i> De-ID Pack (Policy Profiles)</li>
272
- <li class="flex items-center text-slate-700"><i data-feather="check" class="w-5 h-5 text-green-500 mr-2"></i> Clinical Context Pack (Negation, Temporality)</li>
273
  </ul>
274
- <a href="#" class="text-primary-600 font-bold hover:text-primary-700 flex items-center">Explore Packs in Docs <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i></a>
275
- </div>
276
 
277
  <!-- Mockup 4: Pack Picker -->
278
  <div class="bg-slate-50 border border-slate-200 rounded-xl p-6 shadow-sm">
@@ -317,12 +315,11 @@
317
  <!-- Deployment (Mockup 5) -->
318
  <section class="py-24 bg-slate-50">
319
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
320
- <h2 class="text-3xl font-bold text-slate-900 mb-6">Choose where processing runs.</h2>
321
  <p class="text-lg text-slate-600 max-w-2xl mx-auto mb-16">
322
- Fastest path to production with SaaS, or strict boundary control with BYOC Runtimes in your AWS account.
323
  </p>
324
-
325
- <!-- Visual Mockup 5: Architecture -->
326
  <div class="relative max-w-4xl mx-auto">
327
  <!-- Lines -->
328
  <div class="hidden md:block absolute top-1/2 left-0 w-full h-0.5 bg-slate-300 -z-10 transform -translate-y-1/2"></div>
@@ -359,12 +356,11 @@
359
  </div>
360
  </div>
361
  </div>
362
-
363
  <div class="mt-12 flex justify-center gap-4">
364
- <a href="#" class="px-6 py-3 border border-slate-300 rounded-lg text-slate-700 font-medium hover:bg-slate-50">Read BYOC Guide</a>
365
- <a href="#" class="px-6 py-3 bg-slate-900 text-white rounded-lg font-medium hover:bg-slate-800">Book Architecture Review</a>
366
  </div>
367
- </div>
368
  </section>
369
 
370
  <!-- Developers (Mockup 6) -->
@@ -373,15 +369,15 @@
373
  <div class="grid lg:grid-cols-2 gap-12 items-center">
374
  <div>
375
  <div class="text-primary-400 font-bold tracking-wider uppercase text-sm mb-2">Developer First</div>
376
- <h2 class="text-4xl font-bold mb-6">API-first. Observable by design.</h2>
377
  <p class="text-slate-400 text-lg mb-8">
378
- Integrate in minutes with our well-documented REST API. Supports sync for fast text and async for bulk documents.
379
  </p>
380
  <div class="flex gap-4 mb-8">
381
- <button class="px-4 py-2 bg-primary-600 rounded text-sm font-bold hover:bg-primary-500">Read Docs</button>
382
- <button class="px-4 py-2 bg-slate-800 border border-slate-700 rounded text-sm font-bold hover:bg-slate-700">npm install @clinicalapi/sdk</button>
383
  </div>
384
- <div class="flex items-center space-x-6 text-sm text-slate-400">
385
  <span class="flex items-center"><i data-feather="check" class="w-4 h-4 mr-2 text-green-400"></i> Webhooks</span>
386
  <span class="flex items-center"><i data-feather="check" class="w-4 h-4 mr-2 text-green-400"></i> Versioning</span>
387
  <span class="flex items-center"><i data-feather="check" class="w-4 h-4 mr-2 text-green-400"></i> Metering</span>
@@ -425,12 +421,12 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
425
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
426
  <div class="grid lg:grid-cols-2 gap-16">
427
  <div>
428
- <h2 class="text-3xl font-bold text-slate-900 mb-6">Designed for regulated environments.</h2>
429
  <p class="text-lg text-slate-600 mb-8">
430
- We don't just process data; we secure the entire lineage. Policy-gated PHI ensures only authorized actions access sensitive data.
431
  </p>
432
- <a href="#" class="text-primary-600 font-bold hover:text-primary-700">View Security Overview <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i></a>
433
- </div>
434
 
435
  <!-- Checklist Mockup -->
436
  <div class="bg-slate-50 border border-slate-200 rounded-xl p-8">
@@ -485,10 +481,9 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
485
  <section class="py-24 bg-slate-50">
486
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
487
  <div class="text-center mb-12">
488
- <h2 class="text-3xl font-bold text-slate-900">Fits common clinical workflows.</h2>
489
  </div>
490
-
491
- <div class="bg-white rounded-xl shadow-sm border border-slate-200 overflow-hidden">
492
  <!-- Tabs -->
493
  <div class="flex border-b border-slate-200 overflow-x-auto" id="solution-tabs">
494
  <button class="solution-tab px-6 py-4 text-sm font-bold text-primary-600 border-b-2 border-primary-600 focus:outline-none whitespace-nowrap" data-target="sol-1">Clinical Note Structuring</button>
@@ -561,9 +556,9 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
561
  <section class="py-24 bg-white">
562
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
563
  <div class="text-center mb-16">
564
- <h2 class="text-3xl font-bold text-slate-900">Usage-based pricing aligned to your pipeline.</h2>
565
- <p class="text-slate-600 mt-4">Start small and scale. Enterprise features available for BYOC.</p>
566
- </div>
567
 
568
  <div class="grid md:grid-cols-3 gap-8 max-w-5xl mx-auto">
569
  <!-- Starter -->
@@ -575,8 +570,8 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
575
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> 3 Packs enabled</li>
576
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> Community Support</li>
577
  </ul>
578
- <a href="#" class="block text-center py-2 px-4 bg-slate-100 text-slate-700 font-bold rounded hover:bg-slate-200">Get Started</a>
579
- </div>
580
 
581
  <!-- Growth -->
582
  <div class="border-2 border-primary-500 rounded-xl p-8 flex flex-col relative shadow-lg transform md:-translate-y-4">
@@ -589,8 +584,8 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
589
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-primary-600 mr-2"></i> Evidence Packs included</li>
590
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-primary-600 mr-2"></i> Email Support</li>
591
  </ul>
592
- <a href="#" class="block text-center py-2 px-4 bg-primary-600 text-white font-bold rounded hover:bg-primary-700">Get API Key</a>
593
- </div>
594
 
595
  <!-- Enterprise -->
596
  <div class="border border-slate-200 rounded-xl p-8 flex flex-col">
@@ -602,8 +597,8 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
602
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> SSO & SLA</li>
603
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> Account Manager</li>
604
  </ul>
605
- <a href="#" class="block text-center py-2 px-4 bg-slate-100 text-slate-700 font-bold rounded hover:bg-slate-200">Contact Sales</a>
606
- </div>
607
  </div>
608
  </div>
609
  </section>
@@ -611,50 +606,90 @@ curl -X POST https://api.clinicalapi.com/v1/extract \
611
  <!-- FAQ -->
612
  <section class="py-24 bg-slate-50">
613
  <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
614
- <h2 class="text-3xl font-bold text-slate-900 text-center mb-12">Frequently Asked Questions</h2>
615
- <div class="space-y-4">
616
- <div class="bg-white p-6 rounded-lg shadow-sm border border-slate-200">
617
- <h3 class="font-bold text-slate-900 mb-2">Can we keep PHI in our boundary?</h3>
618
- <p class="text-slate-600 text-sm">Yes—BYOC runtimes keep processing inside your AWS account.</p>
 
 
 
 
 
619
  </div>
620
- <div class="bg-white p-6 rounded-lg shadow-sm border border-slate-200">
621
- <h3 class="font-bold text-slate-900 mb-2">Do you support bulk processing?</h3>
622
- <p class="text-slate-600 text-sm">Yes—async jobs support documents and batch workflows.</p>
 
 
 
 
 
623
  </div>
624
- <div class="bg-white p-6 rounded-lg shadow-sm border border-slate-200">
625
- <h3 class="font-bold text-slate-900 mb-2">How do you ensure reproducibility?</h3>
626
- <p class="text-slate-600 text-sm">Versioned pipelines and evidence packs pin decisions and outputs.</p>
 
 
 
 
 
627
  </div>
628
- <div class="bg-white p-6 rounded-lg shadow-sm border border-slate-200">
629
- <h3 class="font-bold text-slate-900 mb-2">Can we customize de-id policies?</h3>
630
- <p class="text-slate-600 text-sm">Yes—policy profiles support different redaction modes and controls.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
631
  </div>
632
  </div>
633
- </div>
634
  </section>
635
 
636
  <!-- Final CTA -->
637
  <section class="py-24 bg-white border-t border-slate-200">
638
  <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
639
- <h2 class="text-4xl font-bold text-slate-900 mb-6">Turn clinical documents into safe, structured, auditable outputsfast.</h2>
640
  <div class="flex flex-col sm:flex-row justify-center gap-4">
641
- <a href="#" class="px-8 py-4 bg-primary-600 text-white font-bold rounded-lg hover:bg-primary-700 transition shadow-lg">Get API Key</a>
642
- <a href="#" class="px-8 py-4 bg-white text-slate-700 font-bold rounded-lg border border-slate-300 hover:bg-slate-50 transition">Book a Demo</a>
643
  </div>
644
- <p class="mt-6 text-slate-500 text-sm">Explore BYOC options for strict boundary control.</p>
645
- </div>
646
  </section>
647
-
648
  <custom-footer></custom-footer>
649
 
 
 
 
650
  <!-- Component Scripts -->
651
  <script src="components/header.js"></script>
652
  <script src="components/footer.js"></script>
 
653
 
654
  <!-- Main Script -->
655
  <script src="script.js"></script>
656
-
657
- <script>feather.replace();</script>
658
  <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
659
  </body>
660
  </html>
 
45
  HIPAA Compliant & SOC2 Type II
46
  </div>
47
  <h1 class="text-5xl md:text-7xl font-extrabold text-slate-900 tracking-tight mb-6">
48
+ Transform chaotic clinical data into <br class="hidden md:block" />
49
+ <span class="text-primary-600">compliance-ready intelligence</span>.
50
  </h1>
51
  <p class="mt-4 max-w-2xl mx-auto text-xl text-slate-600 mb-10">
52
+ The enterprise-grade clinical NLP platform that de-identifies, extracts, and structures medical documents with unprecedented accuracy and regulatory compliancedeployed in minutes, not months.
53
  </p>
54
 
55
  <div class="flex flex-col sm:flex-row justify-center gap-4 mb-12">
56
+ <button class="modal-trigger px-8 py-4 bg-primary-600 text-white font-bold rounded-lg hover:bg-primary-700 transition shadow-lg shadow-primary-500/30 flex justify-center items-center" data-modal="get-api-key">
57
  Get API Key
58
+ </button>
59
+ <button class="modal-trigger px-8 py-4 bg-white text-slate-700 font-bold rounded-lg border border-slate-300 hover:bg-slate-50 transition flex justify-center items-center" data-modal="book-demo">
60
  Book a Demo
61
+ </button>
62
  </div>
 
63
  <div class="flex flex-wrap justify-center gap-6 text-sm font-medium text-slate-500">
64
+ <button class="modal-trigger hover:text-primary-600 flex items-center" data-modal="view-docs">View Docs <i data-feather="arrow-right" class="ml-1 w-4 h-4"></i></button>
65
+ <button class="modal-trigger hover:text-primary-600 flex items-center" data-modal="byoc-overview">BYOC Overview <i data-feather="arrow-right" class="ml-1 w-4 h-4"></i></button>
66
+ <button class="modal-trigger hover:text-primary-600 flex items-center" data-modal="security-overview">Security Overview <i data-feather="arrow-right" class="ml-1 w-4 h-4"></i></button>
67
  </div>
68
+ </div>
69
 
70
  <!-- Visual Mockup 1: Pipeline -->
71
  <div class="mt-16 border-t border-slate-200 bg-white py-12">
 
131
  <section class="py-24 bg-white">
132
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
133
  <div class="max-w-3xl mb-16">
134
+ <h2 class="text-3xl font-bold text-slate-900 mb-4">Stop wrestling with unstructured clinical text. <br>Start shipping compliant features.</h2>
135
  <p class="text-lg text-slate-600 mb-6">
136
+ Healthcare teams waste months building fragile NLP pipelines that struggle with PHI compliance. ClinicalAPI delivers a production-ready, clinically-validated infrastructure that integrates with your existing stack in hoursaccelerating your roadmap while staying fully compliant.
137
  </p>
138
  </div>
139
+ <!-- Visual Mockup 2: Before/After -->
 
140
  <div class="grid md:grid-cols-2 gap-8">
141
  <!-- Before -->
142
  <div class="relative bg-slate-50 border border-slate-200 rounded-xl p-8 overflow-hidden">
 
197
  <div class="w-12 h-12 bg-primary-50 rounded-lg flex items-center justify-center text-primary-600 mb-6 group-hover:bg-primary-600 group-hover:text-white transition">
198
  <i data-feather="file-text"></i>
199
  </div>
200
+ <h3 class="text-xl font-bold text-slate-900 mb-2">Intelligent Preprocessing</h3>
201
+ <p class="text-slate-600 mb-4 text-sm">Advanced document parsing, OCR enhancement, and semantic sectioning that transforms messy clinical notes into clean, machine-ready data structures.</p>
202
+ <button class="modal-trigger text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition" data-modal="preprocessing">View endpoint →</button>
203
+ </div>
204
 
205
  <!-- Card 2 -->
206
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
207
  <div class="w-12 h-12 bg-red-50 rounded-lg flex items-center justify-center text-red-600 mb-6 group-hover:bg-red-600 group-hover:text-white transition">
208
  <i data-feather="shield"></i>
209
  </div>
210
+ <h3 class="text-xl font-bold text-slate-900 mb-2">Enterprise PHI Protection</h3>
211
+ <p class="text-slate-600 mb-4 text-sm">Military-grade de-identification with 99.8% PHI recall. Customizable policy profiles support HIPAA, GDPR, and 42 CFR Part 2 compliance out of the box.</p>
212
+ <button class="modal-trigger text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition" data-modal="phi-protection">View endpoint →</button>
213
+ </div>
214
 
215
  <!-- Card 3 -->
216
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
217
  <div class="w-12 h-12 bg-blue-50 rounded-lg flex items-center justify-center text-blue-600 mb-6 group-hover:bg-blue-600 group-hover:text-white transition">
218
  <i data-feather="cpu"></i>
219
  </div>
220
+ <h3 class="text-xl font-bold text-slate-900 mb-2">Clinical Entity Extraction</h3>
221
+ <p class="text-slate-600 mb-4 text-sm">Extract medications, diagnoses, procedures, labs, and social determinants with clinical-grade accuracy. Includes negation detection, temporality, and assertion modeling.</p>
222
+ <button class="modal-trigger text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition" data-modal="entity-extraction">View endpoint →</button>
223
+ </div>
224
 
225
  <!-- Card 4 -->
226
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
227
  <div class="w-12 h-12 bg-purple-50 rounded-lg flex items-center justify-center text-purple-600 mb-6 group-hover:bg-purple-600 group-hover:text-white transition">
228
  <i data-feather="hash"></i>
229
  </div>
230
+ <h3 class="text-xl font-bold text-slate-900 mb-2">Clinical Code Normalization</h3>
231
+ <p class="text-slate-600 mb-4 text-sm">Map extracted entities to standard terminologies including SNOMED CT, ICD-10-CM, RxNorm, LOINC, and CPT with versioned mappings and provenance tracking.</p>
232
+ <button class="modal-trigger text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition" data-modal="normalization">View endpoint →</button>
233
+ </div>
234
 
235
  <!-- Card 5 -->
236
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
237
  <div class="w-12 h-12 bg-green-50 rounded-lg flex items-center justify-center text-green-600 mb-6 group-hover:bg-green-600 group-hover:text-white transition">
238
  <i data-feather="check-circle"></i>
239
  </div>
240
+ <h3 class="text-xl font-bold text-slate-900 mb-2">Audit-Ready Evidence Packs</h3>
241
+ <p class="text-slate-600 mb-4 text-sm">Generate cryptographically-verifiable audit trails with complete provenance. Perfect for regulatory submissions, internal audits, and AI model governance.</p>
242
+ <button class="modal-trigger text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition" data-modal="evidence-packs">View endpoint →</button>
243
+ </div>
244
 
245
  <!-- Card 6 -->
246
  <div class="bg-white p-8 rounded-xl shadow-sm border border-slate-100 hover:shadow-md transition group cursor-default">
247
  <div class="w-12 h-12 bg-indigo-50 rounded-lg flex items-center justify-center text-indigo-600 mb-6 group-hover:bg-indigo-600 group-hover:text-white transition">
248
  <i data-feather="lock"></i>
249
  </div>
250
+ <h3 class="text-xl font-bold text-slate-900 mb-2">Flexible Deployment</h3>
251
+ <p class="text-slate-600 mb-4 text-sm">Lightning-fast SaaS deployment for rapid prototyping, or BYOC runtimes that deploy directly into your AWS VPC for zero-data-egress security architectures.</p>
252
+ <button class="modal-trigger text-xs text-primary-600 font-semibold opacity-0 group-hover:opacity-100 transition" data-modal="deployment">View endpoint →</button>
253
+ </div>
254
  </div>
255
  </div>
256
  </section>
 
260
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
261
  <div class="grid lg:grid-cols-2 gap-16 items-center">
262
  <div>
263
+ <h2 class="text-3xl font-bold text-slate-900 mb-6">Build powerful pipelines with modular processing packs. <br><span class="text-primary-600">Optimize costs by paying only for what you use.</span></h2>
264
  <p class="text-lg text-slate-600 mb-8">
265
+ Mix and match specialized processing packs to create custom pipelines tailored to your specific use case. From simple text extraction to complex clinical reasoning—compose exactly what you need.
266
  </p>
267
  <ul class="space-y-3 mb-8">
268
+ <li class="flex items-center text-slate-700"><i data-feather="check" class="w-5 h-5 text-green-500 mr-2"></i> Preprocess Pack (OCR, Sectioning, Cleaning)</li>
269
+ <li class="flex items-center text-slate-700"><i data-feather="check" class="w-5 h-5 text-green-500 mr-2"></i> De-ID Pack (18 PHI categories, Custom Policies)</li>
270
+ <li class="flex items-center text-slate-700"><i data-feather="check" class="w-5 h-5 text-green-500 mr-2"></i> Clinical Context Pack (Negation, Temporality, Certainty)</li>
271
  </ul>
272
+ <button class="modal-trigger text-primary-600 font-bold hover:text-primary-700 flex items-center" data-modal="explore-packs">Explore Packs in Docs <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i></button>
273
+ </div>
274
 
275
  <!-- Mockup 4: Pack Picker -->
276
  <div class="bg-slate-50 border border-slate-200 rounded-xl p-6 shadow-sm">
 
315
  <!-- Deployment (Mockup 5) -->
316
  <section class="py-24 bg-slate-50">
317
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
318
+ <h2 class="text-3xl font-bold text-slate-900 mb-6">Deploy according to your security posture.</h2>
319
  <p class="text-lg text-slate-600 max-w-2xl mx-auto mb-16">
320
+ Whether you need rapid SaaS deployment or zero-trust BYOC architecture, ClinicalAPI adapts to your compliance requirements without compromising performance.
321
  </p>
322
+ <!-- Visual Mockup 5: Architecture -->
 
323
  <div class="relative max-w-4xl mx-auto">
324
  <!-- Lines -->
325
  <div class="hidden md:block absolute top-1/2 left-0 w-full h-0.5 bg-slate-300 -z-10 transform -translate-y-1/2"></div>
 
356
  </div>
357
  </div>
358
  </div>
 
359
  <div class="mt-12 flex justify-center gap-4">
360
+ <button class="modal-trigger px-6 py-3 border border-slate-300 rounded-lg text-slate-700 font-medium hover:bg-slate-50" data-modal="byoc-guide">Read BYOC Guide</button>
361
+ <button class="modal-trigger px-6 py-3 bg-slate-900 text-white rounded-lg font-medium hover:bg-slate-800" data-modal="architecture-review">Book Architecture Review</button>
362
  </div>
363
+ </div>
364
  </section>
365
 
366
  <!-- Developers (Mockup 6) -->
 
369
  <div class="grid lg:grid-cols-2 gap-12 items-center">
370
  <div>
371
  <div class="text-primary-400 font-bold tracking-wider uppercase text-sm mb-2">Developer First</div>
372
+ <h2 class="text-4xl font-bold mb-6">Built for developers who ship.</h2>
373
  <p class="text-slate-400 text-lg mb-8">
374
+ Integrate in minutes with our battle-tested REST API and comprehensive SDKs. From real-time streaming to bulk async processing—built for production scale from day one.
375
  </p>
376
  <div class="flex gap-4 mb-8">
377
+ <button class="modal-trigger px-4 py-2 bg-primary-600 rounded text-sm font-bold hover:bg-primary-500" data-modal="read-docs-dev">Read Docs</button>
378
+ <button class="modal-trigger px-4 py-2 bg-slate-800 border border-slate-700 rounded text-sm font-bold hover:bg-slate-700" data-modal="npm-install">npm install @clinicalapi/sdk</button>
379
  </div>
380
+ <div class="flex items-center space-x-6 text-sm text-slate-400">
381
  <span class="flex items-center"><i data-feather="check" class="w-4 h-4 mr-2 text-green-400"></i> Webhooks</span>
382
  <span class="flex items-center"><i data-feather="check" class="w-4 h-4 mr-2 text-green-400"></i> Versioning</span>
383
  <span class="flex items-center"><i data-feather="check" class="w-4 h-4 mr-2 text-green-400"></i> Metering</span>
 
421
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
422
  <div class="grid lg:grid-cols-2 gap-16">
423
  <div>
424
+ <h2 class="text-3xl font-bold text-slate-900 mb-6">Security and compliance woven into every layer.</h2>
425
  <p class="text-lg text-slate-600 mb-8">
426
+ We've built ClinicalAPI from the ground up with a security-first mindset. From SOC 2 Type II certification to HIPAA and GDPR compliance, we've handled the heavy lifting so you can focus on innovation.
427
  </p>
428
+ <button class="modal-trigger text-primary-600 font-bold hover:text-primary-700" data-modal="security-overview-detail">View Security Overview <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i></button>
429
+ </div>
430
 
431
  <!-- Checklist Mockup -->
432
  <div class="bg-slate-50 border border-slate-200 rounded-xl p-8">
 
481
  <section class="py-24 bg-slate-50">
482
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
483
  <div class="text-center mb-12">
484
+ <h2 class="text-3xl font-bold text-slate-900">Powering the next generation of healthcare applications.</h2>
485
  </div>
486
+ <div class="bg-white rounded-xl shadow-sm border border-slate-200 overflow-hidden">
 
487
  <!-- Tabs -->
488
  <div class="flex border-b border-slate-200 overflow-x-auto" id="solution-tabs">
489
  <button class="solution-tab px-6 py-4 text-sm font-bold text-primary-600 border-b-2 border-primary-600 focus:outline-none whitespace-nowrap" data-target="sol-1">Clinical Note Structuring</button>
 
556
  <section class="py-24 bg-white">
557
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
558
  <div class="text-center mb-16">
559
+ <h2 class="text-3xl font-bold text-slate-900">Transparent pricing that scales with your success.</h2>
560
+ <p class="text-slate-600 mt-4">Start free, upgrade when you're ready. No hidden fees, no surprises. Enterprise-grade features available at every tier.</p>
561
+ </div>
562
 
563
  <div class="grid md:grid-cols-3 gap-8 max-w-5xl mx-auto">
564
  <!-- Starter -->
 
570
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> 3 Packs enabled</li>
571
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> Community Support</li>
572
  </ul>
573
+ <button class="modal-trigger block text-center py-2 px-4 bg-slate-100 text-slate-700 font-bold rounded hover:bg-slate-200 w-full" data-modal="get-started-starter">Get Started</button>
574
+ </div>
575
 
576
  <!-- Growth -->
577
  <div class="border-2 border-primary-500 rounded-xl p-8 flex flex-col relative shadow-lg transform md:-translate-y-4">
 
584
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-primary-600 mr-2"></i> Evidence Packs included</li>
585
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-primary-600 mr-2"></i> Email Support</li>
586
  </ul>
587
+ <button class="modal-trigger block text-center py-2 px-4 bg-primary-600 text-white font-bold rounded hover:bg-primary-700 w-full" data-modal="get-api-key-growth">Get API Key</button>
588
+ </div>
589
 
590
  <!-- Enterprise -->
591
  <div class="border border-slate-200 rounded-xl p-8 flex flex-col">
 
597
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> SSO & SLA</li>
598
  <li class="flex"><i data-feather="check" class="w-4 h-4 text-green-500 mr-2"></i> Account Manager</li>
599
  </ul>
600
+ <button class="modal-trigger block text-center py-2 px-4 bg-slate-100 text-slate-700 font-bold rounded hover:bg-slate-200 w-full" data-modal="contact-sales">Contact Sales</button>
601
+ </div>
602
  </div>
603
  </div>
604
  </section>
 
606
  <!-- FAQ -->
607
  <section class="py-24 bg-slate-50">
608
  <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
609
+ <h2 class="text-3xl font-bold text-slate-900 text-center mb-12">Everything you need to know</h2>
610
+ <div class="space-y-3">
611
+ <div class="faq-item bg-white rounded-lg shadow-sm border border-slate-200 overflow-hidden">
612
+ <button class="faq-trigger w-full p-6 text-left flex justify-between items-center hover:bg-slate-50 transition">
613
+ <h3 class="font-bold text-slate-900 pr-4">Can we keep PHI within our security boundary?</h3>
614
+ <svg class="faq-icon w-5 h-5 text-slate-500 transform transition-transform flex-shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
615
+ </button>
616
+ <div class="faq-content hidden px-6 pb-6">
617
+ <p class="text-slate-600 text-sm leading-relaxed">Absolutely. Our BYOC (Bring Your Own Cloud) deployment option allows you to run ClinicalAPI processing runtimes directly within your AWS VPC. Your PHI never leaves your infrastructure—we only manage the control plane for orchestration, billing, and updates.</p>
618
+ </div>
619
  </div>
620
+ <div class="faq-item bg-white rounded-lg shadow-sm border border-slate-200 overflow-hidden">
621
+ <button class="faq-trigger w-full p-6 text-left flex justify-between items-center hover:bg-slate-50 transition">
622
+ <h3 class="font-bold text-slate-900 pr-4">Do you support bulk document processing at scale?</h3>
623
+ <svg class="faq-icon w-5 h-5 text-slate-500 transform transition-transform flex-shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
624
+ </button>
625
+ <div class="faq-content hidden px-6 pb-6">
626
+ <p class="text-slate-600 text-sm leading-relaxed">Yes, we offer both synchronous APIs for real-time processing and asynchronous batch processing for high-volume workflows. Our async jobs support millions of documents with automatic retry, progress tracking, and webhook notifications upon completion.</p>
627
+ </div>
628
  </div>
629
+ <div class="faq-item bg-white rounded-lg shadow-sm border border-slate-200 overflow-hidden">
630
+ <button class="faq-trigger w-full p-6 text-left flex justify-between items-center hover:bg-slate-50 transition">
631
+ <h3 class="font-bold text-slate-900 pr-4">How do you ensure processing reproducibility for audits?</h3>
632
+ <svg class="faq-icon w-5 h-5 text-slate-500 transform transition-transform flex-shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
633
+ </button>
634
+ <div class="faq-content hidden px-6 pb-6">
635
+ <p class="text-slate-600 text-sm leading-relaxed">Every API response includes our Evidence Pack—a cryptographically-signed bundle containing pipeline version, model versions, configuration hashes, and step-by-step processing logs. This ensures complete reproducibility for regulatory audits and model governance requirements.</p>
636
+ </div>
637
  </div>
638
+ <div class="faq-item bg-white rounded-lg shadow-sm border border-slate-200 overflow-hidden">
639
+ <button class="faq-trigger w-full p-6 text-left flex justify-between items-center hover:bg-slate-50 transition">
640
+ <h3 class="font-bold text-slate-900 pr-4">Can we customize de-identification policies for our use case?</h3>
641
+ <svg class="faq-icon w-5 h-5 text-slate-500 transform transition-transform flex-shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
642
+ </button>
643
+ <div class="faq-content hidden px-6 pb-6">
644
+ <p class="text-slate-600 text-sm leading-relaxed">Definitely. We provide pre-built policy profiles for HIPAA, GDPR, and common use cases, but you can create custom policies with granular control over which PHI categories to detect, how to handle them (redact, mask, tokenize, replace), and even override specific detection rules for your domain.</p>
645
+ </div>
646
+ </div>
647
+ <div class="faq-item bg-white rounded-lg shadow-sm border border-slate-200 overflow-hidden">
648
+ <button class="faq-trigger w-full p-6 text-left flex justify-between items-center hover:bg-slate-50 transition">
649
+ <h3 class="font-bold text-slate-900 pr-4">What is your PHI de-identification accuracy?</h3>
650
+ <svg class="faq-icon w-5 h-5 text-slate-500 transform transition-transform flex-shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
651
+ </button>
652
+ <div class="faq-content hidden px-6 pb-6">
653
+ <p class="text-slate-600 text-sm leading-relaxed">Our clinical NLP models achieve 99.8% recall and 97.5% precision on PHI de-identification across the 18 HIPAA identifiers. We continuously validate against annotated clinical datasets from multiple institutions and can provide benchmark results for your specific document types.</p>
654
+ </div>
655
+ </div>
656
+ <div class="faq-item bg-white rounded-lg shadow-sm border border-slate-200 overflow-hidden">
657
+ <button class="faq-trigger w-full p-6 text-left flex justify-between items-center hover:bg-slate-50 transition">
658
+ <h3 class="font-bold text-slate-900 pr-4">How long does integration typically take?</h3>
659
+ <svg class="faq-icon w-5 h-5 text-slate-500 transform transition-transform flex-shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
660
+ </button>
661
+ <div class="faq-content hidden px-6 pb-6">
662
+ <p class="text-slate-600 text-sm leading-relaxed">Most teams complete their initial integration in under 2 hours. Our REST API is designed for simplicity, and we provide SDKs for Python, JavaScript, Java, and .NET. For BYOC deployments, expect 1-2 days for initial setup, with ongoing support from our engineering team.</p>
663
+ </div>
664
  </div>
665
  </div>
666
+ </div>
667
  </section>
668
 
669
  <!-- Final CTA -->
670
  <section class="py-24 bg-white border-t border-slate-200">
671
  <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
672
+ <h2 class="text-4xl font-bold text-slate-900 mb-6">Transform clinical documents into compliance-ready intelligencestarting today.</h2>
673
  <div class="flex flex-col sm:flex-row justify-center gap-4">
674
+ <button class="modal-trigger px-8 py-4 bg-primary-600 text-white font-bold rounded-lg hover:bg-primary-700 transition shadow-lg" data-modal="final-get-api-key">Get API Key</button>
675
+ <button class="modal-trigger px-8 py-4 bg-white text-slate-700 font-bold rounded-lg border border-slate-300 hover:bg-slate-50 transition" data-modal="final-book-demo">Book a Demo</button>
676
  </div>
677
+ <button class="mt-6 modal-trigger text-slate-500 text-sm hover:text-primary-600 underline" data-modal="final-byoc">Explore BYOC options for strict boundary control.</button>
678
+ </div>
679
  </section>
 
680
  <custom-footer></custom-footer>
681
 
682
+ <!-- Modal Component -->
683
+ <custom-modal id="main-modal"></custom-modal>
684
+
685
  <!-- Component Scripts -->
686
  <script src="components/header.js"></script>
687
  <script src="components/footer.js"></script>
688
+ <script src="components/modal.js"></script>
689
 
690
  <!-- Main Script -->
691
  <script src="script.js"></script>
692
+ <script>feather.replace();</script>
 
693
  <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
694
  </body>
695
  </html>
script.js CHANGED
@@ -1,4 +1,484 @@
 
1
  document.addEventListener('DOMContentLoaded', () => {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  // Solution Carousel Logic
3
  const tabs = document.querySelectorAll('.solution-tab');
4
  const contents = document.querySelectorAll('.solution-content');
@@ -27,13 +507,40 @@ document.addEventListener('DOMContentLoaded', () => {
27
  });
28
  });
29
 
30
- // Mobile Menu Toggle (Delegation to Component if needed, but added here for main page safety)
31
- const mobileMenuBtn = document.getElementById('mobile-menu-btn');
32
- const mobileMenu = document.getElementById('mobile-menu');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
- if(mobileMenuBtn && mobileMenu) {
35
  mobileMenuBtn.addEventListener('click', () => {
36
- mobileMenu.classList.toggle('hidden');
37
  });
38
  }
39
- });
 
1
+
2
  document.addEventListener('DOMContentLoaded', () => {
3
+ // Modal Content Definitions
4
+ const modalContents = {
5
+ 'get-api-key': {
6
+ title: 'Get Your Free API Key',
7
+ content: `
8
+ <div class="space-y-4">
9
+ <p>Start processing clinical documents in minutes with our free tier:</p>
10
+ <ul class="space-y-2 text-sm">
11
+ <li>✓ 5,000 characters free per month</li>
12
+ <li>✓ Access to all core processing packs</li>
13
+ <li>✓ Comprehensive documentation & SDKs</li>
14
+ <li>✓ Community support</li>
15
+ </ul>
16
+ <div class="bg-slate-50 p-4 rounded-lg">
17
+ <label class="block text-sm font-medium mb-2">Email Address</label>
18
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500" placeholder="you@company.com">
19
+ </div>
20
+ </div>
21
+ `,
22
+ confirmText: 'Generate API Key'
23
+ },
24
+ 'book-demo': {
25
+ title: 'Schedule a Personalized Demo',
26
+ content: `
27
+ <div class="space-y-4">
28
+ <p>See ClinicalAPI in action with a demo tailored to your use case:</p>
29
+ <ul class="space-y-2 text-sm">
30
+ <li>✓ Live processing of your sample documents</li>
31
+ <li>✓ Architecture review and best practices</li>
32
+ <li>✓ Pricing and packaging discussion</li>
33
+ <li>✓ BYOC vs SaaS deployment comparison</li>
34
+ </ul>
35
+ <div class="space-y-3">
36
+ <div>
37
+ <label class="block text-sm font-medium mb-2">Full Name</label>
38
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg focus:ring-2 focus:ring-primary-500" placeholder="Dr. Jane Smith">
39
+ </div>
40
+ <div>
41
+ <label class="block text-sm font-medium mb-2">Work Email</label>
42
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg focus:ring-2 focus:ring-primary-500" placeholder="jane@hospital.com">
43
+ </div>
44
+ <div>
45
+ <label class="block text-sm font-medium mb-2">Company</label>
46
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg focus:ring-2 focus:ring-primary-500" placeholder="Healthcare Inc.">
47
+ </div>
48
+ </div>
49
+ </div>
50
+ `,
51
+ confirmText: 'Request Demo'
52
+ },
53
+ 'view-docs': {
54
+ title: 'Explore Our Documentation',
55
+ content: `
56
+ <div class="space-y-4">
57
+ <p>Comprehensive documentation to help you integrate ClinicalAPI:</p>
58
+ <div class="space-y-2">
59
+ <a href="#" class="block p-3 bg-slate-50 rounded-lg hover:bg-slate-100 transition">
60
+ <div class="font-medium">🚀 Quick Start Guide</div>
61
+ <div class="text-sm text-slate-500">Get up and running in 5 minutes</div>
62
+ </a>
63
+ <a href="#" class="block p-3 bg-slate-50 rounded-lg hover:bg-slate-100 transition">
64
+ <div class="font-medium">📚 API Reference</div>
65
+ <div class="text-sm text-slate-500">Complete endpoint documentation</div>
66
+ </a>
67
+ <a href="#" class="block p-3 bg-slate-50 rounded-lg hover:bg-slate-100 transition">
68
+ <div class="font-medium">💻 SDK Documentation</div>
69
+ <div class="text-sm text-slate-500">Python, JavaScript, Java, .NET</div>
70
+ </a>
71
+ <a href="#" class="block p-3 bg-slate-50 rounded-lg hover:bg-slate-100 transition">
72
+ <div class="font-medium">🔒 Security Guide</div>
73
+ <div class="text-sm text-slate-500">HIPAA, SOC2, and best practices</div>
74
+ </a>
75
+ </div>
76
+ </div>
77
+ `,
78
+ confirmText: null
79
+ },
80
+ 'byoc-overview': {
81
+ title: 'BYOC (Bring Your Own Cloud) Overview',
82
+ content: `
83
+ <div class="space-y-4">
84
+ <p>Deploy ClinicalAPI processing runtimes directly in your cloud infrastructure:</p>
85
+ <div class="grid grid-cols-2 gap-3">
86
+ <div class="p-3 bg-primary-50 rounded-lg">
87
+ <div class="font-bold text-primary-700">Zero Data Egress</div>
88
+ <div class="text-sm text-primary-600">PHI never leaves your VPC</div>
89
+ </div>
90
+ <div class="p-3 bg-primary-50 rounded-lg">
91
+ <div class="font-bold text-primary-700">Full Control</div>
92
+ <div class="text-sm text-primary-600">Manage infrastructure your way</div>
93
+ </div>
94
+ <div class="p-3 bg-primary-50 rounded-lg">
95
+ <div class="font-bold text-primary-700">Compliance</div>
96
+ <div class="text-sm text-primary-600">Meet strictest requirements</div>
97
+ </div>
98
+ <div class="p-3 bg-primary-50 rounded-lg">
99
+ <div class="font-bold text-primary-700">Performance</div>
100
+ <div class="text-sm text-primary-600">Low latency, high throughput</div>
101
+ </div>
102
+ </div>
103
+ <p class="text-sm text-slate-500">Currently available for AWS. Azure and GCP coming soon.</p>
104
+ </div>
105
+ `,
106
+ confirmText: 'Learn More'
107
+ },
108
+ 'security-overview': {
109
+ title: 'Security & Compliance Overview',
110
+ content: `
111
+ <div class="space-y-4">
112
+ <p>Built for the most demanding security requirements:</p>
113
+ <ul class="space-y-2 text-sm">
114
+ <li><strong>HIPAA Compliant</strong> — Business Associate Agreement (BAA) available</li>
115
+ <li><strong>SOC 2 Type II</strong> — Independently audited and certified</li>
116
+ <li><strong>GDPR Ready</strong> — Data processing agreements included</li>
117
+ <li><strong>ISO 27001</strong> — Information security management certified</li>
118
+ <li><strong>End-to-end Encryption</strong> — AES-256 at rest, TLS 1.3 in transit</li>
119
+ <li><strong>SaaS & BYOC</strong> — Choose your deployment model</li>
120
+ </ul>
121
+ <a href="#" class="text-primary-600 text-sm font-medium hover:underline">Download Security Whitepaper →</a>
122
+ </div>
123
+ `,
124
+ confirmText: 'Contact Security Team'
125
+ },
126
+ 'preprocessing': {
127
+ title: 'Intelligent Preprocessing',
128
+ content: `
129
+ <div class="space-y-4">
130
+ <p>Transform raw clinical documents into structured, machine-ready data:</p>
131
+ <ul class="space-y-2 text-sm">
132
+ <li>📄 <strong>Document Parsing</strong> — PDF, DOCX, TXT, DICOM support</li>
133
+ <li>🔍 <strong>OCR Enhancement</strong> — 99.5% accuracy on scanned documents</li>
134
+ <li>✂️ <strong>Section Detection</strong> — Identify HPI, ROS, PE, A&P sections</li>
135
+ <li>🧹 <strong>Data Cleaning</strong> — Remove artifacts, normalize whitespace</li>
136
+ <li>📦 <strong>Smart Chunking</strong> — Maintain context with optimal spans</li>
137
+ </ul>
138
+ </div>
139
+ `,
140
+ confirmText: 'View API Docs'
141
+ },
142
+ 'phi-protection': {
143
+ title: 'Enterprise PHI Protection',
144
+ content: `
145
+ <div class="space-y-4">
146
+ <p>Military-grade de-identification with customizable policies:</p>
147
+ <div class="bg-yellow-50 border border-yellow-200 p-3 rounded-lg text-sm">
148
+ <strong>🎯 99.8% PHI Recall • 97.5% Precision</strong>
149
+ </div>
150
+ <ul class="space-y-2 text-sm">
151
+ <li>🔒 <strong>18 HIPAA Identifiers</strong> — Names, dates, locations, MRNs, etc.</li>
152
+ <li>🎭 <strong>Redaction Modes</strong> — Mask, Replace, Tokenize, Hash</li>
153
+ <li>⚙️ <strong>Policy Profiles</strong> — HIPAA, GDPR, Safe Harbor, Custom</li>
154
+ <li>📊 <strong>Confidence Scoring</strong> — Per-entity confidence metrics</li>
155
+ <li>🔍 <strong>False Positive Control</strong> — Whitelist/Blacklist entities</li>
156
+ </ul>
157
+ </div>
158
+ `,
159
+ confirmText: 'Try De-ID Demo'
160
+ },
161
+ 'entity-extraction': {
162
+ title: 'Clinical Entity Extraction',
163
+ content: `
164
+ <div class="space-y-4">
165
+ <p>Extract clinically-relevant entities with clinical-grade accuracy:</p>
166
+ <ul class="space-y-2 text-sm">
167
+ <li>💊 <strong>Medications</strong> — Drug names, dosages, routes, frequencies</li>
168
+ <li>🏥 <strong>Problems/Conditions</strong> — Diagnoses, symptoms, findings</li>
169
+ <li>🔬 <strong>Procedures</strong> — Surgeries, tests, interventions</li>
170
+ <li>🧪 <strong>Laboratory Values</strong> — Results, units, reference ranges</li>
171
+ <li>📏 <strong>Vitals</strong> — Blood pressure, heart rate, temperature</li>
172
+ <li>👤 <strong>Social Determinants</strong> — Smoking, substance use, living situation</li>
173
+ <li>📍 <strong>Anatomy</strong> — Laterality, body sites, organ systems</li>
174
+ </ul>
175
+ <p class="text-sm text-slate-500">Includes negation, speculation, and temporality detection.</p>
176
+ </div>
177
+ `,
178
+ confirmText: 'View Entity Types'
179
+ },
180
+ 'normalization': {
181
+ title: 'Clinical Code Normalization',
182
+ content: `
183
+ <div class="space-y-4">
184
+ <p>Map clinical entities to standard medical vocabularies:</p>
185
+ <ul class="space-y-2 text-sm">
186
+ <li>🏷️ <strong>SNOMED CT</strong> — 350k+ concepts with full hierarchy</li>
187
+ <li>📋 <strong>ICD-10-CM</strong> — Diagnosis and procedure coding</li>
188
+ <li>💊 <strong>RxNorm</strong> — Medication normalization</li>
189
+ <li>🔬 <strong>LOINC</strong> — Laboratory observation identifiers</li>
190
+ <li>⚕️ <strong>CPT/HCPCS</strong> — Procedure and service codes</li>
191
+ <li>🔢 <strong>Unit Conversion</strong> — Standardize units of measure</li>
192
+ </ul>
193
+ <p class="text-sm text-slate-500">All mappings include version references and provenance.</p>
194
+ </div>
195
+ `,
196
+ confirmText: 'View Code Systems'
197
+ },
198
+ 'evidence-packs': {
199
+ title: 'Audit-Ready Evidence Packs',
200
+ content: `
201
+ <div class="space-y-4">
202
+ <p>Generate cryptographically-verifiable audit trails:</p>
203
+ <ul class="space-y-2 text-sm">
204
+ <li>🔐 <strong>Cryptographic Signatures</strong> — Tamper-evident outputs</li>
205
+ <li>📦 <strong>Pipeline Versioning</strong> — Exact model and config used</li>
206
+ <li>📝 <strong>Step-by-Step Logs</strong> — Full processing trace</li>
207
+ <li>⏱️ <strong>Timestamping</strong> — ISO 8601 timestamps with timezone</li>
208
+ <li>🎯 <strong>Entity Provenance</strong> — Source span mapping</li>
209
+ <li>✅ <strong>Confidence Metrics</strong> — Per-prediction scores</li>
210
+ </ul>
211
+ <p class="text-sm text-slate-500">Perfect for FDA submissions, internal audits, and model governance.</p>
212
+ </div>
213
+ `,
214
+ confirmText: 'View Evidence Schema'
215
+ },
216
+ 'deployment': {
217
+ title: 'Flexible Deployment Options',
218
+ content: `
219
+ <div class="space-y-4">
220
+ <p>Choose the deployment model that fits your requirements:</p>
221
+ <div class="space-y-3">
222
+ <div class="p-3 border border-slate-200 rounded-lg">
223
+ <div class="font-bold text-primary-600">☁️ SaaS (Managed)</div>
224
+ <div class="text-sm text-slate-600 mt-1">
225
+ • Fastest to deploy (minutes)<br>
226
+ • Automatic updates and scaling<br>
227
+ • Starting at $249/month
228
+ </div>
229
+ </div>
230
+ <div class="p-3 border border-slate-200 rounded-lg">
231
+ <div class="font-bold text-primary-600">🏢 BYOC (Your Cloud)</div>
232
+ <div class="text-sm text-slate-600 mt-1">
233
+ • Deploy to your AWS VPC<br>
234
+ • Zero data egress<br>
235
+ • Enterprise pricing
236
+ </div>
237
+ </div>
238
+ </div>
239
+ </div>
240
+ `,
241
+ confirmText: 'Compare Deployments'
242
+ },
243
+ 'explore-packs': {
244
+ title: 'Processing Packs Documentation',
245
+ content: `
246
+ <div class="space-y-4">
247
+ <p>Deep dive into each processing pack:</p>
248
+ <div class="space-y-2 text-sm">
249
+ <a href="#" class="block p-2 hover:bg-slate-50 rounded">📖 Preprocess Pack Guide</a>
250
+ <a href="#" class="block p-2 hover:bg-slate-50 rounded">📖 De-ID Pack Guide</a>
251
+ <a href="#" class="block p-2 hover:bg-slate-50 rounded">📖 Extraction Pack Guide</a>
252
+ <a href="#" class="block p-2 hover:bg-slate-50 rounded">📖 Normalization Pack Guide</a>
253
+ <a href="#" class="block p-2 hover:bg-slate-50 rounded">📖 Evidence Pack Guide</a>
254
+ <a href="#" class="block p-2 hover:bg-slate-50 rounded">📖 Context Pack Guide</a>
255
+ </div>
256
+ <p class="text-sm text-slate-500">Combine packs to build custom pipelines.</p>
257
+ </div>
258
+ `,
259
+ confirmText: null
260
+ },
261
+ 'byoc-guide': {
262
+ title: 'BYOC Deployment Guide',
263
+ content: `
264
+ <div class="space-y-4">
265
+ <p>Deploy ClinicalAPI in your AWS account:</p>
266
+ <ol class="space-y-3 text-sm list-decimal list-inside">
267
+ <li>Configure your AWS VPC and subnets</li>
268
+ <li>Provide IAM credentials with required permissions</li>
269
+ <li>Run our CloudFormation or Terraform templates</li>
270
+ <li>Verify deployment with health check endpoint</li>
271
+ <li>Start processing with your BYOC endpoint URL</li>
272
+ </ol>
273
+ <p class="text-sm text-slate-500">Our team provides full deployment support.</p>
274
+ </div>
275
+ `,
276
+ confirmText: 'Start Deployment'
277
+ },
278
+ 'architecture-review': {
279
+ title: 'Book Architecture Review',
280
+ content: `
281
+ <div class="space-y-4">
282
+ <p>Get expert guidance on your ClinicalAPI implementation:</p>
283
+ <ul class="space-y-2 text-sm">
284
+ <li>✓ Architecture design review</li>
285
+ <li>✓ Security and compliance assessment</li>
286
+ <li>✓ Performance optimization recommendations</li>
287
+ <li>✓ Integration best practices</li>
288
+ <li>✓ Cost optimization strategies</li>
289
+ </ul>
290
+ <div class="bg-slate-50 p-4 rounded-lg space-y-3">
291
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Your Name">
292
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Work Email">
293
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Company">
294
+ </div>
295
+ </div>
296
+ `,
297
+ confirmText: 'Request Review'
298
+ },
299
+ 'read-docs-dev': {
300
+ title: 'Developer Documentation',
301
+ content: `
302
+ <div class="space-y-4">
303
+ <p>Everything developers need to integrate ClinicalAPI:</p>
304
+ <div class="grid grid-cols-2 gap-2">
305
+ <div class="p-3 bg-slate-50 rounded-lg text-center">
306
+ <div class="text-2xl mb-1">📘</div>
307
+ <div class="text-sm font-medium">API Reference</div>
308
+ </div>
309
+ <div class="p-3 bg-slate-50 rounded-lg text-center">
310
+ <div class="text-2xl mb-1">🐍</div>
311
+ <div class="text-sm font-medium">Python SDK</div>
312
+ </div>
313
+ <div class="p-3 bg-slate-50 rounded-lg text-center">
314
+ <div class="text-2xl mb-1">⚡</div>
315
+ <div class="text-sm font-medium">JavaScript SDK</div>
316
+ </div>
317
+ <div class="p-3 bg-slate-50 rounded-lg text-center">
318
+ <div class="text-2xl mb-1">☕</div>
319
+ <div class="text-sm font-medium">Java SDK</div>
320
+ </div>
321
+ </div>
322
+ </div>
323
+ `,
324
+ confirmText: null
325
+ },
326
+ 'npm-install': {
327
+ title: 'Install ClinicalAPI SDK',
328
+ content: `
329
+ <div class="space-y-4">
330
+ <p>Install the official ClinicalAPI SDK for Node.js:</p>
331
+ <div class="bg-slate-900 p-4 rounded-lg">
332
+ <code class="text-green-400 text-sm">npm install @clinicalapi/sdk</code>
333
+ </div>
334
+ <p class="text-sm text-slate-600">Or use yarn:</p>
335
+ <div class="bg-slate-900 p-4 rounded-lg">
336
+ <code class="text-green-400 text-sm">yarn add @clinicalapi/sdk</code>
337
+ </div>
338
+ <a href="#" class="text-primary-600 text-sm font-medium hover:underline">View SDK Documentation →</a>
339
+ </div>
340
+ `,
341
+ confirmText: null
342
+ },
343
+ 'security-overview-detail': {
344
+ title: 'Security & Compliance Details',
345
+ content: `
346
+ <div class="space-y-4">
347
+ <p>Our comprehensive security posture:</p>
348
+ <ul class="space-y-2 text-sm">
349
+ <li>🔒 <strong>Encryption</strong> — AES-256 at rest, TLS 1.3 in transit</li>
350
+ <li>👤 <strong>Access Control</strong> — RBAC/ABAC, MFA required</li>
351
+ <li>📋 <strong>Audit Logging</strong> — Immutable logs for all access</li>
352
+ <li>✅ <strong>Certifications</strong> — SOC 2 Type II, HIPAA, ISO 27001</li>
353
+ <li>🧪 <strong>Penetration Testing</strong> — Quarterly third-party audits</li>
354
+ <li>🔄 <strong>Vulnerability Management</strong> — Continuous scanning</li>
355
+ </ul>
356
+ <p class="text-sm text-slate-500">Download our full security whitepaper for detailed information.</p>
357
+ </div>
358
+ `,
359
+ confirmText: 'Download Whitepaper'
360
+ },
361
+ 'get-started-starter': {
362
+ title: 'Start with Free Tier',
363
+ content: `
364
+ <div class="space-y-4">
365
+ <p>Begin exploring ClinicalAPI with our free tier:</p>
366
+ <ul class="space-y-2 text-sm">
367
+ <li>✓ 5,000 characters/month free</li>
368
+ <li>✓ All core processing packs</li>
369
+ <li>✓ Community support</li>
370
+ <li>✓ No credit card required</li>
371
+ </ul>
372
+ <div class="bg-slate-50 p-4 rounded-lg">
373
+ <label class="block text-sm font-medium mb-2">Email</label>
374
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg" placeholder="you@company.com">
375
+ </div>
376
+ </div>
377
+ `,
378
+ confirmText: 'Create Free Account'
379
+ },
380
+ 'get-api-key-growth': {
381
+ title: 'Upgrade to Growth Plan',
382
+ content: `
383
+ <div class="space-y-4">
384
+ <p>Unlock powerful features with the Growth plan:</p>
385
+ <ul class="space-y-2 text-sm">
386
+ <li>✓ 2 million characters included</li>
387
+ <li>✓ All processing packs enabled</li>
388
+ <li>✓ Evidence packs included</li>
389
+ <li>✓ Priority email support</li>
390
+ <li>✓ Starting at $249/month</li>
391
+ </ul>
392
+ <div class="bg-primary-50 p-4 rounded-lg text-sm text-primary-700">
393
+ First month free for new customers!
394
+ </div>
395
+ </div>
396
+ `,
397
+ confirmText: 'Start Free Trial'
398
+ },
399
+ 'contact-sales': {
400
+ title: 'Contact Enterprise Sales',
401
+ content: `
402
+ <div class="space-y-4">
403
+ <p>Let's discuss your enterprise needs:</p>
404
+ <ul class="space-y-2 text-sm">
405
+ <li>✓ High volume processing</li>
406
+ <li>✓ Dedicated BYOC runtimes</li>
407
+ <li>✓ SSO & custom SLAs</li>
408
+ <li>✓ Dedicated account manager</li>
409
+ <li>✓ Custom integrations</li>
410
+ </ul>
411
+ <div class="space-y-3">
412
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Full Name">
413
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Work Email">
414
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Company">
415
+ </div>
416
+ </div>
417
+ `,
418
+ confirmText: 'Request Callback'
419
+ },
420
+ 'final-get-api-key': {
421
+ title: 'Get Your API Key Now',
422
+ content: `
423
+ <div class="space-y-4">
424
+ <p>Start processing clinical documents in minutes:</p>
425
+ <div class="bg-slate-50 p-4 rounded-lg">
426
+ <label class="block text-sm font-medium mb-2">Email Address</label>
427
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg" placeholder="you@company.com">
428
+ </div>
429
+ <p class="text-sm text-slate-500">Free tier: 5,000 characters/month. No credit card required.</p>
430
+ </div>
431
+ `,
432
+ confirmText: 'Generate API Key'
433
+ },
434
+ 'final-book-demo': {
435
+ title: 'Schedule Your Demo',
436
+ content: `
437
+ <div class="space-y-4">
438
+ <p>See ClinicalAPI in action with your own data:</p>
439
+ <div class="space-y-3">
440
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Full Name">
441
+ <input type="email" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Work Email">
442
+ <input type="text" class="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm" placeholder="Company">
443
+ </div>
444
+ </div>
445
+ `,
446
+ confirmText: 'Book Demo'
447
+ },
448
+ 'final-byoc': {
449
+ title: 'BYOC Deployment Options',
450
+ content: `
451
+ <div class="space-y-4">
452
+ <p>Keep PHI within your security boundary:</p>
453
+ <ul class="space-y-2 text-sm">
454
+ <li>✓ Deploy to your AWS VPC</li>
455
+ <li>✓ Zero data egress</li>
456
+ <li>✓ Full infrastructure control</li>
457
+ <li>✓ Enterprise-grade security</li>
458
+ </ul>
459
+ <p class="text-sm text-slate-500">Contact sales for BYOC pricing and setup.</p>
460
+ </div>
461
+ `,
462
+ confirmText: 'Contact Sales'
463
+ }
464
+ };
465
+
466
+ // Modal Functionality
467
+ const modal = document.getElementById('main-modal');
468
+ const modalTriggers = document.querySelectorAll('.modal-trigger');
469
+
470
+ modalTriggers.forEach(trigger => {
471
+ trigger.addEventListener('click', (e) => {
472
+ e.preventDefault();
473
+ const modalType = trigger.getAttribute('data-modal');
474
+ const content = modalContents[modalType];
475
+
476
+ if (content) {
477
+ modal.open(content.title, content.content, content.confirmText);
478
+ }
479
+ });
480
+ });
481
+
482
  // Solution Carousel Logic
483
  const tabs = document.querySelectorAll('.solution-tab');
484
  const contents = document.querySelectorAll('.solution-content');
 
507
  });
508
  });
509
 
510
+ // FAQ Accordion Logic
511
+ const faqItems = document.querySelectorAll('.faq-item');
512
+
513
+ faqItems.forEach(item => {
514
+ const trigger = item.querySelector('.faq-trigger');
515
+ const content = item.querySelector('.faq-content');
516
+ const icon = item.querySelector('.faq-icon');
517
+
518
+ trigger.addEventListener('click', () => {
519
+ const isExpanded = !content.classList.contains('hidden');
520
+
521
+ // Close all other FAQs
522
+ faqItems.forEach(otherItem => {
523
+ const otherContent = otherItem.querySelector('.faq-content');
524
+ const otherIcon = otherItem.querySelector('.faq-icon');
525
+ otherContent.classList.add('hidden');
526
+ otherIcon.classList.remove('rotate-180');
527
+ });
528
+
529
+ // Toggle current FAQ
530
+ if (!isExpanded) {
531
+ content.classList.remove('hidden');
532
+ icon.classList.add('rotate-180');
533
+ }
534
+ });
535
+ });
536
+
537
+ // Mobile Menu Toggle
538
+ const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
539
+ const navLinks = document.querySelector('.nav-links');
540
 
541
+ if(mobileMenuBtn) {
542
  mobileMenuBtn.addEventListener('click', () => {
543
+ navLinks.classList.toggle('hidden');
544
  });
545
  }
546
+ });
style.css CHANGED
@@ -1,3 +1,4 @@
 
1
  /* Custom Styles for Visual Mockups and Components */
2
 
3
  body {
@@ -65,4 +66,44 @@ input[type="checkbox"]:checked {
65
  .relative-z-10 {
66
  z-index: 10;
67
  }
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
  /* Custom Styles for Visual Mockups and Components */
3
 
4
  body {
 
66
  .relative-z-10 {
67
  z-index: 10;
68
  }
69
+ }
70
+
71
+ /* FAQ Accordion Styles */
72
+ .faq-item {
73
+ transition: all 0.2s ease;
74
+ }
75
+
76
+ .faq-trigger {
77
+ background: none;
78
+ border: none;
79
+ width: 100%;
80
+ cursor: pointer;
81
+ outline: none;
82
+ }
83
+
84
+ .faq-trigger:hover {
85
+ background-color: #f8fafc;
86
+ }
87
+
88
+ .faq-content {
89
+ transition: all 0.3s ease;
90
+ }
91
+
92
+ .faq-icon {
93
+ transition: transform 0.3s ease;
94
+ }
95
+
96
+ .faq-icon.rotate-180 {
97
+ transform: rotate(180deg);
98
+ }
99
+
100
+ /* Modal Trigger Button Styles */
101
+ .modal-trigger {
102
+ cursor: pointer;
103
+ outline: none;
104
+ }
105
+
106
+ .modal-trigger:focus {
107
+ outline: 2px solid #0d9488;
108
+ outline-offset: 2px;
109
+ }