html.invictus-welcome-skip #invictus-welcome {
  display: none !important;
}

#invictus-welcome {
  position: fixed !important;
  inset: 0 !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  z-index: 2147483000;
  display: grid !important;
  place-items: center;
  background: #000;
  color: #fff;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  animation: invictus-gate 2.2s ease forwards;
}

#invictus-welcome::before {
  content: "";
  position: absolute;
  width: 42vw;
  height: 42vw;
  max-width: 420px;
  max-height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(252, 109, 1, 0.28), transparent 68%);
  filter: blur(12px);
  animation: invictus-glow 1.8s ease-in-out infinite alternate;
}

#invictus-welcome .invictus-welcome-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  padding: 24px;
}

#invictus-welcome img {
  height: 42px;
  width: auto;
  display: block;
  animation: invictus-rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

#invictus-welcome .invictus-welcome-kicker {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.62);
  animation: invictus-rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

#invictus-welcome .invictus-welcome-bar {
  width: 88px;
  height: 2px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.12);
}

#invictus-welcome .invictus-welcome-bar > span {
  display: block;
  height: 100%;
  width: 40%;
  border-radius: inherit;
  background: #fc6d01;
  animation: invictus-scan 1.1s ease-in-out infinite;
}

#invictus-welcome.is-out {
  animation: invictus-leave 0.45s ease forwards;
}

@keyframes invictus-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes invictus-glow {
  from { opacity: 0.55; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1.08); }
}

@keyframes invictus-scan {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(280%); }
}

/* Dismisses the overlay without JavaScript so a script failure can never
   leave the page stuck behind a black screen. */
@keyframes invictus-gate {
  0%, 68% { opacity: 1; }
  100% {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@keyframes invictus-leave {
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #invictus-welcome::before,
  #invictus-welcome img,
  #invictus-welcome .invictus-welcome-kicker,
  #invictus-welcome .invictus-welcome-bar > span {
    animation: none;
  }
}
