/* =========================================================
   COEIG — INDEX / PORTADA
   Institucional · tecnológico · minimalista
========================================================= */

*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

html{
    scroll-behavior:smooth;
}

body{
    min-height:100vh;
    overflow-x:hidden;
    font-family:"Segoe UI",Arial,sans-serif;
    color:#fff;

    background:
        radial-gradient(
            circle at 76% 20%,
            rgba(0,183,255,.14),
            transparent 30%
        ),
        radial-gradient(
            circle at 15% 70%,
            rgba(0,120,210,.10),
            transparent 34%
        ),
        linear-gradient(
            180deg,
            #00172c 0%,
            #002846 48%,
            #00101f 100%
        );
}

body.modal-open{
    overflow:hidden;
}

button,
input,
textarea{
    font:inherit;
}

img{
    max-width:100%;
}


/* =========================================================
   LOADER
========================================================= */

.page-loader{
    position:fixed;
    inset:0;
    z-index:9999;

    display:grid;
    place-items:center;

    background:#001323;

    transition:
        opacity .7s ease,
        visibility .7s ease;
}

.page-loader.is-hidden{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}

.loader-core{
    position:relative;

    width:240px;
    height:240px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:13px;

    color:#9fe7ff;

    font-size:10px;
    font-weight:800;
    letter-spacing:2px;
}

.loader-logo{
    font-size:30px;
    font-weight:900;
    letter-spacing:6px;
    color:#fff;

    text-shadow:
        0 0 25px rgba(0,183,255,.8);
}

.loader-orbit{
    position:absolute;
    inset:28px;

    border:1px solid rgba(0,183,255,.35);
    border-top-color:#00b7ff;
    border-radius:50%;

    animation:
        loaderSpin 1.7s linear infinite;
}

.loader-line{
    width:80px;
    height:1px;

    background:#00b7ff;

    box-shadow:
        0 0 14px rgba(0,183,255,.8);

    animation:
        loaderLine 1.2s ease-in-out infinite;
}

@keyframes loaderSpin{
    to{
        transform:rotate(360deg);
    }
}

@keyframes loaderLine{
    0%,100%{
        transform:scaleX(.45);
        opacity:.35;
    }

    50%{
        transform:scaleX(1);
        opacity:1;
    }
}


/* =========================================================
   SITIO
========================================================= */

.site{
    width:min(1440px,100%);
    margin:0 auto;
    padding:8px 38px 80px;
}


/* =========================================================
   ACCIONES FLOTANTES
========================================================= */

.floating-actions{
    position:fixed;
    top:18px;
    right:22px;
    z-index:300;

    display:flex;
    flex-direction:column;
    gap:10px;
}

.floating-button{
    position:relative;

    width:56px;
    height:56px;
    min-width:56px;
    min-height:56px;

    padding:0;

    display:grid;
    place-items:center;

    overflow:hidden;

    border:1px solid rgba(0,183,255,.35);
    border-radius:50%;

    cursor:pointer;

    color:#fff;

    background:rgba(0,20,40,.78);

    backdrop-filter:blur(14px);

    box-shadow:
        0 10px 35px rgba(0,0,0,.28);

    transition:.25s ease;
}

.floating-button:hover{
    transform:
        translateY(-3px)
        scale(1.05);

    border-color:#00b7ff;

    box-shadow:
        0 0 25px rgba(0,183,255,.3),
        0 12px 35px rgba(0,0,0,.35);
}

.floating-icon{
    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    border-radius:50%;

    pointer-events:none;
}

.chat-pulse{
    position:absolute;
    inset:-4px;

    border:1px solid rgba(0,183,255,.35);
    border-radius:50%;

    pointer-events:none;

    animation:
        chatPulse 2.2s infinite;
}

@keyframes chatPulse{
    0%{
        transform:scale(.9);
        opacity:.7;
    }

    70%,100%{
        transform:scale(1.25);
        opacity:0;
    }
}


/* =========================================================
   HERO
========================================================= */

