   /* =====================================================
       AXORA — Tokens (dark premium)
       ===================================================== */
    :root{
      --bg:#0B0F14; --surface:#121826; --border:#223049;
      --text:#E6EEF7; --muted:#A5B4C3;
      --blue:#1F3A8A; --turq:#12D4C7; --cta:#2563EB; --slate:#6E7785;
      --radius:20px; --shadow:0 22px 60px rgba(0,0,0,.45); --container:1200px;
    }

    /* Base */
    *{ box-sizing:border-box } html,body{ height:100% }
    body{ margin:0; background:var(--bg); color:var(--text); font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility }
    h1,h2,h3,h4{ font-family:"Space Grotesk",Inter,system-ui,sans-serif; margin:0 0 12px } h1{ font-weight:700; letter-spacing:-.02em }
    p{ margin:0 0 14px } a{ color:var(--cta); text-decoration:none } img,svg{ display:block; max-width:100% }
    .container{ max-width:var(--container); margin-inline:auto; padding:0 24px }
    .muted{ color:var(--muted) }

    /* Botones / Paneles */
    .btn{ display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:12px; font-weight:600 }
    .btn.primary{ background:var(--cta); color:#fff } .btn.primary:hover{ filter:brightness(1.08) }
    .btn.ghost{ color:var(--text); border:1px solid color-mix(in srgb,var(--turq) 45%,transparent) }
    .btn.ghost:hover{ background:color-mix(in srgb,var(--turq) 12%,transparent) }
    .panel{ background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0)) , var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); position:relative; overflow:hidden }

    /* Borde con gradiente animado */
    .border-anim{ position:relative }
    .border-anim::before{
      content:""; position:absolute; inset:-1px; padding:1px; border-radius:inherit;
      background:conic-gradient(from 0deg,var(--blue),var(--turq),var(--cta),var(--blue));
      -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
      -webkit-mask-composite:xor; mask-composite:exclude; opacity:.5; pointer-events:none;
      animation:spin 14s linear infinite
    }
    @keyframes spin{ to{ transform:rotate(1turn) } }

    /* Nav */
    .nav{ position:sticky; top:0; z-index:50; backdrop-filter:blur(10px) saturate(1.2); background:color-mix(in srgb,var(--bg) 86%,transparent); border-bottom:1px solid color-mix(in srgb,var(--border) 85%,transparent) }
    .nav .inner{ height:72px; display:flex; align-items:center; justify-content:space-between }
    .brand{ display:flex; align-items:center; gap:12px; font-weight:800 }
    .logo{ width:28px; height:28px; border-radius:8px; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue),var(--turq)) }
    .logo::before{ content:""; width:14px; height:14px; background:#fff; clip-path:polygon(50% 10%,80% 80%,62% 80%,50% 54%,38% 80%,20% 80%) }

    /* HERO */
    .hero{ position:relative; overflow:hidden; background:var(--bg) }
    .hero::before{ content:""; position:absolute; inset:-20%; filter:blur(6px); mix-blend-mode:screen; background:
      radial-gradient(60% 60% at 20% 40%, rgba(18,212,199,.16) 0%, transparent 70%),
      radial-gradient(50% 50% at 72% 22%, rgba(31,58,138,.14) 0%, transparent 68%),
      radial-gradient(55% 55% at 80% 80%, rgba(37,99,235,.12) 0%, transparent 70%) }
    .hero .inner{ position:relative; z-index:1; padding:96px 0 72px; display:grid; grid-template-columns:1.2fr .8fr; gap:48px }
    @media (max-width:960px){ .hero .inner{ grid-template-columns:1fr; padding:84px 0 48px } }
    .spark-canvas{ position:absolute; inset:0; z-index:0; opacity:.35; mix-blend-mode:screen }
    .hero h1{ font-size:clamp(36px,4.4vw,66px); line-height:1.05 } .hero p{ font-size:clamp(16px,1.6vw,20px) }
    .visual{ aspect-ratio:4/3; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0)); position:relative }

    /* === Pain-points (carrusel tipo Augoor) === */
    .pp-panel{ padding:20px 8px }
    .pp-rail-wrap{ position:relative; padding:14px 42px }
    .pp-rail{
      display:grid; grid-auto-flow:column; grid-auto-columns:clamp(260px,28vw,320px); gap:18px;
      overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:12px; -webkit-overflow-scrolling:touch;
      padding:6px 6px 22px; border-radius:22px;
      background:radial-gradient(120% 160% at 0% 0%, rgba(255,255,255,.06), rgba(255,255,255,0) 60%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.08)), var(--surface);
      border:1px solid color-mix(in srgb, var(--border) 80%, transparent); box-shadow:0 18px 46px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.02)
    }
    #pp-rail{ scroll-behavior:smooth }
    .pp-rail::-webkit-scrollbar{ height:8px } .pp-rail::-webkit-scrollbar-thumb{ background:#1a263b; border-radius:8px } .pp-rail::-webkit-scrollbar-track{ background:transparent }
    .pp-card{
      scroll-snap-align:start; border-radius:18px; padding:20px; min-height:160px; display:flex; flex-direction:column; justify-content:flex-start;
      background:
        radial-gradient(180px 80px at 85% 0%, rgba(18,212,199,.10), transparent 60%),
        radial-gradient(160px 70px at 0% 100%, rgba(31,58,138,.12), transparent 60%),
        linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.06));
      border:1px solid color-mix(in srgb, var(--border) 75%, transparent); box-shadow:0 10px 28px rgba(0,0,0,.35); position:relative
    }
    .pp-card h3{ font-size:18px; line-height:1.25; margin-bottom:8px } .pp-card p{ font-size:14px }
    .pp-card::after{
      content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:.16; mix-blend-mode:soft-light;
      background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
      background-size:140px 140px; background-repeat:repeat
    }
    .pp-arrow{
      position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:999px; display:grid; place-items:center; cursor:pointer;
      background:color-mix(in srgb, var(--bg) 70%, transparent); border:1px solid color-mix(in srgb, var(--border) 70%, transparent); color:var(--muted); transition:.2s ease; user-select:none
    }
    .pp-arrow:hover{ background:color-mix(in srgb,var(--turq) 12%,transparent); color:#fff }
    #pp-prev{ left:8px } #pp-next{ right:8px }
    .pp-dots{ display:flex; gap:8px; justify-content:center; margin-top:14px }
    .pp-dot{ width:8px; height:8px; border-radius:50%; background:#2c3a52; opacity:.6; transition:transform .2s ease, opacity .2s ease, box-shadow .2s ease }
    .pp-dot.is-active{ background:var(--turq); opacity:1; box-shadow:0 0 0 4px color-mix(in srgb, var(--turq) 20%, transparent); transform:scale(1.05) }

    /* ===== “Seguridad primero” — arte propio (sin Spline) ===== */
    .secure-card{ background:radial-gradient(120% 120% at 85% 10%, rgba(37,99,235,.12), transparent 60%), var(--surface); position:relative; overflow:hidden }
    .secure-card .secure-art{ position:absolute; right:22px; top:18px; bottom:18px; width:clamp(260px,30vw,420px); border-radius:18px; overflow:hidden; pointer-events:none; isolation:isolate }
    .axora-secure{ width:100%; height:100% }
    .axora-secure .layer{ fill:url(#axoraGrad); stroke:color-mix(in srgb,var(--turq) 30%, transparent); stroke-width:1.2; filter:drop-shadow(0 18px 40px rgba(0,0,0,.35)); transform-origin:210px 130px; animation:bob 4s ease-in-out infinite }
    .axora-secure .l2{ opacity:.85; transform:translateY(14px) scale(.97); animation-delay:.12s }
    .axora-secure .l3{ opacity:.72; transform:translateY(28px) scale(.94); animation-delay:.24s }
    @keyframes bob{ 0%,100%{ transform:translateY(var(--y,0)) scale(var(--s,1)) } 50%{ transform:translateY(calc(var(--y,0) - 6px)) scale(calc(var(--s,1)*1.02)) } }
    .axora-secure .shield{ fill:color-mix(in srgb,var(--bg) 50%, transparent); stroke:color-mix(in srgb,var(--border) 70%, transparent); stroke-width:1.4 }
    .axora-secure .key{ fill:none; stroke:#cfe8ff; stroke-width:1.6; stroke-linecap:round }
    .axora-secure .pulse{ fill:none; stroke:var(--turq); stroke-width:1.4; opacity:.45; transform-origin:center; animation:pulse 2.6s ease-out infinite }
    @keyframes pulse{ to{ transform:scale(2.1); opacity:0 } }
    .secure-card .stack{ position:absolute; right:18px; bottom:32px; width:clamp(180px,22vw,320px); height:clamp(64px,9vw,120px); border-radius:16px; background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.06)); border:1px solid color-mix(in srgb,var(--border) 78%, transparent); box-shadow:0 12px 40px rgba(0,0,0,.35); backdrop-filter:blur(6px); opacity:.55 }
    .secure-card .stack-2{ right:38px; bottom:58px; opacity:.4 } .secure-card .stack-3{ right:58px; bottom:84px; opacity:.28 }
    @media (prefers-reduced-motion:reduce){ .axora-secure .layer,.axora-secure .pulse{ animation:none } }

    /* Tabs, grids, reveal, shimmer, etc. (igual que tenías) */
    .tabs{ display:grid; grid-template-columns:260px 1fr; gap:24px } @media (max-width:960px){ .tabs{ grid-template-columns:1fr } }
    .tablist{ display:grid; gap:12px } .tablist button{ text-align:left; padding:12px 14px; border-radius:12px; border:1px solid var(--border); background:transparent; color:var(--text); cursor:pointer }
    .tablist button[aria-selected="true"]{ background:color-mix(in srgb,var(--turq) 8%,transparent) }
    .tabpanel{ border:1px solid var(--border); border-radius:16px; padding:20px; background:var(--surface) }
    .grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px } .grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:24px } @media (max-width:960px){ .grid-3,.grid-2{ grid-template-columns:1fr } }
    .cta{ text-align:center }
    .reveal{ opacity:0; transform:translateY(22px) scale(.98); transition:.7s cubic-bezier(.2,.7,.2,1) } .reveal.in{ opacity:1; transform:none }
    .lift{ transition:transform .25s ease, box-shadow .25s ease } .lift:hover{ transform:translateY(-4px); box-shadow:0 24px 70px rgba(0,0,0,.55) }
    footer{ border-top:1px solid var(--border); color:var(--muted) }

    /* “INTEL” (look Augoor) */
    .intel{ position:relative; padding:72px 0; background:radial-gradient(120% 100% at 10% 0%, rgba(118,92,255,.22), transparent 60%), radial-gradient(80% 120% at 100% 20%, rgba(18,212,199,.10), transparent 60%), #0B0F14 }
    .intel::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.28; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E"); background-size:240px 240px }
    .intel .title{ text-align:center; margin-bottom:28px } .intel .title h2{ font-size:clamp(28px,3.4vw,44px); color:#C7A455; letter-spacing:.01em; margin:0 0 4px }
    .intel .title p{ color:var(--muted) }
    .intel-top{ display:grid; grid-template-columns:1.1fr .9fr; gap:24px; margin:18px 0 34px } @media (max-width:960px){ .intel-top{ grid-template-columns:1fr } }
    .intel-copy{ border-radius:18px; padding:22px; border:1px solid color-mix(in srgb,var(--border) 80%, transparent); background:radial-gradient(140% 100% at 0% 0%, rgba(118,92,255,.18), transparent 55%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.06)), var(--surface); box-shadow:var(--shadow) }
    .intel-visual{ border-radius:18px; overflow:hidden; position:relative; border:1px solid color-mix(in srgb,var(--border) 80%, transparent); background:radial-gradient(120% 80% at 100% 0%, rgba(18,212,199,.16), transparent 60%), linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.10)), #0B0F14; box-shadow:var(--shadow) }
    .features-intel{ display:grid; grid-template-columns:260px 1fr; gap:22px } @media (max-width:960px){ .features-intel{ grid-template-columns:1fr } }
    .features-intel .tablist{ display:grid; gap:10px }
    .features-intel .tablist button{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:12px; cursor:pointer; color:var(--text); background:rgba(255,255,255,.02); border:1px solid color-mix(in srgb,var(--border) 80%, transparent) }
    .features-intel .tablist button[aria-selected="true"]{ background:color-mix(in srgb,var(--turq) 8%, transparent); box-shadow:0 0 0 3px color-mix(in srgb,var(--turq) 18%, transparent) inset }
    .features-intel .tabpanel{ border-radius:18px; padding:22px; border:1px solid color-mix(in srgb,var(--border) 80%, transparent); background:radial-gradient(120% 80% at 85% 10%, rgba(31,58,138,.18), transparent 60%), linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.08)), var(--surface); box-shadow:var(--shadow) }

    /* Shimmer / spring / planet etc. (igual que tenías) */
    .shimmer{ position:relative; overflow:hidden }
    .shimmer::after{ content:""; position:absolute; inset:-20%; background:radial-gradient(120px 40px at var(--sx,-30%) 0%, rgba(255,255,255,.20), transparent 60%); transform:rotate(10deg); animation:shine 6s linear infinite; mix-blend-mode:screen; pointer-events:none }
    @keyframes shine{ 0%{ --sx:-30% } 50%{ --sx:130% } 100%{ --sx:-30% } }
    .spring-in{ animation:springy .9s cubic-bezier(.2,1.4,.2,1) both }
    @keyframes springy{ 0%{ transform:translateY(28px) scale(.92); opacity:0 } 60%{ transform:translateY(-6px) scale(1.02); opacity:1 } 100%{ transform:none } }
    .planet{ width:200px; height:200px; border-radius:50%; background:radial-gradient(circle at 30% 35%, #12D4C7 0%, #1F3A8A 35%, #0B0F14 70%); opacity:0; transform:scale(.85); transition:.8s cubic-bezier(.2,.7,.2,1) }
    .planet.in{ opacity:.9; transform:scale(1) }

    /* Chips */
    .chip{ display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; border:1px solid var(--border); color:var(--slate); background:rgba(255,255,255,.02) }

    /* ====== 5-BOX (2 arriba, 3 abajo) ====== */
.fivebox{ margin:64px 0 }
.fivebox .row{ display:grid; gap:22px }
.fivebox .row.top{ grid-template-columns: 1fr 1fr }
.fivebox .row.bottom{ grid-template-columns: 1fr 1fr 1fr }
@media (max-width: 980px){
  .fivebox .row.top, .fivebox .row.bottom{ grid-template-columns: 1fr }
}

/* Tarjetas base (usa tu look de panel) */
.tile{ position:relative; overflow:hidden; border-radius:20px;
  border:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.10)), var(--surface);
  box-shadow: var(--shadow);
}
.tile.padded{ padding:22px }

