/* GENERADO por Portafolio_Kaizen/integrar_portafolio.py — no editar a mano.
   Origen: portafolio-kaizen-group-08102026.html */
.kzp{--brand:#004AAD;
  --brand-deep:#00337A;
  --brand-soft:#E2EDFF;
  --teal:#00A9A0;
  --amber:#E08700;

  --ground:#F6F8FC;
  --surface:#FFFFFF;
  --surface-2:#EEF3FA;
  --line:#D8E2F0;
  --line-soft:#E7EEF7;
  --ink:#0C1826;
  --ink-2:#3C4E64;
  --ink-3:#6A7C93;
  --on-brand:#FFFFFF;
  --glow:rgba(0,74,173,.14);
  --mesh:0,74,173;
  --scrim:rgba(10,20,34,.55);
  --shadow:0 1px 2px rgba(12,24,38,.05),0 12px 32px -12px rgba(12,24,38,.16);
  --shadow-lg:0 2px 4px rgba(12,24,38,.06),0 28px 60px -24px rgba(12,24,38,.28);

  --step--1:clamp(.75rem,.72rem + .12vw,.82rem);
  --step-0:clamp(.95rem,.9rem + .2vw,1.05rem);
  --step-1:clamp(1.1rem,1rem + .4vw,1.3rem);
  --step-2:clamp(1.4rem,1.2rem + .8vw,1.9rem);
  --step-3:clamp(1.9rem,1.5rem + 1.7vw,3rem);
  --step-4:clamp(2.3rem,1.5rem + 2.9vw,4.4rem);
  --rail:76px;}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]) .kzp{--ground:#070E18; --surface:#0D1826; --surface-2:#132234;
    --line:#22344B; --line-soft:#1A2A3E;
    --ink:#E9F0FA; --ink-2:#A9BDD6; --ink-3:#7189A6;
    --brand:#4E96F5; --brand-deep:#8FBDFB; --brand-soft:#122C4E;
    --teal:#2ED3C6; --amber:#F5A623; --on-brand:#04101F;
    --glow:rgba(78,150,245,.18); --mesh:120,175,255; --scrim:rgba(2,7,14,.74);
    --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 34px -14px rgba(0,0,0,.7);
    --shadow-lg:0 2px 6px rgba(0,0,0,.5),0 30px 70px -26px rgba(0,0,0,.85);}
}
:root[data-theme="dark"] .kzp{--ground:#070E18; --surface:#0D1826; --surface-2:#132234;
  --line:#22344B; --line-soft:#1A2A3E;
  --ink:#E9F0FA; --ink-2:#A9BDD6; --ink-3:#7189A6;
  --brand:#4E96F5; --brand-deep:#8FBDFB; --brand-soft:#122C4E;
  --teal:#2ED3C6; --amber:#F5A623; --on-brand:#04101F;
  --glow:rgba(78,150,245,.18); --mesh:120,175,255; --scrim:rgba(2,7,14,.74);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 34px -14px rgba(0,0,0,.7);
  --shadow-lg:0 2px 6px rgba(0,0,0,.5),0 30px 70px -26px rgba(0,0,0,.85);}
.kzp *,.kzp *::before,.kzp *::after{box-sizing:border-box}
.kzp{margin:0;background:var(--ground);color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:var(--step-0);line-height:1.62;
  -webkit-font-smoothing:antialiased;
  transition:background .4s ease,color .4s ease;}
.kzp h1,.kzp h2,.kzp h3,.kzp h4{font-family:Archivo,system-ui,sans-serif;margin:0;text-wrap:balance;letter-spacing:-.022em;line-height:1.06;font-weight:700}
.kzp p{margin:0}
.kzp a{color:inherit}
.kzp ::selection{background:var(--brand);color:var(--on-brand)}
.kzp :focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion:reduce){
.kzp *{animation-duration:.001ms !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}
.kzp .mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
.kzp .eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:var(--step--1);
  text-transform:uppercase;letter-spacing:.2em;color:var(--brand);font-weight:500;
  display:flex;align-items:center;gap:.7rem;}
.kzp .eyebrow::before{content:"";width:26px;height:2px;background:var(--brand);flex:none}
.kzp .lede{font-size:var(--step-1);color:var(--ink-2);font-weight:300;max-width:62ch}
.kzp .body{color:var(--ink-2);max-width:66ch}
.kzp .tnum{font-variant-numeric:tabular-nums}
.kzp #scroller{height:100dvh;overflow-y:auto;overflow-x:hidden;
  scroll-snap-type:y proximity;scroll-behavior:smooth;scrollbar-width:none;}