.hero{
    position:relative;

    min-height:650px;

    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        minmax(420px,1fr);

    align-items:center;

    gap:35px;

    padding:
        30px
        20px
        45px
        45px;

    overflow:hidden;
}

.hero::before{
    content:"";

    position:absolute;

    left:-10%;
    top:18%;

    width:48%;
    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0,183,255,.5),
            transparent
        );

    transform:rotate(-8deg);

    opacity:.5;
}

.hero-copy{
    position:relative;
    z-index:2;

    max-width:720px;
}

.eyebrow{
    color:#00b7ff;

    font-size:12px;
    letter-spacing:5px;
    font-weight:800;
}

.hero h1{
    margin-top:15px;

    font-size:
        clamp(42px,5vw,72px);

    line-height:.98;

    letter-spacing:-2px;
}

.hero h1 span{
    display:block;

    color:#00b7ff;

    text-shadow:
        0 0 25px rgba(0,183,255,.22);
}

.motto{
    margin-top:22px;

    color:#a6e9ff;

    font-size:18px;
    font-weight:700;
    letter-spacing:1px;
}

.hero-text{
    max-width:650px;

    margin-top:25px;

    color:#cceaf5;

    font-size:17px;
    line-height:1.8;
}

.hero-buttons{
    display:flex;
    flex-wrap:wrap;

    gap:13px;

    margin-top:32px;
}

.btn-primary,
.btn-secondary{
    min-height:46px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:8px;

    padding:
        12px
        21px;

    border-radius:999px;

    text-decoration:none;

    font-size:12px;
    font-weight:900;
    letter-spacing:.8px;

    transition:.25s ease;
}

.btn-primary{
    color:#fff;

    background:#00aeea;

    box-shadow:
        0 0 25px rgba(0,183,255,.22);
}

.btn-primary:hover{
    transform:translateY(-3px);

    box-shadow:
        0 0 35px rgba(0,183,255,.48);
}

.btn-secondary{
    color:#dff8ff;

    border:1px solid rgba(0,183,255,.28);

    background:rgba(255,255,255,.035);
}

.btn-secondary:hover{
    transform:translateY(-3px);

    border-color:rgba(0,183,255,.65);

    background:rgba(0,183,255,.07);
}

.btn-symbol{
    display:inline-grid;
    place-items:center;

    width:18px;
    height:18px;

    border:1px solid rgba(255,255,255,.5);
    border-radius:50%;

    font-size:9px;
}


/* =========================================================
   HERO VISUAL
========================================================= */

.hero-visual{
    position:relative;

    min-height:570px;

    display:grid;
    place-items:center;

    isolation:isolate;
}

.visual-grid{
    position:absolute;

    width:90%;
    height:70%;

    background:
        linear-gradient(
            rgba(0,183,255,.055) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0,183,255,.055) 1px,
            transparent 1px
        );

    background-size:32px 32px;

    mask-image:
        radial-gradient(
            ellipse,
            black 15%,
            transparent 72%
        );

    opacity:.45;

    z-index:0;
}

.world-image{
    position:relative;
    z-index:3;

    width:min(100%,760px);
    max-height:570px;

    object-fit:contain;
    display:block;

    filter:
        drop-shadow(
            0 0 8px
            rgba(0,183,255,.55)
        )
        drop-shadow(
            0 0 30px
            rgba(0,183,255,.22)
        );

    animation:
        worldFloat 6s ease-in-out infinite;

    user-select:none;
    pointer-events:none;
}

@keyframes worldFloat{
    0%,100%{
        transform:
            translateY(0)
            scale(1);
    }

    50%{
        transform:
            translateY(-8px)
            scale(1.012);
    }
}

.visual-ring{
    position:absolute;
    z-index:1;

    width:390px;
    height:390px;

    border:
        1px solid
        rgba(0,183,255,.16);

    border-radius:50%;

    animation:
        ringFloat 7s ease-in-out infinite;
}

