:root{--bg:#0a0b14;--card:#0f101e;--hc:#131428;--ln:#1e203a;--ln2:#30345a;--tx:#d9d8f3;--mut:#a1a1c9;--em:#3d51ff;--em2:#7a84ff;--ink:#06071a;--err:#80b0ff;--g:44px;
--fd:"Sofia Sans Condensed","Arial Narrow",sans-serif;--fb:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;--fm:"Geist Mono",ui-monospace,Menlo,Consolas,monospace}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--bg);color:var(--tx);font:400 16.5px/1.65 var(--fb);overflow-x:hidden;
background-image:linear-gradient(#0d0e1b 1px,transparent 1px),linear-gradient(90deg,#0d0e1b 1px,transparent 1px);background-size:128px 34px}
img,svg{max-width:100%}
a{color:var(--em2);text-underline-offset:3px}
a:hover{color:#ffffff}
:focus-visible{outline:2px solid var(--em);outline-offset:2px;border-radius:4px}
h1,h2,h3,p,ul,ol{margin:0}
h1,h2{font-family:var(--fd);font-weight:800;line-height:1.02;letter-spacing:.002em;overflow-wrap:break-word}
h1{font-size:clamp(36px,5.1vw,62px)}
h2{font-size:clamp(27px,3.1vw,38px);font-weight:700}
h3{font:600 17px/1.35 var(--fb)}
code{font-family:var(--fm);font-size:.9em}
.wrap{width:min(1140px,100% - 32px);margin-inline:auto}
.nar{max-width:820px}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:var(--em);color:var(--ink);padding:10px 14px;border-radius:8px;font-weight:600}
.skip:focus{left:8px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 22px;background:var(--em);color:var(--ink);border:1px solid var(--em);border-radius:10px;font:600 15.5px/1.2 var(--fb);text-decoration:none;cursor:pointer;text-align:center;transition:background .15s,transform .15s}
.btn:hover{background:#5f6aff;color:var(--ink);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--tx);border-color:var(--ln2)}
.btn.ghost:hover{background:var(--hc);color:#ffffff;border-color:var(--em)}
.btn.sm{min-height:44px;padding:8px 14px;font-size:14px}
.btn.dk{background:var(--ink);color:var(--tx);border-color:var(--ink)}
.btn.dk:hover{background:#000000;color:#ffffff}

/* floating pill header */
.hd{position:sticky;top:10px;z-index:50;padding:0 16px;margin-top:10px}
.pill{position:relative;display:flex;align-items:center;gap:10px;width:min(1140px,100%);margin:0 auto;padding:6px 6px 6px 12px;background:rgba(15,16,30,.94);border:1px solid var(--ln2);border-radius:999px;box-shadow:0 14px 34px -16px #000000;backdrop-filter:blur(8px)}
.logo{display:inline-flex;align-items:center;gap:9px;color:var(--tx);text-decoration:none;font:600 14px/1 var(--fm);letter-spacing:-.01em;min-height:44px;min-width:0}
.logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logo .mk{flex:none;border-radius:8px}
.nav{display:flex;margin-left:auto;border:1px solid var(--ln);border-radius:999px;overflow:hidden;background:var(--bg)}
.nav a{display:flex;align-items:center;min-height:42px;padding:0 16px;color:var(--mut);text-decoration:none;font:500 13.5px/1 var(--fm);border-left:1px solid var(--ln)}
.nav a:first-child{border-left:0}
.nav a:hover{color:#ffffff;background:var(--hc)}
.nav a[aria-current]{background:var(--em);color:var(--ink);font-weight:600}
.cta{border-radius:999px;min-height:44px;padding:8px 20px;white-space:nowrap;flex:none}
.burger{display:none;flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--ln2);background:var(--bg);cursor:pointer;padding:0;position:relative}
.burger span,.burger span::before,.burger span::after{position:absolute;left:13px;width:16px;height:2px;background:var(--tx);content:""}
.burger span{top:20px}.burger span::before{left:0;top:-6px}.burger span::after{left:0;top:6px}

/* sheet = frozen-pane card */
.sh{background:var(--card);border:1px solid var(--ln);border-radius:14px;overflow:hidden;counter-reset:r;box-shadow:0 22px 44px -30px #000000;--cols:minmax(0,1fr)}
.k2{--cols:minmax(0,1fr) minmax(0,2.3fr)}
.e2{--cols:repeat(2,minmax(0,1fr))}
.e3{--cols:repeat(3,minmax(0,1fr))}
.e5{--cols:repeat(5,minmax(0,1fr))}
.ch{display:grid;grid-template-columns:var(--g) var(--cols);background:var(--hc);border-bottom:3px double var(--ln2);font:500 11px/25px var(--fm);color:var(--mut);text-align:center;user-select:none}
.ch b{font-weight:500;border-left:1px solid var(--ln)}
.ch i{position:relative}
.ch i::after{content:"";position:absolute;right:5px;bottom:5px;border:5px solid transparent;border-right-color:var(--ln2);border-bottom-color:var(--ln2)}
.r{display:grid;grid-template-columns:var(--g) var(--cols);border-bottom:1px solid var(--ln);counter-increment:r}
.r:last-child{border-bottom:0}
.r::before{content:counter(r);font:500 11px/1 var(--fm);color:var(--mut);text-align:center;padding-top:22px;background:var(--hc);border-right:1px solid var(--ln)}
.r>*{padding:16px 20px;min-width:0}
.r>*+*{border-left:1px solid var(--ln)}
.r p{color:var(--mut)}
.k2 .ct{font:600 17px/1.35 var(--fb);color:var(--tx)}
.k1 .r>p{color:var(--tx)}
.th{font:600 12px/1 var(--fm);letter-spacing:.06em;text-transform:uppercase;padding:13px 18px;background:var(--hc);border-bottom:3px double var(--ln2);color:var(--tx)}
.inv-h{background:var(--em);color:var(--ink);border-bottom:0;border-radius:14px 14px 0 0}
.tk .sh{border-top-left-radius:0;border-top-right-radius:0}
.tk .ch{display:none}

/* sections */
.blk{padding:44px 0}
.blk.first{padding-top:8px}
.top{padding:46px 0 28px}
.sec{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.flt{flex:none;width:28px;height:28px;border:1px solid var(--ln2);border-radius:7px;background:var(--card);position:relative}
.flt::after{content:"";position:absolute;left:8px;top:11px;border:5px solid transparent;border-top:7px solid var(--em);border-bottom:0}
.eb{display:inline-block;background:var(--em);color:var(--ink);font:600 12.5px/1.3 var(--fm);letter-spacing:.04em;text-transform:uppercase;padding:6px 10px;margin-bottom:18px}
.cur{display:inline-block;width:.34em;height:.74em;margin-left:.12em;background:var(--em);vertical-align:baseline;animation:bl 1.1s steps(1) infinite}
@keyframes bl{0%,60%{opacity:1}61%,100%{opacity:0}}
.lead{font-size:18.5px;line-height:1.6;color:var(--mut);margin-top:18px;max-width:62ch}
.acts2{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}

/* breadcrumb = cell path */
.cr{display:flex;flex-wrap:wrap;align-items:center;font:500 12.5px/1.3 var(--fm);margin-bottom:18px;color:var(--mut)}
.cr a,.cr span{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--ln);margin-right:-1px;background:var(--card);text-decoration:none;color:var(--mut)}
.cr a:first-child{border-radius:7px 0 0 7px}
.cr span{border-radius:0 7px 7px 0;color:var(--tx);background:var(--hc)}
.cr a:hover{color:#ffffff}

/* hero */
.hero{padding:52px 0 20px}
.hg{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:36px;align-items:start}
.hg>*{min-width:0}
.hc>.sh{margin-top:18px}
.hc>.sh .ch{display:none}
.hc>.sh .r>p{padding:11px 16px;font-size:15.5px}
.hc>.sh .r::before{padding-top:16px}
.hf{margin-top:34px}
.fc{display:flex;flex-direction:column;gap:6px;padding:18px 16px 16px!important}
.fc b{font:600 clamp(19px,2.1vw,27px)/1.1 var(--fm);color:var(--em);letter-spacing:-.02em;overflow-wrap:anywhere}
.fc span{font-size:13.5px;line-height:1.35;color:var(--mut)}
.fx .r::before{padding-top:26px}

/* code */
.codebox{position:relative;background:#06070e;border:1px solid var(--ln2);border-radius:14px;overflow:hidden;box-shadow:0 26px 50px -30px #000000}
.codetabs{display:flex;background:var(--hc);border-bottom:3px double var(--ln2);padding-right:84px}
.codetabs button{min-height:44px;padding:0 15px;background:none;border:0;border-right:1px solid var(--ln);color:var(--mut);font:500 13px/1 var(--fm);cursor:pointer}
.codetabs button:hover{color:#ffffff}
.codetabs button[aria-selected=true]{background:var(--em);color:var(--ink);font-weight:600}
pre.code{position:relative;margin:0;padding:52px 18px 18px;background:#06070e;color:#d3d2f0;border:1px solid var(--ln);border-radius:12px;overflow-x:auto;max-width:100%;font:400 13.5px/1.7 var(--fm);tab-size:2;-webkit-overflow-scrolling:touch}
pre.code code{font-size:inherit;background:none;padding:0;border:0;color:inherit}
.codebox pre.code{position:static;border:0;border-radius:0;padding:18px}
.copy{position:absolute;top:0;right:0;min-height:44px;min-width:72px;padding:0 14px;background:var(--hc);color:var(--tx);border:0;border-left:1px solid var(--ln);border-bottom:1px solid var(--ln);border-radius:0 0 0 10px;font:500 12.5px/1 var(--fm);cursor:pointer}
.codebox .copy{border-bottom:0;border-radius:0;background:transparent}
.copy:hover{background:var(--em);color:var(--ink)}
.code .k{color:var(--em)}.code .s{color:#b2a8f5}.code .c{color:#7f7fa8;font-style:italic}

/* steps / use cases */
.st{counter-increment:s;padding:20px!important}
.stp{counter-reset:r s}
.st::before{content:counter(s,decimal-leading-zero);display:inline-block;font:600 13px/1 var(--fm);background:var(--em);color:var(--ink);padding:5px 7px;margin-bottom:14px}
.st h3,.uc h3,.ex h3{margin-bottom:6px}
.uc,.ex{padding:20px!important}
.stp .r::before,.e2 .r::before{padding-top:26px}

/* prose */
.pr{padding:0}
.prose{padding:30px 34px 34px;counter-reset:h;min-width:0}
.prose>*+*{margin-top:16px}
.prose h2{margin-top:40px;padding-top:26px;border-top:1px solid var(--ln);font-size:clamp(25px,2.7vw,33px);scroll-margin-top:96px}
.prose h2:first-child{margin-top:0;padding-top:0;border-top:0}
.prose h2::before{counter-increment:h;content:counter(h);display:inline-block;vertical-align:.32em;font:500 12px/1 var(--fm);color:var(--mut);border:1px solid var(--ln2);background:var(--hc);padding:5px 8px;margin-right:12px;border-radius:5px}
.prose h3{margin-top:26px;font-size:18px}
.prose p,.prose li{color:#c6c5e6}
.prose strong{color:#ffffff;font-weight:600}
.prose ul,.prose ol{padding-left:22px}
.prose li+li{margin-top:7px}
.prose li::marker{color:var(--em)}
.prose :not(pre)>code{background:var(--bg);border:1px solid var(--ln);padding:1px 6px;border-radius:5px;color:var(--em2);overflow-wrap:anywhere}
.prose table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;border:1px solid var(--ln);border-radius:10px;font-size:15px}
.prose th,.prose td{padding:10px 14px;border:1px solid var(--ln);text-align:left;vertical-align:top}
.prose th{background:var(--hc);font:600 12px/1.3 var(--fm);letter-spacing:.04em;text-transform:uppercase;color:var(--tx);border-bottom:3px double var(--ln2);white-space:nowrap}
.prose tr:nth-child(even) td{background:rgba(255,255,255,.018)}
.long .prose{font-size:17.5px;line-height:1.75}

/* FAQ = outline row groups */
.q{border-bottom:1px solid var(--ln)}
.q:last-child{border-bottom:0}
.q summary{display:grid;grid-template-columns:var(--g) minmax(0,1fr);align-items:stretch;cursor:pointer;list-style:none;min-height:56px}
.q summary::-webkit-details-marker{display:none}
.pm{background:var(--hc);border-right:1px solid var(--ln);position:relative}
.pm::before{content:"";position:absolute;left:50%;top:20px;width:16px;height:16px;margin-left:-8px;border:1px solid var(--ln2);background:var(--bg);border-radius:3px}
.pm::after{content:"+";position:absolute;left:50%;top:20px;width:16px;margin-left:-8px;font:600 14px/16px var(--fm);text-align:center;color:var(--em)}
.q[open] .pm::after{content:"\2212"}
.qt{padding:16px 20px;font:600 17px/1.4 var(--fb)}
.q summary:hover .qt{color:#ffffff}
.q[open] summary .qt{color:var(--em2)}
.an{margin-left:var(--g);padding:0 20px 20px;border-left:1px solid var(--ln);position:relative;color:var(--mut)}
.an::before{content:"";position:absolute;left:calc(var(--g) / -2);top:-18px;bottom:16px;width:8px;border-left:1px solid var(--ln2);border-bottom:1px solid var(--ln2)}

/* inverse CTA block */
.inv{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--em);color:var(--ink);padding:34px 38px;border-radius:14px;
background-image:linear-gradient(rgba(6,7,26,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(6,7,26,.13) 1px,transparent 1px);background-size:128px 34px}
.inv-t{min-width:0;flex:1 1 380px}
.inv h2{font-size:clamp(30px,3.6vw,44px);font-weight:800}
.inv p{margin-top:8px;font-size:17.5px;font-weight:500;color:var(--ink)}
.inv .btn{min-height:52px;padding:12px 28px;font-size:16.5px}

/* key page */
.kg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,450px);gap:28px 44px;align-items:start}
.kh{grid-column:1;grid-row:1}.kf{grid-column:2;grid-row:1/span 2}.kb{grid-column:1;grid-row:2}
.p-key h1{font-size:clamp(34px,4.6vw,54px)}
.form{background:var(--card);border:1px solid var(--em);border-radius:14px;padding:0 22px 22px;overflow:hidden;box-shadow:0 0 0 4px rgba(61,81,255,.14),0 30px 60px -30px #000000}
.tabs2{display:grid;grid-template-columns:1fr 1fr;margin:0 -22px 20px;background:var(--hc);border-bottom:3px double var(--ln2)}
.tabs2 button{min-height:48px;background:none;border:0;color:var(--mut);font:600 13.5px/1.2 var(--fm);cursor:pointer;padding:6px 10px}
.tabs2 button+button{border-left:1px solid var(--ln)}
.tabs2 button[aria-selected=true]{background:var(--em);color:var(--ink)}
.msg{display:none;margin:0 0 14px;padding:10px 12px;border:1px solid var(--ln2);border-radius:8px;font-size:14.5px;background:var(--bg)}
.msg:not(:empty){display:block}
.msg.err{display:block;border-color:var(--err);color:var(--err);background:rgba(128,176,255,.08)}
.row{margin-bottom:14px}
.row label,.calc label{display:block;font:500 12px/1.3 var(--fm);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
input,select,textarea{width:100%;min-height:46px;padding:10px 12px;background:var(--bg);color:var(--tx);border:1px solid var(--ln2);border-radius:8px;font:400 16px/1.4 var(--fb)}
textarea{min-height:150px;resize:vertical}
select{appearance:auto}
input:focus,select:focus,textarea:focus{outline:2px solid var(--em);outline-offset:0;border-color:var(--em)}
.note{font-size:13.5px;line-height:1.45;color:var(--mut);margin-top:8px}
.form form .btn{width:100%;margin-top:4px;min-height:50px}
.keyout{display:none}
.keyout.on{display:block}
.keyout h3{font:600 12px/1 var(--fm);letter-spacing:.06em;text-transform:uppercase;color:var(--em2);margin-bottom:10px}
.keybox{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--em);border-radius:8px;padding:8px 8px 8px 12px}
.keybox span{flex:1;min-width:0;font:500 13.5px/1.4 var(--fm);overflow-wrap:anywhere;word-break:break-all;color:var(--em2)}
.keyout p{margin-top:12px;font-size:14.5px;line-height:1.7;overflow-wrap:anywhere}
.keyout code{color:var(--em2)}
.mut{color:var(--mut)}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

/* docs */
.dg{display:grid;grid-template-columns:270px minmax(0,1fr);gap:28px;align-items:start}
.ds{position:sticky;top:92px;display:grid;gap:16px;max-height:calc(100vh - 104px);overflow:auto}
.toc .r>a{display:flex;align-items:center;min-height:44px;padding:9px 14px;color:var(--tx);text-decoration:none;font-size:14.5px;line-height:1.35}
.toc .r>a:hover{background:var(--hc);color:var(--em2)}
.toc .r::before{padding-top:17px}
.toc{--g:36px}
.sd{border:1px dashed var(--ln2);border-radius:14px;padding:18px;background:rgba(15,16,30,.7)}
.sdh{font:700 23px/1.1 var(--fd);margin-bottom:6px}
.sd p{font-size:14.5px;color:var(--mut)}
.sd .sdh{font-size:24px;color:var(--tx)}
.prose pre.code{margin-top:16px}
.sd .btn{width:100%;margin-top:14px}

/* pricing */
.pg{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:start}
.cw{border-color:var(--em)}
.calc{display:grid;gap:16px;padding:20px}
.calc>div{min-width:0}
.calc output{display:block;background:var(--em);color:var(--ink);font:600 34px/1.1 var(--fm);padding:14px 16px;letter-spacing:-.02em;overflow-wrap:anywhere}
.pe .r::before{padding-top:26px}

/* article */
.nar-h{max-width:860px}
.upd{margin-top:18px;font:500 12.5px/1.3 var(--fm);color:var(--mut);letter-spacing:.03em}
.upd time{color:var(--tx);border:1px solid var(--ln);padding:3px 8px;background:var(--card);margin-left:4px}
.ag{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px 32px;align-items:start}
.atk{grid-column:1;grid-row:1}.abd{grid-column:1;grid-row:2}
.ato{grid-column:2;grid-row:1/span 2;position:sticky;top:92px;max-height:calc(100vh - 104px);overflow:auto}

/* support / 404 */
.sup{max-width:760px}
.sf{margin-top:28px}
.sfi{padding:22px 22px 24px}
.sfi form{margin-top:0!important}
.sfi .btn{min-width:160px}
.nf{max-width:760px}
.nfi{padding:40px 34px 34px}
.nfl{display:flex;flex-wrap:wrap;gap:0;margin-top:26px;border:1px solid var(--ln);border-radius:8px;overflow:hidden;width:fit-content;max-width:100%}
.nfl a{display:flex;align-items:center;min-height:44px;padding:0 14px;font:500 13px/1 var(--fm);text-decoration:none;color:var(--mut);border-right:1px solid var(--ln)}
.nfl a:hover{background:var(--hc);color:#ffffff}

/* footer */
.ft{padding:30px 0 40px}
.ftc .ch{grid-template-columns:var(--g) 1fr 1fr}
.fti{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:24px 26px}
.fb{min-width:0;max-width:420px}
.fb p{color:var(--mut);font-size:14.5px;margin-top:4px}
.fl{display:flex;flex-wrap:wrap;align-content:flex-start;gap:0 4px}
.fl a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font:500 13.5px/1.2 var(--fm);color:var(--mut);text-decoration:none}
.fl a:hover{color:var(--em2);text-decoration:underline}
.lg{padding:14px 26px;border-top:1px solid var(--ln);background:var(--hc);font:400 12.5px/1.5 var(--fm);color:var(--mut)}

@media (max-width:1060px){
.cta{padding:8px 16px}
.nav a{padding:0 11px;font-size:13px}
.logo span{font-size:13px}
.hg{grid-template-columns:minmax(0,1fr)}
.ag{grid-template-columns:minmax(0,1fr)}
.atk,.abd,.ato{grid-column:1;grid-row:auto}
.ato{position:static;max-height:none}
.dg{grid-template-columns:minmax(0,1fr)}
.ds{position:static;max-height:none}
.pg{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:900px){
.burger{display:block}
.pill{padding-left:10px;gap:8px}
.cta{margin-left:auto;min-height:44px;padding:6px 14px;font-size:14px}
.nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);margin:0;flex-direction:column;border-radius:16px;border-color:var(--ln2);background:var(--card);box-shadow:0 24px 40px -14px #000000}
.nav.open{display:flex}
.nav a{min-height:48px;padding:0 18px;border-left:0;border-top:1px solid var(--ln);font-size:14.5px}
.nav a:first-child{border-top:0}
.kg{grid-template-columns:minmax(0,1fr)}
.kh,.kf,.kb{grid-column:1;grid-row:auto}
}
@media (max-width:760px){
body{font-size:16px}
.sh{--g:30px}
.sh.k2,.sh.e2,.sh.e3,.sh.e5{--cols:minmax(0,1fr)}
.ch b:nth-child(n+3){display:none}
.r>*{grid-column:2;border-left:0!important;padding:14px 14px}
.r>*+*{border-top:1px solid var(--ln)}
.r::before{grid-column:1;grid-row:1/span 6}
.k2 .r>.ct{padding-bottom:4px}
.k2 .r>p{padding-top:0;border-top:0}
.fc{flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px!important}
.fc b{font-size:19px;text-align:right;flex:none;max-width:55%}
.fc span{font-size:14px}
.st,.uc,.ex{padding:16px 14px!important}
.blk{padding:30px 0}
.top{padding:32px 0 20px}
.hero{padding:34px 0 10px}
.lead{font-size:17px}
.prose{padding:22px 18px 24px}
.long .prose{font-size:16.5px}
.toc{--g:30px}
.qt{padding:15px 14px;font-size:16px}
.an{padding:0 14px 16px}
.inv{padding:26px 22px}
.inv .btn{width:100%}
.form{padding:0 16px 18px}
.tabs2{margin:0 -16px 16px}
.sfi{padding:18px 16px 18px}
.nfi{padding:28px 18px 24px}
.fti{padding:20px 16px}
.lg{padding:12px 16px}
.acts2 .btn{flex:1 1 auto}
.ftc .ch b:nth-child(n+3){display:block}
}
@media (max-width:420px){
.logo{font-size:11.5px;gap:7px}
.logo span{font-size:11.5px}
.cta{padding:6px 11px;font-size:13px}
.pill{gap:6px;padding-left:8px}
.codetabs button{padding:0 11px}
pre.code{font-size:12.5px}
}
@media (prefers-reduced-motion:reduce){
*{animation:none!important;transition:none!important}
html{scroll-behavior:auto}
}
