.cfin[data-astro-cid-l53vqjpo]{border-top:1px solid var(--hair)}.cfin-hold[data-astro-cid-l53vqjpo]{height:180vh}.cfin-stick[data-astro-cid-l53vqjpo]{position:sticky;top:60px;height:calc(100vh - 60px);height:calc(100svh - 60px);display:flex;align-items:center}.cfin-stick[data-astro-cid-l53vqjpo]>.wrap[data-astro-cid-l53vqjpo]{width:100%}.cfin-g[data-astro-cid-l53vqjpo]{display:grid;grid-template-columns:1fr .9fr;gap:64px;align-items:center}.cfin[data-astro-cid-l53vqjpo] h2[data-astro-cid-l53vqjpo]{font-size:clamp(28px,3.6vw,44px);line-height:1.06;text-wrap:balance;max-width:680px;margin:18px 0 14px}.cfin[data-astro-cid-l53vqjpo] .serif[data-astro-cid-l53vqjpo]{color:var(--mut)}.cfin[data-astro-cid-l53vqjpo] p[data-astro-cid-l53vqjpo]{color:var(--mut);max-width:480px;margin:0 0 30px}.cfin-row[data-astro-cid-l53vqjpo]{display:flex;gap:12px;flex-wrap:wrap}.cfin-u[data-astro-cid-l53vqjpo]{position:relative;display:inline-block}.cfin-u[data-astro-cid-l53vqjpo] i[data-astro-cid-l53vqjpo]{position:absolute;left:0;bottom:2px;height:4px;width:0;background:var(--coral)}.cfin-ph[data-astro-cid-l53vqjpo]{width:min(420px,100%);margin:0 auto}.cfin-ph[data-astro-cid-l53vqjpo] img[data-astro-cid-l53vqjpo]{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:6px}.cfin-cap[data-astro-cid-l53vqjpo]{width:min(420px,100%);margin:12px auto 0;display:flex;justify-content:space-between;font-family:Geist Mono,monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.cfin-cap[data-astro-cid-l53vqjpo] b[data-astro-cid-l53vqjpo]{color:var(--ink);font-weight:600}@media(max-width:760px){.cfin-hold[data-astro-cid-l53vqjpo]{height:160vh}.cfin-g[data-astro-cid-l53vqjpo]{grid-template-columns:1fr;gap:22px}.cfin-ph[data-astro-cid-l53vqjpo],.cfin-cap[data-astro-cid-l53vqjpo]{width:min(300px,100%)}.cfin[data-astro-cid-l53vqjpo] h2[data-astro-cid-l53vqjpo]{font-size:clamp(24px,7vw,30px)}.cfin[data-astro-cid-l53vqjpo] p[data-astro-cid-l53vqjpo]{margin-bottom:18px}}.inv{--paper:#14120E;--ink:#F2F0EA;--mut:#B9B4A8;--hair:#2E2B25;--card:#1A1815;--band:#1E1C18;--inkmut:#5B564C;background:var(--paper);color:var(--ink)}html.dark .inv{--paper:#0C0B0A;--card:#14120E;--band:#151311;--hair:#26231E}body{overflow-x:clip}code{font-family:Geist Mono,ui-monospace,monospace;font-size:13.5px}.bico{height:13px;width:11.3px;fill:currentColor;flex:none}.r{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1)}.r.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.r{opacity:1;transform:none;transition:none}}section.cf{padding:104px 0}@media(max-width:760px){section.cf{padding:72px 0}}.sechead{max-width:760px;margin-bottom:48px}.sechead h2{font-size:clamp(28px,3.4vw,40px);line-height:1.06;text-wrap:balance;margin:16px 0 14px}.sechead p{color:var(--mut);max-width:680px}.story{position:relative}.story:before{content:"";position:absolute;left:0;right:0;top:0;height:120vh;z-index:0;pointer-events:none;background-image:repeating-linear-gradient(-76deg,transparent 0 34px,var(--diag) 34px 35px);-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}.story>.wrap{position:relative;z-index:1}.sg{display:grid;grid-template-columns:1fr 1.08fr;gap:40px}.ch{min-height:170vh;min-height:170svh}.ch.hero{min-height:125vh;min-height:125svh}.ch .in{position:sticky;top:60px;min-height:calc(100vh - 60px);min-height:calc(100svh - 60px);display:flex;flex-direction:column;justify-content:center;padding:40px 0;max-width:500px;opacity:.22;transition:opacity .45s}.ch.on .in{opacity:1}.ch h1{font-size:clamp(36px,4.6vw,56px);line-height:1.04;text-wrap:balance;margin:22px 0 16px}.ch h2{font-size:clamp(28px,3.2vw,38px);line-height:1.06;text-wrap:balance;margin:16px 0 14px}.ch p{color:var(--mut)}.ch p code{color:var(--ink)}.ch .sub{font-size:16.5px}.ch .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.ch .meta{margin-top:32px;display:flex;gap:8px 24px;flex-wrap:wrap;font-family:Geist Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}.ch .meta b{color:var(--ink);font-weight:600}.ch .lnk{display:inline-block;align-self:flex-start;margin-top:22px;font-family:Geist Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--coral);padding-bottom:3px}.ch .cotas{margin-top:26px}.figstick{position:sticky;top:60px;height:calc(100vh - 60px);height:calc(100svh - 60px);display:flex;align-items:center;justify-content:center}.board{position:relative;width:100%;height:min(600px,86%)}.board:before{content:"";position:absolute;inset:-4%;pointer-events:none;background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:56px 56px;opacity:.05;-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 0,transparent 68%);mask-image:radial-gradient(ellipse at 50% 50%,#000 0,transparent 68%)}.iso{position:absolute;inset:0;perspective:1600px}.plates{position:absolute;left:50%;top:60%;width:280px;height:280px;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(58deg) rotate(var(--rz,-42deg));transition:transform .5s ease-out}.plate{position:absolute;inset:0;background:var(--card);border:1px solid var(--hair);border-radius:12px 12px 12px 4px;box-shadow:0 24px 48px -32px #14120e47;transform:translateZ(var(--z,0px));transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .45s,border-color .3s,background-color .3s,box-shadow .3s;padding:14px;display:flex;flex-direction:column;gap:10px}.plate .pl{font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:500}.plate.hi{border-color:var(--ink)}.plate.hi .pl{color:var(--ink)}.plate.ghost{background:transparent;box-shadow:none;border-color:var(--inkmut)}.plate.ghost>*{opacity:0}.plate>*{transition:opacity .3s}.plate.sub{inset:22px;padding:10px 12px;background:color-mix(in srgb,var(--card) 88%,transparent);border-color:var(--inkmut);box-shadow:none;opacity:0;justify-content:center}.plate.sub .pl{font-size:9.5px}.plate.sub.hi{background:var(--ink);border-color:var(--ink)}.plate.sub.hi .pl{color:var(--paper)}.pdb{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1}.pdb div{border:1px solid var(--inkmut);border-radius:12px 12px 12px 4px;padding:10px;display:flex;flex-direction:column;gap:5px;justify-content:flex-end}.pdb small{font-family:Geist Mono,monospace;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:auto}.pdb div i{height:4px;background:var(--hair);display:block}.pdb div i:nth-of-type(1){width:60%;background:var(--ink)}.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1}.pgrid i{border:1px dashed var(--hair);border-radius:12px 12px 12px 4px;display:block}.pgrid i.on{border-style:solid;border-color:var(--inkmut);background:var(--band)}.pmat{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;flex:1;align-content:center}.pmat i{display:block;width:22px;height:22px;margin:0 auto;border-radius:99px;border:1.5px dashed var(--inkmut);transition:background .25s,border-color .25s}.pmat i.on{background:var(--ink);border:1.5px solid var(--ink)}.pbolt{flex:1;display:flex;align-items:center;justify-content:center}.pbolt svg{height:38%;width:auto;fill:var(--ink)}.pbar{height:6px;background:var(--band);overflow:hidden}.pbar i{display:block;height:100%;width:72%;background:var(--ink);transition:width .3s}.envtag,.rail{opacity:0;transition:opacity .4s;pointer-events:none}.envtag.vis,.rail.vis{opacity:1}.envtag{position:absolute;left:50%;top:8%;transform:translate(-50%);display:flex;gap:10px;align-items:center;font-family:Geist Mono,monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--hair);background:var(--card);padding:6px 12px;border-radius:99px}.envtag span{color:var(--mut)}.envtag span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:99px;background:var(--inkmut);margin-right:8px;vertical-align:1px}.envtag.pub{border-color:var(--ink)}.envtag.pub span{color:var(--ink)}.envtag.pub span:before{background:var(--green)}.rail{position:absolute;left:12%;right:12%;bottom:2%;display:flex;flex-direction:column;gap:8px}.rail .ln{position:relative;height:2px;background:var(--hair)}.rail .ln i{position:absolute;left:0;top:0;height:100%;width:0;background:var(--ink)}.rail .ln:after{content:"";position:absolute;right:-1px;top:-4px;width:8px;height:8px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:rotate(45deg)}.rail .ticks{display:flex;justify-content:space-between}.rail .tk{font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--inkmut);transition:color .3s}.rail .tk.on{color:var(--ink)}.cotas{display:flex;flex-direction:column;gap:14px}.cota{display:flex;align-items:flex-start;gap:14px;transition:opacity .3s}.cota:before{content:"";flex:none;width:26px;margin-top:10px;border-top:1px dashed var(--inkmut);transition:border-color .3s,width .3s}.cota.hi:before{border-top-style:solid;border-top-color:var(--coral);width:38px}.cota b{font-family:Clash Display,sans-serif;font-weight:600;font-size:14px;letter-spacing:-.01em;display:block;line-height:1.3}.cota b small{font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:500;margin-right:8px}.cota span{display:block;font-size:13.5px;color:var(--mut);line-height:1.5}.cota span code{font-size:12.5px;color:var(--ink)}@media(max-width:900px){.sg{grid-template-columns:1fr;gap:0}.figcol{order:-1;position:sticky;top:60px;z-index:5;height:42vh;height:42svh;background:var(--paper);border-bottom:1px solid var(--hair);margin:0 -32px;padding:0 32px}.figstick{position:static;height:100%}.board{height:100%}.plates{width:170px;height:170px;top:62%}.plate{padding:9px;gap:6px}.plate .pl{font-size:8px}.plate.sub{inset:14px;padding:6px 8px}.plate.sub .pl{font-size:7.5px}.pmat{gap:5px}.pmat i{width:13px;height:13px}.pdb small{font-size:7px}.envtag{top:4%;font-size:9px}.rail{bottom:4%;left:4%;right:4%}.rail .tk{font-size:8.5px}.ch,.ch.hero{min-height:auto;padding:40px 0 64px}.ch:last-child{padding-bottom:28vh}.ch .in{position:static;min-height:0;padding:0;opacity:1}.ch h1{font-size:clamp(28px,7.4vw,36px);margin:14px 0 10px}.ch h2{font-size:clamp(23px,6.4vw,28px)}.ch .sub{font-size:15px}}.inv.dots{position:relative;overflow:hidden}.inv.dots:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(color-mix(in srgb,var(--ink) 22%,transparent) 1px,transparent 1.3px);background-size:14px 14px;-webkit-mask-image:radial-gradient(ellipse at 85% 40%,#000 0,transparent 62%);mask-image:radial-gradient(ellipse at 85% 40%,#000 0,transparent 62%)}.inv.dots>*{position:relative;z-index:1}.ai{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:860px){.ai{grid-template-columns:1fr}}.stage{background:var(--card);border:1px solid var(--hair);border-radius:18px 18px 18px 6px;box-shadow:0 24px 48px -32px #14120e40;overflow:hidden;min-height:320px;display:flex;flex-direction:column}.stage .jh{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--hair);font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}.stage .jh .md{margin-left:auto;border:1px solid var(--hair);color:var(--ink);padding:3px 9px;border-radius:99px}.stage .body{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1}.msg{align-self:flex-end;background:var(--ink);color:var(--paper);border-radius:12px 12px 12px 4px;padding:9px 13px;font-size:13.5px;max-width:88%;min-height:38px;line-height:1.5}.msg .caret{display:inline-block;width:6px;height:12px;background:var(--paper);margin-left:2px;vertical-align:-2px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.tool{font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.02em;padding:8px 12px;border:1px solid var(--hair);border-radius:12px 12px 12px 4px;color:var(--mut);display:flex;gap:8px;align-items:baseline;opacity:0;transform:translateY(6px);transition:all .4s}.tool.on{opacity:1;transform:none}.tool b{color:var(--ink);font-weight:600}.tool .ok{margin-left:auto;color:var(--green)}.tool .no{margin-left:auto;color:var(--coral);font-weight:600}.ans{background:var(--band);border:1px solid var(--hair);border-radius:12px 12px 12px 4px;padding:10px 13px;font-size:13.5px;max-width:92%;opacity:0;transform:translateY(6px);transition:all .4s;line-height:1.5}.ans.on{opacity:1;transform:none}.ans .src{display:block;font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--mut);margin-top:5px;text-transform:uppercase}.done{font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);opacity:0;transition:opacity .4s;margin-top:auto}.done.on{opacity:1}.tech{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}@media(max-width:860px){.tech{grid-template-columns:1fr 1fr}}@media(max-width:520px){.tech{grid-template-columns:1fr}}.tc{background:var(--card);padding:22px 22px 20px;display:flex;flex-direction:column;gap:12px}.tc svg{width:24px;height:24px;stroke:var(--ink);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.tc b{font-weight:600;font-size:15px;display:block}.tc small{display:block;font-family:Geist Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-top:4px;line-height:1.7}.scope{display:grid;grid-template-columns:1fr 1fr;gap:48px}@media(max-width:760px){.scope{grid-template-columns:1fr;gap:32px}}.sc h3{font-weight:600;font-size:15px;display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--hair)}.sc h3 i{width:9px;height:9px;border-radius:99px;border:1.5px solid var(--ink);background:var(--ink);flex:none}.sc.no h3 i{background:transparent;border-style:dashed;border-color:var(--inkmut)}.sc ul{list-style:none}.sc li{padding:11px 0;border-bottom:1px solid var(--hair);font-size:14px}.sc.no li{color:var(--mut)}