.ring-two{
    width:510px;
    height:510px;

    border-color:
        rgba(0,183,255,.08);

    animation-delay:-2s;
}

@keyframes ringFloat{
    0%,100%{
        transform:scale(.98);
        opacity:.55;
    }

    50%{
        transform:scale(1.03);
        opacity:1;
    }
}

.visual-caption{
    position:absolute;

    z-index:4;

    right:5%;
    bottom:8%;

    color:#81dfff;

    font-size:9px;
    font-weight:800;
    letter-spacing:2px;
}

.caption-dot{
    display:inline-block;

    width:6px;
    height:6px;

    margin-right:7px;

    border-radius:50%;

    background:#00ff9d;

    box-shadow:
        0 0 10px #00ff9d;
}


/* =========================================================
   ECOSISTEMA
========================================================= */

.ecosystem{
    padding-top:35px;
}

.section-title{
    max-width:800px;

    margin-bottom:30px;
}

.section-title>span{
    color:#00b7ff;

    font-size:11px;
    letter-spacing:4px;
    font-weight:900;
}

.section-title h2{
    margin-top:10px;

    font-size:
        clamp(30px,4vw,44px);
}

.section-title p{
    margin-top:12px;

    color:#a9cddb;

    line-height:1.75;
}

.ecosystem-list{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    column-gap:45px;
}

.eco-item{
    position:relative;

    min-height:155px;

    display:grid;

    grid-template-columns:
        42px
        52px
        minmax(0,1fr)
        28px;

    align-items:center;

    gap:13px;

    border-bottom:
        1px solid
        rgba(255,255,255,.09);

    transition:.3s ease;
}

.eco-item::before{
    content:"";

    position:absolute;

    left:0;
    right:0;
    bottom:-1px;

    height:1px;

    background:#00b7ff;

    transform:scaleX(0);

    transform-origin:left;

    transition:.35s ease;
}

.eco-item:hover::before{
    transform:scaleX(1);
}

.eco-item:hover{
    padding-left:8px;
}

.eco-number{
    color:#477b92;

    font-size:10px;
    letter-spacing:1px;
}


/* =========================================================
   ECO SYMBOL
========================================================= */

.eco-symbol{
    position:relative;

    width:44px;
    height:44px;

    min-width:44px;
    min-height:44px;

    display:grid;
    place-items:center;

    overflow:hidden;

    border:
        1px solid
        rgba(0,183,255,.24);

    border-radius:50%;

    color:#fff;

    background:
        rgba(0,183,255,.055);

    font-size:14px;
    font-weight:900;
    letter-spacing:1px;

    isolation:isolate;

    flex-shrink:0;

    cursor:pointer;
}

.eco-symbol:focus-visible{
    outline:
        2px solid
        #00b7ff;

    outline-offset:4px;
}

.eco-letter{
    position:absolute;
    inset:0;

    z-index:1;

    display:grid;
    place-items:center;

    color:#fff;
}

.eco-symbol .eco-icon{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    max-width:none;
    max-height:none;

    margin:0;
    padding:0;

    display:block;

    object-fit:cover;
    object-position:center;

    border-radius:50%;

    z-index:2;

    background:
        rgba(0,20,40,.8);

    pointer-events:none;

    transform:scale(1);

    transition:
        transform .25s ease;
}

.eco-symbol:hover .eco-icon{
    transform:scale(1.06);
}

.eco-content{
    min-width:0;
}

.item-status{
    color:#67cce9;

    font-size:9px;
    letter-spacing:2px;
    font-weight:800;
}

.eco-item h3{
    margin-top:5px;

    color:#00b7ff;

    font-size:23px;
}

.eco-item p{
    margin-top:5px;

    color:#b9d8e4;

    font-size:13px;
    line-height:1.5;
}

.item-arrow{
    color:#4d91aa;

    font-size:20px;

    transition:.3s;
}

.eco-item:hover .item-arrow{
    color:#00b7ff;

    transform:
        translate(3px,-3px);
}

