:root{--s5-font:"Atkinson Hyperlegible Next", Helvetica, Arial, sans-serif;--s5-mono:ui-monospace, Menlo, monospace;--s5-w-body:400;--s5-w-bold:700;--s5-w-thin:200;--s5-fs-body:16px;--s5-fw-body:var(--s5-w-body);--s5-lh-body:1.55;--s5-fs-caption:13px;--s5-fw-caption:var(--s5-w-thin);--s5-fs-card-count:13px;--s5-fw-card-count:var(--s5-w-thin);--s5-fs-card-title:22px;--s5-fw-card-title:var(--s5-w-bold);--s5-fs-chip:11px;--s5-fw-chip:var(--s5-w-bold);--s5-lh-chip:1.6;--s5-fs-chip-lg:12px;--s5-fw-chip-lg:var(--s5-w-bold);--s5-lh-chip-lg:1.6;--s5-fs-code:13px;--s5-fw-code:var(--s5-w-body);--s5-lh-code:1.5;--s5-fs-cv-contact:14px;--s5-fw-cv-contact:var(--s5-w-thin);--s5-fs-facts-label:14px;--s5-fw-facts-label:var(--s5-w-bold);--s5-fs-footer:13px;--s5-fw-footer:var(--s5-w-thin);--s5-fs-h1:34px;--s5-fw-h1:var(--s5-w-bold);--s5-lh-h1:1.15;--s5-fs-h1-home:30px;--s5-fw-h1-home:var(--s5-w-bold);--s5-lh-h1-home:1.2;--s5-fs-h2:26px;--s5-fw-h2:var(--s5-w-bold);--s5-lh-h2:1.2;--s5-fs-h3:20px;--s5-fw-h3:var(--s5-w-bold);--s5-lh-h3:1.25;--s5-fs-h3-about:24px;--s5-fw-h3-about:var(--s5-w-bold);--s5-lh-h3-about:1.2;--s5-fs-lane-title:20px;--s5-fw-lane-title:var(--s5-w-bold);--s5-fs-list-title:20px;--s5-fw-list-title:var(--s5-w-bold);--s5-lh-list-title:1.25;--s5-fs-meta:13px;--s5-fw-meta:var(--s5-w-thin);--s5-fs-nav:15px;--s5-fw-nav:var(--s5-w-thin);--s5-fs-nav-label:12px;--s5-fw-nav-label:var(--s5-w-thin);--s5-fs-nav-title:15px;--s5-fw-nav-title:var(--s5-w-bold);--s5-fs-node-pre:13px;--s5-fw-node-pre:var(--s5-w-thin);--s5-fs-node-title:16px;--s5-fw-node-title:var(--s5-w-bold);--s5-fs-not-found:120px;--s5-fw-not-found:var(--s5-w-thin);--s5-lh-not-found:1;--s5-fs-not-found-msg:22px;--s5-fw-not-found-msg:var(--s5-w-bold);--s5-fs-ref:15px;--s5-fw-ref:var(--s5-w-body);--s5-fs-ref-count:13px;--s5-fw-ref-count:var(--s5-w-thin);--s5-fs-result-title:18px;--s5-fw-result-title:var(--s5-w-bold);--s5-lh-result-title:1.25;--s5-fs-search-input:20px;--s5-fw-search-input:var(--s5-w-thin);--s5-fs-small:15px;--s5-fw-small:var(--s5-w-body);--s5-fs-stack:14px;--s5-fw-stack:var(--s5-w-thin);--s5-fs-tagline:14px;--s5-fw-tagline:var(--s5-w-thin);--s5-fs-toc:14px;--s5-fw-toc:var(--s5-w-thin);--s5-fs-toc-label:14px;--s5-fw-toc-label:var(--s5-w-bold);--s5-fs-wordmark:40px;--s5-fw-wordmark:var(--s5-w-thin);--s5-lh-wordmark:1.1;--s5-fs-year-title:22px;--s5-fw-year-title:var(--s5-w-bold);--s5-blue:#6CE0F1;--s5-accent-1:#6CE0F1;--s5-red:#FB4485;--s5-accent-2:#FB4485;--s5-orange:#FDA333;--s5-accent-3:#FDA333;--s5-green:#C2E15F;--s5-accent-4:#C2E15F;--s5-purple:#D3A4F9;--s5-accent-5:#D3A4F9;--s5-mint:#6FE7C8;--s5-accent-6:#6FE7C8;--s5-pink:#F9A4D3;--s5-accent-7:#F9A4D3;--s5-gold:#FFD166;--s5-accent-8:#FFD166;--s5-peri:#A9B4F9;--s5-accent-9:#A9B4F9;--s5-branch:var(--s5-peri);--s5-head:var(--s5-mint);--s5-highlight:var(--s5-gold);--s5-quote:var(--s5-green);--s5-tag:var(--s5-blue);--s5-toc:var(--s5-peri);--s5-chip-ink:#3A3A3A;--s5-r-box:4px;--s5-r-chip:3px;--s5-r-mark:2px;--s5-banner-pad-bottom:36px;--s5-banner-pad-top:44px;--s5-content-max:720px;--s5-dot-bullet:5px;--s5-dot-major:12px;--s5-dot-minor:7px;--s5-gutter:24px;--s5-main-bottom:64px;--s5-main-top:36px;--s5-nav-gap:22px;--s5-node-indent:16px;--s5-post-gap:30px;--s5-rail-gutter:30px;--s5-rail-width:2px;--s5-rail-x:5px;--s5-underline-offset:3px;--s5-banner:#4D4D4D;--s5-banner-ink:#FFFFFF;--s5-bg:#FFFFFF;--s5-entry:#F5F5F5;--s5-faint:#999999;--s5-muted:#767676;--s5-rule:#E3E3E3;--s5-text:#4D4D4D;color-scheme:light}:root[data-theme=dark]{--s5-banner:#3B3B42;--s5-banner-ink:#FFFFFF;--s5-bg:#2E2E33;--s5-entry:#39393F;--s5-faint:#7E7E86;--s5-muted:#AAAAB1;--s5-rule:#45454C;--s5-text:#E6E6E8;color-scheme:dark}@media(prefers-color-scheme:dark){:root[data-theme=auto],:root:not([data-theme]){--s5-banner:#3B3B42;--s5-banner-ink:#FFFFFF;--s5-bg:#2E2E33;--s5-entry:#39393F;--s5-faint:#7E7E86;--s5-muted:#AAAAB1;--s5-rule:#45454C;--s5-text:#E6E6E8;color-scheme:dark}}@font-face{font-family:atkinson hyperlegible next;src:url(/fonts/AtkinsonHyperlegibleNext[wght].woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:atkinson hyperlegible next;src:url(/fonts/AtkinsonHyperlegibleNext-Italic[wght].woff2)format("woff2");font-weight:200 800;font-style:italic;font-display:swap}html{font-family:var(--s5-font)}body{font-family:var(--s5-font);font-size:var(--s5-fs-body);line-height:var(--s5-lh-body);color:var(--s5-text);background:var(--s5-bg)}a{color:inherit;text-decoration:underline;text-decoration-color:var(--s5-faint);text-underline-offset:var(--s5-underline-offset)}a:hover{text-decoration-color:initial}h1,h2,h3,h4,h5,h6{color:var(--s5-text);font-weight:var(--s5-w-bold);line-height:var(--s5-lh-h2)}h1{font-size:var(--s5-fs-h1);line-height:var(--s5-lh-h1)}h2{font-size:var(--s5-fs-h2);line-height:var(--s5-lh-h2)}h3{font-size:var(--s5-fs-h3);line-height:var(--s5-lh-h3)}mark,.s5-mark{background:var(--s5-highlight);color:var(--s5-chip-ink);padding:0 3px;border-radius:var(--s5-r-mark)}pre,code{border-radius:var(--s5-r-box)}pre{font-family:var(--s5-mono);font-size:var(--s5-fs-code);line-height:var(--s5-lh-code)}.s5-thin{font-weight:var(--s5-w-thin)}.s5-bold{font-weight:var(--s5-w-bold)}.s5-muted{color:var(--s5-muted)}.s5-meta{font-size:var(--s5-fs-meta);font-weight:var(--s5-fw-meta);color:var(--s5-muted)}.s5-caption{font-size:var(--s5-fs-caption);font-weight:var(--s5-fw-caption);color:var(--s5-muted)}.s5-cycle>:nth-child(9n+1){--s5-accent:var(--s5-accent-1)}.s5-cycle>:nth-child(9n+2){--s5-accent:var(--s5-accent-2)}.s5-cycle>:nth-child(9n+3){--s5-accent:var(--s5-accent-3)}.s5-cycle>:nth-child(9n+4){--s5-accent:var(--s5-accent-4)}.s5-cycle>:nth-child(9n+5){--s5-accent:var(--s5-accent-5)}.s5-cycle>:nth-child(9n+6){--s5-accent:var(--s5-accent-6)}.s5-cycle>:nth-child(9n+7){--s5-accent:var(--s5-accent-7)}.s5-cycle>:nth-child(9n+8){--s5-accent:var(--s5-accent-8)}.s5-cycle>:nth-child(9n+9){--s5-accent:var(--s5-accent-9)}.s5-cycle>.s5-accent-blue,.s5-accent-blue{--s5-accent:var(--s5-blue)}.s5-cycle>.s5-accent-red,.s5-accent-red{--s5-accent:var(--s5-red)}.s5-cycle>.s5-accent-orange,.s5-accent-orange{--s5-accent:var(--s5-orange)}.s5-cycle>.s5-accent-green,.s5-accent-green{--s5-accent:var(--s5-green)}.s5-cycle>.s5-accent-purple,.s5-accent-purple{--s5-accent:var(--s5-purple)}.s5-cycle>.s5-accent-mint,.s5-accent-mint{--s5-accent:var(--s5-mint)}.s5-cycle>.s5-accent-pink,.s5-accent-pink{--s5-accent:var(--s5-pink)}.s5-cycle>.s5-accent-gold,.s5-accent-gold{--s5-accent:var(--s5-gold)}.s5-cycle>.s5-accent-peri,.s5-accent-peri{--s5-accent:var(--s5-peri)}.s5-banner{background:var(--s5-banner);color:var(--s5-banner-ink);text-align:center;padding:var(--s5-banner-pad-top)var(--s5-gutter)var(--s5-banner-pad-bottom)}.s5-wordmark{font-size:var(--s5-fs-wordmark);font-weight:var(--s5-fw-wordmark);line-height:var(--s5-lh-wordmark);color:var(--s5-banner-ink)}.s5-wordmark a{color:inherit;text-decoration:none}.s5-wordmark strong{font-weight:var(--s5-w-bold)}.s5-tagline{font-size:var(--s5-fs-tagline);font-weight:var(--s5-fw-tagline);color:var(--s5-banner-ink);margin-top:10px}.s5-nav{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px var(--s5-nav-gap);padding:18px var(--s5-gutter)0;font-size:var(--s5-fs-nav);font-weight:var(--s5-fw-nav);color:var(--s5-text)}.s5-nav ul{display:contents;list-style:none;margin:0;padding:0}.s5-nav a{text-decoration:none}.s5-nav a:hover,.s5-nav .s5-active{text-decoration:underline;text-decoration-color:initial}.s5-toggle{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--s5-text);background:linear-gradient(90deg,var(--s5-text) 50%,transparent 50%);padding:0;cursor:pointer}.s5-chip{display:inline-block;font-family:var(--s5-font);font-size:var(--s5-fs-chip);font-weight:var(--s5-fw-chip);line-height:var(--s5-lh-chip);color:var(--s5-chip-ink);background:var(--s5-accent,var(--s5-tag));padding:1px 6px;border-radius:var(--s5-r-chip);text-decoration:none;vertical-align:middle;white-space:nowrap}.s5-chip--head{background:var(--s5-head)}.s5-chip--branch{background:var(--s5-branch)}.s5-chip--tag{background:var(--s5-tag)}.s5-chip--lg{font-size:var(--s5-fs-chip-lg);padding:2px 8px}a.s5-chip:hover{filter:brightness(.95)}.s5-chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.s5-chips--lg{gap:8px}.s5-rail{position:relative;list-style:none;margin:0;padding:0 0 0 var(--s5-rail-gutter)}.s5-rail::before{content:"";position:absolute;left:var(--s5-rail-x);top:6px;bottom:6px;width:var(--s5-rail-width);background:var(--s5-rule)}.s5-rail-entry{position:relative;padding-bottom:var(--s5-post-gap)}.s5-rail-entry:last-child{padding-bottom:0}.s5-rail-entry::before{content:"";position:absolute;left:calc(-1 * var(--s5-rail-gutter));top:8px;width:var(--s5-dot-major);height:var(--s5-dot-major);border-radius:50%;background:var(--s5-accent)}.s5-rail-title{font-size:var(--s5-fs-list-title);font-weight:var(--s5-fw-list-title);line-height:var(--s5-lh-list-title);margin:0}.s5-rail-title a{text-decoration:none}.s5-rail-title .s5-chip{margin-left:10px}.s5-rail-meta{margin-top:4px}.s5-rail-summary{font-size:var(--s5-fs-small);margin:8px 0 10px}.s5-rail-entry .s5-refs{position:relative;z-index:1}.s5-entry-link{position:absolute;inset:0}.s5-lane{position:relative;padding-left:var(--s5-rail-gutter);margin-bottom:var(--s5-post-gap)}.s5-lane::before{content:"";position:absolute;left:var(--s5-rail-x);top:8px;bottom:0;width:var(--s5-rail-width);background:var(--s5-accent)}.s5-lane::after{content:"";position:absolute;left:0;top:7px;width:var(--s5-dot-major);height:var(--s5-dot-major);border-radius:50%;background:var(--s5-accent)}.s5-lane--year::before{bottom:-14px}.s5-lane-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.s5-lane-title{font-size:var(--s5-fs-lane-title);font-weight:var(--s5-fw-lane-title);margin:0;line-height:var(--s5-lh-h3)}.s5-lane--year .s5-lane-title{font-size:var(--s5-fs-year-title)}.s5-lane-title a{text-decoration:none}.s5-lane-intro{font-size:var(--s5-fs-small);margin:6px 0 0}.s5-nodes{list-style:none;margin:0;padding:0}.s5-node{position:relative;margin-top:14px}.s5-lane--year .s5-nodes{margin-top:10px;display:flex;flex-direction:column;gap:10px}.s5-lane--year .s5-node{margin-top:0}.s5-node::before{content:"";position:absolute;left:calc(-1 * var(--s5-rail-gutter) + 3px);top:8px;width:var(--s5-dot-minor);height:var(--s5-dot-minor);border-radius:50%;background:var(--s5-accent)}.s5-node-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.s5-node-pre{font-size:var(--s5-fs-node-pre);font-weight:var(--s5-fw-node-pre);color:var(--s5-muted);min-width:56px}.s5-node-title{font-size:var(--s5-fs-node-title);font-weight:var(--s5-fw-node-title);margin:0}.s5-node-title a{text-decoration:none}.s5-node-body{padding-left:var(--s5-node-indent);margin-top:6px;display:flex;flex-direction:column;gap:8px;font-size:var(--s5-fs-small)}.s5-node-body p{margin:0}.s5-achv{display:flex;gap:10px}.s5-achv::before{content:"";flex:none;width:var(--s5-dot-bullet);height:var(--s5-dot-bullet);border-radius:50%;background:var(--s5-faint);margin-top:9px}.s5-stack{display:flex;gap:8px;align-items:baseline}.s5-stack-text{font-size:var(--s5-fs-stack);font-weight:var(--s5-fw-stack);color:var(--s5-muted);white-space:pre-line}.s5-refs{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;margin:0;padding:0}.s5-ref{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--s5-accent);border-radius:var(--s5-r-box);padding:3px 10px 3px 8px;color:var(--s5-text);font-size:var(--s5-fs-ref);font-weight:var(--s5-fw-ref);text-decoration:none}.s5-ref::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--s5-accent)}.s5-ref-count{font-size:var(--s5-fs-ref-count);font-weight:var(--s5-fw-ref-count);color:var(--s5-muted)}.s5-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px 32px;list-style:none;margin:0;padding:0}.s5-card{border-top:2px solid var(--s5-accent);padding-top:10px}.s5-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.s5-card-title{font-size:var(--s5-fs-card-title);font-weight:var(--s5-fw-card-title);margin:0}.s5-card-title a{text-decoration:none}.s5-card-count{font-size:var(--s5-fs-card-count);font-weight:var(--s5-fw-card-count);color:var(--s5-muted)}.s5-card-list{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;font-size:var(--s5-fs-small)}.s5-card-list a{text-decoration:none}.s5-card-list a:hover{text-decoration:underline}.s5-facts{display:grid;grid-template-columns:minmax(120px,160px)1fr;gap:8px 16px;font-size:var(--s5-fs-small);margin:0}.s5-facts dt{font-size:var(--s5-fs-facts-label);font-weight:var(--s5-fw-facts-label)}.s5-facts dd{margin:0}.s5-search-input{width:100%;box-sizing:border-box;font-family:var(--s5-font);font-size:var(--s5-fs-search-input);font-weight:var(--s5-fw-search-input);padding:12px 16px;border:2px solid var(--s5-tag);border-radius:var(--s5-r-box);background:var(--s5-entry);color:var(--s5-text)}.s5-search-input:focus{outline:0;border-color:var(--s5-text)}.s5-search-count{margin:10px 0 24px}.s5-results{display:flex;flex-direction:column;gap:20px;list-style:none;margin:0;padding:0}.s5-result-title{font-size:var(--s5-fs-result-title);font-weight:var(--s5-fw-result-title);line-height:var(--s5-lh-result-title);margin:0}.s5-result-title a{text-decoration:none}.s5-result-meta{margin:2px 0 6px}.s5-result-snippet{font-size:var(--s5-fs-small);margin:0}.s5-not-found{text-align:center;padding:40px 0}.s5-not-found-code{font-size:var(--s5-fs-not-found);font-weight:var(--s5-fw-not-found);line-height:var(--s5-lh-not-found);color:var(--s5-text)}.s5-not-found-msg{font-size:var(--s5-fs-not-found-msg);font-weight:var(--s5-fw-not-found-msg);margin-top:10px}.s5-not-found-ref{margin-top:22px;display:inline-flex;align-items:center;gap:8px;font-size:var(--s5-fs-tagline);font-weight:var(--s5-fw-tagline);color:var(--s5-muted)}.s5-cv-head{text-align:center}.s5-cv-name{font-size:var(--s5-fs-wordmark);font-weight:var(--s5-fw-wordmark);line-height:var(--s5-lh-wordmark)}.s5-cv-name strong{font-weight:var(--s5-w-bold)}.s5-cv-tagline{font-size:var(--s5-fs-tagline);font-weight:var(--s5-fw-tagline);margin-top:8px}.s5-cv-contact{font-size:var(--s5-fs-cv-contact);font-weight:var(--s5-fw-cv-contact);margin-top:16px;display:flex;justify-content:center;flex-wrap:wrap;gap:4px 10px}.s5-cv-downloads{margin-top:14px;display:flex;justify-content:center;gap:8px}.s5-cv h2{margin:40px 0 12px}.s5-cv-statement{font-size:var(--s5-fs-small)}.s5-cv-statement p{margin:0 0 12px}.s5-page-title{margin:0 0 22px}.s5-page-sub{font-size:var(--s5-fs-tagline);font-weight:var(--s5-fw-tagline);color:var(--s5-muted);margin:-16px 0 26px}.s5-pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--s5-rule)}.s5-pager-label{font-size:var(--s5-fs-nav-label);font-weight:var(--s5-fw-nav-label);color:var(--s5-muted)}.s5-pager-title{font-size:var(--s5-fs-nav-title);font-weight:var(--s5-fw-nav-title)}.s5-sg-section{margin:48px 0}.s5-sg-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;list-style:none;margin:0;padding:0}.s5-sg-swatch{border:1px solid var(--s5-rule);border-radius:var(--s5-r-box);overflow:hidden}.s5-sg-swatch>div{height:48px}.s5-sg-swatch>code{display:block;padding:6px 8px;font-size:var(--s5-fs-meta)}.s5-sg-spec{display:grid;grid-template-columns:160px 1fr;gap:6px 16px;align-items:baseline;margin:0}.s5-sg-spec dt{font-family:var(--s5-mono);font-size:var(--s5-fs-meta);color:var(--s5-muted)}.s5-sg-spec dd{margin:0}.s5-sg-contract{font-family:var(--s5-mono);font-size:var(--s5-fs-code);background:var(--s5-entry);padding:10px 14px;border-radius:var(--s5-r-box);white-space:pre-wrap;margin:8px 0 16px}.chroma{background:var(--s5-entry);color:var(--s5-text)}.chroma .hl{background:var(--s5-rule)}.chroma .err{color:inherit;background:0 0}.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:#dedede}.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:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .or{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}:root[data-theme=dark] .chroma .err{color:inherit;background:0 0}:root[data-theme=dark] .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root[data-theme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root[data-theme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root[data-theme=dark] .chroma .hl{background-color:#6e7681}:root[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root[data-theme=dark] .chroma .line{display:flex}:root[data-theme=dark] .chroma .k{color:#ff7b72}:root[data-theme=dark] .chroma .kc{color:#79c0ff}:root[data-theme=dark] .chroma .kd{color:#ff7b72}:root[data-theme=dark] .chroma .kn{color:#ff7b72}:root[data-theme=dark] .chroma .kp{color:#79c0ff}:root[data-theme=dark] .chroma .kr{color:#ff7b72}:root[data-theme=dark] .chroma .kt{color:#ff7b72}:root[data-theme=dark] .chroma .nc{color:#f0883e;font-weight:700}:root[data-theme=dark] .chroma .no{color:#79c0ff;font-weight:700}:root[data-theme=dark] .chroma .nd{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .chroma .ni{color:#ffa657}:root[data-theme=dark] .chroma .ne{color:#f0883e;font-weight:700}:root[data-theme=dark] .chroma .nl{color:#79c0ff;font-weight:700}:root[data-theme=dark] .chroma .nn{color:#ff7b72}:root[data-theme=dark] .chroma .nx{color:#e6edf3}:root[data-theme=dark] .chroma .py{color:#79c0ff}:root[data-theme=dark] .chroma .nt{color:#7ee787}:root[data-theme=dark] .chroma .nv{color:#79c0ff}:root[data-theme=dark] .chroma .vc{color:#79c0ff}:root[data-theme=dark] .chroma .vg{color:#79c0ff}:root[data-theme=dark] .chroma .vi{color:#79c0ff}:root[data-theme=dark] .chroma .vm{color:#79c0ff}:root[data-theme=dark] .chroma .nf{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .chroma .fm{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .chroma .l{color:#a5d6ff}:root[data-theme=dark] .chroma .ld{color:#79c0ff}:root[data-theme=dark] .chroma .s{color:#a5d6ff}:root[data-theme=dark] .chroma .sa{color:#79c0ff}:root[data-theme=dark] .chroma .sb{color:#a5d6ff}:root[data-theme=dark] .chroma .sc{color:#a5d6ff}:root[data-theme=dark] .chroma .dl{color:#79c0ff}:root[data-theme=dark] .chroma .sd{color:#a5d6ff}:root[data-theme=dark] .chroma .s2{color:#a5d6ff}:root[data-theme=dark] .chroma .se{color:#79c0ff}:root[data-theme=dark] .chroma .sh{color:#79c0ff}:root[data-theme=dark] .chroma .si{color:#a5d6ff}:root[data-theme=dark] .chroma .sx{color:#a5d6ff}:root[data-theme=dark] .chroma .sr{color:#79c0ff}:root[data-theme=dark] .chroma .s1{color:#a5d6ff}:root[data-theme=dark] .chroma .ss{color:#a5d6ff}:root[data-theme=dark] .chroma .m{color:#a5d6ff}:root[data-theme=dark] .chroma .mb{color:#a5d6ff}:root[data-theme=dark] .chroma .mf{color:#a5d6ff}:root[data-theme=dark] .chroma .mh{color:#a5d6ff}:root[data-theme=dark] .chroma .mi{color:#a5d6ff}:root[data-theme=dark] .chroma .il{color:#a5d6ff}:root[data-theme=dark] .chroma .mo{color:#a5d6ff}:root[data-theme=dark] .chroma .o{color:#ff7b72;font-weight:700}:root[data-theme=dark] .chroma .ow{color:#ff7b72;font-weight:700}:root[data-theme=dark] .chroma .or{color:#ff7b72;font-weight:700}:root[data-theme=dark] .chroma .c{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .ch{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .cm{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .c1{color:#8b949e;font-style:italic}:root[data-theme=dark] .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}:root[data-theme=dark] .chroma .ge{font-style:italic}:root[data-theme=dark] .chroma .gr{color:#ffa198}:root[data-theme=dark] .chroma .gh{color:#79c0ff;font-weight:700}:root[data-theme=dark] .chroma .gi{color:#56d364;background-color:#0f5323}:root[data-theme=dark] .chroma .go{color:#8b949e}:root[data-theme=dark] .chroma .gp{color:#8b949e}:root[data-theme=dark] .chroma .gs{font-weight:700}:root[data-theme=dark] .chroma .gu{color:#79c0ff}:root[data-theme=dark] .chroma .gt{color:#ff7b72}:root[data-theme=dark] .chroma .gl{text-decoration:underline}:root[data-theme=dark] .chroma .w{color:#6e7681}:root,:root[data-theme=dark],:root[data-theme=light]{--theme:var(--s5-bg);--entry:var(--s5-entry);--primary:var(--s5-text);--secondary:var(--s5-muted);--tertiary:var(--s5-rule);--content:var(--s5-text);--code-block-bg:var(--s5-entry);--code-bg:var(--s5-entry);--border:var(--s5-rule);--hljs-bg:var(--s5-entry);--radius:var(--s5-r-box);--main-width:var(--s5-content-max);--gap:var(--s5-gutter)}.list{background:var(--s5-bg)}[data-theme=dark] .list{background:var(--s5-bg)}.main{padding:var(--s5-main-top)var(--s5-gutter)var(--s5-main-bottom);min-height:0}.page-header h1{font-size:var(--s5-fs-h1);line-height:var(--s5-lh-h1)}.page-header .post-description{font-size:var(--s5-fs-tagline);font-weight:var(--s5-fw-tagline);color:var(--s5-muted)}.first-entry{min-height:0;margin:0 0 40px}.first-entry .entry-header{display:block;-webkit-line-clamp:unset;overflow:visible}.first-entry .entry-header h1{font-size:var(--s5-fs-h1-home);line-height:var(--s5-lh-h1-home);margin:0 0 14px}.first-entry .entry-content,.home-info .entry-content{display:block;-webkit-line-clamp:unset;overflow:visible;font-size:var(--s5-fs-body);color:var(--s5-text);margin:0 0 18px}.home-info .entry-content ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.home-info .entry-content p{margin:0}.first-entry .entry-footer{font-size:inherit}.social-icons{display:flex;flex-wrap:wrap;gap:8px}.social-icons a{display:inline-flex;padding:2px 8px}.pagination a{background:0 0;color:var(--s5-text);font-size:var(--s5-fs-nav);font-weight:var(--s5-fw-nav);line-height:1.5;padding:0;border-radius:0}.pagination{margin-top:24px}.breadcrumbs,.breadcrumbs a{font-size:var(--s5-fs-meta);font-weight:var(--s5-fw-meta);color:var(--s5-muted)}.breadcrumbs a{text-decoration:none}.breadcrumbs svg{width:12px;height:12px;vertical-align:middle;margin:0 2px}.post-title{font-size:var(--s5-fs-h1);line-height:var(--s5-lh-h1);font-weight:var(--s5-w-bold);margin:10px 0 8px}.post-description{font-weight:var(--s5-fw-tagline);color:var(--s5-muted)}.post-meta,.post-meta a{font-size:var(--s5-fs-meta);font-weight:var(--s5-fw-meta);color:var(--s5-muted)}.post-meta a{text-decoration:underline;text-decoration-color:var(--s5-faint)}.entry-cover,.post-content figcaption,.post-content .figure-caption{font-size:var(--s5-fs-caption);font-weight:var(--s5-fw-caption);color:var(--s5-muted)}.entry-cover img,.post-content img{border-radius:var(--s5-r-box)}details.toc{background:var(--s5-entry);border:0;border-left:3px solid var(--s5-toc);border-radius:var(--s5-r-box);padding:14px 18px;margin:26px 0}details.toc summary,details.toc summary .title{font-size:var(--s5-fs-toc-label);font-weight:var(--s5-fw-toc-label);color:var(--s5-text);text-transform:lowercase}details.toc .inner{font-size:var(--s5-fs-toc);font-weight:var(--s5-fw-toc);padding:6px 0 0}details.toc .inner ul{margin:0;padding:0}details.toc .inner li{margin:3px 0}details.toc .inner li ul{padding-left:16px}.post-content{font-size:var(--s5-fs-body);line-height:var(--s5-lh-body);color:var(--s5-text)}.post-content h1,.post-content h2,.post-content h3,.post-content h4{color:var(--s5-text)}.post-content h2{font-size:var(--s5-fs-h2);line-height:var(--s5-lh-h2);margin:32px 0 12px}.post-content h3{font-size:var(--s5-fs-h3);line-height:var(--s5-lh-h3);margin:24px 0 8px}.post-content p{margin-bottom:14px}.post-content a{box-shadow:none;text-decoration:underline;text-decoration-color:var(--s5-faint);text-underline-offset:var(--s5-underline-offset)}.post-content a:hover{text-decoration-color:initial}.post-content blockquote{border-inline-start:2px solid var(--s5-quote);margin:0 0 14px;padding:4px 0 4px 18px;font-weight:var(--s5-w-thin);color:var(--s5-text)}.post-content pre,.post-content code{border-radius:var(--s5-r-box)}.post-content pre code{font-size:var(--s5-fs-code);line-height:var(--s5-lh-code)}.post-content code{font-size:.9em}.post-footer .s5-refs{margin-top:30px}.paginav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;padding-top:20px;border:0;border-top:1px solid var(--s5-rule);border-radius:0;background:0 0;line-height:1.4}.paginav a{width:auto;display:block;padding:0;text-decoration:none}.paginav a:hover{background:0 0}.paginav a:hover span:not(.title){text-decoration:underline;text-decoration-color:initial}.paginav .title{display:block;letter-spacing:0;text-transform:lowercase;font-size:var(--s5-fs-nav-label);font-weight:var(--s5-fw-nav-label);color:var(--s5-muted)}.paginav a span:not(.title){font-size:var(--s5-fs-nav-title);font-weight:var(--s5-fw-nav-title);color:var(--s5-text)}.paginav .prev{grid-column:1;justify-self:start}.paginav .next{grid-column:2;justify-self:end;margin-inline-start:0;text-align:right}.paginav .title{margin-bottom:4px}.share-buttons svg{fill:var(--s5-muted)}.share-buttons a:hover svg{fill:var(--s5-text)}.post-footer>*{margin-top:28px}.copy-code{font-family:var(--s5-font);border-radius:var(--s5-r-chip)}.footer,.footer a{font-size:var(--s5-fs-footer);font-weight:var(--s5-fw-footer);color:var(--s5-muted);line-height:1.6}.footer{border:0;text-transform:lowercase;padding:20px var(--s5-gutter)28px}.top-link{background:var(--s5-text);color:var(--s5-bg)}.top-link:hover{color:var(--s5-bg)}