html.nexora-await-enter,
html.nexora-hold-black {
  overflow: hidden;
  background: #000204 !important;
}

html.nexora-hold-black body {
  background: #000204 !important;
}

html.nexora-await-enter body.landing-page,
html.nexora-await-enter body.nexora-app {
  overflow: hidden;
}

html.nexora-await-enter .nexora-layout,
html.nexora-await-enter .layout {
  opacity: 0;
  visibility: hidden;
}

html.nexora-transition-lock {
  overflow: hidden;
}

html.nexora-transition-lock body.landing-page {
  background: #000204 !important;
}

html.nexora-transition-lock .landing-page > *:not(.nexora-transition) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  animation: nexora-exit-content 0.92s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes nexora-exit-content {
  from {
    opacity: 1;
    transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    transform: scale3d(1.04, 1.04, 1) translate3d(0, -8px, 0);
  }
}

.nexora-transition {
  position: fixed;
  inset: 0;
  z-index: 999999;
  pointer-events: none;
  background: #000204;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  contain: strict;
  transform: translateZ(0);
}

.nexora-transition.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

.nexora-transition-veil {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 220vmax;
  height: 220vmax;
  margin-left: -110vmax;
  margin-top: -110vmax;
  border-radius: 50%;
  background: radial-gradient(circle at center, transparent 0%, #020408 48%, #000 100%);
  transform: scale3d(1.4, 1.4, 1);
  opacity: 0;
  pointer-events: none;
}

.nexora-transition.is-exiting .nexora-transition-veil {
  animation: nexora-veil-close 0.92s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.nexora-transition.is-zoom-out .nexora-transition-veil {
  opacity: 0;
  animation: none;
}

.nexora-transition-world {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.nexora-transition-globe-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.nexora-transition-world-glow {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(88vmin, 600px);
  height: min(88vmin, 600px);
  margin-left: calc(min(88vmin, 600px) / -2);
  margin-top: calc(min(88vmin, 600px) / -2);
  border-radius: 50%;
  background: radial-gradient(circle at 38% 32%, rgba(91, 156, 255, 0.18), transparent 55%),
    radial-gradient(circle at 62% 68%, rgba(61, 255, 138, 0.1), transparent 50%);
  filter: blur(24px);
  opacity: 0;
  pointer-events: none;
}

.nexora-transition.is-exiting .nexora-transition-world-glow {
  animation: nexora-world-glow-exit 0.92s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.nexora-transition.is-zoom-out .nexora-transition-world-glow {
  opacity: 0.35;
  transform: scale3d(1.1, 1.1, 1);
  animation: nexora-world-glow-pullback 0.88s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes nexora-veil-close {
  0% {
    opacity: 0;
    transform: scale3d(1.8, 1.8, 1);
  }
  70% {
    opacity: 0.2;
  }
  100% {
    opacity: 1;
    transform: scale3d(0.01, 0.01, 1);
  }
}

@keyframes nexora-world-glow-exit {
  0% {
    opacity: 0;
    transform: scale3d(0.5, 0.5, 1);
  }
  50% {
    opacity: 0.7;
  }
  100% {
    opacity: 0.25;
    transform: scale3d(1.6, 1.6, 1);
  }
}

@keyframes nexora-world-glow-pullback {
  to {
    opacity: 0;
    transform: scale3d(0.7, 0.7, 1);
  }
}

.nexora-transition-core {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  width: 100%;
  text-align: center;
  pointer-events: none;
  transform: translate3d(-50%, -50%, 0);
}

.nexora-transition-label {
  font-family: "Syne", sans-serif;
  font-size: clamp(2rem, 9vw, 4rem);
  font-weight: 800;
  letter-spacing: 0.32em;
  margin-right: -0.32em;
  color: #fff;
  text-shadow: 0 0 50px rgba(61, 255, 138, 0.45);
}

.nexora-transition.is-exiting .nexora-transition-label {
  animation: nexora-label-exit 0.92s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes nexora-label-exit {
  0% {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
  55% {
    opacity: 0.9;
    transform: scale3d(1.03, 1.03, 1);
  }
  100% {
    opacity: 0;
    transform: scale3d(1.15, 1.15, 1);
  }
}

.nexora-transition-sub {
  margin-top: 0.75rem;
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.35em;
  color: #3dff8a;
  text-transform: uppercase;
  opacity: 0;
}

.nexora-transition.is-exiting .nexora-transition-sub {
  animation: nexora-sub-fade 0.88s ease-in-out forwards;
}

@keyframes nexora-sub-fade {
  0%,
  100% {
    opacity: 0;
  }
  35%,
  65% {
    opacity: 0.8;
  }
}

.nexora-transition-flash {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(200, 230, 255, 0.28), transparent 72%);
  opacity: 0;
  pointer-events: none;
  mix-blend-mode: screen;
}

.nexora-transition.is-exiting .nexora-transition-flash {
  animation: nexora-flash-orbit 0.92s ease-in-out forwards;
}

.nexora-transition.is-zoom-out .nexora-transition-flash {
  animation: none;
  opacity: 0;
}

@keyframes nexora-flash-orbit {
  0%,
  100% {
    opacity: 0;
  }
  50% {
    opacity: 0.14;
  }
}

.nexora-transition.is-done {
  pointer-events: none;
  animation: nexora-overlay-fade 0.38s ease forwards;
}

@keyframes nexora-overlay-fade {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

html.nexora-app-reveal .nexora-layout,
html.nexora-app-reveal .layout {
  opacity: 1;
  visibility: visible;
  animation: nexora-app-reveal 0.34s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes nexora-app-reveal {
  from {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nexora-transition,
  .nexora-transition * {
    animation: none !important;
    transition: none !important;
  }

  html.nexora-transition-lock .landing-page > *:not(.nexora-transition) {
    animation: none !important;
  }

  .nexora-transition-globe-canvas {
    display: none;
  }
}
