/* Scut, a collection of Sass utilities to ease and improve our implementations of common style-code patterns. v1.4.0 Docs at http://davidtheclark.github.io/scut */
@import url("https://fonts.googleapis.com/css?family=Fira+Code&display=swap");
@import url("https://fonts.googleapis.com/css?family=Libre+Baskerville&display=swap");
@import url("https://fonts.googleapis.com/css?family=Noto+Serif+SC:300,600&display=swap&subset=chinese-simplified");
@import url("https://fonts.googleapis.com/css?family=Noto+Serif+TC:300,600&display=swap&subset=chinese-traditional");
@import url("https://fonts.googleapis.com/css?family=Noto+Serif+JP:300,600&display=swap&subset=japanese");
html { box-sizing: border-box; }

*, *:before, *:after { box-sizing: inherit; }

body { -webkit-font-smoothing: antialiased; }

*, *:before, *:after { -webkit-font-smoothing: inherit; }

h1, h2, h3, h4, h5, h6 { font-size: 1em; font-weight: normal; margin: 0; }

b { font-weight: normal; }

label, select, option, button { cursor: pointer; }

fieldset { border: 0; margin: 0; padding: 0; }

textarea { resize: vertical; }

button, [type="button"], [type="submit"], [type="reset"] { background: transparent; border: 0; color: inherit; font: inherit; margin: 0; padding: 0; width: auto; -webkit-appearance: none; -webkit-font-smoothing: antialiased; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }

button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner { padding: 0; border: 0; }

img, video { max-width: 100%; height: auto; }

figure { margin: 0; }

* { margin: 0; padding: 0; }

@font-face { font-family: "Kagami SC"; src: local("Songti SC Light"), local(STSongti-SC-Light); font-weight: normal; font-style: normal; }

@font-face { font-family: "Kagami SC"; src: local("Songti SC Bold"), local(STSongti-SC-Bold); font-weight: bold; font-style: normal; }

@font-face { font-family: "Kagami TC"; src: local("Songti TC Light"), local(STSongti-TC-Light); font-weight: normal; font-style: normal; }

@font-face { font-family: "Kagami TC"; src: local("Songti TC Bold"), local(STSongti-TC-Bold); font-weight: bold; font-style: normal; }

@font-face { font-family: "Kagami Emoji"; src: local("Apple Color Emoji"), local("Segoe UI Emoji"), local("Segoe UI Symbol"), local("Noto Color Emoji"), local("Android Emoji"); }

html { height: 100%; overflow-x: hidden; }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { min-height: 100%; width: 100%; overflow: hidden; }

.wrapper { width: 100%; max-width: 800px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }

@media screen and (min-width: 800px) { .wrapper { padding-left: 80px; padding-right: 80px; } }

div.tippy-popper div.tippy-content p { margin: 0.5em auto; }

article div.footnotes p { margin: 16px auto; }

article h1, article h2, article h3, article h4, article h5, article h6, article p, article ul, article ol, article pre, article hr, article blockquote, article img:only-child { display: block; margin: 32px auto; }

article li > ul, article li > ol { margin-top: 0; margin-bottom: 0; }

article .highlight { position: relative; overflow: hidden; margin-left: -16px; margin-right: -16px; margin-top: -16px; margin-bottom: -16px; }

article .highlight code { display: block; overflow-x: auto; }

article .highlight > * { padding-left: 16px; padding-right: 16px; }

article .highlight > * { padding-top: 16px; padding-bottom: 16px; }

@media screen and (min-width: 800px) { article .highlight { margin-left: -32px; margin-right: -32px; } article .highlight > * { padding-left: 32px; padding-right: 32px; } }

article blockquote { margin-left: 16px; margin-right: 16px; }

@media screen and (min-width: 800px) { article blockquote { margin-left: 32px; margin-right: 32px; } }

article blockquote cite { display: block; text-align: right; margin-top: -32px; white-space: nowrap; }

article .aside, article .sidenote, article .side-note { width: 160px; float: left; margin-left: -64px; margin-right: 32px; padding: 0; }

@media screen and (max-width: 800px) { article h2::before, article h3::before, article h4::before, article h5::before, article h6::before { color: rgba(0, 0, 0, 0); } article .aside, article .sidenote, article .side-note { display: none; } }

@media screen and (min-width: 800px) { article .hero-unit { margin-left: -64px; margin-right: -64px; } }

