/* ==========================================================================
   CORPORACIÓN X — portada institucional
   ========================================================================== */

/* --------------------------------------------------- lienzo de la escena */
#escena{
  position:fixed; inset:0; z-index:0;
  width:100vw; height:100vh;
}

/* ------------------------------------------------------------ cargador */
#cargador{
  position:fixed; inset:0; z-index:200;
  background:var(--bg-deep);
  display:grid; place-items:center;
  transition:opacity .7s var(--ease-out), visibility .7s;
}
#cargador.is-out{ opacity:0; visibility:hidden; pointer-events:none; }
.cargador__caja{ width:min(420px, 76vw); text-align:left; }
.cargador__logo{
  display:block; width:min(300px, 62vw); height:auto; margin:0 auto 26px;
  filter:drop-shadow(0 0 26px rgba(41,235,244,.22));
}
.cargador__pista{
  height:2px; background:rgba(255,255,255,.08); position:relative; overflow:hidden;
}
#cargador-barra{
  position:absolute; inset:0; transform-origin:left center; transform:scaleX(0);
  background:linear-gradient(90deg, rgba(41,235,244,.35), var(--cyan));
  box-shadow:0 0 14px var(--cyan-glow);
  transition:transform .18s linear;
}
.cargador__pie{
  display:flex; justify-content:space-between; margin-top:12px;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.22em;
  color:var(--text-3);
}
#cargador-pct{ color:var(--cyan); }

/* ------------------------------------------------- velo de legibilidad
   La escena vive detrás del texto: este degradado apaga el lienzo bajo la
   columna de lectura y lo deja intacto en el lado del monumento. */
.scrim{
  position:fixed; inset:0; z-index:4; pointer-events:none;
  background:linear-gradient(100deg,
    rgba(6,11,20,.93) 0%,
    rgba(6,11,20,.86) 24%,
    rgba(6,11,20,.52) 44%,
    rgba(6,11,20,.12) 60%,
    rgba(6,11,20,0)   72%);
}
@media (max-width:1024px){
  .scrim{ background:linear-gradient(180deg, rgba(6,11,20,.35) 0%, rgba(6,11,20,.82) 45%, rgba(6,11,20,.9) 100%); }
}

/* Refuerzo tipográfico sobre el lienzo */
.seccion__titulo, .hero__titulo, .factor__rotulo, .fase__titulo, .msj__titulo{
  text-shadow:0 2px 30px rgba(4,8,16,.92);
}
.seccion__bajada, .hero__tesis, .factor__nota, .factor__cuerpo, .fase__texto{
  text-shadow:0 1px 16px rgba(4,8,16,.85);
}

/* ------------------------------------------------------------ HUD superior */
.hud{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  padding:20px var(--edge);
  pointer-events:none;
}
.hud > *{ pointer-events:auto; }
.hud::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(7,11,15,.94) 0%, rgba(7,11,15,.74) 46%, rgba(7,11,15,0) 100%);
}
.hud::before{                              /* velo bajo la barra: el contenido
                                              pasa por debajo sin ensuciarla */
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(4,7,14,.92) 0%, rgba(4,7,14,.72) 46%, rgba(4,7,14,0) 100%);
}

.marca{ display:flex; align-items:center; gap:12px; }
.marca__iso{
  width:auto; height:30px; flex:none;
  filter:drop-shadow(0 0 8px rgba(41,235,244,.30));
}
.marca__txt{ line-height:1.05; }
.marca__nombre{
  font-family:var(--font-head); font-size:14px; font-weight:600;
  letter-spacing:.28em; color:var(--text);
}
.marca__sub{
  font-family:var(--font-mono); font-size:8.5px; letter-spacing:.3em; color:var(--text-3);
}

