@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/bricolage-grotesque-latin.woff2) format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-latin.woff2) format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-500-latin.woff2) format('woff2')}@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-italic-latin.woff2) format('woff2')}:root{--paper:#FBFBF9;--surface:#F5F6F8;--ink:#15171C;--ink-2:#5E646C;--ink-3:#656B73;--ui:#80868E;--err:#B42318;--rule:#E3E5E9;--rule-2:#C9CCD1;--blue:#2C3CE3;--blue-ink:#1F2BB0;--f-word:'Instrument Serif',serif;--f-head:'Bricolage Grotesque',sans-serif;--f-body:'Bricolage Grotesque',system-ui,sans-serif;--f-mono:'IBM Plex Mono',monospace}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink-2);font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-underline-offset:3px}a:hover{color:var(--blue-ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}main:focus{outline:none}.skip{position:absolute;left:12px;top:-80px;z-index:300;background:var(--ink);color:#fff;padding:12px 18px;border-radius:6px;font-size:15px;text-decoration:none}.skip:focus{top:12px;color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}strong,b{color:var(--ink);font-weight:600}::selection{background:var(--blue);color:#fff}.wrap{max-width:1200px;margin:0 auto;padding:0 40px}.wrap.narrow{max-width:800px}header.site-header{display:contents}nav.site{position:sticky;top:0;z-index:100;background:rgba(251,251,249,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}nav.site .row{max-width:1200px;margin:0 auto;padding:0 40px;height:68px;display:flex;align-items:center;gap:40px}.logo{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-word);font-style:italic;font-size:28px;line-height:1;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.logo:hover{color:var(--ink)}.navlinks{display:flex;gap:28px;font-size:14px;flex:1}.navlinks a{color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.navlinks a:hover,.navlinks a.active{color:var(--ink)}.nav-right{display:flex;align-items:center;gap:24px}.progress{width:140px;height:1px;background:var(--rule-2);position:relative}.progress i{position:absolute;left:0;top:-.5px;height:2px;width:0;background:var(--blue)}.navcta{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-mono);font-size:12.5px;color:var(--ink);text-decoration:none;border:1px solid var(--rule-2);border-radius:6px;padding:8px 14px;white-space:nowrap}.navcta:hover{border-color:var(--ink);color:var(--ink)}.navtoggle{display:none;background:none;border:1px solid var(--rule-2);border-radius:6px;width:44px;height:44px;color:var(--ink);font-size:15px;cursor:pointer}.label{font-family:var(--f-mono);font-size:13px;color:var(--ink-3);letter-spacing:.01em}.label.blue{color:var(--blue)}.idx{font-family:var(--f-mono);font-size:13px;color:var(--ink-3)}h1,h2,h3,h4{overflow-wrap:break-word;font-family:var(--f-head);color:var(--ink);font-weight:600;letter-spacing:-.025em;text-wrap:balance}h1{font-size:clamp(38px,8vw,104px);line-height:.98;letter-spacing:-.04em}h2{font-size:clamp(32px,4.4vw,52px);line-height:1.06;max-width:900px}h3{font-size:22px;line-height:1.2;letter-spacing:-.015em}h4{font-size:17px;line-height:1.3;letter-spacing:-.01em}.lede{font-size:clamp(18px,1.8vw,22px);line-height:1.45;color:var(--ink-2);max-width:760px;text-wrap:pretty}.body{font-size:16px;line-height:1.6;color:var(--ink-2);max-width:720px;text-wrap:pretty}.note{font-family:var(--f-mono);font-size:12.5px;line-height:1.6;color:var(--ink-3);max-width:860px}.mono{font-family:var(--f-mono)}.slide{padding:120px 0;border-top:1px solid var(--rule)}.slide:first-of-type{border-top:none}.slide.tint{background:var(--surface)}.slide-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}.slide h2 + .lede,.slide h2 + .body{margin-top:24px}.stack-lg{margin-top:64px}.stack-md{margin-top:40px}.stack-sm{margin-top:20px}.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.cols.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols.c5{grid-template-columns:repeat(5,minmax(0,1fr));gap:32px}.col{border-top:1px solid var(--ink);padding-top:22px}.col.soft{border-top-color:var(--rule-2)}.col.blue{border-top:2px solid var(--blue);padding-top:21px}.col h3,.col h4{margin-bottom:10px}.col p{font-size:15px;line-height:1.55;color:var(--ink-2);text-wrap:pretty}.col .cap{font-family:var(--f-mono);font-size:12px;color:var(--ink-3);margin-top:12px}.big{font-family:var(--f-head);font-size:clamp(40px,5vw,60px);font-weight:600;letter-spacing:-.035em;line-height:1;color:var(--ink);margin-bottom:12px}.big.blue{color:var(--blue)}.mid{font-family:var(--f-head);font-size:32px;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--ink);margin-bottom:10px}.nlist{list-style:none;border-top:1px solid var(--rule)}.nlist li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:22px 0;border-bottom:1px solid var(--rule);font-size:17px;line-height:1.5;color:var(--ink-2)}.nlist li>span:first-child{font-family:var(--f-mono);font-size:13px;color:var(--ink-3);padding-top:3px}.nlist li b{color:var(--ink)}.ctas{display:flex;gap:12px;flex-wrap:wrap}.btn{min-height:44px;display:inline-flex;align-items:center;gap:8px;font-family:var(--f-body);font-size:15px;font-weight:500;padding:13px 22px;border-radius:6px;text-decoration:none;border:1px solid var(--blue);background:var(--blue);color:#fff;cursor:pointer;line-height:1.2}.btn:hover{background:var(--blue-ink);border-color:var(--blue-ink);color:#fff}.btn.line{background:transparent;color:var(--ink);border-color:var(--rule-2)}.btn.line:hover{border-color:var(--ink);color:var(--ink);background:transparent}.btn.sm{font-size:13.5px;padding:9px 16px;min-height:44px}.btn:disabled{opacity:.7;cursor:wait}.col a.go,a.read{display:inline-flex;align-items:center;min-height:44px}.code{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:24px 28px;position:relative;overflow-x:auto}.code pre,pre.code-block{font-family:var(--f-mono);font-size:13.5px;line-height:1.75;color:var(--ink);white-space:pre;margin:0}.c-c,.c-comment{color:var(--ink-3)}.c-s,.c-str,.c-prop{color:var(--blue)}.c-k,.c-kw{color:var(--ink);font-weight:500}.c-fn{color:var(--ink)}.c-var{color:var(--ink)}.c-num{color:var(--blue-ink)}.copy{position:absolute;top:14px;right:14px;font-family:var(--f-mono);font-size:12px;background:var(--paper);border:1px solid var(--rule-2);border-radius:6px;padding:5px 11px;color:var(--ink-2);cursor:pointer;min-height:44px;min-width:44px}.code:has(.copy){padding-top:60px}.copy:hover{color:var(--ink);border-color:var(--ink)}code.inline,.prose code{font-family:var(--f-mono);font-size:.88em;color:var(--ink);background:var(--surface);border:1px solid var(--rule);padding:1px 6px;border-radius:4px}.callout{border-left:0;border-top:1px solid var(--rule-2);padding-top:18px;max-width:760px}.callout .label{display:block;margin-bottom:8px;color:var(--ink)}.callout p{font-size:14.5px;line-height:1.6;color:var(--ink-2)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-family:var(--f-mono);font-size:12.5px;color:var(--ink);border:1px solid var(--rule-2);border-radius:999px;padding:7px 14px;display:inline-flex;align-items:center;gap:8px}.chip i{width:6px;height:6px;border-radius:50%;background:var(--blue);display:inline-block}.chip.muted i{background:var(--ink-3)}.field{display:flex;gap:8px;max-width:500px;flex-wrap:wrap}.field input{flex:1 1 240px;min-width:0;background:var(--paper);border:1px solid var(--ui);border-radius:6px;padding:13px 16px;font-family:var(--f-body);font-size:15px;color:var(--ink);outline:none}.field input:focus{border-color:var(--blue)}.field input::placeholder{color:var(--ink-3)}.table{width:100%;border-collapse:collapse;font-size:14.5px}.table th{font-family:var(--f-mono);font-weight:400;font-size:12px;color:var(--ink-3);text-align:left;padding:0 16px 12px 0;border-bottom:1px solid var(--ink)}.table td{padding:16px 16px 16px 0;border-bottom:1px solid var(--rule);color:var(--ink-2);vertical-align:top}.table td:first-child{color:var(--ink);font-weight:500}footer.site{border-top:1px solid var(--rule);padding:72px 0 36px;background:var(--paper)}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:64px}.foot-grid p{font-size:14px;color:var(--ink-2);line-height:1.6;max-width:300px;margin-top:14px}.foot-col-title{font-family:var(--f-mono);font-size:12.5px;color:var(--ink-3);margin-bottom:14px}.foot-col a{display:flex;align-items:center;min-height:44px;font-size:14px;color:var(--ink);text-decoration:none}.foot-col a:hover{color:var(--blue)}.foot-bottom{border-top:1px solid var(--rule);padding-top:14px;align-items:flex-start;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--f-mono);font-size:12.5px;color:var(--ink-3)}.foot-bottom a{color:var(--ink-3);text-decoration:none;margin-left:18px;display:inline-flex;align-items:center;min-height:44px}.foot-bottom .foot-legal{max-width:760px;line-height:1.6;align-self:center}.foot-bottom .foot-links a:first-child{margin-left:0}.foot-bottom a:hover{color:var(--ink)}@media (max-width:1000px){.cols.c4,.cols.c5{grid-template-columns:repeat(2,minmax(0,1fr))}.progress{display:none}}@media (max-width:900px){.cols,.cols.c2{grid-template-columns:1fr}.slide{padding:80px 0}nav.site .row{height:auto;min-height:64px;flex-wrap:wrap;gap:12px 20px;padding:12px 24px}.navtoggle{display:flex;align-items:center;justify-content:center;order:2}.nav-right{margin-left:auto}.navlinks{display:none;order:3;width:100%;flex:none;flex-direction:column;gap:0;padding-bottom:8px}.navlinks.open{display:flex}.navlinks a{padding:11px 0;border-top:1px solid var(--rule)}.foot-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.wrap{padding:0 22px}.cols.c4,.cols.c5{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr}.nlist li{grid-template-columns:44px minmax(0,1fr)}.code{padding:20px 18px}.code pre{font-size:12px}.navcta{display:none}}h3.h4{font-size:17px;line-height:1.3;letter-spacing:-.01em}h2.h3{font-size:22px;line-height:1.2;letter-spacing:-.015em;max-width:none}.faq{border-top:1px solid var(--ink);max-width:900px}.faq details{border-bottom:1px solid var(--rule)}.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:16px;align-items:baseline;padding:22px 0}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';font-family:var(--f-mono);font-size:18px;color:var(--ink-3);text-align:right}.faq details[open] summary::after{content:'\2212';color:var(--blue)}.faq summary h3{font-size:20px}.faq details p{font-size:16px;line-height:1.65;color:var(--ink-2);max-width:760px;padding:0 40px 26px 0;text-wrap:pretty}.table-wrap{overflow-x:auto}.table tbody th{font-family:var(--f-body);font-size:14.5px;font-weight:500;color:var(--ink);text-align:left;padding:16px 16px 16px 0;border-bottom:1px solid var(--rule);vertical-align:top;min-width:170px}.table thead th{white-space:nowrap}.table td{min-width:200px}.prose p{font-size:17px;line-height:1.7;color:var(--ink-2);max-width:760px;margin-bottom:20px;text-wrap:pretty}.prose h2{margin:72px 0 20px}.prose h3{margin:36px 0 12px}.prose ul{list-style:none;border-top:1px solid var(--rule);max-width:760px;margin-bottom:24px}.prose li{font-size:16px;line-height:1.6;color:var(--ink-2);padding:12px 0 12px 28px;position:relative;border-bottom:1px solid var(--rule)}.prose li::before{content:'·';position:absolute;left:0;color:var(--ink-3);font-family:var(--f-mono)}.cform{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 16px;margin-top:24px}.cform .full{grid-column:1/-1}.cform .fld{display:flex;flex-direction:column;gap:8px}.cform .fld>label{font-family:var(--f-mono);font-size:13px;color:var(--ink-2)}.cform input[type=text],.cform input[type=email],.cform select,.cform textarea{width:100%;min-height:48px;background:var(--paper);border:1px solid var(--ui);border-radius:6px;padding:12px 16px;font-family:var(--f-body);font-size:16px;color:var(--ink);outline:none}.cform textarea{min-height:150px;resize:vertical;line-height:1.5}.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--blue)}.cform [aria-invalid=true]{border-color:var(--err)}.cform .consent{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;font-size:15px;line-height:1.5;color:var(--ink-2)}.cform .consent input{width:22px;height:22px;margin-top:1px;accent-color:var(--blue)}.cform .ferr{color:var(--err);font-size:14px}.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.fstatus:empty{display:none}.fstatus{border-top:2px solid var(--ink);padding-top:12px;color:var(--ink);font-size:15px}.fstatus.ok{border-top-color:var(--blue)}.fstatus.err{border-top-color:var(--err)}@media (max-width:640px){.cform{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}