html.nt-app-launch-intro-pending,
html.nt-app-launch-intro-pending body {
    overflow: hidden !important;
}

.nt-app-launch-intro {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
    place-items: center;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 49%, rgba(255, 111, 30, 0.11) 0 11%, rgba(255, 45, 85, 0.055) 24%, transparent 46%),
        radial-gradient(circle at 73% 27%, rgba(255, 45, 85, 0.055), transparent 30%),
        linear-gradient(180deg, #f7f9fd 0%, #eef2f8 100%);
    transition: opacity 340ms ease, visibility 340ms ease;
    isolation: isolate;
}

html.nt-app-launch-intro-pending .nt-app-launch-intro {
    display: grid;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.nt-app-launch-intro.is-leaving {
    opacity: 0;
    visibility: hidden;
}

.nt-app-launch-intro__ambient {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.nt-app-launch-intro__orb {
    position: absolute;
    display: block;
    border-radius: 999px;
    filter: blur(5px);
    opacity: 0;
}

.nt-app-launch-intro__orb--one {
    width: min(78vw, 510px);
    aspect-ratio: 1;
    left: 50%;
    top: 50%;
    background: radial-gradient(circle, rgba(255, 116, 18, 0.10), transparent 69%);
    transform: translate(-50%, -50%) scale(0.78);
}

.nt-app-launch-intro__orb--two {
    width: min(44vw, 290px);
    aspect-ratio: 1;
    right: -9%;
    top: 15%;
    background: radial-gradient(circle, rgba(255, 45, 85, 0.08), transparent 70%);
    transform: scale(0.76);
}

.nt-app-launch-intro__stage {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(84vw, 380px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transform: translateY(-1.5vh);
}

.nt-app-launch-intro__wordmark {
    display: block;
    width: clamp(170px, 46vw, 230px);
    height: auto;
    opacity: 0;
    transform: translateY(12px) scale(0.965);
    filter: drop-shadow(0 14px 25px rgba(10, 21, 47, 0.10));
    will-change: transform, opacity;
}

.nt-app-launch-intro__spark {
    position: absolute;
    top: 46%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    opacity: 0;
    transform: scale(0.4);
}

.nt-app-launch-intro__spark--one {
    left: 25%;
    background: #ff7600;
    box-shadow: 0 0 24px rgba(255, 118, 0, 0.35);
}

.nt-app-launch-intro__spark--two {
    right: 24%;
    background: #ff2d55;
    box-shadow: 0 0 24px rgba(255, 45, 85, 0.32);
}

.nt-app-launch-intro__loader {
    position: relative;
    width: 82px;
    height: 3px;
    margin-top: 27px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(11, 19, 43, 0.07);
    opacity: 0;
}

.nt-app-launch-intro__loader span {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #ff7a00 0%, #ff2d55 100%);
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__wordmark {
    animation: ntAppIntroWordmark 520ms cubic-bezier(0.16, 1, 0.3, 1) 60ms forwards;
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__spark--one {
    animation: ntAppIntroSparkLeft 620ms cubic-bezier(0.16, 1, 0.3, 1) 230ms forwards;
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__spark--two {
    animation: ntAppIntroSparkRight 620ms cubic-bezier(0.16, 1, 0.3, 1) 270ms forwards;
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__loader {
    animation: ntAppIntroFade 300ms ease-out 330ms forwards;
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__loader span {
    animation: ntAppIntroLoader 760ms cubic-bezier(0.4, 0, 0.2, 1) 370ms forwards;
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__orb--one {
    animation: ntAppIntroOrbOne 980ms ease-out 40ms forwards;
}

.nt-app-launch-intro.is-running .nt-app-launch-intro__orb--two {
    animation: ntAppIntroOrbTwo 940ms ease-out 100ms forwards;
}

@keyframes ntAppIntroWordmark {
    0% {
        opacity: 0;
        transform: translateY(12px) scale(0.965);
    }
    70% {
        opacity: 1;
        transform: translateY(-1px) scale(1.012);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes ntAppIntroSparkLeft {
    0% {
        opacity: 0;
        transform: translate(18px, 4px) scale(0.4);
    }
    55% {
        opacity: 0.95;
    }
    100% {
        opacity: 0;
        transform: translate(-18px, -7px) scale(1.15);
    }
}

@keyframes ntAppIntroSparkRight {
    0% {
        opacity: 0;
        transform: translate(-18px, 5px) scale(0.4);
    }
    55% {
        opacity: 0.95;
    }
    100% {
        opacity: 0;
        transform: translate(18px, -8px) scale(1.15);
    }
}

@keyframes ntAppIntroFade {
    to { opacity: 1; }
}

@keyframes ntAppIntroLoader {
    0% { width: 0; }
    100% { width: 100%; }
}

@keyframes ntAppIntroOrbOne {
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

@keyframes ntAppIntroOrbTwo {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .nt-app-launch-intro,
    .nt-app-launch-intro * {
        animation-duration: 1ms !important;
        animation-delay: 0ms !important;
        transition-duration: 1ms !important;
    }
}
