.question-loading-screen {
  min-height: min(72vh, 720px);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  padding: 36px 24px;
  text-align: center;
  color: #33445b;
}

.question-loading-screen h1 {
  margin: 0;
  font-size: clamp(1.35rem, 3.8vw, 2rem);
  line-height: 1.45;
}

.question-loading-screen p {
  margin: 0;
  color: #708096;
  font-weight: 700;
}

.question-loading-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 78px;
  font-size: clamp(2rem, 8vw, 3.4rem);
}

.question-loading-visual span {
  display: inline-block;
  animation: question-loading-float 1.15s ease-in-out infinite;
}

.question-loading-visual span:nth-child(2) { animation-delay: .14s; }
.question-loading-visual span:nth-child(3) { animation-delay: .28s; }

.question-loading-dots {
  display: flex;
  gap: 7px;
  margin-top: 4px;
}

.question-loading-dots i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  opacity: .28;
  animation: question-loading-dot .9s ease-in-out infinite;
}

.question-loading-dots i:nth-child(2) { animation-delay: .12s; }
.question-loading-dots i:nth-child(3) { animation-delay: .24s; }

.question-loading-debug {
  width: min(100%, 390px);
  margin-top: 10px;
  padding: 14px 16px;
  border: 1px solid #dbe4ff;
  border-radius: 16px;
  background: #f8f9ff;
  box-shadow: 0 8px 22px rgba(70, 89, 120, .08);
  text-align: left;
}

.question-loading-debug-title {
  margin-bottom: 9px;
  color: #5c6ac4;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
}

.question-loading-debug-grid {
  display: grid;
  grid-template-columns: minmax(86px, auto) minmax(0, 1fr);
  gap: 7px 12px;
  align-items: baseline;
  font-size: 13px;
  line-height: 1.45;
}

.question-loading-debug-grid span {
  color: #7a8596;
  font-weight: 750;
}

.question-loading-debug-grid b {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #33445b;
  font-weight: 900;
}

.question-loading-error {
  max-width: 620px;
  margin: 0 auto;
}

.question-loading-actions {
  width: min(100%, 360px);
  display: grid;
  gap: 10px;
  margin-top: 8px;
}

.question-loading-actions button {
  width: 100%;
}

@keyframes question-loading-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-9px) rotate(3deg); }
}

@keyframes question-loading-dot {
  0%, 100% { opacity: .22; transform: scale(.85); }
  50% { opacity: .8; transform: scale(1.12); }
}

@media (prefers-reduced-motion: reduce) {
  .question-loading-visual span,
  .question-loading-dots i { animation: none; }
}