/* Granulado sutil tipo Augoor, sin assets externos */
.tile::after{
  content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  opacity:.16; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
  background-size:140px 140px;
}

/* Tiles de imagen (sólo imagen o imagen + overlay) */
.tile.image .media{ position:relative; aspect-ratio: 16 / 10; }
.tile.image .media img{ width:100%; height:100%; object-fit:cover; display:block; }
.tile.image .media::before{ /* viñeta/luces Axora */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(80% 90% at 8% 16%, rgba(18,212,199,.16), transparent 60%),
    radial-gradient(90% 90% at 100% 20%, rgba(31,58,138,.18), transparent 60%);
}

/* Tech logos (píldoras) */
.tech-grid{ display:flex; flex-wrap:wrap; gap:10px; align-items:center }
.tech-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; border-radius:999px;
  border:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  background: rgba(255,255,255,.03);
  color:var(--slate);
  will-change: transform, filter;
  animation: floaty 6s ease-in-out infinite;
  transition: transform .18s ease, filter .18s ease;
}
.tech-pill img{ width:18px; height:18px; display:block }
.tech-pill:hover{ transform: translateY(-2px) scale(1.02); filter: brightness(1.08) }
.tech-pill:nth-child(3n+1){ animation-delay:.2s }
.tech-pill:nth-child(3n+2){ animation-delay:.8s }
.tech-pill:nth-child(3n+3){ animation-delay:1.4s }