article h1 + *, article h1 + .aside + *, article h1 + .sidenote + *, article h2 + *, article h2 + .aside + *, article h2 + .sidenote + *, article h3 + *, article h3 + .aside + *, article h3 + .sidenote + *, article h4 + *, article h4 + .aside + *, article h4 + .sidenote + *, article h5 + *, article h5 + .aside + *, article h5 + .sidenote + *, article h6 + *, article h6 + .aside + *, article h6 + .sidenote + * { margin-top: -8px; }

article .reversefootnote { font-family: "Crimson Text", "Kagami SC", sans-serif; }

article div.post-content sup { font-size: unset; vertical-align: baseline; }

article div.post-content sup::before { content: "["; }

article div.post-content sup::after { content: "]"; }

.post-header { margin-top: 112px; margin-bottom: 112px; }

.post-cover { margin-top: -80px; }

.post-footer, #disqus_thread { margin-top: 96px; margin-bottom: 96px; }

.site-nav { display: flex; flex-flow: row wrap; align-items: top; justify-content: center; margin-left: -64px; margin-right: -64px; }

@media screen and (min-width: 800px) { .site-nav { height: 0; justify-content: flex-end; } }

.page-link { display: block; padding: 0.5em; }

.site-footer { padding-top: 32px; padding-bottom: 32px; }

.site-footer .wrapper { display: flex; width: 100%; flex-flow: row-reverse wrap; justify-content: space-between; align-items: center; }

.social-links { text-align: center; margin: 1em -16px; padding: 0 0.3em; white-space: nowrap; }

.credits { margin-left: -0.256em; white-space: nowrap; }

.post-list-item { margin-top: 32px; margin-bottom: 32px; }

.post-description { margin-top: 10px; margin-bottom: 10px; }

.cover-meta { position: absolute; bottom: 0; right: 0; margin: 4px 8px; }

.cover-meta p { margin: 0; padding: 0; }

[lang^="en"] { line-height: 1.6; font-family: "Palatino", "Libre Baskerville", "Kagami SC", "Noto Serif SC", serif, "Kagami Emoji"; }

[lang^="zh-Hans"] { line-height: 1.8; font-family: "Palatino", "Kagami SC", "Libre Baskerville", "Noto Serif SC", serif, "Kagami Emoji"; }

[lang^="zh-Hant"] { line-height: 1.8; font-family: "Palatino", "Kagami TC", "Libre Baskerville", "Noto Serif TC", serif, "Kagami Emoji"; }

[lang^="ja"] { line-height: 1.8; font-family: "Palatino", "Libre Baskerville", "YuMincho", serif, "Kagami Emoji"; }

