.result:not([hidden]) {
  animation: waitlist-result-enter 520ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.signup-success {
  position: relative;
  width: 58px;
  height: 58px;
  margin: 0 0 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #090909;
  color: #fff;
  animation: waitlist-success-pop 700ms cubic-bezier(0.16, 1.35, 0.3, 1) both;
}

.signup-success::before,
.signup-success::after {
  position: absolute;
  border: 1px solid #090909;
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.signup-success::before {
  inset: -9px;
  animation: waitlist-success-ring 780ms 80ms ease-out both;
}

.signup-success::after {
  inset: -18px;
  animation: waitlist-success-ring 780ms 170ms ease-out both;
}

.signup-success svg {
  width: 31px;
  height: 31px;
  overflow: visible;
}

.signup-success path {
  fill: none;
  stroke: currentColor;
  stroke-dasharray: 30;
  stroke-dashoffset: 30;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  animation: waitlist-success-check 420ms 260ms ease-out forwards;
}

.result:not([hidden]) .result-label,
.result:not([hidden]) .result-note,
.result:not([hidden]) .rank,
.result:not([hidden]) .result-hint,
.result:not([hidden]) .share-link,
.result:not([hidden]) .share-actions,
.result:not([hidden]) .referral-count {
  animation: waitlist-success-content 480ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.result:not([hidden]) .result-label,
.result:not([hidden]) .result-note { animation-delay: 130ms; }
.result:not([hidden]) .rank { animation-delay: 180ms; }
.result:not([hidden]) .result-hint { animation-delay: 230ms; }
.result:not([hidden]) .share-link { animation-delay: 280ms; }
.result:not([hidden]) .share-actions { animation-delay: 330ms; }
.result:not([hidden]) .referral-count { animation-delay: 380ms; }

@keyframes waitlist-result-enter {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes waitlist-success-pop {
  0% { opacity: 0; transform: scale(0.35) rotate(-12deg); }
  62% { opacity: 1; transform: scale(1.08) rotate(2deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes waitlist-success-ring {
  0% { opacity: 0; transform: scale(0.45); }
  35% { opacity: 0.28; }
  100% { opacity: 0; transform: scale(1.18); }
}

@keyframes waitlist-success-check {
  to { stroke-dashoffset: 0; }
}

@keyframes waitlist-success-content {
  from { opacity: 0; transform: translateY(9px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .result:not([hidden]),
  .signup-success,
  .signup-success::before,
  .signup-success::after,
  .signup-success path,
  .result:not([hidden]) > * {
    animation: none;
  }

  .signup-success path { stroke-dashoffset: 0; }
}
