/* ============================================================================
   moiksys.com — hoja de estilos
   Todo el color vive en los bloques de tokens de arriba. El resto de la hoja usa
   var(--token); los únicos hex sueltos son paletas propias de cada demo, y van
   declaradas como tokens en la raíz de su demo.
   ========================================================================== */

@font-face{font-family:'Geist';font-weight:100 900;font-style:normal;font-display:swap;
  src:url('../fonts/geist-variable.woff2') format('woff2');}
@font-face{font-family:'Geist Mono';font-weight:100 900;font-style:normal;font-display:swap;
  src:url('../fonts/geist-mono-variable.woff2') format('woff2');}

/* ---------------------------------------------------------------------------
   TEMA OSCURO (por defecto sin JS). Es el oscuro que ya se derivó para el
   design system de moiksys: conserva la temperatura cálida del hueso.
   --------------------------------------------------------------------------- */
:root{
  --grad:linear-gradient(120deg,#6366F1 0%,#A855F7 50%,#F43F5E 100%);
  --grad-btn:linear-gradient(110deg,#6366F1 0%,#A855F7 50%,#F43F5E 100%);
  --grad-frio:linear-gradient(120deg,#38BDF8 0%,#6366F1 100%);

  --acento:#6366F1; --acento-claro:#A5B4FC; --acento-frio:#38BDF8; --acento-alt:#A855F7;

  --bg:#121211; --surface:#1E1D1B; --surface-2:#262420; --inset:#2E2C29;
  --faint:#9A988F; --muted:#AAA8A1; --text:#D6D4CD; --strong:#F4F3EF;
  --titulo-base:#6E6C66;
  --line:#2E2C29; --line-soft:#252320; --line-fuerte:#48453F;

  /* estado: el verde es el único acento de marca y solo significa estado */
  --ok:#6EE7B7; --ok-bg:rgba(16,185,129,.16); --ok-line:rgba(16,185,129,.34);
  --obra:#FBBF24; --obra-bg:rgba(245,158,11,.14); --obra-line:rgba(245,158,11,.34);

  /* orbes de la marca: los mismos en los dos temas */
  --orbe-1:linear-gradient(45deg,#F43F5E,#FB923C);
  --orbe-2:linear-gradient(45deg,#6366F1,#A855F7);
  --orbe-3:linear-gradient(45deg,#10B981,#2DD4BF);
  --orbe-4:linear-gradient(45deg,#38BDF8,#3B82F6);

  --vidrio:rgba(30,29,27,.62); --vidrio-borde:rgba(255,255,255,.09);
  --sombra:0 24px 60px -24px rgba(0,0,0,.7); --sombra-suave:0 10px 30px -14px rgba(0,0,0,.6);
  --estrella:rgba(244,243,239,.9);
  --sobre-tinta:#121211;               /* texto sobre un botón de tinta */

  --r:14px; --r-lg:1.5rem; --r-xl:1.75rem; --r-pill:999px;
  --env:1240px;
  --mono:'Geist Mono',ui-monospace,'Cascadia Code',Consolas,monospace;
  color-scheme:dark;
}

/* ---------------------------------------------------------------------------
   TEMA CLARO: moiksys.com tal cual (hueso, tinta, tarjetas casi blancas).
   --------------------------------------------------------------------------- */
:root[data-theme="light"]{
  --bg:#F7F7F5; --surface:#FCFCFB; --surface-2:#F3F2EF; --inset:#ECEBE7;
  --text:#2B2B2A; --strong:#111111; --muted:#565654; --faint:#666664;
  --titulo-base:#8A8883;
  --line:#E7E7E4; --line-soft:#EFEEEB; --line-fuerte:#CFCDC7;
  --acento-claro:#4338CA;
  --ok:#047857; --ok-bg:rgba(16,185,129,.14); --ok-line:rgba(16,185,129,.30);
  --obra:#8A5200; --obra-bg:rgba(245,158,11,.14); --obra-line:rgba(245,158,11,.36);
  --vidrio:rgba(252,252,251,.72); --vidrio-borde:rgba(17,17,17,.08);
  --sombra:0 30px 60px -30px rgba(60,48,24,.28); --sombra-suave:0 12px 30px -16px rgba(60,48,24,.22);
  --estrella:rgba(17,17,17,.55);
  --sobre-tinta:#FCFCFB;
  color-scheme:light;
}

/* bandas que siguen oscuras aunque el sitio esté en claro */
:root[data-theme="light"] .keep-dark{
  --bg:#121211; --surface:#1E1D1B; --surface-2:#262420; --inset:#2E2C29;
  --faint:#9A988F; --muted:#AAA8A1; --text:#D6D4CD; --strong:#F4F3EF;
  --titulo-base:#6E6C66; --line:#2E2C29; --line-soft:#252320; --line-fuerte:#48453F;
  --acento-claro:#A5B4FC; --ok:#6EE7B7; --obra:#FBBF24;
  --vidrio:rgba(30,29,27,.62); --vidrio-borde:rgba(255,255,255,.09);
  --estrella:rgba(244,243,239,.9); --sobre-tinta:#121211;
  color-scheme:dark;
  background:var(--bg); color:var(--text);
}

/* ============================ base ============================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-padding-top:88px;}
html,body{background:var(--bg);color:var(--text);overflow-x:clip;max-width:100%;}
body{font-family:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.6;
  letter-spacing:-.011em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  transition:background-color .5s ease,color .5s ease;}
a{color:inherit;text-decoration:none;}
img,svg,canvas{display:block;max-width:100%;}
img{height:auto;}
button,input,select{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:0;}
.env{max-width:var(--env);margin:0 auto;padding:0 32px;}
@media(max-width:640px){.env{padding:0 16px;}}
.sprite{position:absolute;width:0;height:0;overflow:hidden;}
.num{font-variant-numeric:tabular-nums;}

/* ============================ accesibilidad ============================ */
:focus-visible{outline:2px solid var(--acento-frio);outline-offset:3px;border-radius:6px;}
:root[data-theme="light"] :focus-visible{outline-color:var(--acento-claro);}
.keep-dark :focus-visible{outline-color:var(--acento-frio);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.saltar{position:fixed;left:12px;top:-64px;z-index:200;background:var(--strong);color:var(--bg);
  padding:11px 18px;border-radius:var(--r-pill);font-size:14px;font-weight:600;transition:top .2s;}
.saltar:focus{top:12px;}

/* ============================ tipografía ============================ */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--acento-claro);}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6;}
.sec-head{max-width:880px;margin:0 auto 64px;text-align:center;}
.sec-head h2{font-size:clamp(34px,5.2vw,64px);font-weight:600;letter-spacing:-.045em;line-height:1.04;
  color:var(--titulo-base);margin-top:18px;text-wrap:balance;}
.sec-head h2 .em{color:var(--strong);}
.sec-head p{font-size:clamp(16px,1.6vw,19px);color:var(--muted);margin:20px auto 0;max-width:54ch;line-height:1.55;}
.grad-texto{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ============================ botones ============================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;
  padding:12px 24px;border-radius:var(--r-pill);font-size:15px;font-weight:500;letter-spacing:-.01em;
  white-space:nowrap;transition:transform .25s cubic-bezier(.2,.7,.3,1),background-color .25s,border-color .25s,box-shadow .25s,opacity .25s;}
.btn svg{width:17px;height:17px;flex:0 0 auto;}
.btn:hover{transform:translateY(-2px);}
.btn-primario{background:var(--strong);color:var(--sobre-tinta);box-shadow:var(--sombra-suave);}
.btn-primario:hover{box-shadow:0 18px 40px -16px rgba(99,102,241,.55);}
.btn-fantasma{border:1px solid var(--line-fuerte);color:var(--strong);background:transparent;}
.btn-fantasma:hover{background:var(--surface-2);}
.btn-sm{min-height:40px;padding:8px 18px;font-size:14px;}
.btn-flecha svg{transition:transform .25s;}
.btn-flecha:hover svg{transform:translate(2px,-2px);}

/* píldora de estado: el punto verde es estado, no decoración */
.estado{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--r-pill);
  font-size:12.5px;font-weight:600;letter-spacing:.01em;color:var(--ok);background:var(--ok-bg);
  border:1px solid var(--ok-line);white-space:nowrap;}
.estado .pulso{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulso 2.2s ease-in-out infinite;}
.estado.obra{color:var(--obra);background:var(--obra-bg);border-color:var(--obra-line);}
@keyframes pulso{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.35;transform:scale(.75);}}

/* ============================ nav ============================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;padding:14px 20px;pointer-events:none;}
.nav-barra{pointer-events:auto;max-width:var(--env);margin:0 auto;height:60px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:0 10px 0 18px;border-radius:var(--r-pill);
  border:1px solid transparent;transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease,max-width .6s cubic-bezier(.4,0,.2,1);}
:root[data-theme="light"] .nav.sobre-oscuro{
  --strong:#F4F3EF; --muted:#AAA8A1; --surface-2:#262420; --sobre-tinta:#121211;
  --vidrio:rgba(30,29,27,.62); --vidrio-borde:rgba(255,255,255,.09);}
.nav.scrolled .nav-barra{max-width:1060px;background:var(--vidrio);border-color:var(--vidrio-borde);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);box-shadow:var(--sombra-suave);}
.marca{display:inline-flex;align-items:center;gap:9px;color:var(--strong);}
.marca svg{width:30px;height:30px;}
.marca-texto{font-size:21px;font-weight:800;letter-spacing:-.06em;line-height:1;padding-bottom:2px;}
.nav-enlaces{display:flex;align-items:center;gap:2px;}
.nav-enlaces a{font-size:14px;font-weight:500;color:var(--muted);padding:10px 14px;border-radius:var(--r-pill);
  transition:color .2s,background-color .2s;}
.nav-enlaces a:hover,.nav-enlaces a[aria-current="true"]{color:var(--strong);background:var(--surface-2);}
.nav-acciones{display:flex;align-items:center;gap:8px;}
.icono-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--muted);
  transition:color .2s,background-color .2s,transform .3s;}
.icono-btn:hover{color:var(--strong);background:var(--surface-2);}
.icono-btn svg{width:19px;height:19px;grid-area:1/1;}
/* el icono dice en qué tema ESTÁS, no a cuál vas */
.tema-btn .ico-sol{opacity:0;transform:rotate(-90deg) scale(.5);transition:opacity .35s,transform .45s;}
.tema-btn .ico-luna{opacity:1;transform:none;transition:opacity .35s,transform .45s;}
:root[data-theme="light"] .tema-btn .ico-sol{opacity:1;transform:none;}
:root[data-theme="light"] .tema-btn .ico-luna{opacity:0;transform:rotate(90deg) scale(.5);}
.menu-btn{display:none;}
.menu-btn .l1,.menu-btn .l2{transition:transform .35s,opacity .2s;transform-origin:center;}
.menu-btn[aria-expanded="true"] .l1{transform:translateY(3px) rotate(45deg);}
.menu-btn[aria-expanded="true"] .l2{transform:translateY(-3px) rotate(-45deg);}
.nav-progreso{position:absolute;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);
  background:var(--grad);display:none;}
@media(max-width:900px){
  .nav{padding:10px 12px;}
  .nav-enlaces,.nav-acciones .btn{display:none;}
  .menu-btn{display:grid;}
  .nav-progreso{display:block;}
  .nav-barra{height:56px;}
}

/* menú móvil: hoja a pantalla completa */
.menu-movil{position:fixed;inset:0;z-index:70;background:var(--bg);padding:96px 24px 32px;display:flex;flex-direction:column;
  gap:6px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .35s,transform .35s,visibility 0s .35s;}
.menu-movil.abierto{opacity:1;visibility:visible;transform:none;transition:opacity .35s,transform .35s;}
.menu-movil a:not(.btn){font-size:30px;font-weight:600;letter-spacing:-.04em;color:var(--strong);padding:10px 0;
  border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;}
.menu-movil a small{font-family:var(--mono);font-size:12px;color:var(--faint);font-weight:400;letter-spacing:0;}
.menu-movil .btn{margin-top:auto;}

/* ============================ riel de constelación ============================ */
.riel{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:60;display:none;}
@media(min-width:1180px){.riel{display:block;}}
.riel ol{list-style:none;position:relative;display:flex;flex-direction:column;gap:30px;padding:6px 0;}
.riel-pista,.riel-lleno{position:absolute;left:50%;top:10px;bottom:10px;width:1px;transform:translateX(-50%);}
.riel-pista{background:var(--line-fuerte);}
.riel-lleno{background:var(--grad);transform-origin:50% 0;transform:translateX(-50%) scaleY(0);bottom:auto;height:calc(100% - 20px);}
.riel a{position:relative;display:grid;place-items:center;width:22px;height:22px;}
.riel-punto{width:9px;height:9px;border-radius:50%;background:var(--bg);border:1.5px solid var(--line-fuerte);
  transition:transform .35s cubic-bezier(.2,.7,.3,1),background-color .35s,border-color .35s,box-shadow .35s;}
.riel a.visto .riel-punto{border-color:var(--acento-claro);}
.riel a[aria-current="true"] .riel-punto{background:var(--strong);border-color:var(--strong);transform:scale(1.35);
  box-shadow:0 0 0 5px rgba(99,102,241,.18),0 0 18px 2px rgba(168,85,247,.45);}
.riel-etiqueta{position:absolute;right:30px;top:50%;transform:translate(6px,-50%);white-space:nowrap;font-size:12px;
  font-weight:500;color:var(--strong);background:var(--vidrio);border:1px solid var(--vidrio-borde);padding:5px 11px;
  border-radius:var(--r-pill);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;
  transition:opacity .25s,transform .25s;}
.riel a:hover .riel-etiqueta,.riel a:focus-visible .riel-etiqueta{opacity:1;transform:translate(0,-50%);}
.riel ol.sub{gap:12px;margin:-18px 0;padding:0;}
.riel ol.sub a{width:22px;height:14px;}
.riel ol.sub .riel-punto{width:5px;height:5px;}

/* ============================ hero ============================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:120px 0 90px;overflow:clip;}
.hero-cielo{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero-cielo canvas{width:100%;height:100%;}
.hero-bruma{position:absolute;border-radius:50%;filter:blur(90px);opacity:.22;pointer-events:none;z-index:0;}
.hero-bruma.b1{width:520px;height:520px;background:var(--orbe-2);right:-120px;top:-80px;}
.hero-bruma.b2{width:420px;height:420px;background:var(--orbe-4);left:-160px;bottom:-120px;opacity:.14;}
:root[data-theme="light"] .hero-bruma{opacity:.16;}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(32px,5vw,80px);align-items:center;}
.hero h1{font-size:clamp(44px,5.6vw,82px);line-height:1;letter-spacing:-.055em;font-weight:600;color:var(--strong);
  margin:22px 0 26px;text-wrap:balance;}
.hero-sub{font-size:clamp(17px,1.5vw,20px);color:var(--muted);max-width:46ch;line-height:1.55;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px;}
.hero-pie{display:flex;align-items:center;gap:18px;margin-top:40px;flex-wrap:wrap;}
.hero-pie small{font-size:13px;color:var(--faint);}
.bajar{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:1;display:flex;flex-direction:column;
  align-items:center;gap:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);}
.bajar i{width:1px;height:42px;background:linear-gradient(var(--faint),transparent);position:relative;overflow:hidden;}
.bajar i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--strong);animation:caer 2.2s cubic-bezier(.6,0,.3,1) infinite;}
@keyframes caer{to{top:110%;}}

/* el hexágono vivo: los orbes se ven a través de la M y la S perforadas */
.hex-escena{position:relative;aspect-ratio:1;width:min(100%,560px);justify-self:center;perspective:1200px;}
.hex{position:absolute;inset:9%;transform-style:preserve-3d;will-change:transform;}
.hex-halo{position:absolute;inset:-6%;border-radius:50%;background:radial-gradient(closest-side,rgba(99,102,241,.32),rgba(168,85,247,.12) 55%,transparent 72%);
  filter:blur(10px);animation:halo 9s ease-in-out infinite alternate;}
:root[data-theme="light"] .hex-halo{background:radial-gradient(closest-side,rgba(99,102,241,.20),rgba(244,63,94,.08) 55%,transparent 72%);}
@keyframes halo{from{transform:scale(.94);opacity:.8;}to{transform:scale(1.06);opacity:1;}}
.hex-orbes{position:absolute;inset:0;clip-path:polygon(50.76% 1.36%,93.26% 25.78%,93.26% 74.47%,50.66% 98.82%,8.14% 74.23%,8.15% 25.94%);
  background:var(--surface-2);overflow:hidden;}
.hex-orbe{position:absolute;border-radius:50%;opacity:.95;will-change:transform;animation-timing-function:ease-in-out;
  animation-iteration-count:infinite;animation-direction:alternate;}
.hex-orbe.o1{width:62%;height:62%;left:-8%;top:8%;background:radial-gradient(circle at 40% 40%,#FB923C,#F43F5E 45%,transparent 70%);animation-name:orbe-a;animation-duration:9s;}
.hex-orbe.o2{width:78%;height:78%;left:22%;top:-6%;background:radial-gradient(circle at 50% 50%,#A855F7,#6366F1 45%,transparent 70%);animation-name:orbe-b;animation-duration:11s;}
.hex-orbe.o3{width:58%;height:58%;left:46%;top:46%;background:radial-gradient(circle at 50% 50%,#2DD4BF,#10B981 45%,transparent 70%);animation-name:orbe-c;animation-duration:10s;}
.hex-orbe.o4{width:56%;height:56%;left:8%;top:52%;background:radial-gradient(circle at 50% 50%,#38BDF8,#3B82F6 45%,transparent 70%);animation-name:orbe-d;animation-duration:12s;}
@keyframes orbe-a{0%{transform:translate(0,0) scale(1);}50%{transform:translate(22%,14%) scale(1.12);}100%{transform:translate(8%,40%) scale(.95);}}
@keyframes orbe-b{0%{transform:translate(0,0) scale(1);}50%{transform:translate(-24%,20%) scale(.92);}100%{transform:translate(-8%,34%) scale(1.1);}}
@keyframes orbe-c{0%{transform:translate(0,0) scale(1);}50%{transform:translate(-30%,-26%) scale(1.15);}100%{transform:translate(-50%,-6%) scale(.9);}}
@keyframes orbe-d{0%{transform:translate(0,0) scale(1);}50%{transform:translate(34%,-30%) scale(1.08);}100%{transform:translate(60%,-50%) scale(1);}}
.hex-tinta{position:absolute;inset:0;width:100%;height:100%;color:var(--strong);
  filter:drop-shadow(0 30px 50px rgba(0,0,0,.35));transition:color .5s ease;}
:root[data-theme="light"] .hex-tinta{filter:drop-shadow(0 30px 40px rgba(60,48,24,.22));}
.hex-brillo{position:absolute;inset:0;clip-path:polygon(50.76% 1.36%,93.26% 25.78%,93.26% 74.47%,50.66% 98.82%,8.14% 74.23%,8.15% 25.94%);
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.16) 48%,transparent 60%);background-size:250% 100%;
  animation:brillo 7s ease-in-out infinite;mix-blend-mode:overlay;pointer-events:none;}
@keyframes brillo{0%,30%{background-position:120% 0;}70%,100%{background-position:-30% 0;}}
/* satélites: los proyectos orbitando el isotipo */
.satelites{position:absolute;inset:0;pointer-events:none;}
.satelites svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.satelites line{stroke:var(--line-fuerte);stroke-width:.25;stroke-dasharray:1 1.2;vector-effect:non-scaling-stroke;}
.satelite{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:inline-flex;align-items:center;gap:7px;
  font-size:12px;font-weight:500;color:var(--strong);background:var(--vidrio);border:1px solid var(--vidrio-borde);
  padding:6px 12px 6px 8px;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  box-shadow:var(--sombra-suave);white-space:nowrap;transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s;}
.satelite:hover{transform:translate(-50%,-50%) scale(1.06);border-color:var(--line-fuerte);}
.satelite i{width:7px;height:7px;border-radius:50%;background:var(--ac,var(--acento-claro));box-shadow:0 0 10px 1px var(--ac,var(--acento));}
@media(max-width:900px){
  .hero{padding:104px 0 72px;min-height:auto;}
  .hero-grid{grid-template-columns:minmax(0,1fr);}
  .hero-bruma.b1{right:-300px;}
  .hex-escena{width:min(78vw,380px);order:-1;margin-bottom:-8px;}
  .satelites{display:none;}
  .bajar{display:none;}
}

/* ============================ marquesina de marcas ============================ */
.marcas{padding:40px 0 30px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.marcas-titulo{text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--faint);margin-bottom:26px;}
.cinta{overflow:hidden;padding:10px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);}
.cinta-pista{display:flex;width:max-content;animation:cinta 48s linear infinite;}
.cinta.inversa .cinta-pista{animation-direction:reverse;animation-duration:56s;}
.cinta:hover .cinta-pista{animation-play-state:paused;}
.cinta-grupo{display:flex;align-items:center;gap:52px;padding-right:52px;}
@keyframes cinta{to{transform:translateX(-50%);}}
.logo-marca{display:inline-flex;align-items:center;gap:11px;font-size:16px;font-weight:600;letter-spacing:-.02em;
  color:var(--faint);transition:color .3s;}
.logo-marca svg{width:24px;height:24px;fill:currentColor;transition:fill .3s,transform .3s;}
.logo-marca:hover{color:var(--strong);}
.logo-marca:hover svg{fill:var(--c);transform:scale(1.1);}
/* marcas cuyo color oficial es negro: en oscuro se quedan en tinta */
.logo-marca.tinta:hover svg{fill:var(--strong);}

/* ============================ secciones ============================ */
.seccion{position:relative;padding:150px 0;}
@media(max-width:640px){.seccion{padding:100px 0;}}

/* ============================ servicios ============================ */
.servicios-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;}
.servicio{grid-column:span 6;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;
  gap:28px;min-height:360px;padding:30px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);
  transition:transform .4s cubic-bezier(.2,.7,.3,1),border-color .3s,box-shadow .4s;}
.servicio:hover{transform:translateY(-4px);border-color:var(--line-fuerte);box-shadow:var(--sombra);}
.servicio:nth-child(1),.servicio:nth-child(4){grid-column:span 7;}
.servicio:nth-child(2),.servicio:nth-child(3){grid-column:span 5;}
.servicio-brillo{position:absolute;inset:0;opacity:.5;pointer-events:none;transition:opacity .4s;background:var(--g);}
.servicio:hover .servicio-brillo{opacity:.85;}
.servicio-vis{position:relative;height:172px;border-radius:var(--r);background:var(--inset);border:1px solid var(--line-soft);overflow:hidden;}
.servicio h3{position:relative;font-size:24px;font-weight:600;letter-spacing:-.03em;color:var(--strong);margin-bottom:8px;}
.servicio p{position:relative;font-size:15px;color:var(--muted);max-width:44ch;}
.servicio .remate{display:block;margin-top:14px;font-weight:600;color:var(--strong);font-size:14.5px;}
.servicio .ver{position:relative;display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:13.5px;font-weight:500;color:var(--acento-claro);}
.servicio .ver svg{width:14px;height:14px;transition:transform .25s;}
.servicio .ver:hover svg{transform:translateX(3px);}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:28px;}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--text);padding:9px 16px;
  border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);}
.chip svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:900px){.servicio,.servicio:nth-child(n){grid-column:span 12;min-height:0;}}