@keyframes floaty{
  0%,100%{ transform: translateY(0) }
  50%{ transform: translateY(-3px) }
}

/* accesibilidad */
@media (prefers-reduced-motion: reduce){
  .tech-pill{ animation:none }
}
/* ====== 5-BOX: compacidad y padding ====== */
.fivebox{ margin:48px 0 }                       /* menos aire vertical */
.fivebox .row{ gap:18px; margin-bottom:18px }   /* separación entre tarjetas */

/* Layout desktop: alturas controladas (parejas por fila) */
@media (min-width: 981px){
  .fivebox .row.top    > .tile{ height: 260px }
  .fivebox .row.bottom > .tile{ height: 220px }
  .tile{ display:flex; align-items:flex-start } /* que el contenido respete la altura */
  .tile.padded{ padding:24px 22px }             /* más padding interno */
}

/* En mobile que se adapten libres */
@media (max-width: 980px){
  .fivebox .row.top, .fivebox .row.bottom{ grid-template-columns:1fr }
  .fivebox .row.top    > .tile,
  .fivebox .row.bottom > .tile{ height:auto }
  .tile.padded{ padding:20px }
}

/* Imagen: ocupa toda la tarjeta sin crecer de más */
.tile.image .media{ width:100%; height:100% }        /* llena la altura fija en desktop */
.tile.image .media img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Bordes y grano suaves (sin tocar tu look) */
.tile{ border-radius:16px }
.tile::after{ opacity:.14 }                           /* granulado un poco más sutil */

/* Tipografía dentro de tiles de texto */
.tile.padded h3{ margin:0 0 8px }
.tile.padded p { margin:0 }

/* Tech pills más chicas y con mejor ritmo */
.tech-grid{ gap:8px 10px }
.tech-pill{ padding:6px 10px; font-size:14px }
/* ===== FIX 5-BOX ===== */

/* Centrar y dar aire lateral aunque no esté dentro de .container */
.fivebox{
  max-width: var(--container);
  margin: 48px auto;          /* separa de otras secciones */
  padding: 0 24px;            /* aire a los costados */
}

/* Grilla 2 arriba / 3 abajo (con fallbacks responsivos) */
.fivebox .row{ display:grid; gap:20px; margin-bottom:20px }
.fivebox .row.top{ grid-template-columns: repeat(2, 1fr) }
.fivebox .row.bottom{ grid-template-columns: repeat(3, 1fr) }

@media (max-width: 1100px){
  .fivebox .row.bottom{ grid-template-columns: repeat(2, 1fr) }
}
@media (max-width: 800px){
  .fivebox .row.top,
  .fivebox .row.bottom{ grid-template-columns: 1fr }
}

/* Alturas razonables (sin forzar contenido) */
.fivebox .row.top    > .tile{ min-height: 220px }
.fivebox .row.bottom > .tile{ min-height: 200px }

/* 🔧 IMPORTANTE: volver las tiles a bloque (deshace el flex global) */
.tile{ display:block }                 /* evita que <h3> y <p> queden en columnas */
.tile.padded{ padding: 22px 24px }     /* más aire interno */

/* Imagen: ocupar el alto fijado con proporción agradable */
.tile.image .media{ width:100%; height:100% }
.fivebox .row.top    .tile.image .media{ aspect-ratio: 16/9 }
.fivebox .row.bottom .tile.image .media{ aspect-ratio: 16/9 }

/* Tipografía normal dentro de tiles de texto */
.tile.padded h3{ margin:0 0 8px; line-height:1.2 }
.tile.padded p { margin:0 }

/* Granulado un poco más sutil (opcional) */
.tile::after{ opacity:.14 }
 /* --- Laptop auto-in --- */
/* Laptop animada por scroll: IZQ -> CENTRO */
/* === Vista previa con scroll (izquierda -> centro) === */
.sticky-stage{ position:relative; height:200vh; overflow:visible; }
.sticky-thing{ position:sticky; top:10vh; height:80vh; display:grid; place-items:center; overflow:visible; }

.laptop{
  width:min(900px,95vw);
  /* p=0 (arriba del stage) -> -45% (fuera a la izquierda)
     p=1 (abajo del stage)  -> 0%   (centrada) */
  transform: translateX(calc(-45% + var(--p,0)*45%))
             scale(calc(.90 + var(--p,0)*.10));
  opacity: calc(.35 + var(--p,0)*.65);
  will-change: transform, opacity;
}
@media (max-width: 900px){
  .laptop{ width:min(760px,98vw); }
}
/* --- Título centrado dorado --- */
.tri-title{
  text-align:center;
  font-size: clamp(28px, 3.5vw, 46px);
  color: var(--gold);
  letter-spacing:.01em;
  margin: 0 0 24px;
}

/* --- Grid 3 columnas responsive --- */
.tri-grid{
  display: grid;
  grid-template-columns: 1.05fr 1fr 1fr;
  gap: 20px;
}
@media (max-width: 1100px){ .tri-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 780px) { .tri-grid{ grid-template-columns: 1fr; } }

/* --- Tarjeta imagen con overlay/grano --- */
.tri-img{ padding:0; }
.tri-img-media{ position:relative; height:100%; aspect-ratio: 16/9; overflow:hidden; border-radius: inherit; }
.tri-img-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.tri-img-media::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(80% 90% at 8% 16%, rgba(18,212,199,.16), transparent 60%),
    radial-gradient(90% 90% at 100% 20%, rgba(31,58,138,.18), transparent 60%);
}
.tri-img-media::after{
  content:""; position:absolute; inset:0; pointer-events:none; mix-blend-mode:soft-light; opacity:.18;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
  background-size:140px 140px;
}

/* Texto grande dentro de la imagen */
.tri-caption{
  position:absolute; left:18px; bottom:14px;
  font-size: clamp(18px, 2.2vw, 28px);
  text-shadow: 0 1px 12px rgba(0,0,0,.35);
}

/* --- Paddings y tipografía de las otras tarjetas --- */
.tri-copy p{ font-size: 16px; }

/* --- Carrusel de iconos tipo marquee --- */
.tri-icons .icons-marquee{
  position:relative; overflow:hidden; display:flex; gap:40px; padding:6px 0;
  mask-image: linear-gradient(to right, rgba(0,0,0,0), #000 10%, #000 90%, rgba(0,0,0,0));
}
.tri-icons .icons-track{
  display:flex; gap:24px; align-items:center; flex: 0 0 auto;
  animation: iconsLoop 18s linear infinite;
}
.tri-icons img{ width:36px; height:36px; opacity:.9; filter: drop-shadow(0 4px 12px rgba(0,0,0,.35)); }
.tri-icons .icons-track:nth-child(2){ animation-delay: -9s; } /* desfasada para loop continuo */

@keyframes iconsLoop{
  from{ transform: translateX(0) }
  to  { transform: translateX(-100%) }
}

/* Ajustes de tarjetas (reusa tu look) */
.tile{ position:relative; overflow:hidden; border-radius:20px;
  border:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.10)), var(--surface);
  box-shadow: var(--shadow);
}
.tile.padded{ padding:22px }

