.dx{--bg:#fafafa;--paper:#fff;--ink:#181818;--ink2:#525252;--grey:#737373;--line:#e8e8e8;--line2:#d9d9d9;--accent:#525252;--accent-soft:#efefef;--code:#181818;--code-ink:#e5e5e5;--note:#f5f5f5;--note-line:#dedede;--tip:#f5f5f5;--tip-line:#dedede;--warn:#f5f5f5;--warn-line:#d4d4d4;--sans:var(--font-geist-sans),system-ui,sans-serif;--mono:var(--font-geist-mono),ui-monospace,monospace;--th-line:var(--line);--th-line2:var(--line2);--th-paper:var(--paper);--th-bg:var(--bg);--th-ink:var(--ink);--th-ink2:var(--ink2);--th-grey:var(--grey);--th-red:var(--accent);background:var(--bg);color:var(--ink2);font-family:var(--sans);min-height:100vh;font-size:15.5px;line-height:1.7}html[data-theme=dark] .dx{--bg:#121212;--paper:#191919;--ink:#ededed;--ink2:#c8c8c8;--grey:#9a9a9a;--line:#2b2b2b;--line2:#3a3a3a;--accent:#d4d4d4;--accent-soft:#292929;--code:#0d0d0d;--code-ink:#e5e5e5;--note:#1d1d1d;--note-line:#383838;--tip:#1d1d1d;--tip-line:#383838;--warn:#222;--warn-line:#484848}body:has(.dx){background:var(--bg,#fafafa)}html[data-theme=dark] body:has(.dx){background:#121212}.dx a{color:inherit}.dx :is(button,a,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dx-skip{position:absolute;top:8px;left:-999px}.dx-skip:focus{z-index:100;background:var(--paper);padding:6px 10px;left:12px}.dx-top{z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:16px;height:58px;padding:0 20px;display:flex;position:sticky;top:0}.dx-brand{color:var(--ink);align-items:center;gap:10px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.dx-brand>svg{flex:none}.dx-brand span{border-left:1px solid var(--line2);color:var(--grey);padding-left:10px;font-weight:500}.dx-menu{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:6px;display:none}.dx-search-btn{border:1px solid var(--line2);background:var(--paper);width:min(340px,40vw);height:34px;color:var(--grey);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:8px;margin-left:24px;padding:0 10px;font-size:13px;display:flex}.dx-search-btn:hover{border-color:var(--grey);color:var(--ink2)}.dx-search-btn kbd{font-family:var(--mono);border:1px solid var(--line2);border-radius:4px;margin-left:auto;padding:0 5px;font-size:11px}.dx-top-links{align-items:center;gap:18px;margin-left:auto;font-size:13px;display:flex}.dx-top-links a{color:var(--ink2);text-decoration:none}.dx-top-links a:hover{color:var(--ink)}.dx .xn-theme{color:var(--ink2);cursor:pointer;background:0 0;border:0;padding:4px;display:flex}.dx-body{grid-template-columns:264px minmax(0,1fr);min-height:calc(100vh - 58px);display:grid}.dx-side{border-right:1px solid var(--line);scrollbar-width:thin;height:calc(100vh - 58px);padding:22px 14px 40px 20px;position:sticky;top:58px;overflow:auto}.dx-side nav>a,.dx-group-items a{color:var(--ink2);border-radius:6px;align-items:center;gap:8px;padding:5px 10px;font-size:13.5px;line-height:1.45;text-decoration:none;display:flex}.dx-side nav a:hover{background:var(--line);color:var(--ink)}.dx-side a.dx-on{background:var(--accent-soft);color:var(--accent);font-weight:550}.dx-group{margin-top:14px}.dx-group-title{width:100%;color:var(--grey);font:600 11.5px/1.45 var(--sans);letter-spacing:.035em;text-align:left;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;margin:0 0 3px;padding:5px 8px;display:flex}.dx-group-title svg{flex:none;transition:transform .15s}.dx-group-title[aria-expanded=true] svg{transform:rotate(90deg)}.dx-group-title:hover{background:var(--line);color:var(--ink)}.dx-group-items{padding-left:7px}.dx-badge{letter-spacing:.02em;border:1px solid var(--line2);color:var(--grey);border-radius:999px;margin-left:auto;padding:3px 6px;font-size:10.5px;font-weight:550;line-height:1;display:inline-block}.dx-badge-lg{vertical-align:middle;margin-left:12px;font-size:12px}.dx-main{min-width:0}.dx-page{grid-template-columns:minmax(0,760px) 220px;justify-content:center;gap:48px;padding:40px 40px 80px;display:grid}.dx-home{grid-template-columns:minmax(0,1040px)}.dx-article{min-width:0}.dx-article h1{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:clamp(28px,3.4vw,36px);font-weight:620;line-height:1.15}.dx-lede{color:var(--ink2);max-width:680px;margin:12px 0 0;font-size:17.5px;line-height:1.6}.dx-page-actions{gap:14px;margin:16px 0 8px;font-size:12.5px;display:flex}.dx-page-actions button,.dx-page-actions a{border:1px solid var(--line2);background:var(--paper);color:var(--ink2);font:inherit;cursor:pointer;border-radius:6px;padding:3px 9px;text-decoration:none}.dx-prose{margin-top:24px}.dx-h,.dx-prose h2,.dx-prose h3{color:var(--ink);letter-spacing:-.01em;scroll-margin-top:80px;position:relative}.dx-h,.dx-prose h2{margin:44px 0 12px;font-size:22px;font-weight:600;line-height:1.3}.dx-prose h3{margin:30px 0 8px;font-size:17px;font-weight:600}.dx-anchor{opacity:0;color:var(--grey);font-weight:400;text-decoration:none;position:absolute;left:-22px}.dx-h:hover .dx-anchor{opacity:1}.dx-prose p,.dx-article>p{margin:12px 0}.dx-prose ul,.dx-prose ol:not(.dx-steps){margin:12px 0;padding-left:22px}.dx-prose li{margin:5px 0}.dx-prose a,.dx-article>p a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.dx-prose strong{color:var(--ink);font-weight:600}.dx :not(pre)>code{font-family:var(--mono);background:var(--paper);border:1px solid var(--line);color:var(--ink);overflow-wrap:anywhere;border-radius:5px;padding:1px 5px;font-size:.86em}.dx-prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}.dx-table{border:1px solid var(--line);background:var(--paper);border-radius:10px;margin:18px 0;overflow-x:auto}.dx-table table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.55}.dx-table th{text-align:left;color:var(--ink);background:var(--bg);font-weight:600}.dx-table th,.dx-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 14px}.dx-table tr:last-child td{border-bottom:0}.dx .dd-code{background:var(--code);border:1px solid var(--line2);border-radius:10px;margin:16px 0;overflow:hidden}.dx .dd-code-bar{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:6px 8px 6px 14px;display:flex}.dx .dd-code-lang{font-family:var(--mono);color:#a39d92;font-size:11.5px}.dx .dd-code-status{color:#a39d92;margin-left:auto;font-size:11.5px}.dx .dd-code-status.bad{color:#f4a090}.dx .dd-code-copy{color:#cfc8bb;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px;display:flex}.dx .dd-code-copy:hover{background:#ffffff14}.dx .dd-code pre{font-family:var(--mono);color:var(--code-ink);margin:0;padding:14px 16px;font-size:13px;line-height:1.65;overflow-x:auto}.dx-callout{border:1px solid var(--note-line);background:var(--note);border-radius:10px;margin:18px 0;padding:12px 16px;font-size:14.5px}.dx-tip{border-color:var(--tip-line);background:var(--tip)}.dx-warning{border-color:var(--warn-line);background:var(--warn)}.dx-callout-kind{letter-spacing:.03em;text-transform:uppercase;color:var(--ink);margin-bottom:2px;font-size:12px;display:block}.dx-callout-body>:first-child{margin-top:0}.dx-callout-body>:last-child{margin-bottom:0}.dx-steps{counter-reset:step;margin:20px 0;padding:0;list-style:none}.dx-step{counter-increment:step;border-left:1px solid var(--line2);margin-left:13px;padding:0 0 18px 44px;position:relative}.dx-step:last-child{border-left-color:#0000}.dx-step:before{content:counter(step);background:var(--paper);border:1px solid var(--line2);width:27px;height:27px;color:var(--ink);border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid;position:absolute;top:-1px;left:-14px}.dx-step-title{color:var(--ink);padding-top:1px;font-weight:600;margin:0 0 4px!important}.dx-step-body>:first-child{margin-top:0}.dx-tabs{border:1px solid var(--line);background:var(--paper);border-radius:10px;margin:18px 0}.dx-tablist{border-bottom:1px solid var(--line);gap:4px;padding:6px 8px 0;display:flex;overflow-x:auto}.dx-tablist button{font:inherit;color:var(--grey);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:7px 10px 9px;font-size:13.5px}.dx-tablist button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:550}.dx-tabpanel{padding:4px 16px}.dx-tabpanel .dd-code{margin:12px 0}.dx-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.dx-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:28px}.dx-cards>a{color:inherit!important;text-decoration:none!important}.dx-card{border:1px solid var(--line);background:var(--paper);border-radius:8px;flex-direction:column;gap:5px;height:100%;padding:15px 16px;transition:border-color .15s,background .15s;display:flex}.dx-cards>a:hover .dx-card{border-color:var(--line2);background:var(--bg)}.dx-card-title{color:var(--ink);align-items:center;gap:8px;font-size:14.5px;font-weight:600;display:flex}.dx-card-text{color:var(--grey);font-size:13.5px;line-height:1.55}.dx-home .dx-home-section,.dx-home .dx-home-secondary>section{padding:0}.dx-home-hero{margin-bottom:44px}.dx-home-hero h1{letter-spacing:-.03em;font-size:clamp(32px,3.4vw,42px)}.dx-home-hero .dx-lede{max-width:62ch;font-size:16.5px}.dx-home-section+.dx-home-section{margin-top:42px}.dx-home-section h2,.dx-home-secondary h2{color:var(--ink);letter-spacing:-.015em;margin:0 0 16px;font-size:20px;font-weight:600;line-height:1.3}.dx-home-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.dx-home-card{border:1px solid var(--line);background:var(--paper);border-radius:12px;flex-direction:column;min-width:0;transition:border-color .15s,background .15s;display:flex;overflow:hidden;color:inherit!important;text-decoration:none!important}.dx-home-card:hover{border-color:var(--grey)}.dx-home-card-icon{border-bottom:1px solid var(--line);min-height:92px;color:var(--ink);background:color-mix(in srgb,var(--ink) 2%,var(--paper));align-items:center;padding:20px;display:flex}.dx-home-card-body{flex-direction:column;flex:1;gap:7px;padding:17px 18px 19px;display:flex}.dx-home-secondary{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:48px;display:grid}.dx-home-link-list{border-bottom:1px solid var(--line)}.dx-home-link-list>a{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:13px 2px;text-decoration:none;display:flex}.dx-home-link-list>a>span{flex-direction:column;gap:3px;display:flex}.dx-home-link-list strong{color:var(--ink);font-size:14px;font-weight:600}.dx-home-link-list>a>span>span{color:var(--grey);font-size:13px;line-height:1.5}.dx-home-link-list>a>svg{color:var(--grey);flex:none;margin-top:3px}.dx-home-link-list>a:hover>svg{color:var(--ink)}.dx-home-agent{border:1px solid var(--line);background:var(--paper);border-radius:12px;align-items:flex-start;gap:14px;margin-top:48px;padding:20px 22px;display:flex}.dx-home-agent>svg{color:var(--grey);flex:none;margin-top:2px}.dx-home-agent h2{color:var(--ink);margin:0 0 6px;font-size:16px;font-weight:600}.dx-home-agent p{color:var(--grey);margin:0;font-size:13.5px;line-height:1.65}.dx-home-agent-links{flex-wrap:wrap;gap:8px 18px;margin-top:12px;display:flex}.dx-home-agent-links a{color:var(--ink);align-items:center;gap:5px;font-size:13px;font-weight:550;text-decoration:none;display:inline-flex}.dx-home-agent-links a:hover{text-underline-offset:3px;text-decoration:underline}.dx-shot{margin:22px 0}.dx-shot img{border:1px solid var(--line2);background:var(--paper);border-radius:10px;width:100%;height:auto;display:block}.dx-shot figcaption{color:var(--grey);margin-top:8px;font-size:12.5px}.dx-pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:56px;display:grid}.dx-pager a{border:1px solid var(--line);color:var(--ink);background:var(--paper);border-radius:10px;flex-direction:column;padding:12px 16px;font-weight:550;text-decoration:none;display:flex}.dx-pager a:hover{border-color:var(--ink)}.dx-pager small{color:var(--grey);font-size:12px;font-weight:400}.dx-pager .dx-next{text-align:right}.dx-toc{align-self:start;max-height:calc(100vh - 110px);font-size:13px;position:sticky;top:90px;overflow:auto}.dx-toc p{color:var(--ink);margin:0 0 8px;font-size:12.5px;font-weight:600}.dx-toc a{border-left:1px solid var(--line);color:var(--grey);padding:3px 0 3px 12px;line-height:1.45;text-decoration:none;display:block}.dx-toc a[data-depth="3"]{padding-left:24px}.dx-toc a.dx-on{color:var(--accent);border-left-color:var(--accent)}.dx-search{z-index:80;background:#0006;justify-content:center;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.dx-search-box{background:var(--paper);border:1px solid var(--line2);border-radius:12px;flex-direction:column;width:min(620px,100%);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0004}.dx-search-box input{border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;background:0 0;outline:none;padding:16px 18px;font-size:16px}.dx-search-box ul{margin:0;padding:6px;list-style:none;overflow:auto}.dx-search-box li button{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;padding:9px 12px;display:flex}.dx-search-box li[aria-selected=true] button{background:var(--accent-soft)}.dx-search-box li span{color:var(--grey);font-size:12.5px}.dx-search-empty{color:var(--grey);padding:14px 12px;font-size:14px}@media (max-width:1180px){.dx-page{grid-template-columns:minmax(0,760px);padding:32px 32px 72px}.dx-home-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-toc{display:none}}@media (max-width:860px){.dx-menu{display:flex}.dx-body{grid-template-columns:minmax(0,1fr)}.dx-side{z-index:50;background:var(--bg);width:min(300px,86vw);height:auto;transition:transform .2s;position:fixed;top:58px;bottom:0;left:0;transform:translate(-105%)}.dx-side[data-open=true]{transform:none;box-shadow:10px 0 40px #0003}.dx-search-btn{width:auto;margin-left:auto}.dx-search-btn span,.dx-search-btn kbd{display:none}.dx-top-links{gap:12px;margin-left:0}.dx-top-links>a{display:none}.dx-page{padding:24px 16px 64px}.dx-cards,.dx-cards-3{grid-template-columns:minmax(0,1fr)}.dx-home-hero{margin-bottom:36px}.dx-home-secondary{grid-template-columns:minmax(0,1fr);gap:34px}.dx-anchor{display:none}}@media (max-width:640px){.dx-home-cards{grid-template-columns:minmax(0,1fr)}.dx-home-card-icon{min-height:72px}.dx-home-agent{padding:18px}}@media (max-width:480px){.dx-brand span{display:none}}@media (prefers-reduced-motion:reduce){.dx-side,.dx-home-card,.dx-group-title svg{transition:none}}