#hud-nav{ display:flex; align-items:center; gap:2px; flex-wrap:nowrap; }
.hud__link{
  display:flex; align-items:center; gap:7px;
  padding:7px 9px; border-radius:var(--r-pill); white-space:nowrap;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.14em;
  color:var(--text-3);
  transition:color .28s, background .28s, letter-spacing .45s var(--ease-out);
}
.hud__dot{
  width:4px; height:4px; background:currentColor; transform:rotate(45deg);
  transition:box-shadow .3s, background .3s;
}
.hud__link:hover{ color:var(--text); background:rgba(41,235,244,.06); }
.hud__link.is-on{ color:var(--cyan); background:rgba(41,235,244,.09); }
.hud__link.is-on .hud__dot{ background:var(--cyan); box-shadow:0 0 8px var(--cyan-glow); }

.hud__acciones{ display:flex; align-items:center; gap:10px; }

/* Ambiente sonoro: control visible, con su etiqueta. Una barra de cuatro
   píxeles sin texto no la encuentra nadie. */
.audio{ position:relative; display:flex; align-items:center; gap:9px; }

#audio-btn{
  display:flex; align-items:center; gap:9px;
  padding:8px 14px;
  border:var(--rule) solid var(--line-soft);
  border-radius:var(--r-pill);
  background:rgba(255,255,255,.02);
  transition:border-color .35s, background .35s, color .35s;
}
#audio-btn:hover{ border-color:var(--line); background:rgba(41,235,244,.08); }
#audio-btn.is-on{ border-color:rgba(41,235,244,.5); background:rgba(41,235,244,.10); }

.audio__barras{ display:flex; align-items:flex-end; gap:2.5px; height:14px; }
#audio-btn i{
  display:block; width:2px; height:4px; background:var(--text-3);
  transition:background .3s;
}
#audio-btn.is-on i{ background:var(--cyan); animation:barra 1s ease-in-out infinite; }
#audio-btn.is-on i:nth-child(2){ animation-duration:.82s; }
#audio-btn.is-on i:nth-child(3){ animation-duration:1.14s; }
#audio-btn.is-on i:nth-child(4){ animation-duration:.94s; }

.audio__txt{
  font-family:var(--font-mono); font-size:9px; letter-spacing:.2em;
  color:var(--text-3); transition:color .35s;
}
#audio-btn:hover .audio__txt{ color:var(--text-2); }
#audio-btn.is-on .audio__txt{ color:var(--cyan-hi); }

/* Llamada de atención en la primera visita, una sola vez */
#audio-btn.es-llamada{ animation:audioLlamada 2.4s ease-in-out infinite; }
@keyframes audioLlamada{
  0%,100%{ box-shadow:0 0 0 0 rgba(41,235,244,.30); }
  60%{ box-shadow:0 0 0 9px rgba(41,235,244,0); }
}

.audio__pista{
  position:absolute; top:calc(100% + 9px); right:0;
  white-space:nowrap; padding:6px 11px;
  border:var(--rule) solid rgba(41,235,244,.30);
  border-radius:var(--r-pill);
  background:rgba(11,17,22,.94);
  font-family:var(--font-mono); font-size:9px; letter-spacing:.14em;
  color:var(--cyan-hi);
  opacity:0; transform:translateY(-5px); pointer-events:none;
  transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.audio__pista.es-visible{ opacity:1; transform:none; }

#audio-estado{ letter-spacing:.18em; }
body.con-audio #audio-estado{ color:var(--cyan); }
#audio-btn i{
  display:block; width:2px; height:5px; background:var(--text-2);
  transition:background .3s;
}
#audio-btn.is-on i{ background:var(--cyan); animation:barra 1s ease-in-out infinite; }
#audio-btn.is-on i:nth-child(2){ animation-duration:.82s; }
#audio-btn.is-on i:nth-child(3){ animation-duration:1.14s; }
#audio-btn.is-on i:nth-child(4){ animation-duration:.94s; }
@keyframes barra{ 0%,100%{ height:4px; } 50%{ height:15px; } }

