:root{--d-sidebar-w:280px;--d-toc-w:224px;--d-measure:720px;--d-code-bg:#090b10;--d-body:#c4c9d1;--d-amber:#f0b860}.d-shell{grid-template-columns:var(--d-sidebar-w) minmax(0, 1fr);min-height:calc(100vh - var(--xh-header-h));display:grid}.d-main{outline:none;min-width:0}.d-sidebar{top:var(--xh-header-h);height:calc(100vh - var(--xh-header-h));border-right:1px solid var(--xh-line);background:linear-gradient(#ffffff03,#0000 320px);position:sticky}.d-sidebar-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;height:100%;padding:32px 20px 64px clamp(16px,3vw,32px);overflow-y:auto}.d-nav-group+.d-nav-group{margin-top:28px}.d-nav-title{font-family:var(--xh-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--xh-dim);margin:0 0 10px;font-size:11.5px;font-weight:500;line-height:1.3}.d-nav-group ul{border-left:1px solid var(--xh-line);margin:0;padding:0;list-style:none}.d-nav-link{letter-spacing:-.005em;color:var(--xh-muted);transition:color .2s var(--xh-ease), border-color .2s var(--xh-ease), background-color .2s var(--xh-ease);border-left:1px solid #0000;margin-left:-1px;padding:6px 12px 6px 15px;font-size:14.5px;line-height:1.4;display:block}.d-nav-link:hover{color:var(--xh-text);border-left-color:var(--xh-line-3)}.d-nav-link[aria-current=page]{color:var(--xh-text);border-left-color:var(--xh-final);background:linear-gradient(90deg,#4fe3cf13,#4fe3cf00 85%);font-weight:500}.d-nav-link:focus-visible{outline-offset:-2px}.d-menu-btn{border:1px solid var(--xh-line-2);border-radius:var(--xh-radius-sm);width:36px;height:36px;color:var(--xh-text-2);cursor:pointer;background:0 0;place-items:center;padding:0;transition:border-color .2s,color .2s;display:inline-grid}.d-menu-btn:hover,.d-menu-btn[aria-expanded=true]{border-color:var(--xh-line-3);color:var(--xh-text)}.d-search-btn{border:1px solid var(--xh-line-2);border-radius:var(--xh-radius-pill);width:260px;max-width:100%;height:36px;color:var(--xh-muted);cursor:pointer;transition:border-color .2s var(--xh-ease), background-color .2s var(--xh-ease), color .2s var(--xh-ease);background:#ffffff05;align-items:center;gap:9px;padding:0 6px 0 12px;font-size:13.5px;display:inline-flex}.d-search-btn:hover{border-color:var(--xh-line-3);color:var(--xh-text-2);background:#ffffff0b}.d-search-btn svg{flex:none}.d-search-btn-text{text-align:left;white-space:nowrap;flex:1}.d-kbd{border:1px solid var(--xh-line-2);min-width:22px;height:22px;font-family:var(--xh-mono);color:var(--xh-muted);white-space:nowrap;background:#ffffff08;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;line-height:1;display:inline-flex}.d-search-btn .d-kbd{border-radius:var(--xh-radius-pill);padding:0 8px}.d-page{grid-template-columns:minmax(0, var(--d-measure)) var(--d-toc-w);justify-content:center;gap:clamp(40px,5vw,80px);padding:40px clamp(20px,4vw,56px) 96px;display:grid}.d-article{min-width:0}.d-crumbs ol{font-family:var(--xh-mono);letter-spacing:.01em;color:var(--xh-dim);flex-wrap:wrap;align-items:center;gap:2px;margin:0 0 28px;padding:0;font-size:12px;list-style:none;display:flex}.d-crumbs li+li:before{content:"/";color:#ffffff2e;margin:0 8px 0 6px}.d-crumbs a{color:var(--xh-muted);transition:color .2s}.d-crumbs a:hover{color:var(--xh-text)}.d-crumbs [aria-current]{color:var(--xh-text-2)}.d-prose{letter-spacing:-.003em;color:var(--d-body);overflow-wrap:break-word;font-size:16.5px;line-height:1.72}.d-prose>:first-child{margin-top:0}.d-prose p,.d-prose ul,.d-prose ol,.d-prose blockquote{margin:0 0 1.05em}.d-prose h1,.d-prose h2,.d-prose h3,.d-prose h4{color:var(--xh-text);text-wrap:balance;font-weight:600;position:relative}.d-prose h1{letter-spacing:-.038em;margin:0 0 18px;font-size:clamp(32px,4.2vw,44px);line-height:1.08}.d-prose h1+p{letter-spacing:-.01em;color:var(--xh-text-2);margin-bottom:1.4em;font-size:18.5px;line-height:1.62}.d-prose h2{border-top:1px solid var(--xh-line);letter-spacing:-.028em;margin:56px 0 16px;padding-top:32px;font-size:26px;line-height:1.2}.d-prose h1+h2,.d-prose h1+p+h2{border-top:0;margin-top:36px;padding-top:0}.d-prose h3{letter-spacing:-.018em;margin:36px 0 10px;font-size:19px;line-height:1.3}.d-prose h4{letter-spacing:-.01em;margin:28px 0 8px;font-size:16.5px}.d-prose h2 .status,.d-prose h3 .status{vertical-align:.22em;margin-left:10px}.heading-anchor{font-family:var(--xh-mono);color:var(--xh-dim);opacity:0;margin-left:.4em;font-size:.8em;font-weight:400;transition:opacity .2s,color .2s}.d-prose :is(h2,h3,h4):hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.heading-anchor:hover{color:var(--xh-final)}.d-prose strong{color:var(--xh-text);font-weight:600}.d-prose a:not(.heading-anchor){color:var(--xh-final-strong);text-underline-offset:3.5px;-webkit-text-decoration:underline #4fe3cf52;text-decoration:underline #4fe3cf52;text-decoration-thickness:1px;transition:text-decoration-color .2s,color .2s}.d-prose a:not(.heading-anchor):hover{text-decoration-color:currentColor}.d-prose a[target=_blank]:not(.heading-anchor):after{content:"↗";opacity:.6;margin-left:2px;font-size:.78em;line-height:1;text-decoration:none;display:inline-block}.d-prose ul,.d-prose ol{padding-left:1.3em}.d-prose li{margin:.38em 0;padding-left:.2em}.d-prose li::marker{color:var(--xh-dim)}.d-prose ol>li::marker{font-family:var(--xh-mono);font-size:.86em}.d-prose li>ul,.d-prose li>ol{margin:.3em 0 .2em}.d-prose blockquote{border-left:2px solid var(--xh-line-2);color:var(--xh-muted);padding:2px 0 2px 18px}.d-prose hr{border:0;border-top:1px solid var(--xh-line);margin:48px 0}.d-prose img{border-radius:var(--xh-radius-md)}.d-prose :not(pre)>code{border:1px solid var(--xh-line);font-family:var(--xh-mono);color:#e7eaef;overflow-wrap:anywhere;background:#ffffff0b;border-radius:6px;padding:.14em .42em;font-size:.855em}.d-prose h1 code,.d-prose h2 code,.d-prose h3 code{padding:.04em .3em;font-size:.84em;font-weight:500}.d-prose a :not(pre)>code,.d-prose a>code{color:var(--xh-final-strong);background:#4fe3cf0f;border-color:#4fe3cf2e}.table-wrap{border:1px solid var(--xh-line);scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;background:#ffffff03;border-radius:12px;margin:24px 0 28px;overflow-x:auto}.d-prose table{border-collapse:separate;border-spacing:0;width:100%;font-size:14.5px;line-height:1.55}.d-prose th{border-bottom:1px solid var(--xh-line);font-family:var(--xh-mono);letter-spacing:.05em;text-transform:uppercase;text-align:left;white-space:nowrap;color:var(--xh-muted);background:#ffffff06;padding:11px 16px;font-size:11.5px;font-weight:500}.d-prose td{vertical-align:top;color:var(--d-body);padding:11px 16px}.d-prose tr+tr td{border-top:1px solid var(--xh-line)}.d-prose tbody tr{transition:background-color .15s}.d-prose tbody tr:hover{background:#ffffff05}.d-prose td:first-child{color:var(--xh-text-2)}.d-prose td code{font-size:.86em}.d-prose td:first-child code{overflow-wrap:normal;word-break:normal}.status{border-radius:var(--xh-radius-pill);font-family:var(--xh-mono);letter-spacing:0;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 9px;font-size:11.5px;font-weight:500;line-height:22px;display:inline-flex}.status:before{content:"";border:1.5px solid;border-radius:50%;flex:none;width:6px;height:6px}.status.ok{color:var(--xh-final-strong);background:#4fe3cf14;border-color:#4fe3cf47}.status.ok:before{background:currentColor}.status.next{color:var(--xh-text);background:#ffffff0d;border-color:#ffffff38}.status.planned{color:#ebeef39e;border-color:#ffffff1f}.d-code{border:1px solid var(--xh-line);background:var(--d-code-bg);border-radius:12px;margin:22px 0 26px;overflow:hidden;box-shadow:inset 0 1px #ffffff09}.d-code-head{border-bottom:1px solid var(--xh-line);background:#ffffff04;justify-content:space-between;align-items:center;height:38px;padding:0 6px 0 16px;display:flex}.d-code-lang{font-family:var(--xh-mono);letter-spacing:.04em;color:var(--xh-dim);font-size:11.5px}.d-copy{height:28px;font-family:var(--xh-mono);color:var(--xh-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;transition:color .2s,border-color .2s,background-color .2s;display:inline-flex}.d-copy:hover{color:var(--xh-text);border-color:var(--xh-line-2);background:#ffffff0a}.d-copy[data-copied]{color:var(--xh-final)}.d-code pre{font-family:var(--xh-mono);tab-size:2;scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;margin:0;padding:16px 20px 18px;font-size:13.5px;line-height:1.7;overflow-x:auto;background:var(--d-code-bg)!important}.d-code pre:focus-visible{outline-offset:-2px}.d-code code{font-feature-settings:"liga" 0, "calt" 0;font-family:inherit}.d-code .line{display:inline}.d-callout{--c:var(--xh-text-2);--c-bg:#ffffff06;--c-line:var(--xh-line-2);border:1px solid var(--c-line);background:var(--c-bg);border-radius:12px;margin:26px 0;padding:14px 18px 4px;font-size:15.5px;line-height:1.65}.d-callout[data-type=tip]{--c:var(--xh-final);--c-bg:#4fe3cf0b;--c-line:#4fe3cf38}.d-callout[data-type=warning]{--c:var(--d-amber);--c-bg:#f0b8600b;--c-line:#f0b8603d}.d-callout[data-type=danger]{--c:var(--xh-alert);--c-bg:var(--xh-alert-soft);--c-line:#ff7a664d}.d-callout-head{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:8px;display:flex}.d-callout-icon{color:var(--c);place-items:center;display:inline-grid}.d-callout-kind{font-family:var(--xh-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c);font-size:11px;font-weight:500}.d-callout-title{letter-spacing:-.01em;color:var(--xh-text);font-size:15px;font-weight:600}.d-callout-body{color:var(--d-body)}.d-callout-body>*{margin:0 0 10px!important}.d-callout-body ul{padding-left:1.2em}.d-callout-body li{margin:.3em 0}.d-callout .d-code{margin:10px 0 12px!important}.d-details{border:1px solid var(--xh-line-2);background:#ffffff05;border-radius:12px;margin:22px 0}.d-details summary{color:var(--xh-text);cursor:pointer;align-items:center;gap:8px;padding:12px 16px;font-weight:500;list-style:none;display:flex}.d-details summary::-webkit-details-marker{display:none}.d-details summary svg{color:var(--xh-muted);transition:transform .2s var(--xh-ease)}.d-details[open] summary svg{transform:rotate(90deg)}.d-details-body{padding:0 18px 6px}.d-toc-mobile{border:1px solid var(--xh-line);background:#ffffff04;border-radius:12px;margin:0 0 32px;display:none}.d-toc-mobile summary{font-family:var(--xh-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--xh-muted);cursor:pointer;justify-content:space-between;align-items:center;padding:11px 16px;font-size:12px;list-style:none;display:flex}.d-toc-mobile summary::-webkit-details-marker{display:none}.d-toc-mobile summary svg{transition:transform .2s var(--xh-ease)}.d-toc-mobile[open] summary svg{transform:rotate(180deg)}.d-toc-mobile ul{border-top:1px solid var(--xh-line);margin:0;padding:4px 16px 14px;list-style:none}.d-toc-mobile li a{color:var(--xh-muted);padding:6px 0;font-size:14.5px;display:block}.d-toc-mobile li[data-depth="3"] a{padding-left:14px;font-size:14px}.d-toc-mobile li a:hover{color:var(--xh-text)}.d-article-foot{border-top:1px solid var(--xh-line);margin-top:72px;padding-top:28px}.d-edit{font-family:var(--xh-mono);color:var(--xh-muted);align-items:center;gap:8px;font-size:12.5px;transition:color .2s;display:inline-flex}.d-edit:hover{color:var(--xh-text)}.d-pager{grid-template-columns:1fr 1fr;gap:16px;margin-top:28px;display:grid}.d-pager-link{border:1px solid var(--xh-line);transition:border-color .25s var(--xh-ease), background-color .25s var(--xh-ease), transform .25s var(--xh-ease);background:#ffffff03;border-radius:14px;flex-direction:column;gap:6px;padding:16px 20px 18px;display:flex}.d-pager-link[data-dir=next]{text-align:right;grid-column:2;align-items:flex-end}.d-pager-link:hover{border-color:var(--xh-line-3);background:#ffffff08}.d-pager-label{font-family:var(--xh-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--xh-dim);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.d-pager-title{letter-spacing:-.012em;color:var(--xh-text);font-size:16px;font-weight:500}.d-pager-link:hover .d-pager-label{color:var(--xh-final)}.d-aside-inner{top:calc(var(--xh-header-h) + 40px);max-height:calc(100vh - var(--xh-header-h) - 64px);scrollbar-width:none;padding-bottom:24px;position:sticky;overflow-y:auto}.d-toc-title{font-family:var(--xh-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--xh-dim);margin:0 0 12px;font-size:11.5px;font-weight:500}.d-toc ul{border-left:1px solid var(--xh-line);margin:0;padding:0;list-style:none}.d-toc a{color:var(--xh-muted);transition:color .2s var(--xh-ease), border-color .2s var(--xh-ease);border-left:1px solid #0000;margin-left:-1px;padding:5px 0 5px 14px;font-size:13.5px;line-height:1.4;display:block}.d-toc li[data-depth="3"] a{padding-left:26px;font-size:13px}.d-toc a:hover{color:var(--xh-text-2)}.d-toc a[aria-current]{color:var(--xh-text);border-left-color:var(--xh-final)}.d-aside-links{border-top:1px solid var(--xh-line);flex-direction:column;gap:8px;margin-top:24px;padding-top:18px;display:flex}.d-aside-links a{font-family:var(--xh-mono);color:var(--xh-dim);font-size:12px;transition:color .2s}.d-aside-links a:hover{color:var(--xh-text-2)}.d-footer{border-top:1px solid var(--xh-line);padding:28px clamp(16px,3vw,32px) 0}.d-search{width:min(640px,100% - 24px);max-width:none;max-height:none;color:var(--xh-text);background:0 0;border:0;margin:min(12vh,120px) auto auto;padding:0;overflow:visible}.d-search::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0203069e}.d-search[open] .d-search-panel{animation:d-pop .22s var(--xh-ease)}@keyframes d-pop{0%{opacity:0;transform:translateY(6px)scale(.985)}}.d-search-panel{border:1px solid var(--xh-line-2);background:linear-gradient(#0e1117,#0a0c11);border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 40px 120px -20px #000000e6}.d-search-field{border-bottom:1px solid var(--xh-line);height:58px;color:var(--xh-muted);align-items:center;gap:12px;padding:0 14px 0 18px;display:flex}.d-search-field input{min-width:0;height:100%;font:inherit;letter-spacing:-.01em;color:var(--xh-text);background:0 0;border:0;outline:none;flex:1;font-size:16.5px}.d-search-field input::placeholder{color:var(--xh-dim)}.d-search-field input::-webkit-search-cancel-button{display:none}.d-search-esc{cursor:pointer}.d-search-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;max-height:min(56vh,460px);overflow-y:auto}.d-search-empty{color:var(--xh-muted);text-align:center;margin:0;padding:28px 20px;font-size:14.5px}.d-search-empty b{color:var(--xh-text);font-weight:500}.d-search-empty code{font-family:var(--xh-mono);font-size:.9em}.d-search-list{margin:0;padding:8px;list-style:none}.d-search-list li{cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.d-search-list li[data-kind=heading]{padding-left:30px}.d-search-list li[data-kind=page]:not(:first-child){margin-top:6px}.d-search-list li[aria-selected=true]{background:#ffffff0e}.d-search-hit-title{color:var(--xh-text-2);align-items:baseline;gap:8px;font-size:14.5px;font-weight:500;display:flex}.d-search-list li[data-kind=page] .d-search-hit-title{color:var(--xh-text);font-size:15px}.d-search-list li[aria-selected=true] .d-search-hit-title{color:var(--xh-text)}.d-search-hash{font-family:var(--xh-mono);color:var(--xh-dim)}.d-search-section{font-family:var(--xh-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--xh-dim);white-space:nowrap;margin-left:auto;font-size:11px;font-weight:400}.d-search-excerpt{color:var(--xh-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.d-search-excerpt mark{color:var(--xh-final-strong);background:0 0;font-weight:500}.d-search-foot{border-top:1px solid var(--xh-line);color:var(--xh-dim);align-items:center;gap:18px;padding:10px 16px;font-size:12px;display:flex}.d-search-foot span{align-items:center;gap:4px;display:inline-flex}.d-search-foot .d-kbd{min-width:20px;height:20px;font-size:10.5px}.d-search-by{font-family:var(--xh-mono);margin-left:auto;font-size:11px}.d-404{min-height:calc(100vh - var(--xh-header-h) - 120px);padding:80px var(--xh-gutter);text-align:center;background:radial-gradient(60% 50% at 50% 38%, #4fe3cf0f, transparent 70%), var(--xh-bg);place-items:center;display:grid}.d-404-inner{max-width:560px}.d-404-mark{opacity:.9;width:56px;height:56px;margin:0 auto 28px}.d-404 .xh-label{justify-content:center;margin-bottom:20px}.d-404 h1{letter-spacing:-.05em;margin:0;font-size:clamp(40px,7vw,72px);font-weight:600;line-height:1}.d-404 p{max-width:44ch;color:var(--xh-muted);margin:20px auto 0;font-size:17px;line-height:1.6}.d-404 .xh-ctas{justify-content:center;margin-top:36px}.d-404-links{border-top:1px solid var(--xh-line);font-family:var(--xh-mono);flex-wrap:wrap;justify-content:center;gap:8px 24px;margin:44px 0 0;padding:24px 0 0;font-size:12.5px;list-style:none;display:flex}.d-404-links a{color:var(--xh-muted);transition:color .2s}.d-404-links a:hover{color:var(--xh-text)}@media (max-width:1279px){.d-page{grid-template-columns:minmax(0, var(--d-measure))}.d-aside{display:none}.d-toc-mobile{display:block}}@media (max-width:959px){.d-shell{grid-template-columns:minmax(0,1fr)}.d-sidebar{z-index:45;top:var(--xh-header-h);background:var(--xh-bg-2);border-right:1px solid var(--xh-line-2);visibility:hidden;width:min(320px,86vw);height:auto;transition:transform .38s var(--xh-ease), visibility 0s linear .38s;position:fixed;bottom:0;left:0;transform:translate(-102%);box-shadow:30px 0 80px -20px #000000b3}.d-sidebar[data-open]{visibility:visible;transition:transform .38s var(--xh-ease), visibility 0s;transform:none}.d-sidebar-scroll{padding:24px 20px 48px}.d-backdrop{z-index:44;inset:var(--xh-header-h) 0 0 0;opacity:0;pointer-events:none;transition:opacity .3s var(--xh-ease);background:#02030699;position:fixed}.d-backdrop[data-open]{opacity:1;pointer-events:auto}html.d-drawer-open body{overflow:hidden}.d-page{padding-top:28px}.d-search-btn{width:auto}}@media (min-width:960px){.d-backdrop{display:none}}@media (max-width:640px){.d-search-btn{border-radius:var(--xh-radius-sm);justify-content:center;width:36px;padding:0}.d-search-btn-text,.d-search-btn .d-kbd{display:none}.d-prose{font-size:16px}.d-prose h1+p{font-size:17px}.d-prose h2{margin-top:44px;padding-top:28px;font-size:23px}.d-code pre{padding:14px 16px 16px;font-size:13px}.d-pager{grid-template-columns:1fr}.d-pager-link[data-dir=next]{grid-column:1}.d-search{margin-top:12px}.d-search-foot span:not(.d-search-by){display:none}}@media (prefers-reduced-motion:reduce){.d-search[open] .d-search-panel{animation:none}}
