loading-state-zoo 0.3.0 → 0.4.0

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.
package/dist/theme.css CHANGED
@@ -161,44 +161,32 @@
161
161
  opacity: var(--lz-orb-fade, 0.88);
162
162
  }
163
163
  }
164
- @keyframes lz-blob-morph {
165
- 0% {
166
- border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
167
- transform: rotate(0deg) scale(1);
164
+ @keyframes lz-ios-glow {
165
+ 0%, 100% {
166
+ opacity: var(--lz-ios-fade, 0.2);
167
+ transform: scale(var(--lz-ios-min, 0.5));
168
168
  }
169
- 25% {
170
- border-radius: 58% 42% 55% 45% / 55% 48% 52% 45%;
171
- transform: rotate(6deg) scale(1.06);
169
+ 35% {
170
+ opacity: 1;
171
+ transform: scale(var(--lz-ios-peak, 1.25));
172
172
  }
173
173
  50% {
174
- border-radius: 46% 54% 48% 52% / 48% 55% 45% 52%;
175
- transform: rotate(-5deg) scale(0.95);
176
- }
177
- 75% {
178
- border-radius: 55% 45% 52% 48% / 46% 52% 48% 55%;
179
- transform: rotate(3deg) scale(1.05);
180
- }
181
- 100% {
182
- border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
183
- transform: rotate(0deg) scale(1);
184
- }
185
- }
186
- @keyframes lz-siri-sheen {
187
- 0% {
188
- transform: translate3d(-24%, -14%, 0) rotate(0deg);
189
- }
190
- 100% {
191
- transform: translate3d(24%, 14%, 0) rotate(360deg);
174
+ opacity: 1;
175
+ transform: scale(var(--lz-ios-peak, 1.25));
192
176
  }
193
177
  }
194
- @keyframes lz-dot-orb {
178
+ @keyframes lz-ai-sparkle {
195
179
  0%, 100% {
196
- opacity: var(--lz-orb-fade, 0.14);
197
- transform: scale(var(--lz-dot-min, 0.7));
180
+ opacity: 0;
181
+ transform: scale(0.1) rotate(0deg);
198
182
  }
199
- 50% {
183
+ 20% {
200
184
  opacity: 1;
201
- transform: scale(1);
185
+ transform: scale(1) rotate(8deg);
186
+ }
187
+ 45% {
188
+ opacity: 0;
189
+ transform: scale(1.35) rotate(14deg);
202
190
  }
203
191
  }
204
192
  @keyframes lz-waveform {
@@ -235,10 +223,10 @@
235
223
  }
236
224
  @keyframes lz-needle-bob {
237
225
  0%, 100% {
238
- transform: rotate(38deg);
226
+ transform: rotate(22deg);
239
227
  }
240
228
  50% {
241
- transform: rotate(43deg);
229
+ transform: rotate(27deg);
242
230
  }
243
231
  }
244
232
  .lz-bouncing-dots {
@@ -396,20 +384,57 @@
396
384
  border-radius: 50%;
397
385
  border: 1px solid var(--lz-track, rgba(255, 255, 255, 0.12));
398
386
  }
387
+ .lz-scan-sweep .lz-dial {
388
+ position: absolute;
389
+ inset: 0.075em;
390
+ border-radius: 50%;
391
+ border: 1px dashed rgba(255, 255, 255, 0.1);
392
+ animation: lz-spin-reverse calc(10s * var(--lz-speed, 1)) linear infinite;
393
+ }
399
394
  .lz-scan-sweep .lz-ring-inner {
400
395
  position: absolute;
401
- inset: 0.28em;
396
+ inset: 0.27em;
402
397
  border-radius: 50%;
403
398
  border: 1px solid var(--lz-track-weak, rgba(255, 255, 255, 0.08));
404
399
  }
405
- .lz-scan-sweep .lz-core {
400
+ .lz-scan-sweep .lz-tick-slot {
406
401
  position: absolute;
407
- width: 0.14em;
402
+ left: 50%;
403
+ top: 50%;
404
+ width: 0;
405
+ height: 0;
406
+ }
407
+ .lz-scan-sweep .lz-tick {
408
+ position: absolute;
409
+ left: -0.025em;
410
+ top: 0;
411
+ width: 0.05em;
408
412
  height: 0.14em;
409
- left: 0.43em;
410
- top: 0.43em;
413
+ border-radius: 1px;
414
+ background: var(--lz-color-weak, rgba(245, 245, 247, 0.8));
415
+ }
416
+ .lz-scan-sweep .lz-tick.short {
417
+ height: 0.09em;
418
+ }
419
+ .lz-scan-sweep .lz-core-ring {
420
+ position: absolute;
421
+ left: 50%;
422
+ top: 50%;
423
+ width: 0.26em;
424
+ height: 0.26em;
425
+ margin: -0.13em 0 0 -0.13em;
426
+ border-radius: 50%;
427
+ border: 1px solid var(--lz-track-weak, rgba(255, 255, 255, 0.08));
428
+ }
429
+ .lz-scan-sweep .lz-core {
430
+ position: absolute;
431
+ width: 0.1em;
432
+ height: 0.1em;
433
+ left: 0.45em;
434
+ top: 0.45em;
411
435
  border-radius: 50%;
412
436
  background: var(--lz-color-weak, rgba(245, 245, 247, 0.8));
437
+ box-shadow: 0 0 0.18em 0.03em color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, transparent);
413
438
  }
414
439
  .lz-scan-sweep .lz-sweep {
415
440
  position: absolute;
@@ -419,12 +444,34 @@
419
444
  conic-gradient(
420
445
  from 0deg,
421
446
  var(--lz-color, #f5f5f7) 0deg,
422
- var(--lz-color-sweep, rgba(245, 245, 247, 0.08)) 60deg,
423
- transparent 90deg);
447
+ var(--lz-color-sweep, rgba(245, 245, 247, 0.08)) 8deg,
448
+ color-mix(in srgb, var(--lz-color, #f5f5f7) 5%, transparent) 55deg,
449
+ transparent 95deg);
424
450
  -webkit-mask: radial-gradient(closest-side, #000 100%);
425
451
  mask: radial-gradient(closest-side, #000 100%);
426
452
  animation: lz-spin calc(2.5s * var(--lz-speed, 1)) linear infinite;
427
453
  }
454
+ .lz-scan-sweep .lz-sweep-edge {
455
+ position: absolute;
456
+ inset: 0;
457
+ border-radius: 50%;
458
+ background:
459
+ conic-gradient(
460
+ from 0deg,
461
+ var(--lz-color, #f5f5f7) 0deg,
462
+ transparent 5deg);
463
+ -webkit-mask:
464
+ radial-gradient(
465
+ farthest-side,
466
+ transparent calc(100% - 0.07em),
467
+ #000 calc(100% - 0.07em));
468
+ mask:
469
+ radial-gradient(
470
+ farthest-side,
471
+ transparent calc(100% - 0.07em),
472
+ #000 calc(100% - 0.07em));
473
+ animation: lz-spin calc(2.5s * var(--lz-speed, 1)) linear infinite;
474
+ }
428
475
  .lz-orbit-dots {
429
476
  position: relative;
430
477
  width: var(--lz-size, 44px);
@@ -755,209 +802,151 @@
755
802
  transparent);
756
803
  animation: lz-skeleton-sheen calc(1.4s * var(--lz-speed, 1)) linear infinite;
757
804
  }
758
- .lz-pulsing-orb {
759
- width: var(--lz-size, 44px);
760
- height: var(--lz-size, 44px);
761
- border-radius: 50%;
762
- background:
763
- radial-gradient(
764
- circle at 35% 32%,
765
- var(--lz-accent, #0a84ff) 0%,
766
- color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent) 55%,
767
- transparent 72%);
768
- box-shadow: 0 0 calc(0.5 * var(--lz-size, 44px)) color-mix(in srgb, var(--lz-accent, #0a84ff) 40%, transparent);
769
- animation: lz-orb-breathe calc(2.2s * var(--lz-speed, 1)) ease-in-out infinite;
770
- }
771
- .lz-morphing-orb {
772
- width: var(--lz-size, 44px);
773
- height: var(--lz-size, 44px);
774
- background:
775
- radial-gradient(
776
- circle at 34% 30%,
777
- var(--lz-accent, #0a84ff) 0%,
778
- color-mix(in srgb, var(--lz-accent, #0a84ff) 60%, transparent) 62%,
779
- transparent 78%);
780
- box-shadow: 0 0 calc(0.55 * var(--lz-size, 44px)) color-mix(in srgb, var(--lz-accent, #0a84ff) 35%, transparent);
781
- animation: lz-blob-morph calc(3.4s * var(--lz-speed, 1)) ease-in-out infinite;
782
- }
783
- .lz-siri-orb {
784
- position: relative;
785
- overflow: hidden;
786
- width: var(--lz-size, 44px);
787
- height: var(--lz-size, 44px);
788
- border-radius: 50%;
789
- background:
790
- radial-gradient(
791
- circle at 30% 28%,
792
- color-mix(in srgb, var(--lz-accent, #0a84ff) 75%, white) 0%,
793
- transparent 60%);
794
- animation: lz-orb-breathe calc(2.6s * var(--lz-speed, 1)) ease-in-out infinite;
795
- }
796
- .lz-siri-orb .lz-sheen {
797
- position: absolute;
798
- width: calc(2.4 * var(--lz-size, 44px));
799
- height: calc(2.4 * var(--lz-size, 44px));
800
- left: 50%;
801
- top: 50%;
802
- margin: -1.2em 0 0 -1.2em;
803
- background:
804
- conic-gradient(
805
- from 0deg at 50% 50%,
806
- transparent 0deg,
807
- color-mix(in srgb, var(--lz-accent, #0a84ff) 55%, transparent) 40deg,
808
- transparent 90deg,
809
- color-mix(in srgb, var(--lz-accent, #0a84ff) 35%, transparent) 150deg,
810
- transparent 200deg,
811
- color-mix(in srgb, var(--lz-accent, #0a84ff) 50%, transparent) 270deg,
812
- transparent 360deg);
813
- animation: lz-siri-sheen calc(5s * var(--lz-speed, 1)) linear infinite;
814
- opacity: 0.9;
815
- }
816
- .lz-dot-orb {
805
+ .lz-ios-27-orb {
817
806
  position: relative;
818
807
  width: var(--lz-size, 44px);
819
808
  height: var(--lz-size, 44px);
820
809
  }
821
- .lz-dot-orb .lz-slot {
810
+ .lz-ios-27-orb .lz-slot {
822
811
  position: absolute;
823
812
  left: 50%;
824
813
  top: 50%;
825
814
  width: 0;
826
815
  height: 0;
827
816
  }
828
- .lz-dot-orb .lz-dot {
817
+ .lz-ios-27-orb .lz-dot {
829
818
  position: absolute;
830
- left: -0.08em;
831
- top: -0.08em;
832
- width: 0.16em;
833
- height: 0.16em;
834
819
  border-radius: 50%;
835
- background: var(--lz-color, #f5f5f7);
836
- animation: lz-dot-orb calc(2s * var(--lz-speed, 1)) ease-in-out infinite;
820
+ background: currentColor;
821
+ box-shadow: 0 0 0.12em 0.05em currentColor;
822
+ animation: lz-ios-glow calc(3.2s * var(--lz-speed, 1)) ease-in-out infinite;
837
823
  }
838
- .lz-dot-orb .lz-slot:nth-child(1) {
839
- transform: rotate(0deg) translateY(-0.32em);
840
- }
841
- .lz-dot-orb .lz-slot:nth-child(2) {
842
- transform: rotate(45deg) translateY(-0.32em);
843
- }
844
- .lz-dot-orb .lz-slot:nth-child(3) {
845
- transform: rotate(90deg) translateY(-0.32em);
846
- }
847
- .lz-dot-orb .lz-slot:nth-child(4) {
848
- transform: rotate(135deg) translateY(-0.32em);
849
- }
850
- .lz-dot-orb .lz-slot:nth-child(5) {
851
- transform: rotate(180deg) translateY(-0.32em);
852
- }
853
- .lz-dot-orb .lz-slot:nth-child(6) {
854
- transform: rotate(225deg) translateY(-0.32em);
855
- }
856
- .lz-dot-orb .lz-slot:nth-child(7) {
857
- transform: rotate(270deg) translateY(-0.32em);
858
- }
859
- .lz-dot-orb .lz-slot:nth-child(8) {
860
- transform: rotate(315deg) translateY(-0.32em);
861
- }
862
- .lz-dot-orb .lz-slot:nth-child(odd) .lz-dot {
863
- animation-delay: -0.25s;
864
- }
865
- .lz-planet-orb {
824
+ .lz-ai-orb {
866
825
  position: relative;
867
826
  width: var(--lz-size, 44px);
868
827
  height: var(--lz-size, 44px);
869
828
  }
870
- .lz-planet-orb .lz-core {
829
+ .lz-ai-orb .lz-orb {
871
830
  position: absolute;
872
- left: 50%;
873
- top: 50%;
874
- width: 0.42em;
875
- height: 0.42em;
876
- margin: -0.21em 0 0 -0.21em;
831
+ inset: 0.08em;
877
832
  border-radius: 50%;
878
833
  background:
879
834
  radial-gradient(
880
- circle at 35% 30%,
881
- color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, white) 0%,
882
- var(--lz-accent, #0a84ff) 50%,
883
- color-mix(in srgb, var(--lz-accent, #0a84ff) 40%, transparent) 100%);
884
- box-shadow: 0 0 calc(0.3em) color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent);
835
+ circle at 34% 32%,
836
+ color-mix(in srgb, var(--lz-accent, #0a84ff) 18%, white) 0%,
837
+ var(--lz-accent, #0a84ff) 40%,
838
+ color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent) 74%,
839
+ transparent 100%);
840
+ box-shadow: 0 0 0.5em color-mix(in srgb, var(--lz-accent, #0a84ff) 35%, transparent);
885
841
  animation: lz-orb-breathe calc(2.4s * var(--lz-speed, 1)) ease-in-out infinite;
886
842
  }
887
- .lz-planet-orb .lz-orbit {
843
+ .lz-ai-orb .lz-orbit {
888
844
  position: absolute;
889
845
  inset: 0;
890
- animation: lz-spin calc(2.2s * var(--lz-speed, 1)) linear infinite;
846
+ animation: lz-spin calc(4.5s * var(--lz-speed, 1)) linear infinite;
891
847
  }
892
- .lz-planet-orb .lz-moon {
848
+ .lz-ai-orb .lz-light {
893
849
  position: absolute;
894
850
  left: 50%;
895
- top: 50%;
896
- width: 0.14em;
897
- height: 0.14em;
898
- margin: -0.07em 0 0 -0.07em;
851
+ top: calc(50% - 0.46em);
852
+ width: 0.13em;
853
+ height: 0.13em;
854
+ margin-left: -0.065em;
899
855
  border-radius: 50%;
900
856
  background: var(--lz-color, #f5f5f7);
901
- box-shadow: 0 0 calc(0.16em) color-mix(in srgb, var(--lz-color, #f5f5f7) 50%, transparent);
857
+ box-shadow: 0 0 0.22em 0.05em color-mix(in srgb, var(--lz-color, #f5f5f7) 55%, transparent);
858
+ animation: lz-pulse-breath calc(1.1s * var(--lz-speed, 1)) ease-in-out infinite;
859
+ }
860
+ .lz-ai-orb .lz-sparkle {
861
+ position: absolute;
862
+ width: 0.28em;
863
+ height: 0.28em;
864
+ animation: lz-ai-sparkle calc(3s * var(--lz-speed, 1)) ease-in-out infinite;
902
865
  }
903
- .lz-planet-orb .lz-moon:nth-child(1) {
904
- transform: rotate(0deg) translateX(0.36em);
866
+ .lz-ai-orb .lz-sparkle::before,
867
+ .lz-ai-orb .lz-sparkle::after {
868
+ content: "";
869
+ position: absolute;
870
+ inset: 0;
871
+ background: var(--lz-color, #f5f5f7);
905
872
  }
906
- .lz-planet-orb .lz-moon:nth-child(2) {
907
- transform: rotate(180deg) translateX(0.36em);
873
+ .lz-ai-orb .lz-sparkle::before {
874
+ clip-path: polygon(50% 0, 58% 50%, 50% 100%, 42% 50%);
908
875
  }
909
- .lz-planet-orb .lz-moon:nth-child(3) {
910
- transform: rotate(120deg) translateX(0.36em);
876
+ .lz-ai-orb .lz-sparkle::after {
877
+ clip-path: polygon(50% 0, 58% 50%, 50% 100%, 42% 50%);
878
+ transform: rotate(90deg);
911
879
  }
912
- .lz-planet-orb .lz-moon:nth-child(4) {
913
- transform: rotate(240deg) translateX(0.36em);
880
+ .lz-ai-orb .lz-sparkle.a {
881
+ right: 0.01em;
882
+ top: -0.01em;
914
883
  }
915
- .lz-planet-orb .lz-moon:nth-child(5) {
916
- transform: rotate(72deg) translateX(0.36em);
884
+ .lz-ai-orb .lz-sparkle.b {
885
+ left: -0.01em;
886
+ bottom: 0.02em;
887
+ animation-delay: -1.5s;
917
888
  }
918
- .lz-aura-orb {
889
+ .lz-ai-thinking {
919
890
  position: relative;
920
- width: var(--lz-size, 44px);
921
- height: var(--lz-size, 44px);
891
+ width: 2.1em;
892
+ height: 0.66em;
893
+ font-size: var(--lz-size, 40px);
922
894
  }
923
- .lz-aura-orb .lz-layer {
895
+ .lz-ai-thinking .lz-field {
924
896
  position: absolute;
925
897
  inset: 0;
926
- animation: lz-spin calc(3s * var(--lz-speed, 1)) linear infinite;
898
+ display: flex;
899
+ align-items: center;
900
+ justify-content: center;
901
+ gap: 0.32em;
902
+ border-radius: 999px;
903
+ background: var(--lz-surface, rgba(255, 255, 255, 0.07));
904
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lz-color, #f5f5f7) 12%, transparent);
927
905
  }
928
- .lz-aura-orb .lz-layer.a {
929
- animation-duration: calc(2.6s * var(--lz-speed, 1));
906
+ .lz-ai-thinking .lz-dot {
907
+ width: 0.16em;
908
+ height: 0.16em;
909
+ border-radius: 50%;
910
+ background: var(--lz-color, #f5f5f7);
911
+ animation: lz-typing-pulse calc(1s * var(--lz-speed, 1)) cubic-bezier(0.28, 0.1, 0.25, 1.15) infinite;
930
912
  }
931
- .lz-aura-orb .lz-layer.b {
932
- animation-name: lz-spin-reverse;
933
- animation-duration: calc(3.4s * var(--lz-speed, 1));
913
+ .lz-ai-thinking .lz-field .lz-dot:nth-child(2) {
914
+ animation-delay: -0.2s;
934
915
  }
935
- .lz-aura-orb .lz-orb {
936
- position: absolute;
937
- left: 50%;
938
- top: 50%;
939
- width: 0.78em;
940
- height: 0.78em;
941
- margin: -0.39em 0 0 -0.39em;
942
- border-radius: 50%;
943
- transform: translateX(0.14em);
916
+ .lz-ai-thinking .lz-field .lz-dot:nth-child(3) {
917
+ animation-delay: -0.4s;
944
918
  }
945
- .lz-aura-orb .lz-layer.a .lz-orb {
919
+ .lz-ai-thinking .lz-aura {
920
+ position: absolute;
921
+ inset: -0.16em;
922
+ border-radius: 999px;
923
+ border: 2px solid transparent;
946
924
  background:
947
- radial-gradient(
948
- circle at 35% 30%,
949
- color-mix(in srgb, var(--lz-color, #f5f5f7) 90%, transparent) 0%,
950
- color-mix(in srgb, var(--lz-color, #f5f5f7) 40%, transparent) 62%,
951
- transparent 76%);
925
+ conic-gradient(
926
+ from 0deg,
927
+ transparent 0deg,
928
+ var(--lz-accent, #0a84ff) 8deg,
929
+ color-mix(in srgb, var(--lz-accent, #0a84ff) 30%, transparent) 34deg,
930
+ transparent 92deg) border-box;
931
+ -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
932
+ -webkit-mask-composite: xor;
933
+ -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
934
+ mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
935
+ -webkit-mask-composite: xor;
936
+ mask-composite: exclude;
937
+ animation: lz-spin calc(1.9s * var(--lz-speed, 1)) linear infinite;
938
+ }
939
+ .lz-ai-neural {
940
+ display: grid;
941
+ grid-template-columns: repeat(5, 1em);
942
+ gap: var(--lz-grid-gap, 10px);
943
+ font-size: var(--lz-size, 6px);
952
944
  }
953
- .lz-aura-orb .lz-layer.b .lz-orb {
954
- background:
955
- radial-gradient(
956
- circle at 35% 30%,
957
- var(--lz-accent, #0a84ff) 0%,
958
- color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent) 62%,
959
- transparent 76%);
960
- opacity: 0.9;
945
+ .lz-ai-neural .lz-dot {
946
+ width: 1em;
947
+ height: 1em;
948
+ border-radius: 50%;
949
+ animation: lz-grid-dot-wave calc(1.5s * var(--lz-speed, 1)) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
961
950
  }
962
951
  .lz-waveform {
963
952
  display: flex;
@@ -985,40 +974,122 @@
985
974
  position: absolute;
986
975
  inset: 0;
987
976
  border-radius: 50%;
977
+ overflow: hidden;
988
978
  background:
989
979
  repeating-radial-gradient(
990
980
  circle at 50% 50%,
991
- rgba(255, 255, 255, 0.06) 0 1px,
981
+ rgba(255, 255, 255, 0.055) 0 1px,
992
982
  transparent 1px 4px),
993
983
  radial-gradient(
994
984
  circle at 50% 50%,
995
- var(--lz-accent, #0a84ff) 0 13%,
996
- rgba(0, 0, 0, 0.88) 14% 100%);
985
+ rgba(255, 255, 255, 0.05) 0 17%,
986
+ rgba(0, 0, 0, 0.22) 17% 18%,
987
+ transparent 18% 20%,
988
+ rgba(255, 255, 255, 0.045) 20% 21%,
989
+ transparent 21% 100%),
990
+ radial-gradient(circle at 50% 50%, #141216 0 100%);
997
991
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
998
- animation: lz-spin calc(3.5s * var(--lz-speed, 1)) linear infinite;
992
+ animation: lz-spin calc(3.2s * var(--lz-speed, 1)) linear infinite;
999
993
  }
1000
- .lz-vinyl .lz-needle {
994
+ .lz-vinyl .lz-disc::before {
995
+ content: "";
1001
996
  position: absolute;
1002
- top: 0.08em;
1003
- right: 0.18em;
1004
- width: 0.06em;
1005
- height: 0.7em;
1006
- border-radius: 3px;
1007
- background: linear-gradient(var(--lz-color, #f5f5f7), color-mix(in srgb, var(--lz-color, #f5f5f7) 30%, transparent));
1008
- transform: rotate(38deg);
997
+ inset: 0;
998
+ border-radius: 50%;
999
+ background:
1000
+ linear-gradient(
1001
+ 112deg,
1002
+ transparent 26%,
1003
+ rgba(255, 255, 255, 0.17) 40%,
1004
+ rgba(255, 255, 255, 0.04) 49%,
1005
+ transparent 62%);
1006
+ }
1007
+ .lz-vinyl .lz-label {
1008
+ position: absolute;
1009
+ left: 50%;
1010
+ top: 50%;
1011
+ width: 0.5em;
1012
+ height: 0.5em;
1013
+ margin: -0.25em 0 0 -0.25em;
1014
+ border-radius: 50%;
1015
+ background:
1016
+ radial-gradient(
1017
+ circle at 36% 30%,
1018
+ rgba(255, 255, 255, 0.35) 0 5%,
1019
+ transparent 6%),
1020
+ radial-gradient(
1021
+ circle at 63% 68%,
1022
+ rgba(0, 0, 0, 0.4) 0 7%,
1023
+ transparent 8%),
1024
+ var(--lz-accent, #0a84ff);
1025
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4);
1026
+ }
1027
+ .lz-vinyl .lz-spindle {
1028
+ position: absolute;
1029
+ left: 50%;
1030
+ top: 50%;
1031
+ width: 0.09em;
1032
+ height: 0.09em;
1033
+ margin: -0.045em 0 0 -0.045em;
1034
+ border-radius: 50%;
1035
+ background: rgba(0, 0, 0, 0.9);
1036
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
1037
+ }
1038
+ .lz-vinyl .lz-arm {
1039
+ position: absolute;
1040
+ top: 0.05em;
1041
+ right: 0.06em;
1042
+ width: 0.8em;
1043
+ height: 0.8em;
1009
1044
  transform-origin: top right;
1010
1045
  animation: lz-needle-bob calc(1.8s * var(--lz-speed, 1)) ease-in-out infinite;
1011
1046
  }
1012
- .lz-vinyl .lz-needle .lz-tip {
1047
+ .lz-vinyl .lz-post {
1013
1048
  position: absolute;
1014
- bottom: 0;
1015
- left: 50%;
1016
- width: 0.1em;
1017
- height: 0.1em;
1018
- margin-left: -0.05em;
1019
- transform: translateY(0.1em);
1049
+ right: -0.01em;
1050
+ top: -0.01em;
1051
+ width: 0.13em;
1052
+ height: 0.13em;
1020
1053
  border-radius: 50%;
1021
- background: var(--lz-accent, #0a84ff);
1054
+ background:
1055
+ radial-gradient(
1056
+ circle at 35% 30%,
1057
+ var(--lz-color, #f5f5f7) 0 42%,
1058
+ color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, transparent) 100%);
1059
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3);
1060
+ }
1061
+ .lz-vinyl .lz-shaft {
1062
+ position: absolute;
1063
+ right: 0.045em;
1064
+ top: 0.02em;
1065
+ width: 0.06em;
1066
+ height: 0.48em;
1067
+ border-radius: 3px;
1068
+ background: linear-gradient(var(--lz-color, #f5f5f7), color-mix(in srgb, var(--lz-color, #f5f5f7) 35%, transparent));
1069
+ box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.25);
1070
+ transform-origin: top center;
1071
+ transform: rotate(24deg);
1072
+ }
1073
+ .lz-vinyl .lz-shaft::before {
1074
+ content: "";
1075
+ position: absolute;
1076
+ top: -0.035em;
1077
+ left: -0.04em;
1078
+ width: 0.14em;
1079
+ height: 0.14em;
1080
+ border-radius: 50%;
1081
+ background: var(--lz-color, #f5f5f7);
1082
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25);
1083
+ }
1084
+ .lz-vinyl .lz-shaft::after {
1085
+ content: "";
1086
+ position: absolute;
1087
+ bottom: -0.05em;
1088
+ left: 0.005em;
1089
+ width: 0.05em;
1090
+ height: 0.1em;
1091
+ border-radius: 0 0 3px 3px;
1092
+ background: color-mix(in srgb, var(--lz-accent, #0a84ff) 75%, white);
1022
1093
  }
1023
1094
  .lz-sonar {
1024
1095
  position: relative;
@@ -1054,25 +1125,51 @@
1054
1125
  }
1055
1126
  .lz-music-note {
1056
1127
  display: flex;
1057
- align-items: baseline;
1058
- gap: 0.45em;
1128
+ align-items: center;
1129
+ gap: 0.5em;
1059
1130
  font-size: var(--lz-size, 32px);
1060
1131
  line-height: 1;
1061
1132
  }
1062
1133
  .lz-music-note .lz-note {
1134
+ position: relative;
1063
1135
  display: inline-block;
1064
- line-height: 1;
1065
- color: var(--lz-color, #f5f5f7);
1136
+ width: 0.42em;
1137
+ height: 0.88em;
1066
1138
  animation: lz-note-bob calc(1.4s * var(--lz-speed, 1)) ease-in-out infinite;
1067
1139
  }
1068
- .lz-music-note .lz-note:nth-child(2) {
1069
- animation-delay: -0.5s;
1140
+ .lz-music-note .lz-head {
1141
+ position: absolute;
1142
+ left: 0;
1143
+ bottom: 0.06em;
1144
+ width: 0.3em;
1145
+ height: 0.24em;
1146
+ border-radius: 55% 45% 50% 50%;
1147
+ background: var(--lz-color, #f5f5f7);
1148
+ box-shadow: inset -0.045em -0.02em 0 color-mix(in srgb, var(--lz-color, #f5f5f7) 55%, #000);
1149
+ transform: rotate(-18deg);
1070
1150
  }
1071
- .lz-music-note .lz-note:nth-child(3) {
1072
- animation-delay: -0.9s;
1151
+ .lz-music-note .lz-stem {
1152
+ position: absolute;
1153
+ left: 0.175em;
1154
+ bottom: 0.13em;
1155
+ width: 0.045em;
1156
+ height: 0.6em;
1157
+ border-radius: 2px;
1158
+ background: var(--lz-color, #f5f5f7);
1073
1159
  }
1074
- .lz-music-note .lz-note:nth-child(4) {
1075
- animation-delay: -0.3s;
1160
+ .lz-music-note .lz-flag {
1161
+ position: absolute;
1162
+ left: 0.22em;
1163
+ bottom: 0.61em;
1164
+ width: 0.24em;
1165
+ height: 0.2em;
1166
+ border: 0.045em solid var(--lz-color, #f5f5f7);
1167
+ border-left: none;
1168
+ border-top: none;
1169
+ border-radius: 0 0 0.14em 0.02em / 0 0 0.26em 0.02em;
1170
+ }
1171
+ .lz-music-note .lz-note.second .lz-head {
1172
+ background: color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, var(--lz-accent, #0a84ff));
1076
1173
  }
1077
1174
  .lz-activity-rings {
1078
1175
  width: var(--lz-size, 44px);