.hud__cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 15px; border:var(--rule) solid rgba(41,235,244,.4);
  border-radius:var(--r-pill);
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.18em;
  color:var(--cyan-hi); background:rgba(41,235,244,.06);
  transition:background .28s, border-color .28s, transform .28s var(--ease-io);
}
.hud__cta:hover{ background:rgba(41,235,244,.16); border-color:var(--cyan); transform:translateY(-1px); }
.hud__cta .pip{
  width:5px; height:5px; border-radius:50%; background:var(--ok);
  box-shadow:0 0 8px rgba(46,230,168,.8);
  animation:latido 2.4s ease-in-out infinite;
}
@keyframes latido{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }

/* ------------------------------------------------- raíles instrumentales */
.rail{
  position:fixed; z-index:55; pointer-events:none;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.2em; color:var(--text-3);
}
.rail--izq{
  left:calc(var(--edge) * .55); top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.rail__pista{
  width:1px; height:150px; background:rgba(255,255,255,.10); position:relative;
}
#hud-progreso{
  position:absolute; inset:0; transform-origin:top center; transform:scaleY(0);
  background:linear-gradient(180deg, var(--cyan), rgba(41,235,244,.15));
  box-shadow:0 0 10px var(--cyan-glow);
}
.rail__acto{
  font-family:var(--font-head); font-size:15px; letter-spacing:.14em; color:var(--cyan);
}
.rail__rot{
  writing-mode:vertical-rl; text-orientation:mixed; letter-spacing:.34em;
}
.rail--der{
  right:calc(var(--edge) * .55); bottom:calc(var(--edge) * .8);
  display:flex; flex-direction:column; align-items:flex-end; gap:6px; text-align:right;
}
.rail--der b{ color:var(--cyan); font-weight:400; }
#hud-fx{ transition:color .6s; }
#hud-fx[data-tono="mal"]{ color:#FF8A7D; }
#hud-fx[data-tono="bien"]{ color:var(--cyan-hi); }

/* ================================================================ layout */
main{ position:relative; z-index:10; }

