.storefront .donate-float {
  top: auto;
  bottom: max(30px, calc(env(safe-area-inset-bottom) + 18px));
  transform: none;
}

.storefront .donate-button {
  animation: donate-glow 3s ease-in-out infinite, donate-attention-shake 12s ease-in-out infinite;
}

.storefront .donate-hint {
  opacity: 1;
  animation: donate-attention-hint 12s ease-in-out infinite;
}

@keyframes donate-attention-shake {
  0%, 5%, 17%, 100% { transform: rotate(0); }
  7%, 11%, 15% { transform: rotate(-12deg) scale(1.06); }
  9%, 13% { transform: rotate(12deg) scale(1.06); }
}

@keyframes donate-attention-hint {
  0%, 38% { opacity: 1; transform: translateY(0); }
  43%, 96% { opacity: 0; transform: translateY(6px); }
  100% { opacity: 1; transform: translateY(0); }
}

@media (max-width: 720px) {
  .storefront .donate-float {
    bottom: max(22px, calc(env(safe-area-inset-bottom) + 14px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .storefront .donate-button { animation: donate-glow 3s ease-in-out infinite; }
  .storefront .donate-hint { animation: donate-attention-hint 12s ease-in-out infinite; }
}