/* grano sutil coherente con Axora */
.tile::after{
  content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  opacity:.14; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
  background-size:140px 140px;
}
/* Más aire lateral sólo en estas secciones */
/* Título + márgenes laterales (si quieres más aire) */
.tri-hero { padding-left: clamp(32px, 6vw, 72px); padding-right: clamp(32px, 6vw, 72px); }
/* aplica gutters y ancho máximo a la tri-grid directamente */
.tri-grid{
  width: min(var(--container), 100%);
  margin-inline: auto;                   /* centra */
  padding-inline: clamp(28px, 5vw, 72px);/* gutters responsivos */
  box-sizing: content-box;               /* para que el padding sea “fuera” de la grilla */
}
/* Sección 3-cuadros */
.tri-section{ padding:48px 0; }

/* Título y subtítulo */
.tri-title{
  text-align:center;
  font-size: clamp(28px, 4.2vw, 52px);
  font-weight: 700;
  letter-spacing: .01em;
  margin: 0 0 6px;
  color: var(--gold); /* ya la definimos antes */
  text-shadow: 0 0 24px rgba(18,212,199,.08);
}
.tri-subtitle{
  text-align:center;
  margin: 0 0 22px;
  font-size: clamp(14px, 1.6vw, 18px);
}

/* La grid ya la tenés; dejo el container para que no quede pegado */
.tri-grid{
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 24px;
  display:grid;
  grid-template-columns: 1.05fr 1fr .9fr;
  gap: 20px;
}
@media (max-width:1100px){
  .tri-grid{ grid-template-columns:1fr; }
}
/* ====== 3 columnas estilo Augoor ====== */
.why-axora .why-title{
  text-align:center;
  color: var(--gold);
  font-size: clamp(28px, 3.2vw, 44px);
  margin: 0 0 26px;
}

.why-grid{
  display:grid;
  grid-template-columns: 340px 1fr 1.3fr;
  gap: clamp(16px, 2vw, 28px);
  align-items:center;
}

@media (max-width: 1080px){
  .why-grid{ grid-template-columns: 1fr; }
}

/* (A) Stack con resorte */
.why-stack{
  display:grid; place-items:center;
}
.stack-img{
  width: clamp(200px, 28vw, 360px);
  filter: drop-shadow(0 22px 60px rgba(0,0,0,.45));
  opacity:.96;
}

/* (B) Texto */
.why-copy .why-list{
  margin: 0 0 18px; padding-left: 1.1rem;
  color: var(--text);
}
.why-copy .why-list li{ margin: 10px 0; }

.why-callout{
  display:inline-block;
  background: color-mix(in srgb, var(--gold) 22%, transparent);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--gold) 40%, var(--border));
  border-radius: 12px;
  padding: 12px 16px;
  box-shadow: 0 14px 40px rgba(0,0,0,.35);
}
/* ====== Sección pains estilo Augoor ====== */
.ax-pains{ padding:72px 0; background:transparent }
.ax-pains .container{ max-width:1200px; margin:0 auto; padding:0 24px }
.ax-pains-grid{
  display:grid; grid-template-columns: .32fr .68fr; gap:34px; align-items:start;
}
@media (max-width: 1024px){ .ax-pains-grid{ grid-template-columns:1fr } }

/* Resortera (capas) */
.ax-layers{
  position:relative; width:min(130px, 72vw); aspect-ratio: 1/1.15;
  margin-left:auto; filter: drop-shadow(0 28px 65px rgba(0,0,0,.35));
  transform: perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition: transform .12s ease-out;
}
.ax-layers .layer{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform: translateY(var(--dy,0)) }
.ax-layers .l1{ --dy: 0px }
.ax-layers .l2{ --dy: 24px }
.ax-layers .l3{ --dy: 52px }
.ax-layers .l4{ --dy: 78px }
.ax-layers .l5{ --dy:104px }
.ax-layers .l6{ --dy:128px }
/* Un poquito de “resorte” al entrar */
.ax-layers.spring .layer{
  animation: axSpring .9s cubic-bezier(.2,1.4,.2,1) both;
}
.ax-layers.spring .l2{ animation-delay:.02s }
.ax-layers.spring .l3{ animation-delay:.04s }
.ax-layers.spring .l4{ animation-delay:.06s }
.ax-layers.spring .l5{ animation-delay:.08s }
.ax-layers.spring .l6{ animation-delay:.10s }
@keyframes axSpring{
  0%{ transform: translateY(calc(var(--dy) + 30px)) scale(.98) }
  55%{ transform: translateY(calc(var(--dy) - 6px))  scale(1.01) }
  100%{ transform: translateY(var(--dy)) }
}

/* Tabs (lista a la izquierda del panel derecho) */
.ax-pains-right{ display:grid; grid-template-columns: .56fr .44fr; gap:24px }
@media (max-width: 900px){ .ax-pains-right{ grid-template-columns:1fr } }

.ax-tabs{ position:relative; display:grid; gap:10px; align-content:start }
.ax-tab{
  text-align:left; padding:14px 16px; border-radius:14px; border:1px solid var(--border);
  background: rgba(255,255,255,.02); color:var(--text); cursor:pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ax-tab:hover{ background: color-mix(in srgb, var(--turq) 8%, transparent) }
.ax-tab.is-active{ color:#0A0E13 } /* para contraste dentro de la pill */

.ax-tabs-pill{
  position:absolute; left:0; width:100%; height:48px; border-radius:14px;
  background: color-mix(in srgb, var(--gold, #C7A455) 92%, var(--surface) 8%);
  box-shadow: 0 8px 28px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.12);
  transform: translateY(0); transition: transform .28s cubic-bezier(.2,.8,.2,1), height .28s;
  z-index:0;
}

/* Panel de capturas */
.ax-shots{ position:relative }
.ax-shot{ display:none; }
.ax-shot.is-active{ display:block; }
.ax-shot-copy{ margin-bottom:12px }

.ax-screen{
  position:relative; border-radius:18px; overflow:hidden;
  border:1px solid color-mix(in srgb, var(--border) 80%, transparent);
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.10)), var(--surface);
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
  animation: shotIn .8s cubic-bezier(.2,1.4,.2,1) both;
}
.ax-shot.is-active .ax-screen img{
  width:100%; display:block; transform: translateX(var(--panX,0px));
  transition: transform .15s linear;
}

/* Badge abajo a la derecha “breathe” */
.ax-badge{
  position:absolute; right:14px; bottom:14px; width:72px; height:72px;
  border-radius:16px; display:grid; place-items:center;
  background: color-mix(in srgb, var(--bg) 60%, transparent);
  border:1px solid color-mix(in srgb, var(--border) 70%, transparent);
  filter: drop-shadow(0 10px 24px rgba(0,0,0,.35)); animation: breathe 3.4s ease-in-out infinite;
}
.ax-badge img{ width:38px; height:38px; opacity:.9 }

@keyframes breathe{
  0%,100%{ transform: translateY(0) scale(1) }
  50%{ transform: translateY(-3px) scale(1.03) }
}
@keyframes shotIn{
  0%{ opacity:0; transform: translateY(18px) scale(.98) }
  60%{ opacity:1; transform: translateY(-4px) scale(1.01) }
  100%{ opacity:1; transform:none }
}
/* ===== Efficiency (Axora) ===== */
.ax-eff{ padding:64px 0 }
.ax-eff-title{
  color: var(--gold, #C7A455);
  font-size: clamp(26px,3.2vw,42px);
  margin: 0 0 22px;
}

.ax-eff-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap:22px;
}
@media (max-width: 960px){
  .ax-eff-grid{ grid-template-columns:1fr; }
}

/* Tarjeta izquierda */
.ax-eff-hero{
  position:relative; overflow:hidden; border-radius:18px;
  border:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  background: radial-gradient(80% 90% at 10% 10%, rgba(18,212,199,.10), transparent 60%),
              linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.10)), var(--surface);
  box-shadow: var(--shadow);
  min-height: 320px;
}
.ax-eff-hero-bg{
  position:absolute; inset:-10%;
  background:
    radial-gradient(60% 60% at 80% 20%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(135deg, rgba(37,99,235,.18), rgba(18,212,199,.14));
  filter: blur(6px); opacity:.65; pointer-events:none;
}
.ax-eff-hero-sub{
  position:relative; z-index:2;
  padding:20px; max-width: 26ch; font-size: clamp(18px,2.2vw,24px);
}
.ax-eff-sphere{
  position:absolute; right: -10px; bottom:-14px; width: 54%;
  opacity:.95; filter: drop-shadow(0 20px 40px rgba(0,0,0,.45));
  animation: ax-spin 22s linear infinite;
}
.ax-eff-sphere .grid{ animation: ax-breathe 8s ease-in-out infinite; transform-origin: 50% 50%}
@keyframes ax-spin { to { transform: rotate(1turn) } }
@keyframes ax-breathe {
  0%,100%{ opacity:.7 } 50%{ opacity:1 }
}

/* Tarjeta derecha */
.ax-eff-copy{
  position:relative; border-radius:18px; overflow:hidden;
  border:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.10)), var(--surface);
  box-shadow: var(--shadow);
  padding: 22px;
  min-height: 320px;
}
.ax-eff-copy .ax-eff-lead{ font-weight:600; color: var(--text) }
.ax-eff-mock{
  position:absolute; right: 16px; bottom: 14px;
  width: min(620px, 62%); border-radius:16px;
  border:1px solid color-mix(in srgb, var(--border) 70%, transparent);
  box-shadow: 0 20px 60px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.03);
  transform: translate3d(0,0,0);
  will-change: transform, filter;
  filter: saturate(1.05) contrast(1.02);
}

