/* Nodo Connect Loader — logo que se monta, personas que conectan */
.nodo-connect-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fafbff;
    will-change: opacity, transform;
}

.nodo-connect-loader.is-exiting {
    pointer-events: none;
}

.nodo-connect-loader__bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 55% at 50% 42%, rgba(108, 114, 229, 0.14), transparent 68%),
        radial-gradient(circle at 18% 78%, rgba(238, 10, 252, 0.08), transparent 42%),
        radial-gradient(circle at 82% 22%, rgba(81, 15, 167, 0.1), transparent 40%),
        linear-gradient(180deg, #fafbff 0%, #f3f4ff 100%);
}

.nodo-connect-loader__inner {
    position: relative;
    width: min(280px, 78vw);
    height: min(280px, 78vw);
    display: flex;
    align-items: center;
    justify-content: center;
}

.nodo-connect-loader__network {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.nodo-connect-loader__lines line {
    stroke: #6c72e5;
    stroke-width: 1.5;
    stroke-linecap: round;
    opacity: 0.45;
}

.nodo-connect-loader__people {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.nodo-connect-loader__person {
    position: absolute;
    width: 11px;
    height: 11px;
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 4px 14px rgba(78, 83, 190, 0.22);
}

.nodo-connect-loader__person--1 { top: 14%; left: 22%; background: #6c72e5; }
.nodo-connect-loader__person--2 { top: 10%; left: 78%; background: #ee0afc; }
.nodo-connect-loader__person--3 { top: 78%; left: 18%; background: #510fa7; }
.nodo-connect-loader__person--4 { top: 82%; left: 80%; background: #a78bfa; }
.nodo-connect-loader__person--5 { top: 48%; left: 6%; background: #818cf8; }
.nodo-connect-loader__person--6 { top: 52%; left: 94%; background: #c084fc; }

.nodo-connect-loader__logo-wrap {
    position: relative;
    z-index: 2;
    width: 92px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nodo-connect-loader__logo {
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 10px 28px rgba(81, 15, 167, 0.22));
}

.nodo-connect-loader__piece {
    transform-box: fill-box;
    transform-origin: center;
}

.nodo-connect-loader__glow {
    position: absolute;
    inset: -18px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(238, 10, 252, 0.18), transparent 68%);
    opacity: 0;
    z-index: 1;
    pointer-events: none;
}

.nodo-connect-loader__copy {
    position: absolute;
    left: 50%;
    bottom: -2.75rem;
    transform: translateX(-50%);
    text-align: center;
    white-space: nowrap;
    opacity: 0;
}

.nodo-connect-loader__brand {
    margin: 0;
    font-family: 'Poppins', system-ui, sans-serif;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: #0f1222;
}

.nodo-connect-loader__brand .name {
    color: #4e53be;
}

.nodo-connect-loader__brand .verb {
    display: inline-block;
    margin-left: 0.2em;
    color: #ee0afc;
    opacity: 0;
    transform: translateY(8px);
}

.nodo-connect-loader__tag {
    margin: 0.45rem 0 0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #94a3b8;
    opacity: 0;
}

.nodo-connect-loader__progress {
    position: absolute;
    left: 50%;
    bottom: -4.25rem;
    transform: translateX(-50%);
    width: 120px;
    height: 3px;
    border-radius: 999px;
    background: #e8eaf6;
    overflow: hidden;
    opacity: 0;
}

.nodo-connect-loader__progress-fill {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #6c72e5, #ee0afc);
    transform-origin: left center;
    transform: scaleX(0);
}

@media (prefers-reduced-motion: reduce) {
    .nodo-connect-loader__piece,
    .nodo-connect-loader__person,
    .nodo-connect-loader__lines line {
        transition: none !important;
    }
}