/* =========================================================
   SLEVIA SHOWCASE
   Modal único SLEVIA / WSV / EJECUTOR
========================================================= */

.slevia-showcase{
    position:fixed;
    inset:0;
    z-index:9600;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:20px;

    background:rgba(0,10,22,.78);

    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transition:
        opacity .25s ease,
        visibility .25s ease;
}

.slevia-showcase.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.slevia-showcase-box{
    position:relative;

    width:min(900px,94vw);
    height:min(720px,88vh);

    display:flex;
    flex-direction:column;

    padding:24px;

    border:1px solid rgba(25,194,255,.25);
    border-radius:22px;

    background:
        linear-gradient(
            145deg,
            rgba(12,34,60,.98),
            rgba(5,20,38,.99)
        );

    box-shadow:
        0 25px 70px rgba(0,0,0,.65),
        0 0 35px rgba(25,194,255,.08);

    transform:
        translateY(15px)
        scale(.97);

    transition:
        transform .25s ease;

    overflow:hidden;

    isolation:isolate;
}

.slevia-showcase.is-open .slevia-showcase-box{
    transform:
        translateY(0)
        scale(1);
}


/* =========================================================
   CERRAR
========================================================= */

.slevia-showcase-close{
    position:absolute;

    top:12px;
    right:15px;

    z-index:20;

    width:30px;
    height:30px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin:0;
    padding:0;

    border:0 !important;
    border-radius:0 !important;

    background:transparent !important;

    color:#6f9daf;

    font-size:25px;
    font-weight:400;

    line-height:1;

    cursor:pointer;

    appearance:none;
    -webkit-appearance:none;

    box-shadow:none !important;

    transition:
        color .2s ease,
        transform .2s ease;
}

.slevia-showcase-close:hover{
    color:#fff;

    transform:
        rotate(90deg)
        scale(1.1);
}

.slevia-showcase-close:focus,
.slevia-showcase-close:active,
.slevia-showcase-close:focus-visible{
    outline:none !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}


/* =========================================================
   CABECERA
========================================================= */

.slevia-showcase-label{
    margin-bottom:6px;

    color:#19c2ff;

    font-size:10px;
    font-weight:800;

    letter-spacing:2px;
}

.slevia-showcase-box h2{
    margin:0;

    padding-right:35px;

    color:#f1f8ff;

    font-size:25px;
    font-weight:700;
}

.slevia-showcase-intro{
    margin:
        7px
        35px
        16px
        0;

    color:
        rgba(
            229,
            245,
            255,
            .72
        );

    font-size:13px;
    line-height:1.5;
}


/* =========================================================
   PESTAÑAS
========================================================= */

.slevia-tabs{
    display:flex;

    gap:7px;

    margin-bottom:14px;

    flex-shrink:0;
}

.slevia-tab{
    width:auto !important;
    min-height:38px;

    margin:0 !important;
    padding:
        0
        15px;

    border-radius:10px !important;

    font-size:10px !important;
    letter-spacing:1.2px !important;
}

.slevia-tab.active{
    background:
        rgba(
            25,
            194,
            255,
            .14
        );

    border-color:
        rgba(
            25,
            194,
            255,
            .38
        );

    color:#bceeff;
}


/* =========================================================
   PANELES
========================================================= */

.slevia-view{
    display:none;

    flex:1;
    min-height:0;

    overflow:auto;

    padding-right:5px;
}

.slevia-view.active{
    display:block;
}


/* =========================================================
   TARJETAS
========================================================= */

.slevia-card{
    margin-bottom:12px;
    padding:16px;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius:16px;

    background:
        rgba(255,255,255,.035);
}

.slevia-card:last-child{
    margin-bottom:0;
}

.slevia-card-title{
    margin-bottom:9px;

    color:#9bd9ed;

    font-size:11px;
    letter-spacing:2px;
}

.slevia-demo-copy{
    margin-bottom:14px;

    color:
        rgba(
            229,
            245,
            255,
            .72
        );

    font-size:12px;
    line-height:1.5;
}