@media (max-width: 960px){
  .ax-eff-copy{ padding-bottom: 220px }
  .ax-eff-mock{ position:absolute; right: 10px; left: 10px; width:auto }
}

/* Métricas */
.ax-eff-metrics{
  margin-top:22px; display:grid; gap:18px; grid-template-columns: repeat(3,1fr);
}
@media (max-width: 960px){ .ax-eff-metrics{ grid-template-columns:1fr } }

.ax-eff-metric{
  border-radius:16px; padding:16px 18px;
  border:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  background: radial-gradient(120% 120% at 85% 10%, rgba(31,58,138,.10), transparent 60%),
              linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.08)), var(--surface);
  box-shadow: var(--shadow);
}
.ax-eff-metric h4{ margin:0 0 6px; font-size: clamp(16px,1.6vw,18px) }

/* ========== TOKENS Y BASE ========== */
:root{
  --brand: #12d4c7;
  --brand-2: #1f3a8a;
  --gold: #c7a455;
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.68);
  --surface: #0b1118;                 /* fondo de paneles */
  --border: #263142;                   /* bordecito */
  --shadow: 0 10px 30px rgba(0,0,0,.45);
  --radius-sm: 12px; --radius: 16px; --radius-lg: 22px;
}

/* tipografía y ritmo */
body{ color:var(--text); }
h1,h2,h3,h4{ line-height:1.12; letter-spacing:-.01em; margin:0 0 .5em }
h1{ font-size:clamp(32px,4.8vw,56px) }
h2{ font-size:clamp(24px,3.4vw,36px) }
h3{ font-size:clamp(18px,2.2vw,24px) }
.muted{ color:var(--muted) }

/* contenedor seguro en laterales (anti “pegado al borde”) */
.container{ padding-inline: clamp(16px,4vw,32px) }

/* ========== CARDS Y PANELES ========== */
.card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.1)), var(--surface);
  border:1px solid color-mix(in srgb,var(--border) 78%,transparent);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.card--hover:hover{ transform: translateY(-2px); transition:transform .18s ease }

/* ========== BOTONES / LINKS ========== */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.62rem .95rem; border-radius:999px; font-weight:600;
  border:1px solid color-mix(in srgb,var(--border) 78%,transparent);
  background: radial-gradient(160% 160% at 100% 0%, rgba(18,212,199,.16), transparent 50%),
             rgba(255,255,255,.03);
  transition: transform .15s ease, filter .15s ease, border-color .15s ease;
}
.btn:hover{ transform: translateY(-1px); filter: brightness(1.05) }

.link{
  position:relative; text-decoration:none; color:var(--text); font-weight:500;
}
.link::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px;
  background: linear-gradient(90deg, var(--brand), var(--brand-2));
  transform: scaleX(0); transform-origin:left; transition: transform .22s ease;
}
.link:hover::after{ transform: scaleX(1) }

/* ========== UTILIDADES ========== */
.pad-24{ padding:24px } .pad-16{ padding:16px }
.mt-24{ margin-top:24px } .mb-24{ margin-bottom:24px }
.center{ display:grid; place-items:center }
.round{ border-radius:var(--radius) }
.img-shadow{ box-shadow: 0 20px 60px rgba(0,0,0,.5) }

/* ========== MICRO-INTERACCIONES ACCESIBLES ========== */
.reveal-once{ opacity:0; transform: translateY(12px); transition: opacity .36s ease, transform .36s ease }
.reveal-once.is-in{ opacity:1; transform:none }
@media (prefers-reduced-motion: reduce){
  .reveal-once{ transition:none }
  .btn, .card--hover{ transition:none }
}

/* ========== CHIPS / TAGS (píldoras) ========== */
.chips{ display:flex; flex-wrap:wrap; gap:8px }
.chip{
  display:inline-flex; align-items:center; gap:.5rem; padding:.4rem .7rem;
  border-radius:999px; font-size:14px; color:var(--muted);
  border:1px solid color-mix(in srgb,var(--border) 78%,transparent);
  background: rgba(255,255,255,.03);
  transition: transform .15s ease, filter .15s ease;
}
.chip:hover{ transform: translateY(-2px); filter: brightness(1.07) }

/* ========== FONDOS DECORATIVOS REUTILIZABLES ========== */
.bg-grid{
  background:
    radial-gradient(60% 60% at 15% 10%, rgba(18,212,199,.08), transparent 60%),
    radial-gradient(70% 60% at 100% 0%, rgba(31,58,138,.10), transparent 60%),
    var(--surface);
}
.intel-visual svg .code-img{
  mix-blend-mode: screen;   /* se “funde” con el fondo/gradiente */
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.35));
  pointer-events: none;
  transform-origin: 50% 50%;
  animation: codeDrift 9s ease-in-out infinite alternate;
}

@keyframes codeDrift{
  0%   { transform: translateY(0) }
  100% { transform: translateY(-6px) }
}
/* ====== Theme (Axora) ====== */
:root{
  --axora-blue: #1F3A8A;
  --axora-teal: #12D4C7;
  --axora-bg: #0B0F14;
  --axora-card: #121826;
  --axora-border: #223049;
  --axora-text: #E6EEF7;
  --axora-muted: #A5B4C3;
}

