.bg{color:#586e75;background-color:#fdf6e3}.chroma{color:#586e75;background-color:#fdf6e3;-webkit-text-size-adjust:none}.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:#e3ddcc}.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){:root:not([data-theme=light]) .bg{color:#93a1a1;background-color:#002b36}:root:not([data-theme=light]) .chroma{color:#93a1a1;background-color:#002b36;-webkit-text-size-adjust:none}:root:not([data-theme=light]) .chroma .x{color:#cb4b16}:root:not([data-theme=light]) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme=light]) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme=light]) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme=light]) .chroma .hl{background-color:#19404a}:root:not([data-theme=light]) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#495050}:root:not([data-theme=light]) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#495050}:root:not([data-theme=light]) .chroma .line{display:flex}:root:not([data-theme=light]) .chroma .k{color:#719e07}:root:not([data-theme=light]) .chroma .kc{color:#cb4b16}:root:not([data-theme=light]) .chroma .kd{color:#268bd2}:root:not([data-theme=light]) .chroma .kn{color:#719e07}:root:not([data-theme=light]) .chroma .kp{color:#719e07}:root:not([data-theme=light]) .chroma .kr{color:#268bd2}:root:not([data-theme=light]) .chroma .kt{color:#dc322f}:root:not([data-theme=light]) .chroma .na{color:#93a1a1}:root:not([data-theme=light]) .chroma .nc{color:#268bd2}:root:not([data-theme=light]) .chroma .no{color:#cb4b16}:root:not([data-theme=light]) .chroma .nd{color:#268bd2}:root:not([data-theme=light]) .chroma .ni{color:#cb4b16}:root:not([data-theme=light]) .chroma .ne{color:#cb4b16}:root:not([data-theme=light]) .chroma .nt{color:#268bd2}:root:not([data-theme=light]) .chroma .nb{color:#b58900}:root:not([data-theme=light]) .chroma .bp{color:#268bd2}:root:not([data-theme=light]) .chroma .nv{color:#268bd2}:root:not([data-theme=light]) .chroma .vc{color:#268bd2}:root:not([data-theme=light]) .chroma .vg{color:#268bd2}:root:not([data-theme=light]) .chroma .vi{color:#268bd2}:root:not([data-theme=light]) .chroma .vm{color:#268bd2}:root:not([data-theme=light]) .chroma .nf{color:#268bd2}:root:not([data-theme=light]) .chroma .fm{color:#268bd2}:root:not([data-theme=light]) .chroma .s{color:#2aa198}:root:not([data-theme=light]) .chroma .sa{color:#2aa198}:root:not([data-theme=light]) .chroma .sb{color:#586e75}:root:not([data-theme=light]) .chroma .sc{color:#2aa198}:root:not([data-theme=light]) .chroma .dl{color:#2aa198}:root:not([data-theme=light]) .chroma .sd{color:#93a1a1}:root:not([data-theme=light]) .chroma .s2{color:#2aa198}:root:not([data-theme=light]) .chroma .se{color:#cb4b16}:root:not([data-theme=light]) .chroma .sh{color:#93a1a1}:root:not([data-theme=light]) .chroma .si{color:#2aa198}:root:not([data-theme=light]) .chroma .sx{color:#2aa198}:root:not([data-theme=light]) .chroma .sr{color:#dc322f}:root:not([data-theme=light]) .chroma .s1{color:#2aa198}:root:not([data-theme=light]) .chroma .ss{color:#2aa198}:root:not([data-theme=light]) .chroma .m{color:#2aa198}:root:not([data-theme=light]) .chroma .mb{color:#2aa198}:root:not([data-theme=light]) .chroma .mf{color:#2aa198}:root:not([data-theme=light]) .chroma .mh{color:#2aa198}:root:not([data-theme=light]) .chroma .mi{color:#2aa198}:root:not([data-theme=light]) .chroma .il{color:#2aa198}:root:not([data-theme=light]) .chroma .mo{color:#2aa198}:root:not([data-theme=light]) .chroma .o{color:#719e07}:root:not([data-theme=light]) .chroma .ow{color:#719e07}:root:not([data-theme=light]) .chroma .or{color:#719e07}:root:not([data-theme=light]) .chroma .c{color:#586e75}:root:not([data-theme=light]) .chroma .ch{color:#586e75}:root:not([data-theme=light]) .chroma .cm{color:#586e75}:root:not([data-theme=light]) .chroma .c1{color:#586e75}:root:not([data-theme=light]) .chroma .cs{color:#719e07}:root:not([data-theme=light]) .chroma .cp{color:#719e07}:root:not([data-theme=light]) .chroma .cpf{color:#719e07}:root:not([data-theme=light]) .chroma .gd{color:#dc322f}:root:not([data-theme=light]) .chroma .ge{font-style:italic}:root:not([data-theme=light]) .chroma .gr{color:#dc322f;font-weight:700}:root:not([data-theme=light]) .chroma .gh{color:#cb4b16}:root:not([data-theme=light]) .chroma .gi{color:#719e07}:root:not([data-theme=light]) .chroma .gs{font-weight:700}:root:not([data-theme=light]) .chroma .gu{color:#268bd2}}:root[data-theme=dark] .bg{color:#93a1a1;background-color:#002b36}:root[data-theme=dark] .chroma{color:#93a1a1;background-color:#002b36;-webkit-text-size-adjust:none}:root[data-theme=dark] .chroma .x{color:#cb4b16}: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:#19404a}:root[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#495050}:root[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#495050}:root[data-theme=dark] .chroma .line{display:flex}:root[data-theme=dark] .chroma .k{color:#719e07}:root[data-theme=dark] .chroma .kc{color:#cb4b16}:root[data-theme=dark] .chroma .kd{color:#268bd2}:root[data-theme=dark] .chroma .kn{color:#719e07}:root[data-theme=dark] .chroma .kp{color:#719e07}:root[data-theme=dark] .chroma .kr{color:#268bd2}:root[data-theme=dark] .chroma .kt{color:#dc322f}:root[data-theme=dark] .chroma .na{color:#93a1a1}:root[data-theme=dark] .chroma .nc{color:#268bd2}:root[data-theme=dark] .chroma .no{color:#cb4b16}:root[data-theme=dark] .chroma .nd{color:#268bd2}:root[data-theme=dark] .chroma .ni{color:#cb4b16}:root[data-theme=dark] .chroma .ne{color:#cb4b16}:root[data-theme=dark] .chroma .nt{color:#268bd2}:root[data-theme=dark] .chroma .nb{color:#b58900}:root[data-theme=dark] .chroma .bp{color:#268bd2}:root[data-theme=dark] .chroma .nv{color:#268bd2}:root[data-theme=dark] .chroma .vc{color:#268bd2}:root[data-theme=dark] .chroma .vg{color:#268bd2}:root[data-theme=dark] .chroma .vi{color:#268bd2}:root[data-theme=dark] .chroma .vm{color:#268bd2}:root[data-theme=dark] .chroma .nf{color:#268bd2}:root[data-theme=dark] .chroma .fm{color:#268bd2}:root[data-theme=dark] .chroma .s{color:#2aa198}:root[data-theme=dark] .chroma .sa{color:#2aa198}:root[data-theme=dark] .chroma .sb{color:#586e75}:root[data-theme=dark] .chroma .sc{color:#2aa198}:root[data-theme=dark] .chroma .dl{color:#2aa198}:root[data-theme=dark] .chroma .sd{color:#93a1a1}:root[data-theme=dark] .chroma .s2{color:#2aa198}:root[data-theme=dark] .chroma .se{color:#cb4b16}:root[data-theme=dark] .chroma .sh{color:#93a1a1}:root[data-theme=dark] .chroma .si{color:#2aa198}:root[data-theme=dark] .chroma .sx{color:#2aa198}:root[data-theme=dark] .chroma .sr{color:#dc322f}:root[data-theme=dark] .chroma .s1{color:#2aa198}:root[data-theme=dark] .chroma .ss{color:#2aa198}:root[data-theme=dark] .chroma .m{color:#2aa198}:root[data-theme=dark] .chroma .mb{color:#2aa198}:root[data-theme=dark] .chroma .mf{color:#2aa198}:root[data-theme=dark] .chroma .mh{color:#2aa198}:root[data-theme=dark] .chroma .mi{color:#2aa198}:root[data-theme=dark] .chroma .il{color:#2aa198}:root[data-theme=dark] .chroma .mo{color:#2aa198}:root[data-theme=dark] .chroma .o{color:#719e07}:root[data-theme=dark] .chroma .ow{color:#719e07}:root[data-theme=dark] .chroma .or{color:#719e07}:root[data-theme=dark] .chroma .c{color:#586e75}:root[data-theme=dark] .chroma .ch{color:#586e75}:root[data-theme=dark] .chroma .cm{color:#586e75}:root[data-theme=dark] .chroma .c1{color:#586e75}:root[data-theme=dark] .chroma .cs{color:#719e07}:root[data-theme=dark] .chroma .cp{color:#719e07}:root[data-theme=dark] .chroma .cpf{color:#719e07}:root[data-theme=dark] .chroma .gd{color:#dc322f}:root[data-theme=dark] .chroma .ge{font-style:italic}:root[data-theme=dark] .chroma .gr{color:#dc322f;font-weight:700}:root[data-theme=dark] .chroma .gh{color:#cb4b16}:root[data-theme=dark] .chroma .gi{color:#719e07}:root[data-theme=dark] .chroma .gs{font-weight:700}:root[data-theme=dark] .chroma .gu{color:#268bd2}:root{--bg:#fff;--text:#333;--muted:#aaa;--muted-strong:#6a6a6a;--link:#0645ad;--border:#eaeaea;--code-bg:#fcfcfc;--code-text:#d1442b;--badge-bg:#333;--badge-text:#eee;--notice-border:#797979;--mono:Inconsolata, Monaco, Consolas, "Courier New", monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111;--text:#e4e4e4;--muted:#7d7d7d;--muted-strong:#a8a8a8;--link:#6ea8fe;--border:#2a2a2a;--code-bg:#181818;--code-text:#ff8a73;--badge-bg:#e4e4e4;--badge-text:#111;--notice-border:#555}}:root[data-theme=dark]{--bg:#111;--text:#e4e4e4;--muted:#7d7d7d;--muted-strong:#a8a8a8;--link:#6ea8fe;--border:#2a2a2a;--code-bg:#181818;--code-text:#ff8a73;--badge-bg:#e4e4e4;--badge-text:#111;--notice-border:#555}blockquote,body,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,ol,p,pre,ul{margin:0;padding:0}blockquote,dl,figure,h1,h2,h3,h4,h5,h6,ol,p,pre,table,ul{margin-bottom:1rem}body{font:300 16px/1.5 var(--sans);color:var(--text);background-color:var(--bg)}img{display:block;margin:auto;max-width:100%;height:auto}figcaption{font-size:.875rem;text-align:center;color:var(--muted-strong)}ol,ul{margin-left:2rem}li>ol,li>ul{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-weight:300}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}blockquote{color:var(--muted-strong);padding-left:1rem;border-left:2px solid var(--border);font-style:italic;font-size:.875rem}blockquote>:last-child{margin-bottom:0}code,pre{background-color:var(--code-bg)}code{padding:1px 5px;font-family:var(--mono);color:var(--code-text);overflow-wrap:break-word}pre{font-size:12px;padding:8px 12px;overflow-x:auto;border:1px solid var(--border)}pre>code{padding:0;color:inherit;background:0 0;tab-size:4}.highlight{margin-bottom:1rem}.highlight pre{margin-bottom:0}:root .highlight .chroma{background-color:var(--code-bg)}table{width:100%;border-collapse:collapse;margin-bottom:1rem}td,th{padding:.5rem}th{text-align:left;vertical-align:bottom;border-bottom:2px solid var(--border)}td{vertical-align:top;border-bottom:1px solid var(--border)}hr{border:none;border-top:1px solid var(--border);margin:2rem auto}.page{max-width:53rem;margin:1rem auto;padding:0 1.5rem;box-sizing:border-box}.site-header{margin:1rem 0 2rem;border-bottom:1px solid var(--border)}.site-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:0;padding:.4rem;cursor:pointer;opacity:.7}.theme-toggle:hover,.theme-toggle:focus-visible{opacity:1}.theme-toggle-dot{width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid var(--text);background:linear-gradient(90deg,var(--text) 50%,var(--bg) 50%)}.site-title{font-size:1.5rem;font-weight:700;margin-bottom:.75rem}.site-title a,.site-title a:hover{text-decoration:none;letter-spacing:2px;background-color:var(--badge-bg);color:var(--badge-text);padding:.2rem .5rem}.site-description{font-size:.875rem;color:var(--muted-strong)}.site-nav{font-size:.875rem}.site-nav a{margin-right:.75rem}.site-nav a[aria-current=page]{color:var(--text)}.post-list{list-style:none;margin-left:0}.post-list>li{margin-bottom:.5rem}.post-list>li a{color:var(--text);font-weight:400}.post-list>li a:hover{color:var(--link);text-decoration:underline}.post-list time{font-size:.875rem;color:var(--muted);white-space:nowrap}@media(max-width:600px){.post-list time{display:block}}.list-title{font-size:1.25rem;margin-bottom:1.5rem}.list-title span{color:var(--link)}.post-header{margin-bottom:2rem}.post-title{font-size:2rem;letter-spacing:-1px;line-height:1.2;margin-bottom:.5rem;font-weight:700}.post-meta{font-size:.875rem;font-family:var(--mono);color:var(--muted);margin-bottom:0}.post-meta a{color:var(--muted-strong)}.tags a{background:var(--border);padding:.1rem .5rem}.notice{margin:1.5rem 0;padding:.5rem 0;border-top:1px solid var(--notice-border);border-bottom:1px solid var(--notice-border);text-align:center}.post-content{margin-bottom:2rem;font-weight:400;text-align:justify;hyphens:auto}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin-top:2rem;font-weight:400;text-align:left}.post-content h1,.post-content h2{font-size:2rem}.post-content h3{font-size:1.5rem}.post-content h4{font-size:1.25rem}.post-content h5,.post-content h6{font-size:1rem}.footnotes{font-size:.8em}.footnotes hr{margin:2rem 0 1rem}.footnotes p{margin-bottom:.25rem}.post-nav{display:flex;justify-content:space-between;gap:1rem;font-size:.875rem;border-top:1px solid var(--border);padding-top:1rem}.post-nav .next{margin-left:auto;text-align:right}.site-footer{margin-top:2rem;font-size:.875rem;font-family:var(--mono);color:var(--muted)}.site-footer a{color:var(--muted-strong)}.copyleft{display:inline-block;transform:rotate(180deg)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}.post-content img{border:1px solid var(--border);background:var(--code-bg);padding:4px;border-radius:3px}.post-content img{cursor:zoom-in}.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.92)}.lightbox.open{display:flex}.lightbox-img{max-width:92vw;max-height:86vh;object-fit:contain;cursor:zoom-out;border:0;padding:0;background:0 0;border-radius:0}.lightbox-btn{position:absolute;background:0 0;border:0;color:#fff;line-height:1;cursor:pointer;opacity:.65;padding:1rem;user-select:none}.lightbox-btn:hover,.lightbox-btn:focus-visible{opacity:1}.lightbox-close{top:.3rem;right:.6rem;font-size:2.6rem}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);font-size:3rem}.lightbox-prev{left:.3rem}.lightbox-next{right:.3rem}.lightbox-count{position:absolute;top:1rem;left:1rem;color:#bbb;font:.875rem var(--mono)}.lightbox-caption{position:absolute;bottom:1rem;left:0;right:0;text-align:center;color:#ddd;font:.875rem var(--mono);padding:0 3.5rem}