@font-face{font-family:'Recursive Mono';font-style:normal;font-weight:300 800;font-display:swap;src:url("/assets/fonts/recursive-mono/cyrillic-ext.woff2") format("woff2");unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}@font-face{font-family:'Recursive Mono';font-style:normal;font-weight:300 800;font-display:swap;src:url("/assets/fonts/recursive-mono/vietnamese.woff2") format("woff2");unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB}@font-face{font-family:'Recursive Mono';font-style:normal;font-weight:300 800;font-display:swap;src:url("/assets/fonts/recursive-mono/latin-ext.woff2") format("woff2");unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Recursive Mono';font-style:normal;font-weight:300 800;font-display:swap;src:url("/assets/fonts/recursive-mono/latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:xcharter;font-style:normal;font-weight:normal;font-stretch:normal;font-display:swap;src:url("/assets/fonts/xcharter/xcharter-regular.woff2") format("woff2")}@font-face{font-family:xcharter;font-style:normal;font-weight:bold;font-stretch:normal;font-display:swap;src:url("/assets/fonts/xcharter/xcharter-bold.woff2") format("woff2")}@font-face{font-family:xcharter;font-style:italic;font-weight:normal;font-stretch:normal;font-display:swap;src:url("/assets/fonts/xcharter/xcharter-italic.woff2") format("woff2")}@font-face{font-family:xcharter;font-style:italic;font-weight:bold;font-stretch:normal;font-display:swap;src:url("/assets/fonts/xcharter/xcharter-bold-italic.woff2") format("woff2")}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}img,picture,video,canvas,svg{display:block;max-width:100%}html{overflow-y:scroll;height:100%}body{min-height:100%}@media not print{main>:last-child{margin-bottom:10rem}}div#site-container{width:100%;height:100vh;display:grid;grid-auto-flow:column;grid-template-columns:1fr 14rem 34rem minmax(0, 14rem) 1fr;grid-template-rows:min-content 1fr;grid-template-areas:". . nav   .   ." ". . main . .";--big-width: calc(clamp(0px, 48rem, 99vw - 30px - 14rem - 3rem))}nav#top-nav{grid-area:nav;border-left:1px solid #ddd8dd}main{grid-area:main;padding-left:1.5rem;padding-right:1.5rem;border-left:1px solid #ddd8dd}@media all and (max-width: 43.6rem){div#site-container{grid-template-columns:1fr calc(min(34rem, 99vw)) 1fr;grid-template-areas:". nav  ." ". main .";--big-width: 100%}main,nav#top-nav{border-left:none}}main .big{min-width:100%;width:var(--big-width)}p:not(:last-child),ul:not(:last-child),ol:not(:last-child),li:not(:last-child),img:not(:last-child),blockquote:not(:last-child),table:not(:last-child),.big:not(:last-child),.small:not(:last-child){margin-bottom:1rem}pre:not(:last-child){margin-bottom:0.6rem}@media not all and (max-width: 43.6rem){aside{position:absolute;text-align:right;margin-left:calc(-14rem);margin-top:0.2em;width:calc(14rem - 3rem)}}@media all and (max-width: 43.6rem){aside{background:#fefefe;padding:0.3rem 0.5rem;margin-bottom:1em;width:90%;text-align:left;border:1px solid #ddd8dd;border-left:3px solid #ddd8dd}}pre{border:1px solid #ddd8dd;display:inline-block;min-width:100%;max-width:var(--big-width);overflow-x:auto}@media print{pre{white-space:pre-wrap;overflow-wrap:anywhere}}pre>code{display:inline-block;padding:0.5em 0.5rem}nav#top-nav{padding-top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}nav.prev-next{margin-top:2em}nav .gray{color:#bbb9c6}nav a{color:#100921 !important;text-decoration:none}nav a::after{content:none}nav ul{list-style-type:none;padding:0;display:flex;justify-content:space-between;align-items:baseline}nav ul>li{font-family:"Recursive Mono", monospace}nav .logo{display:inline-block;padding:0.1em 0.8em;background-color:#000;color:white !important;font-weight:bold;font-family:monospace;text-decoration:none;font-variant:normal}nav .logo .net{font-weight:normal;color:#aaa}body{background-color:#fff;color:#100921}html{font-family:xcharter, Georgia, serif;word-spacing:-0.03em;font-size:calc(min(max(2vw, 14px), 18px));line-height:1.35}pre,code{font-family:"Recursive Mono", monospace}code{font-size:0.9em;letter-spacing:-0.02rem}pre>code{font-size:0.8em;filter:saturate(0.7);word-spacing:normal}span.katex{font-size:1.05em !important;line-height:1 !important}span.katex span.tag{margin-right:-0.5em}aside{font-size:0.8rem;font-style:italic}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#100921 !important;text-decoration:none !important;background:none !important;display:block;border-bottom:none}h1 a::after,h2 a::after,h3 a::after,h4 a::after,h5 a::after,h6 a::after{content:none;color:#100921 !important;background:none !important}h1{font-size:2rem;margin-top:1em;margin-bottom:0.5em;display:block;position:relative}h1 a{padding-bottom:0.4em}h1 a:after{content:'';position:absolute;bottom:0;left:0;border-bottom:5px solid #100921;width:25%;transition:all 0.5s ease-in-out}h1 a:hover:after{width:40%}h2{font-size:1.4rem;margin-top:1.3em;margin-bottom:0.5em;position:relative}h3{font-size:1.1rem;margin-bottom:0.4em;position:relative}h2:hover a:after,h3:hover a:after,h4:hover a:after{content:'\00A7';position:absolute;right:0}h4{font-size:1rem;position:relative}ul,ol{padding-left:1.5em}pre{background-color:#fcfcff !important}hr{background-color:#605c70;border:none;height:1px;margin-bottom:1em}blockquote{border-left:3px solid #bbb9c6;padding-left:0.7em;padding-top:0;padding-bottom:0}a,a:visited,a:hover,a:active{color:darkblue;text-decoration:none}a:hover{text-decoration:underline}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:0.1em 0.5em}thead{border-top:1px solid #605c70;border-bottom:1px solid #605c70}tbody{border-top:1px solid #605c70;border-bottom:1px solid #605c70}th:first-child,td:first-child{padding-left:1em}th:last-child,td:last-child{padding-right:1em}img.big,.big img{border:1px solid #605c70}img.small,.small img,img.medium,.medium img{margin-left:auto;margin-right:auto;border:none}img.small,.small img{max-height:10em}img.medium,.medium img{max-height:15em}img.float-right{max-width:30%;float:right;margin-top:0.5em;margin-bottom:0.5em;margin-left:1rem;border:1px solid #605c70}time.blogpost-date{display:block;text-align:right;margin-top:0.5em;font-size:0.8rem;margin-bottom:1em}ul.dense li,ol.dense li{margin-bottom:0.5em}ol ol{list-style-type:lower-alpha}figcaption{text-align:center}
