.nexo-intro { display: none; }
html.nexo-intro-on .nexo-intro {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at center, #122433 0, #0a111c 40%, #080c15 100%);
  pointer-events: auto;
  animation: nexo-intro-screen 1.9s ease both;
}
.nexo-intro-mark {
  position: absolute;
  width: clamp(105px, 13vw, 150px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  transform-origin: center;
  animation: nexo-intro-dock 1.9s cubic-bezier(.2,.75,.15,1) both;
}
.nexo-intro-mark::before {
  content: "";
  position: absolute;
  width: 180%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(95,235,240,.24), transparent 68%);
  opacity: 0;
  animation: nexo-intro-glow 1.9s ease both;
}
.nexo-intro-mark img { position: absolute; width: 100%; height: 100%; object-fit: contain; }
.nexo-intro-old { animation: nexo-intro-out 1.9s ease both; }
.nexo-intro-new { animation: nexo-intro-in 1.9s ease both; }
.nexo-intro-wordmark {
  position: absolute;
  top: calc(50% + 100px);
  font: 800 13px Inter, system-ui, sans-serif;
  letter-spacing: .34em;
  color: #e9f6fa;
  animation: nexo-intro-wordmark 1.9s ease both;
}
.nexo-intro-skip {
  position: absolute;
  right: 26px;
  bottom: 22px;
  padding: 9px 13px;
  border: 0;
  background: transparent;
  color: #aebdca;
  font: 600 12px Inter, system-ui, sans-serif;
  cursor: pointer;
  opacity: .8;
}
.nexo-intro-skip:hover { color: #fff; }
@keyframes nexo-intro-out {
  0%, 21% { opacity: 1; transform: scale(1) rotate(0); filter: brightness(1); }
  42%, 100% { opacity: 0; transform: scale(.68) rotate(-14deg); filter: brightness(1.8); }
}
@keyframes nexo-intro-in {
  0%, 24% { opacity: 0; transform: scale(.55) rotate(14deg); }
  53%, 100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes nexo-intro-glow {
  0%, 24%, 100% { opacity: 0; }
  48% { opacity: 1; }
}
@keyframes nexo-intro-dock {
  0%, 60% { transform: translate(0, 0) scale(1); }
  88%, 100% { transform: translate(var(--nexo-dock-x, 0px), var(--nexo-dock-y, -40vh)) scale(var(--nexo-dock-scale, .28)); }
}
@keyframes nexo-intro-wordmark {
  0%, 18% { opacity: 0; transform: translateY(10px); }
  37%, 60% { opacity: 1; transform: translateY(0); }
  78%, 100% { opacity: 0; transform: translateY(-10px); }
}
@keyframes nexo-intro-screen {
  0%, 75% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html.nexo-intro-on .nexo-intro { display: none; }
}