/* ====== Sección ====== */
#tab-docs{
  padding: 64px 0;
  color: var(--axora-text);
  background:
    radial-gradient(120% 80% at 10% 0%, rgba(31,58,138,.18), transparent 60%),
    radial-gradient(110% 70% at 100% 20%, rgba(18,212,199,.10), transparent 60%);
}
#tab-docs h3{
  margin: 0 0 8px;
  font-size: clamp(20px, 2.2vw, 28px);
  letter-spacing: .2px;
}
#tab-docs .muted{
  margin: 0 auto 18px;
  max-width: 70ch;
  color: var(--axora-muted);
}

/* ====== Card de video estilo Augoor ====== */
.panel-video{
  width: 100%;
  max-width: 1100px;         /* ajustá si querés más chico/grande */
  margin: 22px auto 0;
  border-radius: 18px;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;      /* mantiene 16:9 */
  background: linear-gradient(180deg, #121826, #0B0F14);
  box-shadow:
    0 30px 80px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.04);
  transition: transform .3s ease, box-shadow .3s ease;
  isolation: isolate;
}

/* Borde degradado finito (premium) */
.panel-video::after{
  content:"";
  position:absolute; inset:0;
  border-radius: inherit;
  padding: 1px;                     /* grosor del borde */
  background: linear-gradient(135deg,
               color-mix(in oklab, var(--axora-blue) 70%, transparent),
               color-mix(in oklab, var(--axora-teal) 55%, transparent));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; /* Safari/Chrome */
          mask-composite: exclude; /* Firefox */
  pointer-events: none;
  opacity: .9;
}

/* Glow animado detrás (look Augoor) */
.panel-video::before{
  content:"";
  position:absolute; inset:-25%;
  background:
    radial-gradient(42% 42% at 20% 30%, rgba(31,58,138,.28), transparent 60%),
    radial-gradient(48% 48% at 80% 20%, rgba(18,212,199,.16), transparent 60%);
  filter: blur(52px);
  animation: ax-float 8s ease-in-out infinite alternate;
  z-index: -1;
}

/* El video */
.panel-video video{
  width: 100%; height: 100%;
  display: block;
  object-fit: cover;               /* recorta con estética */
  filter: saturate(1.05) contrast(1.03);
}

/* Hover sutil */
.panel-video:hover{
  transform: translateY(-2px);
  box-shadow:
    0 38px 90px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.05);
}

/* Fallback si no hay aspect-ratio */
@supports not (aspect-ratio: 16 / 9){
  .panel-video{ padding-top:56.25% }
  .panel-video video{ position:absolute; inset:0 }
}

/* Animación glow */
@keyframes ax-float{
  to { transform: translate3d(10px,-8px,0) scale(1.03); }
}

/* Opcional: si el contenedor padre es flex, evitá que se estire */
@media (min-width: 900px){
  .panel-video{ flex: 0 1 1100px; }
}
/* ===== Overrides de tamaño: panel de video compacto ===== */
.panel-video{
  /* ancho controlado y responsivo */
  width: clamp(320px, 52vw, 760px);   /* ← probá 720/680 si querés aún más chico */
  max-width: 420px;
  margin: 16px auto 0;
  aspect-ratio: 16 / 9;
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(180deg, #121826, #0B0F14);
  box-shadow: 0 30px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
  isolation: isolate;
}
/* Gutter lateral para separar el h3 del sidebar */
#tab-docs{
  /* top | right | bottom | left */
  padding: 48px clamp(12px, 2vw, 24px) 24px clamp(16px, 2.5vw, 32px);
}

/* Un poco más de aire entre el h3 / párrafo y el video */
#tab-docs h3{ margin-bottom: 10px; }
#tab-docs .muted{ margin-bottom: 14px; }
#tab-docs .panel-video{ margin-top: 14px; }


/* Si el layout padre es flex para la columna derecha, evitá que se estire */
@media (min-width: 900px){
  #tab-docs .panel-video{ flex: 0 1 760px; }
}

/* Video dentro: recorte estético */
#tab-docs .panel-video video{
  width: 100%; height: 100%;
  display: block;
  object-fit: cover;
}

/* Opcional: texto más compacto arriba */
#tab-docs h3{ font-size: clamp(18px, 2vw, 24px); margin-bottom: 6px; }
#tab-docs .muted{ font-size: clamp(13px, 1.6vw, 15px); max-width: 68ch; }

/* Borde degradado fino (premium) */
#tab-docs .panel-video::after{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background: linear-gradient(135deg, rgba(31,58,138,.7), rgba(18,212,199,.55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; pointer-events:none;
}

/* Glow animado sutil detrás */
#tab-docs .panel-video::before{
  content:""; position:absolute; inset:-25%;
  background:
    radial-gradient(42% 42% at 20% 30%, rgba(31,58,138,.28), transparent 60%),
    radial-gradient(48% 48% at 80% 20%, rgba(18,212,199,.16), transparent 60%);
  filter: blur(52px);
  animation: ax-float 8s ease-in-out infinite alternate;
  z-index:-1;
}
@keyframes ax-float{ to{ transform: translate3d(10px,-8px,0) scale(1.03); } }
/* ====== TILE DE SEGURIDAD (candados + llaves) ====== */

/* Controla el alto si tu imagen es muy grande (opcional) */
.tile.image.is-security .media{
  position: relative;
  aspect-ratio: 16/9;           /* ajusta si quieres 21/9, 4/3, etc. */
  overflow: hidden;
  isolation: isolate;           /* para que el blend no afecte fuera */
}

/* La imagen siempre debajo de los overlays */
.tile.image.is-security .media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 1;                   /* por debajo de ::before/::after */
}

/* Variables de look */
.tile.image.is-security{
  --pattern-size: 34px;         /* tamaño del motivo repetido */
  --opacity-locks: .28;         /* opacidad capa candados */
  --opacity-keys:  .22;         /* opacidad capa llaves */
  /* color fijo dentro del SVG data:, se codifica como %23RRGGBB */
  /* Si quieres otro tono, cambia TODAS las ocurrencias %2392f0ff abajo */
}

