@font-face{font-family:Lobster;src:url(/_astro/lobster-latin.SibhKaHL.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/_astro/nunito-latin-variable.CjueodBP.woff2)format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}@font-face{font-family:Nunito Sans;src:url(/_astro/nunito-sans-latin-variable.D3QsY_-3.woff2)format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/_astro/roboto-mono-latin-variable.BAKpfWyj.woff2)format("woff2");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/_astro/roboto-mono-latin-variable-italic.D_P-kX1t.woff2)format("woff2");font-weight:100 700;font-style:italic;font-display:swap}:root{--theme-color:#c05b4d;--deputy-color:#f8f5ec;--white:#f5f7f3;--light-gray:#e6e6e6;--gray:#cacaca;--dark-gray:#8a8a8a;--global-font-color:#34495e;--code-color:#c7254e;--code-background:#f1f1e3;--global-font-family:"nunito", sans-serif;--logo-font-family:lobster, sans-serif;--code-font-family:"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--global-font-size:19px;--global-line-height:1.65;--global-body-width:763px}.cap{color:#777;text-align:center;padding-top:5px;font-size:17px;display:block}li{padding-top:3px;padding-bottom:3px}.cta{background:0 0;border:none;margin:auto;padding:12px 18px;transition:all .2s;position:relative}.cta:before{content:"";background:#b1dae7;border-radius:50px;width:45px;height:45px;transition:all .3s;display:block;position:absolute;top:0;left:0}.cta span{letter-spacing:.05em;color:#234567;font-family:Ubuntu,sans-serif;font-size:21px;font-weight:700;position:relative}.cta svg{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke:#234567;stroke-width:2px;margin-bottom:3px;margin-left:10px;transition:all .3s;position:relative;top:0;transform:translate(-5px)}.cta:hover:before{background:#b1dae7;width:100%}.cta:hover svg{transform:translate(0)}.cta:active{transform:scale(.95)}.archive-month{color:#5a7c9f;margin:7px 0;font-size:22px}.article-cta{background-color:#eaeaea;border-left:4px solid #6b7280;border-radius:8px;margin:0 0 1.5rem;padding:1.5rem;font-size:1.05rem}.article-cta p{margin:0;font-size:1.1rem;line-height:1.6}.article-cta a{color:#3b82f6;border-bottom:1px solid #0000;text-decoration:none;transition:all .2s}.article-cta a:hover{color:#2563eb;border-bottom-color:#2563eb}.subscribe-link{color:#3b82f6}.tag-home-link,.category-home-link{color:var(--theme-color)!important;text-decoration:none!important}.tag-home-link:hover,.category-home-link:hover{color:#a04a3d!important;text-decoration:underline!important}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{vertical-align:baseline;display:inline-block}audio:not([controls]){height:0;display:none}[hidden],template{display:none}a{background-color:#0000}.post .post-content a{font-weight:700}.post .link-normal a{font-weight:400;color:#bb5142!important}.post .link-normal a:hover{color:#a14639!important}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;border:1px solid #aaa;border-left:none;border-right:none;border-radius:1px;width:150px;max-width:35%;height:2px;margin:30px auto}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{font-size:var(--global-font-size);box-sizing:border-box}body{font-family:var(--global-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:var(--global-line-height);color:var(--global-font-color);background:var(--white);scroll-behavior:smooth;margin:0;padding:0}body.hide-top{border-top:3px solid #0000}@media screen and (width<=763px){body{border-top:0}}::selection{background:var(--theme-color);color:#fff}img{vertical-align:middle;max-width:100%;height:auto;display:inline-block}a{color:var(--global-font-color);text-decoration:none}h1{font-size:32px;font-family:var(--global-font-family)}h2{font-size:29px;font-family:var(--global-font-family)}h3{font-size:23px;font-family:var(--global-font-family)}h4{font-size:21px;font-family:var(--global-font-family)}h5,h6{font-size:14px;font-family:var(--global-font-family)}.container{width:var(--global-body-width);margin:0 auto}@media screen and (width<=763px){.container{width:100%;box-shadow:-1px -5px 5px var(--gray)}}.content-wrapper{padding:0 20px}.video-container{height:0;padding-top:25px;padding-bottom:56.25%;position:relative}.video-container iframe{width:100%;height:100%;position:absolute;top:0;left:0}.header:before,.header:after{content:" ";display:table}.header:after{clear:both}.header{padding:20px 20px 0}.header .logo-wrapper{float:left;padding-top:9px}.header .logo-wrapper .logo{font-size:30px;font-family:var(--logo-font-family)}@media screen and (width<=763px){.header .logo-wrapper{display:none}}.header .site-navbar{float:right}.header .site-navbar .menu{font-family:var(--global-font-family);padding-left:0;display:inline-block;position:relative}.header .site-navbar .menu .menu-item{padding-bottom:5px;display:inline-block}.header .site-navbar .menu .menu-item+.menu-item{margin-left:10px}.header .site-navbar .menu .menu-item{vertical-align:middle;backface-visibility:hidden;display:inline-block;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 0 1px #0000}.header .site-navbar .menu .menu-item:before{content:"";z-index:-1;background:var(--theme-color);height:2px;transition-property:right,left;transition-duration:.2s;transition-timing-function:ease-out;position:absolute;bottom:0;left:51%;right:51%}.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{left:0;right:0}.header .site-navbar .menu .menu-item-link{font-size:18px}@media screen and (width<=763px){.header .site-navbar{display:none}}.header .dropdown{vertical-align:middle;margin-left:10px;margin-right:7px;padding-bottom:5px;display:inline-block;position:relative}.header .dropdown.menu-item{position:relative}.header .dropdown .dropdown-content{z-index:1;background-color:#e7e9ec;min-width:142px;display:none;position:absolute;top:39px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px 2px #0003}.header .dropdown .dropdown-content a{color:var(--global-font-color);font-family:var(--global-font-family);padding:6px 15px;font-size:18px;text-decoration:none;display:block}.header .dropdown .dropdown-content a:hover{background-color:#ddd}.header .dropdown:hover .dropdown-content{display:block}@media screen and (width<=763px){.header{text-align:center;padding:50px 0 0}}.posts{margin-bottom:20px}.post{padding:.7em 0}.post+.post{border-top:1px solid var(--light-gray)}.post .post-header{margin-bottom:20px}.post .post-header .post-title{font-size:32px;font-weight:700;font-family:var(--global-font-family);margin:0;line-height:1.5}.post .post-header .post-link{vertical-align:middle;backface-visibility:hidden;display:inline-block;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 0 1px #0000}.post .post-header .post-link:before{content:"";z-index:-1;background:var(--theme-color);height:2px;transition-property:right,left;transition-duration:.2s;transition-timing-function:ease-out;position:absolute;bottom:0;left:51%;right:51%}.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{left:0;right:0}.post .post-header .post-meta .post-time{color:var(--dark-gray);font-size:19px}.post .post-header .post-meta .post-update{color:#617b9c;font-size:19px}.post .post-header .post-meta .post-category{color:var(--theme-color);font-size:19px;display:inline}.post .post-header .post-meta .post-category:before{content:"·"}.post .post-header .post-meta .post-category a{color:inherit;border-bottom:1px solid var(--theme-color);box-shadow:inset 0 0 0 0 var(--theme-color);padding:0 3px;font-weight:700;transition:color .3s ease-in-out,box-shadow .3s ease-in-out}.post .post-header .post-meta .post-category a+a:before{content:"/";margin-right:4px;color:var(--dark-gray)!important}.post .post-header .post-meta .post-category a:hover{box-shadow:inset 0px -50px 0px 0px var(--theme-color);color:var(--white)}.post .post-header .post-meta .post-visits{color:var(--dark-gray);font-size:16px;display:inline-block}.post .post-header .post-meta .post-visits:before{content:"·"}.post .post-toc{width:222px;font-family:var(--global-font-family);word-wrap:break-word;box-sizing:border-box;background:#e1e5e9;border-radius:3px;margin-left:748px;padding:10px 10px 8px;position:absolute;box-shadow:1px 1px 2px #00000020}.post .post-toc .post-toc-title{text-transform:uppercase;margin:0 10px;font-size:20px;font-weight:700}.post .post-toc .post-toc-content{font-size:16px}.post .post-toc .post-toc-content .toc,.post .post-toc .post-toc-content .toc-child{list-style:outside}.post .post-toc .post-toc-content .toc{margin:2px 0;padding-left:20px}.post .post-toc .post-toc-content .toc .toc-child{padding-left:15px}.post .post-toc .post-toc-content .toc-link:hover{color:#dc143c}@media screen and (width<=1192px){.post .post-toc{display:none}}.post .post-content h2,.post .post-content h3,.post .post-content h4,.post .post-content h5,.post .post-content h6{font-weight:700;font-family:var(--global-font-family);color:var(--global-font-color);margin-block:1.5rem 0}.post .post-content h3{color:#5a7c9f}.post .post-content{color:#2e3339}.post .post-content h1{color:var(--global-font-color);margin-block:0}.post .post-content p{margin-block:.5em 1.2em}.post .post-content ul,.post .post-content ol{margin-block:.2em 1.2em}.post .post-content blockquote ul,.post .post-content blockquote ol{color:var(--global-font-color);margin-block:.4em .35em}.post .post-content li ol,.post .post-content li ul{margin-block:0}.post .post-content h2,.post .post-content h3{align-items:baseline;display:flex}.post .post-content h2 .headerlink,.post .post-content h3 .headerlink{order:1}.post .post-content h2 .headerlink:after,.post .post-content h3 .headerlink:after{content:"#";color:var(--theme-color);opacity:0;margin-left:.3em;transition:opacity .2s}.post .post-content h2:hover .headerlink:after,.post .post-content h3:hover .headerlink:after{opacity:1}.post .post-content .headerlink:hover{border-bottom:0}.post .post-content a{color:var(--theme-color);word-break:normal}.post .post-content a:hover{border-bottom:1px solid var(--theme-color)}.post .post-content a.fancybox{border:0}.post .post-content blockquote{color:var(--global-font-color);background-color:#c05b4d13;border-left:3px solid #c05b4d4d;margin:1.2em 0;padding:10px 20px;position:relative;box-shadow:1px 1px 2px #00000020}.post .post-content blockquote p{margin:0}.post .post-content img{max-width:100%;display:inline-block}.post .post-content .table-responsive{width:100%;margin-bottom:20px;overflow:auto}.post .post-content .table-responsive td,.post .post-content .table-responsive th{border-color:#ccc}.post .post-content table{border-spacing:0;width:100%;max-width:100%;box-shadow:2px 2px 3px #00000020}.post .post-content table thead{color:var(--global-font-color);background-color:#e9e9d4}.post .post-content table th,.post .post-content table td{color:var(--global-font-color);border:1px double #f4efe1;padding:5px 15px;font-size:18px}.post .post-content table .table-responsive td,.post .post-content table .table-responsive th{border-color:#ccc}.post .post-content table td{background-color:#f1f1e4}.post .post-content pre{font-size:16px;font-family:var(--code-font-family);background:var(--code-background);padding:7px}.post .post-content td.code{color:#485b6e}.post .post-content code{color:var(--code-color);word-break:normal;white-space:pre-warp;word-wrap:break-word;background:#eee;border:1px solid #ddd;border-radius:3px;margin:0;padding:0 3px 2px;font-family:Roboto Mono,monospace;font-size:.85em;font-weight:500}.post .post-content .highlight{border-radius:3px;margin:1em 0;position:relative;overflow-x:hidden;box-shadow:1px 1px 2px #00000020}.post .post-content .highlight:before{content:"";z-index:5;background:#e9e9d2;height:30px;position:absolute;top:0;left:0;right:0}.post .post-content .highlight:after{color:#a98080;content:"Code";z-index:6;padding:0 7px;font-size:16px;position:absolute;top:0;left:0}.post .post-content .highlight .code-copy-btn{z-index:10;color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;transition:background .2s,color .2s;position:absolute;top:3px;right:6px}.post .post-content .highlight .code-copy-btn:hover{color:#555;background:#e0e0c1}.post .post-content .highlight .code-copy-btn.copied{color:#27ae60}.post .post-content .highlight .code-copy-btn svg{display:block}.post .post-content .highlight table{max-width:none;display:block;position:relative;overflow-x:auto}.post .post-content .highlight table:after{display:none}.post .post-content .highlight.html:after{content:"HTML"}.post .post-content .highlight.html>figcaption>span:after{content:" · HTML"}.post .post-content .highlight.html figcaption+table:after{display:none}.post .post-content .highlight.js:after{content:"JavaScript"}.post .post-content .highlight.js>figcaption>span:after{content:" · JavaScript"}.post .post-content .highlight.js figcaption+table:after{display:none}.post .post-content .highlight.bash:after{content:"Bash"}.post .post-content .highlight.bash>figcaption>span:after{content:" · Bash"}.post .post-content .highlight.bash figcaption+table:after{display:none}.post .post-content .highlight.css:after{content:"CSS"}.post .post-content .highlight.css>figcaption>span:after{content:" · CSS"}.post .post-content .highlight.css figcaption+table:after{display:none}.post .post-content .highlight.scss:after{content:"Scss"}.post .post-content .highlight.scss>figcaption>span:after{content:" · Scss"}.post .post-content .highlight.scss figcaption+table:after{display:none}.post .post-content .highlight.java:after{content:"Java"}.post .post-content .highlight.java>figcaption>span:after{content:" · Java"}.post .post-content .highlight.java figcaption+table:after{display:none}.post .post-content .highlight.xml:after{content:"XML"}.post .post-content .highlight.xml>figcaption>span:after{content:" · XML"}.post .post-content .highlight.xml figcaption+table:after{display:none}.post .post-content .highlight.python:after{content:"Python"}.post .post-content .highlight.python>figcaption>span:after{content:" · Python"}.post .post-content .highlight.python figcaption+table:after{display:none}.post .post-content .highlight.json:after{content:"JSON"}.post .post-content .highlight.json>figcaption>span:after{content:" · JSON"}.post .post-content .highlight.json figcaption+table:after{display:none}.post .post-content .highlight.swift:after{content:"Swift"}.post .post-content .highlight.swift>figcaption>span:after{content:" · Swift"}.post .post-content .highlight.swift figcaption+table:after{display:none}.post .post-content .highlight.ruby:after{content:"Ruby"}.post .post-content .highlight.ruby>figcaption>span:after{content:" · Ruby"}.post .post-content .highlight.ruby figcaption+table:after{display:none}.post .post-content .highlight.php:after{content:"PHP"}.post .post-content .highlight.php>figcaption>span:after{content:" · PHP"}.post .post-content .highlight.php figcaption+table:after{display:none}.post .post-content .highlight.c:after{content:"C"}.post .post-content .highlight.c>figcaption>span:after{content:" · C"}.post .post-content .highlight.c figcaption+table:after{display:none}.post .post-content .highlight.cpp:after{content:"C++"}.post .post-content .highlight.cpp>figcaption>span:after{content:" · C++"}.post .post-content .highlight.cpp figcaption+table:after{display:none}.post .post-content .highlight.scheme:after{content:"Scheme"}.post .post-content .highlight.scheme>figcaption>span:after{content:" · Scheme"}.post .post-content .highlight.scheme figcaption+table:after{display:none}.post .post-content .highlight.objectivec:after{content:"Objective-C"}.post .post-content .highlight.objectivec>figcaption>span:after{content:" · Objective-C"}.post .post-content .highlight.objectivec figcaption+table:after{display:none}.post .post-content .highlight.yml:after{content:"YAML"}.post .post-content .highlight.yml>figcaption>span:after{content:" · YAML"}.post .post-content .highlight.yml figcaption+table:after{display:none}.post .post-content .highlight.stylus:after{content:"Stylus"}.post .post-content .highlight.stylus>figcaption>span:after{content:" · Stylus"}.post .post-content .highlight.stylus figcaption+table:after{display:none}.post .post-content .highlight.sql:after{content:"SQL"}.post .post-content .highlight.sql>figcaption>span:after{content:" · SQL"}.post .post-content .highlight.sql figcaption+table:after{display:none}.post .post-content .highlight.http:after{content:"HTTP"}.post .post-content .highlight.http>figcaption>span:after{content:" · HTTP"}.post .post-content .highlight.http figcaption+table:after{display:none}.post .post-content .highlight.go:after{content:"Go"}.post .post-content .highlight.go>figcaption>span:after{content:" · Go"}.post .post-content .highlight.go figcaption+table:after{display:none}.post .post-content .highlight.kotlin:after{content:"Kotlin"}.post .post-content .highlight.kotlin>figcaption>span:after{content:" · Kotlin"}.post .post-content .highlight.kotlin figcaption+table:after{display:none}.post .post-content .highlight.ts:after{content:"TypeScript"}.post .post-content .highlight.ts>figcaption>span:after{content:" · TypeScript"}.post .post-content .highlight.ts figcaption+table:after{display:none}.post .post-content .highlight.toml:after{content:"TOML"}.post .post-content .highlight.toml>figcaption>span:after{content:" · TOML"}.post .post-content .highlight.toml figcaption+table:after{display:none}.post .post-content .highlight.yaml:after{content:"YAML"}.post .post-content .highlight.yaml>figcaption>span:after{content:" · YAML"}.post .post-content .highlight.yaml figcaption+table:after{display:none}.post .post-content .highlight figcaption{color:#b1b1b1;z-index:20;box-sizing:border-box;background:#ececd9;width:100%;padding:2px 7px;font-size:16px;font-weight:700;position:absolute;top:0;overflow-x:hidden}.post .post-content .highlight figcaption>a{display:inline-box;margin-right:7px;font-weight:400;position:absolute;right:0}.post .post-content .highlight figcaption>a:hover{border:0;text-decoration:none}.post .post-content .highlight .code pre{margin:0;padding:30px 10px 5px}.post .post-content .highlight .gutter{color:#c29a9a;width:10px}.post .post-content .highlight .gutter pre{margin:0;padding:30px 7px 5px}.post .post-content .highlight .line{height:24px}.post .post-content .highlight table,.post .post-content .highlight tr,.post .post-content .highlight td{border-collapse:collapse;width:100%;margin:0;padding:0}.post .post-content .highlight .code .comment,.post .post-content .highlight .code .quote{color:var(--dark-gray)}.post .post-content .highlight .code .keyword,.post .post-content .highlight .code .selector-tag,.post .post-content .highlight .code .addition{color:#1b81e5;font-weight:700}.post .post-content .highlight .code .number,.post .post-content .highlight .code .string,.post .post-content .highlight .code .meta .meta-string,.post .post-content .highlight .code .literal,.post .post-content .highlight .code .doctag,.post .post-content .highlight .code .regexp{color:#dc143c}.post .post-content .highlight .code .title,.post .post-content .highlight .code .section,.post .post-content .highlight .code .name,.post .post-content .highlight .code .selector-id,.post .post-content .highlight .code .selector-class{color:#cc7000}.post .post-content .highlight .code .attribute,.post .post-content .highlight .code .attr,.post .post-content .highlight .code .variable,.post .post-content .highlight .code .template-variable,.post .post-content .highlight .code .class .title,.post .post-content .highlight .code .type{color:#2e8b57}.post .post-content .highlight .code .symbol,.post .post-content .highlight .code .bullet,.post .post-content .highlight .code .subst,.post .post-content .highlight .code .meta,.post .post-content .highlight .code .meta .keyword,.post .post-content .highlight .code .selector-attr,.post .post-content .highlight .code .selector-pseudo,.post .post-content .highlight .code .link{color:#6a5acd}.post .post-content .highlight .code .built_in,.post .post-content .highlight .code .deletion{color:var(--theme-color);font-weight:700}.post .post-content .read-more .read-more-link{color:var(--theme-color);font-size:1.1em;font-family:var(--global-font-family)}.post .post-content .read-more .read-more-link:hover{border-bottom:1px solid var(--theme-color)}.post .post-copyright{border-top:1px dashed var(--light-gray);margin-top:20px;padding-top:10px}.post .post-copyright .copyright-item{word-break:normal;white-space:pre-warp;word-wrap:break-word;margin:5px 0}.post .post-copyright .copyright-item a{color:var(--theme-color)}.post .post-reward{text-align:center;border-top:1px dashed var(--light-gray);margin-top:20px;padding-top:10px}.post .post-reward .reward-button{color:var(--theme-color);border:1px solid var(--theme-color);cursor:pointer;border-radius:5px;margin:15px 0;padding:3px 7px;display:inline-block}.post .post-reward .reward-button:hover{color:var(--white);background-color:var(--theme-color);transition:all .5s}.post .post-reward #reward:checked~.qr-code{display:block}.post .post-reward #reward:checked~.reward-button{display:none}.post .post-reward .qr-code{margin-top:15px;display:none}.post .post-reward .qr-code .qr-code-image{width:40%;min-width:200px;display:inline-block}.post .post-reward .qr-code .image{width:200px;height:200px}.post .post-footer{border-top:1px solid var(--light-gray);font-family:var(--global-font-family);margin-top:20px}.post .post-footer .post-tags{padding:15px 0}.post .post-footer .post-tags a{color:var(--theme-color);word-break:break-all;box-shadow:inset 0 0 0 0 var(--theme-color);margin-right:5px;padding:0 2px;transition:color .3s ease-in-out,box-shadow .3s ease-in-out}.post .post-footer .post-tags a:before{content:"#"}.post .post-footer .post-tags a:hover{box-shadow:inset 0px -50px 0px 0px var(--theme-color);color:var(--white)}.post .post-footer .post-nav{margin:.2em 0 1.5em}.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-size:18px;font-weight:700;font-family:var(--global-font-family);transition-property:transform;transition-duration:.3s;transition-timing-function:ease-out}.post .post-footer .post-nav .prev{float:left}.post .post-footer .post-nav .prev:hover{color:var(--theme-color);transform:translate(-4px)}.post .post-footer .post-nav .next{float:right}.post .post-footer .post-nav .next:hover{color:var(--theme-color);transform:translate(4px)}.post .post-footer .post-nav .nav-mobile{display:none}@media screen and (width<=763px){.post .post-footer .post-nav .nav-default{display:none}.post .post-footer .post-nav .nav-mobile{display:inline}}.post .popular-posts{margin:0;padding-top:5px;list-style-type:decimal}.post .popular-posts-title a{color:var(--theme-color)}.post .popular-posts-title a:hover{border-bottom:1px solid var(--theme-color)}.post .popular-posts-title h3{margin:0;font-size:18px}.pagination{margin:1em 0}.pagination:before,.pagination:after{content:" ";display:table}.pagination:after{clear:both}.pagination .prev,.pagination .next{font-size:20px;font-weight:400;font-family:var(--global-font-family);transition-property:transform;transition-duration:.3s;transition-timing-function:ease-out}.pagination .prev{float:left}.pagination .prev:hover{color:var(--theme-color);transform:translate(-4px)}.pagination .next{float:right}.pagination .next:hover{color:var(--theme-color);transform:translate(4px)}.footer{margin-top:2em}.footer .social-links{text-align:center}.footer .social-links .iconfont,.footer .social-links .social-icon{font-size:30px}.footer .social-links .iconfont:hover,.footer .social-links .social-icon:hover{color:var(--theme-color)}.footer .social-links .iconfont+.iconfont,.footer .social-links .iconfont+.social-icon,.footer .social-links .social-icon+.iconfont,.footer .social-links .social-icon+.social-icon{margin-left:10px}.footer .social-links .social-icon{display:inline-block}.footer .social-links .social-icon img{width:29px;height:29px;display:block;position:relative;top:3px}.footer .copyright{color:var(--dark-gray);text-align:center;font-family:var(--global-font-family);margin:10px 0;font-size:smaller}.footer .copyright .hexo-link,.footer .copyright .theme-link{color:var(--theme-color)}.footer .copyright .copyright-year{display:block}.footer .copyright .copyright-year .heart{font-size:13px}.archive{max-width:730px;margin:1em 0}.archive .archive-title{font-family:var(--global-font-family)}.archive .archive-title.tag,.archive .archive-title.category{margin:15px 0}.archive .archive-title .archive-name{margin:0;font-size:23px;font-weight:400;line-height:25px;display:inline-block}.archive .archive-title .archive-post-counter{color:var(--dark-gray);display:none}.archive .collection-title{font-family:var(--global-font-family)}.archive .collection-title .archive-year{font-weight:400;font-family:var(--global-font-family);color:#34495ee6;margin:15px 0;font-size:24px;line-height:24px}.archive .archive-post{border-left:1px solid var(--gray);padding:3px 20px}.archive .archive-post .archive-post-time{color:var(--dark-gray);margin-right:10px}.archive .archive-post .archive-post-title .archive-post-link{color:#bb5142}.archive .archive-post::first-child{margin-top:10px}.archive .archive-post:hover{border-left:3px solid var(--theme-color);transition:all .2s ease-out;transform:translate(4px)}.archive .archive-post:hover .archive-post-time{color:#717171}.archive .archive-post:hover .archive-post-title .archive-post-link{color:#a14639}@media screen and (width<=763px){.archive{margin-left:auto;margin-right:auto}.archive .archive-title .archive-name{font-size:19px}.archive .collection-title .archive-year{margin:10px 0;font-size:20px}.archive .archive-post{padding:5px 10px}.archive .archive-post .archive-post-time{font-size:16px;display:block}}.tag-cloud{text-align:center;font-family:var(--global-font-family);margin:1em 0}.tag-cloud .tag-cloud-title{color:var(--theme-color);border-bottom:2px solid var(--theme-color);font-size:18px;font-family:var(--global-font-family);display:inline-block}.tag-cloud .tag-cloud-tags{margin:10px 0}.tag-cloud .tag-cloud-tags a{word-wrap:break-word;margin:5px 10px;transition-property:transform;transition-duration:.2s;transition-timing-function:ease-out;display:inline-block;position:relative}.tag-cloud .tag-cloud-tags a:active,.tag-cloud .tag-cloud-tags a:focus,.tag-cloud .tag-cloud-tags a:hover{transform:scale(1.1);color:var(--theme-color)!important}.categories{text-align:center;font-family:var(--global-font-family);margin:1em 0 .5em}.categories .categories-title{color:var(--theme-color);border-bottom:2px solid var(--theme-color);font-size:18px;font-family:var(--global-font-family);display:inline-block}.categories .categories-tags{margin:15px 0}.categories .categories-tags .category-link{word-wrap:break-word;margin:5px 10px;transition-property:transform;transition-duration:.2s;transition-timing-function:ease-out;display:inline-block;position:relative}.categories .categories-tags .category-link .category-count{color:var(--theme-color);font-size:16px;font-family:var(--global-font-family);display:inline-block;position:relative;top:-8px;right:-2px}.categories .categories-tags .category-link:active,.categories .categories-tags .category-link:focus,.categories .categories-tags .category-link:hover{color:var(--theme-color);transform:scale(1.1)}.post-categories-box{padding:6px 0;display:flow-root}.post-categories-box .categories,.post-categories-box .categories-tags{margin:0}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.eot);src:url(//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.eot?#iefix)format("embedded-opentype"),url(//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.woff)format("woff"),url(//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.ttf)format("truetype"),url(//at.alicdn.com/t/font_96542_ixz9jngnf1sb57b9.svg#iconfont)format("svg")}.iconfont{-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale;cursor:pointer;font-style:normal;font-family:iconfont!important}.icon-instagram:before{content:"";font-size:.95em;position:relative;top:-1px}.icon-douban:before{content:""}.icon-tumblr:before{content:"";font-size:.85em;position:relative;top:-4px}.icon-linkedin:before{content:"";position:relative;top:-4px}.icon-twitter:before{content:""}.icon-weibo:before{content:""}.icon-stack-overflow:before{content:"";font-size:.85em;position:relative;top:-4px}.icon-email:before{content:"";position:relative;top:-2px}.icon-facebook:before{content:"";font-size:.95em;position:relative;top:-2px}.icon-github:before{content:"";position:relative;top:-3px}.icon-rss:before{content:""}.icon-google:before{content:""}.icon-zhihu:before{content:"";font-size:.9em;position:relative;top:-2px}.icon-pocket:before{content:""}.icon-heart:before{content:""}.icon-right:before{content:""}.icon-left:before{content:""}.icon-up:before{content:""}.icon-close:before{content:""}.slideout-menu{-webkit-overflow-scrolling:touch;z-index:0;width:180px;min-height:100vh;display:none;position:fixed;top:0;bottom:0;left:0;overflow-y:hidden}.slideout-panel{z-index:1;background-color:var(--white);min-height:100vh;position:relative}.slideout-open,.slideout-open body,.slideout-open .slideout-panel{overflow:hidden}.slideout-open .slideout-menu{display:block}.mobile-navbar{background:var(--white);text-align:center;z-index:99;border-bottom:1px solid #d8d8d8;width:100%;height:50px;transition:transform .2s;display:none;position:fixed;top:0;left:0}.mobile-navbar.fixed-open{transform:translate(180px)}.mobile-navbar.auto-hidden{transform:translateY(-100%)}.mobile-navbar .mobile-header-logo{margin-right:50px;display:inline-block}.mobile-navbar .mobile-header-logo .logo{font-size:22px;line-height:50px;font-family:var(--logo-font-family)}.mobile-navbar .mobile-navbar-icon{color:var(--theme-color);text-align:center;float:left;width:50px;height:50px;font-size:24px;transition:background .5s;position:relative}@keyframes clickfirst{0%{transform:translateY(6px)rotate(0)}to{transform:translateY(0)rotate(45deg)}}@keyframes clickmid{0%{opacity:1}to{opacity:0}}@keyframes clicklast{0%{transform:translateY(-6px)rotate(0)}to{transform:translateY(0)rotate(-45deg)}}@keyframes outfirst{0%{transform:translateY(0)rotate(-45deg)}to{transform:translateY(-6px)rotate(0)}}@keyframes outmid{0%{opacity:0}to{opacity:1}}@keyframes outlast{0%{transform:translateY(0)rotate(45deg)}to{transform:translateY(6px)rotate(0)}}.mobile-navbar .mobile-navbar-icon span{background-color:var(--theme-color);width:20px;height:1px;position:absolute;top:calc(50% - .5px);left:calc(50% - 10px)}.mobile-navbar .mobile-navbar-icon span:first-child{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:first-child{animation-name:clickfirst;animation-duration:.5s;animation-fill-mode:both}.mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(2){animation-name:clickmid;animation-duration:.2s;animation-fill-mode:both}.mobile-navbar .mobile-navbar-icon.icon-click span:nth-child(3){animation-name:clicklast;animation-duration:.5s;animation-fill-mode:both}.mobile-navbar .mobile-navbar-icon.icon-out span:first-child{animation-name:outfirst;animation-duration:.5s;animation-fill-mode:both}.mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(2){animation-name:outmid;animation-duration:.2s;animation-fill-mode:both}.mobile-navbar .mobile-navbar-icon.icon-out span:nth-child(3){animation-name:outlast;animation-duration:.5s;animation-fill-mode:both}.mobile-menu{background-color:#f8f5ec80}.mobile-menu .mobile-menu-list{border-top:1px solid var(--deputy-color);margin-top:50px;padding:0;list-style:none;position:relative}.mobile-menu .mobile-menu-list .mobile-menu-item{border-bottom:1px solid var(--deputy-color);padding:10px 30px}.mobile-menu .mobile-menu-list a{font-size:18px;font-family:var(--global-font-family)}.mobile-menu .mobile-menu-list a:hover{color:var(--theme-color)}@media screen and (width<=763px){.mobile-navbar{display:block}.post-content h2,.post-content h3{display:block!important}.post-content h2 .headerlink,.post-content h3 .headerlink{display:inline!important}.post-content h2 .headerlink:after,.post-content h3 .headerlink:after{opacity:1!important}}.back-to-top{z-index:10;transition-property:transform;transition-duration:.3s;transition-timing-function:ease-out;display:none;position:fixed;bottom:20px;right:20px}.back-to-top:hover{transform:translateY(-5px)}@media screen and (width<=763px){.back-to-top{display:none!important}}.mjx-chtml:focus{outline:none;padding:1px 0}.mobile-navbar .mobile-search-link{width:50px;height:50px;color:var(--theme-color);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.mobile-navbar .mobile-search-link svg{stroke-width:1.6px;width:20px;height:20px}.header .site-navbar .search-link{vertical-align:middle;margin-right:14px;padding-bottom:5px;line-height:0;display:inline-block}.header .site-navbar .search-link:hover{color:var(--theme-color)}.post .post-content .code-block{min-width:0;position:relative}.post .post-content pre{white-space:pre;border:1px solid #ffffff1f;border-radius:6px;padding:1rem;font-family:Roboto Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em;overflow-x:auto}.post .post-content pre code{font-family:inherit;font-size:inherit;color:inherit;white-space:inherit;overflow-wrap:normal;word-break:normal;background:0 0;border:0;padding:0;font-weight:400}.post .post-content pre.astro-code span[style*=\#6A737D i]{color:#8b949e!important}.code-copy-btn{-webkit-backdrop-filter:blur(4px);color:#999;cursor:pointer;opacity:0;z-index:5;background-color:#1e2129d9;border:1px solid #ffffff1f;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:opacity .15s,color .125s,border-color .125s;display:flex;position:absolute;top:.5rem;right:.5rem}.code-block:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:1}.code-copy-btn:hover{color:#5488e8;border-color:#5488e866}.code-copy-btn.copied{color:#4ade80!important;border-color:#4ade8080!important}@media (hover:none){.code-copy-btn{opacity:.75}}.media-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}
