.crypto-goal { margin-top: 24px; --progress: 0%; }
.crypto-goal-heading { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 12px; font-size: 14px; color: #f5f2ff; }
.crypto-goal-heading span { font-variant-numeric: tabular-nums; white-space: nowrap; }
.crypto-goal-track { position: relative; height: 32px; border-radius: 999px; background: #252139; box-shadow: inset 0 0 0 1px #ffffff12; }
.crypto-goal-fill {
  position: absolute; inset: 0 auto 0 0; width: var(--progress);
  overflow: hidden; isolation: isolate; border-radius: inherit;
  background: linear-gradient(100deg, #414fc6, #ad7af0 30%, #7350cd 60%, #858bef 82%, #7048c2);
  background-size: 260% 100%;
  animation: support-color-flow 9s ease-in-out infinite alternate;
  transition: width 1.2s cubic-bezier(.22, 1, .36, 1);
}
.crypto-goal-fill::before, .crypto-goal-fill::after {
  content: ""; position: absolute; inset: 0 -160px 0 0;
  background-repeat: repeat-x; background-size: 160px 24px; background-position: left center;
  pointer-events: none;
}
.crypto-goal-fill::before {
  background-image: radial-gradient(circle at 12px 8px, #fff 0 .7px, #ffffff40 1px, transparent 1.8px), radial-gradient(circle at 46px 17px, #f5e9ff 0 .6px, transparent 1.5px), radial-gradient(circle at 79px 6px, #fff 0 .8px, transparent 1.8px), radial-gradient(circle at 117px 14px, #fff 0 .6px, transparent 1.4px), radial-gradient(circle at 145px 5px, #eee1ff 0 .5px, transparent 1.3px);
  animation: support-star-drift 14s linear infinite;
}
.crypto-goal-fill::after {
  background-image: radial-gradient(circle at 26px 18px, #fff 0 .5px, transparent 1.2px), radial-gradient(circle at 64px 11px, #eee5ff 0 .6px, transparent 1.4px), radial-gradient(circle at 101px 4px, #fff 0 .5px, transparent 1.3px), radial-gradient(circle at 138px 18px, #fff 0 .6px, transparent 1.4px);
  animation: support-star-drift 23s linear infinite reverse, support-star-shimmer 4s ease-in-out infinite alternate;
}
@keyframes support-color-flow { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@keyframes support-star-drift { to { transform: translateX(-160px); } }
@keyframes support-star-shimmer { from { opacity: .35; } to { opacity: .9; } }
.crypto-goal-marker { position: absolute; top: 50%; left: clamp(16px, var(--progress), calc(100% - 16px)); width: 32px; height: 32px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); box-shadow: 0 0 5px #ece4ff70; transition: left 1.2s cubic-bezier(.22, 1, .36, 1); }
.crypto-goal:not([data-ready]) .crypto-goal-marker { visibility: hidden; }
.crypto-goal-status { margin-top: 9px; color: #aaa4b6; font-size: 11px; line-height: 1.5; }
@media (prefers-reduced-motion: reduce) {
  .crypto-goal-fill, .crypto-goal-fill::before, .crypto-goal-fill::after, .crypto-goal-marker { animation: none; transition: none; }
}