.kzp #scroller::-webkit-scrollbar{display:none}
.kzp .slide{scroll-snap-align:start;min-height:100dvh;
  padding:clamp(3rem,7vh,5.5rem) clamp(1.25rem,5vw,4.5rem) clamp(3rem,7vh,5rem) calc(var(--rail) + clamp(1.25rem,3vw,3rem));
  display:flex;flex-direction:column;justify-content:center;position:relative;
  border-top:1px solid var(--line-soft);}
.kzp .slide:first-child{border-top:0}
.kzp .slide.alt{background:var(--surface)}
.kzp .wrap{width:100%;max-width:1200px;margin-inline:auto}
.kzp .shead{display:flex;flex-direction:column;gap:.9rem;margin-bottom:clamp(1.6rem,4vh,2.8rem)}
.kzp .shead h2{font-size:var(--step-3)}
@media (max-width:760px){
.kzp .slide{padding-left:clamp(1.25rem,5vw,2rem);padding-bottom:5.5rem;scroll-snap-align:none}
.kzp #scroller{scroll-snap-type:none}
}
.kzp #rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);z-index:60;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:1.1rem 0;background:color-mix(in srgb,var(--ground) 86%,transparent);
  backdrop-filter:blur(14px);border-right:1px solid var(--line-soft);}
.kzp #dots{display:flex;flex-direction:column;gap:.55rem;align-items:center}
.kzp .kzp-dot{width:26px;height:26px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;position:relative;border-radius:50%}
.kzp .kzp-dot i{display:block;width:7px;height:7px;border-radius:50%;background:var(--ink-3);opacity:.45;transition:all .3s cubic-bezier(.2,.8,.2,1)}
.kzp .kzp-dot:hover i{opacity:1;transform:scale(1.25)}
.kzp .kzp-dot[aria-current="true"] i{background:var(--brand);opacity:1;width:9px;height:9px;box-shadow:0 0 0 5px var(--glow)}
.kzp .kzp-dot span{position:absolute;left:130%;white-space:nowrap;font-size:.68rem;font-family:"IBM Plex Mono",monospace;
  letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--ground);
  padding:.3rem .55rem;border-radius:5px;opacity:0;pointer-events:none;transition:opacity .18s;z-index:5;}
