/* Self-contained /confirmation screen — visible before async JS via html[data-route="confirmation"] */
.confirmation-screen {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px;
  background: #06060a;
  color: #f5f5f7;
  text-align: center;
}

html[data-route="confirmation"] .confirmation-screen {
  display: flex;
}

html[data-route="auth-callback"] .confirmation-screen {
  display: none !important;
}

html[data-route="oauth-cancelled"] .confirmation-screen {
  display: none !important;
}

html[data-route="connection-cancelled"] .confirmation-screen {
  display: none !important;
}

html[data-route="confirmation"] .session-loading {
  display: none !important;
}

html[data-route="confirmation"] .ambient-canvas,
html[data-route="confirmation"] .trail-canvas {
  display: none !important;
}

.confirmation-screen__logo {
  display: block;
  width: auto;
  height: 40px;
  margin-bottom: 4px;
}

.confirmation-screen__loading,
.confirmation-screen__success,
.confirmation-screen__error {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 380px;
}

.confirmation-screen__loading[hidden],
.confirmation-screen__success[hidden],
.confirmation-screen__error[hidden] {
  display: none !important;
}

.confirmation-screen__status {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.78);
}

.confirmation-screen__ring {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-top-color: #ff8fb1;
  animation: confirmationSpin 0.85s linear infinite;
}

@keyframes confirmationSpin {
  to {
    transform: rotate(360deg);
  }
}

.confirmation-screen__heading {
  margin: 0;
  font-size: clamp(1.35rem, 5vw, 1.75rem);
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
}

.confirmation-screen__message {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
}

.confirmation-screen__home {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 4px;
  padding: 0 28px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  color: #f5f5f7;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.confirmation-screen__home:hover,
.confirmation-screen__home:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  outline: none;
}

.confirmation-screen.is-success .confirmation-screen__heading {
  color: #ff8fb1;
}

.confirmation-screen.is-error .confirmation-screen__heading {
  color: rgba(255, 255, 255, 0.92);
}