/* Capa 1: candados, se mueve horizontal */
.tile.image.is-security .media::before{
  content:"";
  position:absolute; inset:0;
  z-index: 2;
  pointer-events:none;
  opacity: var(--opacity-locks);
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2392f0ff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M7 11V9a5 5 0 0 1 10 0v2M8 11h8a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
  background-size: var(--pattern-size) var(--pattern-size);
  background-repeat: repeat;
  animation: locksDrift 28s linear infinite;
  /* desvanecer hacia bordes para integrarlo mejor */
  -webkit-mask-image: radial-gradient(120% 110% at 50% 40%, #000 60%, transparent 100%);
          mask-image: radial-gradient(120% 110% at 50% 40%, #000 60%, transparent 100%);
}

/* Capa 2: llaves, se mueve vertical */
.tile.image.is-security .media::after{
  content:"";
  position:absolute; inset:0;
  z-index: 3;
  pointer-events:none;
  opacity: var(--opacity-keys);
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2392f0ff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M14.5 7.5a3.5 3.5 0 1 1-4.95 4.95l-5.05 5.05a1 1 0 0 1-1.41 0L2.5 16.9a1 1 0 0 1 0-1.4l5.05-5.05A3.5 3.5 0 0 1 14.5 7.5Zm-9.2 9.2 2.3 2.3M8.6 13.9l2.3 2.3'/%3E%3C/svg%3E");
  background-size: var(--pattern-size) var(--pattern-size);
  background-repeat: repeat;
  animation: keysDrift 36s linear infinite;
  -webkit-mask-image: radial-gradient(125% 115% at 60% 45%, #000 58%, transparent 100%);
          mask-image: radial-gradient(125% 115% at 60% 45%, #000 58%, transparent 100%);
}

/* Animaciones del motivo */
@keyframes locksDrift { 0%{background-position:0 0} 100%{background-position:200% 0} }
@keyframes keysDrift  { 0%{background-position:0 0} 100%{background-position:0 200%} }

/* Hover suave de la tarjeta (opcional) */
.tile.image.is-security:hover .media{ transform: translateY(-2px); transition: transform .25s ease; }
/* ====== PUNTOS SUAVES PARA EL TILE DE NUBE ====== */
.tile.image.is-cloud .media{
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.tile.image.is-cloud .media img{
  position: relative;
  z-index: 1;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* Capas de partículas (por encima de la imagen) */
.tile.image.is-cloud .media::before,
.tile.image.is-cloud .media::after{
  content:"";
  position:absolute; inset:0;
  z-index: 2;
  pointer-events:none;
  opacity: 0;                           /* se activa al entrar a viewport */
  transition: opacity .6s ease;
  mix-blend-mode: screen;               /* integra con el fondo oscuro */
  filter: blur(.2px);
  transform: translateZ(0);
  /* Máscara: concentra puntos entre la nube y la flecha */
  -webkit-mask-image: radial-gradient(80% 70% at 32% 50%, #000 30%, transparent 60%);
          mask-image: radial-gradient(80% 70% at 32% 50%, #000 30%, transparent 60%);
}

/* Capa 1: puntos pequeños, más rápidos */
.tile.image.is-cloud .media::before{
  background-image:
    radial-gradient(circle at 1px 1px, rgba(84,255,245,.9) 1px, transparent 2px);
  background-size: 18px 14px;
  background-repeat: repeat;
  animation: dotsFlowA 18s linear infinite;
}

/* Capa 2: puntos un poco más grandes, más lentos (parallax) */
.tile.image.is-cloud .media::after{
  background-image:
    radial-gradient(circle at 1px 1px, rgba(130,200,255,.85) 1.2px, transparent 2.2px);
  background-size: 24px 18px;
  background-repeat: repeat;
  animation: dotsFlowB 30s linear infinite;
}

/* Al entrar al viewport subimos opacidad */
.tile.image.is-cloud.inview .media::before{ opacity: .35; }
.tile.image.is-cloud.inview .media::after { opacity: .22; }

/* Animaciones de drift */
@keyframes dotsFlowA { 
  0%{ background-position: 0 0 } 
  100%{ background-position: 200% 0 } 
}
@keyframes dotsFlowB { 
  0%{ background-position: 0 0 } 
  100%{ background-position: -120% 0 } 
}
/* ===== Stack de capas estilo Augoor ===== */
.div-layers-animation { isolation: isolate; }
.layers-stack{
  position:relative;
  width:min(360px, 32vw);            /* ajusta el tamaño visual */
  aspect-ratio: 3 / 4;
  margin:auto;
  perspective:1000px;
  transform-style:preserve-3d;
}

.layers-stack .layer{
  position:absolute;
  left:50%; bottom:0;                /* apiladas desde abajo */
  translate:-50% 0;                  /* centrar en X */
  width:86%; max-width:420px;        /* todas mismo ancho */
  height:auto; display:block;
  will-change: transform, filter;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,.45));
  mix-blend-mode: screen;            /* suma luces de los PNG */
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}

/* offsets verticales (espaciado entre capas) + “respiración” */
@keyframes breathe {
  0%,100% { transform: translateZ(0) }
  50% { transform: translateZ(0) translateY(-6px) }
}

.l1{ --y:   0px;  --s:1.00; animation: breathe 7s ease-in-out infinite .00s; }
.l2{ --y: -24px;  --s:0.99; animation: breathe 7.2s ease-in-out infinite .10s; }
.l3{ --y: -48px;  --s:0.98; animation: breathe 7.4s ease-in-out infinite .20s; }
.l4{ --y: -72px;  --s:0.97; animation: breathe 7.6s ease-in-out infinite .30s; }
.l5{ --y: -96px;  --s:0.96; animation: breathe 7.8s ease-in-out infinite .40s; }
.l6{ --y:-120px;  --s:0.95; animation: breathe 8.0s ease-in-out infinite .50s; }

/* posición base; el JS sólo le suma el parallax */
.layers-stack .layer{
  transform: translateY(var(--y)) scale(var(--s));
}

/* Glow de base */
.layers-stack .stack-glow{
  content:""; position:absolute; left:50%; bottom:-14px;
  width:82%; height:36%;
  transform: translateX(-50%);
  background:
    radial-gradient(60% 100% at 50% 100%, rgba(0,255,235,.35), transparent 65%),
    radial-gradient(50% 80% at 30% 100%, rgba(45,130,255,.22), transparent 70%),
    radial-gradient(50% 80% at 70% 100%, rgba(255,170,40,.18), transparent 70%);
  filter: blur(20px);
  z-index:-1;
  pointer-events:none;
  opacity:.95;
  mask: radial-gradient(70% 100% at 50% 100%, #000 60%, transparent 100%);
}

/* Hover opcional (desktop) */
@media (hover:hover){
  .layers-stack:hover .layer{ transform: translateY(calc(var(--y) - 4px)) scale(var(--s)); }
}

/* Accesibilidad: si el usuario prefiere menos animación */
@media (prefers-reduced-motion: reduce){
  .layers-stack .layer{ animation:none }

}
/* Contenedor */
.ax-stack{
  --p: 0;                 /* progreso scroll (0 a 1) */
  --spread: 26px;         /* separación vertical final entre capas */
  --tilt: 0.5deg;         /* tilt sutil */
  --shrink: 0.04;         /* reducción de escala entre capas */
  width: min(100px, 56vw);
  aspect-ratio: 1 / 1.25; /* mantiene proporción y evita “saltos” */
  margin: 0 auto;
  position: relative;
}

/* Glow inferior */
.ax-stack::after{
  content:"";
  position:absolute; inset:auto 10% 4% 10%;
  height: 30%;
  background: radial-gradient(40% 60% at 50% 30%,
              rgba(0,225,255,.35), rgba(0,225,255,.12) 60%, transparent 70%);
  filter: blur(28px);
  opacity: clamp(0, var(--p), 1);
  pointer-events:none;
}

/* Área de capas */
.ax-stack__layers{
  position:absolute; inset:0;
  display:block; isolation:isolate;
}

/* Cada capa ocupa el mismo rect y se apila */
.ax-layer{
  position:absolute; inset:0;
  object-fit: contain; width:100%; height:100%;
  will-change: transform, filter, opacity;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.35));
  pointer-events:none;
}

/* Índices y variable --i (0…5) para fórmulas */
.ax-l1{ --i:0; z-index: 6; }
.ax-l2{ --i:1; z-index: 5; }
.ax-l3{ --i:2; z-index: 4; }
.ax-l4{ --i:3; z-index: 3; }
.ax-l5{ --i:4; z-index: 2; }
.ax-l6{ --i:5; z-index: 1; }

/* Movimiento: comprimido en p=0; abierto en p=1 */
.ax-layer{
  /* Desfase vertical por capa (se abre con el progreso) */
  transform:
    translateY(calc((1 - var(--p)) * (var(--i) * -1 * var(--spread))))
    rotate(var(--tilt))
    scale(calc(1 - (var(--i) * var(--shrink)) * (1 - var(--p))));
  /* Sutil “fade in” de las capas inferiores */
  opacity: calc(1 - (var(--i) * 0.05) * (1 - var(--p)));
}

/* Opcional: en pantallas pequeñas separa menos */
@media (max-width: 600px){
  .ax-stack{ --spread: 18px; }
}
.axr-stack{
  position:relative; height:460px; margin:56px 0; pointer-events:none;
}
.axr-layer{
  position:absolute; left:50%; top:50%;
  width:min(360px,62vw); max-width:520px;
  transform:translate(-50%,-50%) translate3d(0,var(--y,0px),0) !important;
  will-change:transform;
  filter:drop-shadow(0 14px 34px rgba(0,0,0,.45));
}
/* ===== Axora stack: tamaño CONTROLADO por el contenedor ===== */
#axora-stack{
  /* knob único para el tamaño global */
  --stack-size: clamp(1px, 30vw, 420px); /* ajusta aquí */
}

/* el “marco” que define el ancho/alto del stack */
#axora-stack .ax-stack__layers{
  position: relative;
  width: var(--stack-size);
  aspect-ratio: 1 / 1;      /* o 0.9 si te queda muy alto */
  margin: 0 auto;           /* centra el bloque */
  pointer-events: none;     /* evita hover raro al mover capas */
}

/* cada capa ocupa el marco al 100% y se apila */
#axora-stack .ax-layer{
  position: absolute;
  inset: 0;                 /* top/right/bottom/left: 0 */
  width: 100% !important;   /* fuerza sobre posibles reglas previas */
  height: 100% !important;
  object-fit: contain;
  display: block;
  will-change: transform, opacity;
}
/* 1) No recortes el texto del hero en móvil */
@media (max-width: 960px){
  .hero{ overflow: visible !important; }   /* quita el clip del borde izquierdo */
}

/* 2) (opcional si querés mantener overflow hidden por los efectos) 
      añade un “safe-left” de 6–8px solo al bloque del título */
@media (max-width: 960px){
  .hero .inner > :first-child{ padding-left: 12px !important; }
}
@media (max-width: 900px){
  #Plataforma.sticky-stage{
    height: 90vh !important;
    padding: 24px 0 !important;
  }
  #Plataforma .sticky-thing{
    top: 6vh !important;
    height: 72vh !important;
  }
  #Plataforma .laptop{ width: 92vw !important; }
}
/* Laptop sticky: scroll room garantizado pero sin tanto aire */
#Plataforma.sticky-stage{
  /* siempre > 100vh para que haya recorrido */
  height: clamp(130vh, 150vh, 180vh) !important;
  padding: 24px 0 !important;  /* menos aire arriba/abajo */
}
#Plataforma .sticky-thing{
  top: 6vh !important;
  height: 82vh !important;      /* < height del stage */
}

