/* Hero de la home (ES y EN). Generado por build_final.py: no editar a mano. */
.h12 *{box-sizing:border-box}
.home .hero.hs{text-align:left;padding:150px 0 60px}
.hs .grid{display:grid;gap:30px;align-items:center}
.home .hero.hs h1{margin:0;max-width:none;font-size:clamp(38px,4.3vw,60px)}
.home .hero.hs .hero-sub{margin:24px 0 20px;max-width:540px;font-size:17.5px}
.home .hero.hs .hero-ctas{justify-content:flex-start}
.hero-chips2{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.hero-chips2 span{font:500 11.5px var(--font-mono);color:var(--text-secondary);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 12px}
.hero-chips2 span.hl{color:var(--primary);border-color:rgba(83,221,252,.4)}
@media(max-width:820px){.hs .grid{grid-template-columns:1fr}.home .hero.hs{text-align:center;padding-top:120px}.home .hero.hs .hero-ctas,.hero-chips2{justify-content:center}.home .hero.hs .hero-sub{margin-left:auto;margin-right:auto}}
/* v6: proceso en tres pasos, ejecución afinada */
.h12 .gtxt{grid-area:txt}.h12 .gcta{grid-area:cta}.h12 .stage{grid-area:stage}
.h12 .stage.flow{position:relative;height:400px!important;perspective:none;margin:0!important}
.h12 .stage.flow::before{content:"";position:absolute;left:50%;top:54%;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;background:radial-gradient(circle,rgba(76,98,255,.20),rgba(76,98,255,.06) 45%,transparent 68%);pointer-events:none}
.h12 .fw{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:46px;pointer-events:none}
.h12 .fh{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.h12 .fh b{font:500 24px/1.2 var(--font-display);color:#fff;letter-spacing:-.015em}
@media(min-width:821px){.h12 .fh b{white-space:nowrap}}
.h12 .fr{display:flex;align-items:flex-start;justify-content:center;width:100%}
.h12 .nd{width:158px;display:flex;flex-direction:column;align-items:center;text-align:center;flex:none}
.h12 .nd .rg{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;position:relative;border:1px solid transparent;background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--c) 9%,#0c0c14),#0a0a11 72%) padding-box,linear-gradient(165deg,color-mix(in srgb,var(--c) 85%,#fff),color-mix(in srgb,var(--c) 14%,transparent) 70%) border-box;box-shadow:0 0 46px -18px var(--c)}
.h12 .n1 .rg::before,.h12 .n3 .rg::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid var(--c);opacity:.14}
.h12 .nd .wv{position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--c);opacity:0}
.h12 .nd svg{width:56px;height:56px;fill:none;stroke:#f4f4fb;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.h12 .nd svg [pathLength]{stroke-dasharray:1;stroke-dashoffset:0}
.h12 .nd svg .s{stroke:rgba(244,244,251,.55)}.h12 .nd svg .c{stroke:var(--c);stroke-width:1.7}
.h12 .nd svg .lg{fill:url(#fLogo);stroke:none;filter:drop-shadow(0 0 8px rgba(120,140,255,.9))}
.h12 .nd .bd{position:absolute;right:7px;top:7px;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--c);box-shadow:0 0 0 4px #0a0a11,0 0 12px -2px var(--c)}
.h12 .n1 .bd{width:9px;height:9px;right:15px;top:15px;box-shadow:0 0 0 4px #0a0a11,0 0 10px var(--c)}
.h12 .nd .bd svg{width:11px;height:11px;stroke:#06222b;stroke-width:1.9}
.h12 .nd b{font:500 16px/1.25 var(--font-display);color:#fff;margin-top:24px;letter-spacing:0;white-space:nowrap}
.h12 .nd em{font:400 13px/1.4 Inter,sans-serif;font-style:normal;color:#9c9eb4;margin-top:5px;white-space:nowrap}
.h12 .n1{--c:#f0b878}.h12 .n3{--c:#53ddfc}.h12 .n2{--c:#8ea2ff}
.h12 .n2 .rg{width:134px;height:134px;margin-top:-8px;background:radial-gradient(circle at 50% 30%,#161a36,#0a0a11 72%) padding-box,linear-gradient(140deg,#fff,#8ea2ff 40%,#f3b678) border-box;border-width:1px;box-shadow:0 0 54px -12px rgba(110,130,255,.85)}
.h12 .n2 .rg::before,.h12 .n2 .rg::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(142,162,255,.34)}
.h12 .n2 .rg::before{inset:-10px;border-left-color:transparent;border-bottom-color:transparent;animation:fspin 14s linear infinite}
.h12 .n2 .rg::after{inset:-19px;border-color:rgba(243,182,120,.24);border-right-color:transparent;border-top-color:transparent;animation:fspin 22s linear infinite reverse}
.h12 .n2 svg{width:66px;height:66px}.h12 .n2 b{margin-top:16px}
@keyframes fspin{to{transform:rotate(360deg)}}
.h12 .lw{flex:1 1 0;min-width:20px;max-width:58px;height:1px;margin-top:59px;position:relative}
.h12 .ln{position:absolute;inset:0;border-radius:2px}
.h12 .l1{background:linear-gradient(90deg,#f0b878,#8ea2ff)}.h12 .l2{background:linear-gradient(90deg,#8ea2ff,#53ddfc)}
.h12 .pt{position:absolute;top:-2.5px;left:0;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#fff;box-shadow:0 0 10px 2px rgba(255,255,255,.7);opacity:0}
.h12 .fh,.h12 .nd,.h12 .ln,.h12 .nd .bd,.h12 .nd .wv,.h12 .pt{animation:30s cubic-bezier(.22,.8,.26,1) var(--fd,-0.2s) infinite both}
.h12 .nd svg [pathLength]{animation:30s cubic-bezier(.45,0,.25,1) var(--fd,-0.2s) infinite both}
.h12 .pt{animation-timing-function:cubic-bezier(.4,0,.6,1)}
.h12 .fv{position:absolute;left:0;right:0;margin:0 auto;width:max-content;bottom:-28px;display:flex;align-items:center;gap:8px;white-space:nowrap;font:600 11px var(--font-mono);letter-spacing:.06em;color:#dfe3ff;text-decoration:none;padding:8px 14px;border-radius:999px;border:1px solid rgba(142,162,255,.45);background:rgba(142,162,255,.10);opacity:0;visibility:hidden;animation:30s cubic-bezier(.22,.8,.26,1) var(--fd,-0.2s) infinite both;animation-name:f1v}
.h12 .fv svg{fill:#8ea2ff}.h12 .fv:hover{background:rgba(142,162,255,.2);color:#fff}
.h12 .ftabs{position:absolute;left:0;right:0;bottom:-78px;display:flex;justify-content:center;gap:14px}
.h12 .ftabs button{font:600 10px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:#d6d7e4;width:104px;text-align:center;padding:0 0 9px;opacity:.42;background:linear-gradient(#53ddfc,#53ddfc) left bottom/0% 2px no-repeat,linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)) left bottom/100% 2px no-repeat;animation:30s linear var(--fd,-0.2s) infinite both;border:0;margin:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.h12 .ftabs button:hover{color:#fff}.h12 .ftabs button:focus-visible{outline:1px solid #53ddfc;outline-offset:4px}
.h12 .stage.flow.js:not(.on) *{animation-play-state:paused!important}
.h12 .stage.flow.rst *{animation:none!important}
@media(hover:hover){.h12 .stage.flow:hover .fv,.h12 .stage.flow:hover .fw *,.h12 .stage.flow:hover .ftabs button{animation-play-state:paused}}
@media(min-width:821px){.h12 .stage.flow{margin-bottom:60px!important}.h12 .grid{align-items:center;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:28px;grid-template-areas:"txt stage" "cta stage";grid-template-rows:auto auto;row-gap:0}}
@media(max-width:820px){.h12 .grid{grid-template-areas:"txt" "stage" "cta";row-gap:0}.h12 .stage.flow{height:330px!important;margin:22px 0 104px!important}.h12 .stage.flow::before{width:340px;height:340px;margin:-170px 0 0 -170px}
 .h12 .fw{gap:30px}.h12 .fh b{font-size:21px}.h12 .nd{width:112px}.h12 .nd .rg{width:82px;height:82px}.h12 .n2 .rg{width:94px;height:94px;margin-top:-6px}.h12 .nd svg{width:40px;height:40px}.h12 .n2 svg{width:46px;height:46px}
 .h12 .nd b{font-size:13.5px;margin-top:18px}.h12 .n2 b{margin-top:12px}.h12 .nd em{font-size:11.5px;white-space:normal;max-width:106px}.h12 .nd b{white-space:normal}.h12 .lw{margin-top:41px;min-width:10px}.h12 .nd .bd{width:18px;height:18px;right:3px;top:3px}.h12 .n1 .bd{width:8px;height:8px;right:9px;top:9px}
 .h12 .ftabs button{width:92px;font-size:9px}.h12 .gcta{margin-top:8px}}
@media (prefers-reduced-motion: reduce){.h12 .fw.f1,.h12 .fw.f2,.h12 .pt,.h12 .fv{display:none}.h12 .ftabs button{opacity:1}}
@keyframes f0h{0%,0.33%{opacity:0;transform:translateY(10px)}3.33%,30.33%{opacity:1;transform:none}32.67%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f0n1{0%,2.67%{opacity:0;transform:scale(.88)}5.67%,30.33%{opacity:1;transform:none}32.67%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f0n1d{0%,3.67%{stroke-dashoffset:1}9.00%,100%{stroke-dashoffset:0}}
@keyframes f0n1b{0%,7.67%{opacity:0;transform:scale(0)}9.00%{opacity:1;transform:scale(1.18)}9.83%,100%{opacity:1;transform:scale(1)}}
@keyframes f0n1w{0%,3.67%{opacity:0;transform:scale(.94)}4.17%{opacity:.5}10.00%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f0 .n1{animation-name:f0n1}.h12 .f0 .n1 svg [pathLength]{animation-name:f0n1d}.h12 .f0 .n1 .bd{animation-name:f0n1b}.h12 .f0 .n1 .wv{animation-name:f0n1w}
@keyframes f0n2{0%,11.33%{opacity:0;transform:scale(.88)}14.33%,30.33%{opacity:1;transform:none}32.67%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f0n2d{0%,12.33%{stroke-dashoffset:1}17.67%,100%{stroke-dashoffset:0}}
@keyframes f0n2b{0%,16.33%{opacity:0;transform:scale(0)}17.67%{opacity:1;transform:scale(1.18)}18.50%,100%{opacity:1;transform:scale(1)}}
@keyframes f0n2w{0%,12.33%{opacity:0;transform:scale(.94)}12.83%{opacity:.5}18.67%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f0 .n2{animation-name:f0n2}.h12 .f0 .n2 svg [pathLength]{animation-name:f0n2d}.h12 .f0 .n2 .bd{animation-name:f0n2b}.h12 .f0 .n2 .wv{animation-name:f0n2w}
@keyframes f0n3{0%,20.00%{opacity:0;transform:scale(.88)}23.00%,30.33%{opacity:1;transform:none}32.67%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f0n3d{0%,21.00%{stroke-dashoffset:1}26.33%,100%{stroke-dashoffset:0}}
@keyframes f0n3b{0%,25.00%{opacity:0;transform:scale(0)}26.33%{opacity:1;transform:scale(1.18)}27.17%,100%{opacity:1;transform:scale(1)}}
@keyframes f0n3w{0%,21.00%{opacity:0;transform:scale(.94)}21.50%{opacity:.5}27.33%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f0 .n3{animation-name:f0n3}.h12 .f0 .n3 svg [pathLength]{animation-name:f0n3d}.h12 .f0 .n3 .bd{animation-name:f0n3b}.h12 .f0 .n3 .wv{animation-name:f0n3w}
@keyframes f0l1{0%,8.33%{opacity:0;clip-path:inset(-10px 100% -10px 0)}11.33%,30.33%{opacity:1;clip-path:inset(-10px 0 -10px 0)}32.67%,100%{opacity:0;clip-path:inset(-10px 0 -10px 0)}}
@keyframes f0l1p{0%,8.33%{left:0;opacity:0}8.67%{opacity:1}11.17%{left:100%;opacity:1}11.83%,100%{left:100%;opacity:0}}
.h12 .f0 .l1{animation-name:f0l1}.h12 .f0 .l1+.pt{animation-name:f0l1p}
@keyframes f0l2{0%,17.00%{opacity:0;clip-path:inset(-10px 100% -10px 0)}20.00%,30.33%{opacity:1;clip-path:inset(-10px 0 -10px 0)}32.67%,100%{opacity:0;clip-path:inset(-10px 0 -10px 0)}}
@keyframes f0l2p{0%,17.00%{left:0;opacity:0}17.33%{opacity:1}19.83%{left:100%;opacity:1}20.50%,100%{left:100%;opacity:0}}
.h12 .f0 .l2{animation-name:f0l2}.h12 .f0 .l2+.pt{animation-name:f0l2p}
@keyframes f0tb{0%,0.00%{opacity:.42;background-size:0% 2px,100% 2px}0.03%{opacity:1;background-size:0% 2px,100% 2px}33.17%{opacity:1;background-size:100% 2px,100% 2px}33.33%,100%{opacity:.42;background-size:0% 2px,100% 2px}}
.h12 .f0 .fh{animation-name:f0h}
@keyframes f1h{0%,33.67%{opacity:0;transform:translateY(10px)}36.67%,63.67%{opacity:1;transform:none}66.00%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f1n1{0%,36.00%{opacity:0;transform:scale(.88)}39.00%,63.67%{opacity:1;transform:none}66.00%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f1n1d{0%,37.00%{stroke-dashoffset:1}42.33%,100%{stroke-dashoffset:0}}
@keyframes f1n1b{0%,41.00%{opacity:0;transform:scale(0)}42.33%{opacity:1;transform:scale(1.18)}43.17%,100%{opacity:1;transform:scale(1)}}
@keyframes f1n1w{0%,37.00%{opacity:0;transform:scale(.94)}37.50%{opacity:.5}43.33%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f1 .n1{animation-name:f1n1}.h12 .f1 .n1 svg [pathLength]{animation-name:f1n1d}.h12 .f1 .n1 .bd{animation-name:f1n1b}.h12 .f1 .n1 .wv{animation-name:f1n1w}
@keyframes f1n2{0%,44.67%{opacity:0;transform:scale(.88)}47.67%,63.67%{opacity:1;transform:none}66.00%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f1n2d{0%,45.67%{stroke-dashoffset:1}51.00%,100%{stroke-dashoffset:0}}
@keyframes f1n2b{0%,49.67%{opacity:0;transform:scale(0)}51.00%{opacity:1;transform:scale(1.18)}51.83%,100%{opacity:1;transform:scale(1)}}
@keyframes f1n2w{0%,45.67%{opacity:0;transform:scale(.94)}46.17%{opacity:.5}52.00%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f1 .n2{animation-name:f1n2}.h12 .f1 .n2 svg [pathLength]{animation-name:f1n2d}.h12 .f1 .n2 .bd{animation-name:f1n2b}.h12 .f1 .n2 .wv{animation-name:f1n2w}
@keyframes f1n3{0%,53.33%{opacity:0;transform:scale(.88)}56.33%,63.67%{opacity:1;transform:none}66.00%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f1n3d{0%,54.33%{stroke-dashoffset:1}59.67%,100%{stroke-dashoffset:0}}
@keyframes f1n3b{0%,58.33%{opacity:0;transform:scale(0)}59.67%{opacity:1;transform:scale(1.18)}60.50%,100%{opacity:1;transform:scale(1)}}
@keyframes f1n3w{0%,54.33%{opacity:0;transform:scale(.94)}54.83%{opacity:.5}60.67%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f1 .n3{animation-name:f1n3}.h12 .f1 .n3 svg [pathLength]{animation-name:f1n3d}.h12 .f1 .n3 .bd{animation-name:f1n3b}.h12 .f1 .n3 .wv{animation-name:f1n3w}
@keyframes f1l1{0%,41.67%{opacity:0;clip-path:inset(-10px 100% -10px 0)}44.67%,63.67%{opacity:1;clip-path:inset(-10px 0 -10px 0)}66.00%,100%{opacity:0;clip-path:inset(-10px 0 -10px 0)}}
@keyframes f1l1p{0%,41.67%{left:0;opacity:0}42.00%{opacity:1}44.50%{left:100%;opacity:1}45.17%,100%{left:100%;opacity:0}}
.h12 .f1 .l1{animation-name:f1l1}.h12 .f1 .l1+.pt{animation-name:f1l1p}
@keyframes f1l2{0%,50.33%{opacity:0;clip-path:inset(-10px 100% -10px 0)}53.33%,63.67%{opacity:1;clip-path:inset(-10px 0 -10px 0)}66.00%,100%{opacity:0;clip-path:inset(-10px 0 -10px 0)}}
@keyframes f1l2p{0%,50.33%{left:0;opacity:0}50.67%{opacity:1}53.17%{left:100%;opacity:1}53.83%,100%{left:100%;opacity:0}}
.h12 .f1 .l2{animation-name:f1l2}.h12 .f1 .l2+.pt{animation-name:f1l2p}
@keyframes f1tb{0%,33.33%{opacity:.42;background-size:0% 2px,100% 2px}33.37%{opacity:1;background-size:0% 2px,100% 2px}66.50%{opacity:1;background-size:100% 2px,100% 2px}66.67%,100%{opacity:.42;background-size:0% 2px,100% 2px}}
.h12 .f1 .fh{animation-name:f1h}
@keyframes f2h{0%,67.00%{opacity:0;transform:translateY(10px)}70.00%,97.00%{opacity:1;transform:none}99.33%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f2n1{0%,69.33%{opacity:0;transform:scale(.88)}72.33%,97.00%{opacity:1;transform:none}99.33%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f2n1d{0%,70.33%{stroke-dashoffset:1}75.67%,100%{stroke-dashoffset:0}}
@keyframes f2n1b{0%,74.33%{opacity:0;transform:scale(0)}75.67%{opacity:1;transform:scale(1.18)}76.50%,100%{opacity:1;transform:scale(1)}}
@keyframes f2n1w{0%,70.33%{opacity:0;transform:scale(.94)}70.83%{opacity:.5}76.67%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f2 .n1{animation-name:f2n1}.h12 .f2 .n1 svg [pathLength]{animation-name:f2n1d}.h12 .f2 .n1 .bd{animation-name:f2n1b}.h12 .f2 .n1 .wv{animation-name:f2n1w}
@keyframes f2n2{0%,78.00%{opacity:0;transform:scale(.88)}81.00%,97.00%{opacity:1;transform:none}99.33%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f2n2d{0%,79.00%{stroke-dashoffset:1}84.33%,100%{stroke-dashoffset:0}}
@keyframes f2n2b{0%,83.00%{opacity:0;transform:scale(0)}84.33%{opacity:1;transform:scale(1.18)}85.17%,100%{opacity:1;transform:scale(1)}}
@keyframes f2n2w{0%,79.00%{opacity:0;transform:scale(.94)}79.50%{opacity:.5}85.33%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f2 .n2{animation-name:f2n2}.h12 .f2 .n2 svg [pathLength]{animation-name:f2n2d}.h12 .f2 .n2 .bd{animation-name:f2n2b}.h12 .f2 .n2 .wv{animation-name:f2n2w}
@keyframes f2n3{0%,86.67%{opacity:0;transform:scale(.88)}89.67%,97.00%{opacity:1;transform:none}99.33%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes f2n3d{0%,87.67%{stroke-dashoffset:1}93.00%,100%{stroke-dashoffset:0}}
@keyframes f2n3b{0%,91.67%{opacity:0;transform:scale(0)}93.00%{opacity:1;transform:scale(1.18)}93.83%,100%{opacity:1;transform:scale(1)}}
@keyframes f2n3w{0%,87.67%{opacity:0;transform:scale(.94)}88.17%{opacity:.5}94.00%,100%{opacity:0;transform:scale(1.45)}}
.h12 .f2 .n3{animation-name:f2n3}.h12 .f2 .n3 svg [pathLength]{animation-name:f2n3d}.h12 .f2 .n3 .bd{animation-name:f2n3b}.h12 .f2 .n3 .wv{animation-name:f2n3w}
@keyframes f2l1{0%,75.00%{opacity:0;clip-path:inset(-10px 100% -10px 0)}78.00%,97.00%{opacity:1;clip-path:inset(-10px 0 -10px 0)}99.33%,100%{opacity:0;clip-path:inset(-10px 0 -10px 0)}}
@keyframes f2l1p{0%,75.00%{left:0;opacity:0}75.33%{opacity:1}77.83%{left:100%;opacity:1}78.50%,100%{left:100%;opacity:0}}
.h12 .f2 .l1{animation-name:f2l1}.h12 .f2 .l1+.pt{animation-name:f2l1p}
@keyframes f2l2{0%,83.67%{opacity:0;clip-path:inset(-10px 100% -10px 0)}86.67%,97.00%{opacity:1;clip-path:inset(-10px 0 -10px 0)}99.33%,100%{opacity:0;clip-path:inset(-10px 0 -10px 0)}}
@keyframes f2l2p{0%,83.67%{left:0;opacity:0}84.00%{opacity:1}86.50%{left:100%;opacity:1}87.17%,100%{left:100%;opacity:0}}
.h12 .f2 .l2{animation-name:f2l2}.h12 .f2 .l2+.pt{animation-name:f2l2p}
@keyframes f2tb{0%,66.67%{opacity:.42;background-size:0% 2px,100% 2px}66.70%{opacity:1;background-size:0% 2px,100% 2px}99.83%{opacity:1;background-size:100% 2px,100% 2px}100.00%,100%{opacity:.42;background-size:0% 2px,100% 2px}}
.h12 .f2 .fh{animation-name:f2h}
@keyframes f1v{0%,46.67%{opacity:0;transform:translateY(8px);visibility:hidden}46.70%{opacity:0;transform:translateY(8px);visibility:visible}49.00%,63.67%{opacity:1;transform:none;visibility:visible}66.00%{opacity:0;transform:none;visibility:visible}66.03%,100%{opacity:0;visibility:hidden}}
