.processing-card {
  max-width: 480px;
  width: 100%;
  margin: 40px auto;
  padding: 24px;
  background: #ffffff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  border-radius: 12px;
  text-align: center;
  font-family: sans-serif;
  color: #333;
}
.processing-card h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
}
.processing-card p {
  margin: 8px 0 16px;
  color: #666;
  font-size: 16px;
}
.loader {
  --color1: #3498db;
  --color2: #e74c3c;
  width: 3.75em;
  aspect-ratio: 1;
  position: relative;
  animation: spin 10s infinite linear;
  margin: 20px auto;
}
.loader::before, .loader::after {
  content: "";
  position: absolute;
  background: var(--color1);
  animation: squeeze 3s infinite;
}
.loader::after {
  background: var(--color2);
  animation-delay: -1.25s;
  border-radius: 50px;
}
@keyframes spin { to { transform: rotate(-360deg); } }
@keyframes squeeze {
  0% { inset: 0 2em 2em 0; } 12.5% { inset: 0 2em 0 0; }
  25% { inset: 2em 2em 0 0; } 37.5% { inset: 2em 0 0 0; }
  50% { inset: 2em 0 0 2em; } 62.5% { inset: 0 0 0 2em; }
  75% { inset: 0 0 2em 2em; } 87.5% { inset: 0 0 2em 0; }
  100% { inset: 0 2em 2em 0; }
}
.download-button {
  display: inline-block;
  margin-top: 16px;
  padding: 12px 28px;
  background: #28a745;
  color: white;
  font-size: 16px;
  border-radius: 28px;
  text-decoration: none;
  font-weight: 500;
}
.download-button:hover {
  background: #1e7e34;
}
