/* ============================================================
   VARIABLES & RESET
   ============================================================ */
:root {
  --g: #00ff7a;
  --b: #00ddff;
  --dark: #020c10;
  --dark2: #031814;
  --grad: linear-gradient(90deg, #00ff7a, #00ddff);
  --gray: rgb(178, 214, 181);
  --mono: 'Space Mono', monospace;
  --sans: 'Syne', sans-serif;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: var(--sans);
  background: var(--dark);
  color: #fff;
  overflow-x: hidden;
  cursor: none;
}
::selection { background: rgba(0,255,122,0.2); color: #fff; }

/* ============================================================
   CURSOR
   ============================================================ */
#cur {
  position:fixed; width:10px; height:10px;
  background:var(--g); border-radius:50%;
  pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
  mix-blend-mode:screen;
  transition:width .15s,height .15s,background .15s;
}
#cur-ring {
  position:fixed; width:36px; height:36px;
  border:1px solid rgba(0,255,122,0.35);
  border-radius:50%; pointer-events:none;
  z-index:9998; transform:translate(-50%,-50%);
}
@media(max-width:768px){#cur,#cur-ring{display:none;} body{cursor:auto;}}

/* ============================================================
   BACKGROUND
   ============================================================ */
.bg-grid {
  position:fixed; inset:0;
  background-image:
    linear-gradient(rgba(0,255,122,.024) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,255,122,.024) 1px,transparent 1px);
  background-size:60px 60px;
  pointer-events:none; z-index:0;
}
.orb {
  position:fixed; border-radius:50%;
  filter:blur(120px); pointer-events:none; z-index:0;
}
.o1{width:900px;height:700px;background:rgba(0,210,100,.08);top:-200px;left:-300px;
    animation:ob 11s ease-in-out infinite;}
.o2{width:700px;height:600px;background:rgba(0,150,255,.07);bottom:0;right:-200px;
    animation:ob 11s ease-in-out infinite;animation-delay:-4s;}
.o3{width:500px;height:400px;background:rgba(0,255,130,.05);top:45%;left:50%;
    transform:translate(-50%,-50%);animation:ob3 8s ease-in-out infinite;}
@keyframes ob{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.07) translateY(-35px)}}
@keyframes ob3{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.1)}}

.scanline {
  position:fixed; inset:0;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.04) 3px,rgba(0,0,0,.04) 4px);
  pointer-events:none; z-index:0;
}

/* ============================================================
   CIRCUIT DECO
   ============================================================ */
.circ {
  position:fixed; inset:0; width:100%; height:100%;
  pointer-events:none; z-index:0;
}




/* ============================================================
   NAVBAR
   ============================================================ */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:18px 60px;
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(180deg,rgba(2,12,16,.95) 0%,transparent 100%);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(0,255,122,.05);
  transition:border-color .3s, background .3s;
}
nav.sc { background:rgba(2,12,16,.97); border-bottom-color:rgba(0,255,122,.1); }

.nl { display:flex; align-items:center; gap:11px; text-decoration:none; }
.nl-name { font-size:21px; font-weight:800; color:#fff; letter-spacing:-.5px; }
.nl-name span { color:var(--b); }
.nl-sub { font-family:var(--mono); font-size:7px; color:rgba(255,255,255,.28);
          letter-spacing:2px; text-transform:uppercase; display:block; margin-top:2px; }

.nm { display:flex; align-items:center; gap:32px; list-style:none; }
.nm a {
  font-family:var(--mono); font-size:10.5px; color:var(--gray);
  text-decoration:none; letter-spacing:2px; text-transform:uppercase;
  position:relative; transition:color .2s;
}
.nm a::after {
  content:''; position:absolute; bottom:-3px; left:0; right:0;
  height:1px; background:var(--g); transform:scaleX(0); transition:transform .2s;
}
.nm a:hover { color:#fff; }
.nm a:hover::after { transform:scaleX(1); }
.nm .cta-nav {
  background:rgba(0,255,122,.08); border:1px solid rgba(0,255,122,.28);
  color:var(--g) !important; padding:9px 20px; border-radius:2px;
  font-weight:700 !important;
}
.nm .cta-nav::after { display:none !important; }
.nm .cta-nav:hover { background:rgba(0,255,122,.16) !important; }

/* Hamburger */
.ham { display:none; flex-direction:column; gap:5px; cursor:pointer; border:none; background:none; padding:4px; }
.ham span { display:block; width:24px; height:1.5px; background:#fff; transition:.3s; }
@media(max-width:768px){
  nav{padding:16px 20px;}
  .nm{display:none;position:absolute;top:100%;left:0;right:0;
      background:rgba(2,12,16,.98);flex-direction:column;gap:0;padding:20px 0;
      border-bottom:1px solid rgba(0,255,122,.1);}
  .nm.open{display:flex;}
  .nm a{padding:14px 24px;display:block;}
  .ham{display:flex;}
}

/* ============================================================
   SECTION HELPERS
   ============================================================ */
section { position:relative; z-index:2; }

.s-lbl {
  font-family:var(--mono); font-size:10.5px; color:var(--g);
  letter-spacing:4px; text-transform:uppercase;
  display:flex; align-items:center; gap:11px; margin-bottom:18px;
}
.s-lbl::before { content:''; display:block; width:22px; height:1px; background:var(--g); }

.s-title {
  font-size:clamp(30px,4.5vw,62px); font-weight:800;
  letter-spacing:-2px; line-height:1.02;
}
@media(max-width:480px){ .s-title { letter-spacing:-1px; } }
.grad-text {
  background:var(--grad); -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
}
.outline-text {
  -webkit-text-stroke:1.5px rgba(255,255,255,.18);
  -webkit-text-fill-color:transparent;
}

.reveal { opacity:0; transform:translateY(36px); transition:opacity .7s ease, transform .7s ease; }
.reveal.vis { opacity:1; transform:translateY(0); }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s}
.d4{transition-delay:.4s} .d5{transition-delay:.5s}

/* ============================================================
   HERO
   ============================================================ */
#hero {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:130px 20px 90px; overflow:hidden;
}
@media(max-width:768px){
  #hero { padding: 100px 20px 60px; }
}

.h-eyebrow {
  font-family:var(--mono); font-size:11px; color:var(--g);
  letter-spacing:5px; text-transform:uppercase;
  display:flex; align-items:center; gap:14px;
  margin-bottom:30px;
  animation:fu .8s ease .2s both;
}
.h-eyebrow::before,.h-eyebrow::after {
  content:''; display:block; width:28px; height:1px; background:var(--g);
}

.h-title {
  font-size:clamp(36px,7.5vw,106px); font-weight:800;
  letter-spacing:-2px; line-height:1.0;
  margin-bottom:28px;
  animation:fu .9s ease .35s both;
}
@media(max-width:480px){
  .h-title { font-size:32px; letter-spacing:-1px; line-height:1.08; }
}

.h-sub {
  font-family:var(--mono); font-size:14px; color:var(--gray);
  line-height:1.9; max-width:580px; letter-spacing:.3px;
  margin-bottom:50px;
  animation:fu .8s ease .55s both;
}
@media(max-width:480px){
  .h-sub { font-size:12px; line-height:1.7; }
}

.h-btns {
  display:flex; gap:14px; align-items:center; flex-wrap:wrap; justify-content:center;
  animation:fu .8s ease .7s both;
}

.btn {
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--sans); font-size:15px; font-weight:800;
  padding:17px 38px; border-radius:3px; text-decoration:none;
  letter-spacing:-.3px; transition:transform .2s, box-shadow .2s;
  position:relative; cursor:none;
}
@media(max-width:480px){
  .btn { width:100%; justify-content:center; padding:16px 24px; font-size:14px; }
  .h-btns { width:100%; flex-direction:column; }
}
.btn-p {
  background:var(--grad); color:#000;
}
.btn-p::after {
  content:''; position:absolute; inset:-2px; border-radius:5px;
  background:var(--grad); z-index:-1; filter:blur(18px);
  opacity:.25; transition:opacity .2s;
}
.btn-p:hover { transform:translateY(-2px); }
.btn-p:hover::after { opacity:.55; }
.btn-s {
  background:transparent; border:1px solid rgba(255,255,255,.14); color:#fff;
}
.btn-s:hover { border-color:rgba(0,255,122,.4); background:rgba(0,255,122,.05); }

