.bg{color:#c6d0f5;background-color:#303446}.chroma{color:#c6d0f5;background-color:#303446;padding:1rem;border-radius:8px;border:1px solid var(--light-border-color);font-size:.9rem !important;line-height:1.5}.chroma .x{}.chroma .err{color:#e78284}.chroma .cl{}.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:#51576d}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#838ba7}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#838ba7}.chroma .line{display:flex}.chroma .k{color:#ca9ee6}.chroma .kc{color:#ef9f76}.chroma .kd{color:#e78284}.chroma .kn{color:#81c8be}.chroma .kp{color:#ca9ee6}.chroma .kr{color:#ca9ee6}.chroma .kt{color:#e78284}.chroma .n{}.chroma .na{color:#8caaee}.chroma .nc{color:#e5c890}.chroma .no{color:#e5c890}.chroma .nd{color:#8caaee;font-weight:700}.chroma .ni{color:#81c8be}.chroma .ne{color:#ef9f76}.chroma .nl{color:#99d1db}.chroma .nn{color:#ef9f76}.chroma .nx{}.chroma .py{color:#ef9f76}.chroma .nt{color:#ca9ee6}.chroma .nb{color:#99d1db}.chroma .bp{color:#99d1db}.chroma .nv{color:#f2d5cf}.chroma .vc{color:#f2d5cf}.chroma .vg{color:#f2d5cf}.chroma .vi{color:#f2d5cf}.chroma .vm{color:#f2d5cf}.chroma .nf{color:#8caaee}.chroma .fm{color:#8caaee}.chroma .l{}.chroma .ld{}.chroma .s{color:#a6d189}.chroma .sa{color:#e78284}.chroma .sb{color:#a6d189}.chroma .sc{color:#a6d189}.chroma .dl{color:#8caaee}.chroma .sd{color:#737994}.chroma .s2{color:#a6d189}.chroma .se{color:#8caaee}.chroma .sh{color:#737994}.chroma .si{color:#a6d189}.chroma .sx{color:#a6d189}.chroma .sr{color:#81c8be}.chroma .s1{color:#a6d189}.chroma .ss{color:#a6d189}.chroma .m{color:#ef9f76}.chroma .mb{color:#ef9f76}.chroma .mf{color:#ef9f76}.chroma .mh{color:#ef9f76}.chroma .mi{color:#ef9f76}.chroma .il{color:#ef9f76}.chroma .mo{color:#ef9f76}.chroma .o{color:#99d1db;font-weight:700}.chroma .ow{color:#99d1db;font-weight:700}.chroma .p{}.chroma .c{color:#737994;font-style:italic}.chroma .ch{color:#737994;font-style:italic}.chroma .cm{color:#737994;font-style:italic}.chroma .c1{color:#737994;font-style:italic}.chroma .cs{color:#737994;font-style:italic}.chroma .cp{color:#737994;font-style:italic}.chroma .cpf{color:#737994;font-weight:700;font-style:italic}.chroma .g{}.chroma .gd{color:#e78284;background-color:#414559}.chroma .ge{font-style:italic}.chroma .gr{color:#e78284}.chroma .gh{color:#ef9f76;font-weight:700}.chroma .gi{color:#a6d189;background-color:#414559}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#ef9f76;font-weight:700}.chroma .gt{color:#e78284}.chroma .gl{text-decoration:underline}.chroma .w{}@font-face{font-family:inter;font-style:normal;font-weight:400;font-display:optional;src:local(''),url(/fonts/inter-v11-latin-regular.woff2)format('woff2'),url(/fonts/inter-v11-latin-regular.woff)format('woff')}@font-face{font-family:inter;font-style:normal;font-weight:600;font-display:optional;src:local(''),url(/fonts/inter-v11-latin-600.woff2)format('woff2'),url(/fonts/inter-v11-latin-600.woff)format('woff')}@font-face{font-family:roboto mono;font-style:normal;font-weight:400;font-display:optional;src:local(''),url(/fonts/roboto-mono-v21-latin-regular.woff2)format('woff2'),url(/fonts/roboto-mono-v21-latin-regular.woff)format('woff')}:root{--navbar-color:#f0f0f0;--page-width:850px;--light-border-color:#e0e0e0;--font-color:#343434;--header-height:60px;--dark-font-color:#777;--light-border-color:#e0e0e0;--bright-font-color:#222;--primary:#6b76f3;--background-color:white;--link-color:#111;--heading-font-color:#222;--blockquote-background-color:rgba(0, 0, 0, 0.02);--blockquote-color:#111;--border-color:#bbb;--inline-code-background-color:rgba(0, 0, 0, 0.05);--inline-code-color:rgba(17, 17, 17);--font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue',
    'Roboto', Roboto, Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji',
    'Segoe UI', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';--code-font-family:'Roboto Mono', Courier New, monospace;--heading-font-family:var(--font-family);--post-font-family:var(--font-family)}::selection{background:var(--primary);color:#fff}::-moz-selection{background:var(--primary);color:#fff}li::marker{color:var(--primary)}header{top:0;left:0;position:fixed;width:100%;background:var(--navbar-color);border-bottom:1px solid var(--light-border-color);z-index:9;font-size:.9rem;.header-container { display: flex; align-items: center; max-width: var(--page-width); margin: 0 auto; justify-content: space-between; padding: 0 0.5rem; } a.brand { display: inline; font-size: 1rem; font-weight: bolder; } nav { ul { padding-left: 0; li { display: inline; padding: .5rem; } } }}time.pub-date{text-align:center;display:block;color:var(--dark-font-color);font-size:.9rem}main{margin-left:auto;margin-right:auto;max-width:var(--page-width);padding:2rem 1rem;h1.title { text-align: center; margin: 0.5rem 0; } img { display: block; max-width: 100%; height: auto; margin: 0 auto; object-fit: contain; } pre:has(code) { overflow-x: scroll; } a:hover { background: var(--primary); color: var(--background-color); } a { font-weight: 600; color: var(--link-color); border-top: 2px solid transparent; border-bottom: 2px solid var(--primary); }}.tags{text-align:center;padding-bottom:2rem;a { display: inline-block; vertical-align: middle; line-height: normal; padding: .4rem .6rem; border: 1px solid var(--light-border-color); color: var(--bright-font-color); font-size: .9rem; font-weight: 600; border-radius: 8px; text-transform: lowercase; } a:hover { background: var(--primary); color: var(--background-color); }}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:var(--font-family);font-size:1rem;line-height:1.65;color:var(--font-color);background:var(--background-color);color-scheme:light dark;margin-top:var(--header-height)}main{h1 { font-weight: 600; margin-bottom: .75rem; color: var(--bright-font-color); } h2 { font-size: 2rem; padding-bottom: .25rem; font-weight: 600; border-bottom: 1px solid var(--light-border-color); }}@media screen and (max-width:800px){main h1{font-size:2.3rem;line-height:1.2}}main.home{h1 { font-size: 3rem; margin-top: 0; margin-bottom: 0; } p { font-size: 1.2rem; margin-top: 0; } div.social { margin-bottom: 4rem; border-bottom: none; a { border-bottom: none; background: none; } a:hover svg { fill: var(--primary); opacity: 100%; } } svg { fill: var(--font-color); opacity: 70%; width: 35px; height: 35px; margin-right: 1rem; }}a:link,a:visited{text-decoration:none;color:inherit}figcaption{text-align:center;font-style:oblique;p { margin-top: 4px; }}blockquote{padding:1.5rem;border:1px solid var(--border-color);border-left:4px solid var(--primary);background:var(--blockquote-background-color);border-radius:8px;margin:0 0 2rem;font-family:var(--post-font-family);p { margin: 0; }}:not(pre)>code{-webkit-font-smoothing:subpixel-antialiased;padding:2px 5px;background:var(--inline-code-background-color) !important;font-weight:500;color:var(--inline-code-color) !important;font-size:.95rem !important;white-space:pre-wrap;border-radius:6px;overflow-wrap:break-word;font-family:var(--code-font-family)}main.taxonomy,main.section,main.term{h1 { text-align: center; font-size: 2.75rem; margin-top: 0; line-height: 1; }}.post-list-post{h3 { color: var(--font-color); margin-top: 0; margin-bottom: 0; } a:hover { background-color: #f5f5f5; color: var(--font-color); } a { border-bottom: none; display: grid; grid-template-columns: auto 100px; align-items: center; margin-bottom: 1rem; } time { font-weight: 400; text-align: right; }}a.view-all{align-self:center}a.no-highlight{border-bottom:none}a.no-highlight:hover{background:0 0;color:inherit}.fs-1{font-size:1rem}.d-flex{display:flex}.d-block{display:block}.d-inline{display:inline}.d-inline-flex{display:inline-flex}.column{flex:50%}.ta-center{text-align:center}.icon-sm{float:right;.icon { width: 25px; vertical-align: bottom; fill: var(--font-color); padding-bottom: 4px; }}.subtitle{font-size:1.2rem;margin-bottom:0;line-height:1.4;color:var(--dark-font-color);font-weight:100}.link-pub-date{color:var(--dark-font-color)}