html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring{outline:1px dotted ButtonText}[type=button]:-moz-focusring{outline:1px dotted ButtonText}[type=reset]:-moz-focusring{outline:1px dotted ButtonText}[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}:is(){height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template,[hidden]{display:none}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:local(Ubuntu Mono),local(UbuntuMono-Regular),url(📌a7d6d5ff)format("woff2"),url(📌939ccd6d)format("woff")}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:local(Ubuntu Mono Italic),local(UbuntuMono-Italic),url(📌d7cb751b)format("woff2"),url(📌95d125b9)format("woff")}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:local(Ubuntu Mono Bold),local(UbuntuMono-Bold),url(📌81886cd9)format("woff2"),url(📌08a0a2f3)format("woff")}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:700;src:local(Ubuntu Mono Bold Italic),local(UbuntuMono-BoldItalic),url(📌acd35f57)format("woff2"),url(📌8fbf0cbd)format("woff")}:root{--black:#000;--blue:#07a;--green:#690;--gray:#708090;--purple:#905;--white:#999;--orange:#dc5c00;--red:#dd4a68;--yellow:#ce8d00}.aha .reset{color:var(--black)}.aha .bg-reset{background-color:unset}.aha .black{color:var(--black)}.aha .red{color:var(--red)}.aha .green{color:var(--green)}.aha .yellow{color:var(--yellow)}.aha .blue{color:var(--blue)}.aha .purple{color:var(--orange)}.aha .cyan{color:var(--purple)}.aha .white{color:var(--white)}.aha .bg-black{background-color:var(--black)}.aha .bg-red{background-color:var(--red)}.aha .bg-green{background-color:var(--green)}.aha .bg-yellow{background-color:var(--yellow)}.aha .bg-blue{background-color:var(--blue)}.aha .bg-purple{background-color:var(--orange)}.aha .bg-cyan{background-color:var(--purple)}.aha .bg-white{background-color:var(--white)}.aha .underline{text-decoration:underline}.aha .bold{font-weight:700}.aha .blink{text-decoration:blink}:is(code[class*=language-],pre[class*=language-]) .token.cdata,:is(code[class*=language-],pre[class*=language-]) .token.comment,:is(code[class*=language-],pre[class*=language-]) .token.doctype,:is(code[class*=language-],pre[class*=language-]) .token.prolog,:is(code[class*=language-],pre[class*=language-]) .token.punctuation,:is(code[class*=language-],pre[class*=language-]) .token.shebang{color:var(--gray)}:is(code[class*=language-],pre[class*=language-]) .token.number{color:var(--black)}:is(code[class*=language-],pre[class*=language-]) .token.boolean,:is(code[class*=language-],pre[class*=language-]) .token.entity,:is(code[class*=language-],pre[class*=language-]) .token.symbol{color:var(--blue)}:is(code[class*=language-],pre[class*=language-]) .token.char,:is(code[class*=language-],pre[class*=language-]) .token.regex,:is(code[class*=language-],pre[class*=language-]) .token.string,:is(code[class*=language-],pre[class*=language-]) .token.url,:is(code[class*=language-],pre[class*=language-]) .token.attr-value{color:var(--yellow)}:is(code[class*=language-],pre[class*=language-]) .token.atrule,:is(code[class*=language-],pre[class*=language-]) .token.keyword,:is(code[class*=language-],pre[class*=language-]) .token.operator,:is(code[class*=language-],pre[class*=language-]) .token.shell-symbol,:is(code[class*=language-],pre[class*=language-]) .token.tag{color:var(--purple)}:is(code[class*=language-],pre[class*=language-]) .token.attr-name,:is(code[class*=language-],pre[class*=language-]) .token.property{color:var(--blue)}:is(code[class*=language-],pre[class*=language-]) .token.function,:is(code[class*=language-],pre[class*=language-]) .token.selector{color:var(--green)}:is(code[class*=language-],pre[class*=language-]) .token.parameter{color:var(--blue)}:is(code[class*=language-],pre[class*=language-]) .token.constant,:is(code[class*=language-],pre[class*=language-]) .token.variable:not(.parameter){color:var(--orange)}:is(code[class*=language-],pre[class*=language-]) .token.variable:not(.parameter){font-style:italic}:is(code[class*=language-],pre[class*=language-]) .token.variable:not(.parameter)>.token:not(.variable:not(.parameter)){font-style:normal}:is(code[class*=language-],pre[class*=language-]) .token.builtin,:is(code[class*=language-],pre[class*=language-]) .token.class-name:not(.builtin){color:var(--blue)}:is(code[class*=language-],pre[class*=language-]) .token.bold{font-weight:700}:is(code[class*=language-],pre[class*=language-]) .token.italic{font-style:italic}:is(code[class*=language-],pre[class*=language-]) .token.important:not(.shebang,.shell-symbol),:is(code[class*=language-],pre[class*=language-]) .token.deleted{color:var(--red)}:is(code[class*=language-],pre[class*=language-]) .token.inserted{color:var(--green)}@font-face{font-display:swap;font-family:remote-serif;font-style:normal;font-weight:400 800;src:url(📌dd7c933c)format("woff2");unicode-range:U+A,U+20-7E,U+A0,U+B0,U+B9,U+D7,U+E9,U+261,U+26A,U+292,U+3B1,U+3BC,U+3D5,U+200C,U+2013,U+2014,U+2019,U+201C,U+201D,U+2026,U+2070,U+2192,U+2248,U+2591-2593,U+26D4,U+2705,U+276F}@font-face{font-display:swap;font-family:remote-serif;font-style:italic;font-weight:400 800;src:url(📌bc5e8b9d)format("woff2");unicode-range:U+A,U+20,U+21,U+26,U+27,U+2E,U+2F,U+3F,U+42-49,U+4C-50,U+53,U+54,U+56,U+57,U+61-7A}@font-face{font-family:fallback;src:local(Times New Roman);size-adjust:92.2%}@keyframes arrow{0%{opacity:0;transform:translateY(1em)rotate(90deg)}50%{opacity:1;transform:rotate(90deg)}to{opacity:.25}}@keyframes firefox-bug-385615{0%{padding-right:.001px}to{padding-right:0}}:root{--background:#fff;--background-transparent:#fff0;--foreground:#000;--indent:2rem;--line:#555;--line-height:1.5;--line-subtle:#ddd;--link-focus:#efcb8c;--link-unvisited:#7aaad4;--link-visited:#af98ce;--sans-color:#181818;--sans-family:system-ui;--sans-features:"liga","clig","onum";--serif-family:remote-serif,"EB Garamond","Garamond",fallback,serif;--serif-features:"liga","clig","dlig","onum";--mono-color:#181818;--mono-family:"Ubuntu Mono","Consolas","Liberation Mono","Menlo",monospace}@supports (color:lab(0% 0 0)){:root{--link-focus:#efcb8c;--link-unvisited:#7aaad4;--link-visited:#af98ce}@supports (color:lab(0% 0 0)){:root{--link-focus:lab(83.9053% 7.04682 36.3792);--link-unvisited:lab(67.4309% -8.57839 -26.6393);--link-visited:lab(66.4943% 16.5453 -24.3368)}}}.dark{--background:#000;--foreground:#bbb}*,:after,:before{box-sizing:border-box}:root{--full:36rem;--full-figure:60rem}@media (max-width:calc(36rem - .001px)){.show-full{display:none}}:is(html):not(.no-fonts) .show-no-fonts{display:none}.sr-only{clip:rect(0,0,0,0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}body{background-color:var(--background);color:var(--foreground);line-height:var(--line-height);text-rendering:optimizelegibility}body,.serif{font-family:var(--serif-family);font-feature-settings:var(--serif-features)}:is(body,.serif){font-size:1.08333rem}@media (min-width:20rem){:is(body,.serif){font-size:calc(1.66667vw + .75rem)}}@media (min-width:30rem){:is(body,.serif){font-size:1.25rem}}blockquote,details,dl,figure,h1,h2,h3,h4,h5,h6,ol,p,ul{margin-top:0;margin-bottom:1.16667em}:is(ol,p,ul){margin-top:-.166667em}:is(ol,p,ul)+:is(ol,p,ul),:is(ol,p,ul)+blockquote{margin-top:-.5em}html:not(.no-fonts) abbr.acronym{font-feature-settings:var(--serif-features),"pcap";text-transform:lowercase}html:not(.no-fonts) abbr.acronym.title{-moz-animation:1ms firefox-bug-385615;display:inline-block}html:not(.no-fonts) abbr.acronym.title:first-letter{text-transform:uppercase}blockquote,figcaption,kbd,samp,summary,table{color:var(--sans-color);font-family:var(--sans-family);font-feature-settings:var(--sans-features)}:is(blockquote,figcaption,kbd,samp,summary,table){font-size:.916667rem}@media (min-width:20rem){:is(blockquote,figcaption,kbd,samp,summary,table){font-size:calc(.520833vw + .8125rem)}}@media (min-width:36rem){:is(blockquote,figcaption,kbd,samp,summary,table){font-size:1rem}}blockquote,table{line-height:1.66667}blockquote{border-left:1.5px solid var(--line);margin-top:0;margin-left:1.5px;margin-right:0;padding:0 0 0 calc(1em - 3px);overflow:hidden}blockquote>:last-child{margin-bottom:0}blockquote>:is(ol,p,ul):last-child{margin-bottom:-.333333em}h1{text-align:center;margin-bottom:2rem;font-size:1.08333rem}@media (min-width:20rem){h1{font-size:calc(.833334vw + .916667rem)}}@media (min-width:30rem){h1{font-size:1.16667rem}}:is(html):not(.no-fonts) :is(h1){font-feature-settings:var(--serif-features),"pcap";text-transform:lowercase;font-weight:450}h2{text-align:center;font-size:1.33333rem}@media (min-width:20rem){h2{font-size:calc(3.33333vw + .666667rem)}}@media (min-width:30rem){h2{font-size:1.66667rem}}:is(html):not(.no-fonts) :is(h2){font-feature-settings:var(--serif-features),"pcap";text-transform:lowercase;font-weight:400}abbr,code,kbd,pre,samp{-webkit-hyphens:none;hyphens:none}code,pre{font-family:var(--mono-family)}:not(pre)>code{color:var(--mono-color);line-height:unset;font-size:.916667rem}@media (min-width:20rem){:not(pre)>code{font-size:calc(1.04167vw + .708333rem)}}@media (min-width:36rem){:not(pre)>code{font-size:1.08333rem}}pre{line-height:1}pre>code{padding-top:.333333em;padding-bottom:.483333em;font-size:.833333rem;line-height:1.3}@media (min-width:20rem){pre>code{font-size:calc(1.04167vw + .625rem)}}@media (min-width:36rem){pre>code{font-size:1rem}}img{font-family:system-ui;font-size:1rem}picture>img{margin-left:auto;margin-right:auto;display:block}summary{cursor:pointer}a{color:inherit}a:not(.photo,.photo-view,.plain){--mark-margin-left:.072em;--mark-margin-right:.12em;--mark-position:-.59em;--mark-size:.14em;--mark-transform:translateY(var(--mark-position))rotate(45deg);--shift:.05em;--underline-color:var(--link-unvisited);--underline-offset:.18em;--underline-thickness:1.5pt;padding-right:var(--mark-margin-right)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){a:not(.photo,.photo-view,.plain){--mark-size:.11em}}a:not(.photo,.photo-view,.plain),a:not(.photo,.photo-view,.plain)>abbr.title{-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:var(--underline-thickness);text-underline-offset:calc(var(--underline-offset) + var(--shift));transition-property:text-underline-offset}a:not(.photo,.photo-view,.plain),a:not(.photo,.photo-view,.plain)>abbr.title,a:not(.photo,.photo-view,.plain):after{transition-duration:.15s;transition-timing-function:ease-in}a:not(.photo,.photo-view,.plain):after{content:"";height:var(--mark-size);margin-left:var(--mark-margin-left);margin-right:calc(-1*(var(--mark-size) + var(--mark-margin-left)));opacity:1;transform:var(--mark-transform);transform-origin:50%;width:var(--mark-size);background-color:currentColor;transition-property:opacity,transform;display:inline-block}a:not(.photo,.photo-view,.plain).trailed-low{--mark-margin-right:0em}a:not(.photo,.photo-view,.plain).trailed-high{--mark-margin-right:.18em}a:not(.photo,.photo-view,.plain) code{transition-property:color;transition-duration:.15s;transition-timing-function:ease-in}a:not(.photo,.photo-view,.plain):focus{outline:none}a:not(.photo,.photo-view,.plain):focus:not(:hover){--underline-color:var(--link-focus)}a:not(.photo,.photo-view,.plain):visited{--underline-color:var(--link-visited)}a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover),a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover)>abbr.title{text-decoration:underline;-webkit-text-decoration-color:var(--underline-color);-webkit-text-decoration-color:var(--underline-color);text-decoration-color:var(--underline-color);text-decoration-thickness:var(--underline-thickness);text-underline-offset:var(--underline-offset)}a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover),a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover)>abbr.title,a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover):after{transition-timing-function:ease-out}a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover):after{opacity:0;transform:translateY(calc(-1*var(--shift)))var(--mark-transform)}a:not(.photo,.photo-view,.plain):where(:active,:focus,:hover) code{transition-timing-function:ease-out}.no-link-marks a:not(.photo,.photo-view,.plain),a:not(.photo,.photo-view,.plain).no-link-marks,.links li>a:not(.photo,.photo-view,.plain){--shift:0}:is(.no-link-marks a:not(.photo,.photo-view,.plain),a:not(.photo,.photo-view,.plain).no-link-marks,.links li>a:not(.photo,.photo-view,.plain)):after{display:none}ol{margin-left:0;padding-left:0}ol>li{margin-left:calc(1em + 1ch)}ul{margin-left:0;padding-left:0;list-style:none}ul>li{margin-left:calc(1em + 1ch);position:relative}ul>li:before{background-color:var(--foreground);content:"";width:.18em;height:.18em;display:block;position:absolute;top:.69em;left:-1ch}td,th{text-align:left}:is(td,th)>img,:is(td,th)>picture>img{display:block}.content.display{-webkit-hyphens:none;hyphens:none}@media (min-width:36rem){.content.display dl{grid-template-columns:auto auto;display:grid}}:is(html):not(.no-fonts) .content.display dt{font-feature-settings:var(--serif-features),"pcap";text-transform:lowercase;font-weight:425}.content.display dd{margin-left:1em}.content.display .alphanumeric{font-feature-settings:var(--serif-features),"pcap"}html{height:100%}body{flex-flow:column;justify-content:center;align-items:center;min-height:100%;display:flex;overflow-x:hidden}body>section{flex-flow:column;justify-content:center;align-items:center;display:flex}.centerpiece{min-height:100svh}.centerpiece.hint:after{bottom:calc(.5em*var(--line-height));content:"❯";pointer-events:none;text-align:center;transform-origin:50%;z-index:10;animation:1s 2s both arrow;display:block;position:fixed;left:0;right:0;transform:rotate(90deg)}:is(html).apple .centerpiece{min-height:-webkit-fill-available}.post{padding-bottom:var(--margin);padding-top:calc(var(--margin) + 1rem);--margin:calc(1rem*(1));width:100%}@media (min-width:38rem){.post{--margin:calc(1rem*(1) + (100vw - 38rem)/(60 - 38)*((6) - (1)))}}@media (min-width:60rem){.post{--margin:calc(1rem*(6))}}.content{-webkit-hyphens:auto;hyphens:auto;flex-flow:column;align-items:center;max-width:100%;display:flex;position:relative}.content>figure{flex-flow:column;align-items:center;width:100%;display:flex}.content>figure>a{display:block}:is(.content>figure,.content>figure>a)>picture{width:100%}:is(.content>figure,.content>figure>a)>svg{width:auto}:is(.content>figure,.content>figure>a)>picture>img,:is(.content>figure,.content>figure>a)>svg,:is(.content>figure,.content>figure>a)>video{object-fit:contain;max-width:100%;height:auto;max-height:100svh}@media (min-width:60rem){:is(:is(.content>figure,.content>figure>a)>picture>img,:is(.content>figure,.content>figure>a)>svg,:is(.content>figure,.content>figure>a)>video){max-width:var(--full-figure)}}:is(.content>figure,.content>figure>a)>figcaption,:is(.content>figure,.content>figure>a)>table,:is(.content>figure,.content>figure>a)>picture>img.whole,:is(.content>figure,.content>figure>a)>svg.whole,:is(.content>figure,.content>figure>a)>video.whole{max-width:calc(100% - 2rem)}@media (min-width:62rem){:is(:is(.content>figure,.content>figure>a)>figcaption,:is(.content>figure,.content>figure>a)>table,:is(.content>figure,.content>figure>a)>picture>img.whole,:is(.content>figure,.content>figure>a)>svg.whole,:is(.content>figure,.content>figure>a)>video.whole){max-width:var(--full-figure)}}.content>figure>.scrollable-wrapper{align-self:flex-start}.content>figure>.scrollable-wrapper>.scrollable{padding-left:calc(max(1rem,(100vw - var(--full))/2))}.content>blockquote table,.content>figure table{border-collapse:collapse;border-color:var(--line-subtle);vertical-align:middle}:is(.content>blockquote table,.content>figure table) tbody,:is(.content>blockquote table,.content>figure table) td,:is(.content>blockquote table,.content>figure table) tfoot,:is(.content>blockquote table,.content>figure table) th,:is(.content>blockquote table,.content>figure table) thead,:is(.content>blockquote table,.content>figure table) tr{border-color:inherit;border-style:solid;border-width:0}:is(.content>blockquote table,.content>figure table)>tbody{vertical-align:inherit}:is(.content>blockquote table,.content>figure table)>thead{vertical-align:bottom}:is(.content>blockquote table,.content>figure table)>:not(caption)>*>*{border-bottom-width:1pt;padding:.666667rem .5rem .5rem}:is(.content>blockquote table,.content>figure table)>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}:is(.content>blockquote table,.content>figure table)>:last-child>:last-child>*{border-bottom-width:0}.content>blockquote,.content>details,.content:not(.centerpiece)>dl,.content>:is(ol,p,ul){width:100%;max-width:calc(100% - 2rem)}@media (min-width:38rem){:is(.content>blockquote,.content>details,.content:not(.centerpiece)>dl,.content>:is(ol,p,ul)){max-width:var(--full)}}.photo-view:not(.zoomed) img{width:auto;max-width:100%;height:auto;max-height:100vh}.photo-view.zoomable:not(.zoomed) img{cursor:zoom-in}.photo-view.zoomable.zoomed img{cursor:zoom-out}.photo-view.zoomed:not(.fit-height){overflow-x:hidden;overflow-y:auto}.photo-view.zoomed:not(.fit-height) img{max-width:100vw;height:auto}.photo-view.zoomed.fit-height{align-items:flex-start;overflow-x:auto;overflow-y:hidden}.photo-view.zoomed.fit-height img{width:auto;max-height:100vh}.photos{flex-flow:wrap;display:flex}.photos .photo{-webkit-user-select:none;user-select:none}.photos .photo:not(.wide) img{width:100%;height:auto}.photos .photo.wide{-ms-overflow-style:none;scrollbar-width:none;max-width:100vw;overflow-x:auto}.photos .photo.wide::-webkit-scrollbar{display:none}.photos .photo.wide img{width:auto;height:66.6667vw}.photos-navigation{min-width:100%}.photos-navigation>a{justify-content:center;align-items:center;padding-top:2rem;padding-bottom:2rem;text-decoration:none;transition-property:background-color;transition-duration:.15s;transition-timing-function:ease;display:flex}.photos-navigation>a:hover{background-color:#111}.scrollable-wrapper{max-width:100%}.scrollable-wrapper>.scrollable{--fade:1rem;--shade:calc(1rem*2/3);--shadow:#0002;background:var(--background)no-repeat;background-image:radial-gradient(farthest-side at 0 50%,var(--shadow),var(--background)),radial-gradient(farthest-side at 100% 50%,var(--shadow),var(--background));background-position:0 0,100% 0;background-size:var(--shade)100%;overscroll-behavior-x:none;margin:0;position:relative;overflow-x:auto}.scrollable-wrapper>.scrollable>.scrollable-content{float:left;z-index:10;min-width:100%;padding:0 1em;position:relative}.scrollable-wrapper>.scrollable>.scrollable-content:before,.scrollable-wrapper>.scrollable>.scrollable-content:after{content:"";width:calc(var(--shade) + var(--fade));z-index:-10;display:block;position:absolute;top:0;bottom:0}.scrollable-wrapper>.scrollable>.scrollable-content:before{background-image:linear-gradient(to right,var(--background),var(--background)var(--shade),var(--background-transparent));left:0}.scrollable-wrapper>.scrollable>.scrollable-content:after{background-image:linear-gradient(to left,var(--background),var(--background)var(--shade),var(--background-transparent));right:0}img.crisp{image-rendering:crisp-edges}