/* Hero floating badge */
.h-badge {
  position:absolute; top:160px; right:max(40px, 5%);
  border:1px solid rgba(0,255,122,.2);
  background:rgba(0,255,122,.05); border-radius:4px;
  padding:14px 18px; font-family:var(--mono); font-size:10px;
  color:var(--g); letter-spacing:.8px;
  animation:float 4s ease-in-out infinite, fu .6s ease 1.2s both;
}
@media(max-width:768px){ .h-badge { display:none; } }
.live-dot {
  width:7px; height:7px; border-radius:50%;
  background:var(--g); box-shadow:0 0 10px var(--g),0 0 25px var(--g);
  display:inline-block; margin-right:8px;
  animation:pulse 1.6s ease-in-out infinite;
}

.h-stats {
  display:flex; gap:50px; margin-top:70px;
  padding-top:42px; border-top:1px solid rgba(255,255,255,.06);
  animation:fu .8s ease .95s both; flex-wrap:wrap; justify-content:center;
}
@media(max-width:480px){
  .h-stats { gap:24px; margin-top:40px; padding-top:28px; }
  .stat-n { font-size:36px; }
}
.stat-n { font-size:46px; font-weight:800; letter-spacing:-2px; line-height:1; }
.stat-l { font-family:var(--mono); font-size:10px; color:var(--gray);
          letter-spacing:1.5px; text-transform:uppercase; margin-top:5px; line-height:1.6; }

/* Scroll indicator */
.scroll-ind {
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:7px;
  font-family:var(--mono); font-size:8.5px;
  color:rgba(255,255,255,.18); letter-spacing:3px; text-transform:uppercase;
  animation:fu .7s ease 1.5s both;
}
.scroll-bar {
  width:1px; height:38px;
  background:linear-gradient(180deg,var(--g),transparent);
  animation:scbar 2.2s ease-in-out infinite;
}
@keyframes scbar{0%{height:0;opacity:0}50%{height:38px;opacity:1}100%{height:38px;opacity:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.35)}}
@keyframes fu{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================
   MARQUEE STRIP
   ============================================================ */
.marquee-strip {
  overflow:hidden; border-top:1px solid rgba(255,255,255,.05);
  border-bottom:1px solid rgba(255,255,255,.05);
  padding:18px 0; background:rgba(0,255,122,.025);
  position:relative; z-index:2;
}
.marquee-track {
  display:flex; gap:0; animation:marquee 22s linear infinite; width:max-content;
}
.marquee-item {
  font-family:var(--mono); font-size:11px; color:rgba(255,255,255,.25);
  letter-spacing:3px; text-transform:uppercase; padding:0 40px;
  display:flex; align-items:center; gap:14px; white-space:nowrap;
}
.marquee-dot { width:5px; height:5px; border-radius:50%; background:var(--g); }
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============================================================
   SERVICES
   ============================================================ */
#servicios { padding:110px 60px; }
@media(max-width:768px){#servicios{padding:80px 20px;}}

.srv-hdr {
  display:grid; grid-template-columns:1fr 1fr;
  gap:40px; align-items:end; margin-bottom:60px;
}
@media(max-width:768px){.srv-hdr{grid-template-columns:1fr;}}

.srv-desc { font-family:var(--mono); font-size:12.5px; color:var(--gray); line-height:1.9; }

.srv-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
}
@media(max-width:900px){.srv-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.srv-grid{grid-template-columns:1fr;}}

.srv-card {
  background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.07);
  border-radius:6px; padding:36px; position:relative; overflow:hidden;
  transition:border-color .3s,background .3s,transform .3s;
  cursor:none; text-decoration:none; display:block; color:inherit;
}
.srv-card::before {
  content:''; position:absolute; top:0; left:0;
  width:3px; height:0; transition:height .4s ease;
}
.srv-card:nth-child(1)::before{background:linear-gradient(180deg,var(--g),transparent);}
.srv-card:nth-child(2)::before{background:linear-gradient(180deg,var(--b),transparent);}
.srv-card:nth-child(3)::before{background:linear-gradient(180deg,#a855f7,transparent);}
.srv-card:nth-child(4)::before{background:linear-gradient(180deg,#ff9a3c,transparent);}
.srv-card:nth-child(5)::before{background:linear-gradient(180deg,#f43f5e,transparent);}
.srv-card:nth-child(6)::before{background:linear-gradient(180deg,#22d3ee,transparent);}

.srv-card:hover { border-color:rgba(0,255,122,.18); background:rgba(0,255,122,.03); transform:translateY(-5px); }
.srv-card:hover::before { height:100%; }

.c-num { font-family:var(--mono); font-size:9.5px; color:rgba(255,255,255,.14); letter-spacing:3px; margin-bottom:18px; }
.c-icon { font-size:36px; margin-bottom:16px; display:block; }
.c-title { font-size:21px; font-weight:800; letter-spacing:-.4px; margin-bottom:10px; }
.c-desc { font-family:var(--mono); font-size:11.5px; color:var(--gray); line-height:1.85; letter-spacing:.2px; }
.c-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:22px; }
.c-tag {
  font-family:var(--mono); font-size:8.5px; padding:3px 9px;
  border-radius:2px; letter-spacing:1.5px; text-transform:uppercase;
  border:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.38);
}
.c-arrow {
  position:absolute; bottom:24px; right:24px;
  font-size:18px; color:rgba(255,255,255,.1);
  transition:color .3s, transform .3s;
}
.srv-card:hover .c-arrow { color:var(--g); transform:translate(4px,-4px); }

/* Wide card */
.srv-wide {
  grid-column:span 3;
  display:grid; grid-template-columns:1fr auto;
  gap:40px; align-items:start;
}
@media(max-width:900px){.srv-wide{grid-column:span 2;grid-template-columns:1fr;}}
@media(max-width:560px){.srv-wide{grid-column:span 1;}}

.code-block {
  background:rgba(0,255,122,.04); border:1px solid rgba(0,255,122,.1);
  border-radius:4px; padding:20px; font-family:var(--mono); font-size:11px;
  color:var(--g); width:280px; flex-shrink:0;
}
.cl { margin:3px 0; color:var(--gray); }
.cl .kw{color:var(--b);} .cl .fn{color:var(--g);} .cl .st{color:#ff9a3c;}
@media(max-width:900px){.code-block{display:none;}}


/* ============================================================
   PROCESO
   ============================================================ */
#proceso {
  padding: 90px 50px;
  background: radial-gradient(ellipse 900px 600px at 50% 50%, rgba(0,200,100,.04) 0%, transparent 70%);
}

.pro-hdr {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 80px;
}

.pro-hdr .s-lbl { justify-content: center; }

.pro-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}

.pro-steps::before {
  content: '';
  position: absolute;
  top: 38px;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,255,122,.18), rgba(0,221,255,.18), transparent);
}

.pro-step {
  text-align: center;
  padding: 0 16px;
}

.pro-num {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border: 1.5px solid rgba(0,255,122,.22);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  background: rgba(0,255,122,.04);
  position: relative;
  z-index: 1;
  transition: border-color .3s, box-shadow .3s;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--g);
  font-weight: 700;
}

.pro-step:hover .pro-num {
  border-color: var(--g);
  box-shadow: 0 0 30px rgba(0,255,122,.18);
}

.pro-step-title {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -.3px;
  margin-bottom: 9px;
}

.pro-step-desc {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--gray);
  line-height: 1.85;
}

/* ===== RESPONSIVE ===== */

/* Tablets <= 992px — los 4 en fila empiezan a apretarse */
@media (max-width: 992px) {
  #proceso {
    padding: 90px 50px; /* margen lateral conservador */
  }

  .pro-step-title {
    font-size: 15px;
  }

  .pro-step {
    padding: 0 12px;
  }
}

