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