tokentracker-cli 0.5.10 → 0.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dashboard/dist/assets/DashboardPage-CRoqVbH0.js +12 -0
  2. package/dashboard/dist/assets/{LeaderboardPage-BaHIGvSw.js → LeaderboardPage-B3ZnlNgw.js} +1 -1
  3. package/dashboard/dist/assets/{LeaderboardProfilePage-BCvKUQ4z.js → LeaderboardProfilePage-Cq17bu0k.js} +1 -1
  4. package/dashboard/dist/assets/{ThemeToggle-BVMjkcsk.js → ThemeToggle-D2rifL57.js} +1 -1
  5. package/dashboard/dist/assets/{leaderboard-columns-BvsbuvV1.js → leaderboard-columns-DQnk56C_.js} +1 -1
  6. package/dashboard/dist/assets/{main-Cs8rK2ak.js → main-wolIKQH9.js} +3 -3
  7. package/dashboard/dist/clawd/happy.svg +161 -0
  8. package/dashboard/dist/clawd/idle/collapse.svg +101 -0
  9. package/dashboard/dist/clawd/idle/doze.svg +72 -0
  10. package/dashboard/dist/clawd/idle/follow.svg +64 -0
  11. package/dashboard/dist/clawd/idle/living.svg +196 -0
  12. package/dashboard/dist/clawd/idle/look.svg +115 -0
  13. package/dashboard/dist/clawd/idle/yawn.svg +158 -0
  14. package/dashboard/dist/clawd/mini/alert.svg +129 -0
  15. package/dashboard/dist/clawd/mini/crabwalk.svg +76 -0
  16. package/dashboard/dist/clawd/mini/enter-sleep.svg +65 -0
  17. package/dashboard/dist/clawd/mini/enter.svg +115 -0
  18. package/dashboard/dist/clawd/mini/happy.svg +124 -0
  19. package/dashboard/dist/clawd/mini/idle.svg +83 -0
  20. package/dashboard/dist/clawd/mini/peek.svg +82 -0
  21. package/dashboard/dist/clawd/mini/sleep.svg +112 -0
  22. package/dashboard/dist/clawd/react/double.svg +108 -0
  23. package/dashboard/dist/clawd/react/drag.svg +102 -0
  24. package/dashboard/dist/clawd/react/left.svg +102 -0
  25. package/dashboard/dist/clawd/react/right.svg +102 -0
  26. package/dashboard/dist/clawd/sleep/collapse-sleep.svg +247 -0
  27. package/dashboard/dist/clawd/sleep/sleeping.svg +118 -0
  28. package/dashboard/dist/clawd/sleep/wake.svg +277 -0
  29. package/dashboard/dist/clawd/static-base.svg +21 -0
  30. package/dashboard/dist/clawd/status/disconnected.svg +136 -0
  31. package/dashboard/dist/clawd/status/error.svg +94 -0
  32. package/dashboard/dist/clawd/status/notification.svg +134 -0
  33. package/dashboard/dist/clawd/working/building.svg +231 -0
  34. package/dashboard/dist/clawd/working/carrying.svg +107 -0
  35. package/dashboard/dist/clawd/working/conducting.svg +118 -0
  36. package/dashboard/dist/clawd/working/confused.svg +113 -0
  37. package/dashboard/dist/clawd/working/debugger.svg +91 -0
  38. package/dashboard/dist/clawd/working/juggling.svg +82 -0
  39. package/dashboard/dist/clawd/working/overheated.svg +75 -0
  40. package/dashboard/dist/clawd/working/pushing.svg +125 -0
  41. package/dashboard/dist/clawd/working/sweeping.svg +79 -0
  42. package/dashboard/dist/clawd/working/thinking.svg +119 -0
  43. package/dashboard/dist/clawd/working/typing.svg +153 -0
  44. package/dashboard/dist/clawd/working/ultrathink.svg +166 -0
  45. package/dashboard/dist/clawd/working/wizard.svg +98 -0
  46. package/dashboard/dist/index.html +1 -1
  47. package/dashboard/dist/llms.txt +9 -12
  48. package/dashboard/dist/share.html +1 -1
  49. package/package.json +1 -1
  50. package/dashboard/dist/assets/DashboardPage-DEZCzCqB.js +0 -12