/* Tablets chicas <= 768px — grilla 2x2 */
@media (max-width: 768px) {
  #proceso {
    padding: 80px 40px; /* más margen lateral para que no toque el borde */
  }

  .pro-hdr {
    margin-bottom: 40px;
  }

  .pro-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 48px 24px; /* más espacio vertical entre filas */
  }

  .pro-steps::before {
    display: none;
  }

  .pro-step {
    padding: 0 12px;
  }

  .pro-num {
    width: 64px;
    height: 64px;
    font-size: 12px;
    margin-bottom: 18px;
  }

  .pro-step-title {
    font-size: 14px;
  }

  .pro-step-desc {
    font-size: 10.5px;
  }
}

/* Móviles <= 480px — columna única, margen lateral amplio */
@media (max-width: 480px) {
  #proceso {
    padding: 50px 20px; /* CORREGIDO: margen lateral suficiente */
  }

  .pro-hdr {
    margin-bottom: 40px;
  }

  .pro-steps {
    grid-template-columns: 1fr; /* una columna */
    gap: 36px;
  }

  .pro-step {
    display: flex;
    align-items: flex-start;
    text-align: left;
    gap: 20px;
    padding: 0;
  }

  .pro-num {
    width: 54px;
    height: 54px;
    font-size: 11px;
    flex-shrink: 0;
    margin: 0;
  }

  .pro-step-title {
    font-size: 15px;
    margin-bottom: 6px;
  }

  .pro-step-desc {
    font-size: 11px;
  }
}

/* ============================================================
   PORTFOLIO
   ============================================================ */

#portafolio {
  padding:90px 50px;
}

@media(max-width:768px){
  #portafolio{
    padding:50px 18px;
  }
}

/* ================= HEADER ================= */

.port-hdr { 
  display:flex; 
  align-items:flex-end; 
  justify-content:space-between; 
  margin-bottom:52px; 
  flex-wrap:wrap; 
  gap:20px; 
}

.port-all { 
  font-family:var(--mono); 
  font-size:10.5px; 
  color:var(--g);
  letter-spacing:2px; 
  text-decoration:none; 
  text-transform:uppercase;
  display:flex; 
  align-items:center; 
  gap:8px; 
  transition:gap .2s ease;
}

.port-all:hover { 
  gap:14px; 
}

/* ================= GRID ================= */

.port-grid {
  display:grid; 
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}

@media(max-width:1024px){
  .port-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media(max-width:600px){
  .port-grid{
    grid-template-columns:1fr;
  }
}

/* ================= CARD ================= */

.pi {
  position:relative;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.07);
  border-radius:10px;
  overflow:hidden;
  transition:all .35s ease;
  backdrop-filter:blur(0px);
}

.pi:hover {
  border-color:rgba(0,255,122,.35);
  transform:translateY(-6px);
  box-shadow:
    0 0 0 1px rgba(0,255,122,.15),
    0 15px 40px rgba(0,255,122,.12),
    0 0 60px rgba(0,221,255,.08);
  backdrop-filter:blur(6px);
}

/* Glass shine effect */
.pi::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    120deg,
    transparent 30%,
    rgba(255,255,255,.05) 50%,
    transparent 70%
  );
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
}

.pi:hover::before{
  opacity:1;
}

/* ================= BROWSER BAR ================= */

.pi-browser {
  height:26px; 
  background:rgba(6,10,18,.97);
  display:flex; 
  align-items:center; 
  padding:0 11px; 
  gap:6px;
  border-bottom:1px solid rgba(0,255,122,.05);
}

.bd { 
  width:8px; 
  height:8px; 
  border-radius:50%; 
}