.kzp .kzp-dot:hover span,.kzp .kzp-dot:focus-visible span{opacity:1}
.kzp #railtop{display:flex;flex-direction:column;align-items:center;gap:.7rem}
.kzp #railbot{display:flex;flex-direction:column;align-items:center;gap:.65rem}
.kzp .rlabel{writing-mode:vertical-rl;font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3)}
.kzp .iconbtn{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;transition:all .2s}
.kzp .iconbtn:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-1px)}
.kzp .iconbtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.kzp #prog{position:fixed;left:0;top:0;height:2px;background:var(--brand);z-index:70;width:0;transition:width .18s linear}
@media (max-width:760px){
.kzp{--rail:0px}
.kzp #rail{width:100%;height:52px;top:auto;bottom:0;flex-direction:row;padding:0 .8rem;border-right:0;border-top:1px solid var(--line-soft)}
.kzp #dots{flex-direction:row;gap:.15rem;overflow-x:auto;flex:1;justify-content:flex-start}
.kzp #railbot{flex-direction:row;gap:.35rem}
.kzp .iconbtn{width:32px;height:32px;border-radius:8px}
.kzp .kzp-dot span{display:none}
.kzp .rlabel{display:none}
.kzp #railtop{display:none}
}
.kzp .kzp-mark{display:grid;place-items:center}
.kzp .kzp-mark svg{width:34px;height:34px;display:block}
.kzp .kzp-mark .ring{fill:var(--brand)}
.kzp .kzp-mark .inner{fill:none;stroke:var(--on-brand);stroke-width:1.6}
.kzp .kzp-mark .txt{fill:var(--on-brand);font-family:Archivo,sans-serif;font-size:5.2px;letter-spacing:.5px;font-weight:700}
.kzp #hero{justify-content:space-between;padding-top:clamp(2rem,5vh,3.5rem);overflow:hidden}
.kzp #mesh{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9}
.kzp #hero>*:not(canvas){position:relative;z-index:1}
.kzp .hero-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.kzp .wordmark{display:flex;align-items:center;gap:.85rem}
.kzp .wordmark .kzp-mark svg{width:42px;height:42px}
.kzp .wordmark b{font-family:Archivo,sans-serif;font-weight:800;font-size:1.05rem;letter-spacing:.12em;text-transform:uppercase}
.kzp .hero-top .tag{font-family:"IBM Plex Mono",monospace;font-size:var(--step--1);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.kzp .hero-mid{display:grid;gap:clamp(1.5rem,4vh,2.4rem);padding:clamp(1.5rem,5vh,3rem) 0}
.kzp #hero h1{font-size:var(--step-4);font-weight:800;letter-spacing:-.04em;line-height:.92;max-width:15ch;text-transform:uppercase}
.kzp #hero h1 em{font-style:normal;color:var(--brand);display:block}
.kzp .hero-sub{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;max-width:1200px}
@media(min-width:900px){
.kzp .hero-sub{grid-template-columns:1.15fr .85fr;align-items:end;gap:3rem}
}
.kzp .hero-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.kzp .kzp-btn{font-family:"IBM Plex Mono",monospace;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;
  padding:.85rem 1.35rem;border-radius:9px;border:1px solid var(--brand);background:var(--brand);color:var(--on-brand);
  cursor:pointer;text-decoration:none;transition:all .22s cubic-bezier(.2,.8,.2,1);display:inline-flex;align-items:center;gap:.55rem;}
.kzp .kzp-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px var(--brand)}
.kzp .kzp-btn.ghost{background:transparent;color:var(--brand);border-color:var(--line)}
.kzp .kzp-btn.ghost:hover{border-color:var(--brand);box-shadow:none}
.kzp .scrollhint{display:flex;align-items:center;gap:.6rem;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.kzp .scrollhint i{display:block;width:1px;height:26px;background:linear-gradient(var(--brand),transparent);animation:kzp-drip 2.2s infinite}
@keyframes kzp-drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.kzp .grid{display:grid;gap:clamp(.8rem,1.6vw,1.15rem)}
.kzp .g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.kzp .g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.kzp .g4{grid-template-columns:repeat(auto-fit,minmax(196px,1fr))}
.kzp .kzp-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.35rem 1.4rem;
  display:flex;flex-direction:column;gap:.6rem;position:relative;overflow:hidden;
  transition:border-color .25s,transform .25s,box-shadow .25s;}
.kzp .slide.alt .kzp-card{background:var(--ground)}
.kzp .kzp-card:hover{border-color:var(--brand);transform:translateY(-3px);box-shadow:var(--shadow)}
.kzp .kzp-card h3{font-size:1.04rem;font-weight:600;letter-spacing:-.015em}
.kzp .kzp-card p{color:var(--ink-2);font-size:.92rem;line-height:1.6}
.kzp .kzp-card .num{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.16em;color:var(--brand)}
.kzp .ico{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center;color:var(--brand);flex:none}
.kzp .ico svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.kzp .eco{display:grid;gap:1.4rem}
@media(min-width:940px){
.kzp .eco{grid-template-columns:1fr 380px;align-items:start;gap:2.4rem}
}
.kzp .flow{display:grid;gap:.55rem}
@media(min-width:640px){
.kzp .flow{grid-template-columns:repeat(5,1fr)}
}
.kzp .node{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:1rem .95rem;
  cursor:pointer;text-align:left;font:inherit;color:inherit;position:relative;
  transition:all .25s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:.45rem;}
.kzp .slide.alt .node{background:var(--ground)}
.kzp .node:hover{border-color:var(--brand);transform:translateY(-3px)}
.kzp .slide .node[aria-selected="true"],.kzp .slide.alt .node[aria-selected="true"]{border-color:var(--brand);background:var(--brand);color:var(--on-brand);box-shadow:0 14px 30px -14px var(--brand)}
.kzp .slide .node[aria-selected="true"] .nstep,.kzp .slide .node[aria-selected="true"] .nsub{color:var(--on-brand);opacity:.8}
.kzp .node .nstep{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.16em;color:var(--brand)}
.kzp .node .ntitle{font-family:Archivo,sans-serif;font-weight:700;font-size:1rem;letter-spacing:-.01em;line-height:1.15}
.kzp .node .nsub{font-size:.78rem;color:var(--ink-3);line-height:1.4}
.kzp .ecopanel{border:1px solid var(--line);border-left:3px solid var(--brand);background:var(--surface);
  border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;gap:.85rem;min-height:240px;}