/* =========================================================
   LETRAS
========================================================= */

.slevia-letters{
    display:grid;

    grid-template-columns:
        repeat(
            6,
            minmax(0,1fr)
        );

    gap:8px;
}

.slevia-letters button{
    min-height:54px !important;

    margin:0 !important;

    font-size:17px !important;
    font-weight:700;
}


/* =========================================================
   MONITOR SLEVIA
========================================================= */

.slevia-monitor{
    display:grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:9px;

    margin-top:12px;
}

.slevia-monitor div{
    padding:11px;

    border-radius:11px;

    background:
        rgba(
            255,
            255,
            255,
            .035
        );
}

.slevia-monitor span{
    display:block;

    margin-bottom:5px;

    color:#607985;

    font-size:9px;

    letter-spacing:1.5px;
}

.slevia-monitor strong{
    color:#d8f6ff;

    font-size:13px;
}


/* =========================================================
   BARRA DE SEÑAL
========================================================= */

.slevia-pulse-bar{
    display:flex;

    gap:6px;

    margin-top:14px;
}

.slevia-pulse-bar span{
    height:5px;

    flex:1;

    border-radius:5px;

    background:
        rgba(
            25,
            194,
            255,
            .12
        );

    transition:
        background .15s ease;
}

.slevia-pulse-bar.active span{
    background:#19c2ff;
}


/* =========================================================
   WSV
========================================================= */

.wsv-monitor{
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr);

    gap:12px;
}

.wsv-word-box{
    min-height:110px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            .07
        );

    border-radius:14px;

    background:
        rgba(
            255,
            255,
            255,
            .035
        );

    color:#bceeff;

    font-size:24px;
    font-weight:600;

    text-align:center;
}

.wsv-code{
    width:100%;
    min-height:210px;

    resize:none;

    padding:13px;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            .08
        );

    border-radius:14px;

    background:
        rgba(
            0,
            0,
            0,
            .22
        );

    color:#bfeeff;

    font:
        12px/1.5
        Consolas,
        monospace;

    outline:none;
}


/* =========================================================
   EJECUTOR
========================================================= */

.slevia-executor-frame{
    display:block;

    width:100%;
    height:100%;

    min-height:520px;

    border:0;

    border-radius:15px;

    background:#031521;
}


/* =========================================================
   SCROLL
========================================================= */

.slevia-showcase
.slevia-view::-webkit-scrollbar{
    width:6px;
}

.slevia-showcase
.slevia-view::-webkit-scrollbar-track{
    background:
        rgba(
            255,
            255,
            255,
            .04
        );

    border-radius:10px;
}

.slevia-showcase
.slevia-view::-webkit-scrollbar-thumb{
    background:
        rgba(
            25,
            194,
            255,
            .35
        );

    border-radius:10px;
}


/* =========================================================
   BLOQUEAR SCROLL CUANDO SLEVIA ESTÁ ABIERTO
========================================================= */

body.slevia-modal-open{
    overflow:hidden;
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:650px){

    .slevia-showcase{
        padding:12px;
    }

    .slevia-showcase-box{
        width:100%;
        height:90vh;

        padding:20px;

        border-radius:19px;
    }

    .slevia-showcase-box h2{
        font-size:21px;
    }

    .slevia-showcase-intro{
        font-size:12px;
    }

    .slevia-tabs{
        overflow-x:auto;

        padding-bottom:3px;
    }

    .slevia-tab{
        flex:
            0 0 auto;
    }

    .slevia-letters{
        grid-template-columns:
            repeat(
                3,
                minmax(0,1fr)
            );
    }

    .slevia-monitor,
    .wsv-monitor{
        grid-template-columns:1fr;
    }

    .slevia-showcase-close{
        top:11px;
        right:13px;

        width:30px;
        height:30px;

        font-size:24px;
    }

    .slevia-executor-frame{
        min-height:500px;
    }
}

/* =========================================================
   FILOSOFÍA
========================================================= */

