/* First-paint loader shown while the app's JavaScript downloads.
   React fades it out (see src/components/SplashScreen.jsx). */
.boot {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px;
  background: #4FC3FF;
  transition: opacity .45s ease, visibility .45s;
}
.boot--hide { opacity: 0; visibility: hidden; }
.boot__logo { width: 112px; height: 116px; animation: bootBob 1.4s ease-in-out infinite; }
.boot__dots { display: flex; gap: 10px; }
.boot__dots span {
  width: 16px; height: 16px; border-radius: 50%; border: 3px solid #0B3B8C;
  animation: bootDot 1s ease-in-out infinite;
}
.boot__dots span:nth-child(1) { background: #FFD23F; }
.boot__dots span:nth-child(2) { background: #FF5DA2; animation-delay: .15s; }
.boot__dots span:nth-child(3) { background: #C8FF3E; animation-delay: .3s; }
@keyframes bootBob { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-14px) rotate(4deg); } }
@keyframes bootDot { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-12px); } }
@media (prefers-reduced-motion: reduce) { .boot__logo, .boot__dots span { animation: none; } }
