/* Shared bot identity; the same local image is preloaded by index.html. */
.launch-screen {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  width: 100%;
  height: var(--radar-viewport, 100dvh);
  padding: max(24px, var(--radar-inset-top, env(safe-area-inset-top)))
    max(24px, env(safe-area-inset-right))
    max(24px, var(--radar-inset-bottom, env(safe-area-inset-bottom)))
    max(24px, env(safe-area-inset-left));
  overflow: hidden;
  color: #f4f8f6;
  background: #172f2d;
  font-family: "Roboto", Arial, sans-serif;
  transition: opacity 220ms ease;
}
.launch-stage { width: min(100%, 340px); text-align: center; }
.launch-brand {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  font-size: clamp(40px, 7vw, 52px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: -2.2px;
  animation: launch-appear 650ms both;
}
.launch-logo { width: 96px; height: 96px; border-radius: 26px; box-shadow: 0 12px 36px #071d1a44; }
.launch-motto {
  margin: 20px 0 0;
  color: #d4e4de;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  animation: launch-appear 650ms 150ms both;
}
.launch-status {
  margin: 36px 0 0;
  color: #9db9b0;
  font-size: 12px;
  line-height: 18px;
  font-weight: 400;
  animation: launch-appear 650ms 300ms both;
}
.launch-pulse { display: flex; justify-content: center; gap: 5px; margin-top: 12px; }
.launch-pulse i {
  width: 4px; height: 4px; border-radius: 50%; background: #9ed3c4;
  animation: launch-signal 1400ms ease-in-out infinite;
}
.launch-pulse i:nth-child(2) { animation-delay: 160ms; }
.launch-pulse i:nth-child(3) { animation-delay: 320ms; }
#launch-retry { margin-top: 18px; min-height: 44px; }
#launch-retry[hidden] { display: none; }
.launch-no-js { color: #d4e4de; font-size: 14px; line-height: 20px; }
.launch-leaving { opacity: 0; }
@keyframes launch-appear {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes launch-signal {
  0%, 100% { opacity: .4; }
  50% { opacity: 1; }
}
@media (max-height: 400px) {
  .launch-brand { flex-direction: row; }
  .launch-logo { width: 64px; height: 64px; border-radius: 18px; }
  .launch-motto { margin-top: 14px; }
  .launch-status { margin-top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .launch-screen, .launch-screen * { animation: none !important; transition: none !important; }
}
