/**
 * Shared page + loader styles for Omega Chats landing pages.
 */

/* ----- Base ----- */
html,
body {
  height: 100%;
  margin: 0;
}

body {
  position: relative;
  min-height: 100%;
  overflow: hidden;
  background: #000000;
}

/* ----- Loader shell ----- */
.loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50vw;
  height: 50vw;
  max-width: 50vh;
  max-height: 50vh;
  display: grid;
  place-items: center;
}

/* ----- Spinner (shown while logo API is in flight) ----- */
.loader .spinner {
  width: 48px;
  height: 48px;
  border: 3px solid rgba(0, 0, 0, 0.12);
  border-top-color: rgba(0, 0, 0, 0.55);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

.loader .spinner[hidden] {
  display: none;
}

/* ----- Logo image (revealed after API resolves) ----- */
.loader img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: none;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform, opacity, filter;
  opacity: 1;
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.18));
}

.loader img.is-visible {
  display: block;
}

.loader--float img.is-visible {
  animation: float 1200ms ease-in-out infinite;
}

/* ----- Keyframes ----- */
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .loader .spinner,
  .loader img,
  .loader--float img.is-visible {
    animation: none;
    opacity: 1;
  }
}
