.vexeo-intro {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(ellipse at 50% 46%, #17191d 0%, #0b0c0e 43%, #070809 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity .55s ease, visibility .55s ease;
}
.vexeo-intro.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.vexeo-intro__center { position: relative; display: grid; place-items: center; width: 200px; height: 200px; }
.vexeo-intro__symbol {
  position: relative;
  z-index: 1;
  display: block;
  width: 92px;
  height: 86px;
  object-fit: contain;
  filter: drop-shadow(0 0 20px rgba(255,255,255,.2));
  opacity: 0;
  animation: vexeo-symbol-arrive .72s cubic-bezier(.16,1,.3,1) .08s forwards, vexeo-symbol-breathe .55s ease-in-out .78s 1 both;
}
.vexeo-intro__halo {
  position: absolute;
  width: 138px;
  height: 138px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  box-shadow: inset 0 0 50px rgba(255,255,255,.018), 0 0 55px rgba(255,255,255,.035);
  animation: vexeo-halo 1.3s cubic-bezier(.16,1,.3,1) .12s both;
}
.vexeo-intro__progress { position: absolute; bottom: 18px; left: 50%; width: 104px; height: 2px; overflow: hidden; transform: translateX(-50%); background: rgba(255,255,255,.14); }
.vexeo-intro__progress::after { content: ""; display: block; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg,rgba(255,255,255,.35),#fff); box-shadow: 0 0 10px rgba(255,255,255,.55); animation: vexeo-progress 1.62s cubic-bezier(.4,0,.2,1) .08s both; }
@keyframes vexeo-symbol-arrive { 0% { opacity: 0; transform: translateY(15px) scale(.68); filter: blur(12px) drop-shadow(0 0 0 transparent); } 72% { opacity: 1; transform: translateY(-2px) scale(1.045); filter: blur(0) drop-shadow(0 0 24px rgba(255,255,255,.28)); } 100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0) drop-shadow(0 0 20px rgba(255,255,255,.2)); } }
@keyframes vexeo-symbol-breathe { 50% { transform: scale(1.035); filter: drop-shadow(0 0 29px rgba(255,255,255,.34)); } }
@keyframes vexeo-halo { 0% { opacity: 0; transform: scale(.65); } 55% { opacity: .62; } 100% { opacity: .17; transform: scale(1.2); } }
@keyframes vexeo-progress { 0% { transform: scaleX(0); } 100% { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) {
  .vexeo-intro, .vexeo-intro * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
