-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbrain.html
More file actions
1246 lines (1126 loc) · 83.1 KB
/
brain.html
File metadata and controls
1246 lines (1126 loc) · 83.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Brain Quest • Parent Desktop Run (10–15)</title>
<style>
:root{
--bg:#f7fbff;
--bg2:#eef6ff;
--ink:#0b1020;
--muted:rgba(11,16,32,.62);
--card:#ffffff;
--stroke:rgba(11,16,32,.10);
--shadow:0 18px 55px rgba(11,16,32,.12);
--accent:#7ea6ff;
--accent2:#d7e4ff;
--yes:#4fd3a7;
--no:#ffb35a;
--radius:18px;
--dock-h: 110px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
margin:0;
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
color:var(--ink);
background:
radial-gradient(1200px 800px at 10% 0%, rgba(126,166,255,.18), transparent 60%),
radial-gradient(1000px 700px at 95% 5%, rgba(199,214,255,.28), transparent 55%),
linear-gradient(180deg, var(--bg), var(--bg2));
}
.wrap{
max-width: 1120px;
margin: 0 auto;
padding: 18px 18px calc(18px + var(--dock-h));
display:grid;
grid-template-columns: 360px 1fr;
gap: 14px;
min-height:100%;
align-content:start;
}
@media (max-width: 980px){
.wrap{ grid-template-columns: 1fr; padding-bottom: calc(18px + 140px); }
}
.card{
background: var(--card);
border:1px solid var(--stroke);
border-radius: var(--radius);
box-shadow: var(--shadow);
overflow:hidden;
}
.panel{ padding: 14px; }
.brandRow{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.brand{ display:flex; align-items:center; gap:10px; }
.orb{
width:34px;height:34px;border-radius:12px;
background: radial-gradient(circle at 30% 30%, #fff, rgba(126,166,255,.65) 55%, rgba(126,166,255,.35));
border:1px solid rgba(11,16,32,.10);
box-shadow: 0 10px 25px rgba(126,166,255,.18);
position:relative; overflow:hidden; flex:0 0 auto;
}
.orb::after{
content:"";
position:absolute; inset:-40%;
background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.9), transparent 45%);
transform: rotate(15deg); opacity:.55;
}
.titleBlock{ line-height:1.1; }
.titleBlock b{ font-size:14px; letter-spacing:.2px }
.titleBlock span{ display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.pillRow{ display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
.pill{
padding:8px 10px; border-radius:999px; border:1px solid rgba(11,16,32,.10);
background: rgba(255,255,255,.72); backdrop-filter: blur(10px);
font-size:12px; color:rgba(11,16,32,.72); user-select:none;
}
.pill.clickable{ cursor:pointer; }
.progress{
padding: 12px 12px;
border-radius: 16px;
border:1px solid rgba(11,16,32,.10);
background: rgba(255,255,255,.72);
backdrop-filter: blur(12px);
margin-top: 10px;
}
.progressRow{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; color: rgba(11,16,32,.70); }
.bar{ height:10px; border-radius:999px; background: rgba(11,16,32,.07); overflow:hidden; margin-top:8px; }
.bar i{ display:block; height:100%; width:0%; background: linear-gradient(90deg, rgba(126,166,255,.90), rgba(79,211,167,.90)); border-radius:999px; transition: width .35s ease; }
.rules{
margin-top: 10px;
border-radius: 16px;
border:1px solid rgba(11,16,32,.10);
background: rgba(255,255,255,.78);
padding: 12px 12px;
font-size: 12px;
color: rgba(11,16,32,.70);
line-height:1.35;
}
.rules b{ color: rgba(11,16,32,.90); }
.stageBanner{
display:flex; align-items:center; justify-content:space-between; gap:10px;
padding: 14px 14px;
border-bottom:1px solid rgba(11,16,32,.08);
background: linear-gradient(180deg, rgba(126,166,255,.12), rgba(255,255,255,0));
}
.stageName{ font-weight:950; letter-spacing:.2px; }
.stageHint{ font-size:12px; color: rgba(11,16,32,.62); }
.qList{ padding: 10px 14px 14px; display:flex; flex-direction:column; gap:10px; }
.qRow{
border:1px solid rgba(11,16,32,.10);
border-radius: 16px;
padding: 12px 12px;
display:grid;
grid-template-columns: 1fr 190px;
gap: 12px;
align-items:center;
background: rgba(255,255,255,.90);
}
@media (max-width: 980px){
.qRow{ grid-template-columns: 1fr; }
}
.qText{ font-size:14px; line-height:1.35; color: rgba(11,16,32,.90); }
.qMeta{ font-size:11px; color: rgba(11,16,32,.52); margin-top:6px; }
.toggle{
display:flex; gap:10px; justify-content:flex-end;
pointer-events:none; /* prevents blank-area toggles */
}
.toggle .tbtn{ pointer-events:auto; }
@media (max-width: 980px){
.toggle{ justify-content:flex-start; }
}
.tbtn{
min-width: 86px;
border:1px solid rgba(11,16,32,.10);
border-radius: 14px;
padding: 12px 10px;
font-weight: 950;
font-size: 13px;
letter-spacing:.2px;
background: rgba(255,255,255,.92);
box-shadow: 0 12px 28px rgba(11,16,32,.10);
cursor:pointer;
transition: transform .10s ease, box-shadow .20s ease, filter .20s ease;
position:relative;
overflow:hidden;
touch-action: manipulation;
user-select:none;
}
.tbtn::after{
content:"";
position:absolute; inset:-40%;
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.85), transparent 42%);
opacity:0; transform: scale(.9);
transition: opacity .18s ease, transform .18s ease;
pointer-events:none;
}
.tbtn.pressed{
transform: translateY(5px) scale(.972);
filter: brightness(1.03);
box-shadow: 0 6px 14px rgba(11,16,32,.14);
}
.tbtn.pressed::after{ opacity:.90; transform: scale(1.10); }
.tbtn:active{
transform: translateY(6px) scale(.968);
box-shadow: 0 5px 12px rgba(11,16,32,.16);
}
.tbtnYes{ background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(79,211,167,.22)); }
.tbtnNo{ background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,179,90,.22)); }
.tbtn:not(.activeYes):not(.activeNo){
opacity:.78;
filter:saturate(.86) brightness(.99);
}
.tbtn.activeYes{
border-color: rgba(79,211,167,.98);
background: linear-gradient(180deg, rgba(79,211,167,.62), rgba(255,255,255,.96));
box-shadow: 0 0 0 4px rgba(79,211,167,.22), 0 20px 55px rgba(79,211,167,.24);
color: rgba(11,16,32,.96);
}
.tbtn.activeNo{
border-color: rgba(255,179,90,.98);
background: linear-gradient(180deg, rgba(255,179,90,.62), rgba(255,255,255,.96));
box-shadow: 0 0 0 4px rgba(255,179,90,.22), 0 20px 55px rgba(255,179,90,.24);
color: rgba(11,16,32,.96);
}
.tbtn.activeYes::before,
.tbtn.activeNo::before{
content:"✓";
position:absolute;
right:10px;
top:8px;
font-size:14px;
opacity:.92;
transform: translateY(0);
}
.dock{
position: fixed;
left:0; right:0; bottom:0;
padding: 12px 18px 18px;
background: linear-gradient(180deg, rgba(247,251,255,0), rgba(247,251,255,.82) 22%, rgba(247,251,255,.95));
backdrop-filter: blur(14px);
border-top:1px solid rgba(11,16,32,.06);
z-index: 20;
}
.dockInner{
max-width: 1120px;
margin: 0 auto;
display:flex;
align-items:center;
justify-content:space-between;
gap: 12px;
}
.dockLeft{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.dockRight{ display:flex; gap:10px; align-items:center; }
.btn{
border:1px solid rgba(11,16,32,.10);
border-radius: 16px;
padding: 12px 14px;
font-weight: 950;
font-size: 13px;
letter-spacing:.2px;
background: rgba(255,255,255,.86);
box-shadow: 0 12px 28px rgba(11,16,32,.10);
cursor:pointer;
transition: transform .10s ease, box-shadow .20s ease, filter .20s ease;
position:relative; overflow:hidden;
touch-action: manipulation;
user-select:none;
}
.btn.primary{
border:none;
color: rgba(11,16,32,.92);
background: linear-gradient(180deg, rgba(126,166,255,.85), rgba(199,214,255,.85));
box-shadow: 0 16px 40px rgba(126,166,255,.22);
min-width: 150px;
}
.btn:disabled{ cursor:not-allowed; opacity:.55; filter:saturate(.7); }
.btn:active{ transform: translateY(3px) scale(.985); }
.toast{
position: fixed; left:50%; transform: translateX(-50%);
bottom: calc(var(--dock-h) + 18px);
background: rgba(255,255,255,.90);
border:1px solid rgba(11,16,32,.10);
border-radius: 999px;
padding: 10px 12px;
font-size: 12px;
color: rgba(11,16,32,.76);
box-shadow: 0 18px 50px rgba(11,16,32,.20);
opacity:0; pointer-events:none;
transition: opacity .25s ease, transform .25s ease;
z-index: 60;
}
.toast.show{ opacity:1; transform: translateX(-50%) translateY(-6px); }
.modalOverlay{
position:fixed; inset:0;
background: rgba(11,16,32,.40);
display:none; align-items:center; justify-content:center;
padding: 18px;
z-index: 50;
}
.modalOverlay.show{ display:flex; }
.modal{
width: min(760px, 100%);
border-radius: 24px;
overflow:hidden;
border:1px solid rgba(255,255,255,.22);
background: rgba(255,255,255,.88);
backdrop-filter: blur(18px);
box-shadow: 0 30px 90px rgba(11,16,32,.30);
}
.modalTop{ padding: 18px 18px 0; }
.modalTop h1{ margin:0; font-size:18px; letter-spacing:-.2px; }
.modalTop p{ margin: 10px 0 0; font-size: 13px; color: rgba(11,16,32,.70); line-height:1.35; }
.modalCta{ display:flex; gap:10px; padding: 16px 18px 18px; }
.modalCta .btn{ flex:1; padding: 14px 14px; }
.celebrate{ position: fixed; inset:0; display:none; align-items:center; justify-content:center; z-index: 40; pointer-events:none; }
.celebrate.show{ display:flex; }
.celebrateCard{
width: min(520px, 94%);
border-radius: 26px;
padding: 16px 14px;
background: rgba(255,255,255,.92);
backdrop-filter: blur(18px);
border: 1px solid rgba(11,16,32,.10);
box-shadow: 0 30px 90px rgba(11,16,32,.18);
text-align:center;
}
.celebrateCard h2{ margin: 6px 0 0; font-size: 18px; letter-spacing:-.2px; }
.celebrateCard p{ margin: 8px 0 0; font-size: 12px; color: rgba(11,16,32,.68); }
.badge{ display:inline-block; margin-top:10px; padding:8px 10px; border-radius:999px; font-size:12px; font-weight:950; border:1px solid rgba(11,16,32,.10); background: rgba(79,211,167,.14); color: rgba(11,16,32,.78); }
canvas#fx{ position: fixed; inset:0; pointer-events:none; z-index: 39; }
#results{ display:none; }
#results.show{ display:block; }
.resultsHeader{ padding: 14px; border-bottom:1px solid rgba(11,16,32,.08); background: linear-gradient(180deg, rgba(126,166,255,.12), rgba(255,255,255,0)); }
.scoreRow{ display:flex; gap: 14px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.ring{
width:92px;height:92px;border-radius:999px;
background: conic-gradient(rgba(126,166,255,.92) var(--p, 0deg), rgba(11,16,32,.08) 0);
display:flex; align-items:center; justify-content:center;
border:1px solid rgba(11,16,32,.10);
}
.ringInner{
width:70px;height:70px;border-radius:999px;
background: rgba(255,255,255,.92);
border:1px solid rgba(11,16,32,.10);
display:flex; flex-direction:column; align-items:center; justify-content:center;
line-height:1.05;
}
.ringInner b{ font-size:20px; }
.ringInner span{ font-size:11px; color: rgba(11,16,32,.62); }
.evalBox{
flex: 1 1 420px;
border-radius: 16px;
border:1px solid rgba(11,16,32,.10);
background: rgba(255,255,255,.78);
padding: 12px 12px;
font-size: 12px;
color: rgba(11,16,32,.70);
line-height:1.35;
min-width: 320px;
}
.evalBox b{ color: rgba(11,16,32,.90); }
.overview{
margin-top: 12px;
padding: 12px 12px;
border-radius: 16px;
border:1px solid rgba(11,16,32,.10);
background: rgba(255,255,255,.78);
}
.overview p{ margin:0; font-size: 13px; line-height: 1.35; }
.overview p + p{ margin-top: 8px; }
.grid{
padding: 12px 14px 14px;
display:grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
@media (max-width: 980px){
.grid{ grid-template-columns: 1fr; }
}
.miniCard{
border-radius: 16px;
border:1px solid rgba(11,16,32,.10);
background: rgba(255,255,255,.88);
padding: 12px 12px;
}
.miniCard h4{ margin:0; font-size: 13px; }
.miniCard .sub{ margin: 6px 0 0; font-size: 12px; color: rgba(11,16,32,.66); line-height:1.35; }
.spark{ margin-top:10px; height:10px; border-radius:999px; background: rgba(11,16,32,.07); overflow:hidden; }
.spark i{ display:block; height:100%; width:0%; background: linear-gradient(90deg, rgba(79,211,167,.95), rgba(126,166,255,.95)); }
.sources{
margin-top: 10px;
font-size: 11px;
color: rgba(11,16,32,.58);
line-height: 1.35;
}
.sources a{
color: rgba(11,16,32,.70);
text-decoration: none;
border-bottom: 1px solid rgba(11,16,32,.18);
}
</style>
</head>
<body>
<canvas id="fx"></canvas>
<div class="wrap" id="app">
<section class="card">
<div class="panel">
<div class="brandRow">
<div class="brand">
<div class="orb"></div>
<div class="titleBlock">
<b>Brain Quest</b>
<span>Parent check-in • ages 10–15</span>
</div>
</div>
<div class="pillRow">
<div class="pill">XP <b id="xpVal">0</b></div>
<div class="pill clickable" id="audioPill">Sound <b id="audioState">Off</b></div>
</div>
</div>
<div class="progress">
<div class="progressRow">
<span id="stageLabel">Chapter 1/5</span>
<span><b id="answeredCount">0</b>/<span id="stageTotal">6</span> answered</span>
</div>
<div class="bar"><i id="barFill"></i></div>
</div>
<div class="rules">
<b>How to answer</b><br/>
Choose <b>Yes</b> only if the pattern is stronger than peers <b>and</b> causes real-life impairment (school, home, friendships).<br/>
If you are unsure, it is “sometimes”, or you hesitate, choose <b>No</b>.
</div>
<div class="rules" style="margin-top:10px;">
<b>What you will do</b><br/>
Five chapters × six items. You can answer a whole chapter on one page. Items are selected adaptively from a larger bank (teen-tailored parent report).
</div>
<div class="rules" style="margin-top:10px;">
<b>Privacy</b><br/>
Progress is saved only in <b>session storage</b> (this browser tab). Closing the tab clears it.
</div>
</div>
</section>
<section class="card" id="mainCard">
<div class="stageBanner">
<div>
<div class="stageName" id="chapterName">Chapter 1 • Soft Start</div>
<div class="stageHint" id="chapterHint">Answer all six. Only the buttons are clickable.</div>
</div>
<div class="pill" id="themePill">Quiet Bloom</div>
</div>
<div class="qList" id="qList"></div>
<div id="results">
<div class="resultsHeader">
<div class="scoreRow">
<div class="ring" id="scoreRing" style="--p:0deg;">
<div class="ringInner">
<b id="totalYes">0</b>
<span>Yes</span>
</div>
</div>
<div class="evalBox">
<b id="overallEval">—</b><br/>
<span id="overallHint">Saved in session storage (this tab only).</span>
<div class="overview" id="overviewBox" style="margin-top:10px;">
<p id="ov1"></p>
<p id="ov2"></p>
<p id="ov3"></p>
</div>
<div class="sources" id="sourceList"></div>
</div>
</div>
</div>
<div class="grid" id="resultCards"></div>
<div style="padding: 0 14px 14px;">
<div style="display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap;">
<button class="btn" id="restartBtn">Run again</button>
<button class="btn" id="clearBtn">Clear session</button>
</div>
</div>
</div>
</section>
</div>
<div class="dock" id="dock">
<div class="dockInner">
<div class="dockLeft">
<button class="btn" id="backBtn">Back</button>
<button class="btn" id="reviewBtn">Review</button>
</div>
<div class="dockRight">
<span class="pill" id="statusPill">Not finished</span>
<button class="btn primary" id="nextBtn" disabled>Next chapter</button>
</div>
</div>
</div>
<div class="modalOverlay" id="startModal">
<div class="modal">
<div class="modalTop">
<h1>Start a calm parent run</h1>
<p>This is a structured check-in for parents of kids ages 10–15. It is strict on purpose: only answer <b>Yes</b> when the behavior is clearly stronger than peers and causes real-world impairment. Most questions refer to the past 6 months; a few explicitly refer to the past 2 weeks.</p>
</div>
<div class="rules" style="margin: 12px 18px 0;">
<b>Tip</b><br/>
If a support system is preventing consequences (checklists, constant supervision), answer based on what happens <b>without</b> that support.
</div>
<div class="modalCta">
<button class="btn" id="startSilent">Start silent</button>
<button class="btn primary" id="startSound">Start with sound</button>
</div>
</div>
</div>
<div class="celebrate" id="celebrate">
<div class="celebrateCard">
<div style="font-size:34px; line-height:1;">✨</div>
<h2 id="celebrateTitle">Chapter cleared!</h2>
<p id="celebrateSub">Nice and steady. Next chapter is ready.</p>
<div class="badge" id="celebrateBadge">+0 XP</div>
</div>
</div>
<div class="toast" id="toast">Saved</div>
<script>
const BANK = [{"id":"T001","domain":"adhd","facet":"details","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child makes careless mistakes on homework/tests even when they know the material, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T002","domain":"adhd","facet":"details","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child skips steps or misreads directions, leading to avoidable errors, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T003","domain":"adhd","facet":"sustained_focus","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child cannot stay with reading or independent work long enough to finish without repeated prompting, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T004","domain":"adhd","facet":"sustained_focus","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child loses the thread during explanations (class, coaching, conversations) and misses key points, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T005","domain":"adhd","facet":"listening","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child seems not to take in what is said the first time, even in a calm setting, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T006","domain":"adhd","facet":"follow_through","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child starts homework or chores but leaves them unfinished unless you check repeatedly, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T007","domain":"adhd","facet":"follow_through","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child abandons multi-step tasks (packing, cleaning, project work) halfway through, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T008","domain":"adhd","facet":"organization_school","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child regularly has missing assignments because materials or uploads are not tracked, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T009","domain":"adhd","facet":"organization_school","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child has backpack/locker/device files so disorganized that work is repeatedly lost or late, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T010","domain":"adhd","facet":"planning_projects","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child struggles with long-term assignments (projects over days) and ends up in repeated last-minute crises, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T011","domain":"adhd","facet":"time_management","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child underestimates time so often that they are chronically late to school, activities, or deadlines, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T012","domain":"adhd","facet":"time_management","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child needs multiple time checks for simple routines (get ready, leave, transitions) and still runs behind, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T013","domain":"adhd","facet":"initiation","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child gets stuck starting necessary work for an hour or more, even when consequences are known, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T014","domain":"adhd","facet":"effort_avoidance","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child avoids sustained-effort tasks (essays, studying, long reading) enough to cause grades to drop or deadlines to be missed, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T015","domain":"adhd","facet":"working_memory","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child forgets one step when given 2-3 instructions, causing repeated mistakes, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T016","domain":"adhd","facet":"working_memory","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child loses track mid-task (what they were doing or looking for) often enough to disrupt productivity, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T017","domain":"adhd","facet":"distractibility","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child is derailed by small distractions (notifications, noises, movement) far more than peers in the same setting, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T018","domain":"adhd","facet":"distractibility","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child switches attention to side tasks (tabs, messages, objects) and cannot return without prompting, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T019","domain":"adhd","facet":"materials","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child misplaces important items (homework, charger, sports gear, keys/phone) often enough to disrupt plans, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T020","domain":"adhd","facet":"forgetful","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child forgets daily responsibilities (turning in completed work, chores, forms) with repeated consequences, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T021","domain":"adhd","facet":"forgetful","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child forgets agreed plans (rides, meet-ups, appointments) often enough to create conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T022","domain":"adhd","facet":"prioritization","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child spends a long time on small details while urgent core work is neglected, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T023","domain":"adhd","facet":"task_switching","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has a hard time switching from a preferred activity to a required one, causing a long stall or conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T024","domain":"adhd","facet":"hyperfocus","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child gets locked into one activity so long that sleep, meals, or responsibilities are repeatedly missed, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T025","domain":"adhd","facet":"fidget","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child fidgets or taps so much that it disrupts homework, meals, or school expectations, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T026","domain":"adhd","facet":"leave_seat","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child gets up or wanders when expected to stay seated, creating repeated issues, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T027","domain":"adhd","facet":"restless","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child seems constantly on the go in a way that causes real problems with rules or routines, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T028","domain":"adhd","facet":"talking","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child talks at inappropriate times and repeatedly gets negative feedback at school, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T029","domain":"adhd","facet":"interrupt","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child interrupts or talks over others and it has harmed peer relationships, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T030","domain":"adhd","facet":"wait_turn","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child cannot wait their turn in lines/games and it causes repeated conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T031","domain":"adhd","facet":"intrude","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child butts into others' activities or conversations and it causes repeated social fallout, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T032","domain":"adhd","facet":"impulsive_words","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child says things quickly and regrets them immediately, with repeated consequences, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T033","domain":"adhd","facet":"risk_rules","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child acts without thinking in ways that repeatedly create safety issues or serious rule problems, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T034","domain":"adhd","facet":"emotion_fast","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has frustration escalate very quickly compared with peers, leading to blowups or shutdowns, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T035","domain":"adhd","facet":"emotion_recover","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child takes much longer than peers to calm down and return to tasks, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T036","domain":"adhd","facet":"homework_submit","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child does not submit completed work (forgotten upload/turn-in) often enough to affect grades, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T037","domain":"adhd","facet":"homework_start","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child delays starting homework until late evening often enough to harm sleep and create conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T038","domain":"adhd","facet":"study_independence","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child cannot study or plan work without constant supervision, and performance suffers, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T039","domain":"adhd","facet":"groupwork","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child misses their role in group work because they drift or forget steps, causing peer conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T040","domain":"adhd","facet":"extracurricular_instructions","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child misses instructions in sports/activities often enough to create repeated problems, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T041","domain":"adhd","facet":"teacher_prompting","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child needs far more prompting than peers to start/stay on task (per teacher feedback), and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T042","domain":"adhd","facet":"morning_launch","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child makes mornings regularly chaotic because they cannot sequence steps without heavy supervision, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T043","domain":"adhd","facet":"bedtime_transition","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child makes bedtime regularly derail because switching off activities triggers a long stall or conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T044","domain":"adhd","facet":"chores_steps","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child forgets steps during chores or routines and it causes repeated redo, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T045","domain":"adhd","facet":"self_monitor","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child does not notice being too loud/too close/too disruptive until corrected, and it causes trouble, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T046","domain":"adhd","facet":"digital_schoolwork","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child while doing homework on a device, drifts into unrelated tabs/apps and cannot self-correct, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T047","domain":"adhd","facet":"note_tracking","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child even with a planner or app set up, still loses track of what is due and when, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T048","domain":"adhd","facet":"deadline_pressure","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child works mainly under immediate pressure, leading to repeated crises, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T049","domain":"adhd","facet":"procrastination_cycle","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has repeating cycles of avoidance -> panic -> late-night catch-up that harm functioning, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T050","domain":"adhd","facet":"instruction_repeat","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child needs instructions repeated multiple times in a normal setting more than peers do, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T051","domain":"adhd","facet":"auto_fill_errors","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has their brain 'auto-fill' and they skip steps, causing careless errors despite trying to be accurate, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T052","domain":"adhd","facet":"friend_followup","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has friendships suffer because they forget to reply or follow plans for weeks at a time, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T053","domain":"adhd","facet":"school_consequences","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has repeated school consequences linked to impulsive comments or rule breaking, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T054","domain":"adhd","facet":"sleep_schedule","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child cannot wind down on time and it repeatedly harms school mornings, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T055","domain":"adhd","facet":"hygiene_routine","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child stalls on basic self-care (shower, teeth, laundry) and it creates real conflict or consequences, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T056","domain":"autism","facet":"social_hints","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child often misses indirect hints, sarcasm, or 'read between the lines' meaning in real conversations, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T057","domain":"autism","facet":"social_reciprocity","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child finds back-and-forth conversation hard (timing, turn-taking, staying on topic) and it limits friendships, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T058","domain":"autism","facet":"nonverbal_reading","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child misreads facial expression, tone, or body language, causing repeated misunderstandings, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T059","domain":"autism","facet":"joining_groups","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child struggles to join groups smoothly (knowing when to speak/what to do) and it affects belonging, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T060","domain":"autism","facet":"friendships","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has ongoing difficulty making or keeping same-age friends beyond normal ups and downs, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T061","domain":"autism","facet":"social_fatigue","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child needs long recovery after social time (withdrawn, irritable, exhausted) that disrupts routines, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T062","domain":"autism","facet":"literal_language","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child takes language very literally and often misses implied meaning, causing repeated confusion, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T063","domain":"autism","facet":"teasing_jokes","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child struggles with teasing/jokes/figurative language and it causes social friction, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T064","domain":"autism","facet":"eye_contact","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child uses eye contact in a noticeably unusual way that affects social interactions, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T065","domain":"autism","facet":"topic_fixation","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child gets stuck on a topic when others have moved on, leading to repeated negative feedback, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T066","domain":"autism","facet":"rule_bound","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child insists on strict rules in games/discussions, repeatedly causing peer conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T067","domain":"autism","facet":"special_interests","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has an intense interest that dominates time or conversation and crowds out responsibilities or relationships, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T068","domain":"autism","facet":"change_distress","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child has strong distress with unexpected changes (schedule, substitute teacher, plan changes) that derails the day, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T069","domain":"autism","facet":"rigid_routines","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child relies on rigid routines/rituals that repeatedly limit flexibility in daily life, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T070","domain":"autism","facet":"sensory_noise","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child is overwhelmed by everyday sounds (cafeteria, classroom, chewing) enough to trigger escape or shutdown, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T071","domain":"autism","facet":"sensory_clothes","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has strong distress from clothing textures/tags or body sensations beyond what peers show, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T072","domain":"autism","facet":"sensory_light","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child is bothered by bright lights/visual clutter enough to avoid places or activities, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T073","domain":"autism","facet":"food_texture","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has strong food texture/taste restrictions that repeatedly disrupt meals and routines, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T074","domain":"autism","facet":"shutdown","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child when overwhelmed, 'shuts down' (goes quiet, stops responding) in ways that interfere with school/home, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T075","domain":"autism","facet":"meltdown_reset","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child after a social misunderstanding, becomes intensely upset and cannot reset quickly, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T076","domain":"autism","facet":"perspective","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has trouble taking others' perspective in real time, causing repeated conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T077","domain":"autism","facet":"social_rules","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child seems unsure of unspoken social rules (personal space, small talk, group norms) and it causes repeated issues, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T078","domain":"autism","facet":"speech_style","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has noticeably unusual speech style (formal, monotone, or overly detailed) that affects peer interactions, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T079","domain":"autism","facet":"peer_age_pref","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child consistently prefers much younger/older peers because same-age interaction feels confusing or exhausting, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T080","domain":"autism","facet":"bullying_target","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child is frequently bullied or excluded because they seem 'different', and it has caused clear impairment, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T081","domain":"other","facet":"phq_interest","level":4,"text":"In the last 2 weeks, has your child had noticeably less interest or pleasure in most activities than usual?"},{"id":"T082","domain":"other","facet":"phq_mood","level":4,"text":"In the last 2 weeks, has your child seemed down, very irritable, or hopeless on most days?"},{"id":"T083","domain":"other","facet":"phq_sleep","level":3,"text":"In the last 2 weeks, have sleep problems (too little, too much, or frequent waking) clearly disrupted daytime functioning?"},{"id":"T084","domain":"other","facet":"phq_energy","level":3,"text":"In the last 2 weeks, has low energy or fatigue been strong enough to impair schoolwork or routines?"},{"id":"T085","domain":"other","facet":"phq_appetite","level":2,"text":"In the last 2 weeks, have appetite changes (much less or much more) been noticeable and disruptive?"},{"id":"T086","domain":"other","facet":"phq_concentration","level":3,"text":"In the last 2 weeks, has anxiety or low mood clearly reduced concentration and school performance?"},{"id":"T087","domain":"other","facet":"scared_worry","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child worries so much they cannot stop, and it clearly interferes with sleep, focus, or daily routines, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T088","domain":"other","facet":"scared_body","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has strong physical anxiety symptoms (stomachaches, headaches, sweating, trembling) that disrupt school or activities, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T089","domain":"other","facet":"scared_social","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child avoids social situations due to fear of embarrassment or being judged, limiting participation, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T090","domain":"other","facet":"scared_school","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child avoids school (refusal, frequent 'sick' mornings) and it has created clear attendance or academic impact, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T091","domain":"other","facet":"scared_separation","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has age-unusual distress about being away from you that interferes with school or activities, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T092","domain":"other","facet":"panic_surges","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has sudden surges of fear with physical symptoms that disrupt functioning, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T093","domain":"other","facet":"sleep_chronic","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has persistent sleep schedule problems that clearly worsen mornings and school functioning, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T094","domain":"other","facet":"learning_specific","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child struggles in one academic skill area despite effort and support, driving avoidance and frustration, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T095","domain":"other","facet":"bullying_driver","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has ongoing bullying or peer conflict that is clearly affecting attention and performance, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T096","domain":"other","facet":"trauma_reactivity","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child after a stressful event, remains unusually reactive or avoidant in a way that disrupts daily functioning, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T097","domain":"other","facet":"irritability_general","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child is irritable across settings most days, causing repeated problems at home or school, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T098","domain":"other","facet":"somatic_stress","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child often has stress-linked stomachaches or headaches that disrupt attendance or performance, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T099","domain":"other","facet":"medical_hearing_vision","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has a hearing/vision/medical factor that has clearly contributed to missed instructions or performance problems, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T100","domain":"other","facet":"substance_vaping","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has nicotine/vaping or other substance use that has caused clear impairment or repeated serious consequences, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T101","domain":"digital","facet":"impaired_control","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child cannot stop gaming/short-video scrolling when they intend to stop, and this pattern persists, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T102","domain":"digital","facet":"priority","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child has online activity regularly take priority over homework, sleep, or in-person relationships despite consequences, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T103","domain":"digital","facet":"continue_harm","level":4,"text":"Over the past 6 months, compared with most kids the same age, your child continues heavy gaming/app use for months despite clear harm (sleep loss, grades, conflict), and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T104","domain":"digital","facet":"withdrawal","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child becomes intensely distressed when screens are limited, beyond typical disappointment, disrupting family routines, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T105","domain":"digital","facet":"tolerance","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child needs longer sessions or more intense content to feel satisfied, and impairment has increased, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T106","domain":"digital","facet":"deception","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child hides or lies about screen use and it has caused repeated serious conflict, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T107","domain":"digital","facet":"escape_mood","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child uses gaming/social apps mainly to escape negative mood, and it has become an impairing pattern, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T108","domain":"digital","facet":"night_use","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child has screen use repeatedly push bedtime later than intended and clearly worsen mornings and school functioning, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T109","domain":"digital","facet":"school_device","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has device use during schoolwork repeatedly derail learning time or cause discipline (if devices are used), and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T110","domain":"digital","facet":"online_drama","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child has online messaging/drama repeatedly disrupt sleep or focus due to constant checking/responding, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T111","domain":"cope","facet":"parent_scaffold","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child functions mainly because you provide heavy structure (reminders, checking portals, supervising); without that support, schoolwork and routines fall apart, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T112","domain":"cope","facet":"teacher_accom","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child needs accommodations (extra time, seating, coaching) for baseline functioning; without them, performance drops sharply, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T113","domain":"cope","facet":"mask_crash","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child holds it together at school but regularly crashes at home (exhausted, irritable, shutdown) after school days, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T114","domain":"cope","facet":"parent_time","level":3,"text":"Over the past 6 months, compared with most kids the same age, your child requires far more parent time to manage homework and routines than parents of peers, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T115","domain":"cope","facet":"body_double","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child can only start or finish tasks when an adult stays nearby, and this dependence limits independence, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."},{"id":"T116","domain":"cope","facet":"weekend_catchup","level":2,"text":"Over the past 6 months, compared with most kids the same age, your child relies on weekend sleep catch-up because weekday routines routinely run too late, and it has clearly caused real-life problems (schoolwork, routines, friendships, or family conflict)."}];
const SOURCES = [
{
"name": "NICHQ Vanderbilt Assessment Scales (parent/teacher; symptoms + impairment)",
"url": "https://nichq.org/wp-content/uploads/2024/09/NICHQ-Vanderbilt-Assessment-Scales.pdf"
},
{
"name": "Vanderbilt scoring instructions (impairment/performance emphasis)",
"url": "https://www.uwmedicine.org/sites/stevie/files/2019-11/sodbp_vanderbilt_scoringinstructions.pdf"
},
{
"name": "SNAP-IV 26-item rating scale scoring guide",
"url": "https://adhdtreat.caddra.ca/wp-content/uploads/2025/01/SNAP-IV-26-%E2%80%93-Scoring-Guide.pdf"
},
{
"name": "ASSQ (ages 6–17) screening questionnaire PDF",
"url": "https://mc3michigan.org/wp-content/uploads/2024/08/ASSQ-v2-ages-6-17.pdf"
},
{
"name": "SCARED Parent Version (anxiety domains incl. school avoidance)",
"url": "https://www.aacap.org/App_Themes/AACAP/docs/member_resources/toolbox_for_clinical_practice_and_outcomes/symptoms/ScaredParent.pdf"
},
{
"name": "PHQ-9 Modified for Teens (GLAD-PC / AACAP)",
"url": "https://www.aacap.org/App_Themes/AACAP/docs/member_resources/toolbox_for_clinical_practice_and_outcomes/symptoms/GLAD-PC_PHQ-9.pdf"
},
{
"name": "Strengths and Difficulties Questionnaire (SDQ) parent 11-17 PDF",
"url": "https://depts.washington.edu/dbpeds/Screening%20Tools/Strengths_and_Difficulties_Questionnaire.pdf"
},
{
"name": "WHO ICD-11: Gaming disorder FAQ (impaired control, priority, continuation despite harm)",
"url": "https://www.who.int/standards/classifications/frequently-asked-questions/gaming-disorder"
},
{
"name": "American Psychiatric Association: Internet Gaming Disorder overview",
"url": "https://www.psychiatry.org/patients-families/internet-gaming"
}
];
const STORE_KEY = "brainQuest_parent_desktop_v2_teen_qbank";
const STAGES = 5;
const PER_STAGE = 6;
const TOTAL_MAIN = STAGES * PER_STAGE;
const THEMES = [
{ pill:"Quiet Bloom", name:"Soft Start" },
{ pill:"Calm Stream", name:"Steady Flow" },
{ pill:"Cloud Garden", name:"Bright Focus" },
{ pill:"Meadow Air", name:"Clear Signals" },
{ pill:"Moonlight", name:"Gentle Finish" },
];
const el = (id)=>document.getElementById(id);
const qList = el("qList");
const stageLabel = el("stageLabel");
const answeredCount = el("answeredCount");
const stageTotal = el("stageTotal");
const barFill = el("barFill");
const chapterName = el("chapterName");
const themePill = el("themePill");
const nextBtn = el("nextBtn");
const backBtn = el("backBtn");
const reviewBtn = el("reviewBtn");
const statusPill = el("statusPill");
const startModal = el("startModal");
const startSilent = el("startSilent");
const startSound = el("startSound");
const celebrate = el("celebrate");
const celebrateTitle = el("celebrateTitle");
const celebrateSub = el("celebrateSub");
const celebrateBadge = el("celebrateBadge");
const xpVal = el("xpVal");
const audioState = el("audioState");
const audioPill = el("audioPill");
const results = el("results");
const dock = el("dock");
const totalYesEl = el("totalYes");
const scoreRing = el("scoreRing");
const overallEval = el("overallEval");
const resultCards = el("resultCards");
const restartBtn = el("restartBtn");
const clearBtn = el("clearBtn");
const sourceList = el("sourceList");
const ov1 = el("ov1");
const ov2 = el("ov2");
const ov3 = el("ov3");
const toast = el("toast");
function shuffle(arr){
const a = arr.slice();
for(let i=a.length-1;i>0;i--){ const j=Math.floor(Math.random()*(i+1)); [a[i],a[j]]=[a[j],a[i]]; }
return a;
}
function showToast(msg){ toast.textContent = msg; toast.classList.add("show"); clearTimeout(showToast._t); showToast._t=setTimeout(()=>toast.classList.remove("show"), 900); }
function saveRun(){ try{ sessionStorage.setItem(STORE_KEY, JSON.stringify(run)); }catch(e){} }
function loadRun(){ try{ const raw=sessionStorage.getItem(STORE_KEY); return raw?JSON.parse(raw):null; }catch(e){ return null; } }
function clearRun(){ try{ sessionStorage.removeItem(STORE_KEY); }catch(e){} }
// ---- Audio (soft) ----
let audioEnabled=false, audioReady=false;
let ctx=null, master=null, musicBus=null, sfxBus=null;
let musicNodes=[], musicTimer=null;
function ensureAudio(){
if(audioReady) return;
ctx = new (window.AudioContext || window.webkitAudioContext)();
master = ctx.createGain(); master.gain.value = 0.30; master.connect(ctx.destination);
musicBus = ctx.createGain(); musicBus.gain.value = 0.20; musicBus.connect(master);
sfxBus = ctx.createGain(); sfxBus.gain.value = 0.26; sfxBus.connect(master);
audioReady=true;
}
async function unlockAudio(){
try{
ensureAudio();
if(ctx.state!=="running") await ctx.resume();
audioEnabled=true;
audioState.textContent="On";
audioPill.style.background="rgba(79,211,167,.16)";
startMusicForStage(run.stage || 0);
}catch(e){}
}
function stopMusic(){
if(musicTimer) clearInterval(musicTimer);
musicTimer=null;
for(const n of musicNodes){ try{ n.stop && n.stop(); }catch(e){} try{ n.disconnect && n.disconnect(); }catch(e){} }
musicNodes=[];
}
function gentlePad(freq, detuneCents=0){
const o = ctx.createOscillator();
o.type="sine";
o.frequency.value=freq;
o.detune.value=detuneCents;
const g = ctx.createGain();
g.gain.value=0.0001;
const lp = ctx.createBiquadFilter();
lp.type="lowpass"; lp.frequency.value=800; lp.Q.value=0.55;
o.connect(lp); lp.connect(g); g.connect(musicBus);
const now = ctx.currentTime;
g.gain.setValueAtTime(0.0001, now);
g.gain.linearRampToValueAtTime(0.10, now+1.2);
g.gain.linearRampToValueAtTime(0.065, now+3.8);
o.start();
musicNodes.push(o,g,lp);
}
function startMusicForStage(stageIdx){
if(!audioEnabled || !audioReady) return;
stopMusic();
const roots = [261.63, 246.94, 293.66, 220.00, 277.18];
const root = roots[Math.max(0, Math.min(roots.length-1, stageIdx))];
const chord = [1, 5/4, 3/2];
gentlePad(root*chord[0], -6);
gentlePad(root*chord[1], +7);
gentlePad(root*chord[2], -12);
musicTimer=setInterval(()=>{
if(!audioEnabled || ctx.state!=="running") return;
const t=ctx.currentTime;
musicBus.gain.setTargetAtTime(0.20 + 0.03*Math.sin(t*0.6), t, 0.7);
}, 800);
setTimeout(()=>{
if(!audioEnabled) return;
stopMusic();
startMusicForStage(stageIdx);
}, 19000);
}
function sfxTap(){
if(!audioEnabled || !audioReady) return;
const now=ctx.currentTime;
const o=ctx.createOscillator();
o.type="sine";
o.frequency.setValueAtTime(520, now);
const g=ctx.createGain();
g.gain.setValueAtTime(0.0001, now);
g.gain.linearRampToValueAtTime(0.08, now+0.012);
g.gain.exponentialRampToValueAtTime(0.0001, now+0.10);
const lp=ctx.createBiquadFilter();
lp.type="lowpass"; lp.frequency.setValueAtTime(900, now);
o.connect(lp); lp.connect(g); g.connect(sfxBus);
o.start(now); o.stop(now+0.11);
}
function sfxWin(){
if(!audioEnabled || !audioReady) return;
const now=ctx.currentTime;
const notes=[659.25, 783.99, 987.77];
notes.forEach((f,i)=>{
const t=now+i*0.085;
const o=ctx.createOscillator(); o.type="sine"; o.frequency.setValueAtTime(f,t);
const g=ctx.createGain();
g.gain.setValueAtTime(0.0001,t);
g.gain.linearRampToValueAtTime(0.09,t+0.02);
g.gain.exponentialRampToValueAtTime(0.0001,t+0.22);
const lp=ctx.createBiquadFilter(); lp.type="lowpass"; lp.frequency.setValueAtTime(1100,t);
o.connect(lp); lp.connect(g); g.connect(sfxBus);
o.start(t); o.stop(t+0.26);
});
}
audioPill.addEventListener("click", async ()=>{
if(!audioReady) await unlockAudio();
else{
audioEnabled=!audioEnabled;
audioState.textContent = audioEnabled ? "On" : "Off";
audioPill.style.background = audioEnabled ? "rgba(79,211,167,.16)" : "rgba(255,255,255,.72)";
if(audioEnabled) startMusicForStage(run.stage || 0);
else stopMusic();
}
if(audioEnabled) sfxTap();
});
// ---- Confetti ----
const fx=document.getElementById("fx");
const fxc=fx.getContext("2d");
let confetti=[];
function resizeFx(){ fx.width=window.innerWidth*devicePixelRatio; fx.height=window.innerHeight*devicePixelRatio; fxc.setTransform(devicePixelRatio,0,0,devicePixelRatio,0,0); }
window.addEventListener("resize", resizeFx);
resizeFx();
function burstConfetti(){
const w=window.innerWidth, h=window.innerHeight;
const cx=w*0.5, cy=h*0.32;
const n=42;
for(let i=0;i<n;i++){
const a=Math.random()*Math.PI*2;
const sp=2+Math.random()*3.2;
confetti.push({ x:cx, y:cy, vx:Math.cos(a)*sp, vy:Math.sin(a)*sp-2.0, r:2+Math.random()*3, t:0, life:42+Math.random()*44, hue:180+Math.random()*70 });
}
}
function tickFx(){
fxc.clearRect(0,0,window.innerWidth,window.innerHeight);
confetti=confetti.filter(p=>p.t<p.life);
for(const p of confetti){
p.t+=1; p.vy+=0.08; p.x+=p.vx; p.y+=p.vy;
const alpha=1-(p.t/p.life);
fxc.beginPath();
fxc.fillStyle = `hsla(${p.hue} 75% 70% / ${alpha*0.65})`;
fxc.arc(p.x,p.y,p.r,0,Math.PI*2);
fxc.fill();
}
requestAnimationFrame(tickFx);
}
tickFx();
// ---- Adaptive selection ----
function domainCounts(answers){
const out={};
for(const d of ["adhd","autism","other","digital","cope"]) out[d]={yes:0, asked:0};
for(const [qid,val] of Object.entries(answers)){
const q=BANK_BY_ID[qid]; if(!q) continue;
out[q.domain]=out[q.domain]||{yes:0,asked:0};
out[q.domain].asked += 1;
if(val===true) out[q.domain].yes += 1;
}
return out;
}
function rate(yes, asked){ return (yes+1)/(asked+2); }
function uncertainty(r){ return r*(1-r); }
const BANK_BY_ID = Object.fromEntries(BANK.map(q=>[q.id,q]));
function scoreCandidate(q, counts, primaryDomain, usedFacets){
const d=q.domain;
const r=rate(counts[d]?.yes||0, counts[d]?.asked||0);
const u=uncertainty(r);
let s=0;
s += (d===primaryDomain ? 0.80 : 0.32);
s += 1.25*u;
s += 0.10*(q.level||2);
if(!usedFacets.has(q.facet)) s += 0.22;
s += Math.random()*0.08;
return s;
}
function pickStageQuestions(){
const remaining = run.pool.filter(id => run.answers[id] === undefined);
const counts = domainCounts(run.answers);
const rates = {};
for(const d of ["adhd","autism","other","digital","cope"]) rates[d]=rate(counts[d]?.yes||0, counts[d]?.asked||0);
const primary = Object.entries(rates).filter(([k,_])=>k!=="cope").sort((a,b)=>b[1]-a[1])[0][0];
const targets = ["adhd","adhd","autism","other","digital","cope"];
const picked=[];
const usedFacets=new Set();
function pickFromDomain(dom){
const candidates = remaining
.map(id=>BANK_BY_ID[id])
.filter(q=>q && q.domain===dom && !picked.includes(q.id));
if(!candidates.length) return null;
candidates.sort((a,b)=>scoreCandidate(b,counts,primary,usedFacets)-scoreCandidate(a,counts,primary,usedFacets));
const qq=candidates[0];
picked.push(qq.id);
usedFacets.add(qq.facet);
return qq.id;
}
for(const d of targets){
const got = pickFromDomain(d);
if(!got){
const cand = remaining
.map(id=>BANK_BY_ID[id])
.filter(q=>q && !picked.includes(q.id))
.map(q=>({id:q.id, s:scoreCandidate(q,counts,primary,usedFacets)}))
.sort((a,b)=>b.s-a.s)[0];
if(cand) { picked.push(cand.id); usedFacets.add(BANK_BY_ID[cand.id].facet); }
}
}
return picked.slice(0, PER_STAGE);
}
// ---- Run state ----
let run = null;
function makeNewRun(){
const ids = shuffle(BANK.map(q=>q.id));
return {
v: 2,
createdAt: Date.now(),
pool: ids,
stage: 0,
stageOrder: [],
answers: {},
xp: 0,
finishedAt: null
};
}
function addXP(n){ run.xp=(run.xp||0)+n; xpVal.textContent=String(run.xp); saveRun(); }
function currentStageIds(){ return run.stageOrder[run.stage] || []; }
function stageAnsweredCount(){
const ids=currentStageIds();
let c=0;
for(const id of ids){ if(typeof run.answers[id]==="boolean") c++; }
return c;
}
function isStageComplete(){ return stageAnsweredCount() >= PER_STAGE; }
function setTheme(stageIdx){
const t=THEMES[Math.max(0, Math.min(THEMES.length-1, stageIdx))];
themePill.textContent = t.pill;
chapterName.textContent = `Chapter ${stageIdx+1} • ${t.name}`;
stageLabel.textContent = `Chapter ${stageIdx+1}/${STAGES}`;
}
function escapeHtml(str){
return String(str)
.replaceAll("&","&")
.replaceAll("<","<")
.replaceAll(">",">")
.replaceAll('"',""")
.replaceAll("'","'");
}
// ---- Choice handling ----
function bindChoice(btn, qid, val){
let tracking=false;
let canceled=false;
let startX=0, startY=0;
let pid=null;
btn.addEventListener("pointerdown", (e)=>{
if(e.button !== undefined && e.button !== 0) return;
tracking=true; canceled=false; pid=e.pointerId;
startX=e.clientX; startY=e.clientY;
btn.classList.add("pressed");
try{ btn.setPointerCapture(pid); }catch(_){}
e.preventDefault();
}, {passive:false});
btn.addEventListener("pointermove", (e)=>{
if(!tracking || e.pointerId!==pid) return;
const dx=e.clientX-startX, dy=e.clientY-startY;
if(Math.hypot(dx,dy) > 12){
canceled=true;
btn.classList.remove("pressed");
}
});
const end = (e)=>{
if(!tracking || e.pointerId!==pid) return;
tracking=false;
btn.classList.remove("pressed");
const rect = btn.getBoundingClientRect();
const inside = e.clientX>=rect.left && e.clientX<=rect.right && e.clientY>=rect.top && e.clientY<=rect.bottom;
if(!canceled && inside){
if(audioEnabled) sfxTap();
setAnswer(qid, val);
}
};
btn.addEventListener("pointerup", end);
btn.addEventListener("pointercancel", ()=>{ tracking=false; canceled=true; btn.classList.remove("pressed"); });
btn.addEventListener("click", (e)=>{ e.preventDefault(); e.stopPropagation(); });
}
function renderStage(){
results.classList.remove("show");
dock.style.display="";
qList.style.display="";
statusPill.textContent = "In progress";
setTheme(run.stage);
if(!run.stageOrder[run.stage]) run.stageOrder[run.stage]=pickStageQuestions();
stageTotal.textContent = String(PER_STAGE);
const ids = currentStageIds();
qList.innerHTML = "";
for(const qid of ids){
const q=BANK_BY_ID[qid];
const row=document.createElement("div");
row.className="qRow";
const left=document.createElement("div");
const cur = run.answers[qid];
const meta = (cur===true) ? "Selected: YES" : (cur===false) ? "Selected: NO" : "Not answered yet. Only tap/click inside YES or NO.";
left.innerHTML = `<div class="qText">${escapeHtml(q.text)}</div><div class="qMeta">${meta}</div>`;
const toggle=document.createElement("div");
toggle.className="toggle";
const yes=document.createElement("button");
yes.className="tbtn tbtnYes";
yes.type="button";
yes.textContent="YES";
const no=document.createElement("button");
no.className="tbtn tbtnNo";
no.type="button";
no.textContent="NO";
if(cur===true) yes.classList.add("activeYes");
if(cur===false) no.classList.add("activeNo");
bindChoice(yes, qid, true);
bindChoice(no, qid, false);
toggle.appendChild(yes);
toggle.appendChild(no);
row.appendChild(left);
row.appendChild(toggle);
qList.appendChild(row);
}
updateProgressUI();
updateNavUI();
if(audioEnabled) startMusicForStage(run.stage);
}
function updateProgressUI(){
const done=stageAnsweredCount();
answeredCount.textContent = String(done);
const overallDone = Object.keys(run.answers).filter(k=>typeof run.answers[k]==="boolean").length;
const pct = Math.round((overallDone / TOTAL_MAIN)*100);
barFill.style.width = `${pct}%`;
}
function updateNavUI(){
nextBtn.disabled = !isStageComplete();
backBtn.disabled = (run.stage===0);
statusPill.textContent = isStageComplete() ? "Ready" : "Answer all 6";
nextBtn.textContent = (run.stage===STAGES-1) ? "Finish" : "Next chapter";