@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-wght-normal.woff2)format("woff2-variations");font-weight:300 700;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-ext-wght-normal.woff2)format("woff2-variations");font-weight:300 700;font-display:swap;unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}.site{--bg:#fff;--ink:#0b1b33;--text:#2b3a52;--text-2:#4a5568;--muted:#5b6679;--accent:#1f4ea8;--line:#e3e7ed;--line-strong:#c9d0da;--gold:#c9a96e;--grid-line:#0b1b330b;--dg-stroke:#33445e;--dg-core:#1f4ea8;--dg-core-fill:#f5f8fd;--dg-wire:#aab4c3;--dg-label:#0b1b33;--dg-sub:#5b6679;--dg-icon:#1f4ea8;--dg-div:#e3e7ee;--dg-card:#d5dce6;--dg-badge:#edf2fb;--dg-pill:#f4f6f9;--t-label:clamp(.75rem, .732rem + .089vw, .8125rem);--t-small:clamp(.875rem, .857rem + .089vw, .9375rem);--t-body:clamp(1rem, .982rem + .089vw, 1.0625rem);--t-lead:clamp(1.0625rem, 1.03rem + .16vw, 1.1875rem);--t-h3:clamp(1.1875rem, 1.15rem + .18vw, 1.3125rem);--t-h2:clamp(1.5rem, 1.32rem + .89vw, 2.125rem);--t-h1:clamp(1.9rem, 1.45rem + 2.2vw, 3.25rem);--f-text:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--gutter:clamp(1.25rem, .75rem + 2.5vw, 3rem);--gap:clamp(1rem, .86rem + .71vw, 1.5rem);--head-gap:clamp(2rem, 1.71rem + 1.43vw, 3rem);--sec-gap:clamp(5rem, 4.29rem + 3.57vw, 7.5rem);--maxw:72rem;--measure:65ch;--dur-fast:.15s;--dur-reveal:.32s;--ease-out:cubic-bezier(.2, .7, .2, 1);color-scheme:light;background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}@media (prefers-reduced-motion:reduce){.site{scroll-behavior:auto}}.site *,.site :before,.site :after{box-sizing:border-box}.site body{background:var(--bg);color:var(--text);font:400 var(--t-body)/1.6 var(--f-text);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}:where(.site) :where(h1,h2,h3){font-family:var(--f-text);color:var(--ink);text-wrap:balance;margin:0;font-weight:500}:where(.site) :where(p,li,dd){text-wrap:pretty}:where(.site) :where(p,dl,dd,figure){margin:0}:where(.site) :where(ul,ol){margin:0;padding:0;list-style:none}:where(.site) a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}:where(.site) img{max-width:100%;display:block}.site ::selection{background:var(--accent);color:#fff}.site :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site main>section{overflow-x:clip}.wrap{width:100%;max-width:calc(var(--maxw) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.skip{left:var(--s3);z-index:100;padding:var(--s3) var(--s4);background:var(--ink);font:500 var(--t-label)/1 var(--f-mono);text-decoration:none;position:absolute;top:-80px;color:#fff!important}.skip:focus{top:var(--s3)}.kicker{align-items:center;gap:var(--s3);width:100%;margin-bottom:var(--s6);font:500 var(--t-label)/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex}.kicker:after{content:"";background:var(--line-strong);flex:auto;height:1px}.kicker .num{color:var(--accent)}.plus{color:var(--accent);font-family:var(--f-mono);font-weight:500}.sec{padding-top:var(--sec-gap)}.sec__head{max-width:46rem;margin-bottom:var(--head-gap)}.sec h2{font-size:var(--t-h2);letter-spacing:-.022em;max-width:24ch;line-height:1.2}.lede{margin-top:var(--s3);max-width:60ch;color:var(--text-2)}h3{font-size:var(--t-h3);letter-spacing:-.012em;line-height:1.3}.btn{justify-content:center;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s3) var(--s5);max-width:100%;font:500 var(--t-label)/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;text-align:center;color:#fff;background:var(--ink);border:1px solid var(--ink);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:0;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btn--ghost{color:var(--ink);border-color:var(--ink);background:0 0}.btn--ghost:hover{color:var(--accent);border-color:var(--accent);background:0 0}.btn--sm{min-height:44px;padding:var(--s2) var(--s4)}.btn--block{width:100%}.btn .arw{width:14px;height:14px;transition:transform var(--dur-fast) var(--ease-out);flex:none}.btn:hover .arw{transform:translate(2px)}.hdr{z-index:50;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.hdr.is-scrolled{box-shadow:0 10px 24px -20px #0b1b3373}.hdr.is-hidden{transform:translateY(-100%)}.hdr:after{content:"";background:var(--accent);transform-origin:0;pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.hdr__in{align-items:center;gap:var(--s4);min-height:64px;display:flex}.hdr__brand{align-items:center;min-width:0;min-height:44px;text-decoration:none;display:inline-flex}.hdr__nav{gap:var(--s1);margin-left:auto;display:flex}.hdr__nav a,.hdr__lang{min-width:44px;min-height:44px;padding-inline:var(--s3);font:500 var(--t-label)/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);transition:color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.hdr__nav a:hover,.hdr__lang:hover,.hdr__nav a[aria-current]{color:var(--accent)}.hdr__nav a{position:relative}.hdr__nav a:after{content:"";left:var(--s3);right:var(--s3);transform-origin:0;background:currentColor;height:1px;position:absolute;bottom:10px;transform:scaleX(0)}.hdr__nav a:hover:after,.hdr__nav a[aria-current]:after{transform:scaleX(1)}.hdr__lang{padding-inline:0}@media (width<=1023px){.hdr__nav{display:none}.hdr__lang{margin-left:auto}}@media (width<=599px){.hdr__cta{display:none}.hdr__lang{margin-right:calc(var(--s3) * -1)}}.logo{align-items:center;gap:var(--s3);min-width:0;display:inline-flex}.logo__mark{flex:none;width:28px;height:32px;display:block}.logo__word{flex-direction:column;min-width:0;line-height:1.1;display:flex}.logo__name{font:400 1.0625rem/1.1 var(--f-text);color:var(--ink);letter-spacing:-.01em;white-space:nowrap}.logo__name b{letter-spacing:.01em;font-weight:700}.logo__sub{font:500 .625rem/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap;margin-top:4px}@media (width<=359px){.logo__sub{display:none}}.hero{isolation:isolate;padding-top:clamp(3.5rem,2.5rem + 5vw,7rem);position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-position:top;background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0009 55%,#0000 100%);mask-image:linear-gradient(#000 0%,#0009 55%,#0000 100%)}.hero__grid{align-items:center;gap:var(--s7);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px) and (width<=1099px){.hero__art{max-width:46rem}}@media (width>=1100px){.hero__grid{column-gap:var(--s8);grid-template-columns:minmax(0,39rem) minmax(23rem,1fr);row-gap:0}.hero__art{grid-area:1/2;align-self:center;height:23rem;position:relative}}@supports (grid-template-rows:subgrid){@media (width>=1100px){.hero__grid{grid-template-rows:repeat(5,auto);align-items:stretch}.hero__box{grid-area:1/1/-1;grid-template-rows:subgrid;display:grid}.hero__art{grid-row:2/5;align-self:stretch;height:auto}.hero__box .hero__cta{margin-bottom:0}.hero__box .hero__note{margin-top:var(--s5)}}}.hero__box{max-width:46rem;position:relative}.hero__box:before,.hero__box:after{content:"";border:1.5px solid var(--gold);pointer-events:none;width:12px;height:12px;position:absolute}.hero__box:before{transform-origin:0 0;border-bottom:0;border-right:0;top:-20px;left:-14px}.hero__box:after{transform-origin:100% 100%;border-top:0;border-left:0;bottom:-20px;right:-14px}@media (width<=479px){.hero__box:before{left:-12px}.hero__box:after{right:-12px}}.hero .kicker{margin-bottom:var(--s5)}.hero .kicker:after{transform-origin:0}.hero h1{font-size:var(--t-h1);letter-spacing:-.032em;max-width:19ch;margin-bottom:var(--s5);line-height:1.08}.hero h1:lang(fr){max-width:21ch}.hero__sub{font-size:var(--t-lead);max-width:52ch;margin-bottom:var(--s6);color:var(--text);line-height:1.55}.hero__cta{gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.hero__note,.contact__reply{font:500 var(--t-label)/1.5 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.hero__art{min-width:0}.hx{position:relative}.hx__top{justify-content:space-between;align-items:baseline;gap:var(--s1) var(--s4);flex-wrap:wrap;display:flex}.hx__lbl{align-items:center;gap:var(--s2);font:500 var(--t-label)/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex}.hx__lbl:before{content:"";background:var(--accent);width:16px;height:2px}.hx__hint{font:400 .75rem/1.3 var(--f-mono);color:var(--muted)}.hx__map{margin-top:var(--s3);aspect-ratio:360/336;position:relative}.hx__map:before{content:"";pointer-events:none;background-image:radial-gradient(circle,#0b1b331f 1px,#0000 1.3px);background-position:50%;background-size:16px 16px;position:absolute;inset:-4% -2%;-webkit-mask-image:radial-gradient(closest-side,#000 55%,#0000 100%);mask-image:radial-gradient(closest-side,#000 55%,#0000 100%)}.hx__wires{width:100%;height:100%;display:none;position:absolute;inset:0;overflow:visible}.hx__wires--c{display:block}.hx__line{fill:none;stroke:var(--dg-wire);stroke-width:1.2px;vector-effect:non-scaling-stroke}.hx__wire:is(.is-hot,.is-on) .hx__line{stroke:var(--accent);stroke-width:1.6px}.hx__flow{fill:none;stroke:var(--accent);stroke-width:3.2px;stroke-linecap:round;stroke-dasharray:.0001 2;opacity:0;vector-effect:non-scaling-stroke}.hx__ring{fill:none;stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}.hx__hex{fill:var(--dg-core-fill);stroke:var(--accent);stroke-width:1.6px;vector-effect:non-scaling-stroke}.hx__hexin{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 3;opacity:.7;vector-effect:non-scaling-stroke}.hx__core{fill:var(--accent)}.hx__nodes{position:absolute;inset:0}.hx__item{left:var(--cx);top:var(--cy);justify-content:center;width:min(7rem,30%);display:flex;position:absolute;transform:translate(-50%,-22px)}.hx__node{min-width:44px;max-width:100%;font:500 .75rem/1.2 var(--f-text);color:var(--ink);text-align:center;cursor:pointer;background:0 0;border:0;border-radius:0;flex-direction:column;align-items:center;gap:4px;padding:0 2px 2px;display:inline-flex}.hx__badge{flex:none;width:44px;height:44px;display:block;overflow:visible}.hx__bring{fill:var(--bg);stroke:var(--line-strong);stroke-width:1.2px}.hx__ic{fill:none;stroke:var(--accent);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.hx__txt{min-width:0;display:block}.hx__short{background:var(--bg);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 3px;display:inline}.hx__node:hover,.hx__node[aria-expanded=true]{color:var(--accent)}.hx__node:hover .hx__bring{stroke:var(--accent)}.hx__node[aria-expanded=true] .hx__bring{fill:var(--accent);stroke:var(--accent)}.hx__node[aria-expanded=true] .hx__ic{stroke:#fff}.hx__node:focus-visible{outline-offset:2px}@media (width>=640px){.hx__map{aspect-ratio:640/320}.hx__wires--c{display:none}.hx__wires--w{display:block}.hx__item{left:var(--wx);top:var(--wy)}.hx__node{font-size:.8125rem}}.hx__hub{display:none}@media (width>=1100px){.hx{position:absolute;inset:0}.hx__top{display:none}.hx__map{--bd:52px;--mt:calc(var(--bd) / 2);--mb:calc(var(--bd) / 2 + 1.05rem + 6px);--ms:3rem;aspect-ratio:auto;margin:0;position:absolute;inset:0}.hx__wires--w{display:none}.hx__wires--d{top:var(--mt);left:var(--ms);width:calc(100% - 2 * var(--ms));height:calc(100% - var(--mt) - var(--mb));display:block}.hx__hub{left:50%;top:calc(var(--mt) + (100% - var(--mt) - var(--mb)) / 2);width:176px;height:176px;margin:-88px 0 0 -88px;display:block;position:absolute;overflow:visible}.hx__nodes{inset:var(--mt) var(--ms) var(--mb)}.hx__item{left:var(--dx);top:var(--dy);width:9rem;transform:translate(-50%, calc(var(--bd) / -2))}.hx__node{gap:4px;font-size:.875rem}.hx__badge{width:var(--bd);height:var(--bd)}}@media (width>=640px) and (width<=1099px){.hero__art{max-width:40rem}}.hx__tip{width:min(21rem,100vw - 24px);max-height:calc(100vh - 24px);padding:var(--s4) var(--s5) var(--s5);background:var(--bg);color:var(--text);border:1px solid var(--line-strong);border-radius:0;margin:auto;overflow:auto;box-shadow:0 22px 48px -22px #0b1b3366,0 2px 8px #0b1b330f}.hx__tip::backdrop{background:0 0}.hx__tip:focus{outline:none}.hx__tip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html.js .hx__tip{margin:0;position:absolute;inset:auto;overflow:visible}.hx__caret{display:none}html.js .hx__caret{left:var(--ax,50%);background:var(--bg);border-left:1px solid var(--line-strong);border-top:1px solid var(--line-strong);width:12px;height:12px;margin-left:-6px;display:block;position:absolute;top:-7px;transform:rotate(45deg)}html.js .hx__tip[data-side=top] .hx__caret{top:auto;bottom:-7px;transform:rotate(225deg)}.hx__tk{font:500 var(--t-label)/1.3 var(--f-mono);letter-spacing:.1em;color:var(--muted)}.hx__tk span{color:var(--accent)}.hx__tt{margin-top:var(--s1);font-size:var(--t-h3);letter-spacing:-.012em;color:var(--ink);font-weight:500;line-height:1.25}.hx__tl{margin-top:var(--s1);font-size:var(--t-small);color:var(--text-2);line-height:1.5}.hx__tsub{font:500 .6875rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.hx__tl+.hx__tsub{margin-top:var(--s4)}.hx__tx{margin-top:var(--s2);border-top:1px solid var(--line)}.hx__tx li{border-bottom:1px solid var(--line);font-size:var(--t-small);color:var(--text);padding:7px 0 7px 22px;line-height:1.4;position:relative}.hx__tx li:before{content:"";border-left:1.6px solid var(--accent);border-bottom:1.6px solid var(--accent);width:9px;height:5px;position:absolute;top:13px;left:2px;transform:rotate(-45deg)}.hx__tools{margin-top:var(--s3);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.hx__tools .hx__tsub{margin-right:var(--s1)}.hx__tool,.sc__pill{font:400 .75rem/1 var(--f-mono);color:var(--text-2);border:1px solid var(--line-strong);border-radius:12px;padding:5px 8px}.hero__index{column-gap:var(--gap);margin-top:var(--s8);border-top:1px solid var(--ink);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px){.hero__index{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1100px){.hero__index{display:none}}.hero__index a{justify-content:space-between;align-items:center;gap:var(--s3);min-height:56px;padding:var(--s4) 0;border-bottom:1px solid var(--line);color:var(--ink);font-weight:500;font-size:var(--t-small);text-decoration:none;display:flex;position:relative}.hero__index a:after{content:"";background:var(--accent);transform-origin:0;height:1px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.hero__index a:hover{color:var(--accent)}.hero__index a:hover:after{transform:scaleX(1)}.hero__index .arw{width:14px;height:14px;color:var(--accent);flex:none;transform:rotate(90deg)}.grid3,.grid6{gap:var(--gap);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px){.grid6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=960px){.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.grid6{grid-template-columns:repeat(3,minmax(0,1fr))}}.tile{display:flex}.tile>article{background:var(--bg);border:1px solid var(--line-strong);width:100%;padding:var(--s5);flex-direction:column;display:flex;position:relative}.tile>article:before,.tile>article:after{content:"";background:var(--accent);position:absolute;top:-1px;left:-1px}.tile>article:before{width:16px;height:2px}.tile>article:after{width:2px;height:16px}.tile>article:hover{border-color:#9fb0c8}.tile>article:hover:before{width:40px}.tile>article:hover:after{height:40px}@media (width>=640px) and (width<=959px){.tile>article{column-gap:var(--s6);grid-template-rows:auto auto 1fr auto;grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.tile__n{grid-area:1/1}.tile h3{grid-area:2/1}.tile__claim{grid-area:3/1}.tile .items{grid-area:1/2/span 3}.tile .tile__tech{grid-area:4/2}}@supports (grid-template-rows:subgrid){@media (width>=960px){.tile{grid-row:span 5;grid-template-rows:subgrid;row-gap:0;display:grid}.tile>article{grid-row:1/-1;grid-template-rows:subgrid;row-gap:0;display:grid}.tile .tile__tech{align-self:start;margin-top:0}}}.tile__n{justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s4);font:500 var(--t-label)/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex}.tile__slug{color:var(--muted);letter-spacing:.14em}.tile h3{margin-bottom:var(--s2)}.tile__claim{font-size:var(--t-small);color:var(--text-2);padding-bottom:var(--s5);line-height:1.55}.items{border-top:1px solid var(--line);margin-bottom:var(--s5);align-self:start}.items li{gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--line);font-size:var(--t-small);color:var(--text);grid-template-columns:3.4em minmax(0,1fr);line-height:1.45;display:grid}.items .ix{font:500 .6875rem/1.9 var(--f-mono);color:var(--muted);letter-spacing:.04em}.tile__tech{gap:var(--s1);padding-top:var(--s3);border-top:1px dashed var(--line-strong);margin-top:auto;display:grid}.tile__techlbl{font:500 .6875rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.tile__techtx{font:400 .8125rem/1.55 var(--f-mono);color:var(--text-2)}.figs{margin-top:var(--s9)}.figs__head{max-width:46rem;margin-bottom:var(--s6)}.figs__list{gap:var(--gap);display:grid}.sc{background:var(--bg);border:1px solid var(--line-strong);min-width:0;padding:clamp(var(--s4), 2.2vw, var(--s6));flex-direction:column;display:flex;position:relative}.sc:before,.sc:after{content:"";background:var(--accent);position:absolute;top:-1px;left:-1px}.sc:before{width:16px;height:2px}.sc:after{width:2px;height:16px}.sc__side{min-width:0}.sc__n{justify-content:space-between;gap:var(--s3);font:500 var(--t-label)/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex}.sc__count{color:var(--muted)}.sc__name{margin:var(--s1) 0 0;font-size:var(--t-h3);letter-spacing:-.012em;color:var(--ink);font-weight:500;line-height:1.3}.sc__tabs{gap:var(--s2);margin-top:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=640px){.sc__tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}.sc__tab{align-items:flex-start;gap:var(--s2);min-width:0;min-height:48px;padding:var(--s2) var(--s3);text-align:left;font:500 var(--t-small)/1.3 var(--f-text);color:var(--text);border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:0;display:flex;position:relative}.sc__tab:before{content:"";background:var(--accent);transform-origin:0;height:2px;position:absolute;bottom:-1px;left:-1px;right:-1px;transform:scaleX(0)}.sc__ix{font:500 .75rem/1.75 var(--f-mono);letter-spacing:.06em;color:var(--muted);flex:none}.sc__tx{min-width:0}.sc__tab:hover{border-color:var(--accent);color:var(--accent)}.sc__tab[aria-selected=true]{border-color:var(--ink);color:var(--ink)}.sc__tab[aria-selected=true]:before{transform:none}.sc__tab[aria-selected=true] .sc__ix{color:var(--accent)}.sc__panels{margin-top:var(--s4);min-width:0;display:grid}.sc__panel{grid-area:1/1;min-width:0;display:flex}.sc__panel:focus-visible{outline-offset:4px}.js .sc__panel:not(.is-on){visibility:hidden}.sc__fig{flex-direction:column;width:100%;min-width:0;display:flex}.sc__ptitle{display:none}.sc__body{padding-block:var(--s4);background-image:radial-gradient(circle,#0b1b331c 1px,#0000 1.3px);background-position:50%;background-size:16px 16px;flex:auto;align-items:center;display:flex;container:fig/inline-size}.sc__body>div{width:100%}.sc svg.dgf{width:100%;height:auto;display:block;overflow:visible}.fig__wide{display:none}.fig__narrow{max-width:360px;margin-inline:auto;display:block}@container fig (width>=720px){.fig__wide{display:block}.fig__narrow{display:none}}.sc__out{gap:var(--s1);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line);display:grid}.sc__outlbl{font:500 .6875rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.sc__outtx{font-size:var(--t-small);color:var(--ink);max-width:64ch;font-weight:500;line-height:1.5}@media (width>=1200px){.sc{column-gap:var(--s6);grid-template-columns:15rem minmax(0,1fr);display:grid}.sc__tabs{margin-top:var(--s5);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr);gap:0}.sc__tab{border-width:0 0 1px;border-color:var(--line);padding:var(--s3) var(--s2) var(--s3) var(--s3);min-height:52px}.sc__tab:before{transform-origin:top;width:2px;height:auto;inset:-1px auto -1px 0;transform:scaleY(0)}.sc__tab:hover,.sc__tab[aria-selected=true]{border-color:var(--line)}.sc__panels{margin-top:0}}html:not(.js) .sc__tabs{display:none}html:not(.js) .sc__panels{gap:var(--s6)}html:not(.js) .sc__panel{grid-area:auto}html:not(.js) .sc__ptitle{gap:var(--s2);color:var(--ink);align-items:baseline;font-weight:500;display:flex}.sc__rowh{font:inherit;margin:0;display:none}.sc__row{align-items:center;gap:var(--s2);width:100%;min-height:52px;padding:var(--s2) 0;font:500 var(--t-body)/1.35 var(--f-text);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;display:flex}.sc__row .sc__ix{width:2.2em}.sc__rt{flex:auto;min-width:0}.sc__chev{fill:none;width:16px;height:16px;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:square;flex:none}.sc__row[aria-expanded=true] .sc__chev{transform:rotate(180deg)}.sc__row:hover .sc__rt{color:var(--accent)}@media (width<=639px){html.site.js .sc__tabs{display:none}html.site.js .sc__panels{margin-top:var(--s3);border-top:1px solid var(--line);display:block}html.site.js .sc__panel{visibility:visible;border-bottom:1px solid var(--line);display:block}html.site.js .sc__rowh{font:inherit;display:block}html.site.js .sc__body{padding-block:var(--s2) var(--s3)}html.site.js .sc__row{min-height:48px;padding-bottom:2px}html.site.js .sc__out{padding:0 0 var(--s3) 2.2em;padding-left:calc(2.2em * .8 + var(--s2));cursor:pointer;border-top:0;order:-1;margin-top:0}html.site.js .sc__outlbl{display:none}html.site.js .sc__outtx{color:var(--text-2);font-weight:400}html.site.js .sc__panel:not(.is-rev) .sc__body{display:none}html.site.js .sc__body{border-top:1px dashed var(--line)}}.dgf text{font-family:var(--f-text)}.dgf .shade{fill:#0b1b330b}.dgf .cell{fill:#fff;stroke:var(--dg-card);stroke-width:1px}.dgf .n--core .shade{fill:#1f4ea81a}.dgf .n--core .cell{stroke:var(--dg-core);stroke-width:1.4px}.dgf .badge{fill:var(--dg-badge)}.dgf .badge--core{fill:var(--dg-core)}.dgf .ic{fill:none;stroke:var(--dg-icon);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.dgf .ic--core{stroke:#fff;stroke-width:1.5px}.dgf .ic--tick{stroke-width:1.7px}.dgf .lbl{fill:var(--dg-label);font-weight:500}.dgf .ttl{fill:var(--dg-label);letter-spacing:-.01em;font-weight:600}.dgf .desc{fill:var(--text-2);font-weight:400}.dgf .pt{fill:var(--text);font-weight:400}.dgf .pill{fill:var(--dg-pill);stroke:var(--dg-div);stroke-width:1px}.dgf .tag{font-family:var(--f-mono);fill:var(--text-2);font-weight:400}.dgf .div{stroke:var(--dg-div);stroke-width:1px}.dgf .div--dash{stroke-dasharray:3 3}.dgf .stg{font-family:var(--f-mono);letter-spacing:.08em;fill:var(--dg-sub);font-weight:500}.dgf .stg-rule{stroke:var(--line);stroke-width:1px}.dgf .wire{fill:none;stroke:var(--dg-wire);stroke-width:1.3px}.dgf .flow{fill:none;stroke:var(--accent);stroke-width:3.2px;stroke-linecap:round;stroke-dasharray:.0001 2;opacity:0}.dgf .port{fill:#fff;stroke:var(--dg-wire);stroke-width:1.3px}.dgf .port--end{fill:var(--dg-core);stroke:var(--dg-core)}.steps{grid-template-columns:minmax(0,1fr);display:grid}.step{column-gap:var(--s4);padding-bottom:var(--s6);grid-template-columns:40px minmax(0,1fr);display:grid;position:relative}.step:last-child{padding-bottom:0}.step:before{content:"";background:var(--line-strong);transform-origin:top;width:1px;position:absolute;top:44px;bottom:4px;left:19.5px}.step:last-child:before{display:none}.step__m{z-index:1;border:1px solid var(--ink);background:var(--bg);width:40px;height:40px;font:500 var(--t-label)/1 var(--f-mono);letter-spacing:.06em;color:var(--accent);justify-content:center;align-items:center;display:inline-flex;position:relative}.step__tx{padding-top:8px}.step h3{margin-bottom:var(--s2)}.step p{font-size:var(--t-small);color:var(--text-2);max-width:44ch;line-height:1.55}.step:hover .step__m{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}@media (width>=1024px){.steps{column-gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr))}.step{row-gap:var(--s4);grid-template-columns:minmax(0,1fr);align-content:start;padding-bottom:0}.step:before{left:48px;right:calc(var(--gap) * -1);transform-origin:0;width:auto;height:1px;top:19.5px;bottom:auto}.step__tx{padding-top:0}}.keep{row-gap:var(--s6)}.keep__item{gap:var(--s3);padding-top:var(--s4);border-top:1px solid var(--line-strong);grid-template-columns:2.6em minmax(0,1fr);align-items:start;display:grid}.keep__ix{font:500 var(--t-label)/1.9 var(--f-mono);color:var(--accent);letter-spacing:.08em}.keep__item h3{font-size:var(--t-body);letter-spacing:0;margin-bottom:var(--s1);font-weight:600;line-height:1.4}.keep__item p{font-size:var(--t-small);color:var(--text-2);line-height:1.55}.tools{border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=1024px){.tools{grid-template-columns:repeat(4,minmax(0,1fr))}}.tgroup{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);min-width:0}.tgroup__h{align-items:center;gap:var(--s2);min-height:44px;padding:var(--s2) var(--s4);border-bottom:1px solid var(--line-strong);font:500 var(--t-label)/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex}.tgroup__ix{color:var(--accent)}@supports (grid-template-rows:subgrid){.tools{grid-template-rows:none}.tgroup{grid-row:span 4;grid-template-rows:subgrid;row-gap:0;display:grid}.tgroup__list{grid-row:2/span 3;grid-template-rows:subgrid;row-gap:0;display:grid}}.tool{align-items:center;gap:var(--s3);min-height:68px;padding:var(--s3) var(--s4);min-width:0;color:var(--ink);display:flex;position:relative}.tool+.tool{border-top:1px solid var(--line)}@media (width<=559px){.tools{grid-template-columns:minmax(0,1fr)}.tgroup{grid-row:auto;display:block}.tgroup__list{grid-template-rows:none;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tool{justify-content:flex-start;gap:var(--s2);min-height:84px;padding:var(--s3) var(--s2);text-align:center;flex-direction:column}.tool+.tool{border-top:0;border-left:1px solid var(--line)}.tool:before{width:auto;height:2px;inset:auto 0 -1px;transform:scaleX(0)}.tool:hover:before{transform:scaleX(1)}}.tool:before{content:"";background:var(--accent);transform-origin:50%;width:2px;position:absolute;top:0;bottom:0;left:-1px;transform:scaleY(0)}.tool:hover:before{transform:scaleY(1)}.tool:hover .tmark{color:var(--accent)}.tool__nm{font-size:var(--t-small);color:var(--ink);min-width:0;font-weight:500;line-height:1.3}.tool__nm small{font:400 .75rem/1.3 var(--f-mono);color:var(--muted);letter-spacing:.02em;display:block}.tmark{flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.tmark svg{width:calc(22px * var(--s,1));height:calc(22px * var(--s,1));flex:none;display:block}.nw{white-space:nowrap}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact{gap:var(--s6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=900px){.contact{gap:var(--s8);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.contact h2{font-size:var(--t-h2);letter-spacing:-.022em;max-width:24ch;line-height:1.2}.contact__reply{margin-top:var(--s5)}.contact__card{gap:var(--s3);padding:var(--s5);border:1px solid var(--line-strong);max-width:30rem;display:grid;position:relative}@media (width>=900px){.contact__card{max-width:none}}.contact__card:before,.contact__card:after{content:"";background:var(--accent);position:absolute;top:-1px;left:-1px}.contact__card:before{width:16px;height:2px}.contact__card:after{width:2px;height:16px}.contact__rows{margin-top:var(--s2);display:grid}.contact__rows div{align-items:center;gap:var(--s3);border-top:1px solid var(--line);grid-template-columns:minmax(0,6em) minmax(0,1fr);display:grid}.contact__rows dt{font:500 var(--t-label)/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.contact__rows dd{min-width:0}.contact__rows a{min-height:44px;color:var(--ink);font-weight:600;font-size:var(--t-small);overflow-wrap:anywhere;align-items:center;text-decoration:none;display:inline-flex}.contact__rows a:hover{color:var(--accent);text-decoration:underline}.sec--company{padding-bottom:var(--sec-gap)}.company{gap:var(--s6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=900px){.company{gap:var(--s8);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.company h2{font-size:var(--t-h2);letter-spacing:-.022em;margin-bottom:var(--s4);line-height:1.2}.company__text p{max-width:var(--measure);color:var(--text)}.company__text p+p{margin-top:var(--s3)}.pcard{gap:var(--s4);padding:var(--s5);border:1px solid var(--line-strong);max-width:30rem;display:grid;position:relative}@media (width>=900px){.pcard{max-width:none}}.pcard:before,.pcard:after{content:"";background:var(--accent);position:absolute;top:-1px;left:-1px}.pcard:before{width:16px;height:2px}.pcard:after{width:2px;height:16px}.pcard__lbl{font:500 var(--t-label)/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.pcard__id{align-items:center;gap:var(--s4);display:flex}.pcard__img{object-fit:cover;border:1px solid var(--line);border-radius:50%;flex:none;width:64px;height:64px}.pcard__img--mono{border-color:var(--line-strong);font:500 .875rem/1 var(--f-mono);color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.pcard__nm{font-size:var(--t-h3);letter-spacing:-.012em;color:var(--ink);font-weight:500;line-height:1.25}.pcard__role{font:400 var(--t-label)/1.5 var(--f-mono);letter-spacing:.04em;color:var(--muted);margin-top:2px}.pcard__facts{border-top:1px solid var(--line)}.pcard__facts li{padding:var(--s2) 0 var(--s2) var(--s5);border-bottom:1px solid var(--line);font-size:var(--t-small);color:var(--ink);font-weight:500;line-height:1.45;position:relative}.pcard__facts li:before{content:"";left:2px;top:calc(var(--s2) + .6em);background:var(--accent);width:8px;height:1.5px;position:absolute}.pcard__facts li:last-child{border-bottom:0;padding-bottom:0}.ftr{border-top:1px solid var(--line-strong)}.ftr__main{align-items:center;gap:var(--s3) var(--s6);padding-block:var(--s6) var(--s5);flex-wrap:wrap;display:flex}.ftr .logo__mark{width:21px;height:24px}.ftr .logo__name{font-size:.9375rem}.ftr__legal{font:500 var(--t-label)/1.5 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ftr__links{column-gap:var(--s5);flex-wrap:wrap;margin-left:auto;display:flex}.ftr__links a{min-width:44px;min-height:44px;color:var(--text);font-size:var(--t-small);transition:color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.ftr__links a:hover{color:var(--accent);text-decoration:underline}@media (width<=767px){.ftr__links{width:100%;margin-left:0}}@media (prefers-reduced-motion:no-preference){.site{--dur-reveal:.62s}.btn{transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.btn:active{transform:translateY(1px)}.hdr{transition:transform .32s var(--ease-out), box-shadow .2s var(--ease-out)}.hdr__nav a,.hdr__lang,.hero__index a,.ftr__links a{transition:color var(--dur-fast) var(--ease-out)}.hx__node,.sc__tab{transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out)}.hx__ring,.hx__ic,.hx__line{transition:fill .2s var(--ease-out), stroke .2s var(--ease-out)}.sc__tab:before{transition:transform .26s var(--ease-out)}.hero__index a .arw{transition:transform var(--dur-fast) var(--ease-out)}.hero__index a:hover .arw{transform:rotate(90deg)translate(2px)}.hdr__nav a:after,.hero__index a:after{transition:transform .26s var(--ease-out)}.tile>article{transition:border-color .2s var(--ease-out), transform .26s var(--ease-out)}.tile>article:hover{transform:translateY(-3px)}.tile>article:before,.tile>article:after{transition:width .22s var(--ease-out), height .22s var(--ease-out)}.tool:before{transition:transform .22s var(--ease-out)}.tmark{transition:color .18s var(--ease-out), transform .22s var(--ease-out)}.tool:hover .tmark{transform:scale(1.08)}.step__m{transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out)}@supports (animation-timeline:scroll()){.hdr:after{animation:linear both dvc-grow-x scroll(root)}}.js .fade{opacity:0;transform:translateY(12px)}.js .fade.in{opacity:1;transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);transition-delay:calc(var(--i,0) * 80ms);transform:none}.js .kicker.fade:after{transform-origin:0;transform:scaleX(0)}.js .kicker.fade.in:after{transition:transform .9s var(--ease-out) .15s;transform:none}.js .hero:before{animation:1.2s ease-out both dvc-fade}.js .hero__in{animation:dvc-rise .7s var(--ease-out) both;animation-delay:calc(60ms + var(--i,0) * 90ms)}.js h1.hero__in{animation-name:dvc-rise-soft;animation-delay:0s}.js .hero .kicker:after{animation:dvc-grow-x 1s var(--ease-out) .35s both}.js .hero__box:before,.js .hero__box:after{animation:dvc-tick .6s var(--ease-out) .65s both}.js .hx__line{stroke-dasharray:1;stroke-dashoffset:1px;animation:dvc-draw .8s var(--ease-out) both;animation-delay:calc(.4s + var(--i,0) * 80ms)}.js .hx__item{animation:.46s ease-out both dvc-in;animation-delay:calc(.3s + var(--i,0) * 70ms)}.js .hx__hex,.js .hx__hexin,.js .hx__core,.js .hx__ring{animation:.6s ease-out .2s both dvc-in}.js .hx__node{animation:5.6s ease-in-out infinite alternate dvc-float;animation-delay:calc(var(--i,0) * -.7s);animation-play-state:paused}.js .hx.is-live .hx__node{animation-play-state:running}.js .hx.is-live .hx__wire:is(.is-hot,.is-on) .hx__flow{animation:dvc-dot 1.6s var(--ease-out) infinite}.js .hx__node .hx__bring{transition:fill .2s var(--ease-out), stroke .2s var(--ease-out)}.js .hx__tip.is-open{animation:dvc-pop .22s var(--ease-out) both}.js .hx__tip.is-open .hx__tx li{animation:dvc-rise .32s var(--ease-out) both;animation-delay:calc(80ms + var(--j,0) * 50ms)}.js .steps.fade{transform:none}.js .steps.fade .step:before{transform:scaleY(0)}.js .steps.fade .step__m,.js .steps.fade .step__tx{opacity:0;transform:translateY(8px)}.js .steps.fade.in .step:before{transition:transform .7s var(--ease-out);transition-delay:calc(.25s + var(--i,0) * .16s);transform:none}.js .steps.fade.in .step__m,.js .steps.fade.in .step__tx{opacity:1;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transition-delay:calc(var(--i,0) * .16s);transform:none}@media (width>=1024px){.js .steps.fade .step:before{transform:scaleX(0)}}.js .sc.fade{transform:none}.js .sc .n,.js .sc .stage,.js .sc .port,.js .sc .flow{opacity:0}.js .sc .wire{stroke-dasharray:1;stroke-dashoffset:1px}.js .sc.in .is-on .stage{animation:.5s ease-out .1s both dvc-in}.js .sc.in .is-on .n{animation:.52s ease-out both dvc-in;animation-delay:calc(var(--d,0s) + .15s)}.js .sc.in .is-on .wire{animation:dvc-draw .56s var(--ease-out) both;animation-delay:calc(var(--d,0s) + .15s)}.js .sc.in .is-on .port{animation:.3s ease-out both dvc-in;animation-delay:calc(var(--d,0s) + .25s)}.js .sc.in.is-live .is-on .flow{animation:dvc-dot 2.6s var(--ease-out) infinite;animation-delay:calc(var(--d,0s) + 1.3s)}.js .sc.in .is-on .sc__out{animation:.5s ease-out .7s both dvc-in}.sc__chev{transition:transform .22s var(--ease-out)}@media (width<=639px){html.site.js .sc.in .is-rev .stage{animation:.5s ease-out .1s both dvc-in}html.site.js .sc.in .is-rev .n{animation:.52s ease-out both dvc-in;animation-delay:calc(var(--d,0s) + .15s)}html.site.js .sc.in .is-rev .wire{animation:dvc-draw .56s var(--ease-out) both;animation-delay:calc(var(--d,0s) + .15s)}html.site.js .sc.in .is-rev .port{animation:.3s ease-out both dvc-in;animation-delay:calc(var(--d,0s) + .25s)}html.site.js .sc.in.is-live .is-rev .flow{animation:dvc-dot 2.6s var(--ease-out) infinite;animation-delay:calc(var(--d,0s) + 1.3s)}html.site.js .sc .sc__out{animation:none}}}@keyframes dvc-fade{0%{opacity:0}}@keyframes dvc-float{0%{transform:translateY(-2.5px)}to{transform:translateY(2.5px)}}@keyframes dvc-pop{0%{opacity:0;transform:translateY(4px)}}@keyframes dvc-in{0%{opacity:0}to{opacity:1}}@keyframes dvc-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes dvc-rise-soft{0%{transform:translateY(10px)}}@keyframes dvc-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes dvc-tick{0%{opacity:0;transform:scale(.3)}}@keyframes dvc-draw{to{stroke-dashoffset:0}}@keyframes dvc-dot{0%{stroke-dashoffset:0;opacity:0}12%{opacity:1}88%{opacity:1}to{stroke-dashoffset:-1px;opacity:0}}@keyframes dvc-flow{0%{stroke-dashoffset:.22px;opacity:1}70%{opacity:1}to{stroke-dashoffset:-1.05px;opacity:0}}@media (width<=479px){.hero__cta .btn{flex:100%}.contact__rows div{padding-top:var(--s2);grid-template-columns:minmax(0,1fr);gap:0}.tile>article,.contact__card,.pcard{padding:var(--s4) var(--s4) var(--s5)}.sc{padding:var(--s3) var(--s3) var(--s4)}.tgroup__h{padding-inline:var(--s3)}.tool__nm{font-size:.875rem}.tmark{width:24px;height:24px}.tmark svg{width:calc(20px * var(--s,1));height:calc(20px * var(--s,1))}}@media (width<=399px){.sc{padding-inline:var(--s2)}.sc__side,.sc__out{padding-inline:var(--s1)}}.legal{padding-bottom:var(--sec-gap)}.legal h1{font-size:var(--t-h2);letter-spacing:-.022em;max-width:24ch;line-height:1.2}.legal__body{gap:var(--s8);max-width:46rem;display:grid}.legal__sec{border-top:1px solid var(--line-strong);padding-top:var(--s5)}.legal__n{margin-bottom:var(--s3);font:500 var(--t-label)/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:block}.legal__sec h2{font-size:var(--t-h3);letter-spacing:-.012em;margin-bottom:var(--s4);line-height:1.3}.legal__sec h3{font-size:var(--t-body);letter-spacing:0;margin:var(--s5) 0 var(--s2);line-height:1.4}.legal__sec p{max-width:var(--measure);color:var(--text)}.legal__sec p+p{margin-top:var(--s3)}.legal__rows{gap:var(--s2);margin-top:var(--s4);display:grid}.legal__rows>div{gap:0 var(--s4);grid-template-columns:minmax(0,1fr);align-items:baseline;display:grid}@media (width>=600px){.legal__rows>div{grid-template-columns:12rem minmax(0,1fr)}}.legal__rows dt{font:500 var(--t-label)/1.9 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.legal__rows dd{color:var(--text)}.legal__rows a,.legal__sec p a{align-items:center;min-height:44px;display:inline-flex}@media (prefers-reduced-motion:reduce){.site *,.site :before,.site :after{transition:none!important;animation:none!important}}