.seccion{
  position:relative;
  padding:clamp(118px,17vh,190px) var(--edge) clamp(80px,11vh,140px);
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:center;
  scroll-margin-top:80px;
}
.seccion:has(#pilares-grid), .seccion:has(#ruta-lista){ justify-content:flex-start; }

.seccion__cab{ margin-bottom:clamp(34px,6vh,66px); max-width:760px; }
.seccion__eyebrow{
  display:flex; align-items:center; gap:12px; margin-bottom:16px;
}
.seccion__titulo{
  font-size:clamp(30px,4.6vw,60px);
  font-weight:300;
  line-height:1.02;
  letter-spacing:-.01em;
  color:var(--text);
}
.seccion__titulo em{
  font-style:normal; color:var(--cyan);
  text-shadow:0 0 26px rgba(41,235,244,.35);
}
.seccion__bajada{
  margin-top:18px; max-width:64ch;
  font-size:clamp(15px,1.35vw,18px); color:var(--text-2); line-height:1.62;
}

/* ------------------------------------------------------------- portada */
.hero{
  min-height:100vh;
  display:grid;
  grid-template-rows:1fr auto;
  padding-top:clamp(120px,18vh,200px);
}
.hero__centro{ display:flex; flex-direction:column; justify-content:center; }
.hero__claim{
  display:flex; align-items:center; gap:14px; margin-bottom:22px;
}
.hero__titulo{
  font-size:clamp(40px,8.4vw,124px);
  font-weight:300;
  line-height:.92;
  letter-spacing:-.02em;
  margin-bottom:8px;
}
.hero__titulo .fuerte{
  font-weight:600; color:var(--cyan);
  text-shadow:0 0 44px rgba(41,235,244,.4);
}
.hero__sectores{
  margin-top:12px; max-width:62ch;
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.22em;
  line-height:2; color:var(--text-3);
}
.hero__sectores b{ color:var(--plata); font-weight:400; }
.hero__tesis{
  max-width:52ch; margin-top:26px;
  font-size:clamp(15px,1.5vw,19px); line-height:1.6; color:var(--text-2);
}
.hero__acciones{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }

.hero__pie{
  display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between;
  gap:26px; padding-top:26px; border-top:var(--rule) solid var(--line);
}
.hero__datos{ display:flex; flex-wrap:wrap; gap:clamp(20px,4vw,58px); }
.dato b{
  display:block; font-family:var(--font-head); font-size:clamp(19px,2.3vw,29px);
  font-weight:400; color:var(--text); line-height:1.1;
}
.dato span{
  font-family:var(--font-mono); font-size:9px; letter-spacing:.2em; color:var(--text-3);
}
.hero__scroll{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.24em; color:var(--text-3);
}
.hero__scroll i{
  display:block; width:1px; height:34px;
  background:linear-gradient(180deg, var(--cyan), transparent);
  animation:baja 2.2s ease-in-out infinite;
}
@keyframes baja{ 0%{ transform:scaleY(0); transform-origin:top; } 55%{ transform:scaleY(1); transform-origin:top; } 56%{ transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ---------------------------------------------------------------- tesis */
.tesis__grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(18px,2.4vw,34px);
}
.tesis__card{
  padding:26px 24px; border-left:var(--rule) solid var(--line);
  background:linear-gradient(180deg, rgba(41,235,244,.045), rgba(6,11,26,0) 72%);
}
.tesis__card h3{
  font-size:19px; font-weight:500; margin-bottom:10px; color:var(--text);
}
.tesis__card p{ font-size:14.5px; color:var(--text-2); line-height:1.6; margin:0; }

/* -------------------------------------------------- narrativa Factor X */
#factor{ display:block; padding-block:0; min-height:auto; }
.factor__wrap{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(24px,5vw,80px);
  padding:0 var(--edge);
}
.factor__fijo{
  position:sticky; top:0; height:100vh;
  display:flex; flex-direction:column; justify-content:center;
}
.factor__rotulo{
  font-size:clamp(34px,5.6vw,76px); font-weight:300; line-height:1;
  color:var(--text); margin-bottom:18px;
}
.factor__rotulo em{ font-style:normal; color:var(--cyan); }
.factor__nota{ max-width:38ch; color:var(--text-2); font-size:15px; line-height:1.62; }

#factor-track{ padding:14vh 0; display:flex; flex-direction:column; gap:12vh; }
.factor{
  max-width:56ch; opacity:.26; transform:translateY(16px);
  transition:opacity .6s var(--ease-out), transform .9s var(--ease-out);
}
.factor.is-focus{ opacity:1; transform:none; }
.factor__meta{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.factor__titulo{
  font-size:clamp(21px,2.5vw,33px); font-weight:400; line-height:1.16;
  color:var(--text); margin-bottom:14px;
}
.factor.is-focus .factor__titulo{ color:#fff; }
.factor__cuerpo{ color:var(--text-2); font-size:15.5px; line-height:1.66; margin:0; }

/* -------------------------------------------------------------- pilares */
#pilares-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:clamp(14px,1.6vw,22px);
}
@media (min-width:1180px){ #pilares-grid{ grid-template-columns:repeat(3,1fr); } }
.pilar{
  position:relative; overflow:hidden;
  padding:24px 22px 22px;
  background:linear-gradient(180deg, rgba(13,23,52,.55), rgba(8,14,34,.42));
  border:var(--rule) solid var(--line-soft);
  border-radius:var(--r-md);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  transition:transform .38s var(--ease-io), border-color .38s, box-shadow .38s, background .38s;
}
.pilar::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0;
  background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--acc) 22%, transparent), transparent 62%);
  transition:opacity .45s;
}
.pilar:hover, .pilar.is-hot{
  transform:translateY(-4px);
  border-color:color-mix(in srgb, var(--acc) 55%, transparent);
  box-shadow:0 24px 50px -28px color-mix(in srgb, var(--acc) 70%, transparent),
             inset 0 1px 0 rgba(255,255,255,.07);
}
.pilar:hover::before, .pilar.is-hot::before{ opacity:1; }

