:root{--paper: #fafaf9;--paper-2: #f4f1ec;--paper-3: #ebe5dd;--rule: #e3ddd3;--ink: #0c0a09;--ink-2: #1c1917;--slate: #44403c;--slate-2: #6c655f;--slate-3: #a8a29e;--accent-h: 245;--accent: oklch(.45 .13 var(--accent-h));--accent-2: oklch(.92 .04 var(--accent-h));--accent-ink: oklch(.32 .13 var(--accent-h));--accent-2c: oklch(.45 .13 245);--accent-2c-ink: oklch(.32 .13 245);--accent-2c-soft: oklch(.96 .025 245);--serif: "Source Serif 4", "IBM Plex Serif", Georgia, serif;--sans: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--gutter: 32px;--section-y: 96px;--max: 1240px}[data-density=compact]{--section-y: 64px;--gutter: 24px}[data-density=comfy]{--section-y: 128px;--gutter: 40px}[data-display=serif]{--display: var(--serif)}[data-display=sans]{--display: var(--sans)}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html,body{overflow-x:clip}@media(max-width:560px){:root{--gutter: 20px}}a{color:inherit;text-decoration:none}::selection{background:var(--ink);color:var(--paper)}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}.wrap-narrow{max-width:880px;margin:0 auto;padding:0 var(--gutter)}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-2);font-weight:500}.eyebrow .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent-2c);margin-right:8px;vertical-align:1px}.tag-fuchsia{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2c-ink);padding:4px 10px;background:var(--accent-2c-soft);border:1px solid color-mix(in srgb,var(--accent-2c) 25%,transparent)}.bar-fuchsia{color:var(--accent-2c-ink)}.dot-fuchsia{background:var(--accent-2c)!important}.display{font-family:var(--display, var(--sans));font-weight:500;letter-spacing:-.025em;line-height:1.02;margin:0;color:var(--ink);text-wrap:balance}.display.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:1.05}.display em{font-style:italic;font-family:var(--serif);font-weight:400;color:var(--slate)}h1.display{font-size:clamp(48px,6vw,88px)}h2.display{font-size:clamp(36px,4.5vw,60px)}h3.display{font-size:clamp(22px,2vw,28px);letter-spacing:-.015em}p.lead{font-size:19px;line-height:1.55;color:var(--slate);max-width:60ch;text-wrap:pretty;margin:0}p.body{font-size:16px;line-height:1.65;color:var(--slate);max-width:65ch;margin:0}.mono{font-family:var(--mono);font-size:12px;letter-spacing:0}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:2px;font:500 14px/1 var(--sans);letter-spacing:-.005em;border:1px solid transparent;cursor:default;transition:all .16s ease;white-space:nowrap}.btn-primary{background:var(--accent-2c);color:#fff;border-color:var(--accent-2c)}.btn-primary:hover{background:var(--accent-2c-ink);border-color:var(--accent-2c-ink);color:#fff}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule)}.btn-ghost:hover{border-color:var(--ink)}.btn-link{display:inline-flex;align-items:center;gap:6px;font:500 14px/1 var(--sans);border-bottom:1px solid var(--ink);padding-bottom:2px;cursor:default}.btn-link .arr{transition:transform .2s ease}.btn-link:hover .arr{transform:translate(3px)}.hr{border:0;border-top:1px solid var(--rule);margin:0}.hr-thick{border:0;border-top:1px solid var(--ink);margin:0}section{padding:var(--section-y) 0;border-top:1px solid var(--rule)}section:first-of-type{border-top:0}.tone-paper{background:var(--paper)}.tone-cream{background:var(--paper-2)}.tone-deep{background:var(--paper-3)}.tone-ink{background:var(--ink);color:var(--paper)}.tone-fuchsia{background:var(--paper-2)}.tone-cream,.tone-deep,.tone-ink,.tone-fuchsia{border-top:0}.tone-paper+.tone-paper{border-top:1px solid var(--rule)}.section-head{display:grid;grid-template-columns:1fr 2fr;gap:64px;margin-bottom:56px;align-items:end}.section-head .num{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--slate-2);text-transform:uppercase}@media(max-width:760px){.section-head{grid-template-columns:1fr;gap:24px;margin-bottom:32px}:root{--section-y: 56px}}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--rule)}.site-header .bar{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{display:inline-flex;align-items:center}.brand-logo{display:block;height:38px;width:auto}.brand-logo .ink-fill{fill:var(--ink)}.brand-logo .accent-fill{fill:var(--accent-2c)}.brand-logo .paper-line{stroke:var(--paper)}.brand-logo .word{font:700 22px var(--sans);letter-spacing:-.02em;fill:var(--ink)}.brand-logo .tag{font:500 9.5px var(--sans);letter-spacing:.06em;fill:var(--slate)}.nav{display:flex;align-items:center;gap:28px}.nav a{font:500 13.5px/1 var(--sans);color:var(--slate);position:relative;padding:6px 0}.nav a:hover{color:var(--ink)}.nav .has-menu{display:inline-flex;align-items:center;gap:4px}.nav .chev{width:8px;height:8px;border-right:1.2px solid currentColor;border-bottom:1.2px solid currentColor;transform:rotate(45deg) translateY(-2px)}.header-cta{display:flex;align-items:center;gap:12px}@media(max-width:900px){.nav,.header-cta .btn-ghost{display:none}}.menu-btn{display:none;width:36px;height:36px;border:1px solid var(--rule);border-radius:2px;background:transparent;cursor:default;position:relative}.menu-btn span,.menu-btn:before,.menu-btn:after{content:"";position:absolute;left:9px;right:9px;height:1px;background:var(--ink)}.menu-btn:before{top:12px}.menu-btn span{top:17px}.menu-btn:after{top:22px}@media(max-width:900px){.menu-btn{display:inline-block}}.drawer{position:fixed;inset:64px 0 0;z-index:40;background:var(--paper);border-top:1px solid var(--rule);padding:24px var(--gutter);transform:translateY(-100%);transition:transform .28s cubic-bezier(.2,.7,.2,1)}.drawer.open{transform:translateY(0)}.drawer a,.drawer summary{display:block;padding:14px 0;border-bottom:1px solid var(--rule);font:500 18px/1 var(--sans);letter-spacing:-.01em;color:var(--ink);cursor:default}.drawer details ul{list-style:none;padding:0 0 8px;margin:0}.drawer details ul a{font-size:15px;color:var(--slate);border:0;padding:8px 0}.drawer summary::-webkit-details-marker{display:none}.drawer summary{display:flex;justify-content:space-between;align-items:center}.drawer details[open] summary .chev{transform:rotate(-135deg) translate(-2px,2px)}.dropdown{position:relative}.dropdown-panel{position:absolute;top:100%;left:-16px;margin-top:8px;min-width:240px;background:var(--paper);border:1px solid var(--rule);padding:12px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.dropdown-panel:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown-panel a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13.5px;border-radius:1px}.dropdown-panel a:hover{background:var(--paper-2);color:var(--ink)}.dropdown-panel a .meta{color:var(--slate-3);font-family:var(--mono);font-size:10px}.site-footer{border-top:1px solid var(--ink);padding:80px 0 32px;background:var(--paper)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:64px}@media(max-width:760px){.footer-grid{grid-template-columns:1fr 1fr}}.footer-grid h3{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--slate-2);margin:0 0 20px}.footer-grid ul{list-style:none;padding:0;margin:0}.footer-grid li{margin-bottom:10px}.footer-grid a{font-size:14px;color:var(--slate)}.footer-grid a:hover{color:var(--ink)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--rule);font-size:12px;color:var(--slate-2);font-family:var(--mono)}.footer-bottom .links{display:flex;gap:24px}.diagram{background:var(--paper-2);border:1px solid var(--rule)}.dot-grid{background-image:radial-gradient(var(--rule) 1px,transparent 1px);background-size:16px 16px;background-position:-1px -1px}.tile{display:flex;flex-direction:column;padding:32px;border-right:1px solid var(--rule);position:relative;min-height:320px}.tile:last-child{border-right:0}@media(max-width:760px){.tile{padding:24px;min-height:0;border-right:0;border-bottom:1px solid var(--rule)}.tile:last-child{border-bottom:0}}.tile .num{font-family:var(--mono);font-size:11px;color:var(--slate-2);letter-spacing:.1em;margin-bottom:32px}.tile h3{margin:0 0 12px}.tile p{flex:1}.tile .more{display:inline-flex;align-items:center;gap:6px;font:500 13px/1 var(--sans);color:var(--ink);margin-top:24px}.row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:16px}.muted{color:var(--slate-2)}.fade-in{animation:fadeIn .8s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.faq details{border-top:1px solid var(--rule);padding:24px 0}.faq details:last-child{border-bottom:1px solid var(--rule)}.faq summary{display:flex;justify-content:space-between;align-items:center;font:500 18px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink);cursor:default;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary .plus{width:14px;height:14px;position:relative;flex-shrink:0}.faq summary .plus:before,.faq summary .plus:after{content:"";position:absolute;background:var(--ink);transition:transform .22s ease}.faq summary .plus:before{left:0;right:0;top:6px;height:1.5px}.faq summary .plus:after{top:0;bottom:0;left:6px;width:1.5px}.faq details[open] summary .plus:after{transform:scaleY(0)}.faq .answer{margin-top:16px;font-size:16px;line-height:1.65;color:var(--slate);max-width:70ch}.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.stat{padding:28px 24px;border-right:1px solid var(--rule)}.stat:last-child{border-right:0}.stat .v{font-family:var(--display, var(--sans));font-size:42px;font-weight:500;letter-spacing:-.025em;color:var(--ink);line-height:1;margin-bottom:10px}.stat .l{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-2)}@media(max-width:760px){.stats-bar{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--rule)}}.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--rule)}.logos .logo{height:96px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--display, var(--serif));font-size:18px;letter-spacing:-.01em;color:var(--slate)}.logos .logo:nth-child(6n){border-right:0}@media(max-width:760px){.logos{grid-template-columns:repeat(2,1fr)}.logos .logo{border-right:1px solid var(--rule)}.logos .logo:nth-child(2n){border-right:0}}.page-head{padding:80px 0 64px;border-bottom:1px solid var(--rule)}@media(max-width:760px){.page-head{padding:48px 0 40px}}.crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--slate-2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:32px}@media(max-width:760px){.crumbs{margin-bottom:20px}}.crumbs a:hover{color:var(--ink)}.crumbs .sep{color:var(--slate-3)}.article-body{font-family:var(--serif);font-size:19px;line-height:1.7;color:var(--ink-2)}.article-body>p,.article-body>ul,.article-body>ol,.article-body>h2,.article-body>h3,.article-body>h4,.article-body>blockquote,.article-body>.callout,.article-body>hr{max-width:68ch}.article-body p{margin:0 0 1.4em}.article-body h2{font-family:var(--sans);font-size:28px;font-weight:600;letter-spacing:-.02em;margin:2em 0 .8em;color:var(--ink)}.article-body h3{font-family:var(--sans);font-size:18px;font-weight:600;margin:2em 0 .5em}.article-body blockquote{margin:1.5em 0;padding-left:24px;border-left:2px solid var(--ink);font-style:italic;color:var(--slate)}.article-body code{font-family:var(--mono);font-size:.85em;background:var(--paper-2);padding:2px 6px;border-radius:2px}.article-body ul{padding-left:20px;margin:0 0 1.4em}.article-body li{margin-bottom:.4em}.article-body img{display:block;width:100%;height:auto;margin:1.6em 0;border-radius:2px}.article-body a{border-bottom:1px solid var(--accent);color:var(--accent-ink)}.article-body .btn{border-bottom:0}.article-body .btn-primary{color:#fff}.article-body .btn-ghost{color:var(--ink)}.article-body table{display:block;overflow-x:auto;width:100%;margin:2em 0;border-collapse:collapse;border:1px solid var(--rule);font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper)}.article-body thead{background:var(--paper-2)}.article-body th,.article-body td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule)}.article-body th:last-child,.article-body td:last-child{border-right:0}.article-body tr:last-child td{border-bottom:0}.article-body th{font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-2);white-space:nowrap}.article-body td b,.article-body td strong{color:var(--ink);font-weight:600}.article-body pre,.article-body pre.astro-code{background:var(--paper-2)!important;color:var(--ink)!important;padding:18px 22px;margin:1.8em 0;border:1px solid var(--rule);overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.55}.article-body pre code{background:transparent;padding:0;font-size:inherit}.article-body pre.astro-code span{color:inherit!important}@media(max-width:760px){.article-body{font-size:17px;line-height:1.65}.article-body h2{font-size:22px;margin:1.6em 0 .6em}.article-body h3{font-size:16px}.article-body pre,.article-body pre.astro-code{padding:14px 16px;font-size:12px}}.callout{border:1px solid var(--rule);border-left:2px solid var(--accent);background:var(--paper-2);padding:20px 24px;margin:2em 0;font-family:var(--sans);font-size:15px;color:var(--slate)}.callout .label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink);margin-bottom:6px}.proof-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.proof-row .pcell{padding:24px 28px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:6px}.proof-row .pcell:last-child{border-right:0}.proof-row .pv{font-family:var(--display, var(--sans));font-size:32px;letter-spacing:-.02em}.proof-row .pl{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate)}@media(max-width:760px){.proof-row{grid-template-columns:repeat(2,1fr)}.proof-row .pcell{padding:18px 20px}.proof-row .pcell:nth-child(2){border-right:0}.proof-row .pcell:nth-child(1),.proof-row .pcell:nth-child(2){border-bottom:1px solid var(--rule)}.proof-row .pv{font-size:26px}}.hero{padding:88px 0 96px;border-bottom:1px solid var(--rule)}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:end}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:48px}}@media(max-width:760px){.hero{padding:48px 0 56px}}.hero-meta{display:flex;gap:32px;margin-top:48px;padding-top:24px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-2)}.hero-meta div span{color:var(--ink);display:block;margin-top:4px;font-size:13px;letter-spacing:0;text-transform:none;font-family:var(--sans)}@media(max-width:760px){.hero-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;margin-top:32px}}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-tight-latin-400-normal.iW8qmuJY.woff2) format("woff2"),url(/_astro/inter-tight-latin-400-normal.BLrFJfvD.woff) format("woff")}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-tight-latin-500-normal.BFXNXuvF.woff2) format("woff2"),url(/_astro/inter-tight-latin-500-normal.pobXraBK.woff) format("woff")}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-tight-latin-600-normal.BgSTtRxb.woff2) format("woff2"),url(/_astro/inter-tight-latin-600-normal.D7bG6gX1.woff) format("woff")}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-tight-latin-700-normal.BZKd_v_8.woff2) format("woff2"),url(/_astro/inter-tight-latin-700-normal.DvYAVZQd.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-latin-400-normal.DJ5YJwmz.woff2) format("woff2"),url(/_astro/source-serif-4-latin-400-normal.Dn3IlU-Z.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-latin-400-italic.0j97Jm6B.woff2) format("woff2"),url(/_astro/source-serif-4-latin-400-italic.Dv9jnFA_.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/source-serif-4-latin-500-normal.CUHe9xxf.woff2) format("woff2"),url(/_astro/source-serif-4-latin-500-normal.DVVamBqs.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff) format("woff")}.skip-link{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;background:var(--ink, #0c0a09);color:var(--paper, #fafaf9);padding:12px 16px;font-family:var(--mono, monospace);font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;z-index:100}.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;overflow:visible;outline:2px solid var(--accent-2c, #2563eb);outline-offset:2px}
