:root{
    --bg:#06070c;
    --cian:#00e5ff;
    --morado:#a855f7;
    --texto:#e8ecf4;
    --suave:#98a2b8;
    --vidrio:rgba(255,255,255,.05);
    --borde:rgba(255,255,255,.12);
    --radio:20px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{
    background:
        radial-gradient(1200px 600px at 80% -10%,rgba(168,85,247,.18),transparent 60%),
        radial-gradient(900px 600px at -10% 30%,rgba(0,229,255,.12),transparent 60%),
        var(--bg);
    color:var(--texto);
    font-family:'Inter',system-ui,sans-serif;
    line-height:1.6;
    overflow-x:hidden;
}
#fondo{position:fixed;inset:0;z-index:0;pointer-events:none}
main,footer{position:relative;z-index:1}
img{max-width:100%}

.contenedor{width:min(1140px,92%);margin-inline:auto}
.suave{color:var(--suave)}

/* NAVEGACIÓN */
.nav{
    position:fixed;top:0;left:0;right:0;z-index:50;
    padding:14px 0;border-bottom:1px solid transparent;
    transition:background .3s,padding .3s,border-color .3s;
}
.nav.scrolled{
    background:rgba(6,7,12,.7);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    padding:8px 0;border-color:var(--borde);
}
.nav .contenedor{display:flex;align-items:center;justify-content:space-between}
.nav-logo{height:44px;display:block}
.menu{display:flex;gap:6px;list-style:none}
.menu a{
    display:block;padding:8px 14px;border-radius:999px;
    color:var(--suave);text-decoration:none;font-size:.95rem;
    transition:color .25s,background .25s;
}
.menu a:hover,.menu a.activo{color:var(--texto);background:rgba(0,229,255,.1)}
.menu a.contacto{border:1px solid var(--cian);color:var(--cian)}
.btn-menu{
    display:none;background:none;border:1px solid var(--borde);
    color:var(--texto);border-radius:10px;padding:6px 12px;font-size:1.2rem;cursor:pointer;
}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;padding:120px 0 60px}
.hero .contenedor{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero-logo{width:90px;margin-bottom:18px;filter:drop-shadow(0 0 18px rgba(0,229,255,.5))}
.hero h1{
    font-family:'Orbitron',sans-serif;
    font-size:clamp(2rem,5vw,3.6rem);line-height:1.1;letter-spacing:.04em;
    background:linear-gradient(90deg,var(--cian),var(--morado));
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p{margin:18px 0 32px;font-size:1.2rem;color:var(--suave);font-weight:300}

.boton{
    display:inline-block;padding:14px 30px;border-radius:999px;
    font-weight:600;text-decoration:none;color:#06070c;
    background:linear-gradient(90deg,var(--cian),var(--morado));
    box-shadow:0 0 24px rgba(0,229,255,.35);
    transition:transform .25s,box-shadow .25s;
}
.boton:hover{transform:translateY(-3px);box-shadow:0 0 36px rgba(168,85,247,.55)}
.boton-sec{
    background:transparent;color:var(--texto);border:1px solid var(--cian);
    box-shadow:none;padding:10px 22px;margin-top:auto;align-self:flex-start;
}
.boton-sec:hover{background:rgba(0,229,255,.12);box-shadow:0 0 20px rgba(0,229,255,.3)}

/* PILA DE CRISTAL 3D */
.visual{perspective:1100px;width:min(440px,100%);aspect-ratio:1;margin-inline:auto}
.pila{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .15s ease-out}
.capa{
    position:absolute;left:12%;top:20%;width:76%;height:60%;border-radius:18px;
    border:1px solid rgba(255,255,255,.2);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    transform:rotateX(60deg) rotateZ(-35deg) translateZ(var(--z));
    animation:flota 6s ease-in-out infinite;animation-delay:var(--d);
}
.c1{--z:0px;--d:0s;background:linear-gradient(135deg,rgba(0,229,255,.35),rgba(0,229,255,.05));box-shadow:0 30px 60px rgba(0,229,255,.35)}
.c2{--z:40px;--d:.4s;background:linear-gradient(135deg,rgba(168,85,247,.4),rgba(168,85,247,.05));box-shadow:0 30px 60px rgba(168,85,247,.35)}
.c3{--z:80px;--d:.8s;background:linear-gradient(135deg,rgba(0,229,255,.3),rgba(255,255,255,.04))}
.c4{--z:130px;--d:1.2s;background:rgba(20,22,32,.85);display:flex;align-items:center;justify-content:center}
.c4 span{font-family:'Orbitron',sans-serif;letter-spacing:.3em;font-size:1rem;color:var(--texto)}
@keyframes flota{
    50%{transform:rotateX(60deg) rotateZ(-35deg) translateZ(calc(var(--z) + 22px))}
}

/* SECCIONES */
.seccion{padding:100px 0}
.titulo{
    font-family:'Orbitron',sans-serif;font-size:clamp(1.5rem,3.5vw,2.3rem);
    text-align:center;margin-bottom:50px;
}
.titulo::after{
    content:'';display:block;width:70px;height:3px;margin:14px auto 0;border-radius:3px;
    background:linear-gradient(90deg,var(--cian),var(--morado));box-shadow:0 0 14px var(--cian);
}
.subtitulo{font-size:1.5rem;margin-bottom:12px}
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.lista{list-style:none;margin-top:20px}
.lista li{padding:6px 0 6px 28px;position:relative}
.lista li::before{content:'✦';position:absolute;left:0;color:var(--cian);text-shadow:0 0 10px var(--cian)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.stat-number{font-family:'Orbitron',sans-serif;font-size:3rem;color:var(--cian);text-shadow:0 0 20px rgba(0,229,255,.6)}
.rejilla{display:grid;gap:24px}
.rejilla-3{grid-template-columns:repeat(3,1fr)}
.rejilla-4{grid-template-columns:repeat(4,1fr)}

/* APARICIÓN AL HACER SCROLL */
.reveal{opacity:0;translate:0 30px;transition:opacity .8s ease,translate .8s ease}
.reveal.visible{opacity:1;translate:0 0}

/* TARJETAS DE CRISTAL */
.tarjeta{
    position:relative;display:flex;flex-direction:column;gap:10px;padding:28px;
    border-radius:var(--radio);background:var(--vidrio);border:1px solid var(--borde);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    transition:border-color .3s,box-shadow .3s,transform .2s ease-out,opacity .8s ease,translate .8s ease;
    will-change:transform;
}
.tarjeta::before{
    content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(0,229,255,.16),transparent 60%);
    opacity:0;transition:opacity .3s;
}
.tarjeta:hover{border-color:rgba(0,229,255,.5);box-shadow:0 0 40px rgba(0,229,255,.15)}
.tarjeta:hover::before{opacity:1}
.tarjeta h3{font-size:1.15rem}
.icono{font-size:2.4rem;filter:drop-shadow(0 0 12px rgba(0,229,255,.6))}
.num{
    width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
    font-family:'Orbitron',sans-serif;font-weight:700;color:#06070c;
    background:linear-gradient(135deg,var(--cian),var(--morado));
    box-shadow:0 0 18px rgba(0,229,255,.5);
}

/* CARRUSEL DE PROYECTOS */
.carrusel{position:relative}
.pista{
    display:flex;gap:24px;overflow-x:auto;padding:20px 6px 30px;
    scroll-snap-type:x mandatory;scrollbar-width:none;
    overscroll-behavior-x:contain;cursor:grab;outline:none;
}
.pista::-webkit-scrollbar{display:none}
.pista:focus-visible{box-shadow:0 0 0 2px rgba(0,229,255,.5);border-radius:var(--radio)}
.pista.arrastrando{scroll-snap-type:none;cursor:grabbing;user-select:none;-webkit-user-select:none}
.pista.arrastrando a{pointer-events:none}
.pista .tarjeta{flex:0 0 min(320px,80%);scroll-snap-align:start;min-height:280px}
.pista .tarjeta p{color:var(--suave);flex:1}
.flecha{
    position:absolute;top:calc(50% - 12px);translate:0 -50%;z-index:2;width:48px;height:48px;border-radius:50%;
    border:1px solid var(--borde);background:rgba(10,12,20,.8);color:var(--cian);
    font-size:1.6rem;line-height:1;cursor:pointer;
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:box-shadow .3s;
}
.flecha:hover{box-shadow:0 0 24px rgba(0,229,255,.5)}
.flecha.prev{left:-14px}
.flecha.sig{right:-14px}
.puntos{display:flex;justify-content:center;gap:10px;margin-top:4px}
.punto{
    width:10px;height:10px;padding:0;border-radius:999px;cursor:pointer;
    border:1px solid var(--borde);background:transparent;
    transition:width .3s,background .3s,box-shadow .3s;
}
.punto.activo{
    width:26px;border-color:transparent;
    background:linear-gradient(90deg,var(--cian),var(--morado));box-shadow:0 0 12px var(--cian);
}

/* PIE */
.footer{padding:60px 0 30px}
.footer-caja{gap:14px}
.footer-titulo{font-family:'Orbitron',sans-serif;letter-spacing:.08em}
.contacto-item{display:flex;align-items:center;gap:12px}
.wa{width:30px;height:30px;display:block}
.enlace{color:var(--cian);text-decoration:none}
.enlace:hover{text-shadow:0 0 12px var(--cian)}
.copyright{text-align:center;color:var(--suave);font-size:.85rem;margin-top:30px}

/* RESPONSIVO */
@media(max-width:991px){
    .hero .contenedor{grid-template-columns:1fr;text-align:center}
    .hero-logo{margin-inline:auto}
    .dos-col{grid-template-columns:1fr}
    .rejilla-4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
    .btn-menu{display:block}
    .menu{
        position:absolute;top:100%;left:4%;right:4%;display:none;flex-direction:column;
        background:rgba(10,12,20,.95);border:1px solid var(--borde);border-radius:16px;padding:10px;
    }
    .menu.abierto{display:flex}
}
@media(max-width:700px){
    .rejilla-3,.rejilla-4,.stats{grid-template-columns:1fr}
    .flecha.prev{left:-6px}
    .flecha.sig{right:-6px}
}
@media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
    html{scroll-behavior:auto}
    .reveal{opacity:1;translate:none}
}