@charset "UTF-8";@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}/*!normalize.css v3.0.2 | MIT License | git.io/normalize*/html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}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;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,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;-moz-box-sizing:content-box;-webkit-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:16px;box-sizing:border-box}body{padding:0;margin:0;font-family:Georgia,iowan old style,palatino linotype,times new roman,songti sc,SimSun,serif;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;color:#34495e;background:#fefefe;scroll-behavior:smooth;border-top:3px solid #c05b4d}@media screen and (max-width:860px){body{border-top:0}}::selection{background:#c05b4d;color:#fff}img{max-width:100%;height:auto;display:inline-block;vertical-align:middle}a{color:#34495e;text-decoration:none}h1{font-size:26px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}h2{font-size:24px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}h3{font-size:20px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}h4{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}h5{font-size:14px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}h6{font-size:14px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.container{margin:0 auto;width:860px}@media screen and (max-width:860px){.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:860px){.header .logo-wrapper{display:none}}.header .site-navbar{float:right}.header .site-navbar .menu{display:inline-block;position:relative;padding-left:0;padding-right:25px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:860px){.header .site-navbar{display:none}}.header .language-selector{float:right}@media screen and (max-width:860px){.header{padding:50px 0 0;text-align:center}.header .language-selector{display:none}}.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:20px}.post .post-header .post-title{margin:0;font-size:27px;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.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:14px;color:#8a8a8a}.post .post-header .post-meta .post-time{font-size:15px}.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:845px;padding:10px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:1245px){.post .post-toc{display:none}}.post .post-content{word-wrap:break-word}.post .post-content h1{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.post .post-content h1 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.post .post-content h1 .anchor:hover{border-bottom:initial}.post .post-content h1 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}.post .post-content h1 .anchor .icon-link:before{vertical-align:middle}.post .post-content h1:hover .icon-link{visibility:visible}.post .post-content h2{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.post .post-content h2 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.post .post-content h2 .anchor:hover{border-bottom:initial}.post .post-content h2 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}.post .post-content h2 .anchor .icon-link:before{vertical-align:middle}.post .post-content h2:hover .icon-link{visibility:visible}.post .post-content h3{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.post .post-content h3 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.post .post-content h3 .anchor:hover{border-bottom:initial}.post .post-content h3 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}.post .post-content h3 .anchor .icon-link:before{vertical-align:middle}.post .post-content h3:hover .icon-link{visibility:visible}.post .post-content h4{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.post .post-content h4 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.post .post-content h4 .anchor:hover{border-bottom:initial}.post .post-content h4 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}.post .post-content h4 .anchor .icon-link:before{vertical-align:middle}.post .post-content h4:hover .icon-link{visibility:visible}.post .post-content h5{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.post .post-content h5 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.post .post-content h5 .anchor:hover{border-bottom:initial}.post .post-content h5 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}.post .post-content h5 .anchor .icon-link:before{vertical-align:middle}.post .post-content h5:hover .icon-link{visibility:visible}.post .post-content h6{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.post .post-content h6 .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.post .post-content h6 .anchor:hover{border-bottom:initial}.post .post-content h6 .anchor .icon-link{visibility:hidden;font-size:16px;display:contents}.post .post-content h6 .anchor .icon-link:before{vertical-align:middle}.post .post-content h6:hover .icon-link{visibility:visible}.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:2em 0;padding:10px 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 pre>code{display:block}.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:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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 hr{margin:1rem 0;position:relative;border-top:2px dashed #c05b4d;border-bottom:none}.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:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:860px){.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}.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:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:#8a8a8a;text-align:center;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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;margin:4px}.archive{margin:2em 0;max-width:550px}.archive .archive-title{font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:#8a8a8a}.archive .collection-title{font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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:#8a8a8a}.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:#717171}.archive .archive-post:hover .archive-post-title .archive-post-link{color:#a14639}@media screen and (max-width:860px){.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:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-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;left:0;bottom:0;width:180px;min-height:100vh;overflow-y:hidden;-webkit-overflow-scrolling:touch;z-index:0;display:none}.slideout-menu .language-selector{padding-left:30px}.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-right: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:left;position:relative;transition:background .5s}@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:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.mobile-menu .mobile-menu-list a:hover{color:#c05b4d}@media screen and (max-width:860px){.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:860px){.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}.language-selector{width:max-content}.language-selector .languages-list{padding:0;background:#f4efe1}.language-selector .languages-list .language-item{display:inline-block;list-style-type:none;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;font-size:18px;padding:0 10px}.language-selector .languages-list .language-item.active{background:#c05b4d}.language-selector .languages-list .language-item.active>a{color:#fff}.academic-home .home-section{margin:2.6rem 0}.academic-home .home-section>h2{font-size:1.35rem;line-height:1.25;margin:0 0 1rem;padding-left:.6rem;border-left:4px solid #c05b4d}.academic-home .home-hero{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:1.6rem 0 2.2rem}.academic-home .home-hero .home-hero-text{flex:auto}.academic-home .home-hero .home-name{font-size:2.1rem;margin:0 0 .3rem;line-height:1.2}.academic-home .home-hero .home-name .home-name-zh{font-weight:400;font-size:1.4rem;color:#5d81a5;margin-left:.35rem}.academic-home .home-hero .home-tagline{font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;font-weight:600;font-size:1.02rem;color:#c05b4d;margin:.2rem 0 .75rem}.academic-home .home-hero .home-affiliation{color:#46637f;line-height:1.65;margin:0 0 .9rem}.academic-home .home-hero .home-hero-portrait{flex:none;text-align:center}.academic-home .home-hero .home-hero-portrait img{width:210px;height:210px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 4px rgba(192,91,77,.15),0 6px 18px rgba(0,0,0,.12)}.academic-home .home-hero .home-hero-portrait .portrait-caption{margin:.7rem 0 0;font-family:american typewriter,courier prime,Courier,courier new,monospace;font-size:1rem;letter-spacing:.04em;color:#000}.academic-home .home-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem .6rem}.academic-home .home-links li{margin:0}.academic-home .home-links a{display:inline-block;padding:.22rem .75rem;border:1px solid rgba(192,91,77,.4);border-radius:999px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;font-size:.9rem;color:#c05b4d;transition:background .2s ease,color .2s ease}.academic-home .home-links a:hover{background:#c05b4d;color:#fff}.academic-home .home-bio a,.academic-home .news-list a,.academic-home .pubs-note a,.academic-home .service-list a,.academic-home .gd-hint a,.academic-home .pub-links a{color:#c05b4d}.academic-home .home-bio a:hover,.academic-home .news-list a:hover,.academic-home .pubs-note a:hover,.academic-home .service-list a:hover,.academic-home .gd-hint a:hover,.academic-home .pub-links a:hover{border-bottom:1px solid #c05b4d}.academic-home .interest-chips{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.academic-home .interest-chips li{margin:0;padding:.28rem .85rem;background:rgba(192,91,77,8%);border-radius:999px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;font-size:.88rem;color:#735156}.academic-home .news-list{list-style:none;margin:0;padding:0}.academic-home .news-list li{display:flex;align-items:baseline;gap:1rem;padding:.32rem 0;margin:0}.academic-home .news-list .news-date{flex:0 0 5em;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;font-variant-numeric:tabular-nums;font-size:.84rem;color:#6789ab}.academic-home .news-list .news-text{flex:1;min-width:0}.academic-home .news-list .news-text p{display:inline;margin:0}.academic-home .pubs-note{font-size:.9rem;color:#587ca0;margin:-.4rem 0 1rem}.academic-home .pub-item{display:flex;gap:1rem;padding:.9rem 0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.academic-home .pub-item+.pub-item{border-top:1px dashed rgba(52,73,94,.18)}.academic-home .pub-item .pub-thumb{flex:0 0 96px;width:96px;height:76px;object-fit:cover;border-radius:6px;border:1px solid rgba(52,73,94,.12)}.academic-home .pub-item .pub-main{flex:1;min-width:0}.academic-home .pub-item .pub-title{font-weight:600;line-height:1.4;display:inline-block}.academic-home .pub-item .pub-authors{margin:.25rem 0;font-size:.9rem;color:#579}.academic-home .pub-item .pub-authors strong{color:#34495e}.academic-home .pub-item .pub-meta{margin:0;font-size:.85rem;display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.academic-home .pub-item .pub-venue{background:rgba(192,91,77,.1);color:#c05b4d;font-weight:600;padding:.08rem .6rem;border-radius:999px;white-space:nowrap}.academic-home .pub-item .pub-links a{margin-right:.35rem}.academic-home .gd-playground .gd-hint{font-size:.92rem;color:#4d6d8c;margin:-.3rem 0 .8rem}.academic-home .gd-playground .gd-frame{border:1px solid rgba(52,73,94,.14);border-radius:10px;padding:.8rem;background:#fdfcf8;font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif}.academic-home .gd-playground .gd-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-bottom:.65rem}.academic-home .gd-playground .gd-controls select,.academic-home .gd-playground .gd-controls button{font:inherit;font-size:.87rem;color:#34495e;background:#fff;border:1px solid rgba(52,73,94,.28);border-radius:6px;padding:.24rem .6rem;cursor:pointer}.academic-home .gd-playground .gd-controls button:hover,.academic-home .gd-playground .gd-controls select:hover{border-color:#c05b4d;color:#c05b4d}.academic-home .gd-playground .gd-controls .gd-noise-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.87rem;cursor:pointer}.academic-home .gd-playground .gd-controls .gd-noise-label[hidden]{display:none}.academic-home .gd-playground canvas{display:block;width:100%;height:auto;border-radius:6px;cursor:crosshair}.academic-home .gd-playground .gd-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.25rem,1fr));gap:.4rem .6rem;margin-top:.65rem;font-size:.85rem}.academic-home .gd-playground .gd-legend .gd-legend-item{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.academic-home .gd-playground .gd-legend .gd-legend-item>*{flex-shrink:0}.academic-home .gd-playground .gd-legend .gd-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.academic-home .gd-playground .gd-legend .gd-val{font-family:sfmono-regular,Consolas,liberation mono,Menlo,monospace;font-variant-numeric:tabular-nums;color:#4f6f8f}.academic-home .service-list{list-style:none;margin:0;padding:0}.academic-home .service-list li{padding:.3rem 0;margin:0}.academic-home .home-blog-link{text-align:center;margin:2.8rem 0 1.2rem;font-size:1.05rem}.academic-home .home-blog-link a{font-family:-apple-system,BlinkMacSystemFont,segoe ui,source sans pro,helvetica neue,Arial,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;font-weight:600}@media screen and (max-width:600px){.academic-home .home-hero{flex-direction:column-reverse;text-align:center;gap:1.1rem}.academic-home .home-hero .home-hero-portrait img{width:160px;height:160px}.academic-home .home-hero .home-links{justify-content:center}.academic-home .pub-item{flex-direction:column}.academic-home .pub-item .pub-thumb{width:100%;height:auto;max-height:150px}.academic-home .news-list li{flex-direction:column;gap:0;padding:.4rem 0}.academic-home .news-list li .news-date{line-height:1.2}}.theme-toggle{background:0 0;border:0;padding:0;margin:0;font:inherit;color:inherit;line-height:inherit;cursor:pointer}.theme-toggle:hover{color:#c05b4d}html[data-theme=dark]{color-scheme:dark}html[data-theme=dark] body,html[data-theme=dark] .container,html[data-theme=dark] #mobile-panel{background:#16181d;color:#c9d1d9}html[data-theme=dark] a{color:#c9d1d9}html[data-theme=dark] a:hover{color:#d0857a}html[data-theme=dark] .header .logo,html[data-theme=dark] .mobile-header-logo .logo{color:#e8eaee}html[data-theme=dark] .menu-item-link{color:#c9d1d9}html[data-theme=dark] .mobile-navbar{background:#1e222a;box-shadow:0 2px 2px rgba(0,0,0,.5)}html[data-theme=dark] .mobile-navbar-icon span{background:#c9d1d9}html[data-theme=dark] .slideout-menu{background-color:#1e222a}html[data-theme=dark] blockquote{border-left-color:rgba(192,91,77,.55);color:#8b95a3}html[data-theme=dark] code,html[data-theme=dark] .post .post-content code{background:#262b33;color:#e08e82}html[data-theme=dark] .post .post-content pre code,html[data-theme=dark] .post .post-content .highlight code{background:0 0;color:inherit}html[data-theme=dark] .post-content .highlight,html[data-theme=dark] .post-content>pre{filter:invert(.93)hue-rotate(180deg)}html[data-theme=dark] .post-content table,html[data-theme=dark] .post-content table th,html[data-theme=dark] .post-content table td{border-color:rgba(255,255,255,.14)}html[data-theme=dark] .post-toc{background:#1e222a;border-color:rgba(255,255,255,.14)}html[data-theme=dark] .academic-home .home-name-zh,html[data-theme=dark] .academic-home .home-affiliation,html[data-theme=dark] .academic-home .news-date,html[data-theme=dark] .academic-home .pubs-note,html[data-theme=dark] .academic-home .gd-hint{color:#8b95a3}html[data-theme=dark] .academic-home .home-hero .home-hero-portrait .portrait-caption{color:#c9d1d9}html[data-theme=dark] .academic-home .home-bio a,html[data-theme=dark] .academic-home .news-list a,html[data-theme=dark] .academic-home .pubs-note a,html[data-theme=dark] .academic-home .service-list a,html[data-theme=dark] .academic-home .gd-hint a,html[data-theme=dark] .academic-home .pub-links a{color:#d0857a}html[data-theme=dark] .academic-home .home-bio a:hover,html[data-theme=dark] .academic-home .news-list a:hover,html[data-theme=dark] .academic-home .pubs-note a:hover,html[data-theme=dark] .academic-home .service-list a:hover,html[data-theme=dark] .academic-home .gd-hint a:hover,html[data-theme=dark] .academic-home .pub-links a:hover{color:#d0857a;border-bottom-color:#d0857a}html[data-theme=dark] .academic-home .home-links a{border-color:rgba(208,133,122,.5);color:#d0857a}html[data-theme=dark] .academic-home .home-links a:hover{background:#c05b4d;color:#fff}html[data-theme=dark] .academic-home .interest-chips li{background:rgba(192,91,77,.18);color:#cda7a5}html[data-theme=dark] .academic-home .pub-item+.pub-item{border-top-color:rgba(255,255,255,.14)}html[data-theme=dark] .academic-home .pub-authors{color:#8b95a3}html[data-theme=dark] .academic-home .pub-authors strong{color:#c9d1d9}html[data-theme=dark] .academic-home .pub-venue{background:rgba(192,91,77,.2);color:#d0857a}html[data-theme=dark] .academic-home .pub-thumb{border-color:rgba(255,255,255,.14)}html[data-theme=dark] .academic-home .gd-frame{color:#34495e;border-color:rgba(255,255,255,.14)}html[data-theme=dark] .post .post-content a{color:#d0857a}