pantdipendra commited on
Commit
23ad762
·
verified ·
1 Parent(s): d8a4b22
Files changed (1) hide show
  1. index.html +1 -486
index.html CHANGED
@@ -4,492 +4,7 @@
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
  <title>Secondary Use of Health Records Navigator</title>
7
- <style>
8
- /* Color-blind–safe palette */
9
- :root {
10
- --bg: #0b1020;
11
- --ink: #eaf0ff;
12
- --muted: #a6b0d4;
13
- --card: #121933;
14
- --accent: #0072b2; /* blue */
15
- --accent2: #56b4e9; /* sky blue */
16
-
17
- /* Status colors */
18
- --ok: #009e73; /* bluish green */
19
- --warn: #f0e442; /* yellow */
20
- --no: #d55e00; /* vermillion */
21
-
22
- --br: 14px;
23
- }
24
- * {
25
- box-sizing: border-box;
26
- }
27
- body {
28
- margin: 0;
29
- font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial,
30
- sans-serif;
31
- color: var(--ink);
32
- background: radial-gradient(
33
- 900px 500px at 20% -10%,
34
- #1b2656,
35
- transparent 60%
36
- )
37
- no-repeat,
38
- var(--bg);
39
- }
40
- header {
41
- padding: 22px 16px 8px;
42
- text-align: center;
43
- }
44
- h1 {
45
- margin: 0 0 4px;
46
- font-size: clamp(20px, 2.2vw, 30px);
47
- font-weight: 800;
48
- }
49
- header p {
50
- margin: 0;
51
- color: var(--muted);
52
- }
53
- .wrap {
54
- max-width: 980px;
55
- margin: 14px auto 80px;
56
- padding: 0 14px;
57
- }
58
- .card {
59
- background: linear-gradient(
60
- 180deg,
61
- rgba(255, 255, 255, 0.04),
62
- rgba(255, 255, 255, 0.02)
63
- );
64
- border: 1px solid rgba(255, 255, 255, 0.1);
65
- border-radius: var(--br);
66
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
67
- }
68
- .section {
69
- padding: 16px;
70
- border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
71
- transition: background 0.2s ease, border-color 0.2s ease,
72
- box-shadow 0.2s ease, transform 0.2s ease;
73
- will-change: transform, box-shadow;
74
- }
75
- .section:last-child {
76
- border-bottom: 0;
77
- }
78
- /* Hover highlight for any top-level section */
79
- .card .section:hover,
80
- .card .section:focus-within {
81
- background: linear-gradient(
82
- 180deg,
83
- rgba(22, 30, 60, 0.92),
84
- rgba(18, 26, 52, 0.92)
85
- );
86
- border-color: rgba(86, 180, 233, 0.35);
87
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
88
- transform: translateY(-1px);
89
- }
90
-
91
- /* sticky nav */
92
- .topnav {
93
- position: sticky;
94
- top: 0;
95
- z-index: 5;
96
- background: rgba(11, 16, 32, 0.7);
97
- backdrop-filter: blur(8px);
98
- padding: 10px 14px;
99
- }
100
- .toprow {
101
- display: flex;
102
- align-items: center;
103
- gap: 10px;
104
- }
105
- .progress {
106
- height: 10px;
107
- border-radius: 999px;
108
- background: #17224a;
109
- overflow: hidden;
110
- border: 1px solid rgba(255, 255, 255, 0.12);
111
- flex: 1;
112
- }
113
- .progress > span {
114
- display: block;
115
- height: 100%;
116
- width: 0;
117
- background: linear-gradient(90deg, var(--ok));
118
- transition: width 0.6s ease;
119
- }
120
- .clear {
121
- margin-left: auto;
122
- border: 1px solid rgba(255, 255, 255, 0.2);
123
- background: rgba(255, 255, 255, 0.06);
124
- color: #fff;
125
- border-radius: 10px;
126
- padding: 8px 12px;
127
- cursor: pointer;
128
- transition: transform 0.15s ease, background 0.15s ease;
129
- }
130
- .clear:hover {
131
- background: rgba(255, 255, 255, 0.12);
132
- transform: translateY(-1px);
133
- }
134
- .graph {
135
- display: flex;
136
- gap: 8px;
137
- justify-content: center;
138
- margin-top: 10px;
139
- flex-wrap: wrap;
140
- }
141
- .dot {
142
- position: relative;
143
- display: grid;
144
- place-items: center;
145
- width: 28px;
146
- height: 28px;
147
- border-radius: 50%;
148
- background: #101a3f;
149
- border: 1px solid rgba(255, 255, 255, 0.18);
150
- color: #cfe0ff;
151
- font-weight: 800;
152
- opacity: 0.45;
153
- transition: 0.2s;
154
- will-change: transform, box-shadow;
155
- }
156
- .dot.unlocked {
157
- opacity: 1;
158
- cursor: pointer;
159
- }
160
- .dot.active {
161
- outline: 2px solid var(--accent);
162
- }
163
- .dot.unlocked:hover {
164
- transform: translateY(-2px) scale(1.05);
165
- border-color: var(--accent2);
166
- box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
167
- }
168
- .dot.done {
169
- background: var(--ok);
170
- color: #ffffff;
171
- border-color: transparent;
172
- }
173
- .dot.done::after {
174
- content: "✓";
175
- position: absolute;
176
- right: -4px;
177
- bottom: -6px;
178
- font-size: 12px;
179
- background: var(--ok);
180
- color: #fff;
181
- border-radius: 6px;
182
- padding: 0 3px;
183
- }
184
-
185
- /* purpose */
186
- .purpose {
187
- display: grid;
188
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
189
- gap: 10px;
190
- }
191
- .option {
192
- padding: 14px;
193
- border-radius: 12px;
194
- border: 1px solid rgba(255, 255, 255, 0.12);
195
- background: rgba(255, 255, 255, 0.02);
196
- cursor: pointer;
197
- user-select: none;
198
- transition: 0.2s transform, 0.2s border-color, 0.2s background,
199
- box-shadow 0.2s ease;
200
- }
201
- .option:hover {
202
- transform: translateY(-2px);
203
- border-color: rgba(255, 255, 255, 0.22);
204
- box-shadow: 0 10px 26px rgba(0, 0, 0, 0.25);
205
- }
206
- .option.active {
207
- outline: 2px solid var(--accent);
208
- background: rgba(86, 180, 233, 0.12);
209
- }
210
- .option input {
211
- display: none;
212
- }
213
- .tag {
214
- font-size: 0.75rem;
215
- padding: 2px 8px;
216
- color: var(--muted);
217
- }
218
- .gdpr {
219
- color: #c6ede2;
220
- }
221
-
222
- /* steps */
223
- .timeline {
224
- padding: 10px;
225
- }
226
- .step {
227
- margin: 12px 6px;
228
- border-radius: 14px;
229
- border: 1px solid rgba(255, 255, 255, 0.14);
230
- background: linear-gradient(
231
- 180deg,
232
- rgba(16, 22, 44, 0.86),
233
- rgba(14, 20, 38, 0.86)
234
- );
235
- overflow: hidden;
236
- animation: pop 0.35s ease both;
237
- transition: background 0.2s ease, border-color 0.2s ease,
238
- box-shadow 0.2s ease, transform 0.2s ease;
239
- will-change: transform, box-shadow;
240
- }
241
- @keyframes pop {
242
- from {
243
- opacity: 0;
244
- transform: translateY(8px) scale(0.98);
245
- }
246
- to {
247
- opacity: 1;
248
- transform: translateY(0) scale(1);
249
- }
250
- }
251
- /* Hover highlight for each step block */
252
- .step:hover,
253
- .step:focus-within {
254
- transform: translateY(-2px);
255
- border-color: rgba(86, 180, 233, 0.35);
256
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
257
- background: linear-gradient(
258
- 180deg,
259
- rgba(20, 28, 56, 0.92),
260
- rgba(18, 26, 52, 0.92)
261
- );
262
- }
263
-
264
- .head {
265
- display: flex;
266
- align-items: center;
267
- justify-content: space-between;
268
- padding: 14px 16px;
269
- }
270
- .title {
271
- display: flex;
272
- align-items: center;
273
- gap: 10px;
274
- }
275
- .num {
276
- width: 32px;
277
- height: 32px;
278
- border-radius: 50%;
279
- display: grid;
280
- place-items: center;
281
- background: linear-gradient(180deg, #27336a, #202a56);
282
- border: 1px solid rgba(255, 255, 255, 0.18);
283
- font-weight: 800;
284
- color: #ffffff;
285
- transition: background 0.2s ease, border-color 0.2s ease;
286
- }
287
- .badge {
288
- font-size: 0.85rem;
289
- padding: 4px 8px;
290
- border-radius: 999px;
291
- border: 1px solid rgba(255, 255, 255, 0.12);
292
- color: #cde6ff;
293
- background: transparent;
294
- transition: background 0.2s ease, color 0.2s ease,
295
- border-color 0.2s ease;
296
- }
297
- .step.done {
298
- border-color: rgba(0, 158, 115, 0.55);
299
- box-shadow: 0 0 0 1px rgba(0, 158, 115, 0.25) inset;
300
- }
301
- .step.done .num {
302
- background: var(--ok);
303
- border-color: transparent;
304
- color: #ffffff;
305
- }
306
- .step.done .badge {
307
- background: var(--ok);
308
- color: #ffffff;
309
- border-color: transparent;
310
- }
311
- .body {
312
- padding: 0 16px 14px;
313
- }
314
- .list {
315
- list-style: none;
316
- margin: 0;
317
- padding: 0;
318
- }
319
- .li {
320
- display: grid;
321
- grid-template-columns: auto 1fr auto;
322
- gap: 10px;
323
- align-items: flex-start;
324
- padding: 10px;
325
- border: 1px dashed rgba(255, 255, 255, 0.14);
326
- border-radius: 10px;
327
- margin: 8px 0;
328
- background: rgba(255, 255, 255, 0.02);
329
- transition: background 0.15s ease, border-color 0.15s ease,
330
- transform 0.15s ease;
331
- }
332
- .li:hover {
333
- background: rgba(86, 180, 233, 0.08);
334
- border-color: rgba(86, 180, 233, 0.35);
335
- transform: translateY(-1px);
336
- }
337
- .letters {
338
- font-weight: 700;
339
- color: #cbe0ff;
340
- width: 24px;
341
- }
342
- .li a {
343
- color: var(--accent2);
344
- text-decoration: none;
345
- }
346
- .li a:hover {
347
- text-decoration: underline;
348
- }
349
- .req {
350
- color: var(--no);
351
- margin-left: 6px;
352
- }
353
- .opt {
354
- color: #a9b6e6;
355
- font-size: 0.85rem;
356
- }
357
- .fold {
358
- display: none;
359
- }
360
- .toggle {
361
- background: transparent;
362
- border: 1px solid rgba(255, 255, 255, 0.18);
363
- color: #dfe7ff;
364
- border-radius: 10px;
365
- padding: 6px 10px;
366
- cursor: pointer;
367
- transition: background 0.15s ease, transform 0.15s ease,
368
- border-color 0.15s ease;
369
- }
370
- .toggle:hover {
371
- background: rgba(86, 180, 233, 0.12);
372
- transform: translateY(-1px);
373
- border-color: rgba(86, 180, 233, 0.35);
374
- }
375
-
376
- /* animated checkbox */
377
- .chk {
378
- position: absolute;
379
- opacity: 0;
380
- }
381
- .box {
382
- width: 22px;
383
- height: 22px;
384
- border-radius: 6px;
385
- border: 1px solid rgba(255, 255, 255, 0.22);
386
- background: #0f1533;
387
- }
388
- .tick {
389
- stroke: #cfe0ff;
390
- stroke-width: 3;
391
- fill: none;
392
- stroke-dasharray: 30;
393
- stroke-dashoffset: 30;
394
- transition: stroke-dashoffset 0.32s ease;
395
- }
396
- .chk:checked + .box {
397
- background: #1e396e;
398
- border-color: var(--accent);
399
- }
400
- .chk:checked + .box .tick {
401
- stroke-dashoffset: 0;
402
- }
403
-
404
- .tiny {
405
- font-size: 0.82rem;
406
- color: var(--muted);
407
- }
408
- .center {
409
- display: grid;
410
- place-items: center;
411
- }
412
- .hidden {
413
- display: none !important;
414
- }
415
-
416
- /* flow buttons */
417
- .flow {
418
- position: fixed;
419
- left: 50%;
420
- transform: translateX(-50%);
421
- bottom: 16px;
422
- width: min(960px, 92vw);
423
- background: #0f1533;
424
- border: 1px solid rgba(255, 255, 255, 0.14);
425
- border-radius: 14px;
426
- padding: 10px 12px;
427
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
428
- }
429
- .q {
430
- display: flex;
431
- align-items: center;
432
- justify-content: space-between;
433
- gap: 12px;
434
- flex-wrap: wrap;
435
- }
436
- .q strong {
437
- font-size: 1rem;
438
- }
439
- .btns {
440
- display: flex;
441
- gap: 10px;
442
- }
443
- .cta {
444
- font-weight: 800;
445
- border-radius: 12px;
446
- border: 1px solid rgba(255, 255, 255, 0.2);
447
- padding: 12px 16px;
448
- cursor: pointer;
449
- transition: transform 0.15s ease, filter 0.15s ease;
450
- }
451
- .cta:hover {
452
- transform: translateY(-1px);
453
- filter: brightness(1.05);
454
- }
455
- .cta.y {
456
- background: linear-gradient(180deg, var(--ok));
457
- }
458
- .cta.n {
459
- background: linear-gradient(180deg, var(--no));
460
- }
461
-
462
- /* finish */
463
- .finish {
464
- display: none;
465
- text-align: center;
466
- padding: 18px;
467
- }
468
- .finish.show {
469
- display: block;
470
- animation: pop 0.35s ease both;
471
- }
472
- .confetti {
473
- position: relative;
474
- height: 0;
475
- }
476
- .confetti i {
477
- position: absolute;
478
- width: 8px;
479
- height: 14px;
480
- background: var(--accent);
481
- top: -10px;
482
- left: 50%;
483
- animation: drop 1.2s ease-out forwards;
484
- transform: translateX(-50%);
485
- }
486
- @keyframes drop {
487
- to {
488
- top: -90px;
489
- transform: translateX(calc(-50% + var(--dx))) rotate(120deg);
490
- }
491
- }
492
- </style>
493
  </head>
494
  <body>
495
  <header>
 
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
  <title>Secondary Use of Health Records Navigator</title>
7
+ <link rel="stylesheet" href="style.css" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  </head>
9
  <body>
10
  <header>