/*!* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)*/*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}:root{--color-bg:#FFFFFF;--color-surface:#F4F4F5;--color-text:#18181B;--color-text-secondary:#71717A;--color-accent:#2563EB;--color-accent-hover:#1D4ED8;--color-border:#E4E4E7;--color-navbar:#18181B;--color-navbar-text:#FAFAFA;--color-code-bg:#F4F4F5;--color-code-text:#18181B;--color-pre-bg:#1E1E2E;--color-pre-text:#CDD6F4;--color-blockquote-border:#2563EB;--color-kbd-bg:#27272A;--color-kbd-text:#FAFAFA;--color-hr:#E4E4E7;--color-draft-stripe:#FDE68A;--color-tag:#71717A;--color-tag-hover:#2563EB;--transition-colors:background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;--font-body:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "JetBrains Mono", Menlo, Consolas, monospace;--line-height-body:1.7;--line-height-heading:1.3;--content-width:42rem;--content-padding:1.25rem;--content-width-lg:56rem;--content-width-xl:64rem}html[data-theme=dark]{--color-bg:#09090B;--color-surface:#18181B;--color-text:#FAFAFA;--color-text-secondary:#A1A1AA;--color-accent:#60A5FA;--color-accent-hover:#93C5FD;--color-border:#27272A;--color-navbar:#09090B;--color-navbar-text:#FAFAFA;--color-code-bg:#18181B;--color-code-text:#E4E4E7;--color-pre-bg:#111113;--color-pre-text:#CDD6F4;--color-blockquote-border:#60A5FA;--color-kbd-bg:#3F3F46;--color-kbd-text:#FAFAFA;--color-hr:#27272A;--color-draft-stripe:#854D0E;--color-tag:#A1A1AA;--color-tag-hover:#60A5FA;color-scheme:dark}*,*::before,*::after{transition:var(--transition-colors)}body{margin:0;font-family:var(--font-body);font-size:16px;line-height:var(--line-height-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:var(--line-height-heading);letter-spacing:-.02em;color:var(--color-text)}h1#title{font-size:2em}p{hyphens:auto;-webkit-hyphens:auto;-ms-hyphens:auto}a{color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--color-accent-hover)}code{font-family:var(--font-mono);font-size:.875em;padding:.15em .4em;background-color:var(--color-code-bg);color:var(--color-code-text);border-radius:4px;hyphens:none;-webkit-hyphens:none;-ms-hyphens:none;word-wrap:break-word}pre code{background-color:transparent;padding:0;color:inherit;font-size:inherit}pre{display:block;padding:1em 1.25em;margin:1.5em 0;line-height:1.5;word-wrap:break-word;overflow-x:auto;border:1px solid var(--color-border);border-radius:8px;max-width:100%;color:var(--color-pre-text);background-color:var(--color-pre-bg)}pre,code{font-family:var(--font-mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}kbd{background-color:var(--color-kbd-bg);color:var(--color-kbd-text);padding:.15em .4em;border-radius:4px;font-family:var(--font-mono);font-size:.875em;white-space:nowrap}.content-container{max-width:var(--content-width);margin:0 auto;padding-left:var(--content-padding);padding-right:var(--content-padding)}.content-container-narrow-pad{max-width:var(--content-width);margin:0 auto;padding:.5em var(--content-padding)}.article-pad-v{padding-top:2em;padding-bottom:3em}.v-center{align-items:center}.margin-top-2em{margin-top:2em}.hidden{display:none}.navbar{background-color:var(--color-navbar);border-bottom:1px solid var(--color-border)}body.sticky-nav .navbar{position:sticky;z-index:1000;top:0}.nav-bkg{color:var(--color-navbar-text);background-color:var(--color-navbar)}.nav-bkg-50{color:var(--color-navbar-text);background-color:var(--color-navbar)}.pagewide-bar-padding{padding:.75em var(--content-padding)}nav a,nav a:hover,nav a:visited{color:var(--color-navbar-text)}.nav-bkg a{text-decoration:none;font-weight:500}.nav-bkg a:hover{text-decoration:underline}.divider{opacity:.4}.drop-shadow{}.look-sheet{}.look-sheet-border{border:1px solid var(--color-border);border-radius:8px;margin-top:1em;margin-bottom:1em}body.look-sheet-bkg{background-color:var(--color-bg)}.article-body h2,.article-body h3{margin-top:2.5em;margin-bottom:.75em}.article-body h2{padding-bottom:.3em;border-bottom:1px solid var(--color-border)}.post-date{color:var(--color-text-secondary);font-size:.875em}.post-tags{margin-bottom:.5em}.post-tags a,.post-tags a:hover,.post-tags a:visited{color:var(--color-tag);text-decoration:none;font-size:.875em}.post-tags a:hover{color:var(--color-tag-hover)}blockquote{border-left:3px solid var(--color-blockquote-border);padding:.25em 1.25em;margin:1.5em 0;color:var(--color-text-secondary)}blockquote p{margin:.5em 0}hr{padding:0;border:none;border-top:1px solid var(--color-hr);margin:3em 0}figure{margin:2em auto;display:table;text-align:center}figure.smaller{max-width:67%}figure:not(.no-border) video,figure:not(.no-border) img,figure:not(.no-border) object,figure:not(.no-border).style-tables table{border:1px solid var(--color-border);border-radius:8px;max-width:100%;max-height:85vh}figcaption{margin-top:.75em;font-style:italic;text-align:center;font-size:.8125em;color:var(--color-text-secondary)}figure figcaption :last-child{margin-bottom:0}.embed.rich,img{max-width:100%}figure audio{width:580px;max-width:100%}.list-unstyled{padding-left:0;margin-bottom:0;list-style:none}.list-of-titles .post-title{color:var(--color-text);font-size:1.25em;font-weight:600}.list-of-titles li a{text-decoration:none;display:block;padding:1.25em 1em;border-radius:8px}.list-of-titles li a:hover{background-color:var(--color-surface)}.list-of-titles li a:hover .post-title{color:var(--color-accent)}.list-of-titles li+li{border-top:1px solid var(--color-border)}.list-of-titles .post-meta{font-size:.8125em;color:var(--color-text-secondary)}.flex-row{display:flex;justify-content:space-between}.flex-row.flex-center{justify-content:center}.bottom-links{border-top:1px solid var(--color-border);padding-top:1em;padding-bottom:1em}a.no-underline:hover{text-decoration:none}a.no-underline:hover .re-underline{text-decoration:underline}.text-1p5{font-size:1.5em}.text-0p75{font-size:.75em}details.right-links{float:right;text-align:right}details.right-links summary{list-style:none;cursor:pointer}details.right-links summary::after{content:'···';color:var(--color-navbar-text);border-radius:4px;border:1px solid var(--color-navbar-text);font-weight:700;padding:2px 6px;font-size:.875em;opacity:.7}details.right-links summary:hover::after{opacity:1}details[open].right-links summary::after{opacity:1;background-color:rgba(255,255,255,.1)}details.right-links summary::-webkit-details-marker{display:none}details.right-links ul{background-color:var(--color-surface);border:1px solid var(--color-border);margin-top:8px;padding:8px 16px;border-radius:8px;position:absolute;right:var(--content-padding);min-width:120px;box-shadow:0 4px 12px rgba(0,0,0,8%)}html[data-theme=dark] details.right-links ul{box-shadow:0 4px 12px rgba(0,0,0,.4)}details.right-links li{list-style:none;padding:4px 0}details.right-links li a{color:var(--color-text);text-decoration:none}details.right-links li a:hover{color:var(--color-accent)}ul.right-links{display:none;float:right}ul.right-links li{display:inline-block;margin-left:1.5em}ul.right-links li a{text-decoration:none;font-weight:500;opacity:.85}ul.right-links li a:hover{opacity:1;text-decoration:underline}@media(min-width:440px){details.right-links{display:none}ul.right-links{display:block}}a.btn-dashed{border:1px solid var(--color-border);border-radius:6px;padding:.5em 1em;text-decoration:none}a.btn-dashed:hover{background-color:var(--color-surface);border-color:var(--color-text-secondary);transition:all .15s ease}.look-sheet-bkg.draft{background:repeating-linear-gradient( 135deg,var(--color-bg),var(--color-bg) 10px,var(--color-draft-stripe) 12px,var(--color-draft-stripe) 12px )}.list-of-titles li.draft a{background:repeating-linear-gradient( 135deg,transparent,transparent 10px,color-mix(in srgb,var(--color-draft-stripe) 20%,transparent) 12px,color-mix(in srgb,var(--color-draft-stripe) 20%,transparent) 12px )}.post-meta.draft{font-weight:700}aside.article-aside{background-color:var(--color-surface);border-radius:8px;padding:.5em 1.25em;margin-top:2em;margin-bottom:1em;border-left:3px solid var(--color-accent)}aside.article-aside>p:first-child{margin-top:.75rem}aside.content-warning{font-style:italic;margin-bottom:2rem;color:var(--color-text-secondary);border-top:solid 1px var(--color-border);border-bottom:solid 1px var(--color-border);padding:.5em 1em;display:inline-block}aside.content-warning>p:last-child{margin-bottom:0}h2+aside.article-aside,h3+aside.article-aside,h4+aside.article-aside,h5+aside.article-aside{margin-top:.5em}h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:.5em}.footnotes{margin-top:4em;font-size:.875em;color:var(--color-text-secondary)}.footnotes hr{margin-bottom:1.5em}.footnotes li{margin:0 0 12px}a.footnote-backref::before{content:' '}.header-link{text-decoration:none;position:absolute;right:0;top:0;background:linear-gradient(90deg,transparent 0%,var(--color-bg) 30%);color:var(--color-text-secondary);fill:var(--color-text-secondary);padding-left:1em}aside .header-link{background:linear-gradient(90deg,transparent 0%,var(--color-surface) 30%)}.header-link:hover{text-decoration:none;color:var(--color-accent);fill:var(--color-accent)}h2,h3,h4{position:relative}h2:not(:hover) .header-link,h3:not(:hover) .header-link,h4:not(:hover) .header-link{display:none}.header-link svg{height:.65em;margin-bottom:.225em;margin-left:.6em;margin-right:.6em}#content{position:relative}.floating-footnotes{width:25em;margin-top:0;position:absolute;top:0;left:calc(100% + 2em)}.floating-footnotes hr{display:none}.floating-footnotes li[role=doc-endnote] p:last-child{margin-bottom:0}article table{margin:2em auto;border-collapse:collapse;width:100%}article table td:not(:first-child),article table th:not(:first-child){padding-left:1.5em}article table thead tr{border-bottom:2px solid var(--color-border)}article table tbody tr{border-bottom:1px solid var(--color-border)}article table thead th{padding-bottom:.75em;font-weight:600;text-align:left}article table tbody tr:first-child td{padding-top:.75em}article table tbody tr:last-child td{padding-bottom:.75em}article table td,article table th{padding:.375em .5em;vertical-align:top}a.timestamp{border:solid 1px var(--color-accent);background:var(--color-accent);color:#fff;border-radius:4px;padding:2px 4px;font-family:var(--font-mono);font-size:.8125em;text-decoration:none}twitter-widget{margin:2em auto!important}.twoup{display:flex;gap:1em}.twoup figure{max-width:48%;display:inline-block}.twoup figure:first-child{margin-left:0}.twoup figure:last-child{margin-right:0}.squash-bottom{margin-bottom:0}.squash-top{margin-top:0}.twoup.squash-bottom figure{margin-bottom:0}.twoup.squash-top figure{margin-top:0}.sidepull-side{margin-bottom:2em;color:var(--color-text-secondary)}@media(min-width:1170px){.sidepull-container{position:relative}.sidepull-container .sidepull-side{position:absolute;position:sticky;width:16em;top:4em;margin-left:-18em;float:left}.sidepull-not-when-sidebar-shown{display:none}}@media(min-width:720px){html{font-size:15px}.content-container{width:var(--content-width);padding-left:2em;padding-right:2em}.content-container-narrow-pad{padding-left:.5em;padding-right:.5em;width:var(--content-width);margin:0 auto}.look-sheet{}body.look-sheet-bkg{background-color:var(--color-bg)}}@media(min-width:1024px){.content-container{width:var(--content-width-lg);max-width:var(--content-width-lg)}.content-container-narrow-pad{width:var(--content-width-lg);max-width:var(--content-width-lg)}}@media(min-width:1440px){.content-container{width:var(--content-width-xl);max-width:var(--content-width-xl)}.content-container-narrow-pad{width:var(--content-width-xl);max-width:var(--content-width-xl)}}.vertical-margins{margin-top:1em;margin-bottom:1em}#theme-toggle,#theme-toggle-mobile{background:0 0;border:none;cursor:pointer;color:var(--color-navbar-text);padding:4px;margin:0;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;opacity:.7;border-radius:4px}#theme-toggle:hover,#theme-toggle-mobile:hover{opacity:1}#theme-toggle svg,#theme-toggle-mobile svg{width:1.25em;height:1.25em}html[data-theme=light] #theme-toggle .icon-sun,html[data-theme=light] #theme-toggle-mobile .icon-sun{display:none}html[data-theme=dark] #theme-toggle .icon-moon,html[data-theme=dark] #theme-toggle-mobile .icon-moon{display:none}.chroma{color:#cdd6f4;background-color:transparent}.chroma .err{color:#f38ba8}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:rgba(205,214,244,8%)}.chroma .lnt{margin-right:.4em;padding:0 .4em;color:#585b70}.chroma .ln{margin-right:.4em;padding:0 .4em;color:#585b70}.chroma .k{color:#cba6f7}.chroma .kc{color:#fab387}.chroma .kd{color:#cba6f7}.chroma .kn{color:#94e2d5}.chroma .kp{color:#cba6f7}.chroma .kr{color:#cba6f7}.chroma .kt{color:#f9e2af}.chroma .na{color:#89b4fa}.chroma .nc{color:#f9e2af}.chroma .no{color:#fab387}.chroma .nd{color:#89dceb}.chroma .ne{color:#f38ba8}.chroma .nf{color:#89b4fa}.chroma .nx{color:#cdd6f4}.chroma .nt{color:#cba6f7}.chroma .l{color:#fab387}.chroma .ld{color:#a6e3a1}.chroma .s{color:#a6e3a1}.chroma .sa{color:#a6e3a1}.chroma .sb{color:#a6e3a1}.chroma .sc{color:#a6e3a1}.chroma .dl{color:#a6e3a1}.chroma .sd{color:#6c7086;font-style:italic}.chroma .s2{color:#a6e3a1}.chroma .se{color:#f2cdcd}.chroma .sh{color:#a6e3a1}.chroma .si{color:#f2cdcd}.chroma .sx{color:#a6e3a1}.chroma .sr{color:#94e2d5}.chroma .s1{color:#a6e3a1}.chroma .ss{color:#f2cdcd}.chroma .m{color:#fab387}.chroma .mb{color:#fab387}.chroma .mf{color:#fab387}.chroma .mh{color:#fab387}.chroma .mi{color:#fab387}.chroma .il{color:#fab387}.chroma .mo{color:#fab387}.chroma .o{color:#89dceb}.chroma .ow{color:#89dceb;font-weight:700}.chroma .c{color:#6c7086;font-style:italic}.chroma .ch{color:#6c7086;font-style:italic}.chroma .cm{color:#6c7086;font-style:italic}.chroma .c1{color:#6c7086;font-style:italic}.chroma .cs{color:#6c7086;font-style:italic}.chroma .cp{color:#f38ba8}.chroma .cpf{color:#a6e3a1;font-style:italic}.chroma .gd{color:#f38ba8;background-color:rgba(243,139,168,.1)}.chroma .ge{font-style:italic}.chroma .gi{color:#a6e3a1;background-color:rgba(166,227,161,.1)}.chroma .gs{font-weight:700}.chroma .gu{color:#94e2d5}