/* En móviles, un poco más corto pero con recorrido real */
@media (max-width: 900px){
  #Plataforma.sticky-stage{ height: 150vh !important; }
  #Plataforma .sticky-thing{ height: 78vh !important; top: 6vh !important; }
}
/* Laptop sticky — SOLO CSS para que vuelva a moverse */
#Plataforma.sticky-stage{
  min-height: 150vh !important;   /* siempre >100vh para que haya pista */
  padding-block: 24px !important;  /* menos aire arriba/abajo */
}
#Plataforma .sticky-thing{
  top: 8vh !important;
  height: 80vh !important;         /* debe ser menor que el stage */
  display: grid !important;
  place-items: center !important;
}

/* En móvil: un poco más compacto, pero con movimiento real */
@media (max-width: 900px){
  #Plataforma.sticky-stage{ min-height: 140vh !important; }
  #Plataforma .sticky-thing{ height: 76vh !important; top: 6vh !important; }
  #Plataforma .laptop{ width: 92vw !important; }
}
/* ===== Mobile fallback para la sección #Plataforma (laptop) ===== */
@media (max-width: 900px){
  /* la sección no necesita ser gigante en móvil */
  #Plataforma.sticky-stage{
    height: auto !important;
    min-height: 0 !important;
    padding: 24px 0 !important;
  }
  /* desactiva el sticky y deja flujo normal */
  #Plataforma .sticky-thing{
    position: relative !important;
    top: auto !important;
    height: auto !important;
    display: block !important;
  }
  /* la imagen ocupa ancho, sin transform ni opacidad rara */
  #Plataforma .laptop{
    width: 92vw !important;
    max-width: 620px !important;
    margin: 0 auto !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
@media (max-width: 900px){
  header.nav nav{ 
    display: none !important;   /* oculta todos los links/cta del nav */
  }
  header.nav .inner{
    height: 56px !important;    /* navbar compacta */
    padding: 8px 0 !important;
  }
}
/* 1) HERO: fuera el SVG/canvas y sin hueco */
.hero .visual,
.hero .ribbon{ display:none !important; }

.hero .inner{                 /* por si el grid seguía esperando la 2ª columna */
  grid-template-columns:1fr !important;
}

/* 2) Sección Eficiencia (la tarjeta con el texto de tu captura):
      ese hueco lo crea un padding reservado para la imagen flotante (.ax-eff-mock) */
@media (max-width: 1200px){
  .ax-eff-mock{ display:none !important; }   /* como ya no hay imagen, ocultar */
  .ax-eff-copy{ padding-bottom:0 !important; } /* quita el espacio reservado */
}

/* 3) Si también sacaste la imagen de la derecha en “INTEL”, colapsá la columna */
.intel-visual{ display:none !important; }
.intel-top{ grid-template-columns:1fr !important; }

/* (opcional) si quitaste el video del tab, elimina ese hueco */
#tab-docs .panel-video{ display:none !important; }
/* NAV – devolver gutters en mobile (evita que el logo toque el borde) */
@media (max-width: 900px){
  header.nav .inner{
    /* altura compacta */
    padding-block: 8px !important;

    /* gutters izquierdo/derecho + soporte para notch (iOS) */
    padding-inline-start: calc(clamp(14px, 4vw, 24px) + env(safe-area-inset-left)) !important;
    padding-inline-end:   calc(clamp(14px, 4vw, 24px) + env(safe-area-inset-right)) !important;
  }
}
.footer-principal {
  background-color: var(--negro);
}
.footer-section {
  color: var(--blanco);
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}
.footer-logo img {
  width: 450px;
}
.footer-logo p {
  text-align: center;
}
.footer-info {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 20px;
  padding: 20px;
}

.footer-contactanos p {
  margin-bottom: 10px;
  text-align: center;
}
.footer-correo {
  font-size: 12px;
}
.footer-correo a{
  color: var(--amarillo2);
}
footer
.footer-redes p {
  margin-bottom: 10px;
  text-align: center;
  font-weight: 900;
}

.footer-red {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 20px;
  font-size: 12px;
  align-items: center;
  justify-content: center;
}

.footer-politicas {
  display: flex;
  /* flex-direction: column; */
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  padding: 20px;
  font-size: 12px;
  border-top: 1px solid var(--blanco);
  margin: 0 20px;
}
.footer-form input,
.footer-form button{
  padding: 8px;
  border: none;
  color: var(--blanco);
  border-radius: 5px;
  margin: 5px 0;
}
.footer-form input {
  background-color: var(--panel-dark);
}
.footer-form button {
  background-color: var(--amarillo2);
  cursor: pointer;
}
.subscribe {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.footer-title {
  text-align: center;
  margin-bottom: 5px;
  font-weight: 900;
}
.footer-form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 100%;
  margin: auto;
}


@media screen and (min-width: 768px) {
  .footer-politicas { 
    flex-direction: row;
    font-size: 16px;
  }
  .footer-red {
    font-size: 16px;
  }
  .footer-correo {
    font-size: 16px;
  }
  .footer-form {
    flex-direction: row;
    gap: 15px;

  }
}
.hero::before {
  content: "";
  position: unset;
}
.axora-footer {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
}
@media screen and (min-width: 768px) {
    .axora-footer {
      flex-direction: row;
    }
}
.axora-footer-form input,
.axora-footer-form button{
    background-color: var(--cta);
    color: #ffffff;
}
.axora-footer-form input::placeholder {
    color: #fff;
}
.spark-canvas {
    width: 100%;
    height: 100%;
}