:root{--sand:#efe7d8;--ok-dot:#3e7a3e;--alarm:#a33a28;--side:268px;--toc:212px;--dpad:20px}@media (width>=1024px){:root{--dpad:44px}}@keyframes dfield{to{background-position:138px 0}}body.docs{background:var(--sand);color:var(--panel)}.dhead{z-index:30;padding:0 var(--dpad);background:var(--gading) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='138' height='138' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23A9552A' stroke-width='2' opacity='.11'%3E%3Cellipse cx='50' cy='25' rx='15' ry='25'/%3E%3Cellipse cx='50' cy='75' rx='15' ry='25'/%3E%3Cellipse cx='25' cy='50' rx='25' ry='15'/%3E%3Cellipse cx='75' cy='50' rx='25' ry='15'/%3E%3C/g%3E%3C/svg%3E") repeat;border-bottom:1px solid var(--border-l);background-size:138px 138px;align-items:center;gap:12px;height:60px;animation:150s linear infinite dfield;display:flex;position:sticky;top:0}.dhead__brand{flex:none;align-items:center;gap:11px;display:flex}.dhead__word{font-family:var(--font-mono);color:var(--panel);font-size:13px}.dhead__jawa{font-family:var(--font-jawa), serif;color:var(--dimmer);font-size:15px;font-weight:600;line-height:1.6}.dhead__nav{align-items:center;gap:4px;margin-left:12px;display:none}.dhead__nav a{height:30px;color:var(--body-l);border-radius:3px;align-items:center;padding:0 11px;font-size:13.5px;transition:background-color .2s;display:flex}.dhead__nav a:hover{background:var(--paper)}.dhead__nav a[aria-current]{background:var(--paper);border:1px solid var(--border-l);color:var(--panel);font-weight:500}.dhead__right{align-items:center;gap:10px;margin-left:auto;display:flex}.dsearch-open{background:var(--paper);border:1px solid var(--border-l);cursor:pointer;border-radius:3px;align-items:center;gap:9px;width:240px;height:32px;padding:0 11px;transition:border-color .2s;display:flex}.dsearch-open:hover{border-color:var(--dimmer)}.dsearch-open span{text-align:left;color:var(--dimmer);flex:1;font-size:13px}kbd{font-family:var(--font-mono);color:var(--dimmer);background:var(--gading);border:1px solid var(--border-l);border-bottom-width:2px;border-radius:2px;padding:1px 5px;font-size:10px}.dpill{background:var(--paper);border:1px solid var(--border-l);height:26px;font-family:var(--font-mono);color:var(--strong-l);white-space:nowrap;border-radius:3px;align-items:center;gap:7px;padding:0 9px;font-size:10.5px;display:flex}.dsep{background:var(--border-l);width:1px;height:20px}.dhead__gh{color:var(--body-l);align-items:center;gap:7px;font-size:13px;display:flex}.dhead__gh:hover{color:var(--panel)}.dburger{background:var(--paper);border:1px solid var(--border-l);width:36px;height:32px;color:var(--body-l);cursor:pointer;border-radius:3px;flex:none;place-items:center;display:grid}@media (width<=1023px){.dsearch-open{justify-content:center;gap:0;width:34px;padding:0}.dsearch-open span,.dsearch-open kbd,.dpill,.dsep,.dhead__gh,.dhead__jawa{display:none}}@media (width<=359px){.dhead__word{display:none}}@media (width>=1024px){.dhead{gap:20px;padding:0 28px}.dhead__nav{display:flex}.dburger{display:none}}.dshell{align-items:flex-start;gap:0;display:flex}.dside{width:var(--side);background:var(--gading);border-right:1px solid var(--border-l);overscroll-behavior:contain;flex-direction:column;flex:none;gap:22px;max-height:calc(100svh - 60px);padding:26px 20px 40px;display:none;position:sticky;top:60px;overflow-y:auto}.dside[data-open]{z-index:25;border-right:0;width:100%;max-height:none;display:flex;position:fixed;inset:60px 0 0}.dgroup{flex-direction:column;gap:6px;display:flex}.dgroup__title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer);font-size:9.5px}.dgroup__list{flex-direction:column;gap:1px;display:flex}.dleaf{--icon-accent:var(--soga);color:var(--strong-l);border-radius:3px;align-items:center;gap:9px;padding:6px 10px;font-size:13.5px;transition:background-color .15s,color .15s;display:flex}.dleaf:hover{background:var(--paper)}.dleaf[aria-current]{--icon-accent:var(--soga-l);background:var(--panel);color:var(--gading);font-weight:500}.dleaf__badge{font-family:var(--font-mono);color:var(--dimmer);margin-left:auto;font-size:10px}.dleaf[aria-current] .dleaf__badge{color:var(--soft)}.dstatus{background:var(--paper);border:1px solid var(--border-l);border-radius:4px;flex-direction:column;gap:8px;margin-top:6px;padding:14px;display:flex}.dstatus__top{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer);align-items:center;gap:8px;font-size:9.5px;display:flex}.dstatus__top i{background:var(--ok-dot);border-radius:50%;width:6px;height:6px;animation:2.8s ease-in-out infinite lbreathe}.dstatus p{color:var(--body-l);text-wrap:pretty;font-size:12px;line-height:1.5}@media (width>=1024px){.dside{display:flex}}.dmain{min-width:0;padding:26px var(--dpad) 56px;background:var(--sand);flex-direction:column;flex:1;display:flex}@media (width>=1024px){.dmain{padding:34px var(--dpad) 72px}}.dcrumb{font-family:var(--font-mono);color:var(--dimmer);flex-wrap:wrap;align-items:center;gap:9px;font-size:11px;display:flex}.dcrumb a:hover,.dcrumb>span:last-child{color:var(--panel)}.dtitle{font-family:var(--font-display);letter-spacing:-.038em;margin:16px 0 0;font-size:clamp(32px,6vw,46px);font-weight:600;line-height:1.02}.dlede{color:var(--body-l);text-wrap:pretty;max-width:660px;margin:14px 0 0;font-size:17px;line-height:1.55}.dchips{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.dchips span{background:var(--paper);border:1px solid var(--border-l);height:26px;font-family:var(--font-mono);color:var(--strong-l);border-radius:3px;align-items:center;padding:0 10px;font-size:11px;display:flex}.prose{min-width:0}.prose>*+*{margin-top:12px}.prose hr{background:var(--border-l);border:0;height:1px;margin:30px 0}.prose h2{font-family:var(--font-display);letter-spacing:-.028em;align-items:center;gap:12px;margin-top:34px;scroll-margin-top:76px;font-size:25px;font-weight:600;display:flex}.prose h3{font-family:var(--font-display);letter-spacing:-.022em;margin-top:26px;scroll-margin-top:76px;font-size:19px;font-weight:600}.prose h4{font-family:var(--font-display);letter-spacing:-.018em;margin-top:22px;scroll-margin-top:76px;font-size:16px;font-weight:600}.prose--numbered{counter-reset:step}.prose--numbered h2:before{counter-increment:step;content:counter(step, decimal-leading-zero);font-family:var(--font-mono);color:var(--soga);flex:none;font-size:12px;font-weight:700}.prose--numbered .stop~h2:before{content:none}.prose .cards{flex-wrap:wrap;gap:14px;margin-top:16px;display:flex}.prose .cards>a{background:var(--paper);border:1px solid var(--border-l);border-bottom:1px solid var(--border-l);color:inherit;border-radius:4px;flex-direction:column;flex:220px;gap:6px;padding:18px;transition:border-color .2s;display:flex}.prose .cards>a:hover{border-color:var(--dim);color:inherit}.prose .cards>a>strong{color:var(--panel);font-size:14.5px;font-weight:600}.prose .cards>a>span{color:var(--body-l);text-wrap:pretty;font-size:13px;line-height:1.5}.prose p,.prose li{color:var(--body-l);text-wrap:pretty;font-size:15px;line-height:1.6}.prose p{max-width:660px}.prose ul,.prose ol{max-width:660px;padding-left:22px}.prose li+li{margin-top:6px}.prose li::marker{color:var(--dimmer)}.prose strong{color:var(--strong-l);font-weight:600}.prose a{color:var(--soga);border-bottom:1px solid #a9552a4d}.prose a:hover{color:var(--wedel);border-bottom-color:#223a5780}.prose :not(pre)>code{font-family:var(--font-mono);color:var(--panel);background:var(--paper);border:1px solid var(--rule-l);border-radius:2px;padding:.05em .32em;font-size:.92em}.prose pre{background:var(--panel);border-radius:4px;margin-top:16px;padding:18px 20px;font-size:13px;line-height:1.75;overflow-x:auto}.prose pre code{font-family:var(--font-mono);font-size:inherit}.prose figure.code{background:var(--panel);border-radius:4px;margin-top:16px;overflow:hidden}.prose figure.code figcaption{border-bottom:1px solid var(--edge);font-family:var(--font-mono);color:var(--dim);align-items:center;gap:10px;padding:9px 14px;font-size:10.5px;display:flex}.prose figure.code figcaption b{letter-spacing:.1em;text-transform:uppercase;margin-left:auto;font-size:10px;font-weight:400}.prose figure.code pre{border-radius:0;margin:0}.prose .callout{background:var(--paper);border:1px solid var(--border-l);border-left:2px solid var(--soga);border-radius:3px;flex-direction:column;gap:5px;max-width:692px;margin-top:14px;padding:14px 16px;display:flex}.prose .callout>strong:first-child{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--soga);font-size:9.5px;font-weight:400}.prose .callout p{color:var(--strong-l);margin:0;font-size:13.5px;line-height:1.55}.prose .callout--alarm{border-left-color:var(--alarm)}.prose .callout--alarm>strong:first-child{color:var(--alarm)}.prose .table-wrap{background:var(--paper);border:1px solid var(--border-l);border-radius:4px;margin-top:16px;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:13.5px}.prose thead th{text-align:left;border-bottom:1px solid var(--rule-l);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer);white-space:nowrap;padding:11px 16px;font-size:10px;font-weight:400}.prose tbody td{border-bottom:1px solid var(--hair);color:var(--strong-l);vertical-align:top;padding:11px 16px}.prose tbody tr:last-child td{border-bottom:0}.prose tbody td code{white-space:nowrap}.prose blockquote{border-left:2px solid var(--border-l);color:var(--dimmer);margin-top:16px;padding-left:14px}.prose .loopstrip{background:var(--paper);border:1px solid var(--border-l);font-family:var(--font-mono);color:var(--panel);border-radius:4px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding:14px 18px;font-size:11.5px;display:flex}.prose .loopstrip i{background:var(--border-l);flex:1;min-width:14px;height:1px}.prose .loopstrip i:last-of-type{background:var(--soga)}.prose .loopstrip span:last-child{color:var(--soga)}.prose .rules{background:var(--paper);border:1px solid var(--border-l);counter-reset:rule;border-radius:4px;flex-direction:column;max-width:692px;margin-top:16px;display:flex;overflow:hidden}.prose .rules>p{border-bottom:1px solid var(--hair);max-width:none;color:var(--strong-l);margin:0;padding:14px 18px 14px 46px;font-size:14px;line-height:1.5;position:relative}.prose .rules>p:last-child{border-bottom:0}.prose .rules>p:before{counter-increment:rule;content:counter(rule);font-family:var(--font-mono);color:var(--soga);font-size:11px;line-height:1.6;position:absolute;top:14px;left:18px}.prose .kv{background:var(--paper);border:1px solid var(--border-l);border-radius:4px;flex-direction:column;max-width:692px;margin-top:16px;display:flex;overflow:hidden}.prose .kv>strong:first-child{border-bottom:1px solid var(--rule-l);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer);padding:11px 15px;font-size:9.5px;font-weight:400}.prose .kv>p{max-width:none;color:var(--strong-l);margin:0;padding:7px 15px 7px 121px;font-size:12.5px;line-height:1.45;position:relative}.prose .kv>p:first-of-type{padding-top:14px}.prose .kv>p:last-child{padding-bottom:14px}.prose .kv>p>code:first-child{width:96px;font-family:var(--font-mono);color:var(--soga);overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-size:11.5px;position:absolute;top:7px;left:15px}.dnext{border-top:1px solid var(--border-l);flex-wrap:wrap;gap:14px;margin-top:30px;padding-top:22px;display:flex}.dnext a{background:var(--paper);border:1px solid var(--border-l);border-radius:4px;flex-direction:column;flex:220px;gap:5px;padding:14px 16px;transition:border-color .2s;display:flex}.dnext a:hover{border-color:var(--dim)}.dnext a.is-next{text-align:right;align-items:flex-end}.dnext span:first-child{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer);font-size:10px}.dnext span:last-child{color:var(--panel);font-size:14.5px;font-weight:500}.dtoc{width:var(--toc);flex-direction:column;flex:none;gap:20px;max-height:calc(100svh - 60px);padding:34px 24px 40px 0;display:none;position:sticky;top:60px;overflow-y:auto}.dtoc__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer);font-size:9.5px}.dtoc__list{flex-direction:column;gap:2px;margin-top:9px;display:flex}.dtoc__list a{border-left:2px solid var(--border-l);color:var(--body-l);padding:4px 0 4px 11px;font-size:13px}.dtoc__list a[aria-current]{border-left-color:var(--soga);color:var(--panel)}.dtoc__block{border-top:1px solid var(--border-l);flex-direction:column;gap:9px;padding-top:18px;display:flex}.dtoc__row{font-family:var(--font-mono);justify-content:space-between;gap:10px;font-size:11px;display:flex}.dtoc__row span:first-child{color:var(--dimmer)}.dtoc__row span:last-child{color:var(--panel)}.dtoc__note{color:var(--dimmer);text-wrap:pretty;margin-top:2px;font-size:11.5px;line-height:1.5}.dtoc__block a{color:var(--body-l);font-size:13px}.dtoc__block a:hover{color:var(--soga)}@media (width>=1280px){.dtoc{display:flex}}.dfoot{padding:26px var(--dpad) 34px;background:var(--gading);border-top:1px solid var(--border-l);flex-wrap:wrap;align-items:center;gap:24px;display:flex}.dfoot__lines{flex-direction:column;gap:3px;display:flex}.dfoot__lines span:first-child{font-family:var(--font-mono);color:var(--panel);font-size:12px}.dfoot__lines span:nth-child(2),.dfoot__lines .credit{color:var(--dimmer);font-size:12.5px}.dfoot__lines .credit a{color:var(--soga);border-bottom:1px solid #a9552a4d}.dfoot__lines .credit a:hover{color:var(--wedel);border-bottom-color:#223a5780}.dfoot__links{color:var(--body-l);flex-wrap:wrap;gap:22px;margin-left:auto;font-size:12.5px;display:flex}.dfoot__links a:hover{color:var(--soga)}@media (width>=1024px){.dfoot{padding:26px 28px 34px}}.dsearch{z-index:60;background:#17131080;border:0;justify-content:center;align-items:flex-start;width:100%;max-width:none;height:100%;max-height:none;padding:88px 16px 16px;display:none;position:fixed;inset:0}.dsearch::backdrop{background:#17131080}.dsearch[open]{display:flex}.dsearch__panel{background:var(--paper);border:1px solid var(--dim);border-radius:4px;flex-direction:column;width:620px;max-width:100%;max-height:calc(100svh - 140px);display:flex;position:relative;overflow:hidden}.dsearch__top{border-bottom:1px solid var(--border-l);flex:none;align-items:center;gap:11px;padding:14px 18px;display:flex}.dsearch__top input{min-width:0;font:inherit;color:var(--panel);background:0 0;border:0;flex:1;font-size:14.5px}.dsearch__top input::placeholder{color:var(--dimmer)}.dsearch__top input:focus{outline:none}.dsearch__results{flex:1;overflow-y:auto}.dsearch__hit{border:0;border-bottom:1px solid var(--hair);text-align:left;cursor:pointer;background:0 0;border-left:2px solid #0000;flex-direction:column;gap:4px;width:100%;padding:13px 18px;display:flex}.dsearch__hit:hover,.dsearch__hit[data-active]{background:var(--gading);border-left-color:var(--soga)}.dsearch__hit strong{color:var(--panel);font-size:13.5px;font-weight:400}.dsearch__hit span{font-family:var(--font-mono);color:var(--dimmer);font-size:10.5px}.dsearch__empty{color:var(--dimmer);padding:22px 18px;font-size:13.5px}.dsearch__foot{background:var(--gading);border-top:1px solid var(--rule-l);flex:none;align-items:center;gap:14px;padding:12px 18px;display:flex}.dsearch__foot span{font-family:var(--font-mono);color:var(--dimmer);font-size:10px}.dsearch__foot .dsep{height:11px}.dsearch__count{margin-left:auto;font-family:var(--font-body)!important;color:var(--body-l)!important;font-size:12px!important}@media (width<=639px){.prose .kv>p{padding:7px 15px}.prose .kv>p>code:first-child{width:auto;margin-bottom:2px;display:block;position:static}}.dcopy{border:1px solid var(--rule);height:24px;font-family:var(--font-mono);color:var(--soft);cursor:pointer;opacity:0;background:#171310db;border-radius:3px;padding:0 9px;font-size:10.5px;transition:opacity .15s;position:absolute;top:8px;right:8px}figure.code .dcopy{top:7px}pre:hover>.dcopy,figure.code:hover .dcopy,.dcopy:focus-visible{opacity:1}.pkgtabs{margin-top:16px}.pkgtabs__bar{gap:4px;margin-bottom:8px;display:flex}.pkgtabs__bar button{height:26px;color:var(--dimmer);border:1px solid var(--border-l);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:3px;padding:0 12px;font-size:11.5px}.pkgtabs__bar button[data-active]{background:var(--panel);border-color:var(--panel);color:var(--gading)}.pkgtabs>[data-pkg]{margin-top:0}