body { color: #3c3c3c; font-size: 18px; font-weight: 300; font-kerning: normal; border-top: 2px solid currentColor; }

img { max-width: 100%; }

h1, h2, h3, h4, h5, h6, p { display: block; }

h1 { font-size: 1.8em; }

h2 { font-weight: bold; font-size: 1.4em; }

h3 { font-weight: bold; font-size: 1.2em; }

h4 { font-weight: bold; }

h5 { font-weight: bold; }

a, a:hover, a:visited { text-decoration: none; color: inherit; }

article div.post-content a, article div.page-content a, div.tippy-popper div.tippy-content a { line-height: 1.3em; color: #248a6d; text-shadow: 0 1px 0 #e7f9f4; text-decoration: none; border-bottom: 1px dashed #33c79d; display: inline; position: relative; transition: all 300ms; z-index: 1000; background-image: linear-gradient(rgba(68, 207, 168, 0.2), rgba(68, 207, 168, 0.2)); background-position: 0% 100%; background-repeat: no-repeat; background-size: 0% 1000%; }

article div.post-content a:hover, article div.page-content a:hover, div.tippy-popper div.tippy-content a:hover { background-size: 100% 100%; }

article div.post-content a code, article div.page-content a code, div.tippy-popper div.tippy-content a code { color: inherit; background-color: inherit; }

article a.footnote { user-select: none; }

article h2::before, article h3::before, article h4::before, article h5::before, article h6::before { content: "#"; display: inline-block; text-align: right; width: 90px; margin-left: -99px; margin-right: 9px; opacity: 0.08; }

article h3::before { content: "##"; }

article h4::before { content: "###"; }

article h5::before { content: "####"; }

article h6::before { content: "#####"; }

article p { hanging-punctuation: allow-end; }

article .aside, article .sidenote, article .side-note { font-size: .72em; }

article em { font-style: italic; }

article strong { font-weight: bold; }

article ul, article ol { padding-left: 2.0em; }

article ul { list-style-type: disc; }

article ul ul { list-style-type: circle; }

article ul ul ul { list-style-type: square; }

article ol { list-style-type: decimal; }

article blockquote { font-style: italic; }

article code { display: inline-block; padding: 0 0.3em; margin: 0 -0.05em; font-size: 0.875em; font-family: "Fira Code", Courier, Monaco, monospace; color: #565656; border-radius: 3px; }

article pre { color: #565656; background: #f2f2fa; }

article pre code { margin: 0; padding: 0; color: inherit; background: none; line-height: 1.6; }

article mark { color: inherit; background: rgba(255, 255, 0, 0.35); }

article hr { border: none; border-bottom: 1px solid #f0f0f0; width: 30%; }

.site-title, .site-title:hover, .site-title:visited { display: inline-block; font-variant-caps: all-petite-caps; font-size: 1em; font-family: "Palatino", "Libre Baskerville", "Kagami SC", "Noto Serif SC", serif, "Kagami Emoji"; border-bottom: none; white-space: nowrap; }

.site-nav { font-size: 1em; font-variant-caps: all-petite-caps; letter-spacing: 0.12em; }

.pager { color: #6f6f6f; }

.page-link { transition: color 0.2s ease-in; }

.site-nav:hover { color: #bcbcbc; }

.site-nav:hover .page-link:hover { color: #3c3c3c; }

.post-title { word-break: keep-all; font-weight: bold; margin-top: -3.5px; }

.post-cover { position: relative; width: 100vw; max-height: 40vh; margin-left: 50%; transform: translateX(-50%); overflow-y: hidden; }

.post-cover .post-cover-wrapper { max-height: inherit; position: relative; transform: translateY(50%); }

.post-cover img { width: 100%; margin: 0 !important; transform: translateY(-50%); }

.post-footer { color: #bcbcbc; font-size: 0.875em; }

.post-footer:after { content: ""; display: table; clear: both; }

.post-footer .post-meta { float: left; }

.post-footer .post-tags { float: right; }

.post-footer .post-tags { list-style-type: none; padding-left: 0; margin-top: 0; margin-bottom: 0; }

.post-footer .post-tags::before { content: 'Tags: '; }

.post-footer .post-tags > li { display: inline; }

.post-footer .post-tags > li:not(:last-child):after { content: " / "; }

.post-footer .post-tags .tag-link { transition: color 0.2s ease-out; }

.post-footer .post-tags .tag-link:hover { color: #6f6f6f; }

.social-link { display: inline-block; width: 2em; height: 2em; line-height: 2em; transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }

.social-link:hover { transform: translateY(-0.25em); }

.social-link.social-github:hover { color: #333; }

.social-link.social-twitter:hover { color: #1da1f2; }

.social-link.social-instagram:hover { color: #e1306c; }

.social-link.social-rss:hover { color: #f26522; }

.credits { color: #bcbcbc; font-size: 0.68em; }

.post-list { list-style-type: none; padding-left: 0; margin-top: 0; margin-bottom: 0; }

.post-item-link { font-size: 1.4em; }

.post-description { font-size: 0.875em; }

.post-item-meta { font-variant-caps: all-petite-caps; color: #a2a2a2; }

.cover-meta { font-family: cursive; font-variant-caps: all-petite-caps; font-size: 0.4em; color: #fff; }

.site-title, .site-title:visited, .site-title:hover { margin-left: 3px; }

[lang^="zh"] .post-item-link { margin-left: -2px; }

[lang^="zh"] h1 { margin-left: -1px; }

[lang^="zh"] h2 { margin-left: -2px; }

[lang^="zh"] h3 { margin-left: -2px; }

.toc-wrapper { position: relative; }

#table-of-contents { display: flex; flex-direction: column; justify-content: center; position: fixed; left: 0; top: 0; height: 100%; max-width: calc((100% - 800px) / 2 - 32px); font-size: 14.4px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Kagami Emoji"; }

#table-of-contents ul { padding-left: 2em; }

@media screen and (min-width: 800px) { #table-of-contents { max-width: calc((100% - 800px) / 2 + 64px - 32px); } }

#table-of-contents li.toc-entry { list-style-type: none; }

#table-of-contents li.toc-entry > a { color: #aaa; transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1); box-decoration-break: clone; -webkit-box-decoration-break: clone; display: inline-block; transform: translateX(0); }

#table-of-contents li.toc-entry > ul { overflow-y: hidden; transition: height 0.3s cubic-bezier(0.23, 1, 0.32, 1); height: 0; padding-right: 0.5em; }

#table-of-contents li.toc-entry.active > a { transform: translateX(0.5em); color: #111; }

#table-of-contents .toc-marker { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; }

#table-of-contents .toc-marker path { transition: all 0.3s ease; }

@media only screen and (max-width: 1036px) { #table-of-contents { display: none; } }

/*# sourceMappingURL=core.css.map */