:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #18181b;
  background: #f4f4f5;
}

* { box-sizing: border-box; }
body { margin: 0; }

.shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.card {
  width: min(100%, 440px);
  padding: 36px 30px;
  border: 1px solid #e4e4e7;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 50px rgb(0 0 0 / 8%);
  text-align: center;
}

.brand { margin-bottom: 28px; font-size: 13px; font-weight: 800; letter-spacing: .18em; }
.spinner { width: 46px; height: 46px; margin: 0 auto 22px; border: 4px solid #e4e4e7; border-top-color: #18181b; border-radius: 50%; animation: spin .85s linear infinite; }
h1 { margin: 0; font-size: 25px; line-height: 1.2; }
p { color: #52525b; line-height: 1.55; }
.steps { margin: 24px 0; padding: 16px; border-radius: 12px; background: #f4f4f5; text-align: left; font-size: 14px; }
.steps div { display: flex; align-items: center; gap: 10px; }
.steps div + div { margin-top: 12px; }
.dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: #a1a1aa; animation: pulse 1.2s ease-in-out infinite; }
.dot.ready { background: #16a34a; animation: none; }
.hint { margin-bottom: 0; font-size: 13px; }
button, a { display: inline-block; margin-top: 18px; border-radius: 9px; padding: 10px 16px; font: inherit; font-weight: 650; cursor: pointer; }
button { border: 0; color: #fff; background: #18181b; }
a { color: #18181b; }
[hidden] { display: none; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse { 50% { opacity: .35; } }

@media (max-width: 480px) {
  .card { padding: 30px 22px; }
  h1 { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .spinner, .dot { animation-duration: 2s; }
}