.bd:nth-child(1){background:#ff5f57;}
.bd:nth-child(2){background:#ffbd2e;}
.bd:nth-child(3){background:#28ca41;}

.pi-url {
  margin-left:7px; 
  font-family:var(--mono); 
  font-size:8.5px;
  color:rgba(255,255,255,.2); 
  background:rgba(255,255,255,.04);
  border-radius:20px; 
  padding:2px 10px;
}

/* ================= IMAGE ================= */

.pi-screen { 
  position:relative; 
  overflow:hidden;
  aspect-ratio:16/10;
}

.pi-screen img {
  width:100%; 
  height:100%;
  object-fit:cover; 
  object-position:top;
  display:block;
  filter:brightness(.72) saturate(.85);
  transition:filter .4s ease, transform .5s ease;
}

.pi:hover .pi-screen img { 
  filter:brightness(.9) saturate(1);
  transform:scale(1.05); 
}

.pi-screen-ov {
  position:absolute; 
  inset:0;
  background:linear-gradient(
    180deg,
    transparent 45%,
    rgba(2,12,16,.92) 100%
  );
}

.pi-rim {
  position:absolute; 
  bottom:0; 
  left:0; 
  right:0; 
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    var(--g),
    var(--b),
    transparent
  );
  transform:scaleX(0);
  transition:transform .4s ease;
}

.pi:hover .pi-rim { 
  transform:scaleX(1);
}

/* ================= INFO ================= */

.pi-info { 
  padding:22px 24px; 
}

.pi-info h3 { 
  font-size:18px; 
  font-weight:800; 
  letter-spacing:-.3px; 
  margin-bottom:6px;
  transition:.3s ease;
}

.pi:hover h3{
  color:var(--g);
  text-shadow:0 0 12px rgba(0,255,122,.4);
}

.pi-info p { 
  font-family:var(--mono); 
  font-size:10.5px; 
  color:var(--gray); 
  line-height:1.7; 
  margin-bottom:14px; 
}

.pi-tags { 
  display:flex; 
  gap:7px; 
  flex-wrap:wrap; 
}

/* ================= TAGS ================= */

.pt {
  font-family:var(--mono); 
  font-size:8.5px; 
  padding:3px 9px;
  border-radius:3px; 
  letter-spacing:1.5px; 
  text-transform:uppercase;
}

.ptg{
  border:1px solid rgba(0,255,122,.3);
  color:var(--g);
  background:rgba(0,255,122,.06);
}

.ptb{
  border:1px solid rgba(0,221,255,.3);
  color:var(--b);
  background:rgba(0,221,255,.06);
}

.ptw{
  border:1px solid rgba(255,255,255,.1);
  color:var(--gray);
}
/* ============================================================
   WHY US
   ============================================================ */
#por-que {
  padding:110px 60px;
  background:radial-gradient(ellipse 800px 600px at 75% 50%,rgba(0,150,255,.05) 0%,transparent 70%);
}
@media(max-width:768px){#por-que{padding:80px 20px;}}

.why-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
@media(max-width:900px){.why-grid{grid-template-columns:1fr;gap:50px;}}

.why-big-n {
  font-size:110px; font-weight:800; letter-spacing:-5px; line-height:1;
  background:var(--grad); -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; margin-bottom:14px;
}
@media(max-width:768px){ .why-big-n { font-size:72px; letter-spacing:-3px; } }
.why-big-l { font-family:var(--mono); font-size:12px; color:var(--gray); line-height:1.85; }
.why-s-desc { font-family:var(--mono); font-size:12.5px; color:var(--gray); line-height:1.85; margin-top:18px; }

.why-items { display:flex; flex-direction:column; gap:18px; }
.wi {
  display:flex; gap:18px; padding:22px;
  border:1px solid rgba(255,255,255,.07); border-radius:4px;
  background:rgba(255,255,255,.02);
  transition:border-color .3s, background .3s;
}
.wi:hover { border-color:rgba(0,255,122,.18); background:rgba(0,255,122,.03); }
.wi-icon { font-size:30px; flex-shrink:0; margin-top:2px; }
.wi-text h4 { font-size:17px; font-weight:700; letter-spacing:-.3px; margin-bottom:5px; }
.wi-text p { font-family:var(--mono); font-size:11px; color:var(--gray); line-height:1.8; }

/* ============================================================
   CTA / CONTACT
   ============================================================ */
#contacto { padding:80px 60px 130px; }
@media(max-width:768px){#contacto{padding:60px 20px 100px;}}

.cta-box {
  background:linear-gradient(135deg,rgba(0,255,122,.055) 0%,rgba(0,221,255,.035) 100%);
  border:1px solid rgba(0,255,122,.14); border-radius:8px;
  padding:80px 70px; text-align:center; position:relative; overflow:hidden;
}
@media(max-width:768px){.cta-box{padding:40px 20px;}}
.cta-box::before {
  content:''; position:absolute; top:-1px; left:15%; right:15%; height:2px;
  background:linear-gradient(90deg,transparent,var(--g),var(--b),transparent);
}
.cta-box::after {
  content:'NODEPATH'; position:absolute; font-size:180px; font-weight:800;
  color:rgba(255,255,255,.013); top:50%; left:50%;
  transform:translate(-50%,-50%); white-space:nowrap; letter-spacing:-5px; pointer-events:none;
}
@media(max-width:768px){ .cta-box::after { font-size:60px; } }

.cta-box h2 { font-size:clamp(26px,4vw,58px); font-weight:800; letter-spacing:-1px; line-height:1.1; margin-bottom:18px; position:relative; z-index:2; }
@media(max-width:480px){ .cta-box h2 { font-size:28px; letter-spacing:-0.5px; } }
.cta-box > p { font-family:var(--mono); font-size:12.5px; color:var(--gray); line-height:1.85; margin-bottom:46px; position:relative; z-index:2; }
@media(max-width:480px){ .cta-box > p { font-size:11px; margin-bottom:30px; } }

.cta-flow { display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:48px; flex-wrap:wrap; position:relative; z-index:2; }
@media(max-width:480px){
  .cta-flow { gap:10px; margin-bottom:30px; }
  .cf-arr { display:none; }
}
.cf-step { text-align:center; }
.cf-num {
  width:42px; height:42px; border-radius:50%;
  border:1.5px solid rgba(0,255,122,.3);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 7px;
  font-family:var(--mono); font-size:13px; font-weight:700; color:var(--g);
  background:rgba(0,255,122,.06);
}
.cf-lbl { font-family:var(--mono); font-size:9.5px; color:var(--gray); letter-spacing:1.5px; text-transform:uppercase; line-height:1.5; }
.cf-arr { font-size:18px; color:rgba(255,255,255,.14); margin-top:-12px; }

/* Form */
.cta-form {
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
  max-width:660px; margin:0 auto; position:relative; z-index:2;
}
@media(max-width:560px){.cta-form{grid-template-columns:1fr;}}

.cta-form input,
.cta-form select,
.cta-form textarea {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1);
  border-radius:3px; padding:14px 18px;
  font-family:var(--mono); font-size:11.5px; color:#fff; outline:none; width:100%;
  transition:border-color .2s, background .2s;
}
.cta-form input::placeholder,
.cta-form textarea::placeholder { color:rgba(255,255,255,.22); }
.cta-form input:focus,
.cta-form select:focus,
.cta-form textarea:focus {
  border-color:rgba(0,255,122,.4); background:rgba(0,255,122,.04);
}
.cta-form select { color:rgba(255,255,255,.4); appearance:none; }
.cta-form select option { background:#020c10; color:#fff; }
.f-full { grid-column:span 2; }
@media(max-width:560px){.f-full{grid-column:span 1;}}
.cta-form textarea { resize:none; height:90px; }
.f-submit {
  grid-column:span 2; padding:17px;
  background:var(--grad); color:#000; border:none;
  border-radius:3px; font-family:var(--sans); font-size:15px; font-weight:800;
  cursor:none; letter-spacing:-.3px;
  transition:opacity .2s, transform .2s;
  position:relative;
}
@media(max-width:560px){.f-submit{grid-column:span 1;}}
.f-submit::after {
  content:''; position:absolute; inset:-2px; border-radius:5px;
  background:var(--grad); z-index:-1; filter:blur(16px); opacity:.2; transition:opacity .2s;
}
.f-submit:hover { opacity:.9; transform:translateY(-1px); }
.f-submit:hover::after { opacity:.45; }

.cta-note { font-family:var(--mono); font-size:9px; color:rgba(255,255,255,.2); letter-spacing:2px; text-transform:uppercase; margin-top:16px; position:relative; z-index:2; }

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  position:relative; z-index:2;
  padding:32px 60px; display:flex; align-items:center; justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.05); flex-wrap:wrap; gap:20px;
}
@media(max-width:768px){footer{padding:28px 20px;flex-direction:column;text-align:center;}}
.foot-links { display:flex; gap:22px; list-style:none; }
.foot-links a { font-family:var(--mono); font-size:9.5px; color:rgba(255,255,255,.28); text-decoration:none; letter-spacing:2px; text-transform:uppercase; transition:color .2s; }
.foot-links a:hover { color:var(--g); }
.foot-copy { font-family:var(--mono); font-size:9.5px; color:rgba(255,255,255,.18); letter-spacing:1px; }
.foot-social { display:flex; gap:12px; }
.soc {
  width:36px; height:36px; border:1px solid rgba(255,255,255,.1);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  text-decoration:none; font-size:15px;
  transition:border-color .2s, background .2s;
}
.soc:hover { border-color:rgba(0,255,122,.4); background:rgba(0,255,122,.06); }

/* ============================================================
   SCROLL EFFECTS — Injected
   ============================================================ */

/* Particle canvas overlay */
#particle-canvas {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.7;
}