.philosophy{
    position:relative;

    text-align:center;

    padding:
        120px
        20px
        80px;
}

.philosophy-line{
    width:90px;
    height:1px;

    margin:
        0
        auto
        30px;

    background:#00b7ff;

    box-shadow:
        0 0 18px
        rgba(0,183,255,.7);
}

.signal-icon{
    color:#00b7ff;

    font-size:12px;
    font-weight:900;
    letter-spacing:5px;

    animation:
        pulseSignal 2.2s infinite;
}

@keyframes pulseSignal{
    0%,100%{
        transform:scale(1);
        opacity:.65;
    }

    50%{
        transform:scale(1.08);
        opacity:1;
    }
}

.philosophy h2{
    margin-top:15px;

    font-size:
        clamp(28px,4vw,43px);

    line-height:1.1;
}

.philosophy p{
    max-width:650px;

    margin:
        18px
        auto
        0;

    color:#bddce8;

    line-height:1.7;
}


/* =========================================================
   ACCESO
========================================================= */

.access{
    text-align:center;

    padding:
        50px
        20px
        80px;
}

.access-label{
    color:#00b7ff;

    font-size:10px;
    letter-spacing:4px;
    font-weight:900;
}

.access h2{
    margin-top:10px;

    font-size:
        clamp(28px,4vw,38px);
}

.access p{
    margin:
        12px
        auto
        25px;

    color:#b7d5e1;
}


/* =========================================================
   AVISO
========================================================= */

.neutrality{
    max-width:900px;

    margin:0 auto;

    padding:25px 0;

    border-top:
        1px solid
        rgba(0,183,255,.18);
}

.neutrality h3{
    color:#00b7ff;

    font-size:14px;
}

.neutrality p{
    margin-top:8px;

    color:#8fb7c7;

    line-height:1.65;

    font-size:13px;
}


/* =========================================================
   LOGIN
========================================================= */

.modal-backdrop{
    position:fixed;
    inset:0;

    z-index:500;

    display:grid;
    place-items:center;

    padding:20px;

    background:
        rgba(0,8,18,.72);

    backdrop-filter:blur(12px);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transition:.25s ease;
}

.modal-backdrop.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.login-modal{
    position:relative;

    width:min(430px,100%);

    padding:35px;

    border:
        1px solid
        rgba(0,183,255,.28);

    border-radius:28px;

    background:
        linear-gradient(
            145deg,
            rgba(2,31,56,.97),
            rgba(0,15,29,.97)
        );

    box-shadow:
        0 30px 90px rgba(0,0,0,.55);

    transform:
        translateY(15px)
        scale(.97);

    transition:.3s ease;
}

.modal-backdrop.is-open .login-modal{
    transform:
        translateY(0)
        scale(1);
}

.modal-close{
    position:absolute;

    top:16px;
    right:18px;

    border:0;

    background:none;

    color:#8dcfe3;

    cursor:pointer;

    font-size:28px;
    line-height:1;

    transition:.2s;
}

.modal-close:hover{
    color:#fff;

    transform:scale(1.1);
}

.login-mark{
    width:82px;
    height:82px;

    margin:
        0
        auto
        12px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    border:
        1px solid
        rgba(0,183,255,.35);

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(0,183,255,.16),
            rgba(0,183,255,.02)
        );

    box-shadow:
        0 0 35px
        rgba(0,183,255,.13);
}

.login-logo-text{
    font-size:21px;
    font-weight:900;
    letter-spacing:3px;
    color:#fff;

    text-shadow:
        0 0 18px
        rgba(0,183,255,.45);
}

.login-logo-line{
    width:34px;
    height:1px;

    margin-top:7px;

    background:#00b7ff;

    box-shadow:
        0 0 9px
        rgba(0,183,255,.7);
}

.modal-label{
    display:block;

    text-align:center;

    color:#00b7ff;

    font-size:10px;
    letter-spacing:3px;
    font-weight:900;
}

.login-modal h2{
    margin-top:8px;

    text-align:center;

    font-size:28px;
}

