/*!* Bootstrap Reboot v5.0.0-alpha1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)*/*,*::before,*::after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#024dbc}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;-ms-overflow-style:scrollbar}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit;white-space:normal}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}@charset "UTF-8";.post-reward{opacity:0;max-height:0;overflow:hidden;transition:opacity .75s ease-in-out,max-height .375s ease-in-out}.post-reward.visible{opacity:1;max-height:500px;transition:opacity .75s ease-in-out,max-height .75s ease-in-out}@font-face{font-family:chancery;src:url(/fonts/chancery/apple-chancery-webfont.eot);src:local("Apple Chancery"),url(/fonts/chancery/apple-chancery-webfont.eot?#iefix)format("embedded-opentype"),url(/fonts/chancery/apple-chancery-webfont.woff2)format("woff2"),url(/fonts/chancery/apple-chancery-webfont.woff)format("woff"),url(/fonts/chancery/apple-chancery-webfont.ttf)format("truetype"),url(/fonts/chancery/apple-chancery-webfont.svg#apple-chancery)format("svg");font-weight:lighter;font-style:normal;font-display:swap}@font-face{font-family:roboto slab;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/roboto-slab/roboto-slab-v11-latin-regular.eot);src:local(""),url(/fonts/roboto-slab/roboto-slab-v11-latin-regular.eot?#iefix)format("embedded-opentype"),url(/fonts/roboto-slab/roboto-slab-v11-latin-regular.woff2)format("woff2"),url(/fonts/roboto-slab/roboto-slab-v11-latin-regular.woff)format("woff"),url(/fonts/roboto-slab/roboto-slab-v11-latin-regular.ttf)format("truetype"),url(/fonts/roboto-slab/roboto-slab-v11-latin-regular.svg#RobotoSlab)format("svg")}body{background:#fefefe;border-top:3px solid #c05b4d;font-family:roboto slab,system-ui,-apple-system,segoe ui,Roboto,helvetica neue,Arial}h1,h2,h3,h4,h5,h6{font-family:Georgia,Cambria,times new roman,Times,serif}h1 .anchor,h2 .anchor,h3 .anchor,h4 .anchor,h5 .anchor,h6 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}h1 .anchor:hover,h2 .anchor:hover,h3 .anchor:hover,h4 .anchor:hover,h5 .anchor:hover,h6 .anchor:hover{border-bottom:initial}h1 .anchor .icon-link,h2 .anchor .icon-link,h3 .anchor .icon-link,h4 .anchor .icon-link,h5 .anchor .icon-link,h6 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}h1 .anchor .icon-link:before,h2 .anchor .icon-link:before,h3 .anchor .icon-link:before,h4 .anchor .icon-link:before,h5 .anchor .icon-link:before,h6 .anchor .icon-link:before{vertical-align:middle}h1:hover .icon-link,h2:hover .icon-link,h3:hover .icon-link,h4:hover .icon-link,h5:hover .icon-link,h6:hover .icon-link{visibility:visible}@media screen and (max-width:800px){body{border-top:0}}::selection{background:#c05b4d;color:#fff}img{max-width:100%;height:auto;display:inline-block;vertical-align:middle}a{color:#212529;text-decoration:none}a:hover{color:#212529}.container{margin:0 auto;width:800px}@media screen and (max-width:800px){.container{width:100%;box-shadow:-1px -5px 5px #cacaca}}.content-wrapper{padding:0 20px}.video-container{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}@font-face{font-family:iconfont;src:url(/fonts/iconfont/iconfont.eot);src:url(/fonts/iconfont/iconfont.eot#iefix)format("embedded-opentype"),url(/fonts/iconfont/iconfont.woff)format("woff"),url(/fonts/iconfont/iconfont.ttf)format("truetype"),url(/fonts/iconfont/iconfont.svg#iconfont)format("svg");font-display:swap}.post .post-content details.admonition summary:after,.post .post-content .admonition .admonition-title:before,.iconfont{font-family:iconfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-text-stroke-width:.2px;cursor:pointer;letter-spacing:0;font-feature-settings:"liga";font-variant-ligatures:discretionary-ligatures;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bilibili:before{content:"\e900";font-size:.9em;position:relative;top:-4px}.icon-instagram:before{font-size:.95em;content:"\e611";position:relative;top:1px}.icon-douban:before{content:"\e610";position:relative;top:2px}.icon-tumblr:before{content:"\e69f";font-size:.85em;position:relative;top:-2px}.icon-linkedin:before{content:"\e60d";position:relative;top:-2px}.icon-twitter:before{content:"\e600"}.icon-weibo:before{content:"\e602";position:relative;top:2px}.icon-stack-overflow:before{content:"\e902";font-size:.85em;position:relative;top:-4px}.icon-email:before{content:"\e605";position:relative;top:-2px}.icon-facebook:before{content:"\e601";font-size:.95em;position:relative;top:-2px}.icon-gitlab:before{content:"\e901";font-size:.9em;position:relative;top:-4px}.icon-github:before{content:"\e606";position:relative;top:-1px}.icon-rss:before{content:"\e604"}.icon-google:before{content:"\e609";position:relative;top:2px}.icon-zhihu:before{content:"\e607";font-size:.9em}.icon-pocket:before{content:"\e856";position:relative;top:2px}.icon-heart:before{content:"\e608"}.icon-right:before{content:"\e60a"}.icon-left:before{content:"\e60b"}.icon-up:before{content:"\e60c"}.icon-close:before{content:"\e60f"}.icon-link:before{content:"\e909"}.header{padding:20px}.header:before,.header:after{content:" ";display:table}.header:after{clear:both}.header .logo-wrapper{float:left}.header .logo-wrapper .logo{font-size:48px;font-family:chancery,cursive,LiSu,sans-serif}@media screen and (max-width:800px){.header .logo-wrapper{display:none}}.header .site-navbar{float:right}.header .site-navbar .menu{margin-top:1.5rem;display:inline-block;position:relative;padding-left:0;padding-right:25px;font-family:Georgia,Cambria,times new roman,Times,serif}.header .site-navbar .menu .menu-item{display:inline-block;display:inline-block;vertical-align:middle;transform:translateZ(0);backface-visibility:hidden;box-shadow:0 0 1px transparent;position:relative;overflow:hidden}.header .site-navbar .menu .menu-item+.menu-item{margin-left:10px}.header .site-navbar .menu .menu-item:before{content:'';position:absolute;z-index:-1;height:2px;bottom:0;left:51%;right:51%;background:#c05b4d;transition-duration:.2s;transition-property:right,left;transition-timing-function:ease-out}.header .site-navbar .menu .menu-item.active:before,.header .site-navbar .menu .menu-item:active:before,.header .site-navbar .menu .menu-item:focus:before,.header .site-navbar .menu .menu-item:hover:before{right:0;left:0}.header .site-navbar .menu .menu-item-link{font-size:18px}@media screen and (max-width:800px){.header .site-navbar{display:none}}@media screen and (max-width:800px){.header{padding:50px 0 0;text-align:center}}.posts{margin-bottom:20px;border-bottom:1px solid #e6e6e6}.post{padding:1.5em 0}.post+.post{border-top:1px solid #e6e6e6}.post .post-header{margin-bottom:1rem}.post .post-header .post-title{font-weight:400;margin-bottom:1rem}.post .post-header .post-link{display:inline-block;vertical-align:middle;transform:translateZ(0);backface-visibility:hidden;box-shadow:0 0 1px transparent;position:relative;overflow:hidden}.post .post-header .post-link:before{content:'';position:absolute;z-index:-1;height:2px;bottom:0;left:51%;right:51%;background:#c05b4d;transition-duration:.2s;transition-property:right,left;transition-timing-function:ease-out}.post .post-header .post-link.active:before,.post .post-header .post-link:active:before,.post .post-header .post-link:focus:before,.post .post-header .post-link:hover:before{right:0;left:0}.post .post-header .post-meta{font-size:.9rem;color:#757575}.post .post-header .post-meta .post-category{display:inline}.post .post-header .post-meta .post-category a{color:inherit}.post .post-header .post-meta .post-category a::before{content:'·'}.post .post-header .post-meta .post-category a:hover{color:#c05b4d}.post .post-header .post-meta .more-meta::before{content:'·'}.post .post-toc{position:absolute;width:200px;margin-left:785px;padding:10px;font-family:Georgia,Cambria,times new roman,Times,serif;border-radius:5px;background:rgba(248,245,236,.6);box-shadow:1px 1px 2px rgba(0,0,0,.125);word-wrap:break-word;box-sizing:border-box}.post .post-toc .post-toc-title{margin:0 10px;font-size:20px;font-weight:400;text-transform:uppercase}.post .post-toc .post-toc-content{font-size:15px}.post .post-toc .post-toc-content.always-active ul{display:block}.post .post-toc .post-toc-content>nav>ul{margin:10px 0}.post .post-toc .post-toc-content ul{padding-left:20px;list-style:square}.post .post-toc .post-toc-content ul ul{padding-left:15px;display:none}.post .post-toc .post-toc-content ul .has-active>ul{display:block}.post .post-toc .post-toc-content .toc-link.active{color:#c05b4d}@media screen and (max-width:1185px){.post .post-toc{display:none}}.post .post-content{word-wrap:break-word;font-size:1.125rem;line-height:1.875rem}.post .post-content p{margin-bottom:1.5rem}.post .post-content a{color:#c05b4d;word-break:break-all}.post .post-content a:hover{border-bottom:1px solid #c05b4d}.post .post-content a.fancybox{border:0}.post .post-content blockquote{margin:1rem 0;padding:1rem 20px;position:relative;color:rgba(52,73,94,.8);background-color:rgba(192,91,77,5%);border-left:3px solid rgba(192,91,77,.3);box-shadow:1px 1px 2px rgba(0,0,0,.125)}.post .post-content blockquote p{margin:0}.post .post-content img{display:inline-block;max-width:100%}.post .post-content .table-wrapper{overflow-x:auto}.post .post-content .table-wrapper>table{max-width:100%;margin:10px 0;border-spacing:0;box-shadow:2px 2px 3px rgba(0,0,0,.125)}.post .post-content .table-wrapper>table thead{background:#f8f5ec}.post .post-content .table-wrapper>table th,.post .post-content .table-wrapper>table td{padding:5px 15px;border:1px double #f4efe1}.post .post-content .table-wrapper>table tr:hover{background-color:#f8f5ec}.post .post-content code,.post .post-content pre{padding:7px;font-size:.9em;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#f8f5ec}.post .post-content code{padding:3px 5px;border-radius:4px;color:#c7254e}.post .post-content figure.highlight{margin:1em 0;border-radius:5px;overflow-x:auto;box-shadow:1px 1px 2px rgba(0,0,0,.125);position:relative}.post .post-content figure.highlight table{position:relative}.post .post-content figure.highlight table::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:.9em;font-weight:700;color:#b1b1b1;background:#f4efe1;content:'Code'}.post .post-content figure.highlight.language-bash>table::after{content:"Bash"}.post .post-content figure.highlight.language-c>table::after{content:"C"}.post .post-content figure.highlight.language-cs>table::after{content:"C#"}.post .post-content figure.highlight.language-cpp>table::after{content:"C++"}.post .post-content figure.highlight.language-css>table::after{content:"CSS"}.post .post-content figure.highlight.language-coffeescript>table::after{content:"CoffeeScript"}.post .post-content figure.highlight.language-html>table::after{content:"HTML"}.post .post-content figure.highlight.language-xml>table::after{content:"XML"}.post .post-content figure.highlight.language-http>table::after{content:"HTTP"}.post .post-content figure.highlight.language-json>table::after{content:"JSON"}.post .post-content figure.highlight.language-java>table::after{content:"Java"}.post .post-content figure.highlight.language-js>table::after{content:"JavaScript"}.post .post-content figure.highlight.language-javascript>table::after{content:"JavaScript"}.post .post-content figure.highlight.language-makefile>table::after{content:"Makefile"}.post .post-content figure.highlight.language-markdown>table::after{content:"Markdown"}.post .post-content figure.highlight.language-objectivec>table::after{content:"Objective-C"}.post .post-content figure.highlight.language-php>table::after{content:"PHP"}.post .post-content figure.highlight.language-perl>table::after{content:"Perl"}.post .post-content figure.highlight.language-python>table::after{content:"Python"}.post .post-content figure.highlight.language-ruby>table::after{content:"Ruby"}.post .post-content figure.highlight.language-sql>table::after{content:"SQL"}.post .post-content figure.highlight.language-shell>table::after{content:"Shell"}.post .post-content figure.highlight.language-erlang>table::after{content:"Erlang"}.post .post-content figure.highlight.language-go>table::after{content:"Go"}.post .post-content figure.highlight.language-go-html-template>table::after{content:"Go HTML Template"}.post .post-content figure.highlight.language-groovy>table::after{content:"Groovy"}.post .post-content figure.highlight.language-haskell>table::after{content:"Haskell"}.post .post-content figure.highlight.language-kotlin>table::after{content:"Kotlin"}.post .post-content figure.highlight.language-clojure>table::after{content:"Clojure"}.post .post-content figure.highlight.language-less>table::after{content:"Less"}.post .post-content figure.highlight.language-lisp>table::after{content:"Lisp"}.post .post-content figure.highlight.language-lua>table::after{content:"Lua"}.post .post-content figure.highlight.language-matlab>table::after{content:"Matlab"}.post .post-content figure.highlight.language-rust>table::after{content:"Rust"}.post .post-content figure.highlight.language-scss>table::after{content:"Scss"}.post .post-content figure.highlight.language-scala>table::after{content:"Scala"}.post .post-content figure.highlight.language-swift>table::after{content:"Swift"}.post .post-content figure.highlight.language-typescript>table::after{content:"TypeScript"}.post .post-content figure.highlight.language-yml>table::after{content:"YAML"}.post .post-content figure.highlight.language-yaml>table::after{content:"YAML"}.post .post-content figure.highlight.language-toml>table::after{content:"TOML"}.post .post-content figure.highlight.language-diff>table::after{content:"Diff"}.post .post-content figure.highlight .code pre{margin:0;padding:30px 10px 10px}.post .post-content figure.highlight .gutter{width:10px;color:#cacaca}.post .post-content figure.highlight .gutter pre{margin:0;padding:30px 7px 10px}.post .post-content figure.highlight .line{height:1em}.post .post-content figure.highlight table,.post .post-content figure.highlight tr,.post .post-content figure.highlight td{margin:0;padding:0;width:100%;border-collapse:collapse}.post .post-content figure.highlight .code .hljs-comment,.post .post-content figure.highlight .code .hljs-quote{color:#93a1a1}.post .post-content figure.highlight .code .hljs-keyword,.post .post-content figure.highlight .code .hljs-selector-tag,.post .post-content figure.highlight .code .hljs-addition{color:#859900}.post .post-content figure.highlight .code .hljs-number,.post .post-content figure.highlight .code .hljs-string,.post .post-content figure.highlight .code .hljs-meta .hljs-meta-string,.post .post-content figure.highlight .code .hljs-literal,.post .post-content figure.highlight .code .hljs-doctag,.post .post-content figure.highlight .code .hljs-regexp{color:#2aa198}.post .post-content figure.highlight .code .hljs-title,.post .post-content figure.highlight .code .hljs-section,.post .post-content figure.highlight .code .hljs-name,.post .post-content figure.highlight .code .hljs-selector-id,.post .post-content figure.highlight .code .hljs-selector-class{color:#268bd2}.post .post-content figure.highlight .code .hljs-attribute,.post .post-content figure.highlight .code .hljs-attr,.post .post-content figure.highlight .code .hljs-variable,.post .post-content figure.highlight .code .hljs-template-variable,.post .post-content figure.highlight .code .hljs-class .hljs-title,.post .post-content figure.highlight .code .hljs-type{color:#b58900}.post .post-content figure.highlight .code .hljs-symbol,.post .post-content figure.highlight .code .hljs-bullet,.post .post-content figure.highlight .code .hljs-subst,.post .post-content figure.highlight .code .hljs-meta,.post .post-content figure.highlight .code .hljs-meta .hljs-keyword,.post .post-content figure.highlight .code .hljs-selector-attr,.post .post-content figure.highlight .code .hljs-selector-pseudo,.post .post-content figure.highlight .code .hljs-link{color:#cb4b16}.post .post-content figure.highlight .code .hljs-built_in,.post .post-content figure.highlight .code .hljs-deletion{color:#dc322f}.post .post-content figure.highlight .code .hljs-formula{background:#eee8d5}.post .post-content figure.highlight .code .hljs-emphasis{font-style:italic}.post .post-content figure.highlight .code .hljs-strong{font-weight:700}.post .post-content .highlight>.chroma{margin:1em 0;border-radius:5px;overflow-x:auto;box-shadow:1px 1px 2px rgba(0,0,0,.125);position:relative;background:#f8f5ec}.post .post-content .highlight>.chroma code{padding:0}.post .post-content .highlight>.chroma table{position:relative}.post .post-content .highlight>.chroma table::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:.9em;font-weight:700;color:#b1b1b1;background:#f4efe1;content:'Code'}.post .post-content .highlight>.chroma.language-bash>table::after{content:"Bash"}.post .post-content .highlight>.chroma.language-c>table::after{content:"C"}.post .post-content .highlight>.chroma.language-cs>table::after{content:"C#"}.post .post-content .highlight>.chroma.language-cpp>table::after{content:"C++"}.post .post-content .highlight>.chroma.language-css>table::after{content:"CSS"}.post .post-content .highlight>.chroma.language-coffeescript>table::after{content:"CoffeeScript"}.post .post-content .highlight>.chroma.language-html>table::after{content:"HTML"}.post .post-content .highlight>.chroma.language-xml>table::after{content:"XML"}.post .post-content .highlight>.chroma.language-http>table::after{content:"HTTP"}.post .post-content .highlight>.chroma.language-json>table::after{content:"JSON"}.post .post-content .highlight>.chroma.language-java>table::after{content:"Java"}.post .post-content .highlight>.chroma.language-js>table::after{content:"JavaScript"}.post .post-content .highlight>.chroma.language-javascript>table::after{content:"JavaScript"}.post .post-content .highlight>.chroma.language-makefile>table::after{content:"Makefile"}.post .post-content .highlight>.chroma.language-markdown>table::after{content:"Markdown"}.post .post-content .highlight>.chroma.language-objectivec>table::after{content:"Objective-C"}.post .post-content .highlight>.chroma.language-php>table::after{content:"PHP"}.post .post-content .highlight>.chroma.language-perl>table::after{content:"Perl"}.post .post-content .highlight>.chroma.language-python>table::after{content:"Python"}.post .post-content .highlight>.chroma.language-ruby>table::after{content:"Ruby"}.post .post-content .highlight>.chroma.language-sql>table::after{content:"SQL"}.post .post-content .highlight>.chroma.language-shell>table::after{content:"Shell"}.post .post-content .highlight>.chroma.language-erlang>table::after{content:"Erlang"}.post .post-content .highlight>.chroma.language-go>table::after{content:"Go"}.post .post-content .highlight>.chroma.language-go-html-template>table::after{content:"Go HTML Template"}.post .post-content .highlight>.chroma.language-groovy>table::after{content:"Groovy"}.post .post-content .highlight>.chroma.language-haskell>table::after{content:"Haskell"}.post .post-content .highlight>.chroma.language-kotlin>table::after{content:"Kotlin"}.post .post-content .highlight>.chroma.language-clojure>table::after{content:"Clojure"}.post .post-content .highlight>.chroma.language-less>table::after{content:"Less"}.post .post-content .highlight>.chroma.language-lisp>table::after{content:"Lisp"}.post .post-content .highlight>.chroma.language-lua>table::after{content:"Lua"}.post .post-content .highlight>.chroma.language-matlab>table::after{content:"Matlab"}.post .post-content .highlight>.chroma.language-rust>table::after{content:"Rust"}.post .post-content .highlight>.chroma.language-scss>table::after{content:"Scss"}.post .post-content .highlight>.chroma.language-scala>table::after{content:"Scala"}.post .post-content .highlight>.chroma.language-swift>table::after{content:"Swift"}.post .post-content .highlight>.chroma.language-typescript>table::after{content:"TypeScript"}.post .post-content .highlight>.chroma.language-yml>table::after{content:"YAML"}.post .post-content .highlight>.chroma.language-yaml>table::after{content:"YAML"}.post .post-content .highlight>.chroma.language-toml>table::after{content:"TOML"}.post .post-content .highlight>.chroma.language-diff>table::after{content:"Diff"}.post .post-content .highlight>.chroma .lntd{line-height:1em}.post .post-content .highlight>.chroma .lntd:first-child{width:10px}.post .post-content .highlight>.chroma .lntd:first-child pre{margin:0;padding:30px 7px 10px}.post .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.post .post-content .highlight>.chroma .lntd:last-child pre{margin:0;padding:30px 10px 10px}.post .post-content .highlight>.chroma table,.post .post-content .highlight>.chroma tr,.post .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse}.post .post-content .highlight>.chroma .lnt{color:#cacaca}.post .post-content .highlight>.chroma .hl{display:block;width:100%;background-color:#ffc}.post .post-content .highlight>.chroma .k{color:#859900}.post .post-content .highlight>.chroma .kc{color:#859900;font-weight:700}.post .post-content .highlight>.chroma .kd{color:#859900}.post .post-content .highlight>.chroma .kn{color:#dc322f;font-weight:700}.post .post-content .highlight>.chroma .kp{color:#859900}.post .post-content .highlight>.chroma .kr{color:#859900}.post .post-content .highlight>.chroma .kt{color:#859900;font-weight:700}.post .post-content .highlight>.chroma .n{color:#268bd2}.post .post-content .highlight>.chroma .na{color:#268bd2}.post .post-content .highlight>.chroma .nb{color:#cb4b16}.post .post-content .highlight>.chroma .bp{color:#268bd2}.post .post-content .highlight>.chroma .nc{color:#cb4b16}.post .post-content .highlight>.chroma .no{color:#268bd2}.post .post-content .highlight>.chroma .nd{color:#268bd2}.post .post-content .highlight>.chroma .ni{color:#268bd2}.post .post-content .highlight>.chroma .ne{color:#268bd2}.post .post-content .highlight>.chroma .nf{color:#268bd2}.post .post-content .highlight>.chroma .fm{color:#268bd2}.post .post-content .highlight>.chroma .nl{color:#268bd2}.post .post-content .highlight>.chroma .nn{color:#268bd2}.post .post-content .highlight>.chroma .nx{color:#268bd2}.post .post-content .highlight>.chroma .py{color:#268bd2}.post .post-content .highlight>.chroma .nt{color:#268bd2;font-weight:700}.post .post-content .highlight>.chroma .nv{color:#268bd2}.post .post-content .highlight>.chroma .vc{color:#268bd2}.post .post-content .highlight>.chroma .vg{color:#268bd2}.post .post-content .highlight>.chroma .vi{color:#268bd2}.post .post-content .highlight>.chroma .vm{color:#268bd2}.post .post-content .highlight>.chroma .l{color:#2aa198}.post .post-content .highlight>.chroma .ld{color:#2aa198}.post .post-content .highlight>.chroma .s{color:#2aa198}.post .post-content .highlight>.chroma .sa{color:#2aa198}.post .post-content .highlight>.chroma .sb{color:#2aa198}.post .post-content .highlight>.chroma .sc{color:#2aa198}.post .post-content .highlight>.chroma .dl{color:#2aa198}.post .post-content .highlight>.chroma .sd{color:#2aa198}.post .post-content .highlight>.chroma .s2{color:#2aa198}.post .post-content .highlight>.chroma .se{color:#2aa198}.post .post-content .highlight>.chroma .sh{color:#2aa198}.post .post-content .highlight>.chroma .si{color:#2aa198}.post .post-content .highlight>.chroma .sx{color:#2aa198}.post .post-content .highlight>.chroma .sr{color:#2aa198}.post .post-content .highlight>.chroma .s1{color:#2aa198}.post .post-content .highlight>.chroma .ss{color:#2aa198}.post .post-content .highlight>.chroma .m{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .mb{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .mf{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .mh{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .mi{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .il{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .mo{color:#2aa198;font-weight:700}.post .post-content .highlight>.chroma .ow{color:#859900}.post .post-content .highlight>.chroma .c{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .ch{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .cm{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .c1{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .cs{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .cp{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .cpf{color:#93a1a1;font-style:italic}.post .post-content .highlight>.chroma .g{color:#d33682}.post .post-content .highlight>.chroma .gd{color:#b58900}.post .post-content .highlight>.chroma .ge{color:#d33682}.post .post-content .highlight>.chroma .gr{color:#d33682}.post .post-content .highlight>.chroma .gh{color:#d33682}.post .post-content .highlight>.chroma .gi{color:#859900}.post .post-content .highlight>.chroma .go{color:#d33682}.post .post-content .highlight>.chroma .gp{color:#d33682}.post .post-content .highlight>.chroma .gs{color:#d33682}.post .post-content .highlight>.chroma .gu{color:#d33682}.post .post-content .highlight>.chroma .gt{color:#d33682}.post .post-content .admonition{box-shadow:0 2px 2px rgba(0,0,0,.14),0 1px 5px rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:relative;margin:.9765em 0;padding:0 .75rem;border-left:.25rem solid #448aff;border-radius:.125rem;overflow:auto}.post .post-content .admonition .admonition-title{margin:0 -.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:.1rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}.post .post-content .admonition .admonition-title:before{cursor:auto;position:absolute;left:.75rem;top:.75rem}.post .post-content .admonition.note{border-left-color:#448aff}.post .post-content .admonition.note .admonition-title:before{color:#448aff;content:"\e903"}.post .post-content .admonition.abstract{border-left-color:#00b0ff}.post .post-content .admonition.abstract .admonition-title{background-color:rgba(0,176,255,.1)}.post .post-content .admonition.abstract .admonition-title:before{color:#00b0ff;content:"\e9bb"}.post .post-content .admonition.info{border-left-color:#00b8d4}.post .post-content .admonition.info .admonition-title{background-color:rgba(0,184,212,.1)}.post .post-content .admonition.info .admonition-title:before{color:#00b8d4;content:"\ea0c"}.post .post-content .admonition.tip{border-left-color:#00bfa5}.post .post-content .admonition.tip .admonition-title{background-color:rgba(0,191,165,.1)}.post .post-content .admonition.tip .admonition-title:before{color:#00bfa5;content:"\e906"}.post .post-content .admonition.success{border-left-color:#00c853}.post .post-content .admonition.success .admonition-title{background-color:rgba(0,200,83,.1)}.post .post-content .admonition.success .admonition-title:before{color:#00c853;content:"\ea10"}.post .post-content .admonition.question{border-left-color:#64dd17}.post .post-content .admonition.question .admonition-title{background-color:rgba(100,221,23,.1)}.post .post-content .admonition.question .admonition-title:before{color:#64dd17;content:"\ea09"}.post .post-content .admonition.warning{border-left-color:#ff9100}.post .post-content .admonition.warning .admonition-title{background-color:rgba(255,145,0,.1)}.post .post-content .admonition.warning .admonition-title:before{color:#ff9100;content:"\ea07"}.post .post-content .admonition.failure{border-left-color:#ff5252}.post .post-content .admonition.failure .admonition-title{background-color:rgba(255,82,82,.1)}.post .post-content .admonition.failure .admonition-title:before{color:#ff5252;content:"\ea0f"}.post .post-content .admonition.danger{border-left-color:#ff1744}.post .post-content .admonition.danger .admonition-title{background-color:rgba(255,23,68,.1)}.post .post-content .admonition.danger .admonition-title:before{color:#ff1744;content:"\e905"}.post .post-content .admonition.bug{border-left-color:#f50057}.post .post-content .admonition.bug .admonition-title{background-color:rgba(245,0,87,.1)}.post .post-content .admonition.bug .admonition-title:before{color:#f50057;content:"\e907"}.post .post-content .admonition.example{border-left-color:#651fff}.post .post-content .admonition.example .admonition-title{background-color:rgba(101,31,255,.1)}.post .post-content .admonition.example .admonition-title:before{color:#651fff;content:"\e9b9"}.post .post-content .admonition.quote{border-left-color:#9e9e9e}.post .post-content .admonition.quote .admonition-title{background-color:rgba(158,158,158,.1)}.post .post-content .admonition.quote .admonition-title:before{color:#9e9e9e;content:"\e904"}.post .post-content .admonition:last-child{margin-bottom:.75rem}.post .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.post .post-content details.admonition summary::-webkit-details-marker{display:none}.post .post-content details.admonition summary:after{position:absolute;top:.75rem;right:.75rem;color:rgba(0,0,0,.26);content:"\e908"}.post .post-content details.admonition[open]>summary:after{transform:rotate(180deg)}.post .post-content .post-summary{margin-bottom:1em}.post .post-content .read-more .read-more-link{color:#c05b4d;font-size:1.1em;font-family:Georgia,Cambria,times new roman,Times,serif}.post .post-content .read-more .read-more-link:hover{border-bottom:1px solid #c05b4d}.post .post-content kbd{display:inline-block;padding:.25em;background-color:#fafafa;border:1px solid #dbdbdb;border-bottom-color:#b5b5b5;border-radius:3px;box-shadow:inset 0 -1px #b5b5b5;font-size:.8em;line-height:1.25;font-family:sfmono-regular,liberation mono,roboto mono,Menlo,Monaco,Consolas,courier new,Courier,monospace;color:#4a4a4a}.post .post-content dl dt::after{content:':'}.post .post-content figure.center{text-align:center}.post .post-content figure.right{text-align:right}.post .post-content figure.left{text-align:left}.post .post-content figure figcaption h4{color:#b5b5b5;font-size:.9rem}.post .post-content .footnote-ref>a{font-weight:700;margin-left:3px}.post .post-content .footnote-ref>a:before{content:"["}.post .post-content .footnote-ref>a:after{content:"]"}.post .post-content .task-list{list-style:none;padding-left:1.5rem}.post .post-content .align-center{text-align:center}.post .post-content .align-right{text-align:right}.post .post-content .align-left{text-align:left}.post .post-content .MJXc-display{overflow-x:auto;overflow-y:hidden;padding-right:1px}.post .post-copyright{margin-top:20px;padding-top:10px;border-top:1px dashed #e6e6e6}.post .post-copyright .copyright-item{margin:5px 0}.post .post-copyright .copyright-item a{color:#c05b4d;word-wrap:break-word}.post .post-copyright .copyright-item a:hover{border-bottom:1px solid #c05b4d}.post .post-copyright .copyright-item .item-title{display:inline-block;min-width:5rem;margin-right:.5rem;text-align:right}.post .post-copyright .copyright-item .item-title:after{content:" :"}.post .post-reward{margin-top:20px;padding-top:10px;text-align:center;border-top:1px dashed #e6e6e6}.post .post-reward .reward-button{margin:15px 0;padding:3px 7px;display:inline-block;color:#c05b4d;border:1px solid #c05b4d;border-radius:5px;cursor:pointer}.post .post-reward .reward-button:hover{color:#fefefe;background-color:#c05b4d;transition:.5s}.post .post-reward #reward:checked~.qr-code{display:block}.post .post-reward #reward:checked~.reward-button{display:none}.post .post-reward .qr-code{display:none}.post .post-reward .qr-code .qr-code-image{display:inline-block;min-width:200px;width:40%;margin-top:15px}.post .post-reward .qr-code .qr-code-image span{display:inline-block;width:100%;margin:8px 0}.post .post-reward .qr-code .image{width:200px;height:200px}.post .post-footer{margin-top:20px;border-top:1px solid #e6e6e6;font-family:Georgia,Cambria,times new roman,Times,serif}.post .post-footer .post-tags{padding:15px 0}.post .post-footer .post-tags a{margin-right:5px;color:#c05b4d;word-break:break-all}.post .post-footer .post-tags a::before{content:'#'}.post .post-footer .post-nav{margin:1em 0}.post .post-footer .post-nav:before,.post .post-footer .post-nav:after{content:" ";display:table}.post .post-footer .post-nav:after{clear:both}.post .post-footer .post-nav .prev,.post .post-footer .post-nav .next{font-weight:600;font-size:18px;font-family:Georgia,Cambria,times new roman,Times,serif;transition-property:transform;transition-timing-function:ease-out;transition-duration:.3s}.post .post-footer .post-nav .prev{float:left}.post .post-footer .post-nav .prev:hover{color:#c05b4d;transform:translateX(-4px)}.post .post-footer .post-nav .next{float:right}.post .post-footer .post-nav .next:hover{color:#c05b4d;transform:translateX(4px)}.post .post-footer .post-nav .nav-mobile{display:none}@media screen and (max-width:800px){.post .post-footer .post-nav .nav-default{display:none}.post .post-footer .post-nav .nav-mobile{display:inline}}.post .post-outdated .hint{position:relative;margin-top:20px;margin-bottom:20px;padding:5px 10px;border-left:4px solid #42acf3;background-color:#eff5ff;border-color:#42acf3}.post .post-outdated .warn{position:relative;margin-top:20px;margin-bottom:20px;padding:5px 10px;border-left:4px solid #f9cf63;background-color:#ffffc0;border-color:#f9cf63}@font-face{.post { font-family: 'Chancery'; src: url("/fonts/chancery/apple-chancery-webfont.eot"); src: local("Apple Chancery"), url("/fonts/chancery/apple-chancery-webfont.eot?#iefix") format("embedded-opentype"), url("/fonts/chancery/apple-chancery-webfont.woff2") format("woff2"), url("/fonts/chancery/apple-chancery-webfont.woff") format("woff"), url("/fonts/chancery/apple-chancery-webfont.ttf") format("truetype"), url("/fonts/chancery/apple-chancery-webfont.svg#apple-chancery") format("svg"); font-weight: lighter; font-style: normal; font-display: swap; }}@font-face{.post { font-family: 'Roboto Slab'; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/roboto-slab/roboto-slab-v11-latin-regular.eot"); src: local(""), url("/fonts/roboto-slab/roboto-slab-v11-latin-regular.eot?#iefix") format("embedded-opentype"), url("/fonts/roboto-slab/roboto-slab-v11-latin-regular.woff2") format("woff2"), url("/fonts/roboto-slab/roboto-slab-v11-latin-regular.woff") format("woff"), url("/fonts/roboto-slab/roboto-slab-v11-latin-regular.ttf") format("truetype"), url("/fonts/roboto-slab/roboto-slab-v11-latin-regular.svg#RobotoSlab") format("svg"); }}.post .recent-posts h2{margin-top:1.5rem;margin-bottom:1.2rem}.post .recent-posts ul{list-style:none;padding-left:0}.post .recent-posts li{margin-bottom:.5rem}.post .recent-posts a{font-size:1.125rem;transition:all .2s ease-in-out;color:#c05b4d}.post .recent-posts a:hover{font-size:1.3rem;border-bottom:1px solid #c05b4d}.post .recent-posts a.fancybox{border:0}.pagination{margin:2em 0}.pagination:before,.pagination:after{content:" ";display:table}.pagination:after{clear:both}.pagination .prev,.pagination .next{font-weight:600;font-size:20px;font-family:Georgia,Cambria,times new roman,Times,serif;transition-property:transform;transition-timing-function:ease-out;transition-duration:.3s}.pagination .prev{float:left}.pagination .prev:hover{color:#c05b4d;transform:translateX(-4px)}.pagination .next{float:right}.pagination .next:hover{color:#c05b4d;transform:translateX(4px)}.footer{margin-top:2em}.footer .social-links{text-align:center}.footer .social-links .iconfont{font-size:30px}.footer .social-links .iconfont+.iconfont{margin-left:10px}.footer .social-links .iconfont:hover{color:#c05b4d}.footer .copyright{margin:10px 0;color:#757575;text-align:center;font-family:Georgia,Cambria,times new roman,Times,serif}.footer .copyright .hexo-link,.footer .copyright .theme-link{color:#c05b4d}.footer .copyright .copyright-year{display:block}.footer .copyright .copyright-year .heart{font-size:14px}.archive{margin:2em 0;max-width:700px}.archive .archive-title{font-family:Georgia,Cambria,times new roman,Times,serif}.archive .archive-title.tag,.archive .archive-title.category{margin:15px 0}.archive .archive-title .archive-name{margin:0;display:inline-block;font-weight:400;font-size:30px;line-height:32px}.archive .archive-title .archive-post-counter{color:#757575}.archive .collection-title{font-family:Georgia,Cambria,times new roman,Times,serif}.archive .collection-title .archive-year{margin:15px 0;font-weight:400;font-size:28px;line-height:30px}.archive .archive-post{padding:3px 20px;border-left:1px solid #cacaca}.archive .archive-post .archive-post-time{margin-right:10px;color:#757575}.archive .archive-post .archive-post-title .archive-post-link{color:#c05b4d}.archive .archive-post::first-child{margin-top:10px}.archive .archive-post:hover{border-left:3px solid #c05b4d;transition:.2s ease-out;transform:translateX(4px)}.archive .archive-post:hover .archive-post-time{color:#5c5c5c}.archive .archive-post:hover .archive-post-title .archive-post-link{color:#a14639}@media screen and (max-width:800px){.archive{margin-left:auto;margin-right:auto}.archive .archive-title .archive-name{font-size:26px}.archive .collection-title .archive-year{margin:10px 0;font-size:24px}.archive .archive-post{padding:5px 10px}.archive .archive-post .archive-post-time{font-size:13px;display:block}}.terms{margin:2em 0 3em;text-align:center;font-family:Georgia,Cambria,times new roman,Times,serif}.terms .terms-title{display:inline-block;font-size:18px;color:#c05b4d;border-bottom:2px solid #c05b4d}.terms .terms-tags{margin:10px 0}.terms .terms-tags .terms-link{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.2s;transition-property:transform;transition-timing-function:ease-out}.terms .terms-tags .terms-link .terms-count{display:inline-block;position:relative;top:-8px;right:-2px;color:#c05b4d;font-size:12px}.terms .terms-tags .terms-link:active,.terms .terms-tags .terms-link:focus,.terms .terms-tags .terms-link:hover{color:#c05b4d;transform:scale(1.1)}.slideout-menu{position:fixed;top:0;bottom:0;width:180px;min-height:100vh;overflow-y:hidden;-webkit-overflow-scrolling:touch;z-index:0;display:none}.slideout-menu-left{left:0}.slideout-menu-right{right:0}.slideout-panel{position:relative;z-index:1;background-color:#fefefe;min-height:100vh}.slideout-open,.slideout-open body,.slideout-open .slideout-panel{overflow:hidden}.slideout-open .slideout-menu{display:block}.mobile-navbar{display:none;position:fixed;top:0;left:0;width:100%;height:50px;background:#fefefe;box-shadow:0 2px 2px #cacaca;text-align:center;transition:transform 300ms ease;z-index:99}.mobile-navbar.fixed-open{transform:translate3d(-180px,0,0)}.mobile-navbar .mobile-header-logo{display:inline-block;margin-left:50px}.mobile-navbar .mobile-header-logo .logo{font-size:22px;line-height:50px;font-family:chancery,cursive,LiSu,sans-serif}.mobile-navbar .mobile-navbar-icon{color:#c05b4d;height:50px;width:50px;font-size:24px;text-align:center;float:right;position:relative;transition:background}@keyframes clickfirst{0%{transform:translateY(6px)rotate(0)}100%{transform:translateY(0)rotate(45deg)}}@keyframes clickmid{0%{opacity:1}100%{opacity:0}}@keyframes clicklast{0%{transform:translateY(-6px)rotate(0)}100%{transform:translateY(0)rotate(-45deg)}}@keyframes outfirst{0%{transform:translateY(0)rotate(-45deg)}100%{transform:translateY(-6px)rotate(0)}}@keyframes outmid{0%{opacity:0}100%{opacity:1}}@keyframes outlast{0%{transform:translateY(0)rotate(45deg)}100%{transform:translateY(6px)rotate(0)}}.mobile-navbar .mobile-navbar-icon span{position:absolute;left:15px;top:25px;left:calc((100% - 20px)/2);top:calc((100% - 1px)/2);width:20px;height:1px;background-color:#c05b4d}.mobile-navbar .mobile-navbar-icon span:nth-child(1){transform:translateY(6px)rotate(0)}.mobile-navbar .mobile-navbar-icon span:nth-child(3){transform:translateY(-6px)rotate(0)}.mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(1){animation-duration:.5s;animation-fill-mode:both;animation-name:clickfirst}.mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(2){animation-duration:.2s;animation-fill-mode:both;animation-name:clickmid}.mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(3){animation-duration:.5s;animation-fill-mode:both;animation-name:clicklast}.mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(1){animation-duration:.5s;animation-fill-mode:both;animation-name:outfirst}.mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(2){animation-duration:.2s;animation-fill-mode:both;animation-name:outmid}.mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(3){animation-duration:.5s;animation-fill-mode:both;animation-name:outlast}.mobile-menu{background-color:rgba(248,245,236,.5)}.mobile-menu .mobile-menu-list{position:relative;list-style:none;margin-top:50px;padding:0;border-top:1px solid #f8f5ec}.mobile-menu .mobile-menu-list .mobile-menu-item{padding:10px 30px;border-bottom:1px solid #f8f5ec}.mobile-menu .mobile-menu-list a{font-size:18px;font-family:Georgia,Cambria,times new roman,Times,serif}.mobile-menu .mobile-menu-list a:hover{color:#c05b4d}@media screen and (max-width:800px){.mobile-navbar{display:block}}.back-to-top{display:none;position:fixed;right:20px;bottom:20px;transition-property:transform;transition-timing-function:ease-out;transition-duration:.3s;z-index:10}.back-to-top:hover{transform:translateY(-5px)}@media screen and (max-width:800px){.back-to-top{display:none!important}}.not-found{text-align:center}.not-found .error-emoji{color:#363636;font-size:3rem}.not-found .error-text{color:#797979;font-size:1.25rem}.not-found .error-link{margin-top:2rem}.not-found .error-link a{color:#c05b4d}.post-footer{border-top:none!important}body{background:linear-gradient(180deg,var(--blog-page-top) 0,var(--blog-background) 280px,var(--blog-background-wash) 100%),repeating-linear-gradient(0,var(--blog-page-noise) 0 1px,transparent 1px 5px);background-attachment:fixed;color:var(--blog-text)}.container{background:0 0}.copyright,.copyright a,.footer,.footer a,.footer a:hover,.header,.header a,.header a:hover,.logo,.menu-item-link{color:var(--blog-text)}.theme-toggle{align-items:center;background:var(--blog-control-background);border:1px solid var(--blog-control-border);border-radius:999px;color:var(--blog-muted);cursor:pointer;display:inline-flex;float:right;height:2.15rem;justify-content:center;margin-left:.9rem;margin-top:1.2rem;transition:background-color .18s ease,border-color .18s ease,color .18s ease;width:2.15rem}.theme-toggle:focus-visible,.theme-toggle:hover{background:var(--blog-control-hover);border-color:var(--blog-muted);color:var(--blog-heading)}.theme-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--blog-link) 35%,transparent);outline-offset:2px}.theme-toggle-icon{display:none}html[data-theme=dark] .theme-toggle-icon-dark,html[data-theme=light] .theme-toggle-icon-light{display:block}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.post{margin-left:auto;margin-right:auto;max-width:var(--article-max);padding-bottom:3rem;padding-top:2.25rem}.posts .post{padding-bottom:1.55rem;padding-top:1.35rem}.posts{border-bottom-color:var(--blog-rule)}.post+.post{border-top-color:var(--blog-rule)}.post-header{margin-bottom:2rem}.post .post-header .post-title{color:var(--blog-heading);font-family:var(--blog-serif);font-size:clamp(2.25rem,4.2vw,2.75rem);font-weight:600;letter-spacing:0;line-height:1.12;margin-bottom:.6rem}.posts .post .post-header .post-title{font-size:1.8rem;line-height:1.22}.posts .post-header{margin-bottom:.85rem}.post .post-header .post-title a{color:inherit}.post .post-header .post-meta{color:var(--blog-muted);font-family:var(--blog-sans);font-size:.875rem;line-height:1.5}.post .post-content{color:var(--blog-text);font-family:var(--blog-serif);font-size:19px;line-height:1.75;margin-left:0;margin-right:auto;max-width:var(--article-prose-max);text-rendering:optimizeLegibility;word-wrap:break-word}.post .post-content blockquote,.post .post-content ol,.post .post-content p,.post .post-content ul{margin-bottom:1.45em;margin-top:0}.post .post-content ol,.post .post-content ul{padding-left:1.35em}.post .post-content p:has(+ol),.post .post-content p:has(+ul){margin-bottom:.55em}.post .post-content li+li{margin-top:.45em}.post .post-content h2,.post .post-content h3,.post .post-content h4{color:var(--blog-heading);font-family:var(--blog-sans);font-weight:700;letter-spacing:0}.post .post-content h2{font-size:1.55rem;line-height:1.25;margin-bottom:.6em;margin-top:1.55em}.post .post-content h3{font-size:1.25rem;line-height:1.3;margin-bottom:.55em;margin-top:1.35em}.post .post-content h4{font-size:1.05rem;line-height:1.35;margin-bottom:.45em;margin-top:1.25em}.post .post-content a{color:var(--blog-link);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.16em;word-break:break-word}.post .post-content a:hover{border-bottom:0;color:var(--blog-link-hover)}.post .post-content blockquote{background:var(--blog-quote-background);border-left:4px solid var(--blog-rule);box-shadow:none;color:var(--blog-quote-text);padding:1rem 1.25rem}.post .post-content blockquote p:last-child{margin-bottom:0}.post .post-content .post-summary{color:var(--blog-summary)}.posts .post .post-content{font-size:17px;line-height:1.65;max-width:none}.posts .post .post-content .post-summary{margin-bottom:.65rem}.post .post-content .read-more .read-more-link{color:var(--blog-link);font-family:var(--blog-sans);font-size:.95rem;font-weight:650;text-decoration:none}.post .post-content table{font-family:var(--blog-sans);font-size:.92rem;line-height:1.45}.post .post-content code{background:var(--blog-code-background);color:var(--blog-code-text)}.post .post-toc{background:0 0;border-left:1px solid var(--blog-rule);border-radius:0;box-shadow:none;color:var(--blog-muted);font-family:var(--blog-sans);margin-left:calc(var(--article-max) + var(--toc-gap));padding:.25rem 0 .25rem 1rem;width:var(--toc-width)}.post .post-toc .post-toc-title{color:var(--blog-heading);font-family:var(--blog-sans);font-size:.72rem;font-weight:700;letter-spacing:.08em;margin:0 0 .75rem}.post .post-toc .post-toc-content{font-size:.84rem;line-height:1.45}.post .post-toc .post-toc-content>nav>ul{margin:0}.post .post-toc .post-toc-content ul{list-style:none;padding-left:0}.post .post-toc .post-toc-content li+li{margin-top:.55rem}.post .post-toc .post-toc-content ul ul{border-left:1px solid var(--blog-toc-nested-border);margin-top:.45rem;padding-left:.85rem}.post .post-toc .post-toc-content a{color:var(--blog-muted);text-decoration:none}.post .post-toc .post-toc-content .toc-link.active,.post .post-toc .post-toc-content a:hover{color:var(--blog-link)}.terms{color:var(--blog-text)}.terms,.terms .terms-title{font-family:var(--blog-sans)}.terms .terms-title{border-bottom:1px solid var(--blog-rule);color:var(--blog-heading);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.terms .terms-tags .terms-link{color:var(--blog-link);font-weight:500;text-decoration:none;transition:color .18s ease}.terms .terms-tags .terms-link:active,.terms .terms-tags .terms-link:focus,.terms .terms-tags .terms-link:hover{color:var(--blog-link-hover);transform:none}.terms .terms-tags .terms-link .terms-count{color:var(--blog-muted)}.archive{font-family:var(--blog-sans);max-width:720px}.archive-title.category .archive-name,.archive-title.tag .archive-name{color:var(--blog-heading);font-family:var(--blog-sans);font-weight:700}.archive .collection-title .archive-year{color:var(--blog-muted);font-family:var(--blog-sans);font-size:.78rem;font-weight:700;letter-spacing:.12em;line-height:1;margin:1.6rem 0 .55rem;padding-left:1rem;text-transform:uppercase}.archive .archive-post{align-items:baseline;border-left:1px solid var(--blog-rule);display:flex;gap:.5rem;padding:.4rem 1rem;transition:border-color .18s ease}.archive .archive-post:hover{border-left:1px solid var(--blog-link);transform:none}.archive .archive-post .archive-post-time{color:var(--blog-muted);flex:0 0 5rem;font-size:.85rem}.archive .archive-post .archive-post-title{flex:1;min-width:0}.archive .archive-post:hover .archive-post-time{color:var(--blog-muted)}.archive .archive-post .archive-post-title .archive-post-link{color:var(--blog-link);font-weight:550;text-decoration:none}.archive .archive-post:hover .archive-post-title .archive-post-link{color:var(--blog-link-hover)}.recent-posts{font-family:var(--blog-sans);margin-top:2.5rem;max-width:var(--article-prose-max)}.recent-posts>h2{color:var(--blog-heading);font-family:var(--blog-sans);font-size:1.4rem;font-weight:700;letter-spacing:0;line-height:1.25;margin:0 0 .9rem}.recent-posts ul{border-top:1px solid var(--blog-rule);list-style:none;margin:0;padding:0}.recent-posts li{border-bottom:1px solid var(--blog-rule);padding:.55rem 0}.recent-posts .post-meta{align-items:baseline;display:flex;gap:.75rem;justify-content:space-between}.recent-posts .post-meta a,.recent-posts .post-meta a:hover{border-bottom:0;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .18s ease}.recent-posts .post-meta a{color:var(--blog-link)}.recent-posts .post-meta a:hover{color:var(--blog-link-hover)}.recent-posts .post-meta .post-time{color:var(--blog-muted);flex-shrink:0;font-size:.78rem;white-space:nowrap}@media(max-width:760px){body{background-attachment:scroll}.container{box-shadow:none}.header .theme-toggle{display:none}.content-wrapper{padding-left:18px;padding-right:18px}.post{padding-bottom:2rem;padding-top:1.5rem}.post-header{margin-bottom:1.5rem}.post .post-header .post-title{font-size:1.7rem;line-height:1.18}.posts .post .post-header .post-title{font-size:1.45rem}.post .post-content{font-size:17px;line-height:1.72}.post .post-content h2{font-size:1.35rem}.post .post-content h3{font-size:1.16rem}}@media(max-width:1340px){.post .post-toc{display:none}}.actions{align-items:center;display:flex;gap:1rem;margin:1.75rem 0 1.25rem}.email-section,.like-section{align-items:center;display:flex;flex:1}.email-section{justify-content:flex-start}.email-button,.like-button{align-items:center;background-color:var(--blog-action-background);border:1px solid var(--blog-action-border);border-radius:8px;color:var(--blog-action-text);cursor:pointer;display:flex;gap:8px;min-height:2.55rem;padding:.65rem .95rem;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.email-button{font-family:var(--blog-sans);font-size:.95rem;font-weight:650;text-decoration:none}.email-icon{fill:currentColor;flex-shrink:0;height:1.05em;width:1.05em}.email-text{line-height:1.2}.like-section{display:flex;justify-content:center}.like-button{font-weight:700;text-transform:uppercase}.email-button:focus-visible,.like-button:focus-visible{outline:3px solid var(--blog-action-active-background);outline-offset:2px}.email-button:hover,.like-button:hover,.like-button[aria-pressed=true]{background-color:var(--blog-action-active-background);border-color:var(--blog-action-active-background);color:var(--blog-action-active-text)}.like-button[aria-pressed=false]{background-color:var(--blog-action-background);color:var(--blog-action-text)}.like-icon{height:24px;transition:transform .2s ease-in-out;width:24px}.like-button:hover .like-icon,.like-button[aria-pressed=true] .like-icon{transform:scale(1.2)}.like-counter{font-size:1rem;transition:transform .2s ease-in-out}.coffee-button{align-items:center;background:#f4d35e;border:1px solid #f4d35e;border-radius:8px;color:#07110d;display:inline-flex;font:700 .95rem/1.2 var(--blog-sans);justify-content:center;min-height:2.65rem;padding:.65rem 1rem;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.coffee-button:hover{background:#f8df85;border-color:#f8df85;color:#07110d;transform:translateY(-1px)}.coffee-button:focus-visible{outline:3px solid color-mix(in srgb,#f4d35e 45%,transparent);outline-offset:2px}.subscribe-section{background:var(--blog-control-background);border:1px solid var(--blog-control-border);border-radius:8px;display:grid;gap:.9rem;margin:1.5rem 0 2rem;padding:1.1rem}.subscribe-copy h2{color:var(--blog-heading);font-family:var(--blog-sans);font-size:1.05rem;line-height:1.25;margin:0 0 .25rem}.subscribe-copy p{color:var(--blog-muted);font-family:var(--blog-sans);font-size:.95rem;line-height:1.4;margin:0}.subscribe-form{display:flex;gap:.6rem}.subscribe-input{background:var(--blog-background);border:1px solid var(--blog-control-border);border-radius:8px;color:var(--blog-text);flex:1;font:500 .95rem/1.2 var(--blog-sans);min-height:2.65rem;min-width:0;padding:.65rem .8rem}.subscribe-input::-moz-placeholder{color:var(--blog-muted)}.subscribe-input::placeholder{color:var(--blog-muted)}.subscribe-button{background:var(--blog-action-active-background);border:1px solid var(--blog-action-active-background);border-radius:8px;color:var(--blog-action-active-text);cursor:pointer;font:700 .95rem/1.2 var(--blog-sans);min-height:2.65rem;padding:.65rem .95rem;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.subscribe-button:focus-visible,.subscribe-input:focus-visible{outline:3px solid color-mix(in srgb,var(--blog-link) 35%,transparent);outline-offset:2px}.subscribe-button:hover{background:var(--blog-link-hover);border-color:var(--blog-link-hover);color:var(--blog-heading)}@media(max-width:560px){.actions{align-items:center;gap:.6rem}.email-section,.like-section{min-width:0}.subscribe-form{flex-direction:column}}body{border-top-color:var(--blog-link)}::-moz-selection{background:color-mix(in srgb,var(--blog-link) 28%,transparent);color:var(--blog-heading)}::selection{background:color-mix(in srgb,var(--blog-link) 28%,transparent);color:var(--blog-heading)}.header .site-navbar .menu .menu-item:before,.post .post-header .post-link:before{background:var(--blog-link)}.post .post-header .post-meta .post-category a:hover{color:var(--blog-link-hover)}.post .post-footer .post-tags a{color:var(--blog-link)}.pagination .next:hover,.pagination .prev:hover{color:var(--blog-link-hover)}.post .post-copyright .copyright-item a{color:var(--blog-link)}.post .post-copyright .copyright-item a:hover{border-bottom-color:var(--blog-link)}.back-to-top.visible{display:block}.mobile-navbar{background:var(--blog-page-top);box-shadow:0 1px 0 var(--blog-rule);color:var(--blog-text);transition:none}.mobile-navbar .mobile-header-logo .logo{color:var(--blog-heading)}.theme-toggle-mobile{float:none;margin:0;position:absolute;right:55px;top:50%;transform:translateY(-50%)}.mobile-navbar .mobile-navbar-icon{color:var(--blog-text)}.mobile-navbar .mobile-navbar-icon span{background-color:var(--blog-text)}.mobile-menu{background-color:var(--blog-page-top);box-shadow:inset 1px 0 0 var(--blog-rule)}.mobile-menu .mobile-menu-list{border-top-color:var(--blog-rule)}.mobile-menu .mobile-menu-list a{color:var(--blog-text);display:block;text-decoration:none}.mobile-menu .mobile-menu-list a:focus-visible{outline:3px solid color-mix(in srgb,var(--blog-link) 35%,transparent);outline-offset:-3px}.mobile-menu .mobile-menu-list .mobile-menu-item{border-bottom-color:var(--blog-rule)}.mobile-menu .mobile-menu-list a:hover{color:var(--blog-link)}.slideout-open #mobile-panel{transform:translateX(calc(var(--mobile-menu-width)*-1))}.slideout-open .mobile-menu{display:block;z-index:2}@media(max-width:760px){.mobile-menu,.mobile-navbar,.slideout-panel{transition:none!important}.slideout-panel{background:var(--blog-background)}}.not-found .error-link a{color:var(--blog-link)}li>input[type=checkbox]{margin-right:.5em;vertical-align:middle}ul>li:has(>input[type=checkbox]){list-style-type:none}ul:has(li>input[type=checkbox]){padding-left:0}