/* Noise grain overlay */
.grain {
  position: fixed;
  inset: -200%;
  width: 400%;
  height: 400%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 1;
  opacity: 0.4;
  animation: grainAnim 0.5s steps(2) infinite;
}
@keyframes grainAnim {
  0% { transform: translate(0, 0); }
  25% { transform: translate(-1%, 1%); }
  50% { transform: translate(1%, -1%); }
  75% { transform: translate(-0.5%, 0.5%); }
  100% { transform: translate(0.5%, -0.5%); }
}

/* Split text reveal — chars animate in */
.split-word {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  margin-right: 0.15em;
}
.split-char {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
  transition: transform 0.65s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.5s ease;
}
.split-char.in {
  transform: translateY(0%);
  opacity: 1;
}

/* Parallax layers */
[data-parallax] {
  will-change: transform;
}

/* Section scroll progress indicator */
.section-progress {
  position: fixed;
  left: 28px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 150;
}
.sp-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: 1px solid rgba(0,255,122,0.3);
  background: transparent;
  cursor: pointer;
  transition: background 0.3s, transform 0.3s, border-color 0.3s;
}
.sp-dot.active {
  background: var(--g);
  border-color: var(--g);
  transform: scale(1.5);
  box-shadow: 0 0 10px var(--g);
}
@media(max-width:768px){ .section-progress { display: none; } }

/* 3D tilt cards — mouse tracking */
.tilt-card {
  transform-style: preserve-3d;
  transition: transform 0.1s ease;
}
.tilt-card .tilt-inner {
  transform: translateZ(20px);
}

/* Scroll-triggered line draw */
.draw-line {
  stroke-dashoffset: 1000;
  stroke-dasharray: 1000;
  transition: stroke-dashoffset 1.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.draw-line.drawn {
  stroke-dashoffset: 0;
}

/* Glitch text effect on hover */
.glitch {
  position: relative;
}
.glitch::before,
.glitch::after {
  content: attr(data-text);
  position: absolute;
  top: 0; left: 0;
  opacity: 0;
  transition: opacity 0.1s;
}
.glitch:hover::before {
  opacity: 0.7;
  animation: glitch1 0.3s infinite;
  color: var(--g);
  clip-path: polygon(0 0, 100% 0, 100% 35%, 0 35%);
}
.glitch:hover::after {
  opacity: 0.7;
  animation: glitch2 0.3s infinite;
  color: var(--b);
  clip-path: polygon(0 65%, 100% 65%, 100% 100%, 0 100%);
}
@keyframes glitch1 {
  0% { transform: translate(2px, -2px); }
  33% { transform: translate(-2px, 2px); }
  66% { transform: translate(2px, 1px); }
  100% { transform: translate(-1px, -1px); }
}
@keyframes glitch2 {
  0% { transform: translate(-2px, 2px); }
  33% { transform: translate(2px, -1px); }
  66% { transform: translate(-1px, 2px); }
  100% { transform: translate(2px, -2px); }
}

/* Floating 3D mockup section */
/* ============================================================
   ESTILOS COMPLETOS: MOCKUP 3D (DESKTOP) + CARRUSEL (MOBILE)
   ============================================================ */

/* 1. ESTILOS BASE Y DESKTOP (Perspectiva 3D) */
#mockup3d-section {
  padding: 100px 20px;
  perspective: 1400px;
  overflow: hidden;
  position: relative;
  background: #050a0f; 
}

.mockup3d-stage {
  position: relative;
  height: 550px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.screen-3d {
  position: absolute; /* Importante para el efecto 3D en Desktop */
  background: #1a1a1a;
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.5);
  transition: all 0.6s ease;
  overflow: hidden;
  width: 380px; /* Ancho base */
}