.login-modal form{
    margin-top:22px;
}

.login-modal label{
    display:block;

    margin-top:12px;
}

.login-modal label span{
    display:block;

    margin-bottom:6px;

    color:#9ec9d9;

    font-size:11px;
}

.login-modal input{
    width:100%;

    padding:13px 14px;

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius:12px;

    outline:none;

    background:
        rgba(255,255,255,.07);

    color:#fff;

    font-family:inherit;
}

.login-modal input::placeholder{
    color:#7295a3;
}

.login-modal input:focus{
    border-color:#00b7ff;

    box-shadow:
        0 0 0 3px
        rgba(0,183,255,.08);
}

.login-submit{
    width:100%;

    margin-top:18px;

    padding:13px;

    border:0;
    border-radius:999px;

    background:#00aeea;

    color:#fff;

    font-weight:900;

    cursor:pointer;

    transition:.25s;
}

.login-submit:hover{
    transform:translateY(-2px);

    box-shadow:
        0 0 25px
        rgba(0,183,255,.35);
}

.observer-link{
    display:flex;

    align-items:center;
    justify-content:center;

    gap:8px;

    margin-top:10px;

    padding:11px;

    text-align:center;

    border-radius:999px;

    color:#d9f7ff;

    background:
        rgba(255,255,255,.05);

    text-decoration:none;

    font-size:12px;

    transition:.25s;
}

.observer-link:hover{
    background:
        rgba(0,183,255,.08);
}

.login-links{
    display:flex;

    justify-content:center;

    gap:20px;

    margin-top:17px;
}

.login-links a{
    color:#76cde9;

    text-decoration:none;

    font-size:11px;

    transition:.2s;
}

.login-links a:hover{
    color:#fff;
}


/* =========================================================
   INTERACTÚA
========================================================= */

.interact-panel{
    position:fixed;

    right:22px;
    bottom:22px;

    z-index:400;

    width:330px;
    max-width:
        calc(100vw - 44px);

    padding:17px;

    border:
        1px solid
        rgba(0,183,255,.28);

    border-radius:22px;

    background:
        rgba(0,15,30,.97);

    backdrop-filter:blur(18px);

    box-shadow:
        0 25px 70px
        rgba(0,0,0,.5);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transform:
        translateY(15px)
        scale(.97);

    transition:.25s ease;
}

.interact-panel.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;

    transform:
        translateY(0)
        scale(1);
}

.interact-header{
    display:flex;

    justify-content:space-between;
    align-items:center;
}

.interact-title{
    display:flex;

    align-items:center;

    gap:9px;
}

.live-dot{
    width:8px;
    height:8px;

    border-radius:50%;

    background:#00ff9d;

    box-shadow:
        0 0 12px #00ff9d;

    animation:
        live 1.5s infinite;
}

@keyframes live{
    50%{
        opacity:.3;
    }
}

.interact-header strong{
    font-size:13px;
    letter-spacing:1px;
}

.public-label{
    display:block;

    margin-top:4px;

    color:#67cce9;

    font-size:9px;
    letter-spacing:2px;
}

.interact-info{
    margin-top:8px;

    color:#8fb9c9;

    font-size:10px;

    line-height:1.5;
}

.interact-panel textarea{
    width:100%;
    height:72px;

    resize:none;

    margin-top:10px;

    padding:10px;

    border:
        1px solid
        rgba(255,255,255,.1);

    border-radius:11px;

    outline:none;

    background:
        rgba(255,255,255,.055);

    color:#fff;

    font-family:inherit;
    font-size:13px;
}

.interact-panel textarea:focus{
    border-color:#00b7ff;

    box-shadow:
        0 0 0 3px
        rgba(0,183,255,.06);
}

.interact-send-row{
    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:8px;

    margin-top:7px;
}

.enter-hint{
    color:#5f8d9e;

    font-size:7px;

    line-height:1.3;

    letter-spacing:.7px;
}