.kzp .slide.alt .ecopanel{background:var(--ground)}
.kzp .ecopanel h3{font-size:var(--step-2);letter-spacing:-.025em}
.kzp .ecopanel ul{margin:0;padding-left:1.05rem;display:grid;gap:.4rem;color:var(--ink-2);font-size:.92rem}
.kzp .ecopanel li::marker{color:var(--brand)}
.kzp .filters{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1.3rem;align-items:center}
.kzp .chip{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.5rem .85rem;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-2);
  cursor:pointer;transition:all .2s;}
.kzp .chip:hover{border-color:var(--brand);color:var(--brand)}
.kzp .chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.kzp #catalog{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fill,minmax(228px,1fr))}
.kzp .pcard{text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:.9rem 1rem;
  display:flex;flex-direction:column;gap:.42rem;position:relative;overflow:hidden;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s;}
.kzp .slide.alt .pcard{background:var(--ground)}
.kzp .pcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);transform:scaleY(0);transform-origin:top;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.kzp .pcard:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow)}
.kzp .pcard:hover::before{transform:scaleY(1)}
.kzp .pcard .prow{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.kzp .pcard .pid{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;color:var(--ink-3)}
.kzp .pcard h3{font-size:.97rem;font-weight:600;letter-spacing:-.015em;line-height:1.2}
.kzp .pcard p{font-size:.85rem;color:var(--ink-3);line-height:1.5}
.kzp .pcard .more{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin-top:auto;display:flex;align-items:center;gap:.35rem}
.kzp .tagpill{align-self:flex-start;width:fit-content;font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:.22rem .5rem;border-radius:999px;background:var(--brand-soft);color:var(--brand);white-space:nowrap}
.kzp .pcard.kzp-hide{display:none}
.kzp .pcard.base{border-color:var(--teal)}
.kzp .pcard.base::before{background:var(--teal)}
.kzp .pcard.base .tagpill{background:var(--teal);color:var(--on-brand)}
.kzp #modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:1.25rem;background:var(--scrim);backdrop-filter:blur(6px)}
.kzp #modal.open{display:grid;animation:kzp-fade .22s ease}
@keyframes kzp-fade{from{opacity:0}to{opacity:1}}
.kzp .sheet{background:var(--surface);border:1px solid var(--line);border-radius:18px;
  max-width:720px;width:100%;max-height:86dvh;overflow:auto;box-shadow:var(--shadow-lg);
  padding:clamp(1.5rem,3vw,2.4rem);display:flex;flex-direction:column;gap:1.1rem;
  animation:kzp-rise .3s cubic-bezier(.2,.8,.2,1);}
@keyframes kzp-rise{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.kzp .sheet h3{font-size:var(--step-2);letter-spacing:-.03em;max-width:24ch}
.kzp .sheet .shdr{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.kzp .sheet ul{margin:0;padding-left:1.05rem;display:grid;gap:.45rem;color:var(--ink-2);font-size:.93rem}
.kzp .sheet ul li::marker{color:var(--brand)}
.kzp .sheet .blk{display:flex;flex-direction:column;gap:.55rem}
.kzp .sheet .blk>h4{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);font-weight:500}
.kzp #mclose{width:34px;height:34px;flex:none;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;display:grid;place-items:center}
.kzp #mclose:hover{border-color:var(--brand);color:var(--brand)}
.kzp #mclose svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.kzp .caps{display:flex;flex-wrap:wrap;gap:.4rem}
.kzp .cap{font-size:.79rem;padding:.4rem .72rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);transition:all .2s}
.kzp .slide.alt .cap{background:var(--ground)}
.kzp .cap:hover{border-color:var(--brand);color:var(--brand)}
.kzp .steps{display:grid;gap:0}
.kzp .step{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:baseline;padding:.6rem 0;border-top:1px solid var(--line-soft);transition:padding-left .25s}
.kzp .step:hover{padding-left:.5rem}
.kzp .step:last-child{border-bottom:1px solid var(--line-soft)}
.kzp .step .sn{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--brand);letter-spacing:.1em;width:2.4rem}
.kzp .step .st{font-family:Archivo,sans-serif;font-weight:600;font-size:1.02rem;letter-spacing:-.012em}
.kzp .step .sd{color:var(--ink-3);font-size:.83rem;grid-column:2;line-height:1.5}
.kzp .quote{border-left:3px solid var(--brand);padding:.4rem 0 .4rem 1.4rem;font-family:Archivo,sans-serif;font-weight:500;font-size:var(--step-2);letter-spacing:-.025em;line-height:1.22;max-width:24ch}
.kzp .signature{display:flex;flex-direction:column;gap:.1rem;margin-top:1.4rem}
.kzp .signature b{font-family:Archivo,sans-serif;font-weight:700;letter-spacing:.02em;font-size:1.05rem}
.kzp .signature span{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.kzp .ctabox{border:1px solid var(--line);border-radius:18px;padding:clamp(1.6rem,4vw,2.8rem);background:var(--surface);display:grid;gap:1.4rem;box-shadow:var(--shadow)}
.kzp .slide.alt .ctabox{background:var(--ground)}
.kzp .legal{display:grid;gap:.9rem}
.kzp .legal p{color:var(--ink-2);font-size:.9rem;line-height:1.62;max-width:74ch}
.kzp .note{border:1px dashed var(--line);border-radius:12px;padding:1rem 1.15rem;font-size:.85rem;color:var(--ink-3);display:flex;gap:.75rem;align-items:flex-start}
.kzp .note b{color:var(--ink);font-weight:600}
.kzp .reveal{opacity:0;transform:translateY(16px)}
.kzp .reveal.in{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .6s cubic-bezier(.2,.8,.2,1)}
.kzp .foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border-top:1px solid var(--line-soft);padding-top:1.1rem;margin-top:2rem}
.kzp .diagwrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:1rem}
.kzp .slide.alt .diagwrap{background:var(--ground)}
.kzp .diag{display:block;width:100%;min-width:900px;height:auto}
.kzp .d-zone{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:5 5}
.kzp .d-zone-kzn{stroke:var(--teal)}
.kzp .d-zonelabel{fill:var(--brand);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.kzp .d-zonelabel.d-teal{fill:var(--teal)}
.kzp .d-head{fill:var(--ink-3);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.kzp .d-head.d-teal{fill:var(--teal)}
.kzp .d-chip{fill:var(--surface-2);stroke:var(--line);stroke-width:1}
.kzp .d-chiptext{fill:var(--ink-2);font-family:"IBM Plex Sans",sans-serif;font-size:14px}
.kzp .d-node{fill:var(--surface);stroke:var(--line);stroke-width:1.5}
.kzp .slide.alt .d-node{fill:var(--surface-2)}
.kzp .d-db{stroke:var(--brand)}
.kzp .slide .d-node.d-out{fill:var(--brand);stroke:var(--brand)}
.kzp .d-out+.d-title,.kzp .d-out+.d-title+.d-sub{fill:var(--on-brand)!important}
.kzp .d-title{fill:var(--ink);font-family:Archivo,sans-serif;font-weight:700;font-size:20px;letter-spacing:-.01em}
.kzp .d-title.d-small{font-size:16px}
.kzp .d-sub{fill:var(--ink-3);font-family:"IBM Plex Sans",sans-serif;font-size:12.5px}
.kzp .d-line{fill:none;stroke:var(--ink-3);stroke-width:1.6;opacity:.75}
.kzp .d-line.d-accent{stroke:var(--brand);opacity:1}
.kzp .d-arrowhead{fill:var(--ink-3)}
.kzp .d-cyl ellipse{fill:var(--brand);opacity:.9}
.kzp .d-cyl path{fill:var(--brand);opacity:.55;stroke:var(--brand);stroke-width:1.2}
.kzp .d-vpn{stroke:var(--teal);stroke-width:1.5;stroke-dasharray:4 6;opacity:.8}
.kzp .d-vpnchip{fill:var(--teal)}
.kzp .d-vpntext{fill:var(--on-brand);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.16em;font-weight:600}
.kzp .d-foot{fill:var(--ink-3);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em}
.kzp #operacion .ecopanel{padding:1.1rem 1.25rem}
.kzp #operacion .step{padding:.3rem 0}
.kzp #operacion .step .sd{font-size:.8rem;line-height:1.42}
.kzp #operacion .step .st{font-size:.96rem}
.kzp #metodologias .node::after{display:none}
.kzp #metodologias .flow{gap:.5rem}
