/* =========================================================
   MCN ENGINE — SINGLE STARTUP SPLASH
   ========================================================= */

:root {
  --mcn-splash-background: #000000;
  --mcn-splash-text: #ffffff;
  --mcn-splash-accent: #3b82f6;
}

/* ================= FULL-SCREEN SPLASH ================= */

#splashScreen {
  position: fixed;

  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  width: 100%;
  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 24px;

  box-sizing: border-box;

  display: flex;
  align-items: center;
  justify-content: center;

  overflow: hidden;

  background: var(--mcn-splash-background);
  color: var(--mcn-splash-text);

  z-index: 99999;

  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transition:
    opacity 0.45s ease,
    visibility 0.45s ease;
}

/* ================= SPLASH FADE OUT ================= */

#splashScreen.splash-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* ================= CENTERED CONTENT ================= */

.splash-content {
  width: 100%;
  max-width: 100%;

  margin: 0;
  padding: 0;

  box-sizing: border-box;

  display: flex;
  flex-direction: column;

  align-items: center;
  justify-content: center;

  gap: 22px;

  text-align: center;

  animation: mcnSplashAppear 0.65s ease both;
}

/* ================= ANIMATED LOGO RING ================= */

.splash-logo-ring {
  position: relative;

  flex-shrink: 0;

  width: 132px;
  height: 132px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;
}

/* Rotating blue-and-white ring */

.splash-logo-ring::before {
  content: "";

  position: absolute;
  inset: 0;

  border-radius: 50%;

  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    transparent 35deg,
    var(--mcn-splash-accent) 105deg,
    #ffffff 180deg,
    var(--mcn-splash-accent) 250deg,
    transparent 320deg,
    transparent 360deg
  );

  animation: mcnSplashRingRotate 1.6s linear infinite;
}

/* Black inner circle */

.splash-logo-ring::after {
  content: "";

  position: absolute;
  inset: 4px;

  border-radius: 50%;

  background: var(--mcn-splash-background);
}

/* MCN Engine logo */

.splash-logo {
  position: relative;
  z-index: 1;

  width: 82px;
  height: 82px;

  max-width: 100%;

  object-fit: contain;

  display: block;
}

/* ================= BRAND NAME ================= */

.splash-brand {
  width: 100%;

  margin: 0;
  padding: 0;

  color: var(--mcn-splash-text);

  font-family: Inter, Arial, Helvetica, sans-serif;

  font-size: clamp(23px, 5vw, 30px);
  font-weight: 800;

  letter-spacing: 0.5px;
  line-height: 1.3;

  text-align: center;
}

/* ================= ANIMATIONS ================= */

@keyframes mcnSplashRingRotate {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes mcnSplashAppear {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.97);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ================= ACCESSIBILITY ================= */

@media (prefers-reduced-motion: reduce) {
  .splash-logo-ring::before {
    animation-duration: 6s;
  }

  .splash-content {
    animation: none;
  }

  #splashScreen {
    transition-duration: 0.01ms;
  }
}

/* ================= SMALL PHONES ================= */

@media (max-width: 380px) {
  .splash-logo-ring {
    width: 116px;
    height: 116px;
  }

  .splash-logo {
    width: 72px;
    height: 72px;
  }

  .splash-content {
    gap: 18px;
  }
}