:root{--color-bg:#fcfcfc;--color-text:#222222;--color-link:#0000ee;--color-accent:#3498db;--color-h1:#1a1a1a;--color-h2:#2c3e50;--color-h3:#34495e;--color-h4:#546e7a;--color-h5:#607d8b;--color-h6:#78909c;--color-mark:var(--color-accent);--dark-color-bg:#001f2c;--dark-color-text:#cad6e2;--dark-color-link:#6b9eff;--dark-color-accent:#5dade2;--dark-color-h1:#e8f4f8;--dark-color-h2:#b3d9f2;--dark-color-h3:#8ec5e8;--dark-color-h4:#6db1de;--dark-color-h5:#5a9dd1;--dark-color-h6:#4a89c4;--dark-color-mark:var(--dark-color-accent);--font-body:'Verdana', 'Arial';--font-header:'Verdana', 'Arial';--font-code:'Menlo', 'Consolas', 'Monospace';--spacing-xxs:0.125rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:2.5rem;--page-width:768px;--line-height:1.5}@media(prefers-color-scheme:dark){:root{--color-bg:var(--dark-color-bg);--color-text:var(--dark-color-text);--color-link:var(--dark-color-link);--color-accent:var(--dark-color-accent);--color-h1:var(--dark-color-h1);--color-h2:var(--dark-color-h2);--color-h3:var(--dark-color-h3);--color-h4:var(--dark-color-h4);--color-h5:var(--dark-color-h5);--color-h6:var(--dark-color-h6);--color-mark:var(--dark-color-mark)}}@media(prefers-color-scheme:light){.bg{color:#586e75;background-color:#eee8d5}.chroma{color:#586e75;background-color:#eee8d5}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#d6d0bf}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#859900}.chroma .kc{color:#859900;font-weight:700}.chroma .kd{color:#859900}.chroma .kn{color:#dc322f;font-weight:700}.chroma .kp{color:#859900}.chroma .kr{color:#859900}.chroma .kt{color:#859900;font-weight:700}.chroma .n{color:#268bd2}.chroma .na{color:#268bd2}.chroma .nc{color:#cb4b16}.chroma .no{color:#268bd2}.chroma .nd{color:#268bd2}.chroma .ni{color:#268bd2}.chroma .ne{color:#268bd2}.chroma .nl{color:#268bd2}.chroma .nn{color:#268bd2}.chroma .nx{color:#268bd2}.chroma .py{color:#268bd2}.chroma .nt{color:#268bd2;font-weight:700}.chroma .nb{color:#cb4b16}.chroma .bp{color:#cb4b16}.chroma .nv{color:#268bd2}.chroma .vc{color:#268bd2}.chroma .vg{color:#268bd2}.chroma .vi{color:#268bd2}.chroma .vm{color:#268bd2}.chroma .nf{color:#268bd2}.chroma .fm{color:#268bd2}.chroma .l{color:#2aa198}.chroma .ld{color:#2aa198}.chroma .s{color:#2aa198}.chroma .sa{color:#2aa198}.chroma .sb{color:#2aa198}.chroma .sc{color:#2aa198}.chroma .dl{color:#2aa198}.chroma .sd{color:#2aa198}.chroma .s2{color:#2aa198}.chroma .se{color:#2aa198}.chroma .sh{color:#2aa198}.chroma .si{color:#2aa198}.chroma .sx{color:#2aa198}.chroma .sr{color:#2aa198}.chroma .s1{color:#2aa198}.chroma .ss{color:#2aa198}.chroma .m{color:#2aa198;font-weight:700}.chroma .mb{color:#2aa198;font-weight:700}.chroma .mf{color:#2aa198;font-weight:700}.chroma .mh{color:#2aa198;font-weight:700}.chroma .mi{color:#2aa198;font-weight:700}.chroma .il{color:#2aa198;font-weight:700}.chroma .mo{color:#2aa198;font-weight:700}.chroma .ow{color:#859900}.chroma .c{color:#93a1a1;font-style:italic}.chroma .ch{color:#93a1a1;font-style:italic}.chroma .cm{color:#93a1a1;font-style:italic}.chroma .c1{color:#93a1a1;font-style:italic}.chroma .cs{color:#93a1a1;font-style:italic}.chroma .cp{color:#93a1a1;font-style:italic}.chroma .cpf{color:#93a1a1;font-style:italic}.chroma .g{color:#d33682}.chroma .gd{color:#d33682}.chroma .ge{color:#d33682}.chroma .gr{color:#d33682}.chroma .gh{color:#d33682}.chroma .gi{color:#d33682}.chroma .go{color:#d33682}.chroma .gp{color:#d33682}.chroma .gs{color:#d33682}.chroma .gu{color:#d33682}.chroma .gt{color:#d33682}.chroma .gl{color:#d33682}}@media(prefers-color-scheme:dark){.bg{color:#8a8a8a;background-color:#1c1c1c}.chroma{color:#8a8a8a;background-color:#1c1c1c}.chroma .x{color:#d75f00}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#323232}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#454545}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#454545}.chroma .line{display:flex}.chroma .k{color:#5f8700}.chroma .kc{color:#d75f00}.chroma .kd{color:#0087ff}.chroma .kn{color:#d75f00}.chroma .kp{color:#5f8700}.chroma .kr{color:#0087ff}.chroma .kt{color:#af0000}.chroma .nc{color:#0087ff}.chroma .no{color:#d75f00}.chroma .nd{color:#0087ff}.chroma .ni{color:#d75f00}.chroma .ne{color:#af8700}.chroma .nt{color:#0087ff}.chroma .nb{color:#0087ff}.chroma .bp{color:#0087ff}.chroma .nv{color:#0087ff}.chroma .vc{color:#0087ff}.chroma .vg{color:#0087ff}.chroma .vi{color:#0087ff}.chroma .vm{color:#0087ff}.chroma .nf{color:#0087ff}.chroma .fm{color:#0087ff}.chroma .s{color:#00afaf}.chroma .sa{color:#00afaf}.chroma .sb{color:#4e4e4e}.chroma .sc{color:#00afaf}.chroma .dl{color:#00afaf}.chroma .sd{color:#00afaf}.chroma .s2{color:#00afaf}.chroma .se{color:#af0000}.chroma .sh{color:#00afaf}.chroma .si{color:#00afaf}.chroma .sx{color:#00afaf}.chroma .sr{color:#af0000}.chroma .s1{color:#00afaf}.chroma .ss{color:#00afaf}.chroma .m{color:#00afaf}.chroma .mb{color:#00afaf}.chroma .mf{color:#00afaf}.chroma .mh{color:#00afaf}.chroma .mi{color:#00afaf}.chroma .il{color:#00afaf}.chroma .mo{color:#00afaf}.chroma .ow{color:#5f8700}.chroma .c{color:#4e4e4e}.chroma .ch{color:#4e4e4e}.chroma .cm{color:#4e4e4e}.chroma .c1{color:#4e4e4e}.chroma .cs{color:#5f8700}.chroma .cp{color:#5f8700}.chroma .cpf{color:#5f8700}.chroma .gd{color:#af0000}.chroma .ge{font-style:italic}.chroma .gr{color:#af0000;font-weight:700}.chroma .gh{color:#d75f00}.chroma .gi{color:#5f8700}.chroma .gs{font-weight:700}.chroma .gu{color:#0087ff}}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);line-height:var(--line-height);margin:0 auto;padding:0 var(--spacing-md);max-width:var(--page-width)}ul.fr-menu,ul.fr-terms,.fr-posts .pagination ul{display:flex;flex-direction:row;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--spacing-md)}.page-meta{margin-top:var(--spacing-xs)}header{margin:var(--spacing-md)0 var(--spacing-lg)}footer{margin:var(--spacing-md)0}a{color:var(--color-link);text-decoration:none;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}a:hover{text-decoration:underline}.external-link-indicator{font-size:.85em;margin-left:.3em;display:inline-block;line-height:1}h1,h2,h3,h4,h5,h6{font-family:var(--font-header);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}h1{font-size:2em;font-weight:700;line-height:1.2;color:var(--color-h1)}h2{font-size:1.741em;font-weight:700;line-height:1.25;color:var(--color-h2)}h3{font-size:1.516em;font-weight:600;line-height:1.3;color:var(--color-h3)}h4{font-size:1.32em;font-weight:600;line-height:1.35;color:var(--color-h4)}h5{font-size:1.149em;font-weight:600;line-height:1.4;color:var(--color-h5)}h6{font-size:1em;font-weight:600;line-height:1.4;color:var(--color-h6)}:is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6){margin-top:var(--spacing-sm)}.heading-anchor{color:color-mix(in srgb,var(--color-text) 40%,transparent);text-decoration:none;opacity:0;transition:opacity .2s ease;margin-left:var(--spacing-sm);display:inline-flex;align-items:center;vertical-align:baseline}.heading-anchor .icon{width:.7em;height:.7em}:is(h1,h2,h3,h4,h5,h6):hover .heading-anchor{opacity:1}pre code{padding:0}code{font-family:var(--font-code);text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%}div.highlight pre code{display:block;padding:var(--spacing-md)}p{margin:var(--spacing-sm)0}mark{background-color:var(--color-text);color:var(--color-bg);padding:0 var(--spacing-sm)}dl{margin:var(--spacing-sm)0}dt{font-weight:600;margin-top:var(--spacing-sm)}.dt-anchor{color:color-mix(in srgb,var(--color-text) 40%,transparent);text-decoration:none;font-size:.85em;opacity:0;transition:opacity .2s ease;font-weight:400;margin-left:var(--spacing-sm)}dt:hover .dt-anchor{opacity:1}dd{margin-left:var(--spacing-lg)}ol,ul{margin:var(--spacing-sm)0;padding-left:var(--spacing-xl)}ol ol,ul ul,ol ul,ul ol{margin:var(--spacing-xxs)0}div.footnotes hr{display:none}div.footnotes{border-top:1px solid var(--color-text);border-bottom:1px solid var(--color-text);margin:var(--spacing-lg)0}blockquote{border-left:4px solid var(--color-accent);background-color:color-mix(in srgb,var(--color-accent) 10%,transparent);margin:var(--spacing-md)0;padding:var(--spacing-xxs)var(--spacing-md)}figure img{max-width:100%;height:auto}figure figcaption{display:flex;color:color-mix(in srgb,var(--color-text) 75%,transparent)}figcaption.caption.left{text-align:left;justify-content:flex-start}figcaption.caption.center{text-align:center;justify-content:center}figcaption.caption.right{text-align:right;justify-content:flex-end}figure:has(>table){width:fit-content;margin:var(--spacing-md)0;max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:auto}figure:has(>table) figcaption{padding:var(--spacing-xs)0;color:color-mix(in srgb,var(--color-text) 75%,transparent);font-size:.9em;text-align:left;font-style:italic}figure:has(>table) figcaption.caption.left{text-align:left}figure:has(>table) figcaption.caption.center{text-align:center}figure:has(>table) figcaption.caption.right{text-align:right}table thead th,table tbody th{background-color:color-mix(in srgb,var(--color-accent) 15%,transparent);border:1px solid var(--color-text);padding:var(--spacing-xs)var(--spacing-sm);text-align:left}table tbody td{border:1px solid var(--color-text);padding:var(--spacing-xs)var(--spacing-sm)}figure:has(>table:first-child),figure:has(>img:first-child){margin:var(--spacing-md)0}ul:has(input[type=checkbox]){padding-left:0}ul li:has(input[type=checkbox]){list-style:none;padding-left:0}ul li input[type=checkbox]{appearance:none;-webkit-appearance:none;width:1em;height:1em;border:1px solid var(--color-text);background-color:var(--color-bg);display:inline-block;position:relative;vertical-align:middle;pointer-events:none;cursor:default;user-select:none}ul li input[type=checkbox]:checked{background-color:var(--color-text)}ul li input[type=checkbox]:checked::after{content:'\2713\FE0E';font-weight:400;color:var(--color-bg);position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);line-height:1}hr{border:none;border-top:1px solid var(--color-text);margin:var(--spacing-md)0}.codeblock{position:relative;margin:var(--spacing-md)0}.codeblock-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs)var(--spacing-sm);border:1px solid var(--color-text)}.codeblock-lang{font-family:var(--font-code);font-size:.875em}.copy-button{cursor:pointer;display:flex;align-items:center}.copy-button-floating{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);z-index:10;padding:var(--spacing-xs)}.copy-button:hover .copy-icon{opacity:.6}.copied-text{font-family:var(--font-code);font-size:.875em}.codeblock .highlight{margin:0;border:1px solid var(--color-text);border-top:none}.codeblock-no-header .highlight{border-top:1px solid var(--color-text)}.codeblock .highlight pre{margin:0;overflow-x:auto}.codeblock-no-header>pre{margin:0;border:1px solid var(--color-text);overflow-x:auto}.codeblock .lntd:first-child{border-right:1px solid var(--color-text)}.codeblock .lntd:first-child code{padding-right:var(--spacing-sm);padding-left:var(--spacing-sm)}.codeblock .lntd:first-child code span{margin-right:0}pre:not(.codeblock pre){overflow-x:auto}.fr-alert{margin:var(--spacing-md)0}.fr-alert-header{display:flex;align-items:center;gap:var(--spacing-sm);border:1px solid var(--color-text);font-weight:600;padding:var(--spacing-xs)var(--spacing-sm)}.fr-alert-header .icon{width:1rem;height:1rem;fill:currentColor}.fr-alert-title{flex:1}.fr-alert-content{border:1px solid var(--color-text);border-top:none;padding:var(--spacing-md)}.fr-alert-content>*:first-child{margin-top:0}.fr-alert-content>*:last-child{margin-bottom:0}.badge{display:inline-flex;vertical-align:middle;font-size:.875rem;border:1px solid var(--color-text);line-height:1.4;margin:.25em}.badge-title{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xxs)var(--spacing-sm);font-weight:600;border-right:1px solid var(--color-text);color:var(--color-bg);background-color:var(--color-text)}.badge-content{padding:var(--spacing-xxs)var(--spacing-sm)}.fr-breadcrumb{margin:var(--spacing-sm)0}.fr-breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;gap:var(--spacing-xs)}.fr-breadcrumb .separator{color:color-mix(in srgb,var(--color-text) 75%,transparent)}.fr-breadcrumb li[aria-current=page]{color:color-mix(in srgb,var(--color-text) 75%,transparent)}.fr-cover-image{position:relative;width:100%;margin:var(--spacing-md)0}.fr-cover-image .image-figure{margin:0}.fr-cover-image .image-figure img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center}.fr-cover-image figcaption{font-size:.9em;font-style:italic}.fr-expand{margin:var(--spacing-md)0}.fr-expand-summary{background-color:color-mix(in srgb,var(--color-accent) 15%,transparent);border:1px solid var(--color-text);cursor:pointer;font-weight:600;padding:var(--spacing-xs)var(--spacing-sm);user-select:none;list-style:none}.fr-expand-summary::-webkit-details-marker,.fr-expand-summary::marker{display:none;content:none}.fr-expand-summary::-webkit-details-marker{display:none !important}.fr-expand-summary::before{content:'\25B6\FE0E';display:inline-block;margin-right:var(--spacing-sm);transition:transform .2s}.fr-expand[open] .fr-expand-summary::before{transform:rotate(90deg)}.fr-expand-summary:hover{background-color:color-mix(in srgb,var(--color-accent) 25%,transparent)}.fr-expand-content{border:1px solid var(--color-text);border-top:none;padding:var(--spacing-md)}.fr-expand-content>*:first-child{margin-top:0}.fr-expand-content>*:last-child{margin-bottom:0}.fr-expand-content nav#TableOfContents ul{margin:0}.fr-expand-content nav#TableOfContents ul ul{padding-left:var(--spacing-md)}.icon{display:inline-block;width:1rem;height:1rem;vertical-align:-.125rem}.fr-meta{display:inline-block}.fr-posts ul{list-style:none;margin:0;padding:0}.fr-posts .pagination-item-current{font-weight:700;text-decoration:underline;color:var(--color-link)}.fr-posts .pagination-prev span,.fr-posts .pagination-next span{opacity:.5}.fr-posts-simple .link{display:flex;align-items:center;padding:var(--spacing-xxs)var(--spacing-sm);margin:0 calc(-1 * var(--spacing-sm));transition:background-color .3s ease;gap:var(--spacing-sm)}.fr-posts-simple .date{color:var(--color-text);white-space:nowrap}.fr-posts-simple .dots{flex-grow:1;border-bottom:1px dotted var(--color-text)}.fr-posts-simple .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-posts-simple .link:hover{background-color:color-mix(in srgb,var(--color-text) 8%,transparent);text-decoration:none}.fr-posts-simple .link:hover .title{text-decoration:underline}.fr-posts-simple .list{margin:var(--spacing-sm)0}.fr-posts-card{margin:var(--spacing-sm)0}.fr-posts-card .list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--spacing-md)}.fr-posts-card .list>li{display:flex}.fr-posts-card .card{border:1px solid color-mix(in srgb,var(--color-text) 50%,transparent);padding:var(--spacing-md);display:block;width:100%;color:inherit;text-decoration:none;transition:background-color .3s ease}.fr-posts-card .card:hover{background-color:color-mix(in srgb,var(--color-text) 8%,transparent);text-decoration:none}.fr-posts-card .card-title{margin-top:0;margin-bottom:var(--spacing-xs);color:var(--color-link)}.fr-posts-card .card-date{display:block;font-size:.875em;color:color-mix(in srgb,var(--color-text) 70%,transparent);margin-bottom:var(--spacing-sm)}.fr-posts-card .card-summary{margin:0;line-height:1.6}.fr-kind-term ul.fr-terms,.fr-kind-taxonomy ul.fr-terms{margin:0 0 var(--spacing-lg)}.fr-terms .active{font-weight:700;text-decoration:underline}h1.fr-site-title{margin:calc(var(--spacing-lg) + var(--spacing-md))0 0;font-size:2.03rem}h1.fr-page-title{margin:0}h1.fr-site-title a,h1.fr-page-title a{color:inherit;text-decoration:none}.fr-align{display:flex}.fr-align-left{justify-content:flex-start}.fr-align-center{justify-content:center}.fr-align-right{justify-content:flex-end}.fr-align>*{max-width:100%}.fr-full>*{width:100%}.fr-full table{width:100%}.fr-spacing{display:block}.fr-spacing-vertical.fr-spacing-xxs{height:var(--spacing-xxs)}.fr-spacing-vertical.fr-spacing-xs{height:var(--spacing-xs)}.fr-spacing-vertical.fr-spacing-sm{height:var(--spacing-sm)}.fr-spacing-vertical.fr-spacing-md{height:var(--spacing-md)}.fr-spacing-vertical.fr-spacing-lg{height:var(--spacing-lg)}.fr-spacing-vertical.fr-spacing-xl{height:var(--spacing-xl)}.fr-spacing-vertical.fr-spacing-xxl{height:var(--spacing-xxl)}.fr-spacing-horizontal{display:inline-block}.fr-spacing-horizontal.fr-spacing-xxs{width:var(--spacing-xxs)}.fr-spacing-horizontal.fr-spacing-xs{width:var(--spacing-xs)}.fr-spacing-horizontal.fr-spacing-sm{width:var(--spacing-sm)}.fr-spacing-horizontal.fr-spacing-md{width:var(--spacing-md)}.fr-spacing-horizontal.fr-spacing-lg{width:var(--spacing-lg)}.fr-spacing-horizontal.fr-spacing-xl{width:var(--spacing-xl)}.fr-spacing-horizontal.fr-spacing-xxl{width:var(--spacing-xxl)}.fr-spacing-both.fr-spacing-xxs{width:var(--spacing-xxs);height:var(--spacing-xxs)}.fr-spacing-both.fr-spacing-xs{width:var(--spacing-xs);height:var(--spacing-xs)}.fr-spacing-both.fr-spacing-sm{width:var(--spacing-sm);height:var(--spacing-sm)}.fr-spacing-both.fr-spacing-md{width:var(--spacing-md);height:var(--spacing-md)}.fr-spacing-both.fr-spacing-lg{width:var(--spacing-lg);height:var(--spacing-lg)}.fr-spacing-both.fr-spacing-xl{width:var(--spacing-xl);height:var(--spacing-xl)}.fr-spacing-both.fr-spacing-xxl{width:var(--spacing-xxl);height:var(--spacing-xxl)}.fr-wide{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}.fr-wide figure{width:100%;max-width:100%}.fr-wide table{width:100%}