/* mini-visuales de servicios */
.vis-chat{display:flex;flex-direction:column;gap:6px;padding:14px 16px;justify-content:flex-end;height:100%;}
.vis-burbuja{max-width:78%;font-size:12.5px;line-height:1.35;padding:7px 11px;border-radius:14px;background:var(--surface-2);color:var(--text);
  opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s;}
.vis-burbuja.yo{align-self:flex-end;background:var(--strong);color:var(--sobre-tinta);border-bottom-right-radius:4px;}
.vis-burbuja.ia{border-bottom-left-radius:4px;}
.vis-burbuja.mostrar{opacity:1;transform:none;}
.vis-burbuja .puntos i{display:inline-block;width:5px;height:5px;margin:0 1.5px;border-radius:50%;background:currentColor;animation:puntos 1s infinite;}
.vis-burbuja .puntos i:nth-child(2){animation-delay:.15s;}.vis-burbuja .puntos i:nth-child(3){animation-delay:.3s;}
@keyframes puntos{0%,100%{opacity:.25;transform:translateY(0);}50%{opacity:1;transform:translateY(-2px);}}
.vis-flujo svg{width:100%;height:100%;}
.vis-flujo .nodo rect{fill:var(--surface);stroke:var(--line-fuerte);}
.vis-flujo .nodo text{fill:var(--text);font-size:9.5px;font-family:var(--mono);}
.vis-flujo .cable{fill:none;stroke:var(--line-fuerte);stroke-width:1.2;}
.vis-flujo .viaje{fill:none;stroke:url(#grad-cable);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:14 200;animation:viaje 2.6s linear infinite;}
@keyframes viaje{from{stroke-dashoffset:214;}to{stroke-dashoffset:0;}}
.vis-web{padding:14px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr 1fr;gap:8px;height:100%;}
.vis-web span{border-radius:8px;background:var(--surface-2);transform-origin:left;}
.vis-web span:first-child{grid-column:1/-1;height:12px;background:var(--line-fuerte);width:40%;}
.vis-web span:nth-child(2){grid-column:1/-1;background:linear-gradient(120deg,rgba(99,102,241,.35),rgba(244,63,94,.25));}
.vis-web span.anim{animation:armar 5s cubic-bezier(.2,.7,.3,1) infinite;}
.vis-web span:nth-child(2).anim{animation-delay:.25s;}.vis-web span:nth-child(3).anim{animation-delay:.5s;}.vis-web span:nth-child(4).anim{animation-delay:.75s;}
@keyframes armar{0%{transform:scaleX(0);opacity:0;}18%,82%{transform:scaleX(1);opacity:1;}100%{transform:scaleX(1);opacity:0;}}
.vis-app{padding:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;height:100%;}
.vis-col{display:flex;flex-direction:column;gap:6px;background:var(--surface-2);border-radius:10px;padding:8px;}
.vis-col b{font-size:9.5px;font-family:var(--mono);color:var(--faint);font-weight:500;text-transform:uppercase;letter-spacing:.08em;}
.vis-tarjeta{height:18px;border-radius:5px;background:var(--surface);border:1px solid var(--line);}
.vis-tarjeta.mueve{background:var(--acento);border-color:transparent;opacity:.85;}

/* ============================ proyectos ============================ */
.indice{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-20px 0 90px;}
.indice a{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:var(--r-pill);border:1px solid var(--line);
  background:var(--surface);font-size:14px;font-weight:500;color:var(--text);transition:border-color .25s,transform .25s,color .25s;}
.indice a:hover{border-color:var(--line-fuerte);color:var(--strong);transform:translateY(-2px);}
.indice a b{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--faint);}
.indice a span.n{font-family:var(--mono);font-size:11px;color:var(--faint);padding:2px 7px;border-radius:var(--r-pill);background:var(--inset);}

.capitulo{position:relative;padding-top:40px;margin-bottom:120px;}
.capitulo:last-child{margin-bottom:0;}
.capitulo-cab{position:relative;display:grid;grid-template-columns:auto 1fr;gap:10px 28px;align-items:end;
  padding-bottom:26px;margin-bottom:64px;border-bottom:1px solid var(--line);}
.capitulo-num{font-size:clamp(84px,13vw,176px);line-height:.8;font-weight:700;letter-spacing:-.07em;color:transparent;
  -webkit-text-stroke:1.2px var(--line-fuerte);grid-row:span 2;user-select:none;}
.capitulo-cab h3{font-size:clamp(28px,3.4vw,44px);font-weight:600;letter-spacing:-.04em;line-height:1.05;color:var(--strong);}
.capitulo-cab p{color:var(--muted);max-width:52ch;font-size:16px;}
@media(max-width:640px){.capitulo-cab{grid-template-columns:1fr;}.capitulo-num{grid-row:auto;font-size:72px;}}

.proyecto{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:center;margin-bottom:130px;}
.proyecto:last-child{margin-bottom:0;}
.proyecto.invertido{grid-template-columns:minmax(0,7fr) minmax(0,5fr);}
.proyecto.invertido .proyecto-info{order:2;}
@media(max-width:980px){.proyecto,.proyecto.invertido{grid-template-columns:minmax(0,1fr);gap:34px;margin-bottom:100px;}.proyecto.invertido .proyecto-info{order:0;}}
.proyecto-info,.proyecto-demo{min-width:0;}
.proyecto-marca{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.proyecto-icono{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--sombra-suave);color:var(--strong);flex:0 0 auto;overflow:hidden;}
.proyecto-icono svg{width:30px;height:30px;}
.proyecto-icono img{width:100%;height:100%;object-fit:cover;}
.proyecto-tipo{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}
.proyecto h4{font-size:clamp(30px,3.2vw,42px);font-weight:600;letter-spacing:-.045em;line-height:1.02;color:var(--strong);margin:4px 0 0;}
.proyecto-desc{font-size:17px;color:var(--muted);margin:18px 0 22px;max-width:48ch;line-height:1.6;}
.proyecto-lista{list-style:none;display:flex;flex-direction:column;gap:11px;margin-bottom:24px;}
.proyecto-lista li{display:flex;gap:11px;font-size:15px;color:var(--text);line-height:1.45;}
.proyecto-lista svg{width:18px;height:18px;flex:0 0 auto;margin-top:2px;color:var(--acento-claro);}
.pila{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px;}
.pila span{font-family:var(--mono);font-size:12px;color:var(--muted);padding:4px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line-soft);}
.proyecto-ctas{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.nota{font-size:13px;color:var(--faint);margin-top:16px;max-width:52ch;line-height:1.5;}

/* ventana: el marco común de todas las demos */
.ventana{--ac:var(--acento);position:relative;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--sombra);overflow:hidden;transform-origin:50% 100%;}
.ventana-barra{display:flex;align-items:center;gap:12px;height:48px;padding:0 12px 0 16px;background:var(--surface-2);border-bottom:1px solid var(--line);}
.ventana-puntos{display:flex;gap:6px;flex:0 0 auto;}
.ventana-puntos i{width:10px;height:10px;border-radius:50%;background:var(--line-fuerte);}
.ventana-titulo{flex:1;min-width:0;font-family:var(--mono);font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;}
.ventana-pestanas{display:flex;gap:2px;padding:3px;border-radius:var(--r-pill);background:var(--inset);flex:0 0 auto;}
.ventana-pestanas button{font-size:12px;font-weight:500;color:var(--muted);padding:5px 12px;border-radius:var(--r-pill);min-height:28px;transition:color .2s,background-color .2s;}
.ventana-pestanas button[aria-selected="true"]{background:var(--surface);color:var(--strong);box-shadow:0 1px 3px rgba(0,0,0,.15);}
.ventana-cuerpo{position:relative;}
.ventana-panel[hidden]{display:none;}
.captura{position:relative;background:var(--inset);}
.captura img{width:100%;height:auto;}
.captura figcaption{position:absolute;left:12px;bottom:12px;font-size:12px;color:#fff;background:rgba(0,0,0,.55);padding:5px 11px;border-radius:var(--r-pill);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.demo-etiqueta{position:absolute;right:12px;top:12px;z-index:3;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--faint);background:var(--vidrio);border:1px solid var(--vidrio-borde);padding:4px 9px;border-radius:var(--r-pill);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;}
@media(max-width:560px){.ventana-puntos{display:none;}.ventana-titulo{text-align:left;}.ventana-barra{padding:0 8px 0 12px;}}

/* ---------- CassiopeIA Chat ---------- */
.cas{--cas-ia:#6366F1;--cas-humano:#F59E0B;display:grid;grid-template-columns:230px 1fr;height:470px;font-size:13.5px;}
.cas-lateral{border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;background:var(--surface);}
.cas-espacio{display:flex;gap:4px;padding:10px;border-bottom:1px solid var(--line);}
.cas-espacio button{flex:1;font-size:11.5px;font-weight:600;padding:7px 6px;border-radius:9px;color:var(--muted);background:var(--inset);min-height:32px;}
.cas-espacio button[aria-pressed="true"]{background:var(--strong);color:var(--sobre-tinta);}
.cas-lista{list-style:none;overflow-y:auto;overflow-x:hidden;flex:1;}
.cas-lista button{width:100%;text-align:left;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 12px;border-bottom:1px solid var(--line-soft);
  transition:background-color .2s;}
.cas-lista button[aria-current="true"]{background:var(--surface-2);}
.cas-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:var(--av,#6366F1);}
.cas-lista .nombre{display:flex;justify-content:space-between;gap:6px;font-weight:600;color:var(--strong);font-size:13px;}
.cas-lista .ultimo{display:block;color:var(--faint);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cas-etapa{display:inline-block;margin-top:5px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);background:var(--inset);color:var(--muted);}
.cas-etapa[data-etapa="engaged"]{background:rgba(56,189,248,.16);color:var(--acento-frio);}
.cas-etapa[data-etapa="qualified"]{background:rgba(168,85,247,.16);color:var(--acento-claro);}
.cas-etapa[data-etapa="customer"]{background:var(--ok-bg);color:var(--ok);}
.cas-hilo{display:flex;flex-direction:column;min-width:0;background:var(--bg);}
.cas-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface);}
.cas-cab b{color:var(--strong);font-size:14px;}
.cas-cab small{display:block;color:var(--faint);font-size:11.5px;}
.cas-control{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;padding:7px 12px;border-radius:var(--r-pill);
  border:1px solid var(--line-fuerte);color:var(--strong);min-height:34px;transition:background-color .25s,border-color .25s;}
.cas-control i{width:8px;height:8px;border-radius:50%;background:var(--cas-ia);box-shadow:0 0 8px var(--cas-ia);}
.cas-control[aria-pressed="true"] i{background:var(--cas-humano);box-shadow:0 0 8px var(--cas-humano);}
.cas-mensajes{flex:1;overflow:auto;padding:16px 14px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth;}
.cas-msg{max-width:82%;padding:9px 12px;border-radius:14px;line-height:1.45;background:var(--surface-2);color:var(--text);animation:msg .35s cubic-bezier(.2,.7,.3,1);}
.cas-msg.cliente{align-self:flex-start;border-bottom-left-radius:4px;}
.cas-msg.ia,.cas-msg.humano{align-self:flex-end;border-bottom-right-radius:4px;color:#fff;}
.cas-msg.ia{background:var(--cas-ia);}
.cas-msg.humano{background:#B45309;}
.cas-msg small{display:block;font-size:10.5px;opacity:.75;margin-top:3px;font-family:var(--mono);}
.cas-evento{align-self:center;font-family:var(--mono);font-size:10.5px;color:var(--faint);padding:3px 10px;border:1px dashed var(--line-fuerte);border-radius:var(--r-pill);animation:msg .35s;}
@keyframes msg{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.cas-pie{border-top:1px solid var(--line);padding:10px;background:var(--surface);display:flex;flex-direction:column;gap:8px;}
.cas-sugerencias{display:flex;gap:6px;flex-wrap:wrap;}
.cas-sugerencias button{font-size:11.5px;padding:6px 10px;border-radius:var(--r-pill);background:var(--inset);color:var(--text);border:1px solid var(--line);min-height:30px;}
.cas-sugerencias button:hover{border-color:var(--line-fuerte);}
.cas-form{display:flex;gap:6px;}
.cas-form input{flex:1;min-width:0;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--inset);padding:9px 14px;font-size:13px;}
.cas-form input:disabled{opacity:.55;}
.cas-form button{border-radius:var(--r-pill);padding:0 16px;background:var(--strong);color:var(--sobre-tinta);font-size:13px;font-weight:600;min-height:38px;}
.cas-form button:disabled{opacity:.4;cursor:not-allowed;}
.cas-costo{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--faint);}
@media(max-width:620px){.cas{grid-template-columns:1fr;height:auto;}.cas-lateral{border-right:0;border-bottom:1px solid var(--line);}
  .cas-lista{display:flex;overflow-x:auto;}.cas-lista li{flex:0 0 auto;width:210px;}.cas-mensajes{height:300px;flex:none;}}

/* ---------- M0M0 ---------- */
.m0{--m0-crema:#FFF8EC;--m0-coral:#FF7A59;--m0-tinta:#2A2433;--m0-cielo-1:#72C4F3;--m0-cielo-2:#CDE9F6;--m0-pasto:#A9DC8C;
  display:grid;grid-template-columns:auto 1fr;gap:28px;padding:26px;align-items:center;background:var(--surface);}
.m0-telefono{width:250px;border-radius:34px;padding:10px;background:var(--m0-tinta);box-shadow:var(--sombra);}
.m0-pantalla{border-radius:26px;overflow:hidden;background:var(--m0-crema);color:var(--m0-tinta);padding:12px 12px 14px;display:flex;flex-direction:column;gap:9px;}
.m0-cab{display:flex;align-items:center;justify-content:space-between;}
.m0-cab b{font-size:17px;font-weight:800;letter-spacing:-.02em;}
.m0-cab span{font-size:10.5px;padding:2px 8px;border-radius:var(--r-pill);background:rgba(42,36,51,.08);}
.m0-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}
.m0-stat{height:6px;border-radius:4px;background:rgba(42,36,51,.1);overflow:hidden;}
.m0-stat i{display:block;height:100%;border-radius:4px;background:var(--c);transition:width .6s cubic-bezier(.2,.7,.3,1);}
.m0-escena{position:relative;height:250px;border-radius:18px;overflow:hidden;background:linear-gradient(var(--m0-cielo-1),var(--m0-cielo-2) 65%);cursor:pointer;touch-action:manipulation;}
.m0-escena::after{content:"";position:absolute;left:-20%;right:-20%;bottom:-38%;height:62%;border-radius:50%;background:var(--m0-pasto);}
.m0-escena.noche{background:linear-gradient(#1D2552,#46407A 70%);}
.m0-escena.noche::after{background:#4E7A52;}
.m0-sol{position:absolute;right:20px;top:18px;width:36px;height:36px;border-radius:50%;background:radial-gradient(circle,#FFE27A,#FFC53D);box-shadow:0 0 24px 6px rgba(255,210,80,.55);transition:opacity .6s;}
.m0-escena.noche .m0-sol{opacity:0;}
.m0-mascota{position:absolute;left:50%;bottom:10px;width:150px;height:150px;transform:translateX(-50%);z-index:1;transform-origin:50% 100%;}
.m0-mascota img{width:100%;height:100%;object-fit:contain;animation:respira 3.2s ease-in-out infinite;transform-origin:50% 100%;}
@keyframes respira{0%,100%{transform:scaleY(1);}50%{transform:scaleY(1.035);}}
.m0-burbuja{position:absolute;left:10px;right:10px;top:10px;z-index:2;font-size:12px;line-height:1.35;background:#fff;color:var(--m0-tinta);padding:8px 11px;border-radius:13px;
  box-shadow:0 6px 16px rgba(0,0,0,.12);opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s;}
.m0-burbuja.ver{opacity:1;transform:none;}
.m0-acciones{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}
.m0-acciones button{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:10px;padding:7px 2px;border-radius:12px;background:rgba(42,36,51,.06);color:var(--m0-tinta);min-height:44px;}
.m0-acciones button span{font-size:17px;line-height:1.2;}
.m0-acciones button:active{transform:scale(.95);}
.m0-lado{display:flex;flex-direction:column;gap:14px;min-width:0;}
.m0-cerebro{border-radius:var(--r);background:var(--inset);border:1px solid var(--line);padding:14px 16px;font-size:13px;}
.m0-cerebro b{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:8px;font-weight:600;}
.m0-traza{font-family:var(--mono);font-size:12px;color:var(--text);line-height:1.6;min-height:58px;}
.m0-traza em{font-style:normal;color:var(--acento-claro);}
.m0-ayuda{font-size:13px;color:var(--muted);}
.m0-capturas{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:22px;background:var(--surface-2);}
.m0-capturas figure{border-radius:22px;overflow:hidden;border:6px solid var(--m0-tinta);background:var(--m0-crema);box-shadow:var(--sombra-suave);}
.m0-capturas figcaption{font-size:12px;color:var(--muted);text-align:center;margin-top:8px;}
.m0-capturas .fig{display:flex;flex-direction:column;}
@media(max-width:700px){.m0{grid-template-columns:1fr;justify-items:center;padding:18px;}.m0-lado{width:100%;}.m0-capturas{grid-template-columns:repeat(3,70%);overflow-x:auto;scroll-snap-type:x mandatory;}.m0-capturas .fig{scroll-snap-align:center;}}

/* ---------- Takhygraphe ---------- */
.tk{--tk-grad:linear-gradient(100deg,#7C3AED,#4F46E5 45%,#06B6D4);display:grid;grid-template-rows:auto 1fr;background:#0B0B12;color:#E6E6F0;}
.tk-perfiles{display:flex;gap:4px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap;align-items:center;}
.tk-perfiles span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8C8CA3;margin-right:6px;}
.tk-perfiles button{font-size:12.5px;padding:6px 12px;border-radius:var(--r-pill);color:#B8B8CC;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);min-height:32px;}
.tk-perfiles button[aria-selected="true"]{background:#fff;color:#0B0B12;border-color:#fff;}
.tk-cuerpo{display:grid;grid-template-columns:1fr 1fr;min-height:360px;}
.tk-col{padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.tk-col+.tk-col{border-left:1px solid rgba(255,255,255,.08);background:#10101A;}
.tk-col h5{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8C8CA3;font-weight:600;}
.tk-crudo{font-size:15px;line-height:1.55;color:#A9A9BE;min-height:120px;font-style:italic;}
.tk-limpio{font-size:15.5px;line-height:1.55;color:#fff;min-height:120px;white-space:pre-line;}
.tk-limpio.listo{animation:msg .4s;}
.tk-onda{display:flex;align-items:center;gap:3px;height:44px;}
.tk-onda i{flex:1;max-width:5px;height:12%;border-radius:3px;background:var(--tk-grad);opacity:.35;transition:height .12s;}
.tk-grabar{margin-top:auto;display:flex;align-items:center;gap:12px;}
.tk-boton{position:relative;width:64px;height:64px;border-radius:50%;background:var(--tk-grad);display:grid;place-items:center;color:#fff;flex:0 0 auto;
  box-shadow:0 10px 30px -8px rgba(99,102,241,.7);transition:transform .2s;touch-action:none;user-select:none;-webkit-user-select:none;}
.tk-boton svg{width:26px;height:26px;}
.tk-boton::before{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(124,58,237,.5);opacity:0;transform:scale(.85);transition:opacity .3s,transform .3s;}
.tk-boton[aria-pressed="true"]{transform:scale(.94);}
.tk-boton[aria-pressed="true"]::before{opacity:1;transform:scale(1);animation:anillo 1.2s ease-out infinite;}
@keyframes anillo{from{transform:scale(.9);opacity:.9;}to{transform:scale(1.25);opacity:0;}}
.tk-grabar p{font-size:13px;color:#B8B8CC;line-height:1.4;}
.tk-grabar kbd{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid rgba(255,255,255,.2);}
.tk-destino{margin-top:auto;border-radius:12px;background:#1A1A28;border:1px solid rgba(255,255,255,.07);padding:10px 12px;font-size:12px;color:#8C8CA3;display:flex;align-items:center;gap:8px;}
.tk-destino i{width:8px;height:8px;border-radius:50%;background:#2A2A3C;}
.tk-destino.pegado i{background:#34D399;box-shadow:0 0 8px #34D399;}
@media(max-width:620px){.tk-cuerpo{grid-template-columns:1fr;}.tk-col+.tk-col{border-left:0;border-top:1px solid rgba(255,255,255,.08);}}

/* ---------- Explorador 3D del Chepe ---------- */
.ex{--ex-azul:#1673B8;--ex-morado:#8E3FB0;background:#0E1116;color:#fff;}
.ex-visor{position:relative;aspect-ratio:880/552;overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none;}
.ex-visor:active{cursor:grabbing;}
.ex-visor img{position:absolute;inset:-6%;width:112%;height:112%;max-width:none;object-fit:cover;opacity:0;transition:opacity .7s ease;will-change:transform;}
.ex-visor img.actual{opacity:1;}
.ex-sombra{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent 30%,transparent 65%,rgba(0,0,0,.55));pointer-events:none;}
.ex-titulo{position:absolute;left:18px;top:14px;pointer-events:none;}
.ex-titulo small{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.8;}
.ex-titulo b{font-size:clamp(18px,2.4vw,26px);font-weight:700;letter-spacing:-.02em;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.ex-vista{position:absolute;right:14px;top:14px;display:flex;padding:3px;border-radius:var(--r-pill);background:rgba(15,17,22,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.ex-vista button{font-size:12px;font-weight:600;padding:6px 12px;border-radius:var(--r-pill);color:rgba(255,255,255,.75);min-height:30px;}
.ex-vista button[aria-pressed="true"]{background:#fff;color:#0E1116;}
.ex-punto{position:absolute;width:30px;height:30px;border-radius:50%;background:var(--ex-azul);border:2px solid #fff;color:#fff;font-size:12px;font-weight:700;
  display:grid;place-items:center;transform:translate(-50%,-50%);box-shadow:0 0 0 0 rgba(22,115,184,.6);animation:punto-pulso 2.4s infinite;pointer-events:none;transition:opacity .4s;}
@keyframes punto-pulso{0%{box-shadow:0 0 0 0 rgba(22,115,184,.6);}80%,100%{box-shadow:0 0 0 14px rgba(22,115,184,0);}}
.ex-arrastra{position:absolute;left:14px;bottom:12px;font-size:11.5px;padding:6px 11px;border-radius:var(--r-pill);background:rgba(15,17,22,.7);pointer-events:none;}
.ex-tren{display:flex;gap:4px;padding:12px;overflow-x:auto;background:#151922;scrollbar-width:none;}
.ex-tren::-webkit-scrollbar{display:none;}
@media(max-width:620px){.ex-tren{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent);}}
.ex-tren button{flex:1 0 82px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border-radius:10px;background:#1E2430;
  border:1px solid transparent;color:rgba(255,255,255,.8);font-size:11.5px;font-weight:600;text-align:left;min-height:48px;transition:border-color .2s,background-color .2s;}
.ex-tren button small{font-family:var(--mono);font-size:10px;opacity:.6;font-weight:400;}
.ex-tren button[aria-pressed="true"]{border-color:var(--ex-azul);background:#223449;color:#fff;}
.ex-ruta{position:relative;display:flex;justify-content:space-between;align-items:center;padding:14px 18px 16px;background:#0E1116;}
.ex-ruta::before{content:"";position:absolute;left:24px;right:24px;top:22px;height:2px;background:linear-gradient(90deg,var(--ex-azul) 82%,transparent 82%);}
.ex-ruta::after{content:"";position:absolute;left:82%;right:24px;top:22px;border-top:2px dashed rgba(255,255,255,.3);}
.ex-estacion{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:rgba(255,255,255,.75);}
.ex-estacion i{width:12px;height:12px;border-radius:50%;background:#0E1116;border:2px solid var(--ex-azul);transition:background-color .3s,transform .3s;}
.ex-estacion.activa i{background:var(--ex-azul);transform:scale(1.35);box-shadow:0 0 12px var(--ex-azul);}
.ex-estacion.regional i{border-style:dashed;border-color:rgba(255,255,255,.4);}
.ex-tren-punto{position:absolute;top:17px;left:24px;width:12px;height:12px;border-radius:3px;background:#fff;z-index:2;box-shadow:0 0 10px rgba(255,255,255,.8);}
@media(max-width:560px){.ex-estacion span{font-size:9.5px;max-width:52px;text-align:center;line-height:1.2;}}

/* ---------- Quiz del Chepe ---------- */
.qz{--qz-morado:#8E3FB0;--qz-magenta:#C0398E;--qz-azul:#1FA3DA;position:relative;min-height:440px;display:flex;flex-direction:column;
  background:linear-gradient(160deg,#1B1530,#2A1A3A 55%,#12202F);color:#fff;overflow:hidden;}
.qz-sierra{position:absolute;left:0;right:0;bottom:0;width:100%;height:46%;pointer-events:none;}
.qz>*:not(.qz-sierra){position:relative;}
.qz-barra{height:4px;background:rgba(255,255,255,.12);}
.qz-barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--qz-azul),var(--qz-morado),var(--qz-magenta));transition:width .5s cubic-bezier(.2,.7,.3,1);}
.qz-paso{padding:28px clamp(18px,4vw,34px);display:flex;flex-direction:column;gap:16px;flex:1;}
.qz-paso small{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:rgba(255,255,255,.6);text-transform:uppercase;}
.qz-paso h5{font-size:clamp(20px,2.4vw,26px);line-height:1.2;letter-spacing:-.02em;font-weight:700;}
.qz-opciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.qz-opciones button{text-align:left;padding:13px 15px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#fff;
  transition:background-color .2s,border-color .2s,transform .2s;min-height:56px;}
.qz-opciones button:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.3);transform:translateY(-1px);}
.qz-opciones button b{display:block;font-size:14.5px;}
.qz-opciones button span{font-size:12px;opacity:.72;}
.qz-resultado{align-items:flex-start;}
.qz-arquetipo{font-size:clamp(30px,4vw,44px);font-weight:800;letter-spacing:-.035em;line-height:1;background:linear-gradient(90deg,#fff,#E9C6FF);-webkit-background-clip:text;background-clip:text;color:transparent;}
.qz-resultado p{font-size:15px;opacity:.85;max-width:44ch;}
.qz-reiniciar{font-size:13px;font-weight:600;padding:9px 16px;border-radius:var(--r-pill);background:#fff;color:#1B1530;margin-top:auto;min-height:40px;}
.qz-honesto{font-size:12px;opacity:.65;}
@media(max-width:560px){.qz-opciones{grid-template-columns:1fr;}}

/* ---------- Observatorio ---------- */
.ob{--ob-noche:#070B14;--ob-borde:rgba(142,184,229,.18);--ob-claro:#BFD7F2;position:relative;background:radial-gradient(ellipse at 60% 40%,#0D1A33,var(--ob-noche) 70%);
  color:#E7EEF8;display:grid;grid-template-columns:1fr 250px;min-height:470px;}
.ob-lienzo{position:relative;cursor:grab;touch-action:pan-y;}
.ob-lienzo:active{cursor:grabbing;}
.ob-lienzo canvas{position:absolute;inset:0;width:100%;height:100%;}
.ob-panel{margin:16px 16px 16px 0;align-self:center;border-radius:16px;border:1px solid var(--ob-borde);background:rgba(10,18,34,.78);padding:16px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:10px;}
.ob-panel small{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8EB8E5;}
.ob-panel b{font-size:22px;font-weight:600;letter-spacing:-.02em;}
.ob-coords{font-family:var(--mono);font-size:11.5px;color:#9FB3CC;}
.ob-nivel{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-top:1px solid var(--ob-borde);border-bottom:1px solid var(--ob-borde);}
.ob-nivel strong{font-size:34px;font-weight:300;color:var(--ob-claro);line-height:1;}
.ob-nivel span{font-size:12.5px;color:#C9D6E6;}
.ob-escala{height:6px;border-radius:4px;background:linear-gradient(90deg,#000,#222,#424242,#142F72,#2154D8,#0F5714,#1FA12A,#6E641E,#B8A625,#BF641E,#FD9650,#FB5A49,#FB998A);}
.ob-escala-marca{position:relative;height:10px;}
.ob-escala-marca i{position:absolute;top:0;width:2px;height:10px;background:#fff;transform:translateX(-1px);transition:left .5s cubic-bezier(.2,.7,.3,1);}
.ob-nota{font-size:11px;color:#8EA3BD;line-height:1.45;}
.ob-lugares{display:flex;flex-wrap:wrap;gap:5px;}
.ob-lugares button{font-size:11px;padding:5px 9px;border-radius:var(--r-pill);border:1px solid var(--ob-borde);color:#C9D6E6;min-height:28px;}
.ob-lugares button:hover{border-color:#8EB8E5;}
@media(max-width:700px){.ob{grid-template-columns:1fr;}.ob-lienzo{height:320px;}.ob-panel{margin:0 14px 14px;}}

/* ---------- El puente estelar ---------- */
.pe{--pe-noche:#060A14;--pe-claro:#BFD7F2;position:relative;min-height:450px;background:radial-gradient(ellipse at 70% 30%,#101B33,var(--pe-noche) 70%);color:#E7EEF8;overflow:hidden;}
.pe canvas{position:absolute;inset:0;width:100%;height:100%;}
.pe-tarjeta{position:relative;z-index:1;margin:26px;max-width:360px;border-radius:18px;border:1px solid rgba(142,184,229,.2);background:rgba(8,14,28,.8);padding:20px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:12px;}
.pe-tarjeta small{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8EB8E5;}
.pe-form{display:flex;gap:8px;flex-wrap:wrap;}
.pe-form label{width:100%;font-size:14px;color:#C9D6E6;}
.pe-form input{flex:1;min-width:150px;border-radius:12px;border:1px solid rgba(142,184,229,.3);background:rgba(255,255,255,.05);color:#fff;padding:10px 12px;color-scheme:dark;min-height:44px;}
.pe-form button{border-radius:12px;background:var(--pe-claro);color:#0A1220;font-weight:600;font-size:13.5px;padding:0 16px;min-height:44px;}
.pe-resultado{display:flex;flex-direction:column;gap:8px;}
.pe-resultado[hidden]{display:none;}
.pe-nombre{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.05;}
.pe-cifras{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.pe-cifras div{display:flex;flex-direction:column;}
.pe-cifras strong{font-size:28px;font-weight:300;color:var(--pe-claro);line-height:1.1;}
.pe-cifras span{font-size:11px;color:#9FB3CC;}
.pe-cifras i{flex:1;height:1px;background:repeating-linear-gradient(90deg,rgba(191,215,242,.6) 0 4px,transparent 4px 8px);}
.pe-texto{font-size:13.5px;line-height:1.5;color:#D6E2F0;}
.pe-otras{display:flex;flex-wrap:wrap;gap:5px;}
.pe-otras button{font-size:11.5px;padding:5px 10px;border-radius:var(--r-pill);border:1px solid rgba(142,184,229,.25);color:#C9D6E6;min-height:30px;}
.pe-fuente{font-size:11px;color:#7F93AD;}
.pe-objetivo{position:absolute;z-index:1;pointer-events:none;transform:translate(-50%,-50%);text-align:center;transition:left 1s cubic-bezier(.2,.7,.3,1),top 1s cubic-bezier(.2,.7,.3,1),opacity .5s;}
.pe-objetivo i{display:block;width:54px;height:54px;margin:0 auto 6px;border-radius:50%;border:1px solid rgba(191,215,242,.55);position:relative;}
.pe-objetivo i::before,.pe-objetivo i::after{content:"";position:absolute;background:rgba(191,215,242,.55);}
.pe-objetivo i::before{left:50%;top:-8px;bottom:-8px;width:1px;}
.pe-objetivo i::after{top:50%;left:-8px;right:-8px;height:1px;}
.pe-objetivo span{font-size:12px;letter-spacing:.3em;color:#DCE8F6;text-transform:uppercase;}
@media(max-width:620px){.pe{min-height:560px;display:flex;align-items:flex-end;}.pe-tarjeta{margin:14px;max-width:none;width:100%;}}

/* ---------- CRM de Viajes ---------- */
.crm{--crm-neto:#B45309;display:grid;grid-template-columns:1.1fr 1fr;background:var(--surface);font-size:13px;min-height:460px;}
.crm-col{padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.crm-col+.crm-col{border-left:1px solid var(--line);background:var(--bg);}
.crm h5{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.crm-servicio{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);}
.crm-servicio b{color:var(--strong);font-size:13.5px;}
.crm-servicio small{display:block;color:var(--faint);font-size:11.5px;}
.crm-rol{display:flex;gap:2px;padding:3px;border-radius:var(--r-pill);background:var(--inset);}
.crm-rol button{font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--r-pill);color:var(--muted);min-height:26px;text-transform:none;letter-spacing:0;}
.crm-rol button[aria-pressed="true"]{background:var(--surface);color:var(--strong);box-shadow:0 1px 3px rgba(0,0,0,.12);}
.crm-matriz{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;}
.crm-matriz th{font-size:11px;font-weight:600;color:var(--faint);text-align:left;padding:6px 8px;}
.crm-matriz td{padding:3px;}
.crm-matriz td button{width:100%;text-align:right;padding:8px 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:var(--mono);font-size:12.5px;min-height:40px;transition:border-color .2s,background-color .2s;}
.crm-matriz td button:hover{border-color:var(--line-fuerte);}
.crm-matriz td button[aria-pressed="true"]{border-color:var(--acento-claro);background:rgba(99,102,241,.14);color:var(--strong);}
.crm-matriz td button .neto{display:block;font-size:10.5px;color:var(--crm-neto);}
.crm-matriz td button .neto[hidden]{display:none;}
.crm-agregar{align-self:flex-start;font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:var(--r-pill);background:var(--strong);color:var(--sobre-tinta);min-height:38px;}
.crm-catalogo{align-self:flex-start;font-size:12px;font-weight:500;padding:7px 12px;border-radius:var(--r-pill);border:1px dashed var(--line-fuerte);color:var(--muted);min-height:34px;}
.crm-cot{border-radius:14px;background:var(--surface);border:1px solid var(--line);overflow:hidden;}
.crm-cot-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);}
.crm-cot-cab b{color:var(--strong);font-family:var(--mono);font-size:12px;}
.crm-lineas{list-style:none;min-height:110px;}
.crm-lineas li{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line-soft);animation:msg .35s;}
.crm-lineas li small{display:block;color:var(--faint);font-size:11px;}
.crm-lineas .precio{font-family:var(--mono);color:var(--strong);text-align:right;white-space:nowrap;}
.crm-lineas .congelado{display:inline-block;font-size:10px;padding:1px 6px;border-radius:var(--r-pill);background:var(--inset);color:var(--muted);margin-top:2px;}
.crm-vacio{padding:26px 12px;text-align:center;color:var(--faint);font-size:12.5px;}
.crm-total{display:flex;justify-content:space-between;padding:10px 12px;font-weight:600;color:var(--strong);font-family:var(--mono);}
.crm-estados{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.crm-estados span{font-size:11px;padding:4px 10px;border-radius:var(--r-pill);background:var(--inset);color:var(--faint);transition:background-color .3s,color .3s;}
.crm-estados span.hecho{background:var(--ok-bg);color:var(--ok);}
.crm-estados span.ahora{background:var(--strong);color:var(--sobre-tinta);}
.crm-avanzar{font-size:12px;font-weight:600;padding:7px 12px;border-radius:var(--r-pill);border:1px solid var(--line-fuerte);color:var(--strong);min-height:34px;}
.crm-aviso{font-size:12px;color:var(--muted);min-height:18px;}
@media(max-width:680px){.crm{grid-template-columns:1fr;}.crm-col+.crm-col{border-left:0;border-top:1px solid var(--line);}}

/* ============================ ecosistema VSE ============================ */
.eco{position:relative;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);padding:clamp(22px,4vw,48px);overflow:hidden;}
.eco-flujo{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.eco-lineas{position:absolute;left:0;right:0;top:38px;height:4px;pointer-events:none;}
.eco-lineas svg{width:100%;height:4px;overflow:visible;}
.eco-lineas .base{stroke:var(--line-fuerte);stroke-width:2;stroke-dasharray:4 6;}
.eco-lineas .trazo{stroke:url(#grad-eco);stroke-width:3;stroke-linecap:round;}
.eco-paso{position:relative;display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.eco-nodo{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);position:relative;z-index:1;
  box-shadow:var(--sombra-suave);color:var(--strong);}
.eco-nodo svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.eco-paso small{font-family:var(--mono);font-size:11px;color:var(--acento-claro);letter-spacing:.06em;text-transform:uppercase;}
.eco-paso b{font-size:17px;color:var(--strong);letter-spacing:-.02em;line-height:1.2;}
.eco-paso p{font-size:13.5px;color:var(--muted);line-height:1.5;}
.eco-paso .estado{margin-top:2px;justify-self:start;}
.eco-pie{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line);}
.eco-pie p{max-width:62ch;color:var(--muted);font-size:15px;}
@media(max-width:980px){.eco-flujo{grid-template-columns:1fr;gap:26px;}.eco-lineas{display:none;}.eco-paso{display:grid;grid-template-columns:64px 1fr;column-gap:16px;}
  .eco-nodo{width:64px;height:64px;grid-row:span 4;}.eco-paso::before{content:"";position:absolute;left:32px;top:70px;bottom:-26px;width:1px;background:var(--line-fuerte);}.eco-paso:last-child::before{display:none;}}

/* ============================ sobre ============================ */
.sobre{display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(32px,6vw,90px);align-items:start;}
.sobre h2{font-size:clamp(34px,4.4vw,56px);font-weight:600;letter-spacing:-.045em;line-height:1.04;color:var(--strong);margin-top:18px;}
.sobre-grande{font-size:clamp(22px,2.4vw,32px);line-height:1.3;letter-spacing:-.025em;color:var(--strong);font-weight:500;text-wrap:pretty;}
.sobre-grande .tenue{color:var(--titulo-base);}
.datos{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px;}
.dato{border-top:1px solid var(--line-fuerte);padding-top:18px;}
.dato b{display:block;font-size:clamp(34px,3.6vw,48px);font-weight:600;letter-spacing:-.04em;color:var(--strong);line-height:1;margin-bottom:10px;}
.dato span{font-size:14px;color:var(--muted);}
@media(max-width:900px){.sobre{grid-template-columns:1fr;}}
@media(max-width:560px){.datos{grid-template-columns:1fr;}}

/* ============================ cierre ============================ */
.cierre{position:relative;padding:150px 0;overflow:hidden;text-align:center;isolation:isolate;}
.cierre-orbes{position:absolute;inset:0;z-index:-1;pointer-events:none;}
.cierre-orbes span{position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;}
.cierre-orbes .c1{width:420px;height:420px;background:var(--orbe-2);left:10%;top:10%;}
.cierre-orbes .c2{width:360px;height:360px;background:var(--orbe-1);right:8%;bottom:0;opacity:.3;}
.cierre-orbes .c3{width:300px;height:300px;background:var(--orbe-3);left:45%;bottom:-120px;opacity:.25;}
.cierre h2{font-size:clamp(40px,6.6vw,92px);font-weight:600;letter-spacing:-.055em;line-height:1;color:var(--strong);max-width:14ch;margin:22px auto 24px;text-wrap:balance;}
.cierre p{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:50ch;margin:0 auto;}
.cierre .hero-ctas{justify-content:center;}
.cierre .cierre-canal{margin-top:26px;font-size:14px;color:var(--faint);}
.cierre-canal a{color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-fuerte);}

/* ============================ pie ============================ */
.pie{padding:70px 0 34px;border-top:1px solid var(--line);}
.pie-firma{width:100%;height:auto;margin:10px 0 40px;}
.pie-firma text{font-family:'Geist',system-ui,sans-serif;font-weight:800;letter-spacing:-.06em;fill:var(--strong);fill-opacity:.9;stroke:var(--strong);stroke-width:1.2;}
.pie-fila{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;}
.pie-fila small{font-size:13.5px;color:var(--faint);}
.pie-enlaces{display:flex;flex-wrap:wrap;gap:4px;}
.pie-enlaces a{font-size:14px;color:var(--muted);padding:11px 10px;transition:color .2s;}
.pie-enlaces a:hover{color:var(--strong);}

/* ============================ movimiento ============================ */
/* RED DE SEGURIDAD: el contenido nace visible. Solo se oculta si el motor de
   animación arrancó (clase .js en <html>, que se retira sola a los 2,5 s). */
html.js .reveal{opacity:0;}
html.js .hero-entra{opacity:0;}
.cursor{display:inline-block;width:2px;height:1.05em;margin-left:1px;vertical-align:-2px;background:currentColor;animation:parpadeo 1s steps(1) infinite;}
@keyframes parpadeo{50%{opacity:0;}}
.pausado,.pausado *{animation-play-state:paused!important;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
  .cinta-pista{animation:none;}
  .hex-orbe{animation:none;}
}
