.donation-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: grid;
  place-items: center;
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 220ms ease, visibility 220ms ease;
}

.donation-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.donation-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 6, 16, 0.74);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.donation-modal__card {
  position: relative;
  z-index: 1;
  width: min(100%, 40rem);
  padding: 1.5rem;
  border: 1px solid rgba(196, 93, 255, 0.24);
  border-radius: 1.5rem;
  background: linear-gradient(180deg, rgba(12, 16, 36, 0.95), rgba(9, 12, 28, 0.98));
  box-shadow: 0 0 0 1px rgba(194, 87, 255, 0.12), 0 28px 80px rgba(3, 5, 15, 0.56), 0 0 45px rgba(129, 44, 221, 0.18);
  transform: translateY(18px) scale(0.98);
  transition: transform 220ms ease;
}

.donation-modal.is-open .donation-modal__card {
  transform: translateY(0) scale(1);
}

.donation-modal__close {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.02);
  color: #f7f3ff;
  cursor: pointer;
}

.donation-modal__tag {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  margin: 0 0 0.8rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(198, 90, 255, 0.22);
  background: rgba(120, 45, 212, 0.14);
  color: #da8bff;
  font-weight: 600;
}

.donation-modal h2 {
  margin: 0 0 0.6rem;
  font-family: 'Urbanist', sans-serif;
  font-size: clamp(1.7rem, 1.3rem + 1vw, 2.4rem);
  line-height: 1.08;
}

.donation-modal__text,
.donation-modal__note {
  margin: 0;
  color: #d2d3eb;
}

.donation-modal__note {
  margin-top: 1rem;
  font-size: 0.94rem;
  color: #aeb2d6;
}

.donation-modal__note code {
  color: #efb6ff;
}

.donation-amounts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin-top: 1.35rem;
}

.amount-btn,
.btn-support,
.btn-skip {
  min-height: 48px;
  border-radius: 1rem;
  font: inherit;
  cursor: pointer;
}

.amount-btn {
  border: 1px solid rgba(196, 93, 255, 0.18);
  background: rgba(255,255,255,0.02);
  color: #f5f6ff;
  font-weight: 600;
}

.amount-btn:hover,
.amount-btn.is-selected {
  border-color: rgba(205, 104, 255, 0.38);
  background: linear-gradient(135deg, rgba(144, 45, 255, 0.88), rgba(86, 29, 170, 0.94));
  box-shadow: 0 0 22px rgba(172, 82, 255, 0.18);
}

.donation-actions {
  display: flex;
  gap: 0.9rem;
  margin-top: 1.3rem;
}

.btn-support {
  flex: 1;
  border: 1px solid rgba(198, 94, 255, 0.24);
  color: #fff;
  background: linear-gradient(135deg, #8d2fff 0%, #cc4cff 55%, #7d4dff 100%);
  box-shadow: 0 14px 30px rgba(125, 45, 255, 0.25);
}

.btn-skip {
  flex: 1;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  color: #f4f5ff;
}

@media (max-width: 640px) {
  .donation-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .donation-actions { flex-direction: column; }
}