.pilar__cab{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.pilar__codigo{ font-size:10px; letter-spacing:.22em; color:var(--acc); }
.pilar__sello{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 9px; border-radius:var(--r-pill);
  border:var(--rule) solid var(--line);
  font-family:var(--font-mono); font-size:8px; letter-spacing:.2em; color:var(--text-3);
}
.pilar__sello svg{ color:var(--cyan); }
.pilar__nombre{
  font-size:26px; font-weight:500; letter-spacing:.04em; color:var(--text); margin-bottom:4px;
}
.pilar__dominio{ font-size:10px; letter-spacing:.18em; color:var(--acc); margin-bottom:14px; text-transform:uppercase; }
.pilar__resumen{ font-size:14.4px; color:var(--text-2); line-height:1.6; margin-bottom:16px; }
.pilar__marcas{
  list-style:none; margin:0 0 18px; padding:0; display:flex; flex-wrap:wrap; gap:6px;
}
.pilar__marcas li{
  padding:4px 10px; border-radius:var(--r-pill);
  border:var(--rule) solid var(--line-soft); background:rgba(255,255,255,.03);
  font-size:11.5px; color:var(--text-2); letter-spacing:.03em;
}
.pilar__metricas{
  display:flex; gap:22px; padding:14px 0; border-top:var(--rule) solid var(--line-soft);
}
.pilar__metricas b{
  display:block; font-family:var(--font-head); font-size:17px; font-weight:500; color:var(--text);
}
.pilar__metricas span{
  font-family:var(--font-mono); font-size:8.5px; letter-spacing:.16em; color:var(--text-3);
}
.pilar__enlace{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.16em;
  color:var(--acc); text-transform:uppercase;
  transition:gap .3s var(--ease-io), color .3s;
}
.pilar__enlace:hover{ gap:13px; }
.pilar__barra{
  position:absolute; left:0; right:0; bottom:0; height:2px;
  background:linear-gradient(90deg, var(--acc), transparent);
  transform:scaleX(.18); transform-origin:left;
  transition:transform .5s var(--ease-out);
}
.pilar:hover .pilar__barra, .pilar.is-hot .pilar__barra{ transform:scaleX(1); }

/* ------------------------------------------------------- hoja de ruta */
#ruta-lista{ display:flex; flex-direction:column; }
.fase{ display:grid; grid-template-columns:44px 1fr; gap:clamp(14px,2vw,30px); }
.fase__eje{ position:relative; display:flex; justify-content:center; }
.fase__eje::before{
  content:""; position:absolute; top:0; bottom:0; width:1px; background:var(--line);
}
.fase:last-child .fase__eje::before{ bottom:auto; height:26px; }
.fase__nodo{
  position:relative; z-index:2; margin-top:5px;
  width:11px; height:11px; transform:rotate(45deg);
  background:var(--bg); border:1.3px solid var(--cyan);
  box-shadow:0 0 12px rgba(41,235,244,.5);
}
.fase[data-estado="completada"] .fase__nodo{ background:var(--cyan); }
.fase[data-estado="en curso"] .fase__nodo{ animation:latido 2s ease-in-out infinite; background:var(--cyan); }
.fase[data-estado="horizonte"] .fase__nodo{ border-color:var(--slate-dim); box-shadow:none; }
.fase__cuerpo{ padding-bottom:clamp(38px,6vh,72px); }
.fase__cab{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:10px; }
.fase__rango{ font-size:10px; letter-spacing:.18em; color:var(--text-3); }
.fase__estado{
  font-size:8.5px; letter-spacing:.2em; padding:3px 9px; border-radius:var(--r-pill);
  border:var(--rule) solid var(--line); color:var(--text-3);
}
.fase[data-estado="en curso"] .fase__estado{ color:var(--ok); border-color:rgba(46,230,168,.35); }
.fase[data-estado="completada"] .fase__estado{ color:var(--cyan); border-color:rgba(41,235,244,.32); }
.fase__titulo{ font-size:clamp(22px,2.8vw,36px); font-weight:300; margin-bottom:12px; }
.fase__texto{ max-width:62ch; color:var(--text-2); font-size:15px; line-height:1.64; }
.fase__hitos{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.fase__hitos li{
  padding:5px 12px; border-radius:var(--r-pill);
  border:var(--rule) solid var(--line-soft); background:rgba(41,235,244,.035);
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; color:var(--text-2);
}

/* -------------------------------------------------------------- gobierno */
#gobierno-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:clamp(16px,2vw,28px);
}
.gob{
  padding:26px 22px; border:var(--rule) solid var(--line-soft); border-radius:var(--r-md);
  background:linear-gradient(180deg, rgba(41,235,244,.04), rgba(6,11,26,0) 70%);
  transition:border-color .35s, transform .35s var(--ease-io);
}
.gob:hover{ border-color:var(--line); transform:translateY(-3px); }
.gob__titulo{ font-size:19px; font-weight:500; margin:12px 0 10px; }
.gob__texto{ font-size:14.2px; color:var(--text-2); line-height:1.6; margin:0; }

/* -------------------------------------------------------------- contacto */
#publicos-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(16px,2vw,26px);
}
.publico{
  position:relative; padding:28px 24px 24px;
  border:var(--rule) solid var(--line-soft); border-radius:var(--r-md);
  background:var(--panel);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  display:flex; flex-direction:column; gap:12px;
  transition:border-color .35s, box-shadow .35s, transform .35s var(--ease-io);
}
.publico:hover{
  border-color:rgba(41,235,244,.4); transform:translateY(-3px);
  box-shadow:0 22px 46px -26px var(--cyan-glow);
}
.publico__codigo{
  position:absolute; top:20px; right:22px;
  font-size:26px; letter-spacing:.06em; color:rgba(41,235,244,.16);
}
.publico__titulo{ font-size:21px; font-weight:500; }
.publico__texto{ font-size:14.2px; color:var(--text-2); line-height:1.58; margin:0; flex:1; }
.publico__acciones{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.publico__bot{
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.14em;
  color:var(--text-3); border-bottom:var(--rule) solid transparent;
  transition:color .3s, border-color .3s;
}
.publico__bot:hover{ color:var(--cyan); border-color:var(--cyan-dim); }
.publico__correo{ font-size:10px; letter-spacing:.1em; color:var(--text-3); }

/* -------------------------------------------------- lanzador del asistente */
.lanzador{
  position:fixed; right:var(--edge); bottom:calc(var(--edge) * .9); z-index:70;
  display:flex; align-items:center; gap:12px;
  padding:11px 18px 11px 12px;
  border-radius:var(--r-pill);
  border:var(--rule) solid rgba(41,235,244,.34);
  background:rgba(8,16,28,.82);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:0 18px 44px -20px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform .32s var(--ease-io), border-color .32s, box-shadow .32s;
}
.lanzador:hover{
  transform:translateY(-3px);
  border-color:var(--cyan);
  box-shadow:0 22px 52px -20px var(--cyan-glow), inset 0 1px 0 rgba(255,255,255,.09);
}
.lanzador__orbe{
  position:relative; width:30px; height:30px; border-radius:50%;
  background:radial-gradient(circle at 38% 34%, #dffaff, #29ebf4 42%, #06364f 100%);
  box-shadow:0 0 16px rgba(41,235,244,.75);
}
.lanzador__orbe::after{
  content:""; position:absolute; inset:-6px; border-radius:50%;
  border:1px solid rgba(41,235,244,.32);
  animation:orbita 3.4s ease-in-out infinite;
}
@keyframes orbita{ 0%,100%{ transform:scale(1); opacity:.7; } 50%{ transform:scale(1.16); opacity:.2; } }
.lanzador__txt b{
  display:block; font-family:var(--font-head); font-size:12px; letter-spacing:.2em; color:var(--text);
}
.lanzador__txt span{
  font-family:var(--font-mono); font-size:8.5px; letter-spacing:.16em; color:var(--text-3);
}

/* ------------------------------------------------------------------ pie */
.pie{
  position:relative; z-index:10;
  padding:44px var(--edge) 34px;
  border-top:var(--rule) solid var(--line);
  background:linear-gradient(180deg, rgba(4,7,14,0), rgba(4,7,14,.9));
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px;
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.16em; color:var(--text-3);
}
.pie a:hover{ color:var(--cyan); }
.pie__marcas{ display:flex; flex-wrap:wrap; gap:16px; }

/* --------------------------------------------------------------- móvil */
@media (max-width: 1340px){
  #hud-nav{ display:none; }
}
@media (max-width: 1080px){
  .factor__wrap{ grid-template-columns:1fr; }
  .factor__fijo{ position:relative; height:auto; padding-top:16vh; }
  #factor-track{ padding-top:6vh; gap:9vh; }
  .factor{ opacity:1; transform:none; }
  .rail--izq{ display:none; }
}
@media (max-width: 760px){
  .marca__sub{ display:none; }
  .marca__nombre{ font-size:12px; letter-spacing:.2em; }
}
@media (max-width: 640px){
  .rail--der{ display:none; }
  .hud__cta span.hud__cta-txt{ display:none; }
  .lanzador__txt{ display:none; }
  .lanzador{ padding:10px; }
  .seccion{ min-height:auto; }
  .hero{ padding-top:120px; }
}


/* ==========================================================================
   Formulario de contacto directo (v3)
   Los mensajes llegan a la bandeja del panel, no al correo de nadie.
   ========================================================================== */
.contacto-directo{
  margin-top:clamp(30px,4vw,52px); padding-top:clamp(26px,3vw,40px);
  border-top:var(--rule) solid var(--line-soft);
}
.contacto-directo__titulo{
  font-family:var(--font-head); font-size:clamp(19px,2vw,25px); font-weight:400;
  color:var(--text); margin-bottom:6px;
}
.contacto-directo__nota{ font-size:14px; color:var(--text-3); margin-bottom:22px; max-width:56ch; }
.contacto-directo__fila{ display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.campo-x{ display:block; margin-bottom:16px; }
.campo-x > span{
  display:block; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.18em;
  color:var(--text-3); margin-bottom:7px; text-transform:uppercase;
}
.campo-x input, .campo-x textarea, .campo-x select{
  width:100%; background:rgba(255,255,255,.02); color:var(--text);
  border:var(--rule) solid var(--line-soft); border-radius:var(--r-sm);
  padding:11px 13px; font-family:inherit; font-size:14.5px; line-height:1.5;
}
.campo-x textarea{ resize:vertical; min-height:110px; }
.campo-x input:focus, .campo-x textarea:focus, .campo-x select:focus{
  outline:none; border-color:var(--cyan); background:rgba(41,235,244,.04);
}
.contacto-directo__pie{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:6px; }
.contacto-directo__estado{ font-size:11px; letter-spacing:.12em; }
.contacto-directo__estado[data-tono="bien"]{ color:var(--cyan); }
.contacto-directo__estado[data-tono="mal"]{ color:#FF8A7D; }
/* La trampa no se oculta con display:none: hay robots que se saltan lo que
   está oculto de la forma obvia. Se saca del lienzo. */
.trampa{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
