*,::before,::after{box-sizing:border-box;background-repeat:no-repeat}::before,::after{text-decoration:inherit;vertical-align:inherit}:where(:root){cursor:default;line-height:1.5;overflow-wrap:break-word;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}:where(body){margin:0}:where(h1){font-size:2em;margin:.67em 0}:where(dl,ol,ul) :where(dl,ol,ul){margin:0}:where(hr){color:inherit;height:0}:where(nav) :where(ol,ul){list-style-type:none;padding:0}:where(nav li)::before{content:"\200B";float:left}:where(pre){font-family:monospace,monospace;font-size:1em;overflow:auto}:where(abbr[title]){text-decoration:underline;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace,monospace;font-size:1em}:where(small){font-size:80%}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}:where(iframe){border-style:none}:where(svg:not([fill])){fill:currentColor}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,select){margin:0}:where(button,[type=button i],[type=reset i],[type=submit i]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){margin:0;resize:vertical}:where([type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(dialog){background-color:#fff;border:solid;color:#000;height:-moz-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:fit-content}:where(dialog:not([open])){display:none}:where(details>summary:first-of-type){display:list-item}:where([aria-busy=true i]){cursor:progress}:where([aria-controls]){cursor:pointer}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0,0,0,0);position:absolute}html{font-family:system-ui,-apple-system,segoe ui,roboto,ubuntu,cantarell,noto sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji}code,kbd,samp,pre{font-family:ui-monospace,menlo,consolas,roboto mono,ubuntu monospace,noto mono,oxygen mono,liberation mono,monospace,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji}@font-face{font-family:system-ui;src:local(".AppleSystemUIFont"),local("Segoe UI"),local("Ubuntu"),local("Roboto-Regular"),local("HelveticaNeue")}@font-face{font-family:system-ui;font-style:italic;src:local(".AppleSystemUIFont"),local("Segoe UI Italic"),local("Ubuntu-Italic"),local("Roboto-Italic"),local("HelveticaNeue-Italic")}@font-face{font-family:system-ui;font-weight:700;src:local(".AppleSystemUIFont"),local("Segoe UI Bold"),local("Ubuntu-Bold"),local("Roboto-Bold"),local("HelveticaNeue-Bold")}@font-face{font-family:system-ui;font-style:italic;font-weight:700;src:local(".AppleSystemUIFont"),local("Segoe UI Bold Italic"),local("Ubuntu-BoldItalic"),local("Roboto-BoldItalic"),local("HelveticaNeue-BoldItalic")}:root{--primary-color:#0066cc;--secondary-color:#333;--body-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--heading-font:var(--body-font);--content-width:65ch;--transition-speed:200ms}a{text-underline-offset:4px;color:var(--primary-color);transition:color var(--transition-speed)ease;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}div.highlight>pre{padding:1em;overflow-x:auto;font-size:.875rem;line-height:1.42;border-radius:6px}h2:not(.post-title){border-bottom:solid 2px;padding-bottom:.5rem;margin-top:2rem}html{color:#111;font-size:1.125rem;line-height:1.45;font-family:var(--body-font);scroll-padding-top:2em}main{padding:1.5rem 1rem 3rem}main>*{max-width:var(--content-width);margin-left:auto;margin-right:auto}h1,h2,h3,h4,h5,h6{font-family:var(--heading-font);line-height:1.25;font-weight:600;margin-bottom:.75rem}.post{margin-bottom:4em}.post-title{margin-top:.5em;line-height:1.25;font-size:1.75rem;letter-spacing:-.025em}@media(min-width:640px){.post-title{font-size:2.25rem}}.post-date{display:block;margin-top:-.5rem;margin-bottom:2.5rem;font-size:.95rem;opacity:.8}.post table{width:100%;border-collapse:collapse;margin:1.5rem 0;overflow-x:auto;display:block}.post table td,.post table th{padding:.5rem .75rem;border:1px solid #ddd}.post table th{background-color:#f5f5f5;font-weight:600}.post table tr:nth-child(even){background-color:#f9f9f9}figure.highlight{margin-left:0;margin-right:0}figcaption p{margin-top:2px;font-style:italic;font-size:.9rem;opacity:.8}img{border-radius:8px;height:auto;max-width:100%;display:block;margin:1.5rem auto;box-shadow:0 3px 15px rgba(0,0,0,5%)}figure{max-width:100%}blockquote,.comment-body{margin-left:0;padding:.75rem 1.5rem;border-left:var(--primary-color)4px solid;background-color:rgba(0,0,0,2%);border-radius:0 4px 4px 0}blockquote p:first-child{margin-top:0}blockquote p:last-child{margin-bottom:0}.toc{position:relative;background-color:#f9f9f9;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1);margin-bottom:2.5rem}.toc h2{margin:0;border:none;font-size:1.125rem;font-weight:500;padding:0;text-align:left}.toc a{text-decoration:none}.toc a:hover{text-decoration:underline}.toc ul{margin-top:4px;display:flex;flex-direction:column;gap:6px;padding-left:1.25rem;margin-bottom:0}.toc li{line-height:1.3}details{margin:1.5rem 0;border-radius:4px}details summary{cursor:pointer;padding:.5rem .25rem;font-weight:500}details>div{padding-left:.75rem;margin-left:.33rem;border-left:#ababab 3px solid;border-top:none;padding-top:.5rem}.comment-body{margin-top:.5rem}@media(min-width:96rem){.toc{position:absolute;left:32px;top:100px;transform:translateY(50%);max-width:calc(280px + (50vw - 65ch));opacity:75%;transition:opacity var(--transition-speed)ease-in-out;margin-bottom:0}.toc:hover,.toc:focus-within{opacity:100%}.toc:has(ul:not(:empty)){display:block}main{padding:2rem 2rem 4rem}}@media(min-width:70em){figure{max-width:768px}html{font-size:1.1875rem}}@supports(text-wrap:balance){h1,h2{text-wrap:balance;text-align:center}.post-date{text-align:center}}@media(prefers-color-scheme:dark){:root{--primary-color:#74b0ff}html{background-color:#1a1a1a;color:#eee}a{color:var(--primary-color)}a:active{color:#ff9e9e}.post table th{background-color:#2a2a2a}.post table td,.post table th{border-color:#444}.post table tr:nth-child(even){background-color:#252525}blockquote,.comment-body{background-color:rgba(255,255,255,3%)}img{box-shadow:0 3px 15px rgba(0,0,0,.2)}div.highlight>pre{background-color:#252525!important}.toc{background-color:#252525;box-shadow:0 2px 10px rgba(0,0,0,.3)}code{background-color:transparent}code:not([class*=language-]){background-color:#2d2d2d;color:#e3e3e3;border-color:rgba(255,255,255,.1)}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.masthead{padding-top:1rem;padding-bottom:1rem}@media print{.print-hidden{display:none}}ul.pure-menu-list{display:flex;justify-content:center}.pure-menu-link{padding:.5em 1em}.pure-menu-link:hover,.pure-menu-link:focus{background-color:#eee}.menu-icon{margin-left:16px}.menu-icon svg{height:24px;width:24px;opacity:.85;transition-duration:150ms;transition-property:opacity}.menu-icon svg:hover{opacity:1}.social-icon{fill:#24292f}@media(min-width:640px){.menu-icon{margin-left:2em}.menu-icon svg{height:36px;width:36px}}@media(prefers-color-scheme:dark){.social-icon{fill:#ffffffe6}}.comments-section{margin-top:3rem;padding-top:2rem;border-top:1px solid #eee}.comment{margin-bottom:1.5rem}.comment-meta{font-size:.85rem;opacity:.75;display:block;margin-bottom:.25rem}footer{text-align:center;padding:2rem 1rem;background-color:#f5f5f5;margin-top:3rem;font-size:.9rem;color:#666}.footer-content{max-width:var(--content-width);margin-left:auto;margin-right:auto}.post-content{font-size:1.05rem}code:not([class*=language-]){background-color:#f5f5f5;padding:.2em .4em;border-radius:3px;font-size:.875em;font-family:SFMono-Regular,Consolas,liberation mono,Menlo,monospace;color:#333;border:1px solid rgba(0,0,0,5%)}@media(prefers-color-scheme:dark){footer{background-color:#252525;color:#aaa}.comments-section{border-top-color:#333}code:not([class*=language-]){background-color:#2d2d2d;color:#e3e3e3;border-color:rgba(255,255,255,.1)}}