@@ -149,6 +149,22 @@ body {
149149 }
150150}
151151
152+ @keyframes slideUp {
153+ from {
154+ opacity : 0 ;
155+ transform : translateY (15px );
156+ }
157+ to {
158+ opacity : 1 ;
159+ transform : translateY (0 );
160+ }
161+ }
162+
163+ @keyframes gentlePulse {
164+ 0% , 100% { box-shadow : 0 2px 8px rgba (55 , 118 , 171 , 0.15 ); }
165+ 50% { box-shadow : 0 2px 16px rgba (55 , 118 , 171 , 0.4 ); }
166+ }
167+
152168/* Color-coded borders and subtle glow on hover */
153169# gil-held-stat {
154170 --stat-color : 40 , 167 , 69 ;
@@ -240,8 +256,13 @@ body {
240256 box-shadow : 0 2px 8px rgba (0 , 0 , 0 , 0.06 );
241257 transition : all 0.2s ease;
242258 min-height : 120px ;
259+ animation : slideUp 0.4s ease-out backwards;
243260}
244261
262+ .stat-card : nth-child (1 ) { animation-delay : 0.1s ; }
263+ .stat-card : nth-child (2 ) { animation-delay : 0.2s ; }
264+ .stat-card : nth-child (3 ) { animation-delay : 0.3s ; }
265+
245266.stat-card : hover {
246267 box-shadow : 0 4px 16px rgba (0 , 0 , 0 , 0.1 );
247268 transform : translateY (-2px );
@@ -339,6 +360,11 @@ body {
339360 box-shadow : 0 4px 8px rgba (55 , 118 , 171 , 0.3 );
340361}
341362
363+ .controls button : active {
364+ transform : translateY (1px );
365+ box-shadow : 0 1px 2px rgba (55 , 118 , 171 , 0.2 );
366+ }
367+
342368.controls button .secondary {
343369 background : # ffd43b ;
344370 color : # 2e3338 ;
@@ -348,6 +374,10 @@ body {
348374 background : # ffcd02 ;
349375}
350376
377+ .controls button .secondary : active {
378+ background : # e6b800 ;
379+ }
380+
351381.thread-filter-wrapper {
352382 display : none;
353383 align-items : center;
@@ -489,11 +519,14 @@ body {
489519 display : flex;
490520 align-items : center;
491521 justify-content : center;
492- transition : background 0.2s ;
522+ transition : background 0.2s , transform 0.2s ;
523+ animation : gentlePulse 3s ease-in-out infinite;
493524}
494525
495526# show-info-btn : hover {
496527 background : # 2d5aa0 ;
528+ animation : none;
529+ transform : scale (1.05 );
497530}
498531
499532# close-info-btn {
@@ -607,3 +640,22 @@ body {
607640 font-size : 12px !important ;
608641 }
609642}
643+
644+ /* Accessibility: visible focus states */
645+ button : focus-visible ,
646+ select : focus-visible ,
647+ input : focus-visible {
648+ outline : 2px solid # ffd43b ;
649+ outline-offset : 2px ;
650+ }
651+
652+ /* Smooth panel transitions */
653+ .legend-panel ,
654+ .info-panel {
655+ transition : opacity 0.2s ease, transform 0.2s ease;
656+ }
657+
658+ .legend-panel [style *= "block" ],
659+ .info-panel [style *= "block" ] {
660+ animation : slideUp 0.2s ease-out;
661+ }
0 commit comments