{"id":6960,"date":"2026-08-14T18:15:23","date_gmt":"2026-08-14T18:15:23","guid":{"rendered":"https:\/\/ruvic.ai\/?page_id=6960"},"modified":"2026-08-28T19:38:47","modified_gmt":"2026-08-28T19:38:47","slug":"manufactura","status":"publish","type":"page","link":"https:\/\/ruvic.ai\/en\/manufactura\/","title":{"rendered":"Manufacturing"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n.breadcrumb-wrap {\n  width: 100%;\n  background-color: #FBF6EC;\n  padding: 20px 24px;\n  box-sizing: border-box;\n}\n\n.breadcrumb-container {\n  max-width: 1200px;\n  margin: 0 auto;\n}\n\n.breadcrumb-pill {\n  display: inline-flex;\n  width: fit-content;\n  max-width: 100%;\n  background-color: #F2E9D8;\n  border-radius: 999px;\n  padding: 14px 28px;\n  font-family: \"Syne\", sans-serif;\n  box-sizing: border-box;\n  align-items: center;\n  flex-wrap: wrap;\n  gap: 8px;\n  font-size: 16px;\n  color: #7A6E58;\n}\n\n.breadcrumb-pill a {\n  color: #7A6E58;\n  text-decoration: none;\n  transition: color .2s ease;\n}\n\n.breadcrumb-pill a:hover {\n  color: #E4262B;\n}\n\n.breadcrumb-pill .category {\n  color: #7A6E58;\n  cursor: default;\n}\n\n.breadcrumb-pill .separator {\n  color: #E4262B;\n  font-size: 0;\n}\n\n.breadcrumb-pill .separator::before {\n  content: \"\/\";\n  font-size: 16px;\n}\n\n.breadcrumb-pill .last {\n  color: #101630;\n  font-weight: 700;\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  white-space: nowrap;\n  border: 0;\n}\n<\/style>\n\n<div class=\"breadcrumb-wrap\">\n  <div class=\"breadcrumb-container\">\n    <nav class=\"breadcrumb-pill\" aria-label=\"breadcrumb\">\n      <a href=\"\/\">Inicio<\/a>\n      <span class=\"separator\"><\/span>\n      <span class=\"category\">Soluciones<\/span>\n      <span class=\"separator\"><\/span>\n      <span class=\"last\">Manufactura<\/span>\n    <\/nav>\n  <\/div>\n  <span class=\"sr-only\"><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Inicio<\/span><\/p><\/nav><\/span>\n<\/div>\n\n\n\n<!--\n=====================================================================\nRUVIC AI \u00b7 SOLUCIONES POR INDUSTRIA \u2014 bloque HTML para WordPress\n=====================================================================\nAdaptado desde ruvic-manufactura.html. Sin nav\/breadcrumb\/footer del sitio.\nCSS aislado bajo #ruvic-ind-manufactura. Arreglado el <script><script> duplicado que\nmataba la animacion del pipeline. Los && de los scripts se\nreescribieron sin el caracter \"&\" (WordPress lo convierte a\n&#038; al guardar y rompe la sintaxis - mismo bug que en\nruvic-equipos-de-ti). Icono ..\/assets\/icon-white.png reemplazado\npor el mismo base64 que ya usa el resto del sitio.\nEnlaces \/plataforma\/xxx\/ corregidos a su URL final (evita el salto\nde redireccion; motor-ia\/ estaba directamente roto, 404).\nJSON-LD: se quito solo el BreadcrumbList (apuntaba a \/soluciones\/,\nque no existe como pagina), Service y FAQPage quedan intactos.\n=====================================================================\n-->\n\n<style>\n\/* =====================================================================\n   RUVIC \u2014 KIT v1 \"Mezcla A+B\" \u00b7 Soluciones \/ Salud\n   ===================================================================== *\/\n#ruvic-ind-manufactura{\n  --navy:#0E1632;\n  --navy-card:#131B3D;\n  --coral:#FF363A;\n  --coral-action:#E4262B;\n  --amber:#FDAA4C;\n  --amber-text:#8A5A1F;\n  --ice:#E8ECF2;\n  --cream:#FDF2E1;\n  --cream-soft:#FBF6EC;\n  --white:#FFFFFF;\n  --line:rgba(14,22,50,.10);\n  --divider:rgba(14,22,50,.07);\n  --muted:#4A5170;\n  --muted-navy:rgba(255,255,255,.66);\n  --ok:#189A4A;\n  --display:\"Syne\",system-ui,sans-serif;\n  --body:\"DM Sans\",system-ui,sans-serif;\n  --mono:\"JetBrains Mono\",ui-monospace,monospace;\n  --maxw:1200px;\n}#ruvic-ind-manufactura *{box-sizing:border-box;margin:0;padding:0}#ruvic-ind-manufactura{\n  background:var(--cream);\n  color:var(--navy);\n  font-family:var(--body);\n  font-size:1rem;\n  line-height:1.7;\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}#ruvic-ind-manufactura a{color:inherit;text-decoration:none}#ruvic-ind-manufactura img{max-width:100%;display:block}#ruvic-ind-manufactura .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}#ruvic-ind-manufactura .section{padding:112px 0}#ruvic-ind-manufactura .section--white{background:var(--white)}\/* ---------- Tipograf\u00eda ---------- *\/\n#ruvic-ind-manufactura .kicker{\n  font-family:var(--mono);\n  font-size:.72rem;\n  font-weight:500;\n  letter-spacing:.14em;\n  text-transform:uppercase;\n  color:var(--coral-action);\n  display:block;\n  margin-bottom:16px;\n}#ruvic-ind-manufactura h1,#ruvic-ind-manufactura h2,#ruvic-ind-manufactura h3{font-family:var(--display);font-weight:600}#ruvic-ind-manufactura h1{font-size:clamp(2.3rem,4.6vw,3.7rem);line-height:1.02;letter-spacing:-.03em}#ruvic-ind-manufactura h2{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.08;letter-spacing:-.025em;margin-bottom:18px}#ruvic-ind-manufactura h3{font-size:1.35rem;line-height:1.25;letter-spacing:-.015em;margin-bottom:10px}#ruvic-ind-manufactura .lead{font-size:1.15rem;line-height:1.6;color:var(--muted);max-width:700px}#ruvic-ind-manufactura .accent{color:var(--coral-action)}#ruvic-ind-manufactura .head{max-width:780px}\/* ---------- Botones ---------- *\/\n#ruvic-ind-manufactura .btn{\n  display:inline-flex;align-items:center;gap:8px;\n  font-family:var(--body);font-weight:600;font-size:14px;\n  padding:13px 24px;border-radius:999px;border:1px solid transparent;\n  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;\n  white-space:nowrap;\n}#ruvic-ind-manufactura .btn--primary{background:var(--coral-action);color:#fff}#ruvic-ind-manufactura .btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(228,38,43,.55)}#ruvic-ind-manufactura .btn--ghost{background:transparent;border-color:rgba(14,22,50,.25);color:var(--navy)}#ruvic-ind-manufactura .btn--ghost:hover{transform:translateY(-2px);background:rgba(14,22,50,.05)}#ruvic-ind-manufactura .btn--ghost-dark{background:transparent;border-color:rgba(255,255,255,.28);color:#fff}#ruvic-ind-manufactura .btn--ghost-dark:hover{transform:translateY(-2px);background:rgba(255,255,255,.08)}\/* ---------- Nav ---------- *\/\n#ruvic-ind-manufactura header{\n  position:sticky;top:0;z-index:60;\n  background:rgba(255,255,255,.88);\n  backdrop-filter:saturate(140%) blur(14px);\n  -webkit-backdrop-filter:saturate(140%) blur(14px);\n  border-bottom:1px solid var(--line);\n}#ruvic-ind-manufactura .nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}#ruvic-ind-manufactura .logo{display:inline-flex;align-items:center;gap:10px}#ruvic-ind-manufactura .logo__box{\n  width:34px;height:34px;border-radius:9px;background:var(--navy);\n  display:grid;place-items:center;position:relative;\n  color:#fff;font-family:var(--display);font-weight:600;font-size:1.05rem;\n}#ruvic-ind-manufactura .logo__box i{position:absolute;right:5px;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--coral);font-style:normal}#ruvic-ind-manufactura .logo__name{font-family:var(--display);font-weight:600;font-size:1.08rem;letter-spacing:-.01em}#ruvic-ind-manufactura .nav__links{display:flex;gap:26px;font-size:.92rem;font-weight:500;color:var(--muted)}#ruvic-ind-manufactura .nav__links a:hover{color:var(--navy)}#ruvic-ind-manufactura .nav__cta{display:flex;gap:12px;align-items:center}@media(max-width:940px){#ruvic-ind-manufactura .nav__links{display:none}#ruvic-ind-manufactura .nav__cta .btn--ghost{display:none}}\/* ---------- Breadcrumb ---------- *\/\n#ruvic-ind-manufactura .breadcrumb{font-family:var(--mono);font-size:12px;color:var(--muted);padding:16px 0}#ruvic-ind-manufactura .breadcrumb a:hover{color:var(--navy)}\/* ---------- HERO NAVY ---------- *\/\n#ruvic-ind-manufactura .hero{\n  position:relative;background:var(--navy);color:#fff;overflow:hidden;\n  border-radius:22px 22px 0 0;\n}#ruvic-ind-manufactura .hero::before{\n  content:\"\";position:absolute;inset:0;pointer-events:none;\n  background:radial-gradient(52% 46% at 82% 4%, rgba(255,54,58,.04), transparent 70%);\n}#ruvic-ind-manufactura .hero__grid{\n  position:relative;z-index:1;\n  display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;\n  padding:92px 24px 76px;\n}#ruvic-ind-manufactura .hero .kicker{color:var(--amber)}#ruvic-ind-manufactura .hero h1{color:#fff;margin-bottom:22px}#ruvic-ind-manufactura .hero h1 .accent{color:var(--coral)}#ruvic-ind-manufactura .hero__p{font-size:1.15rem;line-height:1.6;color:rgba(255,255,255,.72);max-width:580px;margin-bottom:32px}#ruvic-ind-manufactura .hero__cta{display:flex;gap:14px;flex-wrap:wrap}#ruvic-ind-manufactura .hero__trust{\n  display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:28px;\n  font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;\n  color:rgba(255,255,255,.66);\n}#ruvic-ind-manufactura .hero__trust b{color:#fff;font-weight:500}#ruvic-ind-manufactura .hero__trust .dot{color:rgba(255,255,255,.3)}@media(max-width:900px){#ruvic-ind-manufactura .hero__grid{grid-template-columns:1fr;gap:44px;padding-top:72px}}\/* ---------- Consola Command Center \u00b7 Llamada en vivo ---------- *\/\n#ruvic-ind-manufactura .console{\n  background:var(--navy-card);\n  border:1px solid rgba(255,255,255,.09);\n  border-radius:16px;\n  padding:20px;\n  box-shadow:0 40px 90px -40px rgba(0,0,0,.75);\n}#ruvic-ind-manufactura .console__top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:14px}#ruvic-ind-manufactura .console__title{font-family:var(--display);font-weight:600;font-size:13px;color:#fff}#ruvic-ind-manufactura .live{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--amber)}#ruvic-ind-manufactura .live i{width:8px;height:8px;border-radius:50%;background:var(--amber);animation:pulse 1.8s infinite}\n@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(253,170,76,.5)}70%{box-shadow:0 0 0 8px rgba(253,170,76,0)}100%{box-shadow:0 0 0 0 rgba(253,170,76,0)}}#ruvic-ind-manufactura .cc__meta{\n  display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:start;\n  padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:14px;\n}#ruvic-ind-manufactura .cc__meta .label{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}#ruvic-ind-manufactura .cc__meta .value{font-weight:600;font-size:.85rem;color:#fff;margin-top:2px;line-height:1.4}#ruvic-ind-manufactura .cc__time{font-family:var(--mono);font-size:.85rem;font-weight:500;color:var(--amber);align-self:center}#ruvic-ind-manufactura .cc__tr{display:flex;flex-direction:column;gap:11px;min-height:236px}#ruvic-ind-manufactura .cc-line{display:flex;flex-direction:column;gap:3px}#ruvic-ind-manufactura .cc-line .speaker{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase}#ruvic-ind-manufactura .cc-line--ruvic .speaker{color:var(--amber)}#ruvic-ind-manufactura .cc-line--patient .speaker{color:rgba(255,255,255,.5)}#ruvic-ind-manufactura .cc-line .text{\n  font-size:.85rem;line-height:1.5;color:rgba(255,255,255,.9);\n  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);\n  border-radius:12px;padding:9px 12px;\n}#ruvic-ind-manufactura .cc-line--ruvic .text{background:rgba(253,170,76,.08);border-color:rgba(253,170,76,.2)}#ruvic-ind-manufactura .cc-line .text em{font-style:normal;font-weight:600;color:var(--amber)}#ruvic-ind-manufactura .cc__chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.09);min-height:60px;align-content:flex-start}#ruvic-ind-manufactura .tag{font-size:.68rem;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}#ruvic-ind-manufactura .tag--ok{background:rgba(253,170,76,.16);color:var(--amber)}#ruvic-ind-manufactura .tag--live{background:rgba(255,255,255,.10);color:#fff}#ruvic-ind-manufactura .tag--esc{background:rgba(255,54,58,.16);color:#FF7A7D}#ruvic-ind-manufactura .cc-line.enter{animation:lineIn .42s cubic-bezier(.2,.7,.2,1) both}#ruvic-ind-manufactura .tag.pop{animation:chipPop .34s ease both}\n@keyframes lineIn{from{transform:translateY(9px)}to{transform:none}}\n@keyframes chipPop{from{transform:scale(.85)}to{transform:none}}#ruvic-ind-manufactura .console__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;padding-top:14px;border-top:1px solid rgba(255,255,255,.09);font-size:.8rem;color:var(--muted-navy)}#ruvic-ind-manufactura .console__foot b{color:#fff;font-family:var(--display);font-weight:600}@media(max-width:480px){#ruvic-ind-manufactura .cc__meta{grid-template-columns:1fr 1fr}#ruvic-ind-manufactura .cc__time{grid-column:1 \/ -1}}\/* ---------- Banda de stats (navy, integrada al hero) ---------- *\/\n#ruvic-ind-manufactura .statsband{position:relative;z-index:1;padding:0 0 76px}#ruvic-ind-manufactura .stats{\n  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;\n  background:rgba(255,255,255,.09);\n  border:1px solid rgba(255,255,255,.09);\n  border-radius:16px;overflow:hidden;\n}#ruvic-ind-manufactura .stat{background:var(--navy-card);padding:30px 24px}#ruvic-ind-manufactura .stat__n{font-family:var(--display);font-weight:700;font-size:2.15rem;letter-spacing:-.02em;color:var(--amber);margin-bottom:8px;line-height:1.05}#ruvic-ind-manufactura .stat__n .unit{font-size:.55em;color:rgba(255,255,255,.6);margin-left:3px;font-weight:600}#ruvic-ind-manufactura .stat__n .cu{font-variant-numeric:tabular-nums}#ruvic-ind-manufactura .stat__l{font-size:.95rem;color:#fff;font-weight:500;line-height:1.45}#ruvic-ind-manufactura .stat__c{font-family:var(--mono);font-size:.72rem;color:rgba(255,255,255,.5);margin-top:8px;line-height:1.5}@media(max-width:820px){#ruvic-ind-manufactura .stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){#ruvic-ind-manufactura .stats{grid-template-columns:1fr}}\/* ---------- Problema ---------- *\/\n#ruvic-ind-manufactura .problems{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:52px;list-style:none}#ruvic-ind-manufactura .problem{\n  background:var(--white);border:1px solid var(--line);border-radius:16px;padding:28px;\n  transition:border-color .2s,transform .2s,box-shadow .2s;\n}#ruvic-ind-manufactura .problem:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(14,22,50,.25);border-color:rgba(255,54,58,.28)}#ruvic-ind-manufactura .problem .num{\n  font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;\n  color:var(--coral-action);display:block;margin-bottom:12px;\n}#ruvic-ind-manufactura .problem h3{font-family:var(--body);font-weight:600;font-size:1.12rem;letter-spacing:0;line-height:1.4;margin-bottom:8px}#ruvic-ind-manufactura .problem p{color:var(--muted);font-size:.92rem}@media(max-width:980px){#ruvic-ind-manufactura .problems{grid-template-columns:1fr 1fr}}@media(max-width:560px){#ruvic-ind-manufactura .problems{grid-template-columns:1fr}}\/* ---------- Casos de uso ---------- *\/\n#ruvic-ind-manufactura .casos{display:flex;flex-direction:column;gap:20px;margin-top:52px}#ruvic-ind-manufactura .caso{\n  display:grid;grid-template-columns:250px 1fr;gap:40px;\n  background:var(--white);border:1px solid var(--line);border-radius:16px;padding:32px;\n  transition:border-color .2s,transform .2s,box-shadow .2s;\n}#ruvic-ind-manufactura .caso:hover{transform:translateY(-3px);border-color:rgba(255,54,58,.28);box-shadow:0 18px 40px -24px rgba(14,22,50,.25)}#ruvic-ind-manufactura .caso > *{min-width:0}#ruvic-ind-manufactura .caso__kpi{\n  background:var(--cream-soft);border:1px solid var(--line);border-radius:16px;padding:24px;\n  display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:180px;\n}#ruvic-ind-manufactura .caso__num{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-action)}#ruvic-ind-manufactura .caso__fig{font-family:var(--display);font-weight:700;font-size:clamp(2rem,3.4vw,2.6rem);letter-spacing:-.02em;color:var(--navy);line-height:1}#ruvic-ind-manufactura .caso__fig-l{font-size:.82rem;color:var(--muted);margin-top:8px;line-height:1.4}#ruvic-ind-manufactura .caso__tag{\n  display:inline-block;\n  background:rgba(253,170,76,.16);color:var(--amber-text);\n  font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;\n  padding:5px 12px;border-radius:999px;\n}#ruvic-ind-manufactura .caso h3{font-size:1.32rem;margin:12px 0 14px}#ruvic-ind-manufactura .caso__quote{\n  color:var(--muted);font-size:.95rem;line-height:1.6;font-style:italic;\n  padding:4px 0 4px 16px;border-left:3px solid var(--coral);margin-bottom:14px;\n}#ruvic-ind-manufactura .caso__res{color:var(--navy);font-size:.95rem;line-height:1.65}#ruvic-ind-manufactura .caso__res strong{color:var(--coral-action);font-weight:600}@media(max-width:860px){#ruvic-ind-manufactura .caso{grid-template-columns:1fr;gap:22px;padding:26px}}\/* ---------- Capacidades t\u00e9cnicas ---------- *\/\n#ruvic-ind-manufactura .tech{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}#ruvic-ind-manufactura .tech__item{\n  background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px;\n  transition:border-color .2s,transform .2s,box-shadow .2s;\n}#ruvic-ind-manufactura .tech__item:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(14,22,50,.25);border-color:rgba(255,54,58,.28)}#ruvic-ind-manufactura .tech__item h3{font-family:var(--body);font-weight:600;font-size:1.12rem;letter-spacing:0;margin-bottom:6px}#ruvic-ind-manufactura .tech__item .stack{font-family:var(--mono);font-size:.7rem;letter-spacing:.03em;color:var(--coral-action);margin-bottom:10px;line-height:1.6}#ruvic-ind-manufactura .tech__item p{color:var(--muted);font-size:.9rem;line-height:1.6}@media(max-width:980px){#ruvic-ind-manufactura .tech{grid-template-columns:1fr 1fr}}@media(max-width:600px){#ruvic-ind-manufactura .tech{grid-template-columns:1fr}}\/* ---------- Capacidades del motor (cross-sell) ---------- *\/\n#ruvic-ind-manufactura .motor{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:52px}#ruvic-ind-manufactura .motor__card{\n  display:block;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px;\n  transition:border-color .2s,transform .2s,box-shadow .2s;\n}#ruvic-ind-manufactura .motor__card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(14,22,50,.25);border-color:rgba(255,54,58,.4)}#ruvic-ind-manufactura .motor__ic{\n  width:48px;height:48px;border-radius:13px;background:rgba(255,54,58,.11);\n  display:grid;place-items:center;margin-bottom:16px;\n}#ruvic-ind-manufactura .motor__ic svg{width:23px;height:23px;fill:none;stroke:var(--coral-action);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#ruvic-ind-manufactura .motor__card h3{font-family:var(--body);font-weight:600;font-size:1.12rem;letter-spacing:0;margin-bottom:6px}#ruvic-ind-manufactura .motor__card p{color:var(--muted);font-size:.9rem;line-height:1.6}#ruvic-ind-manufactura .motor__card .stack{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--amber-text);margin-top:14px;display:block}@media(max-width:980px){#ruvic-ind-manufactura .motor{grid-template-columns:1fr 1fr}}@media(max-width:560px){#ruvic-ind-manufactura .motor{grid-template-columns:1fr}}\/* ---------- FAQ ---------- *\/\n#ruvic-ind-manufactura .faq{margin-top:48px;display:flex;flex-direction:column;gap:12px;max-width:820px}#ruvic-ind-manufactura details{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:0 22px;transition:border-color .2s}#ruvic-ind-manufactura details[open]{border-color:rgba(255,54,58,.35)}#ruvic-ind-manufactura summary{\n  list-style:none;cursor:pointer;padding:18px 0;\n  font-weight:600;font-size:1rem;\n  display:flex;justify-content:space-between;align-items:center;gap:16px;\n}#ruvic-ind-manufactura summary::-webkit-details-marker{display:none}#ruvic-ind-manufactura summary::after{content:\"+\";color:var(--coral-action);font-size:1.4rem;font-weight:400;line-height:1;transition:transform .2s}#ruvic-ind-manufactura details[open] summary::after{transform:rotate(45deg)}#ruvic-ind-manufactura details p{color:var(--muted);font-size:.95rem;padding:0 0 20px}\/* ---------- CTA final navy ---------- *\/\n#ruvic-ind-manufactura .cta{padding:112px 0}#ruvic-ind-manufactura .cta__inner{\n  position:relative;overflow:hidden;text-align:center;\n  background:var(--navy);color:#fff;border-radius:22px;\n  padding:clamp(44px,5vw,72px) clamp(24px,5vw,56px);\n}#ruvic-ind-manufactura .cta__inner::before{\n  content:\"\";position:absolute;inset:0;pointer-events:none;\n  background:radial-gradient(60% 70% at 50% 0%, rgba(255,54,58,.04), transparent 70%);\n}#ruvic-ind-manufactura .cta__content{position:relative;z-index:1}#ruvic-ind-manufactura .cta__inner .kicker{color:var(--amber)}#ruvic-ind-manufactura .cta__inner h2{color:#fff;max-width:22ch;margin-left:auto;margin-right:auto}#ruvic-ind-manufactura .cta__inner h2 .accent{color:var(--coral)}#ruvic-ind-manufactura .cta__inner .lead{color:rgba(255,255,255,.72);margin:0 auto 28px;max-width:600px}#ruvic-ind-manufactura .cta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}#ruvic-ind-manufactura .cta__tags{margin-top:28px;color:rgba(255,255,255,.72);font-size:.9rem;display:flex;gap:22px;justify-content:center;flex-wrap:wrap}#ruvic-ind-manufactura .cta__tags span{display:inline-flex;gap:7px;align-items:center}#ruvic-ind-manufactura .cta__tags i{color:var(--amber);font-style:normal}#ruvic-ind-manufactura .cta__geo{margin-top:30px;font-family:var(--mono);color:rgba(255,255,255,.5);font-size:.78rem;letter-spacing:.06em}\/* ---------- Footer ---------- *\/\n#ruvic-ind-manufactura footer{border-top:1px solid var(--line);padding:40px 0;color:var(--muted);font-size:.85rem;background:var(--cream)}#ruvic-ind-manufactura .foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}\/* ---------- Reveal (gated .js; solo transform+opacity en transici\u00f3n) ---------- *\/\n#ruvic-ind-manufactura .js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}#ruvic-ind-manufactura .js .reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){#ruvic-ind-manufactura .js .reveal{opacity:1;transform:none;transition:none}#ruvic-ind-manufactura .live i{animation:none}#ruvic-ind-manufactura .cc-line.enter,#ruvic-ind-manufactura .tag.pop{animation:none}}\/* ===== KIT v2 \u00b7 Efectos unificados (boxes + mouse + tabla) ===== *\/\n#ruvic-ind-manufactura .card{position:relative;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .25s ease}#ruvic-ind-manufactura .card:hover{transform:translateY(-3px);box-shadow:0 18px 44px -24px rgba(14,22,50,.28);border-color:rgba(255,54,58,.30)}#ruvic-ind-manufactura .card::after{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s ease;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,54,58,.12),transparent 60%)}#ruvic-ind-manufactura .card:hover::after{opacity:1}#ruvic-ind-manufactura .btn{transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,border-color .2s ease,background .2s ease,color .2s ease}#ruvic-ind-manufactura table tbody tr{transition:background .18s ease}#ruvic-ind-manufactura table tbody tr:hover td,#ruvic-ind-manufactura table tbody tr:hover th{background:rgba(255,54,58,.06)}@media (prefers-reduced-motion:reduce){#ruvic-ind-manufactura .card,#ruvic-ind-manufactura .btn{transition:none}}\/* ===== KIT v2 \u00b7 salud \u2192 hero CLARO + pipeline light ===== *\/\n#ruvic-ind-manufactura .hero{background:var(--cream-soft);color:var(--navy)}#ruvic-ind-manufactura .hero::before{background:radial-gradient(52% 46% at 82% 4%, rgba(255,54,58,.04), transparent 70%)}#ruvic-ind-manufactura .hero .kicker{color:var(--coral-action)}#ruvic-ind-manufactura .hero h1{color:var(--navy)}#ruvic-ind-manufactura .hero__p{color:var(--ink-soft)}#ruvic-ind-manufactura .hero__p strong{color:var(--navy)}#ruvic-ind-manufactura .hero__trust{color:var(--ink-soft)}#ruvic-ind-manufactura .hero__trust b{color:var(--navy)}#ruvic-ind-manufactura .hero .console{color:#fff}#ruvic-ind-manufactura .hero .console .cc__tr{min-height:150px}#ruvic-ind-manufactura .hero .console .cc__chips{min-height:0}#ruvic-ind-manufactura .hero__visual{display:flex;flex-direction:column;gap:16px;min-width:0}#ruvic-ind-manufactura .pipe-wrap{position:relative;width:100%}#ruvic-ind-manufactura .pipe-wrap svg{width:100%;height:auto;display:block;overflow:visible}#ruvic-ind-manufactura .pn rect{fill:#fff;stroke:rgba(14,22,50,.13);stroke-width:1}#ruvic-ind-manufactura .pn text{font-family:\"JetBrains Mono\",monospace;font-size:13px;letter-spacing:.005em;fill:#0E1632}#ruvic-ind-manufactura .pn .pn-ic{fill:none;stroke:#0E1632;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#ruvic-ind-manufactura .pn.lit rect{stroke:#FF363A}#ruvic-ind-manufactura .edge{fill:none;stroke:rgba(14,22,50,.14);stroke-width:1}#ruvic-ind-manufactura .hub-glow{fill:url(#hubGlow)}#ruvic-ind-manufactura .hub-diamond{fill:#FF363A;stroke:rgba(255,255,255,.5);stroke-width:1.1}#ruvic-ind-manufactura .hub-ring{fill:none;stroke:rgba(255,255,255,.9);stroke-width:1.2;stroke-dasharray:1.6 5;stroke-linecap:round}#ruvic-ind-manufactura .hub-lab{font-family:\"JetBrains Mono\",monospace;font-size:12.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;fill:#4A5170}#ruvic-ind-manufactura .pchip text{font-family:\"JetBrains Mono\",monospace;font-size:11px;font-weight:500;letter-spacing:.02em}#ruvic-ind-manufactura .pchip .cic{fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}\/* === Banda de resultados navy full-width (homologada a idp-documental) === *\/\n#ruvic-ind-manufactura .rstats{background:var(--navy);padding:56px 0}#ruvic-ind-manufactura .rstats .wrap{max-width:1160px;margin:0 auto}#ruvic-ind-manufactura .rstats ul{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;padding:0}#ruvic-ind-manufactura .rstats li{border-right:1px solid rgba(255,255,255,.14);padding:4px 22px;text-align:center;display:flex;flex-direction:column}#ruvic-ind-manufactura .rstats li:last-child{border-right:0}#ruvic-ind-manufactura .rstats .num{display:block;font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,3.6vw,2.4rem);line-height:1;color:var(--amber)}#ruvic-ind-manufactura .rstats .num .cu{font-variant-numeric:tabular-nums}#ruvic-ind-manufactura .rstats .num .unit{font-size:.55em;color:rgba(255,255,255,.6);margin-left:3px;font-weight:600}#ruvic-ind-manufactura .rstats p{margin-top:10px;font-size:.95rem;line-height:1.45;color:#fff;font-weight:500}#ruvic-ind-manufactura .rstats .cap{display:block;margin-top:auto;padding-top:10px;font-size:.8rem;line-height:1.5;color:rgba(255,255,255,.55)}@media(max-width:900px){#ruvic-ind-manufactura .rstats ul{grid-template-columns:repeat(2,1fr)}#ruvic-ind-manufactura .rstats li{padding:16px 14px}#ruvic-ind-manufactura .rstats li:nth-child(2n){border-right:0}#ruvic-ind-manufactura .rstats li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}}@media(max-width:560px){#ruvic-ind-manufactura .rstats ul{grid-template-columns:1fr}#ruvic-ind-manufactura .rstats li{border-right:0;border-top:0;border-bottom:1px solid rgba(255,255,255,.14);padding:16px 0}#ruvic-ind-manufactura .rstats li:last-child{border-bottom:0}}\n<\/style>\n\n<div id=\"ruvic-ind-manufactura\">\n\n\n<!-- ============ BREADCRUMB ============ -->\n\n\n<!-- ============ HERO NAVY ============ -->\n<section class=\"hero\">\n  <div class=\"wrap hero__grid\">\n\n    <div class=\"reveal\">\n<h1>Plataforma IA para<span class=\"accent\"> manufactura<\/span><\/h1>\n      <span class=\"kicker\">SOLUCIONES \u00b7 MANUFACTURA<\/span>\n      <p class=\"hero__p\">El fallo se anticipa. <span class=\"accent\">Y la respuesta se ejecuta sola.<\/span><\/p>\n      <p class=\"hero__p\">La mayor\u00eda de soluciones industriales muestran el dato en un tablero y esperan a que alguien lo mire. Ruvic ejecuta la consecuencia completa: detecta la desviaci\u00f3n en la telemetr\u00eda, genera la orden de trabajo, verifica y reserva el repuesto, agenda la ventana de intervenci\u00f3n y avisa al t\u00e9cnico. Sobre tu SCADA y tu CMMS actuales, sin reemplazar la capa OT.<\/p>\n      <div class=\"hero__cta\">\n        <a class=\"btn btn--primary\" href=\"#demo\">Solicitar prueba de concepto<\/a>\n        <a class=\"btn btn--ghost\" href=\"#casos\">Ver casos de uso<\/a>\n      <\/div>\n      <div class=\"hero__trust\">\n        <span><b>OPC UA<\/b> \u00b7 <b>MQTT<\/b> \u00b7 <b>Modbus TCP<\/b><\/span>\n        <span class=\"dot\">\u2022<\/span>\n        <span>CMMS \/ EAM v\u00eda <b>API \u00b7 Conectores<\/b><\/span>\n        <span class=\"dot\">\u2022<\/span>\n        <span><b>CO \u00b7 MX \u00b7 CL \u00b7 PE \u00b7 US<\/b><\/span>\n      <\/div>\n    <\/div>\n\n    <!-- Derecha: pipeline + consola Command Center -->\n    <div class=\"hero__visual reveal\">\n    <div class=\"pipe-wrap\"><svg id=\"pipe\" viewBox=\"0 0 720 370\" role=\"img\" aria-label=\"Motor Ruvic industrial: cada se\u00f1al (sensor, SCADA, orden de trabajo, ERP, historial) entra al motor que entiende, prioriza y resuelve, y ejecuta la acci\u00f3n (alerta temprana, genera orden de trabajo, reserva repuesto, actualiza el CMMS, escala).\"><\/svg><\/div>\n    <div class=\"console\" id=\"callcard\" aria-label=\"Ruvic operando sobre una l\u00ednea de producci\u00f3n en tiempo real: detecta la desviaci\u00f3n, genera la orden de trabajo y reserva el repuesto\">\n      <div class=\"console__top\">\n        <span class=\"console__title\"><span style=\"display:inline-flex;width:26px;height:26px;border-radius:8px;background:#FF363A;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;margin-right:8px\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuIAAAK4CAYAAAAx9piuAAAACXBIWXMAACE3AAAhNwEzWJ96AAAgAElEQVR4nO3dz3Ecd7Yl4KOOtwfGAkEWkG2BIAvEsUCQBcO2QNBmto+yoEsWPMqCBi14oAUNWvDA7Wwwi2RJEAWS9Scrb97M74tgqNUdId1QtMjDW\/d36quHh4ebAADMx92HH7v8bzcnnQRO6KuHh4eH6iEAAI70Psnth\/988+iP94\/+e5gVQRwAWIN3GTbpNx\/+eBsBnWKCOACwZm\/yRygXzpmUIA4A8If3Gbbm2x+COScjiAMAfNrjYP46n35ECnsTxAEAdvcuQyB\/HY0tHEkQBwA4zPv8EcpfF89CQ4I4AMDxtqF8E5tydiSIAwCMa3u+8ipuyvkMQRwA4HTeZNiSb2rHYI4EcQCA03ufIYzbkvM7QRwAYFq\/ZQjkN8VzUEwQBwCo8TZDIN8Uz0ERQRwAoNa7JNcRyFfnb9UDAACs3NdJ\/pnhdvyqdBImJYgDAMyDQL4ygjgAwLwI5CvhRhwAYN7eJnkZLSuLYyMOADBvz5L8K8O3dV7UjsKYBHEAgB6+T\/LvDA0r57WjMAanKQAA\/bzLcK7yunoQDieIAwD09SbDg8672jE4hNMUAIC+vk1ym2E7TjM24gAAy2A73oyNOADAMtiON2MjDgCwPLbjDdiIAwAsz3Y7\/qJ6ED5NEAcAWKazJP+VZBO947PkNAUAYPneZjhVuS2eg0dsxAEAlu9ZkpsMYZyZEMQBANbhLMk\/k7yqHoSB0xQAgPV5k+Eh5331IGtmIw4AsD7bVpXn1YOsmSAOALBOX2e4G1dxWEQQBwBYr23F4VXxHKskiAMA8M8MfeNMSBAHACBJfogwPimtKQAAPPY2yWU0qpycjTgAAI9tv\/znvHiOxRPEAQD4mDA+AUEcAICnCOMnJogDAPApwvgJCeIAAHyOMH4igjgAAF8ijJ+AIA4AwC6E8ZEJ4gAA7EoYH5EgDgDAPoTxkQjiAADs61mSV9VDdCeIAwBwiB+SbKqH6EwQBwDgUD8keVk9RFdfPTw8PFQPAQBAaz\/GdnxvgjgAAMd6n+QyyW3xHK0I4gAAjOF9kosk98VztOFGHACAMZxlqDVkR4I4AABjeRa34jsTxAEAGNMPSa6qh+jAjTgAAGPzeHMHNuIAAIztLMOJynnxHLMmiAMAcArPkryqHmLOBHEAAE7FvfhnuBEHAOCU3id5nuSueI7ZsREHAOCUzpK8rh5ijgRxAABO7VmS6+oh5sZpCgAAU\/l7VBr+zkYcAICpbKoHmBNBHACAqThRecRpCgAAU\/smWlRsxAEAmNymeoA5EMQBAJjat\/FFP05TAAAo8T7JRZL74jnK2IgDAFDhLCt\/uGkjDgBApdV2i9uIAwBQ6VX1AFUEcQAAKn2b5EX1EBWcpgAAUO1dhoebq2IjDgBAta+TvKweYmo24gAAzMHq6gxtxAEAmIOzrGwrbiMOAMBcrGorbiMOAMBcrGorbiMOAMCcrGYrbiMOAMCcrGYrbiMOAMDcrGIrbiMOAMDcnCW5qh7i1GzEAQCYo8V\/26aNOAAAc\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\/8OPi0Q+Yg\/+X5OfqIWDm7qoH2IcgDqzdeZKrJJdJvi+dBL7s\/ya5qR4CGIcgDqzVZZKXEb7pZZPhE5v74jmAEbgRB9bmMsNG8V8Rwunn6wy\/gQQWQBAH1uIiyesMAfzb2lHgKD9l2IoDzQniwBpcJbmNDTjL8ap6AOB4gjiwdJsk\/0xyVjwHjOnbOFGB9gRxYKnOM9yC\/1A8B5zKdYb\/nwNNCeLAEm1DuFtwluwswyc+QFOCOLA02xD+rHgOmML3GZqAgIYEcWBpXkUIZ102caICLQniwJK8jJtw1ke3ODT11cPDw0P1ENDAd\/G10nP3PMl\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\/iEC+SoI40NVX1QOM6DJDML\/88OOscBZgeu8z\/Mb8vngOJiaIA10tKYh\/bBvKr5I8K50EmMpvSV5UD8G0BHGgqyUH8ccuMvzi\/DLOWGDpvktyUz0E0xHEga7WEsQfu8ywJf+hdgzgRN5l+ETMicpKaE0B6OMmQxD\/JskvGe5KgeXQLb4yNuJAV2vciH\/sPMMv2j9VDwKM6u9JbquH4PQEcaArQfwPFxmqz74vngMYx5sMp2gsnNMUgP7uMjzo\/C7DjSnQ27dxorIKNuJAVzbin3Yd5yrQnW7xFbARB1ie6ww3prbj0NdZkk31EJyWIA6wTLcZatB+qx4EONj3cSu+aII4wHLdZ7gd\/0f1IMDBNhkaklggQRxg+V5leMipdxz60S2+YB5rAl15rLm\/5xm+FOiseA5gf7rFF8hGHGA9bjPcm74tngPY36vqARifIA6wLsI49KRbfIGcpgBdOU05znmGLwJypgJ96BZfGBtxgHW6z7AZ94AT+tAtvjA24kBXNuLj8IAT+vkuw7+3NGcjDrBut3F3Ct1solt8EQRxADZJfqkeAtiZbvGFcJoCdOU0ZXw3GZoZgB50izcniANdCeLj06QCvbzJ8OiappymALB1n+SqeghgZ7rFm7MRB7qyET+d10m+rx4C2Ilu8cZsxAH42FX0i0MXusUbE8QB+Nh9kuvqIYCdfR+34i05TQG6cppyejfRogJdvMvwBV1OVBqxEQfgUzwCgz50izckiAPwKbdJfq4eAtjZTxm24jThNAXoymnKNM4zBPKvqwcBdqJbvBEbcQA+R7c49KJbvBEbcaArG\/Fp6RaHPnSLN2EjDsAurqJbHLrQLd6EIA7ALnSLQy+6xRtwmgJ05TSlxk10i0MXusVnzkYcgH14BAZ96BafOUEcgH3oFodedIvPmNMUoCunKXV0i0MvusVnykYcgH3pFodedIvPlI040JWNeD3d4tCHbvEZshEH4FBX0S0OXegWnyFBHIBD6RaHXnSLz4zTFKArpynzcRPd4tCFbvEZsREH4FgegUEfusVnRBAH4Fi6xaEX3eIz4TQF6MppyrzoFodedIvPgI04AGPQLQ696BafARtxoCsb8XnSLQ596BYvZiMOwJiuolscujhL8qp6iDUTxAEYk25x6OWHuBUv4zQF6MppyrzdRLc4dPEuw4kKE7MRB+AUPAKDPr6OT7JK2IgDXdmIz991hr5ioIdvktxVD7EmgjjQlSA+f7rFoRfd4hNzmgLAqegWh16+jX9nJ2UjDnRlI96HbnHoQ7f4hGzEATi1q+gWhy50i09IEAfg1HSLQy+6xSfiNAXoymlKPzfRLQ5d6BafgI04AFPRLQ596BafgI040JWNeE\/X0S0OnegWP6G\/xQMaAKbzKsNH3kAPm+oBluxvGb5sAQCmoFscetEtfkJuxAGY2k2S36qHAHb2KsM35TIyQRyACldxGgld6BY\/EUEcgAq6xaEX3eIn8LcMHxECwNReJXlTPQSws031AEtjIw5AJd3i0Idu8ZEJ4gBUuk3yc\/UQwM5+im\/cHI3TFACq6RaHXjbVAyyFjTgA1XSLQy+6xUfy1cPDw0WSf1cPArAnX3G\/PK+TfF89BLCT9xlOVO6L52jtq4eHhyR5qB4EYE+C+PKcJ7nL0FkMzN+vsRk\/yvY0xW0eANV0i0MvusWPtA3id5VDAMAHusWhl031AJ0J4gDMjW5x6EO3+BEEcQDmRrc49KJb\/EDbIH5TOQQAfES3OPSyqR6go20QVz0DwJzoFodedIsfYFtfmKgwBHpRX7gOusWhD93ie3r8zZpvy6YAgKddZfjFHZi\/swxnZezocRC\/LZsCAJ6mWxx60S2+h8dB\/K5qCAD4DN3i0MumeoAuHgfxm6ohAOALdItDH7rFd\/T4seZ5kv8pnAVgHx5rrs91hr5ioIdv4uLisx5vxO+jsxWA+dItDr1sqgeYu7999Oc3FUMAwA50i0MvusW\/4OMgrjkFgDm7SfJb9RDAzl5lOH\/mCTbiAHRzFd3i0IVu8c94aiPuJzcA5ky3OPSiW\/wTPg7iia04APOnWxx62VQPMEeCOABd6RaHPnSLP0EQB6Cr2yQ\/Vw8B7OynJBfVQ8zJ4y\/0eewuw+9cAObKF\/qQDG0Mt\/FrFnTxJu7Ff\/fURjyxFQegB93i0Itu8UcEcQC6u4lucehEt\/gHnzpNOU\/yPxPPArAPpyk8dp7hrPKseA5gN7\/GZvyTG\/H7qIUCoA\/d4tCLbvF8OognyevJpgCA4+kWh1421QNUE8QBWBLd4tDH6rvFPxfE75K8nWgOABiDbnHoZdXd4p8L4omPDADo51WSd9VDADvbVA9Q5UtB3HkKAN3oFodeVtst\/qn6wsdukzybYBaAfagv5EteJ\/m+eghgJ+8znKjcF88xqS9txJPhIz4A6OYqwy\/uwPydZYWZc5cg7jwFgI50i0Mvq+sW3+U0JfHxHjA\/TlPY1U2GG1Rg\/t5lRS0qu2zEkxW\/ZgWgPd3i0MequsV33YgnQ6\/416cbBWAvNuLs4zpDXzHQwzcZsuei7boRT2zFAehLtzj0sqkeYAqCOABroFscellFt\/g+QfwuyW8nmgMATu0mfh2DTl4lOa8e4pT2CeLJCvsdAViUq+gWhy4W3y2+bxC\/SfL2BHMAwBR0i0Mvi+4W3zeIJwv\/nQkAi\/cqyZvqIYCdbaoHOJVDgvgmXp4D0Jtucehjsd3ihwTxZMG\/MwFgFW6T\/Fw9BLCzn7LAb9zc5wt9HjvP0KJyNuo0ALvzhT4c6zxDIPdlddDDmyzsXvzQjfh93IoD0Jtucehlcd3ih27EE1txoJaNOGN5neT76iGAnbzPcKJyXzzHKA7diCe24gAsw1V0i0MXi+oWP2YjntiKA3VsxBnTyyT\/WT0EsLPvMny\/TWvHbMQTW3EAlkG3OPSyqR5gDMcG8WT4yctHegB0p1sc+lhEt\/gYQfw+fvICoD\/d4tBL+27xY2\/EH7uLLlZgOm7EOQXd4tBL627xMTbiW1cj\/rUAoIJuceildbf4mBvxZHi9+u2Yf0GAT7AR55R0i0MfbbvFxw7iF0n+PeZfEOATBHFOST0v9PJrGm7GxzxNSYaftH4Z+a8JAFO7zwIaGWBFfkjDW\/GxN+KJhy7ANGzEmcJNnFxCF+\/SrEVl7I14os4QgOXw6xn00a5b\/BQb8a2b2CIAp2MjzlSuM\/QVAz18k+FcevZOGcQvMpyoeOgCnIIgzlScXEIvbbrFT3GasnWXZh8PAMATdItDL226xU+5Ed+6iRMVYHw24kxNtzj00aJb\/JQb8a2rDP8wAKCzq\/j1DLo4S\/KqeogvmSKI38WJCgD96RaHXmbfLT7FacqWj\/SAMTlNocpNnFxCF7PuFp9iI751FR\/pAdCfbnHoY9bd4lMG8fskLyb8+wHAKdwm+bl6CGBnP2WmW\/Epg3gyfJz3y8R\/TwAY26sMH3kDPWyqB3jKlDfij90meVbxNwYWw4041S6T\/Kt6CGBnP2ZmgbwqiF\/Et24CxxHEmQNFBNDH7LrFpz5N2bqLe3EA+ruKIgLoYnbd4lVBPBnuxf9R+PcHgGPpFodeZtUtXnWa8tgmwz8UgH04TWFObqJbHLqYTbd45UZ862WSt9VDAMARdItDH7PpFp\/DRjxJzjPcjXu8CezKRpy5uc7QVwz08E2G\/FlmDhvxZLixu4wHLwD0pVscetlUDzCXIJ4MdYZX1UMAwIHu49cx6OTbFP87O5fTlMeukvyzeghg9pymMFe6xaGP0m7xOW3EtzZJfqkeAgAOdBWnltBFabf4HIN4Mrw+\/7V6CAA4gG5x6KWsW3yOpymPbaJjHHia0xTm7ia6xaGLkm7xuW7Et65iMw5AT7rFoY+SbvG5b8S3bmKrAPyZjTgdXEe3OHQyabd4lyB+niGMPyueA5gPQZwOzjPU835dPQiwkzeZ8F587qcpW9sv\/HlTPAcA7EO3OPQyabd4l434Y5t4wAnYiNOLbnHoY7Ju8S4b8ceu4gEnAL1cRbc4dDFZt3jHIJ4I4wD0olscepmkW7zjacpjr5L8n+ohgBJOU+joJlrAoIuTd4t33YhvvUzyY\/UQALAj3eLQx8m7xbsH8WR4vPlj3N4BMH+3SX6uHgLY2U854Va8+2nKY88zfOR3VjwHMA2nKXSlWxx6OVm3+BI24lu3GcL42+pBAOAzdItDLyfrFl\/SRnzrPMO5ir5WWDYbcbrTLQ59nKRbfEkb8a37JC\/iBg+AebuK903QxUm6xZcYxLeuk\/zv+EkOgHnSLQ69jN4tvsTTlI9dZPj471nxHMC4nKawFDfRLQ5djNotvuSN+NZdhkecvxTPAQBP0S0OfYzaLb6GjfhjLzI85FRxCP3ZiLMk1xn6ioEevsmw7D3K2oJ4MnycsImPAaE7QZwl0S0OvYzSLb6G05SP3WX4B\/eP2jEA4He6xaGXUbrF17gRf+x5hu24h5zQj404S6RbHPo4ult8jRvxx7bfxqlzHIA5uIraXeji6G7xtQfxresMR\/dviucAYN10i0MvR3WLr\/005SkvM\/wkqFkF5s1pCkt2E6UC0MXB3eI24n\/1KsM\/zF+L5wBgvXSLQx8Hd4sL4k\/bvl7\/Ls5VAJjebbxfgk5+ygFbcacpu7nK8Dsd\/a4wH05TWDrd4tDL3t3iNuK72eSPdhWv2QGYgm5x6GXvbnEb8f2dZ7jd81XEUMtGnLXQLQ597NUtbiO+v2211DfxoBOA07uKT2Ohi726xQXxw91l+MlRIAfglHSLQy87d4s7TRnPRYZg\/jI6yGEKTgRZHhEAAAFuSURBVFNYm5voFocuduoWF8THt70hv4qX7nBKgjhr8zzJf1cPAezs53zh0yxB\/LSuPvywwYDxCeKs0XWUBUAn32Q4Z36SID6N5xm25C\/ibAXGIoizRrrFoZfPdosL4tM6zxDGXyZ5VjwLdCeIs1aXSf5VPQSwsx8zfCfNXwjidS7yx5bcZgP2J4izZrrFoY9PdosL4vPwPMMtuVAOuxPEWbPzDHenzh2hh1\/zxLduCuLzI5TDbgRx1u5lkv+sHgLY2XcZakh\/J4jP20WGQP4imlfgY4I46BaHTv7SLS6I9\/IiwyOdy3jsCYI46BaHbv7ULS6I93WeIZA\/\/\/BHGxHWRhCHwXV0i0Mnv3eLC+LL8vyjH8I5SyaIw0C3OPTye7e4IL58Fx9+XGb4yfr5hz\/3EzbdCeLwh8voFodOfkyyEcTX7eKjH8kQ1M8f\/e8CO3MliMOf6RaHPt4nuRDEOcRl9QCQjyqggN8\/9QR6uP3\/PmNsa8n3cqMAAAAASUVORK5CYII=\" alt=\"Ruvic\" style=\"width:16px;height:16px;display:block\"><\/span>Ruvic \u00b7 Plant Command Center<\/span>\n        <span class=\"live\"><i><\/i> EN VIVO<\/span>\n      <\/div>\n      <div class=\"cc__meta\">\n        <div><div class=\"label\">Activo<\/div><div class=\"value\" id=\"call-pac\">Compresor CP-04 \u00b7 L\u00ednea 2<\/div><\/div>\n        <div><div class=\"label\">Proceso<\/div><div class=\"value\" id=\"call-mot\">Mantenimiento predictivo<\/div><\/div>\n        <div class=\"cc__time\" id=\"call-time\">00:42<\/div>\n      <\/div>\n      <!-- Semilla \/ fallback sin JS -->\n      <div class=\"cc__tr\" id=\"call-transcript\">\n        <div class=\"cc-line cc-line--ruvic\"><span class=\"speaker\">Ruvic<\/span><span class=\"text\">Vibraci\u00f3n del rodamiento en CP-04 subi\u00f3 <em>34%<\/em> sobre la l\u00ednea base en las \u00faltimas 6 horas. Patr\u00f3n compatible con desgaste temprano.<\/span><\/div>\n        <div class=\"cc-line cc-line--patient\"><span class=\"speaker\">Planta<\/span><span class=\"text\">\u00bfCu\u00e1nto tiempo tenemos?<\/span><\/div>\n        <div class=\"cc-line cc-line--ruvic\"><span class=\"speaker\">Ruvic<\/span><span class=\"text\">Ventana estimada de <em>9 a 14 d\u00edas<\/em>. Rodamiento disponible en bodega, ya lo reserv\u00e9. Propongo intervenir en el paro programado del s\u00e1bado.<\/span><\/div>\n        <div class=\"cc-line cc-line--patient\"><span class=\"speaker\">Planta<\/span><span class=\"text\">Dale, ag\u00e9ndalo.<\/span><\/div>\n      <\/div>\n      <div class=\"cc__chips\" id=\"call-chips\">\n        <span class=\"tag tag--ok\">Desviaci\u00f3n detectada<\/span>\n        <span class=\"tag tag--ok\">Repuesto reservado<\/span>\n        <span class=\"tag tag--ok\">OT generada<\/span>\n        <span class=\"tag tag--live\">\u2192 Registrado en CMMS<\/span>\n      <\/div>\n      <div class=\"console__foot\"><span>Ruvic Engine activo<\/span><span><b>30\u201345%<\/b> menos paradas no programadas<\/span><\/div>\n    <\/div>\n    <\/div><!-- \/hero__visual -->\n  <\/div>\n\n<\/section>\n\n<!-- ============ RESULTADOS \u00b7 banda navy full-width ============ -->\n<section class=\"rstats\" aria-label=\"Resultados en operaciones de manufactura\">\n  <div class=\"wrap\">\n    <ul>\n      <li><span class=\"num\"><span class=\"cu\" data-count=\"45\" data-prefix=\"30\u2013\">30\u201345<\/span><span class=\"unit\">%<\/span><\/span><p>Reducci\u00f3n de paradas no programadas<\/p><span class=\"cap\">Fallos detectados con anticipaci\u00f3n suficiente para intervenir en ventana planificada en lugar de en emergencia.<\/span><\/li>\n      <li><span class=\"num\"><span class=\"cu\" data-count=\"12\" data-prefix=\"6\u2013\">6\u201312<\/span><span class=\"unit\">pts<\/span><\/span><p>Puntos de mejora en disponibilidad de equipo<\/p><span class=\"cap\">Sobre el componente de disponibilidad del OEE, en los activos cr\u00edticos incluidos en el alcance.<\/span><\/li>\n      <li><span class=\"num\"><span class=\"cu\" data-count=\"70\" data-prefix=\"50\u2013\">50\u201370<\/span><span class=\"unit\">%<\/span><\/span><p>Menos tiempo administrativo por orden de trabajo<\/p><span class=\"cap\">Creaci\u00f3n, asignaci\u00f3n, consulta de repuesto y cierre documental que hoy hace un planeador a mano.<\/span><\/li>\n      <li><span class=\"num\"><span class=\"cu\" data-count=\"3\" data-prefix=\"&lt;\">&lt;3<\/span><span class=\"unit\">sem<\/span><\/span><p>De diagn\u00f3stico a primer activo monitoreado<\/p><span class=\"cap\">Entre el mapeo de la l\u00ednea y el primer grupo de equipos cr\u00edticos operando contra telemetr\u00eda real.<\/span><\/li>\n    <\/ul>\n  <\/div>\n<\/section>\n\n<!-- ============ EL PROBLEMA (base crema) ============ -->\n<section class=\"section\" id=\"dolor\">\n  <div class=\"wrap\">\n    <div class=\"head reveal\">\n      <h2>La planta genera datos que <span class=\"accent\">nadie alcanza a convertir en acci\u00f3n<\/span>.<\/h2>\n      <p class=\"lead\">Tu SCADA captura la se\u00f1al, tu historiador la guarda, tu CMMS registra la orden. Pero entre cada sistema hay un planeador revisando tableros, un supervisor llamando a bodega y un t\u00e9cnico llenando formatos. El dato existe; lo que falta es quien lo ejecute a tiempo.<\/p>\n    <\/div>\n    <ul class=\"problems\">\n      <li class=\"problem reveal\">\n        <span class=\"num\">01 \u2014 Paradas<\/span>\n        <h3>El fallo se ve en el tablero cuando ya par\u00f3 la l\u00ednea.<\/h3>\n        <p>La se\u00f1al estaba ah\u00ed horas o d\u00edas antes, pero nadie la estaba mirando en ese turno. La parada no programada cuesta el doble que la planificada.<\/p>\n      <\/li>\n      <li class=\"problem reveal\">\n        <span class=\"num\">02 \u2014 \u00d3rdenes de trabajo<\/span>\n        <h3>Entre detectar y abrir la OT se van dos turnos.<\/h3>\n        <p>Alguien tiene que enterarse, decidir, consultar repuesto, crear la orden y asignar t\u00e9cnico. Cada eslab\u00f3n agrega horas a un problema que ya est\u00e1 corriendo.<\/p>\n      <\/li>\n      <li class=\"problem reveal\">\n        <span class=\"num\">03 \u2014 Repuestos<\/span>\n        <h3>Llega el d\u00eda de la intervenci\u00f3n y la pieza no est\u00e1.<\/h3>\n        <p>La OT se abri\u00f3, el t\u00e9cnico se agend\u00f3 y el repuesto ten\u00eda ocho semanas de lead time. La ventana se pierde y el equipo sigue degrad\u00e1ndose.<\/p>\n      <\/li>\n      <li class=\"problem reveal\">\n        <span class=\"num\">04 \u2014 Trazabilidad<\/span>\n        <h3>El reporte de turno y la no conformidad viven en papel y WhatsApp.<\/h3>\n        <p>Cuando llega la auditor\u00eda de cliente o la revisi\u00f3n ISO, reconstruir qu\u00e9 pas\u00f3 en una l\u00ednea hace tres meses es un trabajo de arqueolog\u00eda.<\/p>\n      <\/li>\n    <\/ul>\n  <\/div>\n<\/section>\n\n<!-- ============ CASOS DE USO (blanco) ============ -->\n<section class=\"section section--white\" id=\"casos\">\n  <div class=\"wrap\">\n    <div class=\"head reveal\">\n      <h2>Procesos de manufactura\n automatizados con <span class=\"accent\">Ruvic AI<\/span>.<\/h2>\n      <p class=\"lead\">Cada caso opera sobre tu SCADA, tu CMMS y tus reglas de mantenimiento. Ruvic no improvisa: ejecuta el flujo que tu equipo de confiabilidad defini\u00f3, escala al humano cuando corresponde (criticidad alta, acci\u00f3n sobre el proceso f\u00edsico, excepci\u00f3n) y deja trazabilidad completa de cada decisi\u00f3n.<\/p>\n    <\/div>\n\n    <div class=\"casos\">\n\n      <article class=\"caso reveal\">\n        <div class=\"caso__kpi\">\n          <span class=\"caso__num\">CASO 01<\/span>\n          <div><div class=\"caso__fig\">\u221245%<\/div><div class=\"caso__fig-l\">Paradas no programadas en activos cr\u00edticos<\/div><\/div>\n        <\/div>\n        <div>\n          <span class=\"caso__tag\">Confiabilidad \u00b7 Mantenimiento predictivo<\/span>\n          <h3>Detecta la desviaci\u00f3n, estima la ventana y dispara la intervenci\u00f3n.<\/h3>\n          <p class=\"caso__quote\">\u00abTenemos sensores y tableros en toda la planta. Pero el fallo lo vemos cuando ya par\u00f3 la l\u00ednea, no cuando la se\u00f1al empez\u00f3 a moverse.\u00bb<\/p>\n          <p class=\"caso__res\">Ruvic lee la telemetr\u00eda de vibraci\u00f3n, temperatura, consumo y presi\u00f3n desde tu SCADA o historiador, la compara contra la l\u00ednea base del activo y detecta el patr\u00f3n de degradaci\u00f3n. Cuando la desviaci\u00f3n supera el umbral, estima la ventana de intervenci\u00f3n, genera la orden de trabajo en el CMMS con el diagn\u00f3stico adjunto y notifica al planeador y al supervisor de turno por WhatsApp.<\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"caso reveal\">\n        <div class=\"caso__kpi\">\n          <span class=\"caso__num\">CASO 02<\/span>\n          <div><div class=\"caso__fig\">\u221270%<\/div><div class=\"caso__fig-l\">Tiempo administrativo por orden de trabajo<\/div><\/div>\n        <\/div>\n        <div>\n          <span class=\"caso__tag\">Planeaci\u00f3n \u00b7 \u00d3rdenes de trabajo<\/span>\n          <h3>Crea, prioriza y cierra la OT sin que el planeador la digite.<\/h3>\n          <p class=\"caso__quote\">\u00abEntre que alguien detecta el problema y la orden queda abierta con t\u00e9cnico asignado se van dos turnos. Todo pasa por el planeador.\u00bb<\/p>\n          <p class=\"caso__res\">Ruvic genera la orden con criticidad, activo, s\u00edntoma y repuesto asociado; la prioriza contra el plan de producci\u00f3n y la carga del equipo; asigna al t\u00e9cnico disponible con la competencia requerida y le env\u00eda la instrucci\u00f3n por WhatsApp. Al cierre, recibe la nota de voz del t\u00e9cnico, la estructura y actualiza el historial del activo en el CMMS.<\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"caso reveal\">\n        <div class=\"caso__kpi\">\n          <span class=\"caso__num\">CASO 03<\/span>\n          <div><div class=\"caso__fig\">\u221260%<\/div><div class=\"caso__fig-l\">Intervenciones aplazadas por falta de repuesto<\/div><\/div>\n        <\/div>\n        <div>\n          <span class=\"caso__tag\">Cadena de suministro \u00b7 Repuestos<\/span>\n          <h3>Verifica, reserva y compra la pieza antes de que la ventana llegue.<\/h3>\n          <p class=\"caso__quote\">\u00abLlega el d\u00eda de la intervenci\u00f3n y la pieza no est\u00e1. La OT se reprograma y el equipo sigue degrad\u00e1ndose hasta que revienta.\u00bb<\/p>\n          <p class=\"caso__res\">Al detectar la condici\u00f3n de riesgo, Ruvic consulta la existencia en tu ERP o WMS y reserva el repuesto contra la orden. Si no hay stock, genera la solicitud de compra con el lead time del proveedor y ajusta la fecha propuesta de intervenci\u00f3n a la disponibilidad real. El planeador ve una ventana que s\u00ed se puede cumplir, no una fecha optimista.<\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"caso reveal\">\n        <div class=\"caso__kpi\">\n          <span class=\"caso__num\">CASO 04<\/span>\n          <div><div class=\"caso__fig\">3\u00d7<\/div><div class=\"caso__fig-l\">M\u00e1s r\u00e1pido el cierre documental de turno<\/div><\/div>\n        <\/div>\n        <div>\n          <span class=\"caso__tag\">Calidad \u00b7 Trazabilidad y reportes<\/span>\n          <h3>Consolida el turno, estructura la no conformidad y deja el rastro listo para auditor\u00eda.<\/h3>\n          <p class=\"caso__quote\">\u00abEl reporte de turno y las no conformidades viven en papel y en WhatsApp. Reconstruir qu\u00e9 pas\u00f3 hace tres meses es arqueolog\u00eda.\u00bb<\/p>\n          <p class=\"caso__res\">Ruvic arma el reporte de turno cruzando telemetr\u00eda, \u00f3rdenes cerradas, paros registrados y las notas de voz del supervisor. Para calidad, recibe el reporte de no conformidad por voz o foto, lo estructura contra tu formato, lo asocia al lote y al activo, y deja el registro trazable para ISO 9001 y auditor\u00edas de cliente.<\/p>\n        <\/div>\n      <\/article>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============ CAPACIDADES T\u00c9CNICAS (base crema) ============ -->\n<section class=\"section\" id=\"tecnico\">\n  <div class=\"wrap\">\n    <div class=\"head reveal\">\n      <h2>Lo que tu jefe de mantenimiento, tu gerente de planta y tu CIO <span class=\"accent\">necesitan saber<\/span>.<\/h2>\n      <p class=\"lead\">Especificaciones operativas del motor de Ruvic aplicado a manufactura. Disponibles desde el primer caso de uso, configurables por activo y compatibles con la infraestructura OT e IT que tu planta ya opera.<\/p>\n    <\/div>\n    <div class=\"tech\">\n      <div class=\"tech__item reveal\"><h3>Conectividad OT<\/h3><div class=\"stack\">OPC UA \u00b7 MQTT \u00b7 Modbus TCP \u00b7 REST<\/div><p>Lectura de SCADA, PLC e historiadores de proceso por los protocolos est\u00e1ndar de planta. Ruvic consume la se\u00f1al que ya existe, sin tocar la l\u00f3gica de control.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Integraci\u00f3n con CMMS y EAM<\/h3><div class=\"stack\">SAP PM \u00b7 IBM Maximo \u00b7 Fracttal \u00b7 API abierta<\/div><p>Creaci\u00f3n, actualizaci\u00f3n y cierre de \u00f3rdenes de trabajo directamente en tu sistema de mantenimiento. No reemplazamos tu CMMS, escribimos sobre \u00e9l.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Modelos de detecci\u00f3n<\/h3><div class=\"stack\">L\u00ednea base por activo \u00b7 Umbrales configurables<\/div><p>Detecci\u00f3n de desviaci\u00f3n sobre el comportamiento hist\u00f3rico de cada equipo, no sobre un umbral gen\u00e9rico. La sensibilidad se ajusta por criticidad del activo.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Separaci\u00f3n OT \/ IT<\/h3><div class=\"stack\">Lectura OT \u00b7 Escritura solo en capa IT<\/div><p>Ruvic no ejecuta acciones sobre el proceso f\u00edsico por defecto. Alerta, documenta y escala. Cualquier actuaci\u00f3n sobre planta se habilita caso por caso con aprobaci\u00f3n humana expl\u00edcita.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Inventario y compras<\/h3><div class=\"stack\">ERP \u00b7 WMS \u00b7 Reserva y solicitud autom\u00e1tica<\/div><p>Consulta de existencias, reserva contra orden y generaci\u00f3n de solicitud de compra con lead time del proveedor, para que la ventana de intervenci\u00f3n sea realista.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Canales para planta<\/h3><div class=\"stack\">WhatsApp \u00b7 Voz \u00b7 Web \u00b7 Notas de voz<\/div><p>El t\u00e9cnico y el supervisor interact\u00faan por el canal que ya usan. Las notas de voz en piso se transcriben y estructuran contra tus formatos de reporte.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Trazabilidad y auditor\u00eda<\/h3><div class=\"stack\">Log inmutable \u00b7 Exportable \u00b7 ISO 9001<\/div><p>Cada detecci\u00f3n, orden, aprobaci\u00f3n y cierre queda registrada con sello de tiempo, activo y lote asociado, lista para auditor\u00eda interna y de cliente.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Motor multi-LLM din\u00e1mico<\/h3><div class=\"stack\">GPT-4o \u00b7 Claude \u00b7 Gemini \u00b7 DeepSeek<\/div><p>Ruvic selecciona el modelo \u00f3ptimo por tarea dentro del mismo proceso (lectura de manual t\u00e9cnico, redacci\u00f3n de OT, an\u00e1lisis de causa ra\u00edz) sin depender de un solo proveedor.<\/p><\/div>\n      <div class=\"tech__item reveal\"><h3>Orquestaci\u00f3n multi-agente<\/h3><div class=\"stack\">Agentes especializados \u00b7 Tiempo real<\/div><p>Ante una desviaci\u00f3n, Ruvic invoca agentes que consultan el historial del activo, verifican el repuesto en el ERP, revisan el plan de producci\u00f3n y redactan la orden, en paralelo. El planeador recibe una sola recomendaci\u00f3n.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============ CAPACIDADES DEL MOTOR (blanco) ============ -->\n<section class=\"section section--white\" aria-labelledby=\"motor-title\">\n  <div class=\"wrap\">\n    <div class=\"head reveal\">\n      <h2 id=\"motor-title\">Manufactura no es un m\u00f3dulo. Es el motor de Ruvic <span class=\"accent\">aplicado a tu planta<\/span>.<\/h2>\n      <p class=\"lead\">Cada capacidad opera de forma independiente, pero el valor real aparece cuando se combinan: una se\u00f1al de vibraci\u00f3n que dispara una orden de trabajo, reserva el repuesto en el ERP y llega al t\u00e9cnico por WhatsApp con el manual del equipo adjunto, sin que nadie las conecte a mano.<\/p>\n    <\/div>\n    <div class=\"motor\">\n      <a href=\"https:\/\/ruvic.ai\/workflows\/\" class=\"motor__card reveal\">\n        <div class=\"motor__ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"6\" height=\"6\" rx=\"1.5\"><\/rect><rect x=\"15\" y=\"15\" width=\"6\" height=\"6\" rx=\"1.5\"><\/rect><path d=\"M9 6h6a3 3 0 0 1 3 3v6\"><\/path><\/svg><\/div>\n        <h3>Workflows<\/h3>\n        <p>Flujos multi-paso que orquestan telemetr\u00eda, \u00f3rdenes de trabajo, inventario y reglas de mantenimiento. Drag &amp; drop, sin c\u00f3digo.<\/p>\n        <span class=\"stack\">Orquestaci\u00f3n \u00b7 No-code<\/span>\n      <\/a>\n      <a href=\"https:\/\/ruvic.ai\/chat-web\/\" class=\"motor__card reveal\">\n        <div class=\"motor__ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5Z\"><\/path><\/svg><\/div>\n        <h3>Operador IA<\/h3>\n        <p>El t\u00e9cnico y el supervisor consultan, reportan y cierran desde WhatsApp o web, con la misma inteligencia del proceso detr\u00e1s.<\/p>\n        <span class=\"stack\">WhatsApp \u00b7 Web \u00b7 Chat<\/span>\n      <\/a>\n      <a href=\"https:\/\/ruvic.ai\/idp-documental\/\" class=\"motor__card reveal\">\n        <div class=\"motor__ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\"><\/path><path d=\"M14 2v6h6\"><\/path><path d=\"M8 13h8\"><\/path><path d=\"M8 17h5\"><\/path><\/svg><\/div>\n        <h3>IDP Documental<\/h3>\n        <p>Lee manuales t\u00e9cnicos, fichas de repuesto, \u00f3rdenes de compra y formatos de inspecci\u00f3n. Extrae los datos y los pasa al flujo.<\/p>\n        <span class=\"stack\">OCR \u00b7 NLP \u00b7 Validaci\u00f3n<\/span>\n      <\/a>\n      <a href=\"https:\/\/ruvic.ai\/voz-ia\/\" class=\"motor__card reveal\">\n        <div class=\"motor__ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 3a3 3 0 0 1 3 3v5a3 3 0 0 1-6 0V6a3 3 0 0 1 3-3Z\"><\/path><path d=\"M5 11a7 7 0 0 0 14 0\"><\/path><path d=\"M12 18v3\"><\/path><\/svg><\/div>\n        <h3>Voz IA<\/h3>\n        <p>Notas de voz del t\u00e9cnico en piso convertidas en registro estructurado, y llamadas de escalamiento cuando la criticidad lo exige.<\/p>\n        <span class=\"stack\">Voz \u00b7 SIP \u00b7 Telefon\u00eda<\/span>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============ FAQ (base crema) ============ -->\n<section class=\"section\" id=\"faq\" aria-labelledby=\"faq-title\">\n  <div class=\"wrap\">\n    <div class=\"head reveal\">\n      <h2 id=\"faq-title\">\n        Preguntas frecuentes de mantenimiento predictivo con\n        <span class=\"accent\">IA para manufactura<\/span>.\n      <\/h2>\n    <\/div>\n\n    <div class=\"faq\">\n      \n      <!-- Pregunta 1 -->\n      <details class=\"reveal\">\n        <summary>\n          <h3>\u00bfQu\u00e9 es el mantenimiento predictivo con IA?<\/h3>\n        <\/summary>\n        <p>\n          Es usar IA para anticipar la falla antes de que ocurra: analiza la se\u00f1al de tus equipos,\n          detecta el patr\u00f3n que precede a una parada y dispara la orden de trabajo sola.\n          En vez de reaccionar al da\u00f1o, lo previenes.\n        <\/p>\n      <\/details>\n\n      <!-- Pregunta 2 -->\n      <details class=\"reveal\">\n        <summary>\n          <h3>\u00bfQu\u00e9 procesos puede automatizar Ruvic en manufactura?<\/h3>\n        <\/summary>\n        <p>\n          El mantenimiento predictivo, la predicci\u00f3n de demanda, la generaci\u00f3n autom\u00e1tica de\n          \u00f3rdenes de trabajo y la trazabilidad y reportes de planta. Recuperas disponibilidad,\n          tiempo y control.\n        <\/p>\n      <\/details>\n\n      <!-- Pregunta 3 -->\n      <details class=\"reveal\">\n        <summary>\n          <h3>\u00bfSe integra con mis sistemas actuales?<\/h3>\n        <\/summary>\n        <p>\n          S\u00ed. Se conecta por API a tu MES, tu ERP, tu CMMS y tus fuentes de datos de planta\n          (SCADA\/sensores), sin reemplazarlos: opera encima de lo que ya tienes.\n        <\/p>\n      <\/details>\n\n      <!-- Pregunta 4 -->\n      <details class=\"reveal\">\n        <summary>\n          <h3>\u00bfLa IA reemplaza a mi equipo de mantenimiento?<\/h3>\n        <\/summary>\n        <p>\n          No. Automatiza el monitoreo y la detecci\u00f3n temprana para que tu equipo deje de operar\n          en modo apagafuegos y se enfoque en las intervenciones que de verdad requieren su criterio.\n        <\/p>\n      <\/details>\n\n      <!-- Pregunta 5 -->\n      <details class=\"reveal\">\n        <summary>\n          <h3>\u00bfCu\u00e1nto cuesta automatizar procesos de manufactura con IA?<\/h3>\n        <\/summary>\n        <p>\n          Depende de tu parque de equipos, tus integraciones y el alcance (predictivo, demanda,\n          trazabilidad). No publicamos una tarifa cerrada; lo dimensionamos sobre tu operaci\u00f3n\n          en una demo.\n        <\/p>\n      <\/details>\n\n    <\/div>\n  <\/div>\n<\/section>\n<!-- ============ CTA FINAL NAVY ============ -->\n<section class=\"cta\" id=\"demo\">\n  <div class=\"wrap\">\n    <div class=\"cta__inner reveal\">\n      <div class=\"cta__content\">\n        <span class=\"kicker\">PRUEBA DE CONCEPTO<\/span>\n        <h2>Pru\u00e9balo en una de tus <span class=\"accent\">l\u00edneas reales<\/span>.<\/h2>\n        <p class=\"lead\">Solicita una prueba de concepto. En menos de tres semanas tienes Ruvic monitoreando un grupo de equipos cr\u00edticos de tu planta y ejecutando el flujo completo: detecci\u00f3n, orden de trabajo, repuesto y cierre documental.<\/p>\n        <div class=\"cta__btns\">\n          <a class=\"btn btn--primary\" href=\"https:\/\/app.ruvic.ai\/account\/auth\/login-2\">Solicitar prueba de concepto<\/a>\n          <a class=\"btn btn--ghost-dark\" href=\"https:\/\/ruvic.ai\/motor-de-ia\/\">Hablar con un especialista<\/a>\n        <\/div>\n        <div class=\"cta__tags\">\n          <span><i>\u2713<\/i> Integrado a tu SCADA y CMMS v\u00eda OPC UA \u00b7 API<\/span>\n          <span><i>\u2713<\/i> Sin actuaci\u00f3n sobre proceso f\u00edsico sin aprobaci\u00f3n<\/span>\n          <span><i>\u2713<\/i> Primer activo monitoreado en &lt;3 semanas<\/span>\n        <\/div>\n        <div class=\"cta__geo\">Colombia \u00b7 Per\u00fa \u00b7 Chile \u00b7 M\u00e9xico \u00b7 Estados Unidos<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============ FOOTER ============ -->\n\n<\/div>\n\n\n\n<script>\n\/* ============ Reveal on scroll (gated con .js; con fallback) ============ *\/\n(function(){\n  var els=document.querySelectorAll('.reveal');\n  if(!('IntersectionObserver' in window)){\n    els.forEach(function(el){el.classList.add('in');});\n    return;\n  }\n  var io=new IntersectionObserver(function(entries){\n    entries.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});\n  },{threshold:.12});\n  els.forEach(function(el){io.observe(el);});\n  \/* Fallback de robustez: si algo qued\u00f3 oculto tras la carga, mostrarlo *\/\n  window.addEventListener('load',function(){\n    setTimeout(function(){\n      els.forEach(function(el){\n        var r=el.getBoundingClientRect();\n        if(!(r.top>=window.innerHeight || r.bottom<=0))el.classList.add('in');\n      });\n    },900);\n  });\n})();\n\n\/* ============ Count-up: unificado en el script universal al final del documento (KIT \u00a710.1) ============ *\/\n\n\/* ============ Plant Command Center \u2014 operacion en vivo ============ *\/\n(function(){\n  var card=document.getElementById('callcard');\n  if(!card) return;\n  var reduce = window.matchMedia ? window.matchMedia('(prefers-reduced-motion:reduce)').matches : false;\n  var tEl=document.getElementById('call-time');\n  var pacEl=document.getElementById('call-pac');\n  var motEl=document.getElementById('call-mot');\n  var trEl=document.getElementById('call-transcript');\n  var chEl=document.getElementById('call-chips');\n\n  \/* Escenarios de la seccion *\/\n  var SCENARIOS=[\n    { pac:'Compresor CP-04 \u00b7 L\u00ednea 2', mot:'Mantenimiento predictivo',\n      lines:[['ruvic','Vibraci\u00f3n del rodamiento en CP-04 subi\u00f3 <em>34%<\/em> sobre la l\u00ednea base en las \u00faltimas 6 horas. Patr\u00f3n compatible con desgaste temprano.'],\n             ['patient','\u00bfCu\u00e1nto tiempo tenemos?'],\n             ['ruvic','Ventana estimada de <em>9 a 14 d\u00edas<\/em>. Rodamiento disponible en bodega, ya lo reserv\u00e9. Propongo intervenir en el paro programado del s\u00e1bado.'],\n             ['patient','Dale, ag\u00e9ndalo.']],\n      chips:[['Desviaci\u00f3n detectada','ok'],['Repuesto reservado','ok'],['OT generada','ok'],['\u2192 Registrado en CMMS','live']] },\n    { pac:'Extrusora EX-11 \u00b7 L\u00ednea 4', mot:'Repuesto sin stock',\n      lines:[['ruvic','Temperatura de husillo fuera de rango por tercer turno consecutivo en EX-11. Riesgo de parada en <em>5 a 8 d\u00edas<\/em>.'],\n             ['ruvic','La resistencia de recambio no tiene stock. Lead time del proveedor: <em>11 d\u00edas h\u00e1biles<\/em>.'],\n             ['ruvic','Genero solicitud de compra urgente y muevo la ventana propuesta al d\u00eda 14. Escalo a jefatura por criticidad alta.']],\n      chips:[['Sin stock','esc'],['Solicitud de compra creada','ok'],['\u2192 Escalado a jefatura','esc']] },\n    { pac:'Turno B \u00b7 L\u00ednea 2', mot:'Cierre de turno',\n      lines:[['ruvic','Consolidando turno B: 3 \u00f3rdenes cerradas, 1 paro no programado de 22 minutos, 0 no conformidades abiertas.'],\n             ['patient','El paro fue por atasco en la banda, ya lo liberamos.'],\n             ['ruvic','Registrado como atasco mec\u00e1nico en banda BT-02, con la nota de voz adjunta. Reporte de turno listo y enviado a producci\u00f3n.']],\n      chips:[['Turno consolidado','ok'],['Paro clasificado','ok'],['\u2192 Reporte enviado','live']] },\n    { pac:'Lote L-8842 \u00b7 Inspecci\u00f3n', mot:'Calidad \u00b7 No conformidad',\n      lines:[['patient','Encontramos rebaba en el borde en varias piezas del lote 8842.'],\n             ['ruvic','Registro la no conformidad contra el lote L-8842 y la m\u00e1quina IN-07. \u00bfCu\u00e1ntas piezas de la muestra est\u00e1n afectadas?'],\n             ['patient','6 de 20.'],\n             ['ruvic','30% de la muestra, supera el umbral. Bloqueo el lote, notifico a calidad y abro orden de revisi\u00f3n del molde.']],\n      chips:[['NC registrada','ok'],['Lote bloqueado','esc'],['\u2192 Orden de revisi\u00f3n abierta','live']] },\n    { pac:'Bomba BP-19 \u00b7 Servicios', mot:'OT \u00b7 Asignaci\u00f3n',\n      lines:[['ruvic','Orden preventiva de BP-19 vence ma\u00f1ana. T\u00e9cnico asignado con competencia mec\u00e1nica: Andr\u00e9s M.'],\n             ['ruvic','Le envi\u00e9 la instrucci\u00f3n por WhatsApp con la ficha del equipo y el hist\u00f3rico de las \u00faltimas 3 intervenciones.'],\n             ['patient','Perfecto, confirmado.']],\n      chips:[['T\u00e9cnico asignado','ok'],['Ficha enviada','ok'],['\u2192 OT en ejecuci\u00f3n','live']] }\n  ];\n\n  \/* ---- Estabilizador de altura (evita temblor al rotar SCENARIOS) ----\n     El CSS de .hero .console reduce min-height a valores fijos (150px en\n     el transcript, 0 en los chips) que no alcanzan para todos los\n     escenarios. Se mide el alto real de cada variante posible (todas las\n     lineas\/chips de cada escenario, renderizadas por completo, no solo\n     la primera) y se fija minHeight al maximo -- asi el contenedor nunca\n     necesita crecer\/encoger cuando cambia el escenario. *\/\n  function __medirMax(el, variantesHtml){\n    var prevMin = el.style.minHeight;\n    var original = el.innerHTML;\n    el.style.minHeight = '0';\n    var max = 0;\n    variantesHtml.forEach(function(html){\n      el.innerHTML = html;\n      var h = el.getBoundingClientRect().height;\n      if(h > max) max = h;\n    });\n    el.innerHTML = original;\n    el.style.minHeight = prevMin;\n    return max;\n  }\n  function __reservarAlturas(){\n    if(!pacEl || !motEl || !trEl || !chEl) return;\n    pacEl.style.minHeight = __medirMax(pacEl, SCENARIOS.map(function(sc){return sc.pac;})) + 'px';\n    motEl.style.minHeight = __medirMax(motEl, SCENARIOS.map(function(sc){return sc.mot;})) + 'px';\n    var trVariantes = SCENARIOS.map(function(sc){\n      return sc.lines.map(function(ln){\n        return '<div class=\"cc-line cc-line--'+ln[0]+'\"><span class=\"speaker\">'+(ln[0]==='ruvic'?'Ruvic':'Planta')+'<\/span><span class=\"text\">'+ln[1]+'<\/span><\/div>';\n      }).join('');\n    });\n    trEl.style.minHeight = __medirMax(trEl, trVariantes) + 'px';\n    var chVariantes = SCENARIOS.map(function(sc){\n      return sc.chips.map(function(c){\n        return '<span class=\"tag tag--'+(c[1]||'ok')+'\">'+c[0]+'<\/span>';\n      }).join('');\n    });\n    chEl.style.minHeight = __medirMax(chEl, chVariantes) + 'px';\n  }\n  __reservarAlturas();\n  window.addEventListener('resize', __reservarAlturas);\n  if(document.fonts && document.fonts.ready) document.fonts.ready.then(__reservarAlturas);\n\n  var sec=0, timer=null, pending=[];\n  function fmt(){var m=Math.floor(sec\/60),s=sec%60;tEl.textContent=(m<10?'0':'')+m+':'+(s<10?'0':'')+s;}\n  function startTimer(){stopTimer();sec=0;fmt();timer=setInterval(function(){sec++;fmt();},1000);}\n  function stopTimer(){if(timer){clearInterval(timer);timer=null;}}\n  function clearPending(){pending.forEach(clearTimeout);pending=[];}\n  function later(fn,ms){pending.push(setTimeout(fn,ms));}\n\n  function play(i,done){\n    var sc=SCENARIOS[i];\n    clearPending();\n    pacEl.textContent=sc.pac; motEl.textContent=sc.mot;\n    trEl.innerHTML=''; chEl.innerHTML='';\n    startTimer();\n    var d=350;\n    sc.lines.forEach(function(ln){\n      later(function(){\n        var row=document.createElement('div');\n        row.className='cc-line cc-line--'+ln[0]+' enter';\n        row.innerHTML='<span class=\"speaker\">'+(ln[0]==='ruvic'?'Ruvic':'Planta')+'<\/span><span class=\"text\">'+ln[1]+'<\/span>';\n        trEl.appendChild(row);\n      },d);\n      d+=1350;\n    });\n    sc.chips.forEach(function(c,idx){\n      later(function(){\n        var s=document.createElement('span');\n        s.className='tag pop tag--'+(c[1]||'ok');\n        s.innerHTML=c[0];\n        chEl.appendChild(s);\n      },d+idx*360);\n    });\n    d+=sc.chips.length*360+2600;\n    later(done,d);\n  }\n  function loop(i){play(i,function(){loop((i+1)%SCENARIOS.length);});}\n\n  var started=false;\n  function start(){\n    if(started) return; started=true;\n    if(reduce) return; \/* sin movimiento: la semilla queda est\u00e1tica *\/\n    startTimer();\n    later(function(){loop(1);},3200);\n  }\n\n  \/* Robustez: arranque garantizado con load + setTimeout *\/\n  window.addEventListener('load',function(){setTimeout(start,700);});\n  setTimeout(start,3500); \/* respaldo por si 'load' ya dispar\u00f3 o tarda *\/\n\n  \/* IntersectionObserver solo como extra (arranque anticipado al entrar en viewport) *\/\n  if('IntersectionObserver' in window){\n    var io2=new IntersectionObserver(function(es){\n      es.forEach(function(e){if(e.isIntersecting) start();});\n    },{threshold:.25});\n    io2.observe(card);\n  }\n})();\n<\/script>\n<script>\n\/* ===== Count-up universal v2 (KIT \u00a710.1) \u2014 neutraliza count-ups viejos y anima ===== *\/\n(function(){\n  if(window.__ruvicCU) return; window.__ruvicCU=1;\n  var reduce = window.matchMedia ? window.matchMedia('(prefers-reduced-motion:reduce)').matches : false;\n  function fmt(v,dec,thou){ if(thou) return String(Math.round(v)).replace(\/\\B(?=(\\d{3})+(?!\\d))\/g,'.'); return v.toFixed(dec); }\n  function parseNum(s){ var val,dec=0,thou=false;\n    if(\/^\\d{1,3}(\\.\\d{3})+$\/.test(s)){ thou=true; val=parseFloat(s.replace(\/\\.\/g,'')); }\n    else { var d=s.match(\/^(\\d+)(?:[.,](\\d+))?$\/); if(!d) return null; dec=d[2]?d[2].length:0; val=parseFloat(d[1]+(d[2]?'.'+d[2]:'')); }\n    return isFinite(val)?{val:val,dec:dec,thou:thou}:null; }\n  function isBig(el){ if(el.children.length) return false; var tx=el.textContent.trim();\n    if(tx.indexOf('\/')>-1) return false; if(\/^0\\d$\/.test(tx)||\/^(19|20)\\d\\d$\/.test(tx)) return false;\n    if(!\/^[<>+~]?\\s*[\\d][\\d.,]*\\s*(%|h\\+?|\u00d7|x|min|seg|sem|pts?|k)?$\/i.test(tx)) return false;\n    return parseFloat(getComputedStyle(el).fontSize)>=26; }\n  var all=[].slice.call(document.querySelectorAll('[data-count],div,span,strong,b,p'));\n  var seen=[], data=[];\n  all.forEach(function(el){\n    if(seen.indexOf(el)>-1) return;\n    var dc=el.getAttribute('data-count'), pre='', numStr=null, suf='', raw=el.textContent.trim();\n    if(dc!=null ? \/\\d\/.test(dc) : false){ numStr=String(dc).trim(); suf=el.getAttribute('data-suffix')||''; pre=el.getAttribute('data-prefix')||''; if(!pre){ var pm=raw.match(\/^([<>+~])\/); if(pm) pre=pm[1]; } }\n    else if(isBig(el)){ var m=raw.match(\/^([<>+~]?\\s*)([\\d.,]+)(.*)$\/); if(m){ pre=m[1]; numStr=m[2]; suf=m[3]; } }\n    if(numStr==null) return;\n    var pn=parseNum(numStr); if(!pn) return;\n    seen.push(el);\n    el.removeAttribute('data-count'); el.removeAttribute('data-suffix'); el.removeAttribute('data-done'); \/* mata al viejo *\/\n    el.textContent=pre+fmt(0,pn.dec,pn.thou)+suf;\n    data.push({el:el,pre:pre,suf:suf,val:pn.val,dec:pn.dec,thou:pn.thou,done:false});\n  });\n  function run(d){ if(!d||d.done) return; d.done=true;\n    var setFinal=function(){ d.el.textContent=d.pre+fmt(d.val,d.dec,d.thou)+d.suf; };\n    if(reduce){ setFinal(); return; }\n    var dur=1500,t0=null,raf=0,finished=false;\n    function done(){ if(finished) return; finished=true; if(raf){ if(window.cancelAnimationFrame) cancelAnimationFrame(raf); } setFinal(); }\n    function step(ts){ if(finished) return; if(t0===null)t0=ts; var p=(ts-t0)\/dur; if(!(p>0))p=0; if(p>=1){ done(); return; }\n      var e=1-Math.pow(1-p,3); d.el.textContent=d.pre+fmt(d.val*e,d.dec,d.thou)+d.suf; raf=requestAnimationFrame(step); }\n    raf=requestAnimationFrame(step);\n    setTimeout(done, dur+500); \/* respaldo: garantiza el valor final aunque rAF no dispare *\/\n  }\n  \/* Disparo por entrada en viewport (animaci\u00f3n visible al hacer scroll); nunca deja \"0\" a la vista *\/\n  var pending=data.slice();\n  function check(){ for(var i=pending.length-1;i>=0;i--){ var d=pending[i]; if(d.done){pending.splice(i,1);continue;} var r=d.el.getBoundingClientRect(); var vh=window.innerHeight||document.documentElement.clientHeight||800; if(!(r.top>=vh*0.92 || r.bottom<=-4)){ run(d); pending.splice(i,1); } } }\n  if(reduce){ data.forEach(run); }\n  else {\n    if('IntersectionObserver' in window){\n      var io=new IntersectionObserver(function(es){es.forEach(function(e){ if(e.isIntersecting){ for(var k=0;k<data.length;k++) if(data[k].el===e.target){ run(data[k]); } io.unobserve(e.target);} });},{threshold:.2,rootMargin:'0px 0px -6% 0px'});\n      data.forEach(function(d){ io.observe(d.el); });\n    }\n    window.addEventListener('scroll',check,{passive:true});\n    window.addEventListener('resize',check,{passive:true});\n    window.addEventListener('load',check);\n    check();\n    \/* Poll de viewport: anima cada n\u00famero en cuanto entra en pantalla, aunque scroll\/IO fallen; nunca toca los que est\u00e1n fuera de vista *\/\n    var poll=setInterval(function(){ check(); if(!pending.length) clearInterval(poll); },250);\n    setTimeout(function(){ clearInterval(poll); },20000);\n  }\n})();\n<\/script>\n<script>\n\/* \u2550\u2550\u2550 Pipeline del hero (Canales \u2192 Motor Ruvic \u2192 Acciones) \u2014 Manufactura (light) \u2550\u2550\u2550 *\/\n(function(){\n  'use strict';\n  var svg=document.getElementById('pipe'); if(!svg) return;\n  var NS='http:\/\/www.w3.org\/2000\/svg';\n  var reduce = window.matchMedia ? window.matchMedia('(prefers-reduced-motion:reduce)').matches : false;\n  function el(n,a){ var e=document.createElementNS(NS,n); if(a) for(var k in a) e.setAttribute(k,a[k]); return e; }\n  var IC={\n    phone:'M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2 4.1 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.4 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z',\n    chat:'M4 5h15v11H9l-4 4V5z',\n    web:'M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M3 12h18M12 3c2.5 2.6 3.8 5.7 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.7-3.8-9s1.3-6.4 3.8-9',\n    cal:'M3 5h18v16H3zM3 9h18M8 3v4M16 3v4',\n    crm:'M4 5h16v14H4zM8 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4M5.5 17c.5-1.4 1.8-2.2 2.5-2.2s2 .8 2.5 2.2M14 9h4M14 13h4',\n    bell:'M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9M13.7 21a2 2 0 0 1-3.4 0',\n    doc:'M6 3h9l3 3v15H6zM9 12h5M9 16h5M9 8h3',\n    agent:'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8M16 11l2 2 4-4'\n  };\n  var CHIP_IC={ event:'M4 5h15v11H9l-4 4V5z', alerta:'M6 3h9l3 3v15H6z', resuelto:'M20 6 9 17l-5-5' };\n  var COL={ ev:'#FDAA4C',evbg:'rgba(253,170,76,.16)',evln:'rgba(253,170,76,.5)', al:'#E4262B',albg:'rgba(228,38,43,.13)',alln:'rgba(228,38,43,.4)', res:'#189A4A',resbg:'rgba(24,154,74,.13)',resln:'rgba(24,154,74,.4)' };\n  var SOURCES=[ {t:'SENSOR \/ SCADA',ic:'web'},{t:'HISTORIADOR',ic:'doc'},{t:'WHATSAPP',ic:'chat'},{t:'CMMS',ic:'cal'},{t:'ERP',ic:'crm'} ];\n  var ACTIONS=[ {t:'ALERTA TEMPRANA',ic:'bell'},{t:'GENERA OT',ic:'doc'},{t:'RESERVA REPUESTO',ic:'crm'},{t:'AGENDA VENTANA',ic:'cal'},{t:'ESCALA',ic:'agent'} ];\n  var HUBLABS=['ENTIENDE','PRIORIZA','RESUELVE'];\n  var CHIPLABS={ event:'SE\u00d1AL', alerta:'DESVIACION', resuelto:'RESUELTO' };\n  var NW=184,NH=40,RX=20, LX=4, RX2=720-4-NW, HUBX=360,HUBY=184,DIA=44;\n  var LV=HUBX-DIA*1.414, RV=HUBX+DIA*1.414;\n  function spread(n,a,b){ var out=[],g=(b-a)\/(n-1); for(var i=0;i<n;i++) out.push(a+g*i); return out; }\n  var lys=spread(SOURCES.length,24,346), rys=spread(ACTIONS.length,24,346);\n  var defs=el('defs');\n  var g=el('radialGradient',{id:'hubGlow',cx:'50%',cy:'50%',r:'50%'});\n  g.appendChild(el('stop',{offset:'0%','stop-color':'#FF5F62','stop-opacity':'.5'}));\n  g.appendChild(el('stop',{offset:'45%','stop-color':'#FFB0AB','stop-opacity':'.26'}));\n  g.appendChild(el('stop',{offset:'100%','stop-color':'#FFB0AB','stop-opacity':'0'}));\n  defs.appendChild(g); svg.appendChild(defs);\n  svg.appendChild(el('circle',{cx:HUBX,cy:HUBY,r:106,class:'hub-glow'}));\n  var edgesIn=[],edgesOut=[];\n  lys.forEach(function(y){ var p=el('path',{class:'edge',d:'M'+(LX+NW)+','+y+' C'+(LX+NW+72)+','+y+' '+(LV-40)+','+HUBY+' '+LV+','+HUBY}); svg.appendChild(p); edgesIn.push(p); });\n  rys.forEach(function(y){ var p=el('path',{class:'edge',d:'M'+RV+','+HUBY+' C'+(RV+40)+','+HUBY+' '+(RX2-72)+','+y+' '+RX2+','+y}); svg.appendChild(p); edgesOut.push(p); });\n  function node(x,y,item){\n    var gg=el('g',{class:'pn',transform:'translate('+x+','+(y-NH\/2)+')'});\n    gg.appendChild(el('rect',{x:0,y:0,width:NW,height:NH,rx:RX,ry:RX}));\n    var ig=el('g',{transform:'translate(13,'+(NH\/2-7)+') scale(.60)'});\n    ig.appendChild(el('path',{class:'pn-ic',d:IC[item.ic]||IC.doc})); gg.appendChild(ig);\n    var t=el('text',{x:34,y:NH\/2+3.6}); t.textContent=item.t; gg.appendChild(t);\n    svg.appendChild(gg); return gg;\n  }\n  var srcNodes=SOURCES.map(function(s,i){ return node(LX,lys[i],s); });\n  var actNodes=ACTIONS.map(function(a,i){ return node(RX2,rys[i],a); });\n  function lit(g){ g.classList.add('lit'); setTimeout(function(){ g.classList.remove('lit'); },560); }\n  var hub=el('g');\n  hub.appendChild(el('rect',{x:HUBX-DIA,y:HUBY-DIA,width:DIA*2,height:DIA*2,rx:15,ry:15,class:'hub-diamond',transform:'rotate(45 '+HUBX+' '+HUBY+')'}));\n  hub.appendChild(el('circle',{cx:HUBX,cy:HUBY,r:23,class:'hub-ring'}));\n  var HRS=30; hub.appendChild(el('image',{x:HUBX-HRS\/2,y:HUBY-HRS\/2,width:HRS,height:HRS,preserveAspectRatio:'xMidYMid meet',href:'data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuIAAAK4CAYAAAAx9piuAAAACXBIWXMAACE3AAAhNwEzWJ96AAAgAElEQVR4nO3dz3Ecd7Yl4KOOtwfGAkEWkG2BIAvEsUCQBcO2QNBmto+yoEsWPMqCBi14oAUNWvDA7Wwwi2RJEAWS9Scrb97M74tgqNUdId1QtMjDW\/d36quHh4ebAADMx92HH7v8bzcnnQRO6KuHh4eH6iEAAI70Psnth\/988+iP94\/+e5gVQRwAWIN3GTbpNx\/+eBsBnWKCOACwZm\/yRygXzpmUIA4A8If3Gbbm2x+COScjiAMAfNrjYP46n35ECnsTxAEAdvcuQyB\/HY0tHEkQBwA4zPv8EcpfF89CQ4I4AMDxtqF8E5tydiSIAwCMa3u+8ipuyvkMQRwA4HTeZNiSb2rHYI4EcQCA03ufIYzbkvM7QRwAYFq\/ZQjkN8VzUEwQBwCo8TZDIN8Uz0ERQRwAoNa7JNcRyFfnb9UDAACs3NdJ\/pnhdvyqdBImJYgDAMyDQL4ygjgAwLwI5CvhRhwAYN7eJnkZLSuLYyMOADBvz5L8K8O3dV7UjsKYBHEAgB6+T\/LvDA0r57WjMAanKQAA\/bzLcK7yunoQDieIAwD09SbDg8672jE4hNMUAIC+vk1ym2E7TjM24gAAy2A73oyNOADAMtiON2MjDgCwPLbjDdiIAwAsz3Y7\/qJ6ED5NEAcAWKazJP+VZBO947PkNAUAYPneZjhVuS2eg0dsxAEAlu9ZkpsMYZyZEMQBANbhLMk\/k7yqHoSB0xQAgPV5k+Eh5331IGtmIw4AsD7bVpXn1YOsmSAOALBOX2e4G1dxWEQQBwBYr23F4VXxHKskiAMA8M8MfeNMSBAHACBJfogwPimtKQAAPPY2yWU0qpycjTgAAI9tv\/znvHiOxRPEAQD4mDA+AUEcAICnCOMnJogDAPApwvgJCeIAAHyOMH4igjgAAF8ijJ+AIA4AwC6E8ZEJ4gAA7EoYH5EgDgDAPoTxkQjiAADs61mSV9VDdCeIAwBwiB+SbKqH6EwQBwDgUD8keVk9RFdfPTw8PFQPAQBAaz\/GdnxvgjgAAMd6n+QyyW3xHK0I4gAAjOF9kosk98VztOFGHACAMZxlqDVkR4I4AABjeRa34jsTxAEAGNMPSa6qh+jAjTgAAGPzeHMHNuIAAIztLMOJynnxHLMmiAMAcArPkryqHmLOBHEAAE7FvfhnuBEHAOCU3id5nuSueI7ZsREHAOCUzpK8rh5ijgRxAABO7VmS6+oh5sZpCgAAU\/l7VBr+zkYcAICpbKoHmBNBHACAqThRecRpCgAAU\/smWlRsxAEAmNymeoA5EMQBAJjat\/FFP05TAAAo8T7JRZL74jnK2IgDAFDhLCt\/uGkjDgBApdV2i9uIAwBQ6VX1AFUEcQAAKn2b5EX1EBWcpgAAUO1dhoebq2IjDgBAta+TvKweYmo24gAAzMHq6gxtxAEAmIOzrGwrbiMOAMBcrGorbiMOAMBcrGorbiMOAMCcrGYrbiMOAMCcrGYrbiMOAMDcrGIrbiMOAMDcnCW5qh7i1GzEAQCYo8V\/26aNOAAAc\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\/8OPi0Q+Yg\/+X5OfqIWDm7qoH2IcgDqzdeZKrJJdJvi+dBL7s\/ya5qR4CGIcgDqzVZZKXEb7pZZPhE5v74jmAEbgRB9bmMsNG8V8Rwunn6wy\/gQQWQBAH1uIiyesMAfzb2lHgKD9l2IoDzQniwBpcJbmNDTjL8ap6AOB4gjiwdJsk\/0xyVjwHjOnbOFGB9gRxYKnOM9yC\/1A8B5zKdYb\/nwNNCeLAEm1DuFtwluwswyc+QFOCOLA02xD+rHgOmML3GZqAgIYEcWBpXkUIZ102caICLQniwJK8jJtw1ke3ODT11cPDw0P1ENDAd\/G10nP3PMl\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\/iEC+SoI40NVX1QOM6DJDML\/88OOscBZgeu8z\/Mb8vngOJiaIA10tKYh\/bBvKr5I8K50EmMpvSV5UD8G0BHGgqyUH8ccuMvzi\/DLOWGDpvktyUz0E0xHEga7WEsQfu8ywJf+hdgzgRN5l+ETMicpKaE0B6OMmQxD\/JskvGe5KgeXQLb4yNuJAV2vciH\/sPMMv2j9VDwKM6u9JbquH4PQEcaArQfwPFxmqz74vngMYx5sMp2gsnNMUgP7uMjzo\/C7DjSnQ27dxorIKNuJAVzbin3Yd5yrQnW7xFbARB1ie6ww3prbj0NdZkk31EJyWIA6wTLcZatB+qx4EONj3cSu+aII4wHLdZ7gd\/0f1IMDBNhkaklggQRxg+V5leMipdxz60S2+YB5rAl15rLm\/5xm+FOiseA5gf7rFF8hGHGA9bjPcm74tngPY36vqARifIA6wLsI49KRbfIGcpgBdOU05znmGLwJypgJ96BZfGBtxgHW6z7AZ94AT+tAtvjA24kBXNuLj8IAT+vkuw7+3NGcjDrBut3F3Ct1solt8EQRxADZJfqkeAtiZbvGFcJoCdOU0ZXw3GZoZgB50izcniANdCeLj06QCvbzJ8OiappymALB1n+SqeghgZ7rFm7MRB7qyET+d10m+rx4C2Ilu8cZsxAH42FX0i0MXusUbE8QB+Nh9kuvqIYCdfR+34i05TQG6cppyejfRogJdvMvwBV1OVBqxEQfgUzwCgz50izckiAPwKbdJfq4eAtjZTxm24jThNAXoymnKNM4zBPKvqwcBdqJbvBEbcQA+R7c49KJbvBEbcaArG\/Fp6RaHPnSLN2EjDsAurqJbHLrQLd6EIA7ALnSLQy+6xRtwmgJ05TSlxk10i0MXusVnzkYcgH14BAZ96BafOUEcgH3oFodedIvPmNMUoCunKXV0i0MvusVnykYcgH3pFodedIvPlI040JWNeD3d4tCHbvEZshEH4FBX0S0OXegWnyFBHIBD6RaHXnSLz4zTFKArpynzcRPd4tCFbvEZsREH4FgegUEfusVnRBAH4Fi6xaEX3eIz4TQF6MppyrzoFodedIvPgI04AGPQLQ696BafARtxoCsb8XnSLQ596BYvZiMOwJiuolscujhL8qp6iDUTxAEYk25x6OWHuBUv4zQF6MppyrzdRLc4dPEuw4kKE7MRB+AUPAKDPr6OT7JK2IgDXdmIz991hr5ioIdvktxVD7EmgjjQlSA+f7rFoRfd4hNzmgLAqegWh16+jX9nJ2UjDnRlI96HbnHoQ7f4hGzEATi1q+gWhy50i09IEAfg1HSLQy+6xSfiNAXoymlKPzfRLQ5d6BafgI04AFPRLQ596BafgI040JWNeE\/X0S0OnegWP6G\/xQMaAKbzKsNH3kAPm+oBluxvGb5sAQCmoFscetEtfkJuxAGY2k2S36qHAHb2KsM35TIyQRyACldxGgld6BY\/EUEcgAq6xaEX3eIn8LcMHxECwNReJXlTPQSws031AEtjIw5AJd3i0Idu8ZEJ4gBUuk3yc\/UQwM5+im\/cHI3TFACq6RaHXjbVAyyFjTgA1XSLQy+6xUfy1cPDw0WSf1cPArAnX3G\/PK+TfF89BLCT9xlOVO6L52jtq4eHhyR5qB4EYE+C+PKcJ7nL0FkMzN+vsRk\/yvY0xW0eANV0i0MvusWPtA3id5VDAMAHusWhl031AJ0J4gDMjW5x6EO3+BEEcQDmRrc49KJb\/EDbIH5TOQQAfES3OPSyqR6go20QVz0DwJzoFodedIsfYFtfmKgwBHpRX7gOusWhD93ie3r8zZpvy6YAgKddZfjFHZi\/swxnZezocRC\/LZsCAJ6mWxx60S2+h8dB\/K5qCAD4DN3i0MumeoAuHgfxm6ohAOALdItDH7rFd\/T4seZ5kv8pnAVgHx5rrs91hr5ioIdv4uLisx5vxO+jsxWA+dItDr1sqgeYu7999Oc3FUMAwA50i0MvusW\/4OMgrjkFgDm7SfJb9RDAzl5lOH\/mCTbiAHRzFd3i0IVu8c94aiPuJzcA5ky3OPSiW\/wTPg7iia04APOnWxx62VQPMEeCOABd6RaHPnSLP0EQB6Cr2yQ\/Vw8B7OynJBfVQ8zJ4y\/0eewuw+9cAObKF\/qQDG0Mt\/FrFnTxJu7Ff\/fURjyxFQegB93i0Itu8UcEcQC6u4lucehEt\/gHnzpNOU\/yPxPPArAPpyk8dp7hrPKseA5gN7\/GZvyTG\/H7qIUCoA\/d4tCLbvF8OognyevJpgCA4+kWh1421QNUE8QBWBLd4tDH6rvFPxfE75K8nWgOABiDbnHoZdXd4p8L4omPDADo51WSd9VDADvbVA9Q5UtB3HkKAN3oFodeVtst\/qn6wsdukzybYBaAfagv5EteJ\/m+eghgJ+8znKjcF88xqS9txJPhIz4A6OYqwy\/uwPydZYWZc5cg7jwFgI50i0Mvq+sW3+U0JfHxHjA\/TlPY1U2GG1Rg\/t5lRS0qu2zEkxW\/ZgWgPd3i0MequsV33YgnQ6\/416cbBWAvNuLs4zpDXzHQwzcZsuei7boRT2zFAehLtzj0sqkeYAqCOABroFscellFt\/g+QfwuyW8nmgMATu0mfh2DTl4lOa8e4pT2CeLJCvsdAViUq+gWhy4W3y2+bxC\/SfL2BHMAwBR0i0Mvi+4W3zeIJwv\/nQkAi\/cqyZvqIYCdbaoHOJVDgvgmXp4D0Jtucehjsd3ihwTxZMG\/MwFgFW6T\/Fw9BLCzn7LAb9zc5wt9HjvP0KJyNuo0ALvzhT4c6zxDIPdlddDDmyzsXvzQjfh93IoD0Jtucehlcd3ih27EE1txoJaNOGN5neT76iGAnbzPcKJyXzzHKA7diCe24gAsw1V0i0MXi+oWP2YjntiKA3VsxBnTyyT\/WT0EsLPvMny\/TWvHbMQTW3EAlkG3OPSyqR5gDMcG8WT4yctHegB0p1sc+lhEt\/gYQfw+fvICoD\/d4tBL+27xY2\/EH7uLLlZgOm7EOQXd4tBL627xMTbiW1cj\/rUAoIJuceildbf4mBvxZHi9+u2Yf0GAT7AR55R0i0MfbbvFxw7iF0n+PeZfEOATBHFOST0v9PJrGm7GxzxNSYaftH4Z+a8JAFO7zwIaGWBFfkjDW\/GxN+KJhy7ANGzEmcJNnFxCF+\/SrEVl7I14os4QgOXw6xn00a5b\/BQb8a2b2CIAp2MjzlSuM\/QVAz18k+FcevZOGcQvMpyoeOgCnIIgzlScXEIvbbrFT3GasnWXZh8PAMATdItDL226xU+5Ed+6iRMVYHw24kxNtzj00aJb\/JQb8a2rDP8wAKCzq\/j1DLo4S\/KqeogvmSKI38WJCgD96RaHXmbfLT7FacqWj\/SAMTlNocpNnFxCF7PuFp9iI751FR\/pAdCfbnHoY9bd4lMG8fskLyb8+wHAKdwm+bl6CGBnP2WmW\/Epg3gyfJz3y8R\/TwAY26sMH3kDPWyqB3jKlDfij90meVbxNwYWw4041S6T\/Kt6CGBnP2ZmgbwqiF\/Et24CxxHEmQNFBNDH7LrFpz5N2bqLe3EA+ruKIgLoYnbd4lVBPBnuxf9R+PcHgGPpFodeZtUtXnWa8tgmwz8UgH04TWFObqJbHLqYTbd45UZ862WSt9VDAMARdItDH7PpFp\/DRjxJzjPcjXu8CezKRpy5uc7QVwz08E2G\/FlmDhvxZLixu4wHLwD0pVscetlUDzCXIJ4MdYZX1UMAwIHu49cx6OTbFP87O5fTlMeukvyzeghg9pymMFe6xaGP0m7xOW3EtzZJfqkeAgAOdBWnltBFabf4HIN4Mrw+\/7V6CAA4gG5x6KWsW3yOpymPbaJjHHia0xTm7ia6xaGLkm7xuW7Et65iMw5AT7rFoY+SbvG5b8S3bmKrAPyZjTgdXEe3OHQyabd4lyB+niGMPyueA5gPQZwOzjPU835dPQiwkzeZ8F587qcpW9sv\/HlTPAcA7EO3OPQyabd4l434Y5t4wAnYiNOLbnHoY7Ju8S4b8ceu4gEnAL1cRbc4dDFZt3jHIJ4I4wD0olscepmkW7zjacpjr5L8n+ohgBJOU+joJlrAoIuTd4t33YhvvUzyY\/UQALAj3eLQx8m7xbsH8WR4vPlj3N4BMH+3SX6uHgLY2U854Va8+2nKY88zfOR3VjwHMA2nKXSlWxx6OVm3+BI24lu3GcL42+pBAOAzdItDLyfrFl\/SRnzrPMO5ir5WWDYbcbrTLQ59nKRbfEkb8a37JC\/iBg+AebuK903QxUm6xZcYxLeuk\/zv+EkOgHnSLQ69jN4tvsTTlI9dZPj471nxHMC4nKawFDfRLQ5djNotvuSN+NZdhkecvxTPAQBP0S0OfYzaLb6GjfhjLzI85FRxCP3ZiLMk1xn6ioEevsmw7D3K2oJ4MnycsImPAaE7QZwl0S0OvYzSLb6G05SP3WX4B\/eP2jEA4He6xaGXUbrF17gRf+x5hu24h5zQj404S6RbHPo4ult8jRvxx7bfxqlzHIA5uIraXeji6G7xtQfxresMR\/dviucAYN10i0MvR3WLr\/005SkvM\/wkqFkF5s1pCkt2E6UC0MXB3eI24n\/1KsM\/zF+L5wBgvXSLQx8Hd4sL4k\/bvl7\/Ls5VAJjebbxfgk5+ygFbcacpu7nK8Dsd\/a4wH05TWDrd4tDL3t3iNuK72eSPdhWv2QGYgm5x6GXvbnEb8f2dZ7jd81XEUMtGnLXQLQ597NUtbiO+v2211DfxoBOA07uKT2Ohi726xQXxw91l+MlRIAfglHSLQy87d4s7TRnPRYZg\/jI6yGEKTgRZHhEAAAFuSURBVFNYm5voFocuduoWF8THt70hv4qX7nBKgjhr8zzJf1cPAezs53zh0yxB\/LSuPvywwYDxCeKs0XWUBUAn32Q4Z36SID6N5xm25C\/ibAXGIoizRrrFoZfPdosL4tM6zxDGXyZ5VjwLdCeIs1aXSf5VPQSwsx8zfCfNXwjidS7yx5bcZgP2J4izZrrFoY9PdosL4vPwPMMtuVAOuxPEWbPzDHenzh2hh1\/zxLduCuLzI5TDbgRx1u5lkv+sHgLY2XcZakh\/J4jP20WGQP4imlfgY4I46BaHTv7SLS6I9\/IiwyOdy3jsCYI46BaHbv7ULS6I93WeIZA\/\/\/BHGxHWRhCHwXV0i0Mnv3eLC+LL8vyjH8I5SyaIw0C3OPTye7e4IL58Fx9+XGb4yfr5hz\/3EzbdCeLwh8voFodOfkyyEcTX7eKjH8kQ1M8f\/e8CO3MliMOf6RaHPt4nuRDEOcRl9QCQjyqggN8\/9QR6uP3\/PmNsa8n3cqMAAAAASUVORK5CYII='}));\n  function lab(x,y,txt){ var t=el('text',{x:x,y:y,'text-anchor':'middle',class:'hub-lab'}); t.textContent=txt; hub.appendChild(t); }\n  lab(HUBX,HUBY-66,HUBLABS[0]); lab(HUBX-57,HUBY+68,HUBLABS[1]); lab(HUBX+57,HUBY+68,HUBLABS[2]);\n  svg.appendChild(hub);\n  function makeChip(){ var gg=el('g',{class:'pchip',opacity:'0'}); var rect=el('rect',{x:0,y:-9,height:18,rx:9,ry:9}); var ic=el('path',{class:'cic'}); var tx=el('text',{y:4}); gg.appendChild(rect); gg.appendChild(ic); gg.appendChild(tx); svg.appendChild(gg); return {g:gg,rect:rect,ic:ic,tx:tx}; }\n  var WIDTHS={ event:56, alerta:88, resuelto:82 };\n  function dressChip(c,kind){ var w=WIDTHS[kind]; var fg=kind==='event'?COL.ev:kind==='alerta'?COL.al:COL.res; var bg=kind==='event'?COL.evbg:kind==='alerta'?COL.albg:COL.resbg; var ln=kind==='event'?COL.evln:kind==='alerta'?COL.alln:COL.resln;\n    c.rect.setAttribute('width',w); c.rect.setAttribute('fill',bg); c.rect.setAttribute('stroke',ln); c.rect.setAttribute('stroke-width','1'); c.ic.setAttribute('d',CHIP_IC[kind]); c.ic.setAttribute('stroke',fg); c.ic.setAttribute('transform','translate(9,0) scale(.5) translate(-12,-12)'); c.tx.setAttribute('x',20); c.tx.setAttribute('fill',fg); c.tx.textContent=CHIPLABS[kind]; c._w=w; }\n  if(reduce){ var stat=[{p:edgesIn[1],k:'event'},{p:edgesIn[4],k:'alerta'},{p:edgesOut[2],k:'resuelto'}];\n    stat.forEach(function(s){ var c=makeChip(); dressChip(c,s.k); var pt=s.p.getPointAtLength(s.p.getTotalLength()*0.5); c.g.setAttribute('opacity','1'); c.g.setAttribute('transform','translate('+(pt.x-c._w\/2)+','+pt.y+')'); }); return; }\n  var POOL=3, chips=[];\n  function pick(){ var side=Math.random()<0.62?'in':'out'; var list=side==='in'?edgesIn:edgesOut; var path=list[Math.floor(Math.random()*list.length)]; var kind=side==='in'?(Math.random()<0.5?'event':'alerta'):'resuelto'; return {path:path,len:path.getTotalLength(),kind:kind,side:side}; }\n  for(var i=0;i<POOL;i++){ var c=makeChip(); var job=pick(); dressChip(c,job.kind); chips.push({c:c,job:job,t:-(i*70+Math.random()*40),sp:1.05+Math.random()*0.35}); }\n  function respawn(ch){ ch.job=pick(); dressChip(ch.c,ch.job.kind); ch.t=-(40+Math.random()*90); ch.sp=1.05+Math.random()*0.35; }\n  var raf=0,tick=0, glowEl=svg.querySelector('.hub-glow'), ring=svg.querySelector('.hub-ring');\n  function frame(){\n    tick++;\n    glowEl.setAttribute('opacity',(0.82+Math.sin(tick*0.03)*0.18).toFixed(3));\n    ring.setAttribute('transform','rotate('+(tick*0.35)+' '+HUBX+' '+HUBY+')');\n    for(var i=0;i<chips.length;i++){ var ch=chips[i]; ch.t+=ch.sp;\n      if(ch.t<0){ ch.c.g.setAttribute('opacity','0'); continue; }\n      if(ch.t>=ch.job.len){ if(ch.job.side==='in') lit(srcNodes[edgesIn.indexOf(ch.job.path)]); else lit(actNodes[edgesOut.indexOf(ch.job.path)]); respawn(ch); continue; }\n      var pt=ch.job.path.getPointAtLength(ch.t); var f=Math.min(ch.t,ch.job.len-ch.t)\/26; if(f>1)f=1;\n      ch.c.g.setAttribute('opacity',f.toFixed(2)); ch.c.g.setAttribute('transform','translate('+(pt.x-ch.c._w\/2)+','+pt.y+')');\n    }\n    raf=requestAnimationFrame(frame);\n  }\n  frame();\n  document.addEventListener('visibilitychange',function(){ if(document.hidden){cancelAnimationFrame(raf);} else {cancelAnimationFrame(raf);frame();} });\n})();\n<\/script>\n<script>\n\/* KIT v2 \u00b7 Efectos unificados: botones magneticos + spotlight en cards (mouse) *\/\n(function(){\n  if(window.__ruvicFX) return; window.__ruvicFX=1;\n  if(!window.matchMedia) return;\n  var reduce=matchMedia('(prefers-reduced-motion:reduce)').matches;\n  if(reduce || !matchMedia('(hover:hover)').matches) return;\n  [].slice.call(document.querySelectorAll('.btn')).forEach(function(btn){\n    var s=\/primary\/.test(btn.className)?0.32:0.20;\n    btn.addEventListener('pointermove',function(e){var r=btn.getBoundingClientRect();btn.style.transform='translate('+((e.clientX-r.left-r.width\/2)*s).toFixed(1)+'px,'+((e.clientY-r.top-r.height\/2)*s-2).toFixed(1)+'px)';});\n    btn.addEventListener('pointerleave',function(){btn.style.transform='';});\n  });\n  [].slice.call(document.querySelectorAll('.card,.dash,.console')).forEach(function(el){\n    el.addEventListener('pointermove',function(e){var r=el.getBoundingClientRect();el.style.setProperty('--mx',((e.clientX-r.left)\/r.width*100).toFixed(1)+'%');el.style.setProperty('--my',((e.clientY-r.top)\/r.height*100).toFixed(1)+'%');});\n  });\n})();\n<\/script>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Service\",\n      \"name\": \"Mantenimiento predictivo y automatizaci\u00f3n de planta con IA\",\n      \"serviceType\": \"IA para operaci\u00f3n industrial y mantenimiento\",\n      \"description\": \"Agentes de IA que leen telemetr\u00eda de planta, anticipan el fallo, generan la orden de trabajo, reservan el repuesto y actualizan el CMMS, con integraci\u00f3n OPC UA, MQTT y Modbus.\",\n      \"provider\": {\n        \"@type\": \"Organization\",\n        \"name\": \"Ruvic AI\",\n        \"url\": \"https:\/\/ruvic.ai\/\"\n      },\n      \"areaServed\": [\n        \"CO\",\n        \"MX\",\n        \"CL\",\n        \"PE\",\n        \"US\"\n      ],\n      \"url\": \"https:\/\/ruvic.ai\/soluciones\/por-industria\/manufactura\/\"\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfQu\u00e9 es el mantenimiento predictivo con IA?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Es el uso de modelos de IA sobre la telemetr\u00eda del equipo (vibraci\u00f3n, temperatura, consumo, presi\u00f3n) para anticipar un fallo antes de que ocurra. A diferencia de un tablero que solo muestra el dato, Ruvic ejecuta la consecuencia: genera la orden de trabajo, verifica el repuesto en inventario, agenda la ventana de intervenci\u00f3n y notifica al t\u00e9cnico.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfSe integra con mi SCADA, PLC o historiador?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"S\u00ed. Ruvic se conecta v\u00eda OPC UA, MQTT y Modbus TCP a SCADA, PLC e historiadores de proceso, y por API o conector a CMMS y EAM como SAP PM, IBM Maximo o Fracttal. No reemplaza tu capa OT: lee de ella y act\u00faa sobre tu capa IT.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfNecesito instalar sensores nuevos?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"En la mayor\u00eda de casos no. Se empieza con la telemetr\u00eda que la planta ya captura en su SCADA o historiador y con el hist\u00f3rico de \u00f3rdenes de trabajo del CMMS. Solo se recomienda instrumentaci\u00f3n adicional cuando el equipo cr\u00edtico no tiene ninguna se\u00f1al disponible.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfRuvic puede detener una m\u00e1quina autom\u00e1ticamente?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"No por defecto. Ruvic opera en modo de recomendaci\u00f3n y ejecuci\u00f3n administrativa: alerta, genera la orden, reserva el repuesto y escala. Cualquier acci\u00f3n sobre el proceso f\u00edsico requiere aprobaci\u00f3n humana expl\u00edcita y se configura caso por caso con el equipo de OT.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfC\u00f3mo maneja el inventario de repuestos?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Al detectar una condici\u00f3n de riesgo, Ruvic consulta la existencia del repuesto en el ERP o WMS, lo reserva si est\u00e1 disponible y, si no, genera la solicitud de compra con el lead time del proveedor, para que la ventana de intervenci\u00f3n se agende con la pieza asegurada.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfSirve para reportes de turno y trazabilidad de calidad?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"S\u00ed. Ruvic consolida el reporte de turno a partir de la telemetr\u00eda, las \u00f3rdenes cerradas y las notas de voz del supervisor, y estructura los registros de inspecci\u00f3n y no conformidad para trazabilidad ISO 9001 y auditor\u00edas de cliente.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfCu\u00e1nto tarda implementar el primer caso?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"El primer proceso puede estar en producci\u00f3n en menos de 3 semanas, empezando por una l\u00ednea o un grupo de equipos cr\u00edticos y escalando con resultados medibles en disponibilidad y paradas evitadas.\"\n          }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Inicio Soluciones Manufactura<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-6960","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/pages\/6960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/comments?post=6960"}],"version-history":[{"count":7,"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/pages\/6960\/revisions"}],"predecessor-version":[{"id":7036,"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/pages\/6960\/revisions\/7036"}],"wp:attachment":[{"href":"https:\/\/ruvic.ai\/en\/wp-json\/wp\/v2\/media?parent=6960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}