@@ -0,0 +1,124 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ .breathe-anim {
5
+ transform-origin: 7.5px 13px;
6
+ animation: breathe 3.2s infinite ease-in-out;
7
+ }
8
+
9
+ /* Happy arm wave — continuous, fast, fixed pivot at shoulder */
10
+ .arm-happy {
11
+ transform-origin: 2px 9px; /* Shoulder joint in SVG coords, no fill-box */
12
+ animation: arm-happy-wave 0.4s infinite alternate ease-in-out;
13
+ }
14
+
15
+ /* Eyes ^^ blink — mostly ^^ with occasional full blink */
16
+ .eyes-happy-blink {
17
+ transform-origin: 7.5px 9px;
18
+ animation: happy-blink 3s infinite ease-in-out;
19
+ }
20
+
21
+ /* Pixel-Art Sparkle Animations */
22
+ .spark-center {
23
+ opacity: 0;
24
+ animation: flash-center 1.5s infinite step-end;
25
+ animation-delay: var(--delay, 0s);
26
+ }
27
+ .spark-outer {
28
+ opacity: 0;
29
+ animation: flash-outer 1.5s infinite step-end;
30
+ animation-delay: var(--delay, 0s);
31
+ }
32
+
33
+ @keyframes breathe {
34
+ 0%, 100% { transform: scale(1, 1) translate(0, 0); }
35
+ 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
36
+ }
37
+
38
+ /* Continuous happy waving */
39
+ @keyframes arm-happy-wave {
40
+ 0% { transform: rotate(22deg); }
41
+ 100% { transform: rotate(-8deg); }
42
+ }
43
+
44
+ /* Happy blink: frequent blinks to look excited */
45
+ @keyframes happy-blink {
46
+ 0%, 12%, 30%, 42%, 100% { transform: scaleY(1); }
47
+ 6% { transform: scaleY(0.1); }
48
+ 36% { transform: scaleY(0.1); }
49
+ }
50
+
51
+ @keyframes flash-center {
52
+ 0% { opacity: 0; }
53
+ 10% { opacity: 1; }
54
+ 30% { opacity: 0; }
55
+ 100%{ opacity: 0; }
56
+ }
57
+ @keyframes flash-outer {
58
+ 0% { opacity: 0; }
59
+ 20% { opacity: 1; }
60
+ 40% { opacity: 0; }
61
+ 100%{ opacity: 0; }
62
+ }
63
+ </style>
64
+
65
+ <!-- Reusable Pixel Art Sparkle (from clawd-happy.svg) -->
66
+ <g id="px-sparkle">
67
+ <rect class="spark-center" x="-0.5" y="-0.5" width="1" height="1" />
68
+ <path class="spark-outer" d="M -0.5,-1.5 h1 v1 h-1 z
69
+ M -0.5,0.5 h1 v1 h-1 z
70
+ M -1.5,-0.5 h1 v1 h-1 z
71
+ M 0.5,-0.5 h1 v1 h-1 z" />
72
+ </g>
73
+ </defs>
74
+
75
+ <!-- Entire character leaning -->
76
+ <g transform="rotate(-12, 7.5, 15)">
77
+
78
+ <!-- Legs -->
79
+ <g fill="#DE886D">
80
+ <rect x="3" y="11" width="1" height="4"/>
81
+ <rect x="5" y="11" width="1" height="4"/>
82
+ <rect x="9" y="11" width="1" height="4"/>
83
+ <rect x="11" y="11" width="1" height="4"/>
84
+ </g>
85
+
86
+ <g id="body-js">
87
+ <g class="breathe-anim">
88
+ <!-- Torso -->
89
+ <rect x="2" y="6" width="11" height="7" fill="#DE886D"/>
90
+
91
+ <!-- Left Arm — happy continuous wave + flower on top -->
92
+ <g class="arm-happy">
93
+ <rect x="-1.5" y="9" width="4.5" height="2" fill="#DE886D"/>
94
+ <!-- Flower held at hand tip -->
95
+ <!-- Stem (black, from hand top to flower) -->
96
+ <rect x="-1.5" y="6" width="0.5" height="3" fill="#000000"/>
97
+ <!-- Petals (yellow pixel cross) -->
98
+ <rect x="-2.5" y="5" width="0.8" height="0.8" fill="#FFD700"/>
99
+ <rect x="-0.5" y="5" width="0.8" height="0.8" fill="#FFD700"/>
100
+ <rect x="-1.5" y="4.2" width="0.8" height="0.8" fill="#FFD700"/>
101
+ <rect x="-1.5" y="5.8" width="0.8" height="0.8" fill="#FFD700"/>
102
+ <!-- Center -->
103
+ <rect x="-1.5" y="5" width="0.8" height="0.8" fill="#FFA000"/>
104
+ </g>
105
+
106
+ <!-- Right Arm -->
107
+ <rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
108
+
109
+ <!-- Eyes: ^^ happy squint with blink -->
110
+ <g class="eyes-happy-blink">
111
+ <g fill="none" stroke="#000000" stroke-width="0.7" stroke-linecap="round" stroke-linejoin="round">
112
+ <polyline points="3.5,9 4.5,8 5.5,9"/>
113
+ <polyline points="9.5,9 10.5,8 11.5,9"/>
114
+ </g>
115
+ </g>
116
+ </g>
117
+ </g>
118
+ </g>
119
+
120
+ <!-- Sparkles (outside rotation = stay upright, within window bounds) -->
121
+ <use href="#px-sparkle" x="-3" y="0" fill="#FFD700" style="--delay: 0s"/>
122
+ <use href="#px-sparkle" x="-6" y="6" fill="#FFA000" style="--delay: 0.4s"/>
123
+ <use href="#px-sparkle" x="0" y="-5" fill="#FFF59D" style="--delay: 0.8s"/>
124
+ </svg>
@@ -0,0 +1,83 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ .breathe-anim {
5
+ transform-origin: 7.5px 13px;
6
+ animation: breathe 3.2s infinite ease-in-out;
7
+ }
8
+
9
+ .eyes-blink {
10
+ transform-origin: 7.5px 9px;
11
+ animation: eye-blink 4s infinite ease-in-out;
12
+ }
13
+
14
+ #eyes-js {
15
+ transition: transform 0.2s ease-out;
16
+ }
17
+
18
+ /* Visible arm (left, facing screen) — occasional wobble */
19
+ .arm-wobble {
20
+ transform-box: fill-box;
21
+ transform-origin: 100% 0%; /* Shoulder joint: body-side top */
22
+ animation: arm-wobble 25s infinite ease-in-out;
23
+ }
24
+
25
+ @keyframes breathe {
26
+ 0%, 100% { transform: scale(1, 1) translate(0, 0); }
27
+ 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
28
+ }
29
+
30
+ @keyframes eye-blink {
31
+ 0%, 10%, 100% { transform: scaleY(1); }
32
+ 5% { transform: scaleY(0.1); }
33
+ }
34
+
35
+ /* Arm wobble: 25s cycle, still ~23s, quick wave in ~1.5s near the end */
36
+ @keyframes arm-wobble {
37
+ 0%, 91%, 97%, 100% { transform: rotate(0deg); }
38
+ 92% { transform: rotate(18deg); }
39
+ 93.5% { transform: rotate(-5deg); }
40
+ 95% { transform: rotate(14deg); }
41
+ }
42
+ </style>
43
+ </defs>
44
+
45
+ <!-- No shadow (against screen edge, no ground plane) -->
46
+
47
+ <!-- Entire character leaning: rotate -12° around feet base (7.5, 15) -->
48
+ <!-- Negative = counterclockwise = head tilts left toward screen = peeking pose -->
49
+ <g transform="rotate(-12, 7.5, 15)">
50
+
51
+ <!-- Legs (inside rotation group so they tilt with the body) -->
52
+ <g fill="#DE886D">
53
+ <rect x="3" y="11" width="1" height="4"/>
54
+ <rect x="5" y="11" width="1" height="4"/>
55
+ <rect x="9" y="11" width="1" height="4"/>
56
+ <rect x="11" y="11" width="1" height="4"/>
57
+ </g>
58
+
59
+ <!-- Upper Body (JS body-shift preserved for compatibility) -->
60
+ <g id="body-js">
61
+ <g class="breathe-anim">
62
+ <!-- Torso -->
63
+ <rect x="2" y="6" width="11" height="7" fill="#DE886D"/>
64
+
65
+ <!-- Left Arm (visible side, facing screen) — extended + wobble -->
66
+ <g class="arm-wobble">
67
+ <rect x="-1.5" y="9" width="4.5" height="2" fill="#DE886D"/>
68
+ </g>
69
+
70
+ <!-- Right Arm (near edge, partially hidden) — normal -->
71
+ <rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
72
+
73
+ <!-- Eyes: JS translate wrapper + CSS blink -->
74
+ <g id="eyes-js" fill="#000000">
75
+ <g class="eyes-blink">
76
+ <rect x="4" y="8" width="1" height="2"/>
77
+ <rect x="10" y="8" width="1" height="2"/>
78
+ </g>
79
+ </g>
80
+ </g>
81
+ </g>
82
+ </g>
83
+ </svg>
@@ -0,0 +1,82 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ .breathe-anim {
5
+ transform-origin: 7.5px 13px;
6
+ animation: breathe 3.2s infinite ease-in-out;
7
+ }
8
+
9
+ .eyes-blink {
10
+ transform-origin: 7.5px 9px;
11
+ animation: eye-blink 4s infinite ease-in-out;
12
+ }
13
+
14
+ #eyes-js {
15
+ transition: transform 0.2s ease-out;
16
+ }
17
+
18
+ /* Arm waving — fast 3 waves then pause, loop */
19
+ .arm-wave {
20
+ transform-origin: 2px 9px;
21
+ animation: peek-wave 3s infinite ease-in-out;
22
+ }
23
+
24
+ @keyframes breathe {
25
+ 0%, 100% { transform: scale(1, 1) translate(0, 0); }
26
+ 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
27
+ }
28
+
29
+ @keyframes eye-blink {
30
+ 0%, 10%, 100% { transform: scaleY(1); }
31
+ 5% { transform: scaleY(0.1); }
32
+ }
33
+
34
+ /* Fast 3 waves (~0.9s) then still (~2.1s), loop */
35
+ @keyframes peek-wave {
36
+ 0% { transform: rotate(0deg); }
37
+ 5% { transform: rotate(35deg); }
38
+ 10% { transform: rotate(-15deg); }
39
+ 15% { transform: rotate(35deg); }
40
+ 20% { transform: rotate(-15deg); }
41
+ 25% { transform: rotate(35deg); }
42
+ 30%, 100% { transform: rotate(0deg); }
43
+ }
44
+ </style>
45
+ </defs>
46
+
47
+ <!-- Entire character leaning -->
48
+ <g transform="rotate(-12, 7.5, 15)">
49
+
50
+ <!-- Legs -->
51
+ <g fill="#DE886D">
52
+ <rect x="3" y="11" width="1" height="4"/>
53
+ <rect x="5" y="11" width="1" height="4"/>
54
+ <rect x="9" y="11" width="1" height="4"/>
55
+ <rect x="11" y="11" width="1" height="4"/>
56
+ </g>
57
+
58
+ <!-- Upper Body -->
59
+ <g id="body-js">
60
+ <g class="breathe-anim">
61
+ <!-- Torso -->
62
+ <rect x="2" y="6" width="11" height="7" fill="#DE886D"/>
63
+
64
+ <!-- Left Arm — continuous big wave -->
65
+ <g class="arm-wave">
66
+ <rect x="-1.5" y="9" width="5.5" height="2" fill="#DE886D"/>
67
+ </g>
68
+
69
+ <!-- Right Arm -->
70
+ <rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
71
+
72
+ <!-- Eyes: JS translate wrapper + CSS blink -->
73
+ <g id="eyes-js" fill="#000000">
74
+ <g class="eyes-blink">
75
+ <rect x="4" y="8" width="1" height="2"/>
76
+ <rect x="10" y="8" width="1" height="2"/>
77
+ </g>
78
+ </g>
79
+ </g>
80
+ </g>
81
+ </g>
82
+ </svg>
@@ -0,0 +1,112 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500"
2
+ shape-rendering="crispEdges">
3
+ <defs>
4
+ <style>
5
+ /* Slower breathing for sleepy feel */
6
+ .breathe-anim {
7
+ transform-origin: 7.5px 13px;
8
+ animation: breathe 5s infinite ease-in-out;
9
+ }
10
+
11
+ /* Very slow, barely noticeable arm drift */
12
+ .arm-wobble {
13
+ transform-box: fill-box;
14
+ transform-origin: 100% 0%;
15
+ animation: arm-drift 50s infinite ease-in-out;
16
+ }
17
+
18
+ /* Zzz particles (same style as clawd-sleeping.svg) */
19
+ .z-particle { opacity: 0; }
20
+ .z1 { animation: float-1 6s infinite ease-in-out 0s; }
21
+ .z2 { animation: float-2 6s infinite ease-in-out 2s; }
22
+ .z3 { animation: float-3 6s infinite ease-in-out 4s; }
23
+
24
+ @keyframes breathe {
25
+ 0%, 100% { transform: scale(1, 1) translate(0, 0); }
26
+ 50% { transform: scale(1.015, 0.985) translate(0, 0.3px); }
27
+ }
28
+
29
+ @keyframes arm-drift {
30
+ 0%, 94%, 100% { transform: rotate(0deg); }
31
+ 96% { transform: rotate(3deg); }
32
+ 98% { transform: rotate(-1deg); }
33
+ }
34
+
35
+ /* Zzz floats left and up (away from screen edge) */
36
+ @keyframes float-1 {
37
+ 0% { transform: translate(-2px, 6px) scale(0.4); opacity: 0; }
38
+ 10% { opacity: 1; }
39
+ 30% { transform: translate(-5px, 3px) scale(0.6); }
40
+ 50% { transform: translate(-3px, 0px) scale(0.8); }
41
+ 70% { transform: translate(-6px, -3px) scale(1.0); }
42
+ 90% { opacity: 0.8; }
43
+ 100% { transform: translate(-4px, -6px) scale(1.1); opacity: 0; }
44
+ }
45
+
46
+ @keyframes float-2 {
47
+ 0% { transform: translate(-3px, 7px) scale(0.3); opacity: 0; }
48
+ 10% { opacity: 1; }
49
+ 30% { transform: translate(-6px, 4px) scale(0.5); }
50
+ 50% { transform: translate(-4px, 1px) scale(0.7); }
51
+ 70% { transform: translate(-7px, -2px) scale(0.9); }
52
+ 90% { opacity: 0.8; }
53
+ 100% { transform: translate(-5px, -5px) scale(1.0); opacity: 0; }
54
+ }
55
+
56
+ @keyframes float-3 {
57
+ 0% { transform: translate(-1px, 5px) scale(0.5); opacity: 0; }
58
+ 10% { opacity: 1; }
59
+ 30% { transform: translate(-4px, 2px) scale(0.7); }
60
+ 50% { transform: translate(-2px, -1px) scale(0.9); }
61
+ 70% { transform: translate(-5px, -4px) scale(1.1); }
62
+ 90% { opacity: 0.8; }
63
+ 100% { transform: translate(-3px, -7px) scale(1.2); opacity: 0; }
64
+ }
65
+ </style>
66
+
67
+ <g id="pixel-z">
68
+ <rect x="0" y="0" width="4" height="1"/>
69
+ <rect x="2" y="1" width="1" height="1"/>
70
+ <rect x="1" y="2" width="1" height="1"/>
71
+ <rect x="0" y="3" width="4" height="1"/>
72
+ </g>
73
+
74
+ <g id="pixel-z-small">
75
+ <rect x="0" y="0" width="3" height="1"/>
76
+ <rect x="1" y="1" width="1" height="1"/>
77
+ <rect x="0" y="2" width="3" height="1"/>
78
+ </g>
79
+ </defs>
80
+
81
+ <!-- Zzz particles -->
82
+ <use href="#pixel-z" class="z-particle z1" fill="#90A4AE"/>
83
+ <use href="#pixel-z-small" class="z-particle z2" fill="#B0BEC5"/>
84
+ <use href="#pixel-z" class="z-particle z3" fill="#CFD8DC"/>
85
+
86
+ <g transform="rotate(-12, 7.5, 15)">
87
+ <g fill="#DE886D">
88
+ <rect x="3" y="11" width="1" height="4"/>
89
+ <rect x="5" y="11" width="1" height="4"/>
90
+ <rect x="9" y="11" width="1" height="4"/>
91
+ <rect x="11" y="11" width="1" height="4"/>
92
+ </g>
93
+
94
+ <g id="body-js">
95
+ <g class="breathe-anim">
96
+ <rect x="2" y="6" width="11" height="7" fill="#DE886D"/>
97
+
98
+ <g class="arm-wobble">
99
+ <rect x="-1.5" y="9" width="4.5" height="2" fill="#DE886D"/>
100
+ </g>
101
+
102
+ <rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
103
+
104
+ <!-- Eyes closed — wide dashes like sleeping pose -->
105
+ <g id="eyes-js" fill="#000000">
106
+ <rect x="3.5" y="8.8" width="2" height="0.4"/>
107
+ <rect x="9.5" y="8.8" width="2" height="0.4"/>
108
+ </g>
109
+ </g>
110
+ </g>
111
+ </g>
112
+ </svg>
@@ -0,0 +1,108 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ .body-react {
5
+ animation: body-panic 3.5s 1 ease-in-out forwards;
6
+ }
7
+ .eyes-react {
8
+ animation: eyes-panic 3.5s 1 ease-in-out forwards;
9
+ }
10
+ .eyes-blink {
11
+ transform-origin: 7.5px 9px;
12
+ animation: blink 3s infinite linear;
13
+ }
14
+ .question-pop {
15
+ transform-origin: center;
16
+ animation: question-fade 3.5s 1 ease-in-out forwards;
17
+ opacity: 0;
18
+ }
19
+ .exclamation-pop {
20
+ transform-origin: center;
21
+ animation: excl-fade 3.5s 1 ease-in-out forwards;
22
+ opacity: 0;
23
+ }
24
+
25
+ /* Frantic left-right looking */
26
+ @keyframes body-panic {
27
+ 0%, 4% { transform: translate(0px, 0px); }
28
+ 10%, 18% { transform: translate(-1px, 0px); }
29
+ 24%, 32% { transform: translate(1px, 0px); }
30
+ 36% { transform: translate(-1px, 0px); }
31
+ 40% { transform: translate(1px, 0px); }
32
+ 46%, 72% { transform: translate(1px, -1px); }
33
+ 82%, 100%{ transform: translate(0px, 0px); }
34
+ }
35
+
36
+ @keyframes eyes-panic {
37
+ 0%, 4% { transform: translate(0px, 0px); }
38
+ 10%, 18% { transform: translate(-2px, 0px); }
39
+ 24%, 32% { transform: translate(2px, 0px); }
40
+ 36% { transform: translate(-2px, 0px); }
41
+ 40% { transform: translate(2px, 0px); }
42
+ 46%, 72% { transform: translate(3px, -2px); }
43
+ 82%, 100%{ transform: translate(0px, 0px); }
44
+ }
45
+
46
+ @keyframes blink {
47
+ 0%, 20%, 24%, 60%, 64%, 80%, 84%, 100% { transform: scaleY(1); }
48
+ 22%, 62%, 82% { transform: scaleY(0.1); }
49
+ }
50
+
51
+ /* Question mark appears early (while looking left) */
52
+ @keyframes question-fade {
53
+ 0%, 6% { opacity: 0; transform: translate(-4px, 4px) scale(0.5); }
54
+ 12%, 38% { opacity: 1; transform: translate(-4px, 0px) scale(1); }
55
+ 44%, 100%{ opacity: 0; transform: translate(-4px, -4px) scale(1.2); }
56
+ }
57
+
58
+ /* Exclamation appears later (while staring up-right) */
59
+ @keyframes excl-fade {
60
+ 0%, 42% { opacity: 0; transform: translate(6px, 0px) scale(0.5); }
61
+ 48%, 72% { opacity: 1; transform: translate(6px, -4px) scale(1); }
62
+ 80%, 100%{ opacity: 0; transform: translate(6px, -8px) scale(1.2); }
63
+ }
64
+ </style>
65
+ </defs>
66
+
67
+ <!-- Ground Shadow -->
68
+ <rect x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
69
+
70
+ <!-- Static Legs (extended upward to prevent gap when body shifts up) -->
71
+ <g fill="#DE886D">
72
+ <rect x="3" y="11" width="1" height="4"/>
73
+ <rect x="5" y="11" width="1" height="4"/>
74
+ <rect x="9" y="11" width="1" height="4"/>
75
+ <rect x="11" y="11" width="1" height="4"/>
76
+ </g>
77
+
78
+ <!-- Animated Upper Body -->
79
+ <g class="body-react">
80
+ <g fill="#DE886D">
81
+ <rect x="2" y="6" width="11" height="7"/>
82
+ <rect x="0" y="9" width="2" height="2"/>
83
+ <rect x="13" y="9" width="2" height="2"/>
84
+ </g>
85
+ <g class="eyes-react">
86
+ <g class="eyes-blink" fill="#000000">
87
+ <rect x="4" y="8" width="1" height="2"/>
88
+ <rect x="10" y="8" width="1" height="2"/>
89
+ </g>
90
+ </g>
91
+ </g>
92
+
93
+ <!-- Question Mark (left side) -->
94
+ <g class="question-pop" fill="#FFFFFF">
95
+ <rect x="1" y="0" width="2" height="1"/>
96
+ <rect x="0" y="1" width="1" height="1"/>
97
+ <rect x="3" y="1" width="1" height="2"/>
98
+ <rect x="2" y="3" width="1" height="1"/>
99
+ <rect x="1" y="4" width="1" height="1"/>
100
+ <rect x="1" y="6" width="1" height="1"/>
101
+ </g>
102
+
103
+ <!-- Exclamation Mark (right side) -->
104
+ <g class="exclamation-pop" fill="#0082FC">
105
+ <rect x="1" y="0" width="1" height="4"/>
106
+ <rect x="1" y="5" width="1" height="1"/>
107
+ </g>
108
+ </svg>
@@ -0,0 +1,102 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ /* Body sways side to side (held from above) */
5
+ .body-sway {
6
+ transform-origin: 7.5px 6px;
7
+ animation: sway 1.2s infinite alternate ease-in-out;
8
+ }
9
+
10
+ /* Leg dangling (from debugger sneak) */
11
+ .leg-dangle-1 {
12
+ animation: dangle-1 0.5s infinite linear;
13
+ transform-origin: top center;
14
+ transform-box: fill-box;
15
+ }
16
+ .leg-dangle-2 {
17
+ animation: dangle-2 0.5s infinite linear;
18
+ transform-origin: top center;
19
+ transform-box: fill-box;
20
+ }
21
+
22
+ /* Arm flailing (from happy wave, slightly slower) */
23
+ .arm-flail-l {
24
+ transform-box: fill-box;
25
+ transform-origin: 100% 50%;
26
+ animation: flail-l 0.2s infinite alternate ease-in-out;
27
+ }
28
+ .arm-flail-r {
29
+ transform-box: fill-box;
30
+ transform-origin: 0% 50%;
31
+ animation: flail-r 0.2s infinite alternate ease-in-out;
32
+ }
33
+
34
+ /* Shadow shrinks when lifted */
35
+ .shadow-lift {
36
+ transform-origin: 7.5px 15.5px;
37
+ animation: shadow-pulse 1.2s infinite alternate ease-in-out;
38
+ }
39
+
40
+ @keyframes sway {
41
+ 0% { transform: rotate(-3deg) translate(-1px, 0); }
42
+ 100% { transform: rotate(3deg) translate(1px, 0); }
43
+ }
44
+
45
+ @keyframes dangle-1 {
46
+ 0%, 100% { transform: rotate(0deg) scaleY(1); }
47
+ 50% { transform: rotate(-25deg) scaleY(0.7); }
48
+ }
49
+ @keyframes dangle-2 {
50
+ 0%, 100% { transform: rotate(-25deg) scaleY(0.7); }
51
+ 50% { transform: rotate(0deg) scaleY(1); }
52
+ }
53
+
54
+ @keyframes flail-l {
55
+ 0% { transform: rotate(45deg); }
56
+ 100% { transform: rotate(85deg); }
57
+ }
58
+ @keyframes flail-r {
59
+ 0% { transform: rotate(-45deg); }
60
+ 100% { transform: rotate(-85deg); }
61
+ }
62
+
63
+ @keyframes shadow-pulse {
64
+ 0% { transform: scale(0.7); opacity: 0.2; }
65
+ 100% { transform: scale(0.8); opacity: 0.3; }
66
+ }
67
+ </style>
68
+ </defs>
69
+
70
+ <!-- Ground Shadow (small + faint = lifted off ground) -->
71
+ <rect class="shadow-lift" x="3" y="15" width="9" height="1" fill="#000000"/>
72
+
73
+ <!-- Swaying body -->
74
+ <g class="body-sway">
75
+ <!-- Dangling legs -->
76
+ <g fill="#DE886D">
77
+ <rect class="leg-dangle-1" x="3" y="13" width="1" height="2"/>
78
+ <rect class="leg-dangle-2" x="5" y="13" width="1" height="2"/>
79
+ <rect class="leg-dangle-1" x="9" y="13" width="1" height="2"/>
80
+ <rect class="leg-dangle-2" x="11" y="13" width="1" height="2"/>
81
+ </g>
82
+
83
+ <!-- Torso + flailing arms -->
84
+ <g fill="#DE886D">
85
+ <rect x="2" y="6" width="11" height="7"/>
86
+ <g class="arm-flail-l">
87
+ <rect x="0" y="9" width="2" height="2"/>
88
+ </g>
89
+ <g class="arm-flail-r">
90
+ <rect x="13" y="9" width="2" height="2"/>
91
+ </g>
92
+ </g>
93
+
94
+ <!-- >< Eyes (anime squint, drawn with thin lines) -->
95
+ <g fill="none" stroke="#000000" stroke-width="0.7" stroke-linecap="round" stroke-linejoin="round">
96
+ <!-- Left eye: > -->
97
+ <polyline points="4,8 5.5,9 4,10"/>
98
+ <!-- Right eye: < -->
99
+ <polyline points="11,8 9.5,9 11,10"/>
100
+ </g>
101
+ </g>
102
+ </svg>