/* Detalles de las barras superiores */
.screen-3d-bar {
  background: rgba(255,255,255,0.05);
  padding: 8px 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.s3d-dot { width: 6px; height: 6px; border-radius: 50%; background: #444; }
.s3d-url { margin-left: 10px; font-size: 10px; color: rgba(255,255,255,0.4); font-family: monospace; }
.screen-3d-img { display: block; width: 100%; object-fit: cover; }

/* Posiciones 3D Desktop */
.screen-left { transform: translateX(-350px) rotateY(25deg) scale(0.9); opacity: 0.7; z-index: 5; }
.screen-main { width: 500px; z-index: 10; transform: translateZ(100px); }
.screen-right { transform: translateX(350px) rotateY(-25deg) scale(0.9); opacity: 0.7; z-index: 5; }

.screen-stand {
  position: absolute;
  bottom: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
}
.stand-neck { width: 40px; height: 30px; background: #222; margin: 0 auto; }
.stand-base { width: 120px; height: 8px; background: #333; border-radius: 4px; }

.circuit-glow-svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120%;
  pointer-events: none;
}


/* ==========================================
   1. ESTILOS DESKTOP (SIN CAMBIOS)
   ========================================== */
#mockup3d-section {
    padding: 100px 20px;
    perspective: 1400px;
    overflow: hidden;
    background: #050a0f;
    position: relative;
}

.mockup3d-stage {
    position: relative;
    height: 550px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.screen-3d {
    position: absolute;
    background: #1a1a1a;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.6s ease;
    width: 380px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
}

.screen-left  { transform: translateX(-350px) rotateY(25deg) scale(0.9); z-index: 5; opacity: 0.8; }
.screen-main  { width: 500px; z-index: 10; transform: translateZ(100px); }
.screen-right { transform: translateX(350px) rotateY(-25deg) scale(0.9); z-index: 5; opacity: 0.8; }

.screen-3d-bar { background: #222; padding: 10px; display: flex; gap: 5px; }
.s3d-dot { width: 6px; height: 6px; border-radius: 50%; background: #444; }
.screen-3d-img { width: 100%; display: block; object-fit: cover; }

.screen-stand { position: absolute; bottom: -40px; left: 50%; transform: translateX(-50%); width: 120px; }
.stand-neck { width: 40px; height: 40px; background: #222; margin: 0 auto; }
.stand-base { width: 120px; height: 10px; background: #333; border-radius: 4px; }
.circuit-glow-svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; pointer-events: none; }

/* Ocultar dots en desktop */
.carousel-dots { display: none; }

/* ==========================================
   2. VERSION MÓVIL (CARRUSEL + INDICADORES)
   ========================================== */
@media (max-width: 768px) {
    .mockup3d-stage {
        display: block !important;
        white-space: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        height: auto !important;
        padding: 20px 0 !important;
        scroll-snap-type: x mandatory; 
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none; /* Firefox */
    }

    .mockup3d-stage::-webkit-scrollbar { display: none; }

    .circuit-glow-svg, .screen-stand { display: none !important; }

    .screen-3d {
        display: inline-block !important;
        position: static !important;
        vertical-align: top !important;
        width: 80% !important;
        margin-left: 10% !important; /* Centrado visual */
        margin-right: 0 !important;
        transform: none !important;
        opacity: 1 !important;
        scroll-snap-align: center;
        white-space: normal !important;
    }

    /* El último elemento necesita margen a la derecha para no quedar pegado */
    .screen-3d:last-child { margin-right: 10% !important; }

    .screen-3d-img { height: 280px !important; }

    /* Estilos de los Puntos (Dots) */
    .carousel-dots {
        display: flex;
        justify-content: center;
        gap: 8px;
        margin-top: 25px;
    }

    .dot {
        width: 8px;
        height: 8px;
        background: rgba(255, 255, 255, 0.2);
        border-radius: 50%;
        transition: all 0.3s ease;
    }

    .dot.active {
        background: #00ff7a; /* Color verde de tu marca */
        box-shadow: 0 0 10px rgba(0, 255, 122, 0.5);
        width: 20px; /* Punto alargado para el activo */
        border-radius: 4px;
    }

    /* Flecha indicadora opcional (Desliza) */
    .mockup3d-stage::after {
        content: '← Desliza →';
        display: block;
        text-align: center;
        color: rgba(255,255,255,0.4);
        font-size: 12px;
        margin-top: 10px;
        animation: pulse 2s infinite;
    }
}

@keyframes pulse {
    0% { opacity: 0.3; }
    50% { opacity: 0.7; }
    100% { opacity: 0.3; }
}


/* Circuit glow lines behind screens */
.circuit-glow-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
@media(max-width:768px){ .circuit-glow-svg { display: none; } }

.screen-3d {
  position: absolute;
  border-radius: 12px;
  overflow: hidden;
  box-shadow:
    0 0 0 1.5px rgba(0,255,122,0.25),
    0 0 60px rgba(0,255,122,0.15),
    0 0 120px rgba(0,200,100,0.08),
    0 40px 100px rgba(0,0,0,0.9);
  background: #0d1a24;
  transform-style: preserve-3d;
  transition: transform 0.05s ease;
}

/* Main center screen */
.screen-main {
  width: 580px;
  z-index: 10;
  transform: perspective(1200px) rotateY(0deg) rotateX(4deg);
}
@media(max-width:768px){
  .screen-main {
    width: calc(100vw - 40px);
    position: relative;
    transform: none !important;
  }
}

/* Left screen */
.screen-left {
  width: 340px;
  left: 2%;
  transform: perspective(1200px) rotateY(28deg) rotateX(4deg) translateZ(-80px) scale(0.85);
  z-index: 5;
  box-shadow:
    0 0 0 1.5px rgba(0,221,255,0.2),
    0 0 40px rgba(0,221,255,0.1),
    0 40px 80px rgba(0,0,0,0.8);
}
@media(max-width:768px){ .screen-left { display: none; } }

/* Right screen */
.screen-right {
  width: 340px;
  right: 2%;
  transform: perspective(1200px) rotateY(-28deg) rotateX(4deg) translateZ(-80px) scale(0.85);
  z-index: 5;
  box-shadow:
    0 0 0 1.5px rgba(0,221,255,0.2),
    0 0 40px rgba(0,221,255,0.1),
    0 40px 80px rgba(0,0,0,0.8);
}
@media(max-width:768px){ .screen-right { display: none; } }

/* Screen reflection */
.screen-3d::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, rgba(0,255,122,0.04), transparent);
  z-index: 5;
  pointer-events: none;
}
/* Bottom glow rim */
.screen-3d::after {
  content: '';
  position: absolute;
  bottom: 0; left: 10%; right: 10%;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(0,255,122,0.8), rgba(0,221,255,0.7), transparent);
  z-index: 6;
}

.screen-3d-bar {
  height: 26px;
  background: rgba(4,8,16,0.98);
  display: flex;
  align-items: center;
  padding: 0 12px;
  gap: 6px;
  border-bottom: 1px solid rgba(0,255,122,0.07);
  position: relative;
  z-index: 4;
}
.s3d-dot { width: 8px; height: 8px; border-radius: 50%; }
.s3d-d1 { background: #ff5f57; }
.s3d-d2 { background: #ffbd2e; }
.s3d-d3 { background: #28ca41; }
.s3d-url {
  margin-left: 8px;
  font-family: 'Space Mono', monospace;
  font-size: 8.5px;
  color: rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.04);
  border-radius: 20px;
  padding: 2px 10px;
}
.screen-3d-img {
  width: 100%;
  display: block;
  object-fit:contain;
  object-position: top;
  filter: brightness(0.7) saturate(0.82);
  transition: filter 0.4s;
}
.screen-3d-content{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  overflow:hidden;
}

.screen-3d-content img{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
  object-position:top;
  filter: brightness(0.75) saturate(0.85);
}
/* Línea separadora */
.screen-3d-content{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  overflow:hidden;
}

.screen-3d-content img{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
  object-position:top;
  filter: brightness(0.75) saturate(0.85);
}

/* Línea separadora */
.screen-3d-content{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  overflow:hidden;
}

.screen-3d-content img{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
  object-position:top;
  filter: brightness(0.75) saturate(0.85);
}

/* 🔥 Línea Neon */
.neon-divider{
  height:1px;
  margin:2px 4%;
  background: linear-gradient(
    90deg,
    transparent,
    #00ff7a,
    #00ddff,
    #00ff7a,
    transparent
  );
  box-shadow:
    0 0 6px #00ff7a,
    0 0 12px #00ddff,
    0 0 18px rgba(0,255,122,0.6);
  border-radius:2px;
}
.neon-divider{
  background-size:200% 100%;
  animation: neonMove 4s linear infinite;
}

@keyframes neonMove{
  0%{ background-position:0% 0; }
  100%{ background-position:200% 0; }
}

/* tarjeta derecha  */
/* Mostrar solo en escritorio */
.desktop-only{
  display:block;
}

.mobile-only{
  display:none;
}

/* En móvil cambiamos */
@media(max-width:768px){

  .desktop-only{
    display:none;
  }

  .mobile-only{
    display:flex;
    flex-direction:column;
    width:100%;
    height:100%;
  }

}
.neon-divider{
  height:2px;
  margin:6px 8%;
  background: linear-gradient(
    90deg,
    transparent,
    #00ff7a,
    #00ddff,
    #00ff7a,
    transparent
  );
  box-shadow:
    0 0 6px #00ff7a,
    0 0 12px #00ddff,
    0 0 18px rgba(0,255,122,0.6);
  border-radius:2px;
}
@media(max-width:768px){

  .neon-divider{
    height:1px;
    opacity:0.7;
    box-shadow:
      0 0 2px #00ff7a;
  }

}



/* Floating 3D stand */
.screen-stand {
  position: absolute;
  bottom: -28px;
  left: 50%;
  transform: translateX(-50%);
}
.stand-neck {
  width: 50px; height: 20px;
  background: linear-gradient(180deg, #131f30, #0c1420);
  clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%);
  margin: 0 auto;
}
.stand-base {
  width: 160px; height: 8px;
  background: #090e1a;
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.7);
  margin: 0 auto;
}
.stand-refl {
  width: 300px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,255,122,0.08), transparent 70%);
  margin: 2px auto 0;
}

/* Horizontal scrolling services marquee-3d */
.ticker-3d {
  overflow: hidden;
  padding: 40px 0;
  position: relative;
  z-index: 2;
}
.ticker-3d-track {
  display: flex;
  gap: 24px;
  animation: ticker3d 30s linear infinite;
  width: max-content;
}
.ticker-3d-item {
  flex-shrink: 0;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(0,255,122,0.12);
  border-radius: 6px;
  padding: 20px 28px;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: border-color 0.3s;
}
.ticker-3d-item:hover { border-color: rgba(0,255,122,0.35); }
.t3i-icon { font-size: 24px; }
.t3i-label { font-family: 'Space Mono', monospace; font-size: 11px; color: rgba(255,255,255,0.45); letter-spacing: 1.5px; text-transform: uppercase; white-space: nowrap; }
.t3i-label span { color: var(--g); }
@keyframes ticker3d { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Horizontal scroll number section */
.counter-section {
  padding: 80px 60px;
  position: relative;
  z-index: 2;
  background: radial-gradient(ellipse 1000px 500px at 50% 50%, rgba(0,255,122,0.04), transparent 70%);
}
@media(max-width:768px){ .counter-section { padding: 40px 20px; } }

.counter-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px;
  overflow: hidden;
}
@media(max-width:768px){ .counter-grid { grid-template-columns: 1fr 1fr; } }

.counter-item {
  background: rgba(2,12,16,0.9);
  padding: 48px 36px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: background 0.3s;
}
@media(max-width:768px){ .counter-item { padding: 32px 16px; } }

.counter-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: transparent;
  transition: background 0.3s;
}
.counter-item:nth-child(1)::before { background: linear-gradient(90deg, transparent, var(--g), transparent); }
.counter-item:nth-child(2)::before { background: linear-gradient(90deg, transparent, var(--b), transparent); }
.counter-item:nth-child(3)::before { background: linear-gradient(90deg, transparent, #a855f7, transparent); }
.counter-item:nth-child(4)::before { background: linear-gradient(90deg, transparent, #ff9a3c, transparent); }
.counter-item:hover { background: rgba(0,255,122,0.03); }

.ci-n {
  font-size: 64px;
  font-weight: 800;
  letter-spacing: -3px;
  line-height: 1;
  margin-bottom: 10px;
}
@media(max-width:768px){ .ci-n { font-size: 42px; letter-spacing: -2px; } }
@media(max-width:380px){ .ci-n { font-size: 34px; } }

.ci-label {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  color: rgba(255,255,255,0.35);
  letter-spacing: 2px;
  text-transform: uppercase;
  line-height: 1.6;
}
@media(max-width:768px){ .ci-label { font-size: 9px; letter-spacing: 1px; } }

/* Horizontal scroll snap section */
.hscroll-section {
  overflow: hidden;
  position: relative;
  z-index: 2;
}
.hscroll-inner {
  display: flex;
  width: 400vw;
  height: 100vh;
  transition: transform 0.8s cubic-bezier(0.76, 0, 0.24, 1);
}
.hscroll-panel {
  width: 100vw;
  height: 100vh;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px;
  position: relative;
}

/* Morphing background between sections */
.section-morph {
  position: relative;
}
.section-morph::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 200px;
  background: linear-gradient(180deg, rgba(2,12,16,0) 0%, rgba(0,255,122,0.02) 50%, rgba(2,12,16,0) 100%);
  pointer-events: none;
}

/* Scroll-triggered reveal with clip-path */
.clip-reveal {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1s cubic-bezier(0.23, 1, 0.32, 1);
}
.clip-reveal.revealed {
  clip-path: inset(0 0% 0 0);
}

/* Magnetic buttons */
.btn-magnetic {
  transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

/* Scrolling text hero */
.hero-scroll-text {
  position: absolute;
  bottom: 100px;
  left: 0;
  right: 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 120px;
  font-weight: 800;
  letter-spacing: -4px;
  color: rgba(255,255,255,0.03);
  pointer-events: none;
  z-index: 0;
  font-family: 'Syne', sans-serif;
  animation: heroText 20s linear infinite;
}
@keyframes heroText {
  from { transform: translateX(0); }
  to { transform: translateX(-33.33%); }
}

/* Progress bar at top */
.reading-bar {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--g), var(--b));
  z-index: 9999;
  width: 0%;
  transition: width 0.1s linear;
  box-shadow: 0 0 10px var(--g), 0 0 20px rgba(0,255,122,0.4);
}



/* video logo */
.hero-video-banner {
  position: relative;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);

  /* ↓ Ajustá este valor a gusto — probá entre 180px y 260px */
  height: clamp(30px, 19vw, 170px);

  overflow: hidden;
  margin: 1.5rem 0 2rem 0;
  z-index: 2;
}

.hero-video-banner video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center; /* si el logo está arriba probá "center top" */

  mix-blend-mode: screen;

  filter:
    drop-shadow(0 0 20px rgba(0,255,122,.4))
    drop-shadow(0 0 60px rgba(0,255,122,.15));
}

.video-fade-top {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(to bottom, #060b10, transparent);
  pointer-events: none;
  z-index: 3;
}

.video-fade-bottom {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(to top, #060b10, transparent);
  pointer-events: none;
  z-index: 3;
}

@media (max-width: 768px) {
  .hero-video-banner {
    height: clamp(120px, 30vw, 180px);
  }
}


/* ===== SLIDER - IDENTIDAD DE MARCA ===== */

.slider-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-top: 15px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.slider-track {
  display: flex;
  transition: transform 0.5s ease-in-out;
}

.slide {
  min-width: 100%;
  box-sizing: border-box;
  padding: 8px;
}

.slide img {
  width: 100%;
  height: 280px;
  object-fit: cover; /* <-- clave: imagen siempre llena el espacio */
  display: block;
  border-radius: 30px 80px 50px 100px;
}

/* Botones prev/next */
.prev,
.next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  border: none;
  padding: 10px 16px;
  font-size: 1.5rem;
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
  transition: background 0.3s;
  line-height: 1;
}

.prev { left: 10px; }
.next { right: 10px; }

.prev:hover,
.next:hover {
  background: rgba(0, 0, 0, 0.75);
}

/* ===== TÍTULO ===== */
.c-title2 {
  font-size: 3rem;
  font-weight: 900;
  text-align: center;
  background: linear-gradient(120deg, #ff9a9e, #c79898, #5994f1, #c2e9fb);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: all 0.3s ease;
}

.c-title2:hover {
  background: linear-gradient(120deg, #72fafa, #e7f84a, #88d3ce, #6a11cb);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  transform: scale(1.05);
  display: inline-block; /* necesario para que funcione el scale */
}

/* ===== RESPONSIVE ===== */

/* ===== FIX DESKTOP SLIDER ===== */
@media (min-width: 1024px) {
  .slide img {
    height: 380px;        
    object-fit: contain;  
      background: radial-gradient(circle at 20% 30%, rgba(0,255,122,0.12), transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(0,180,255,0.12), transparent 50%),
              linear-gradient(135deg, #0b0f14, #0f1720, #0b0f14);
  }
}


/* Tablets <= 992px */
@media screen and (max-width: 992px) {
  .srv-card.srv-wide {
    flex-direction: column;
    gap: 15px;
  }

  .slider-container {
    width: 100%;
    margin-top: 20px;
  }

  .slide img {
    height: 240px;
  }

  .c-title2 { font-size: 2.5rem; }
  .c-desc    { font-size: 1rem; }
  .c-tags    { justify-content: center; }
}

/* Móviles <= 768px */
@media screen and (max-width: 768px) {
  .srv-card.srv-wide { gap: 10px; }

  .slide img { height: 200px; }

  .c-title2  { font-size: 2rem; }
  .c-desc    { font-size: 0.9rem; }
  .c-icon    { font-size: 1.4rem; }
  .c-tags    { gap: 6px; }

  .prev, .next {
    padding: 8px 13px;
    font-size: 1.2rem;
  }
}

/* Pantallas muy pequeñas <= 480px */
@media screen and (max-width: 480px) {
  .slide img { height: 160px; }

  .c-title2  { font-size: 1.6rem; }
  .c-desc    { font-size: 0.8rem; }
  .c-icon    { font-size: 1.2rem; }
  .c-tags    { gap: 4px; }

  .slider-container { margin-top: 12px; }

  .prev, .next {
    padding: 6px 11px;
    font-size: 1rem;
  }
}

.my-navigation span {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2rem;
  color: #fff;
  background: rgba(0,0,0,0.3);
  padding: 10px;
  border-radius: 50%;
  cursor: pointer;
  user-select: none;
  z-index: 10;
}


#myBtn {
  position: fixed;
  bottom: 25px;
  right: 25px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(6px);    
  color: white;
  cursor: pointer;
  font-size: 18px;
  z-index: 9999;
  pointer-events: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.3s ease;
}

#myBtn.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}





/* slider imagenes fantasy */

/* ===== MY SLIDER ===== */

.my-slider {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.my-slides {
  display: flex;
  transition: transform 0.6s ease-in-out;
}

.my-slide {
  min-width: 100%;
  box-sizing: border-box;
}

.my-slide img {
  width: 80%;
  aspect-ratio: 16 / 9; 
  object-fit: cover;
  display: block;
  border-radius: 16px;
}

/* ===== BOTONES PREV / NEXT ===== */

.my-navigation {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding: 0 16px;
  box-sizing: border-box;
  pointer-events: none; /* evita bloquear clicks en la imagen */
}

.my-prev,
.my-next {
  pointer-events: all;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  border: none;
  padding: 12px 18px;
  font-size: 1.4rem;
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.3s;
  line-height: 1;
  user-select: none;
}

.my-prev:hover,
.my-next:hover {
  background: rgba(0, 0, 0, 0.75);
}

/* ===== DOTS ===== */

.my-dots {
  position: absolute;
  bottom: 14px;
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.my-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background 0.3s, transform 0.3s;
}

.my-dot.active {
  background: #fff;
  transform: scale(1.3);
}

/* ===== RESPONSIVE ===== */

@media screen and (max-width: 992px) {
  .my-slide img {
    height: 380px;
  }

  .my-prev,
  .my-next {
    padding: 10px 15px;
    font-size: 1.2rem;
  }
}

@media screen and (max-width: 768px) {
  .my-slide img {
    height: 280px;
  }

  .my-prev,
  .my-next {
    padding: 8px 13px;
    font-size: 1rem;
  }

  .my-dot {
    width: 8px;
    height: 8px;
  }
}

@media screen and (max-width: 480px) {
  .my-slide img {
    height: 200px;
    border-radius: 10px;
  }

  .my-slider {
    border-radius: 10px;
  }

  .my-prev,
  .my-next {
    padding: 6px 11px;
    font-size: 0.9rem;
  }

  .my-dots {
    bottom: 8px;
    gap: 6px;
  }
}





.my-navigation .my-prev {
  left: 15px;
}

.my-navigation .my-next {
  right: 15px;
}

.my-dots {
  text-align: center;
  position: absolute;
  bottom: 15px;
  width: 100%;
}

.my-dot {
  height: 12px;
  width: 12px;
  margin: 0 5px;
  background-color: rgba(255,255,255,0.5);
  border-radius: 50%;
  display: inline-block;
  cursor: pointer;
}

.my-dot.active {
  background-color: #fff;
}


/* Botones */
.prev, .next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.4);
  color: white;
  border: none;
  padding: 10px;
  cursor: pointer;
  border-radius: 50%;
}

.prev { left: 10px; }
.next { right: 10px; }



.foot-seo {
  max-width: 700px;
  margin: 40px auto 10px;
  font-size: 0.85rem;
  opacity: 0.7;
  text-align: center;
  line-height: 1.6;
}