/* DigiBots · sistema de diseño (tokens del Design System «DigiBots») */
@font-face{font-family:"Nunito";font-weight:300;font-display:swap;src:url(../fonts/nunito-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-weight:400;font-display:swap;src:url(../fonts/nunito-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-weight:600;font-display:swap;src:url(../fonts/nunito-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-weight:700;font-display:swap;src:url(../fonts/nunito-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-weight:800;font-display:swap;src:url(../fonts/nunito-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-weight:900;font-display:swap;src:url(../fonts/nunito-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Caveat Brush";font-weight:400;font-display:swap;src:url(../fonts/caveat-brush-latin-400-normal.woff2) format("woff2")}

:root{
  --noche:#080F21; --noche-elevada:#111B36; --noche-2:#0B1530; --linea:#24345E;
  --blanco:#FFFFFF; --texto-suave:#A7B3D1;
  --cian:#00D9F5; --violeta:#865CFF; --violeta-claro:#A88BFF; --lima:#BBF247;
  --rojo:#FF5C7A; --ambar:#FFC233;
  --tinta:#000000; /* texto sobre fondos lima y ámbar */
  --radius-sm:8px; --radius-md:16px; --radius-pill:999px;
  --brillo-cian:0 0 24px rgba(0,217,245,.45); --brillo-violeta:0 0 24px rgba(134,92,255,.45);
  --ease:cubic-bezier(.2,.7,.2,1);
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--noche);color:var(--blanco);font-family:"Nunito",system-ui,sans-serif;font-size:17px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--cian)} a:hover{color:var(--lima)}
h1,h2,h3{margin:0;font-weight:900;line-height:1.08}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--cian);outline-offset:3px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.contenedor{max-width:var(--max);margin:0 auto;padding:0 24px}

/* ---------- animaciones ---------- */
@keyframes entrar{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes subir{from{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:none}}
@keyframes flotar{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes onda{0%{transform:scale(.85);opacity:.9}100%{transform:scale(1.25);opacity:0}}
@keyframes dibujar{from{stroke-dashoffset:1400}to{stroke-dashoffset:0}}
@keyframes parpadeo{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes cambio{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes girar{from{opacity:0;transform:perspective(900px) rotateY(-90deg)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}
@keyframes temblor{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@keyframes pulso{0%,100%{box-shadow:0 0 0 rgba(0,217,245,0)}50%{box-shadow:0 0 26px rgba(0,217,245,.55)}}
.pagina{animation:entrar .7s var(--ease) both}
.c1{animation:subir .9s .1s var(--ease) both}.c2{animation:subir .9s .25s var(--ease) both}.c3{animation:subir .9s .4s var(--ease) both}
.rv{opacity:0;transform:translateY(40px)}
.rv.in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
.flota{animation:flotar 5s ease-in-out infinite}
.cambio{animation:cambio .45s var(--ease) both}
.gira{animation:girar .5s var(--ease) both}
.pop{animation:pop .5s var(--ease) both}
.tiembla{animation:temblor .4s ease both}
.pulso{animation:pulso 2.2s ease-in-out infinite}
.cable{display:block;width:100%;height:80px}
.cable path{stroke-dasharray:1400;stroke-dashoffset:1400}
.cable.in path{animation:dibujar 2.2s ease-out forwards}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.cable path{stroke-dashoffset:0}html{scroll-behavior:auto}}

/* ---------- cabecera ---------- */
.cabecera{position:sticky;top:0;z-index:20;background:rgba(8,15,33,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.cabecera .contenedor{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding-top:12px;padding-bottom:12px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--blanco)}
.marca img{width:40px;height:44px;object-fit:contain}
.marca span{font-weight:900;font-size:24px}
.marca b{color:var(--cian);font-weight:900}
.marca i{font-family:"Caveat Brush",cursive;font-style:normal;font-weight:400;color:var(--lima);font-size:26px;margin-left:4px}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;font-weight:700;font-size:15px}
.nav a{color:var(--texto-suave);text-decoration:none;transition:color .2s}
.nav a:hover,.nav a[aria-current=page]{color:var(--blanco)}
.nav a[aria-current=page]{border-bottom:2px solid var(--violeta-claro);padding-bottom:2px}

/* ---------- botones y chips ---------- */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:var(--radius-pill);border:0;font-weight:800;font-size:17px;text-decoration:none;cursor:pointer;transition:transform .25s,box-shadow .25s,opacity .2s}
.boton:hover{transform:translateY(-2px);box-shadow:var(--brillo-cian)}
.boton:disabled,.boton[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:none}
.boton.cian{background:var(--cian);color:var(--noche)}
.boton.lima{background:var(--lima);color:var(--tinta)}
.boton.violeta{background:var(--violeta-claro);color:var(--noche)}
.boton.borde{background:transparent;color:var(--blanco);border:2px solid var(--violeta-claro)}
.boton.borde-cian{background:transparent;color:var(--blanco);border:1.5px solid var(--cian)}
.boton.borde-gris{background:transparent;color:var(--blanco);border:1.5px solid var(--texto-suave)}
.boton.peq{min-height:44px;padding:0 18px;font-size:15px}
.boton.nav-cta{min-height:42px;padding:0 18px;font-size:15px;color:var(--noche)}
.boton.nav-cta:hover{color:var(--noche)}
.chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--linea);border-radius:var(--radius-pill);padding:7px 14px;font-size:14px;font-weight:700;color:var(--blanco);text-decoration:none;background:transparent}
a.chip:hover{border-color:var(--cian);background:var(--noche-elevada);color:var(--blanco)}
.etiqueta{display:inline-block;align-self:flex-start;font-size:12px;font-weight:800;letter-spacing:.12em;padding:5px 12px;border-radius:var(--radius-pill);color:var(--noche)}
.etiqueta.lima{background:var(--lima);color:var(--tinta)} .etiqueta.ambar{background:var(--ambar);color:var(--tinta)} .etiqueta.violeta{background:var(--violeta);color:var(--blanco)} .etiqueta.cian{background:var(--cian);color:var(--noche)}
.antetitulo{font-size:13px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--cian)}
.antetitulo.lima{color:var(--lima)} .antetitulo.violeta{color:var(--violeta-claro)} .antetitulo.rojo{color:var(--rojo)} .antetitulo.ambar{color:var(--ambar)}
.rotulo{font-family:"Caveat Brush",cursive;font-size:56px;line-height:1}

/* ---------- secciones ---------- */
.seccion{padding:72px 0}
.seccion.elevada{background:var(--noche-elevada);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.cabeza{display:flex;flex-direction:column;gap:12px;max-width:780px;margin-bottom:32px}
.cabeza h2{font-size:clamp(32px,5vw,44px)}
.cabeza p{color:var(--texto-suave);font-size:17px}
.suave{color:var(--texto-suave)}
.cian{color:var(--cian)} .lima{color:var(--lima)} .violeta{color:var(--violeta-claro)} .rojo{color:var(--rojo)} .ambar{color:var(--ambar)}
.rejilla{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.rejilla.dos{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.rejilla.peq{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.fila{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---------- tarjetas ---------- */
.tarjeta{background:var(--noche-elevada);border:1px solid var(--linea);border-radius:var(--radius-md);padding:26px;display:flex;flex-direction:column;gap:12px}
.tarjeta h3{font-size:22px}
.tarjeta p{color:var(--texto-suave);font-size:16px}
.tarjeta.oscura{background:var(--noche)}
.eleva{transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.eleva:hover{transform:translateY(-6px);box-shadow:0 0 28px rgba(0,217,245,.3);border-color:var(--cian)}
.eleva.v:hover{box-shadow:0 0 28px rgba(134,92,255,.45);border-color:var(--violeta-claro)}
.icono{width:56px;height:56px;border-radius:var(--radius-sm);border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center}
.borde-cian{border-color:var(--cian)!important} .borde-violeta{border-color:var(--violeta)!important} .borde-lima{border-color:var(--lima)!important} .borde-rojo{border-color:var(--rojo)!important}
.brilla-cian{box-shadow:var(--brillo-cian)} .brilla-violeta{box-shadow:var(--brillo-violeta)} .brilla-lima{box-shadow:0 0 24px rgba(187,242,71,.25)}
.clave{border:1.5px solid var(--lima);border-radius:var(--radius-md);padding:22px 26px;box-shadow:0 0 24px rgba(187,242,71,.18)}
.clave p{color:var(--lima);font-weight:700;font-style:italic;font-size:18px}

/* ---------- portada ---------- */
.portada{display:flex;flex-wrap:wrap;align-items:center;gap:40px;padding:64px 0 48px}
.portada .texto{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:22px}
.portada h1{font-size:clamp(40px,7vw,64px);letter-spacing:-.01em}
.portada .bajada{font-size:clamp(17px,2.2vw,20px);color:var(--texto-suave);max-width:600px}
.portada .arte{flex:1 1 340px;min-width:0;position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:420px}
.halo{position:absolute;bottom:0;width:420px;max-width:100%;height:300px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,217,245,.28),rgba(8,15,33,0))}
.halo.violeta{background:radial-gradient(closest-side,rgba(134,92,255,.35),rgba(8,15,33,0))}
.anillo{position:absolute;bottom:8px;width:380px;max-width:90%;height:90px;border-radius:50%;border:3px solid var(--cian);animation:onda 3.2s ease-out infinite}
.anillo.dos{width:300px;height:70px;bottom:18px;border:2px solid var(--violeta);opacity:.7;animation:none}
.pixel{position:absolute;width:12px;height:12px;animation:parpadeo 2.6s ease-in-out infinite}
.lema{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:var(--noche-elevada)}
.lema .contenedor{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 40px;padding-top:22px;padding-bottom:22px;font-size:26px;font-weight:900}

/* ---------- formularios ---------- */
.campo{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:800}
.campo input,.campo select,.campo textarea{background:var(--noche);border:1.5px solid var(--texto-suave);border-radius:10px;color:var(--blanco);padding:13px 14px;font-size:16px;font-weight:400}
.campo textarea{resize:vertical}
.alerta{border-radius:10px;padding:12px 14px;font-size:15px;font-weight:700}
.alerta.error{background:rgba(255,92,122,.12);border:1.5px solid var(--rojo)}
.alerta.aviso{background:rgba(255,194,51,.10);border:1.5px solid var(--ambar);font-weight:400}
.alerta.ok{background:rgba(187,242,71,.10);border:1.5px solid var(--lima)}
.reglas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14px}
.reglas li{display:flex;align-items:center;gap:10px;color:var(--texto-suave)}
.reglas li::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;flex-shrink:0}
.reglas li.ok{color:var(--lima)} .reglas li.ok::before{background:var(--lima)}

/* ---------- pestañas y tarjetas interactivas ---------- */
.pestanas{display:flex;flex-wrap:wrap;gap:10px}
.pestana{min-height:48px;padding:10px 20px;border-radius:var(--radius-pill);border:1.5px solid var(--linea);background:var(--noche);color:var(--blanco);font-weight:800;font-size:15px;cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .25s;text-align:left}
.pestana:hover{transform:translateY(-2px)}
.pestana[aria-selected=true]{background:var(--cian);border-color:var(--cian);color:var(--noche)}
.pestanas.rojas .pestana{border-radius:12px;min-height:64px;background:var(--noche-elevada)}
.pestanas.rojas .pestana[aria-selected=true]{background:var(--rojo);border-color:var(--rojo)}
.giratoria{min-height:240px;padding:0;border:0;background:transparent;color:var(--blanco);cursor:pointer;text-align:left;transition:transform .3s var(--ease)}
.giratoria:hover{transform:translateY(-4px)}
.giratoria .cara{height:100%;min-height:240px;background:var(--noche-elevada);border:1.5px solid var(--linea);border-radius:var(--radius-md);padding:22px;display:flex;flex-direction:column;gap:12px}
.giratoria .cara.dorso{border-color:var(--lima);box-shadow:0 0 22px rgba(187,242,71,.22)}
.numero{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--ambar);color:var(--tinta);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;flex-shrink:0}
.casilla{width:100%;min-height:64px;display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:12px;border:1.5px solid var(--linea);background:var(--noche-elevada);color:var(--blanco);font-size:16px;font-weight:700;text-align:left;cursor:pointer;transition:border-color .25s}
.casilla .caja{width:30px;height:30px;flex-shrink:0;border-radius:var(--radius-sm);border:2px solid var(--lima);display:flex;align-items:center;justify-content:center;color:var(--noche)}
.casilla[aria-checked=true]{border-color:var(--lima)} .casilla[aria-checked=true] .caja{background:var(--lima);color:var(--tinta)}
.barra{height:14px;border-radius:var(--radius-pill);background:var(--noche-elevada);border:1px solid var(--linea);overflow:hidden}
.barra i{display:block;height:100%;background:var(--lima);border-radius:var(--radius-pill);transition:width .5s var(--ease)}
.norma{min-height:44px;padding:10px 16px;border-radius:var(--radius-pill);border:1.5px solid var(--linea);background:var(--noche);color:var(--blanco);font-size:15px;font-weight:700;cursor:pointer;text-align:left}
.norma[aria-pressed=true]{background:var(--violeta);border-color:var(--violeta-claro)}

/* ---------- pie ---------- */
.pie{border-top:1px solid var(--linea);background:var(--noche-elevada)}
.pie .contenedor{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-top:36px;padding-bottom:36px;font-size:15px}
.pie nav{display:flex;flex-wrap:wrap;gap:8px 18px}
.pie nav a{color:var(--texto-suave);text-decoration:none} .pie nav a:hover{color:var(--blanco)}

/* ---------- impresión (pacto) ---------- */
@media print{
  body{background:#fff;color:#000}
  body *{visibility:hidden}
  #pacto-hoja,#pacto-hoja *{visibility:visible}
  #pacto-hoja{position:absolute;left:0;top:0;width:100%;border:2px solid #000;box-shadow:none;background:#fff;color:#000}
  #pacto-hoja .no-imprimir{display:none}
}
