@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff")}:root{--c-bg:#10151e;--c-raised:#161c27;--c-line:#2a313d;--c-line-strong:#626b7e;--c-grid:#2a313d59;--c-text:#eceef2;--c-muted:#a9afba;--c-dim:#8b919c;--c-accent:#3ee0dc;--c-accent-hover:#7debe7;--c-on-accent:#10151e;--c-error:#ff8a7a;--c-logo-1:#3a4456;--c-logo-2:#5b6a80;--font-sans:"Space Grotesk Variable", "Space Grotesk Fallback", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--t-h1:clamp(2.25rem, 1.4rem + 2.9vw, 3.75rem);--t-h2:clamp(1.75rem, 1.3rem + 1.4vw, 2.375rem);--t-h3:1.125rem;--t-lead:clamp(1.0625rem, .95rem + .5vw, 1.1875rem);--t-body:1rem;--t-small:.875rem;--t-eyebrow:.75rem;--t-button:.9375rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:40px;--s-8:64px;--s-9:80px;--s-10:96px;--r-1:4px;--r-2:8px;--dur:.12s;--gutter:20px}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);size-adjust:107%;ascent-override:92%;descent-override:27%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}html{background:var(--c-bg);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (width>=960px){html{scroll-padding-top:72px}}body{background:var(--c-bg);color:var(--c-muted);font-family:var(--font-sans);font-size:var(--t-body);margin:0;line-height:1.6}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}main:focus,[tabindex="-1"]:focus:not(:focus-visible){outline:none}.container{width:100%;max-width:1200px;padding:0 var(--gutter);margin:0 auto}@media (width>=640px){:root{--gutter:24px}}@media (width>=960px){:root{--gutter:56px}}.skip-link{top:var(--s-2);left:var(--s-2);z-index:20;padding:var(--s-3) var(--s-4);background:var(--c-raised);color:var(--c-text);border-radius:var(--r-1);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{background:var(--c-bg);border-bottom:1px solid var(--c-line)}.header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;min-height:56px;display:flex}.brand{align-items:center;gap:var(--s-3);min-height:44px;color:var(--c-text);text-decoration:none;display:inline-flex}.brand-word{letter-spacing:-.01em;font-size:1.125rem;font-weight:700}.brand-io{color:var(--c-accent)}.site-nav{order:3;width:100%;margin-left:-10px;position:relative}.site-nav ul{flex-wrap:wrap;display:flex}.site-nav a{min-height:44px;color:var(--c-muted);align-items:center;padding:12px 10px;text-decoration:none;display:inline-flex}.site-nav a:hover{color:var(--c-text);text-decoration:underline}.lang-switch{border:1px solid var(--c-accent);border-radius:var(--r-1);min-width:44px;min-height:44px;color:var(--c-accent);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;transition:background-color var(--dur);justify-content:center;align-items:center;padding:8px 14px;font-size:.78125rem;text-decoration:none;display:inline-flex}.lang-switch:hover{background:#3ee0dc1f}@media (width>=960px){.site-header{z-index:10;backdrop-filter:blur(8px);background:#10151eeb;position:sticky;top:0}.header-row{flex-wrap:nowrap;height:64px}.site-nav{width:auto;margin:0 calc(2 * var(--s-6) + 1px) 0 auto;order:0}.site-nav:after{content:"";top:50%;right:calc(-1 * var(--s-6) - 1px);background:var(--c-line);width:1px;height:20px;position:absolute;transform:translateY(-50%)}.site-nav ul{gap:var(--s-6)}.site-nav a{min-height:0;padding:0}}h1,h2,h3{color:var(--c-text);font-weight:600}h1{font-size:var(--t-h1);letter-spacing:-.03em;line-height:1.05}h2{font-size:var(--t-h2);letter-spacing:-.02em;line-height:1.15}h3{font-size:var(--t-h3);letter-spacing:-.01em;line-height:1.3}.eyebrow{margin-bottom:var(--s-4);color:var(--c-accent);font-family:var(--font-mono);font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:500;line-height:1.4}.lead{max-width:600px;margin-top:var(--s-5);font-size:var(--t-lead);line-height:1.6}.section-intro{max-width:600px;margin-top:var(--s-4)}.section-intro a{color:var(--c-accent);text-underline-offset:3px}.section-intro a:hover{text-decoration-thickness:2px}#products .section-intro{font-size:var(--t-lead)}.btn{border-radius:var(--r-1);min-height:48px;font-size:var(--t-button);transition:background-color var(--dur), border-color var(--dur);border:1px solid #0000;justify-content:center;align-items:center;padding:14px 28px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn-primary{background:var(--c-accent);color:var(--c-on-accent)}.btn-primary:hover{background:var(--c-accent-hover)}.btn-secondary{border-color:var(--c-line-strong);color:var(--c-text)}.btn-secondary:hover{border-color:var(--c-accent)}.hero{padding:48px 0 56px;position:relative;overflow:hidden}.hero:before{content:"";background-image:linear-gradient(var(--c-grid) 1px, transparent 1px), linear-gradient(90deg, var(--c-grid) 1px, transparent 1px);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;mask-image:linear-gradient(#000 calc(100% - 120px),#0000)}.hero-inner,.hero-head{position:relative}.hero h1{max-width:760px}.actions{gap:var(--s-4);margin-top:var(--s-7);flex-direction:column;display:flex}.hero-mark{display:none}@media (width>=640px){.actions{flex-direction:row}}@media (width>=960px){.hero{padding:var(--s-10) 0 88px}.hero:before{background-size:56px 56px}}@media (width>=1024px){.hero-mark{width:148px;height:148px;display:block;position:absolute;top:50%;right:0;transform:translateY(-50%)}}section[id]{padding:var(--s-8) 0;border-top:1px solid var(--c-line)}@media (width>=960px){section[id]{padding:var(--s-10) 0}}.services{margin-top:var(--s-7)}.services li{padding:var(--s-5) 0;border-top:1px solid var(--c-line)}.service-no{color:var(--c-dim);font-family:var(--font-mono);font-size:var(--t-eyebrow);letter-spacing:.16em;display:block}.service h3{margin-top:var(--s-3)}.service p{margin-top:var(--s-2)}@media (width>=960px){.services{grid-template-columns:repeat(3,1fr);display:grid}.services li{padding:var(--s-6) var(--s-7);border-top:0;border-left:1px solid var(--c-line)}.services li:first-child{border-left:0;padding-left:0}}.about-body{gap:var(--s-6);margin-top:var(--s-6);display:grid}.about-text{max-width:600px;font-size:var(--t-lead);line-height:1.6}.person{border-top:1px solid var(--c-line);align-items:center;gap:20px;padding:20px 0;display:flex}.person:last-child{border-bottom:1px solid var(--c-line)}.person-photo{object-fit:cover;border:1px solid var(--c-line);border-radius:var(--r-2);background:var(--c-raised);flex:none;width:80px;height:80px}.person-name{margin:0}.person-role{margin-top:4px}@media (width>=960px){.about-body{gap:var(--s-8);margin-top:var(--s-7);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.site-footer{padding:var(--s-7) 0 var(--s-6);border-top:1px solid var(--c-line);color:var(--c-dim);font-size:var(--t-small);line-height:1.5}.footer-row{gap:var(--s-6);display:grid}.footer-brand{align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);color:var(--c-text);display:flex}.legal{gap:0;display:grid}.legal p{margin:0;line-height:1.5}.f-contact{flex-direction:column;align-items:flex-start;display:flex}.f-label{margin-bottom:var(--s-1);color:var(--c-dim);font-family:var(--font-mono);font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:500}.mail{min-height:44px;color:var(--c-text);font-family:var(--font-mono);overflow-wrap:anywhere;align-items:center;text-decoration:none;display:flex}.mail:hover{color:var(--c-accent);text-decoration:underline}.f-privacy{min-height:44px;color:var(--c-muted);font-size:var(--t-small);text-underline-offset:3px;align-items:center;text-decoration:underline;display:flex}.f-privacy:hover{color:var(--c-text)}.copy{margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid var(--c-line);font-size:.8125rem}@media (width>=960px){.site-footer{padding-top:48px;padding-bottom:var(--s-7)}.footer-row{grid-template-columns:2fr 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}.product-cards{gap:var(--s-5);margin-top:var(--s-7);display:grid}.product-cards>li{display:flex}.product-card{border:1px solid var(--c-line);border-radius:var(--r-2);background:var(--c-bg);flex-direction:column;width:100%;display:flex;overflow:hidden}.product-body{flex-direction:column;flex:1;align-items:flex-start;padding:20px;display:flex}.product-body h3{font-size:var(--t-h3)}.tags{color:var(--c-dim);font-family:var(--font-mono);font-size:var(--t-eyebrow);letter-spacing:.08em;margin-top:6px}.product-summary{margin-top:var(--s-3)}.more,.back{min-height:44px;color:var(--c-text);text-underline-offset:3px;align-items:center;text-decoration:underline;display:inline-flex}.more{margin-top:var(--s-4);margin-bottom:var(--s-4)}.more:hover,.back:hover{color:var(--c-accent)}.product-links{width:100%;padding-top:var(--s-4);margin-top:auto}.product-card .product-links{border-top:1px solid var(--c-line)}.out-links{gap:var(--s-2) var(--s-5);flex-wrap:wrap;display:flex}.out-links a{min-height:44px;color:var(--c-text);font-family:var(--font-mono);font-size:var(--t-small);align-items:center;gap:6px;padding:12px 0;font-weight:500;text-decoration:none;display:inline-flex}.out-links a:hover{text-underline-offset:3px;text-decoration:underline 1px}.out-links svg{color:var(--c-accent);flex:none}@media (width>=960px){.product-cards{grid-template-columns:repeat(2,1fr)}.product-body{padding:var(--s-5)}}.shot{margin:0}.shot-frame{background:var(--c-raised);overflow:hidden}.shot-bar{height:32px;padding:0 var(--s-3);border-bottom:1px solid var(--c-line);background:var(--c-raised);color:var(--c-dim);font-family:var(--font-mono);font-size:.75rem;line-height:31px}.shot img{aspect-ratio:16/10;object-fit:cover;object-position:top;width:100%;height:auto;color:var(--c-muted);font-size:var(--t-small);padding:0;display:block}.shot figcaption{margin-top:var(--s-3);color:var(--c-dim);font-size:var(--t-small)}.shot--wide{max-width:1088px}.shot--wide .shot-frame{border:1px solid var(--c-line);border-radius:var(--r-2)}.product-card .shot{border-bottom:1px solid var(--c-line)}.crumbs{padding-top:var(--s-5);color:var(--c-dim);font-size:var(--t-small)}.crumbs ol{flex-wrap:wrap;align-items:center;display:flex}.crumbs li{align-items:center;display:inline-flex}.crumbs li>span[aria-hidden]{margin:0 var(--s-2)}.crumbs a{min-height:44px;color:var(--c-muted);align-items:center;padding:12px 0;text-decoration:none;display:inline-flex}.crumbs a:hover{text-decoration:underline}.crumbs [aria-current]{color:var(--c-text)}.page-hero{padding:var(--s-5) 0 var(--s-7);position:relative;overflow:hidden}.page-hero:before{content:"";background-image:linear-gradient(var(--c-grid) 1px, transparent 1px), linear-gradient(90deg, var(--c-grid) 1px, transparent 1px);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;mask-image:linear-gradient(#000 calc(100% - 120px),#0000)}.page-hero .lead{max-width:680px;margin-top:20px}.page-hero .out-links{margin-top:28px}.facts{margin-top:48px}.facts section{padding:var(--s-5) 0;border-top:1px solid var(--c-line)}.facts h2{font-size:var(--t-h3);letter-spacing:-.01em;line-height:1.3}.facts p,.proof{margin-top:var(--s-3)}.proof li{padding-left:var(--s-5);position:relative}.proof li+li{margin-top:var(--s-3)}.proof li:before{content:"";border:solid var(--c-accent);border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:.45em;left:2px;transform:rotate(40deg)}.proof strong{color:var(--c-text);font-weight:600}.facts+.shot{margin-top:var(--s-8)}.product-cta{padding:48px 0 var(--s-8);border-top:1px solid var(--c-line);margin-top:56px}.product-cta p{max-width:600px;margin-top:var(--s-4)}.product-cta .actions{margin-top:var(--s-6);align-items:stretch}@media (width>=640px){.product-cta .actions{align-items:center}}@media (width>=960px){.crumbs{padding-top:var(--s-6)}.page-hero{padding:var(--s-7) 0 56px}.page-hero:before{background-size:56px 56px}.facts{margin-top:var(--s-8);border-bottom:1px solid var(--c-line);grid-template-columns:repeat(3,1fr);display:grid}.facts section{padding:var(--s-6) var(--s-7);border-top:1px solid var(--c-line);border-left:1px solid var(--c-line)}.facts section:first-child{border-left:0;padding-left:0}.facts+.shot{margin-top:var(--s-8)}.product-cta{margin-top:var(--s-9);padding:var(--s-8) 0 var(--s-10)}}.contact-grid{gap:var(--s-6);margin-top:var(--s-6);display:grid}.contact-intro{max-width:440px;color:var(--c-muted);font-size:var(--t-lead)}.contact-mailbox{margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid var(--c-line)}.contact-label{color:var(--c-dim);font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:600}#contact-mail{min-height:44px;color:var(--c-text);font-family:var(--font-mono);text-decoration:underline;text-decoration-color:var(--c-line-strong);text-underline-offset:4px;transition:color var(--dur), text-decoration-color var(--dur);align-items:center;font-size:1rem;font-weight:500;display:inline-flex}#contact-mail:hover{color:var(--c-accent);text-decoration-color:var(--c-accent)}.contact-note{color:var(--c-dim);font-size:var(--t-small)}.contact-nojs{margin-top:var(--s-4);color:var(--c-text)}.contact-panel{padding:var(--s-5);border:1px solid var(--c-line);border-radius:var(--r-2);background:var(--c-raised)}.contact-panel:has(>form[hidden]:only-child){display:none}.contact-form{gap:var(--s-5);display:grid}.contact-form[hidden]{display:none}.cf-row{gap:var(--s-5);display:grid}.cf-field label{margin-bottom:var(--s-2);color:var(--c-text);font-size:var(--t-small);font-weight:600;display:block}.cf-field .opt{color:var(--c-dim);font-weight:400}.cf-field input,.cf-field textarea{border:1px solid var(--c-line-strong);border-radius:var(--r-1);background:var(--c-bg);width:100%;min-height:48px;color:var(--c-text);font:inherit;font-size:var(--t-body);transition:border-color var(--dur);padding:12px 14px;display:block}.cf-field textarea{resize:vertical;min-height:168px}.cf-field input:hover,.cf-field textarea:hover{border-color:var(--c-dim)}.cf-field input:focus,.cf-field textarea:focus{border-color:var(--c-accent)}.cf-field [aria-invalid=true]{border-color:var(--c-error);box-shadow:inset 0 0 0 1px var(--c-error)}.cf-hint{margin-bottom:var(--s-2);color:var(--c-dim);font-size:var(--t-small)}.cf-count{color:var(--c-dim);font-family:var(--font-mono);text-align:right;margin-top:6px;font-size:.75rem}.cf-count.is-over{color:var(--c-error)}.cf-err,.cf-alert>p{gap:var(--s-2);align-items:flex-start;display:flex}.cf-err:before,.cf-alert>p:before{content:"!" / "";text-align:center;border:1.5px solid;border-radius:50%;flex:none;width:16px;height:16px;margin-top:4px;font-size:.6875rem;font-weight:700;line-height:13px}.cf-err{color:var(--c-error);font-size:var(--t-small);margin-top:6px}.cf-err[hidden]{display:none}.cf-hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.cf-turnstile.is-shown{margin-top:var(--s-5)}.cf-alert:not(:empty){border:1px solid var(--c-line);border-left:3px solid var(--c-error);border-radius:var(--r-1);background:var(--c-bg);color:var(--c-text);padding:12px 16px}.cf-alert[data-variant=info]{border-left-color:var(--c-accent)}.cf-alert[data-variant=error]>p:before{color:var(--c-error)}.cf-alert[data-variant=info]>p:before{content:"i" / "";color:var(--c-accent)}.cf-alert a,.cf-notice a{color:var(--c-accent);text-underline-offset:3px}.cf-actions .btn{width:100%}.cf-actions .btn[aria-disabled=true]{cursor:progress}.cf-notice{margin-top:calc(var(--s-4) - var(--s-5));color:var(--c-dim);font-size:var(--t-small);line-height:1.7}.contact-done{justify-items:start;gap:var(--s-4);display:grid}.contact-done:focus{outline:none}.contact-done:focus-visible{outline:2px solid var(--c-accent);outline-offset:8px}.contact-done-mark{border:1.5px solid var(--c-accent);fill:none;width:40px;height:40px;stroke:var(--c-accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;padding:8px}.contact-done p{color:var(--c-text);font-size:var(--t-lead)}@media (width>=640px){.cf-row{gap:var(--s-4);grid-template-columns:1fr 1fr}.cf-actions .btn{width:auto}}@media (width>=960px){.contact-grid{gap:var(--s-8);margin-top:var(--s-7);grid-template-columns:5fr 7fr;align-items:start}#contact-mail{font-size:1.125rem}.contact-panel{padding:var(--s-7)}}.page-hero .updated{color:var(--c-dim);font-family:var(--font-mono);font-size:var(--t-eyebrow);margin-top:20px}.policy{margin-top:var(--s-6);padding-bottom:var(--s-8)}.toc{margin-bottom:var(--s-6);padding:var(--s-4) 20px;border-radius:var(--r-2);background:var(--c-raised)}.toc-label{margin-bottom:var(--s-2);color:var(--c-dim);font-family:var(--font-mono);font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:500}.toc li{align-items:center;gap:var(--s-3);display:flex}.toc .num,.policy-text .num{color:var(--c-dim);font-family:var(--font-mono);font-size:var(--t-eyebrow)}.toc a{min-height:44px;color:var(--c-muted);font-size:var(--t-small);flex:1;align-items:center;text-decoration:none;display:flex}.toc a:hover{color:var(--c-text);text-decoration:underline}.policy-text{max-width:720px}.policy-text section{padding:var(--s-5) 0;border-top:1px solid var(--c-line);color:var(--c-muted)}.policy-text section:first-child{border-top:0;padding-top:0}.policy-text h2{margin:var(--s-1) 0 var(--s-3);color:var(--c-text);font-size:var(--t-h3);letter-spacing:-.01em;line-height:1.3}.policy-text p+p,.policy-text p+ul,.policy-text ul+p,.policy-text p+dl,.policy-text dl+p{margin-top:var(--s-3)}.policy-text strong{color:var(--c-text)}.policy-text a{color:var(--c-accent);overflow-wrap:anywhere;text-underline-offset:3px;text-decoration:underline}.policy-text a:hover{text-decoration-thickness:2px}.plist{gap:var(--s-2);margin-top:var(--s-3);display:grid}.plist li{padding-left:var(--s-5);position:relative}.plist li:before{content:"";background:var(--c-accent);width:6px;height:6px;position:absolute;top:.6em;left:0}.processors{margin-top:var(--s-3)}.processors>div{padding:var(--s-3) 0;border-top:1px solid var(--c-line)}.processors>div:last-child{border-bottom:1px solid var(--c-line)}.processors dt{color:var(--c-text);font-weight:600}.processors dd a{margin-top:var(--s-1);display:block}@media (width>=960px){.policy{gap:var(--s-8);padding-bottom:var(--s-10);grid-template-columns:240px 1fr;margin-top:48px;display:grid}.toc{background:0 0;align-self:start;margin-bottom:0;padding:0;position:sticky;top:96px}.toc a{min-height:32px}.policy-text section{padding:var(--s-6) 0}}
