/* transition.css — sets initial hidden state before JS runs to prevent flash,
   and defines the loading-screen overlay used while a page renders / between
   page navigations (Home, Object, Our Team, Staff Application). */

#app,
#object-app,
#team-app,
#staff-app {
  opacity: 0;
}

/* Full-screen loading overlay, shown the instant transition.js runs and kept
   up until the page's app root has fully rendered — then reused again right
   before navigating to another app page. */
.pt-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: #07061a;
  opacity: 1;
  transition: opacity 280ms ease;
}

.pt-loader.pt-hidden {
  opacity: 0;
  pointer-events: none;
}

.pt-loader__dots {
  display: flex;
  gap: 7px;
}

.pt-loader__dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #a855f7;
  animation: pt-dot-bounce 1.1s ease-in-out infinite;
}

.pt-loader__dots span:nth-child(2) { animation-delay: 0.18s; }
.pt-loader__dots span:nth-child(3) { animation-delay: 0.36s; }

.pt-loader__text {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(192, 132, 252, 0.85);
}

@keyframes pt-dot-bounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.6; }
  30% { transform: translateY(-7px); opacity: 1; }
}