.interact-panel form button{
    flex:
        0 0 auto;

    width:92px;

    padding:
        9px
        12px;

    border:0;
    border-radius:999px;

    background:#00aeea;

    color:#fff;

    font-size:10px;
    font-weight:900;

    cursor:pointer;

    transition:.25s;
}

.interact-panel form button:hover{
    transform:translateY(-2px);

    box-shadow:
        0 0 25px
        rgba(0,183,255,.3);
}

.interact-panel form button:disabled{
    opacity:.65;

    cursor:wait;

    transform:none;
}

.messages{
    max-height:150px;

    overflow-y:auto;

    margin-top:12px;

    padding-right:3px;
}

.message{
    margin-bottom:8px;

    padding:9px;

    border-left:
        2px solid
        rgba(0,183,255,.5);

    border-radius:8px;

    background:
        rgba(255,255,255,.04);

    color:#d8f5ff;

    font-size:11px;

    line-height:1.5;

    animation:
        messageIn .35s ease;
}

@keyframes messageIn{
    from{
        opacity:0;
        transform:translateY(6px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

.empty-message{
    padding:10px;

    text-align:center;

    color:#6899aa;

    font-size:10px;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1000px){

    .site{
        padding:
            6px
            22px
            60px;
    }

    .hero{
        grid-template-columns:1fr;

        padding:
            55px
            10px
            20px;
    }

    .hero-copy{
        max-width:800px;
    }

    .hero-visual{
        min-height:430px;
    }

    .world-image{
        max-height:440px;
    }

    .ecosystem-list{
        grid-template-columns:1fr;
    }

    .slevia-demo{
        right:22px;
    }
}


@media(max-width:650px){

    .site{
        padding:
            6px
            15px
            45px;
    }

    .floating-actions{
        top:12px;
        right:12px;

        gap:8px;
    }

    .floating-button{
        width:50px;
        height:50px;

        min-width:50px;
        min-height:50px;
    }

    .hero{
        min-height:auto;

        padding-top:62px;
    }

    .hero h1{
        font-size:39px;
        letter-spacing:-1.3px;
    }

    .hero-text{
        font-size:15px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:stretch;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
    }

    .hero-visual{
        min-height:310px;

        margin-top:10px;
    }

    .world-image{
        max-height:310px;
    }

    .visual-ring{
        width:250px;
        height:250px;
    }

    .ring-two{
        width:310px;
        height:310px;
    }

    .visual-caption{
        right:4%;
        bottom:2%;
    }

    .eco-item{
        grid-template-columns:
            30px
            43px
            minmax(0,1fr);

        padding:14px 0;
    }

    .item-arrow{
        display:none;
    }

    .eco-item h3{
        font-size:20px;
    }

    .eco-item p{
        font-size:12px;
    }

    .login-modal{
        padding:
            28px
            22px;

        border-radius:22px;
    }

    .login-links{
        gap:12px;
    }

    .interact-panel{
        right:15px;
        bottom:15px;

        width:320px;

        max-width:
            calc(100vw - 30px);

        padding:15px;
    }

    .interact-panel textarea{
        height:68px;
    }

    .enter-hint{
        max-width:185px;
    }

    .slevia-demo{

        left:15px !important;
        right:15px !important;

        top:auto !important;
        bottom:15px !important;

        width:
            calc(100vw - 30px);

        padding:
            23px
            20px
            20px;

        transform:
            translateY(15px)
            scale(.97);
    }

    .slevia-demo.is-open{
        transform:
            translateY(0)
            scale(1);
    }

    .slevia-demo h2{
        font-size:23px;
    }

    .slevia-demo-description{
        font-size:11px;
    }

    .slevia-stream-word{
        font-size:12px;
    }

    .slevia-stream-pattern{
        font-size:17px;
        letter-spacing:5px;
    }
}


/* =========================================================
   REDUCCIÓN DE MOVIMIENTO
========================================================= */

@media(prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        scroll-behavior:auto !important;

        transition-duration:.01ms !important;
    }
}