From 6805d695f6ee1ba6b774a9ae518b85c8030bfa08 Mon Sep 17 00:00:00 2001
From: Dillon <dillonzq@outlook.com>
Date: Tue, 28 Apr 2020 01:38:22 +0800
Subject: [PATCH] chore: update docs and style (#269)

---
 .gitignore                                    |  1 +
 README.md                                     |  2 +-
 README.zh-cn.md                               |  2 +-
 assets/css/_core/_base.scss                   |  4 +-
 assets/css/_core/_media.scss                  | 16 ++--
 assets/css/_mixin/_details.scss               |  7 ++
 assets/css/_mixin/_index.scss                 |  1 +
 assets/css/_mixin/_link.scss                  |  4 +-
 assets/css/_mixin/_summary.scss               |  8 +-
 assets/css/_page/_home.scss                   |  2 +-
 assets/css/_page/_single.scss                 | 38 +++++----
 assets/css/_partial/_archive/_tags.scss       |  2 +-
 assets/css/_partial/_archive/_terms.scss      |  4 +-
 assets/css/_partial/_details.scss             |  8 +-
 assets/css/_partial/_fixed-button.scss        |  2 +-
 assets/css/_partial/_header.scss              | 34 ++++----
 assets/css/_partial/_pagination.scss          |  8 +-
 assets/css/_partial/_single/_admonition.scss  | 23 +++---
 assets/css/_partial/_single/_code.scss        | 33 ++++----
 assets/css/_partial/_single/_footer.scss      |  6 +-
 assets/css/_partial/_single/_instagram.scss   |  2 +-
 assets/css/_partial/_single/_toc.scss         | 38 ++++-----
 assets/css/_variables.scss                    | 28 +++----
 assets/js/theme.min.js                        |  2 +-
 assets/js/theme.min.js.map                    |  2 +-
 assets/lib/aplayer/dark.scss                  |  2 +-
 assets/lib/mermaid/mermaid.scss               |  2 +-
 assets/lib/polyfill.yml                       |  8 ++
 assets/lib/valine/valine.scss                 | 14 ++++
 exampleSite/config.toml                       | 44 +++++-----
 exampleSite/content/about.en.md               |  6 +-
 exampleSite/content/about.fr.md               |  6 +-
 exampleSite/content/about.zh-cn.md            |  6 +-
 .../content/posts/basic-markdown-syntax.en.md |  4 +-
 .../content/posts/basic-markdown-syntax.fr.md |  4 +-
 .../posts/basic-markdown-syntax.zh-cn.md      | 18 ++---
 exampleSite/content/posts/emoji-support.en.md | 10 ++-
 exampleSite/content/posts/emoji-support.fr.md | 10 ++-
 .../content/posts/emoji-support.zh-cn.md      | 10 ++-
 .../posts/theme-documentation-basics.en.md    | 81 +++++++++++--------
 .../posts/theme-documentation-basics.fr.md    | 81 +++++++++++--------
 .../posts/theme-documentation-basics.zh-cn.md | 80 ++++++++++--------
 ...me-documentation-built-in-shortcodes.en.md | 18 ++---
 ...me-documentation-built-in-shortcodes.fr.md | 18 ++---
 ...documentation-built-in-shortcodes.zh-cn.md | 18 ++---
 .../posts/theme-documentation-content.en.md   | 28 +++----
 .../posts/theme-documentation-content.fr.md   | 28 +++----
 .../theme-documentation-content.zh-cn.md      | 28 +++----
 ...me-documentation-extended-shortcodes.en.md | 26 +++---
 ...me-documentation-extended-shortcodes.fr.md | 26 +++---
 ...documentation-extended-shortcodes.zh-cn.md | 26 +++---
 layouts/_default/baseof.html                  | 14 ++--
 layouts/partials/assets.html                  |  6 +-
 layouts/partials/comment.html                 |  2 +
 layouts/partials/head/link.html               |  2 +-
 layouts/partials/plugin/stylesheet.html       |  2 +-
 layouts/posts/single.html                     |  2 +-
 layouts/shortcodes/admonition.html            | 64 ++++++---------
 layouts/shortcodes/style.html                 |  4 +-
 ...s_19001642409beba3b4bbc3ec1bde302a.content |  1 -
 ...scss_19001642409beba3b4bbc3ec1bde302a.json |  1 -
 ...s_788c4a23da05f3aa3e03b28055a2e5f9.content |  2 +-
 ...s_84a735b886b24531b6e80c5fb2060510.content |  2 +-
 ...s_d40178ffcb058d725849178b0a7a43cc.content |  2 +-
 ...s_be0d6bec1a51ff037db8cc74d6ec1271.content |  2 +-
 ...s_43d09a0fb297c4cc88d4122515a2e889.content |  2 +-
 ...s_782a264805f83ff21e4b24d4d52cfa46.content |  1 +
 ...scss_782a264805f83ff21e4b24d4d52cfa46.json |  1 +
 src/js/theme.js                               |  5 +-
 69 files changed, 540 insertions(+), 454 deletions(-)
 create mode 100644 assets/css/_mixin/_details.scss
 create mode 100644 assets/lib/valine/valine.scss
 delete mode 100644 resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.content
 delete mode 100644 resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.json
 create mode 100644 resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.content
 create mode 100644 resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.json

diff --git a/.gitignore b/.gitignore
index 51ffa861..3b172dc8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 # Hugo default output directory
 public/
 /exampleSite/resources/
+/resources/_gen/assets/scss/temp
 
 node_modules/
 build/
diff --git a/README.md b/README.md
index 0074c5ed..daa1a60e 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ English README | [简体中文说明](https://github.com/dillonzq/LoveIt/blob/ma
 
 > **LoveIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
 
-It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt/) and [KeepIt Theme](https://github.com/liuzc/LeaveIt/).
+It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/liuzc/LeaveIt).
 
 Since the three themes have a similar look, if you have questions about their differences,
 read [Why choose LoveIt](#why-choose-loveit) so that you can choose the one that works best for you.
diff --git a/README.zh-cn.md b/README.zh-cn.md
index 9f189eb7..3431c778 100644
--- a/README.zh-cn.md
+++ b/README.zh-cn.md
@@ -9,7 +9,7 @@
 
 > [LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
 
-它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt/) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt/)。
+它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt)。
 
 由于三个主题外观的相似性,如果你对于它们的不同之处有疑问,请阅读 [为什么选择 LoveIt](#为什么选择-LoveIt),以便你能选择最适合你的一个。
 
diff --git a/assets/css/_core/_base.scss b/assets/css/_core/_base.scss
index 7efc2c62..7215075d 100644
--- a/assets/css/_core/_base.scss
+++ b/assets/css/_core/_base.scss
@@ -24,7 +24,7 @@ html {
 ::selection {
   background-color: $selection-color;
 
-  .dark & {
+  [theme=dark] & {
     background-color: $selection-color-dark;
   }
 }
@@ -35,7 +35,7 @@ body {
   overflow-wrap: break-word;
   scrollbar-color: auto;
 
-  &.dark {
+  &[theme=dark] {
     color: $global-font-color-dark;
     background-color: $global-background-color-dark;
   }
diff --git a/assets/css/_core/_media.scss b/assets/css/_core/_media.scss
index 8155669c..ac8f10f6 100644
--- a/assets/css/_core/_media.scss
+++ b/assets/css/_core/_media.scss
@@ -2,14 +2,6 @@
   .page {
     width: 56%;
   }
-
-  #header-desktop .header-wrapper {
-    padding: 0 8vw;
-  }
-
-  .search-dropdown.desktop {
-    right: 8vw;
-  }
 }
 
 @media only screen and (max-width: 1200px) {
@@ -18,11 +10,11 @@
   }
 
   #header-desktop .header-wrapper {
-    padding: 0 4vw;
+    padding-right: 1rem;
   }
 
   .search-dropdown.desktop {
-    right: 4vw;
+    right: 1rem;
   }
 }
 
@@ -38,6 +30,10 @@
   .page {
     width: 80%;
   }
+
+  #header-desktop .header-wrapper {
+    padding-left: 1rem;
+  }
 }
 
 @media only screen and (max-width: 680px) {
diff --git a/assets/css/_mixin/_details.scss b/assets/css/_mixin/_details.scss
new file mode 100644
index 00000000..218e6af3
--- /dev/null
+++ b/assets/css/_mixin/_details.scss
@@ -0,0 +1,7 @@
+@mixin details-transition-open {
+  @include transition(max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s);
+}
+
+@mixin details-transition-close {
+  @include transition(max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s);
+}
diff --git a/assets/css/_mixin/_index.scss b/assets/css/_mixin/_index.scss
index 63e1ab32..bcf78a1e 100644
--- a/assets/css/_mixin/_index.scss
+++ b/assets/css/_mixin/_index.scss
@@ -2,3 +2,4 @@
 @import "_link";
 @import "_blur";
 @import "_summary";
+@import "_details";
diff --git a/assets/css/_mixin/_link.scss b/assets/css/_mixin/_link.scss
index 1ee219a2..c83dc4c4 100644
--- a/assets/css/_mixin/_link.scss
+++ b/assets/css/_mixin/_link.scss
@@ -2,7 +2,7 @@
   a {
     color: if($light, $global-link-color, $single-link-color);
 
-    .dark & {
+    [theme=dark] & {
       color: if($dark, $global-link-color-dark, $single-link-color-dark);
     }
 
@@ -10,7 +10,7 @@
     &:hover {
       color: if($light, $global-link-hover-color, $single-link-hover-color);
 
-      .dark & {
+      [theme=dark] & {
         color: if($dark, $global-link-hover-color-dark, $single-link-hover-color-dark);
       }
     }
diff --git a/assets/css/_mixin/_summary.scss b/assets/css/_mixin/_summary.scss
index 2f0964a3..98b033fd 100644
--- a/assets/css/_mixin/_summary.scss
+++ b/assets/css/_mixin/_summary.scss
@@ -5,7 +5,7 @@
     color: $global-font-color;
     border-bottom: 1px dashed $global-border-color;
 
-    .dark & {
+    [theme=dark] & {
       color: $global-font-color-dark;
       border-bottom: 1px dashed $global-border-color-dark;
     }
@@ -47,7 +47,7 @@
       overflow-wrap: break-word;
       color: $global-font-secondary-color;
 
-      .dark & {
+      [theme=dark] & {
         color: $global-font-secondary-color-dark;
       }
 
@@ -78,7 +78,7 @@
           margin-right: .3125rem;
           color: $global-link-color;
 
-          .dark & {
+          [theme=dark] & {
             color: $global-link-color-dark;
           }
         }
@@ -95,7 +95,7 @@
       @include link(true, true);
 
       b, strong {
-        .dark & {
+        [theme=dark] & {
           color: $global-font-secondary-color-dark;
         }
       }
diff --git a/assets/css/_page/_home.scss b/assets/css/_page/_home.scss
index db1aa1a8..742b4a60 100644
--- a/assets/css/_page/_home.scss
+++ b/assets/css/_page/_home.scss
@@ -56,7 +56,7 @@
           padding: .4rem;
           color: $global-font-secondary-color;
 
-          .dark & {
+          [theme=dark] & {
             color: $global-font-secondary-color-dark;
           }
         }
diff --git a/assets/css/_page/_single.scss b/assets/css/_page/_single.scss
index 12e36a2c..8b4c3031 100644
--- a/assets/css/_page/_single.scss
+++ b/assets/css/_page/_single.scss
@@ -24,7 +24,7 @@
       display: inline-block;
     }
 
-    .dark & {
+    [theme=dark] & {
       color: $global-font-secondary-color-dark;
     }
 
@@ -88,7 +88,7 @@
       font-weight: bold;
       margin: 1.2rem 0;
 
-      .dark & {
+      [theme=dark] & {
         font-weight: bolder;
       }
     }
@@ -103,7 +103,7 @@
         margin-right: .3125rem;
         color: $single-link-color;
 
-        .dark & {
+        [theme=dark] & {
           color: $single-link-color-dark;
         }
       }
@@ -120,7 +120,7 @@
     b, strong {
       font-weight: bold;
 
-      .dark & {
+      [theme=dark] & {
         color: #ddd;
       }
     }
@@ -131,18 +131,21 @@
       word-break: break-all;
       word-break: break-word;
 
-      .dark & b, .dark & strong {
+      [theme=dark] & b, [theme=dark] & strong {
         color: $single-link-color-dark;
       }
     }
 
-    .dark a:hover b, .dark a:hover strong {
+    [theme=dark] a:hover b, [theme=dark] a:hover strong {
       color: $single-link-hover-color-dark;
     }
 
-    ul {
+    ul, ol {
       margin: .5rem 0;
-      padding-left: 2rem;
+      padding-left: 2.5rem;
+    }
+
+    ul {
       list-style-type: disc;
     }
 
@@ -153,7 +156,7 @@
         color: $global-font-secondary-color;
       }
 
-      .dark & {
+      [theme=dark] & {
         background: $code-background-color-dark;
 
         rt {
@@ -168,7 +171,7 @@
       &::-webkit-scrollbar {
         background-color: $table-background-color;
 
-        .dark & {
+        [theme=dark] & {
           background-color: $table-background-color-dark;
         }
       }
@@ -181,14 +184,14 @@
         background: $table-background-color;
         border-collapse: collapse;
 
-        .dark & {
+        [theme=dark] & {
           background: $table-background-color-dark;
         }
 
         thead {
           background: $table-thead-color;
 
-          .dark & {
+          [theme=dark] & {
             background-color: $table-thead-color-dark;
           }
         }
@@ -197,7 +200,7 @@
           padding: .3rem 1rem;
           border: 1px solid darken($table-thead-color, 2%);
 
-          .dark & {
+          [theme=dark] & {
             border-color: darken($table-thead-color-dark, 2%);
           }
         }
@@ -241,7 +244,7 @@
       padding: .25rem .75rem;
       margin: 1rem 0;
 
-      .dark & {
+      [theme=dark] & {
         border-left-color: $blockquote-color-dark;
         background-color: rgba($blockquote-color-dark, .2);
       }
@@ -250,7 +253,7 @@
     .footnotes {
       color: $global-font-secondary-color;
 
-      .dark & {
+      [theme=dark] & {
         color: $global-font-secondary-color-dark;
       }
 
@@ -273,7 +276,7 @@
       border-top: 1px dashed $global-border-color;
       border-bottom: none;
 
-      .dark & {
+      [theme=dark] & {
         border-top: 1px dashed $global-border-color-dark;
       }
     }
@@ -290,7 +293,7 @@
       font-family: $code-font-family;
       color: $code-color;
 
-      .dark & {
+      [theme=dark] & {
         background-color: $global-background-color-dark;
         border: 1px solid $global-border-color-dark;
         border-bottom-color: $global-border-color-dark;
@@ -311,6 +314,7 @@
 
     .version {
       height: 1.25em;
+      vertical-align: text-bottom;
     }
   }
 
diff --git a/assets/css/_partial/_archive/_tags.scss b/assets/css/_partial/_archive/_tags.scss
index 21d9055c..c977b32d 100644
--- a/assets/css/_partial/_archive/_tags.scss
+++ b/assets/css/_partial/_archive/_tags.scss
@@ -19,7 +19,7 @@
     sup {
       color: $global-font-secondary-color;
 
-      .dark & {
+      [theme=dark] & {
         color: $global-font-secondary-color-dark;
       }
     }
diff --git a/assets/css/_partial/_archive/_terms.scss b/assets/css/_partial/_archive/_terms.scss
index ef24aa99..1f63a47d 100644
--- a/assets/css/_partial/_archive/_terms.scss
+++ b/assets/css/_partial/_archive/_terms.scss
@@ -58,7 +58,7 @@
     background-color: transparent;
   }
 
-  .dark & {
+  [theme=dark] & {
     color: $global-link-color-dark;
 
     &:hover {
@@ -72,7 +72,7 @@
   text-align: right;
   color: $global-font-secondary-color;
 
-  .dark & {
+  [theme=dark] & {
     color: $global-font-secondary-color-dark;
   }
 }
diff --git a/assets/css/_partial/_details.scss b/assets/css/_partial/_details.scss
index 885e7256..f1702d0d 100644
--- a/assets/css/_partial/_details.scss
+++ b/assets/css/_partial/_details.scss
@@ -9,7 +9,7 @@
     color: $global-font-secondary-color;
     @include transition(transform 0.2s ease);
 
-    .dark & {
+    [theme=dark] & {
       color: $global-font-secondary-color-dark;
     }
   }
@@ -17,17 +17,17 @@
   .details-content {
     max-height: 0;
     overflow-y: hidden;
-    @include transition(max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s);
+    @include details-transition-open;
   }
 
   &.open {
     i.details-icon {
-      @include transform(rotate(180deg));
+      @include transform(rotate(90deg));
     }
 
     .details-content {
       max-height: $MAX_LENGTH;
-      @include transition(max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s);
+      @include details-transition-close;
     }
   }
 }
diff --git a/assets/css/_partial/_fixed-button.scss b/assets/css/_partial/_fixed-button.scss
index 8f83f615..777e3b70 100644
--- a/assets/css/_partial/_fixed-button.scss
+++ b/assets/css/_partial/_fixed-button.scss
@@ -25,7 +25,7 @@
     outline: none;
   }
 
-  .dark & {
+  [theme=dark] & {
     color: $global-font-secondary-color-dark;
     background: $header-background-color-dark;
 
diff --git a/assets/css/_partial/_header.scss b/assets/css/_partial/_header.scss
index 180072b1..a1bea04b 100644
--- a/assets/css/_partial/_header.scss
+++ b/assets/css/_partial/_header.scss
@@ -3,7 +3,7 @@ header {
   z-index: 150;
   background-color: $header-background-color;
 
-  .dark & {
+  [theme=dark] & {
     background-color: $header-background-color-dark;
   }
 
@@ -66,7 +66,7 @@ header {
     vertical-align: baseline !important;
     @include transition(width 0.3s ease);
 
-    .dark & {
+    [theme=dark] & {
       background-color: $header-background-color-dark;
     }
   }
@@ -100,7 +100,7 @@ header {
       padding: 0 2rem 0 2rem;
     }
 
-    .dark & {
+    [theme=dark] & {
       input {
         color: $global-font-color-dark;
         background-color: $search-background-color-dark;
@@ -114,7 +114,7 @@ header {
     .search-button {
       color: $global-font-secondary-color;
 
-      .dark & {
+      [theme=dark] & {
         color: $global-font-secondary-color-dark;
       }
     }
@@ -140,7 +140,7 @@ header {
   line-height: $header-height;
 
   .header-wrapper {
-    padding: 0 10vw;
+    padding: 0 2rem 0 10vh;
 
     .header-title {
       font-size: $header-title-font-size;
@@ -160,7 +160,7 @@ header {
         &.delimiter {
           border-left: 1.5px solid $global-font-color;
 
-          .dark & {
+          [theme=dark] & {
             border-left-color: $global-border-color-dark;
           }
         }
@@ -178,7 +178,7 @@ header {
         font-weight: 900;
         color: $header-hover-color;
 
-        .dark & {
+        [theme=dark] & {
           color: $header-hover-color-dark;
         }
       }
@@ -227,7 +227,7 @@ header {
           @include border-radius(3px);
           @include transition(all 0.3s ease-in-out);
 
-          .dark & {
+          [theme=dark] & {
             background: $global-font-color-dark;
           }
         }
@@ -295,7 +295,7 @@ header {
         display: block;
       }
 
-      .dark & {
+      [theme=dark] & {
         background: $header-background-color-dark;
         border-top-color: $global-border-color-dark;
       }
@@ -329,7 +329,7 @@ header {
   @include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
 
   &.desktop {
-    right: 10vw;
+    right: 2rem;
     width: 30rem;
   }
 
@@ -342,7 +342,7 @@ header {
     right: 0 !important;
     background-color: $global-background-color;
 
-    .dark & {
+    [theme=dark] & {
       background-color: $global-background-color-dark;
     }
 
@@ -369,7 +369,7 @@ header {
           text-align: right;
           color: $global-font-secondary-color;
 
-          .dark & {
+          [theme=dark] & {
             color: $global-font-secondary-color-dark;
           }
         }
@@ -383,7 +383,7 @@ header {
           overflow-wrap: break-word;
           color: $global-font-secondary-color;
 
-          .dark & {
+          [theme=dark] & {
             color: $global-font-secondary-color-dark;
           }
         }
@@ -392,7 +392,7 @@ header {
           font-style: normal;
           background-color: $selection-color;
 
-          .dark & {
+          [theme=dark] & {
             background-color: $selection-color-dark;
           }
         }
@@ -400,7 +400,7 @@ header {
         &.cursor {
           background: darken($code-background-color, 5%);
 
-          .dark & {
+          [theme=dark] & {
             background: lighten($code-background-color-dark, 5%);
           }
         }
@@ -418,7 +418,7 @@ header {
       .search-query {
         font-weight: bold;
 
-        .dark & {
+        [theme=dark] & {
           color: #ddd;
         }
       }
@@ -430,7 +430,7 @@ header {
       font-size: .8rem;
       color: $global-font-secondary-color;
 
-      .dark {
+      [theme=dark] {
         color: $global-font-secondary-color-dark;
       }
 
diff --git a/assets/css/_partial/_pagination.scss b/assets/css/_partial/_pagination.scss
index 4e9a4858..10d24b77 100644
--- a/assets/css/_partial/_pagination.scss
+++ b/assets/css/_partial/_pagination.scss
@@ -32,7 +32,7 @@
       color: $pagination-link-hover-color;
     }
 
-    .dark &:hover a {
+    [theme=dark] &:hover a {
       color: $pagination-link-hover-color-dark;
     }
 
@@ -47,8 +47,8 @@
       bottom: 0px;
     }
 
-    .dark &:before,
-    .dark &:after {
+    [theme=dark] &:before,
+    [theme=dark] &:after {
       background: $pagination-link-hover-color-dark;
     }
 
@@ -78,7 +78,7 @@
         color: $pagination-link-hover-color;
       }
 
-      .dark & a {
+      [theme=dark] & a {
         color: $pagination-link-hover-color-dark;
       }
 
diff --git a/assets/css/_partial/_single/_admonition.scss b/assets/css/_partial/_single/_admonition.scss
index c032849f..41c8cbcc 100644
--- a/assets/css/_partial/_single/_admonition.scss
+++ b/assets/css/_partial/_single/_admonition.scss
@@ -1,20 +1,21 @@
 .admonition {
   position: relative;
-  margin: .9765em 0;
+  margin: 1rem 0;
   padding: 0 .75rem;
   background-color: map-get($admonition-background-color-map, 'note');
   border-left: .25rem solid map-get($admonition-color-map, 'note');
   overflow: auto;
 
   .admonition-title {
+    font-weight: bold;
     margin: 0 -0.75rem;
-    padding: .2rem .75rem .2rem 1.8rem;
+    padding: .25rem 1.8rem;
     border-bottom: 1px solid map-get($admonition-background-color-map, 'note');
-    background-color: map-get($admonition-background-color-map, 'note');
+    background-color: opacify(map-get($admonition-background-color-map, 'note'), 0.15);
   }
 
-  .details-summary.admonition-title:hover {
-    background-color: darken(map-get($admonition-background-color-map, 'note'), 6%);
+  &.open .admonition-title {
+    background-color: map-get($admonition-background-color-map, 'note');
   }
 
   .admonition-content {
@@ -25,14 +26,14 @@
     font-size: 0.85rem;
     color: map-get($admonition-color-map, 'note');
     position: absolute;
-    left: .6rem;
     top: .6rem;
+    left: .4rem;
   }
 
   i.details-icon {
     position: absolute;
-    top: .5rem;
-    right: .5rem;
+    top: .6rem;
+    right: .3rem;
   }
 
   @each $type, $color in $admonition-color-map {
@@ -51,11 +52,11 @@
 
       .admonition-title {
         border-bottom-color: $color;
-        background-color: $color;
+        background-color: opacify($color, 0.15);
       }
 
-      .details-summary.admonition-title:hover {
-        background-color: darken($color, 6%);
+      &.open .admonition-title {
+        background-color: $color;
       }
     }
   }
diff --git a/assets/css/_partial/_single/_code.scss b/assets/css/_partial/_single/_code.scss
index c0a57376..07c95fa5 100644
--- a/assets/css/_partial/_single/_code.scss
+++ b/assets/css/_partial/_single/_code.scss
@@ -5,7 +5,7 @@ code {
   color: $code-color;
   padding: 0 .4rem;
 
-  .dark & {
+  [theme=dark] & {
     color: $code-color-dark;
   }
 }
@@ -20,7 +20,7 @@ pre {
   }
 
   img {
-    min-height: 1.25em;
+    min-height: 1em;
     max-height: 1.25em;
     vertical-align: text-bottom;
   }
@@ -29,7 +29,7 @@ pre {
 code, pre, .highlight table, .highlight tr, .highlight td {
   background: $code-background-color;
 
-  .dark & {
+  [theme=dark] & {
     background: $code-background-color-dark;
   }
 }
@@ -67,7 +67,7 @@ code, pre, .highlight table, .highlight tr, .highlight td {
     color: $code-info-color;
     background: darken($code-background-color, 8%);
 
-    .dark & {
+    [theme=dark] & {
       color: $code-info-color-dark;
       background: darken($code-background-color-dark, 6%);
     }
@@ -93,11 +93,15 @@ code, pre, .highlight table, .highlight tr, .highlight td {
     }
   }
 
+  .lntd:first-child {
+    min-width: 1.6rem;
+    text-align: right;
+  }
+
   .lntd:last-child {
     width: 100%;
 
     pre {
-      padding-left: .75rem;
       @include max-content(min-width);
     }
   }
@@ -110,7 +114,7 @@ code, pre, .highlight table, .highlight tr, .highlight td {
     display: block;
     background-color: darken($code-background-color, 10%);
 
-    .dark & {
+    [theme=dark] & {
       background-color: darken($code-background-color-dark, 5%);
     }
   }
@@ -118,12 +122,13 @@ code, pre, .highlight table, .highlight tr, .highlight td {
   .ln, .lnt {
     color: $global-font-secondary-color;
 
-    .dark & {
+    [theme=dark] & {
       color: $global-font-secondary-color-dark;
     }
   }
 
   .arrow {
+    padding: 0 .2rem;
     @include transition(transform 0.2s ease);
   }
 
@@ -139,7 +144,7 @@ code, pre, .highlight table, .highlight tr, .highlight td {
       cursor: pointer;
       color: $global-link-hover-color;
 
-      .dark & {
+      [theme=dark] & {
         color: $global-link-hover-color-dark;
       }
     }
@@ -148,21 +153,21 @@ code, pre, .highlight table, .highlight tr, .highlight td {
   .table-wrapper {
     max-height: 0;
     overflow-y: hidden;
-    @include transition(max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s);
+    @include details-transition-open;
   }
 
   &.open {
     .code-header {
       background: darken($code-background-color, 3%);
 
-      .dark & {
+      [theme=dark] & {
         background: darken($code-background-color-dark, 3%);
       }
     }
 
     .table-wrapper {
       max-height: $MAX_LENGTH;
-      @include transition(max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s);
+      @include details-transition-close;
     }
 
     .arrow {
@@ -191,7 +196,7 @@ code, pre, .highlight table, .highlight tr, .highlight td {
     .#{$class} { color: $color; }
   }
 
-  .dark & {
+  [theme=dark] & {
     @each $class, $color in $code-highlight-color-map-dark {
       .#{$class} { color: $color; }
     }
@@ -209,12 +214,12 @@ code, pre, .highlight table, .highlight tr, .highlight td {
 
     @include link(false, false);
 
-    .dark & {
+    [theme=dark] & {
       background-color: darken($code-background-color-dark, 5%);
     }
   }
 
-  .dark & {
+  [theme=dark] & {
     // imported from https://github.com/lonekorean/gist-syntax-themes/blob/master/stylesheets/one-dark.css
     .highlight {
       background: #141414;
diff --git a/assets/css/_partial/_single/_footer.scss b/assets/css/_partial/_single/_footer.scss
index aad4b90e..e6d1ed46 100644
--- a/assets/css/_partial/_single/_footer.scss
+++ b/assets/css/_partial/_single/_footer.scss
@@ -5,7 +5,7 @@
     border-bottom: 1px solid $global-border-color;
     padding: 1rem 0 0.3rem;
 
-    .dark & {
+    [theme=dark] & {
       border-bottom: 1px solid $global-border-color-dark;
     }
 
@@ -17,7 +17,7 @@
         font-size: 0.8em;
         color: $global-font-secondary-color;
 
-        .dark & {
+        [theme=dark] & {
           color: $global-font-secondary-color-dark;
         }
 
@@ -28,7 +28,7 @@
         font-size: 0.8em;
         color: $global-font-secondary-color;
 
-        .dark & {
+        [theme=dark] & {
           color: $global-font-secondary-color-dark;
         }
       }
diff --git a/assets/css/_partial/_single/_instagram.scss b/assets/css/_partial/_single/_instagram.scss
index 0a41417d..49e08caf 100644
--- a/assets/css/_partial/_single/_instagram.scss
+++ b/assets/css/_partial/_single/_instagram.scss
@@ -1,5 +1,5 @@
 iframe.instagram-media {
-  .dark & {
+  [theme=dark] & {
     border: none !important;
   }
 }
diff --git a/assets/css/_partial/_single/_toc.scss b/assets/css/_partial/_single/_toc.scss
index 10a597db..5182df91 100644
--- a/assets/css/_partial/_single/_toc.scss
+++ b/assets/css/_partial/_single/_toc.scss
@@ -19,7 +19,7 @@
         margin-right: .5rem;
         color: $single-link-color;
 
-        .dark & {
+        [theme=dark] & {
           color: $single-link-color-dark;
         }
       }
@@ -37,7 +37,7 @@
       color: $global-font-secondary-color;
     }
 
-    .dark & {
+    [theme=dark] & {
       background: $code-background-color-dark;
 
       rt {
@@ -60,8 +60,8 @@
 
   @include blur;
 
-  .dark & {
-    border-left: 1px solid $global-border-color-dark;
+  [theme=dark] & {
+    border-left-color: $global-border-color-dark;
   }
 
   .toc-title {
@@ -91,14 +91,14 @@
       font-weight: bold;
       color: $single-link-color;
 
-      .dark & {
+      [theme=dark] & {
         color: $single-link-color-dark;
       }
 
       &::before {
         color: $single-link-hover-color;
 
-        .dark & {
+        [theme=dark] & {
           color: $single-link-hover-color-dark;
         }
       }
@@ -115,18 +115,10 @@
     justify-content: space-between;
     line-height: 2em;
     padding: 0 .75rem;
-    background: darken($code-background-color, 3%);
+    background: darken($code-background-color, 6%);
 
-    .dark & {
-      background: darken($code-background-color-dark, 3%);
-    }
-
-    &:hover {
-      background: darken($code-background-color, 6%);
-
-      .dark & {
-        background: darken($code-background-color-dark, 5%);
-      }
+    [theme=dark] & {
+      background: darken($code-background-color-dark, 6%);
     }
   }
 
@@ -138,8 +130,18 @@
       padding: .4rem 1rem .4rem 1.8rem;
     }
 
-    .dark & {
+    [theme=dark] & {
       background-color: $code-background-color-dark;
     }
   }
+
+  &.open {
+    .toc-title {
+      background: darken($code-background-color, 3%);
+
+      [theme=dark] & {
+        background: darken($code-background-color-dark, 3%);
+      }
+    }
+  }
 }
diff --git a/assets/css/_variables.scss b/assets/css/_variables.scss
index 6f7accb3..aaca40fe 100644
--- a/assets/css/_variables.scss
+++ b/assets/css/_variables.scss
@@ -31,7 +31,7 @@ $global-link-hover-color-dark: #fff !default;
 
 // Color of the border
 $global-border-color: #f0f0f0 !default;
-$global-border-color-dark: #4a4b50 !default;
+$global-border-color-dark: #363636 !default;
 // ========== Global ========== //
 
 // ========== Scrollbar ========== //
@@ -122,7 +122,7 @@ $code-color-dark: #E5BF78 !default;
 $code-background-color: #f5f5f5 !default;
 $code-background-color-dark: #272C34 !default;
 
-$code-info-color: #acabab !default;
+$code-info-color: #9c9c9c !default;
 $code-info-color-dark: #b1b0b0 !default;
 
 // Font size of the code
@@ -356,18 +356,18 @@ $admonition-color-map: (
 
 // Color map of the admonition background
 $admonition-background-color-map: (
-  'note': rgba(68,138,255,.1),
-  'abstract': rgba(0,176,255,.1),
-  'info': rgba(0,184,212,.1),
-  'tip': rgba(0,191,165,.1),
-  'success': rgba(0,200,83,.1),
-  'question': rgba(100,221,23,.1),
-  'warning': rgba(255,145,0,.1),
-  'failure': rgba(255,82,82,.1),
-  'danger': rgba(255,23,68,.1),
-  'bug': rgba(245,0,87,.1),
-  'example': rgba(101,31,255,.1),
-  'quote': hsla(0,0%,62%,.1),
+  'note': rgba(68, 138, 255, 0.1),
+  'abstract': rgba(0, 176, 255, 0.1),
+  'info': rgba(0, 184, 212, 0.1),
+  'tip': rgba(0, 191, 165, 0.1),
+  'success': rgba(0, 200, 83, 0.1),
+  'question': rgba(100, 221, 23, 0.1),
+  'warning': rgba(255, 145, 0, 0.1),
+  'failure': rgba(255, 82, 82, 0.1),
+  'danger': rgba(255, 23, 68, 0.1),
+  'bug': rgba(245, 0, 87, 0.1),
+  'example': rgba(101, 31, 255, 0.1),
+  'quote': rgba(159, 159, 159, 0.1),
 ) !default;
 // ========== Admonition ========== //
 
diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js
index 9e66a537..05ccdcc1 100644
--- a/assets/js/theme.min.js
+++ b/assets/js/theme.min.js
@@ -1,4 +1,4 @@
-"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a){if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(a=_unsupportedIterableToArray(a))){var b=0,c=function(){};return{s:c,n:function n(){return b>=a.length?{done:!0}:{done:!1,value:a[b++]}},e:function e(a){throw a},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var d,e,f=!0,g=!1;return{s:function s(){d=a[Symbol.iterator]()},n:function n(){var a=d.next();return f=a.done,a},e:function e(a){g=!0,e=a},f:function f(){try{f||null==d.return||d.return()}finally{if(g)throw e}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(c):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),a}var Util=/*#__PURE__*/function(){function a(){_classCallCheck(this,a)}return _createClass(a,[{key:"forEach",value:function forEach(a,b){a=a||[];for(var c=0;c<a.length;c++)b(a[c])}},{key:"getScrollTop",value:function getScrollTop(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}},{key:"isMobile",value:function isMobile(){return window.matchMedia("only screen and (max-width: 680px)").matches}},{key:"isTocStatic",value:function isTocStatic(){return window.matchMedia("only screen and (max-width: 960px)").matches}},{key:"animateCSS",value:function animateCSS(a,b,c,d){var e;Array.isArray(b)||(b=[b]),(e=a.classList).add.apply(e,["animated"].concat(_toConsumableArray(b)));var f=function(){var c;(c=a.classList).remove.apply(c,["animated"].concat(_toConsumableArray(b))),a.removeEventListener("animationend",f),"function"==typeof d&&d()};c||a.addEventListener("animationend",f,!1)}}]),a}(),Theme=/*#__PURE__*/function(){function a(){_classCallCheck(this,a),this.config=window.config,this.data=this.config.data,this.isDark=document.body.classList.contains("dark"),this.util=new Util,this.newScrollTop=this.util.getScrollTop(),this.oldScrollTop=this.newScrollTop,this.scrollEventSet=new Set,this.resizeEventSet=new Set,this.switchThemeEventSet=new Set,this.clickMaskEventSet=new Set}return _createClass(a,[{key:"initSVGIcon",value:function initSVGIcon(){this.util.forEach(document.querySelectorAll("[data-svg-src]"),function(a){fetch(a.getAttribute("data-svg-src")).then(function(a){return a.text()}).then(function(b){var c=document.createElement("div");c.insertAdjacentHTML("afterbegin",b);var d=c.firstChild;d.setAttribute("data-svg-src",a.getAttribute("data-svg-src")),d.classList.add("icon"),a.parentElement.replaceChild(d,a)}).catch(console.error.bind(console))})}},{key:"initTwemoji",value:function initTwemoji(){this.config.twemoji&&twemoji.parse(document.body)}},{key:"initMenuMobile",value:function initMenuMobile(){var a=document.getElementById("menu-toggle-mobile"),b=document.getElementById("menu-mobile");a.addEventListener("click",function(){document.body.classList.toggle("blur"),a.classList.toggle("active"),b.classList.toggle("active")},!1),this._menuMobileOnClickMask=this._menuMobileOnClickMask||function(){a.classList.remove("active"),b.classList.remove("active")},this.clickMaskEventSet.add(this._menuMobileOnClickMask)}},{key:"initSwitchTheme",value:function initSwitchTheme(){var a=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function(b){b.addEventListener("click",function(){document.body.classList.toggle("dark"),a.isDark=!a.isDark,window.localStorage&&localStorage.setItem("theme",a.isDark?"dark":"light");var b,c=_createForOfIteratorHelper(a.switchThemeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}},!1)})}},{key:"initSearch",value:function initSearch(){var a=this,b=this.config.search,c=this.util.isMobile();if(!(!b||c&&this._searchMobileOnce||!c&&this._searchDesktopOnce)){var d=c?"mobile":"desktop",e=document.getElementById("header-".concat(d)),f=document.getElementById("search-input-".concat(d)),g=document.getElementById("search-toggle-".concat(d)),h=document.getElementById("search-loading-".concat(d)),i=document.getElementById("search-clear-".concat(d));c?(this._searchMobileOnce=!0,f.addEventListener("focus",function(){document.body.classList.add("blur"),e.classList.add("open")},!1),document.getElementById("search-cancel-mobile").addEventListener("click",function(){e.classList.remove("open"),document.body.classList.remove("blur"),document.getElementById("menu-toggle-mobile").classList.remove("active"),document.getElementById("menu-mobile").classList.remove("active"),h.style.display="none",i.style.display="none",a._searchMobile&&a._searchMobile.autocomplete.setVal("")},!1),i.addEventListener("click",function(){i.style.display="none",a._searchMobile&&a._searchMobile.autocomplete.setVal("")},!1),this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){e.classList.remove("open"),h.style.display="none",i.style.display="none",a._searchMobile&&a._searchMobile.autocomplete.setVal("")},this.clickMaskEventSet.add(this._searchMobileOnClickMask)):(this._searchDesktopOnce=!0,g.addEventListener("click",function(){document.body.classList.add("blur"),e.classList.add("open"),f.focus()},!1),i.addEventListener("click",function(){i.style.display="none",a._searchDesktop&&a._searchDesktop.autocomplete.setVal("")},!1),this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){e.classList.remove("open"),h.style.display="none",i.style.display="none",a._searchDesktop&&a._searchDesktop.autocomplete.setVal("")},this.clickMaskEventSet.add(this._searchDesktopOnClickMask)),f.addEventListener("input",function(){i.style.display=""===f.value?"none":"inline"},!1);var j=function(){var e=autocomplete("#search-input-".concat(d),{hint:!1,autoselect:!0,dropdownMenuContainer:"#search-dropdown-".concat(d),clearOnSelected:!0,cssClasses:{noPrefix:!0}// debug: true,
+"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a){if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(a=_unsupportedIterableToArray(a))){var b=0,c=function(){};return{s:c,n:function n(){return b>=a.length?{done:!0}:{done:!1,value:a[b++]}},e:function e(a){throw a},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var d,e,f=!0,g=!1;return{s:function s(){d=a[Symbol.iterator]()},n:function n(){var a=d.next();return f=a.done,a},e:function e(a){g=!0,e=a},f:function f(){try{f||null==d.return||d.return()}finally{if(g)throw e}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(c):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),a}var Util=/*#__PURE__*/function(){function a(){_classCallCheck(this,a)}return _createClass(a,[{key:"forEach",value:function forEach(a,b){a=a||[];for(var c=0;c<a.length;c++)b(a[c])}},{key:"getScrollTop",value:function getScrollTop(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}},{key:"isMobile",value:function isMobile(){return window.matchMedia("only screen and (max-width: 680px)").matches}},{key:"isTocStatic",value:function isTocStatic(){return window.matchMedia("only screen and (max-width: 960px)").matches}},{key:"animateCSS",value:function animateCSS(a,b,c,d){var e;Array.isArray(b)||(b=[b]),(e=a.classList).add.apply(e,["animated"].concat(_toConsumableArray(b)));var f=function(){var c;(c=a.classList).remove.apply(c,["animated"].concat(_toConsumableArray(b))),a.removeEventListener("animationend",f),"function"==typeof d&&d()};c||a.addEventListener("animationend",f,!1)}}]),a}(),Theme=/*#__PURE__*/function(){function a(){_classCallCheck(this,a),this.config=window.config,this.data=this.config.data,this.isDark="dark"===document.body.getAttribute("theme"),this.util=new Util,this.newScrollTop=this.util.getScrollTop(),this.oldScrollTop=this.newScrollTop,this.scrollEventSet=new Set,this.resizeEventSet=new Set,this.switchThemeEventSet=new Set,this.clickMaskEventSet=new Set}return _createClass(a,[{key:"initSVGIcon",value:function initSVGIcon(){this.util.forEach(document.querySelectorAll("[data-svg-src]"),function(a){fetch(a.getAttribute("data-svg-src")).then(function(a){return a.text()}).then(function(b){var c=document.createElement("div");c.insertAdjacentHTML("afterbegin",b);var d=c.firstChild;d.setAttribute("data-svg-src",a.getAttribute("data-svg-src")),d.classList.add("icon"),a.parentElement.replaceChild(d,a)}).catch(console.error.bind(console))})}},{key:"initTwemoji",value:function initTwemoji(){this.config.twemoji&&twemoji.parse(document.body)}},{key:"initMenuMobile",value:function initMenuMobile(){var a=document.getElementById("menu-toggle-mobile"),b=document.getElementById("menu-mobile");a.addEventListener("click",function(){document.body.classList.toggle("blur"),a.classList.toggle("active"),b.classList.toggle("active")},!1),this._menuMobileOnClickMask=this._menuMobileOnClickMask||function(){a.classList.remove("active"),b.classList.remove("active")},this.clickMaskEventSet.add(this._menuMobileOnClickMask)}},{key:"initSwitchTheme",value:function initSwitchTheme(){var a=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function(b){b.addEventListener("click",function(){"dark"===document.body.getAttribute("theme")?document.body.setAttribute("theme","light"):document.body.setAttribute("theme","dark"),a.isDark=!a.isDark,window.localStorage&&localStorage.setItem("theme",a.isDark?"dark":"light");var b,c=_createForOfIteratorHelper(a.switchThemeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}},!1)})}},{key:"initSearch",value:function initSearch(){var a=this,b=this.config.search,c=this.util.isMobile();if(!(!b||c&&this._searchMobileOnce||!c&&this._searchDesktopOnce)){var d=c?"mobile":"desktop",e=document.getElementById("header-".concat(d)),f=document.getElementById("search-input-".concat(d)),g=document.getElementById("search-toggle-".concat(d)),h=document.getElementById("search-loading-".concat(d)),i=document.getElementById("search-clear-".concat(d));c?(this._searchMobileOnce=!0,f.addEventListener("focus",function(){document.body.classList.add("blur"),e.classList.add("open")},!1),document.getElementById("search-cancel-mobile").addEventListener("click",function(){e.classList.remove("open"),document.body.classList.remove("blur"),document.getElementById("menu-toggle-mobile").classList.remove("active"),document.getElementById("menu-mobile").classList.remove("active"),h.style.display="none",i.style.display="none",a._searchMobile&&a._searchMobile.autocomplete.setVal("")},!1),i.addEventListener("click",function(){i.style.display="none",a._searchMobile&&a._searchMobile.autocomplete.setVal("")},!1),this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){e.classList.remove("open"),h.style.display="none",i.style.display="none",a._searchMobile&&a._searchMobile.autocomplete.setVal("")},this.clickMaskEventSet.add(this._searchMobileOnClickMask)):(this._searchDesktopOnce=!0,g.addEventListener("click",function(){document.body.classList.add("blur"),e.classList.add("open"),f.focus()},!1),i.addEventListener("click",function(){i.style.display="none",a._searchDesktop&&a._searchDesktop.autocomplete.setVal("")},!1),this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){e.classList.remove("open"),h.style.display="none",i.style.display="none",a._searchDesktop&&a._searchDesktop.autocomplete.setVal("")},this.clickMaskEventSet.add(this._searchDesktopOnClickMask)),f.addEventListener("input",function(){i.style.display=""===f.value?"none":"inline"},!1);var j=function(){var e=autocomplete("#search-input-".concat(d),{hint:!1,autoselect:!0,dropdownMenuContainer:"#search-dropdown-".concat(d),clearOnSelected:!0,cssClasses:{noPrefix:!0}// debug: true,
 },{name:"search",source:function source(c,d){h.style.display="inline",i.style.display="none";var e=function(a){h.style.display="none",i.style.display="inline",d(a)};if("lunr"===b.type){var f=function(){return lunr.queryHandler&&(c=lunr.queryHandler(c)),a._index.search(c).slice(0,12).map(function(b){var c=b.ref,d=b.matchData.metadata,e=a._indexData[c],f=e.title,g=e.content,h=0;return Object.values(d).forEach(function(a){var b=a.description,c=a.content;if(b)g=e.description,h=-1;else if(c){var d=c.position[0][0];(d<h||0===h)&&(h=d)}}),h-=40,0<h?(h+=g.substr(h,25).lastIndexOf(" ")+1,g="..."+g.substr(h,200)):g=g.substr(0,200),Object.keys(d).forEach(function(a){f=f.replace(new RegExp("(".concat(a,")"),"gi"),"<em>$1</em>"),g=g.replace(new RegExp("(".concat(a,")"),"gi"),"<em>$1</em>")}),{uri:e.uri,title:f,date:e.date,context:g}})};a._index?e(f()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.lunrLanguageCode]),this.ref("uri"),this.field("title",{boost:50}),this.field("tags",{boost:20}),this.field("description",{boost:10}),this.field("content",{boost:5}),this.metadataWhitelist=["position"],c.forEach(function(b){d[b.uri]=b,a.add(b)})}),a._indexData=d,e(f())}).catch(function(a){console.error(a),e([])})}else"algolia"===b.type&&(h.style.display="inline",i.style.display="none",a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:12,attributesToHighlight:["title","content"]}).then(function(a){var b=a.hits;e(b.map(function(a){var b=a.uri,c=a.date,d=a._highlightResult,e=d.title,f=d.content;return{uri:b,title:e.value,date:c,context:f.value}}))}).catch(function(a){console.error(a),e([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"<div><span class=\"suggestion-title\">".concat(b,"</span><span class=\"suggestion-date\">").concat(c,"</span></div><div class=\"suggestion-context\">").concat(d,"</div>")},empty:function empty(a){var c=a.query;return"<div class=\"search-empty\">".concat(b.noResultsFound,": <span class=\"search-query\">\"").concat(c,"\"</span></div>")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"<i class=\"fab fa-algolia fa-fw\"></i>",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"<div class=\"search-footer\">Search by <a href=\"".concat(f,"\" rel=\"noopener noreffer\" target=\"_blank\">").concat(e," ").concat(d,"</a></div>")}}});e.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=e:a._searchDesktop=e};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var k=document.createElement("script");k.id="lunr-segmentit",k.type="text/javascript",k.src=b.lunrSegmentitURL,k.async=!0,k.readyState?k.onreadystatechange=function(){("loaded"==k.readyState||"complete"==k.readyState)&&(k.onreadystatechange=null,j())}:k.onload=function(){j()},document.body.appendChild(k)}else j()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin","<i class=\"arrow fas fa-chevron-right fa-fw\"></i>"),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin","<i class=\"fas fa-ellipsis-h fa-fw\"></i>"),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin","<i class=\"far fa-copy fa-fw\"></i>"),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length<a.config.code.maxShownLines+2)&&b.classList.add("open"),a.config.code.copyTitle){h.setAttribute("data-clipboard-text",i),h.title=a.config.code.copyTitle;var j=new ClipboardJS(h);j.on("success",function(){a.util.animateCSS(d,"flash")}),e.appendChild(h)}b.insertBefore(e,b.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function(a){var b=document.createElement("div");b.className="table-wrapper",a.parentElement.replaceChild(b,a),b.appendChild(a)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var a=1;6>=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("headerLink"),a.insertAdjacentHTML("afterbegin","<a href=\"#".concat(a.id,"\" class=\"header-mark\"></a>"))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px");var f=b.getElementsByTagName("a"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("headerLink"),j="normal"!==this.config.headerMode.desktop,k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTop<n?(c.style.position="absolute",c.style.top="".concat(m,"px")):a.newScrollTop>o?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;r<h.length-1;r++){var s=h[r].getBoundingClientRect().top,t=h[r+1].getBoundingClientRect().top;if(0==r&&s>p||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"null"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;b<a._echartsArr.length;b++)a._echartsArr[b].dispose();a._echartsArr=[],a.util.forEach(document.getElementsByClassName("echarts"),function(b){var c=echarts.init(b,a.isDark?"dark":"macarons",{renderer:"svg"});c.setOption(JSON.parse(a.data[b.id])),a._echartsArr.push(c)})},this.switchThemeEventSet.add(this._echartsOnSwitchTheme),this._echartsOnSwitchTheme(),this._echartsOnResize=this._echartsOnResize||function(){for(var b=0;b<a._echartsArr.length;b++)a._echartsArr[b].resize()},this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var a=this;this.config.mapbox&&(mapboxgl.accessToken=this.config.mapbox.accessToken,mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin),this._mapboxArr=this._mapboxArr||[],this.util.forEach(document.getElementsByClassName("mapbox"),function(b){var c=a.data[b.id],d=c.lng,e=c.lat,f=c.zoom,g=c.lightStyle,h=c.darkStyle,i=c.marked,j=c.navigation,k=c.geolocate,l=c.scale,m=c.fullscreen,n=new mapboxgl.Map({container:b,center:[d,e],zoom:f,minZoom:.2,style:a.isDark?h:g,attributionControl:!1});i&&new mapboxgl.Marker().setLngLat([d,e]).addTo(n),j&&n.addControl(new mapboxgl.NavigationControl,"bottom-right"),k&&n.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:!0},showUserLocation:!0,trackUserLocation:!0}),"bottom-right"),l&&n.addControl(new mapboxgl.ScaleControl),m&&n.addControl(new mapboxgl.FullscreenControl),n.addControl(new MapboxLanguage),a._mapboxArr.push(n)}),this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){a.util.forEach(a._mapboxArr,function(b){var c=b.getContainer(),d=a.data[c.id],e=d.lightStyle,f=d.darkStyle;b.setStyle(a.isDark?f:e),b.addControl(new MapboxLanguage)})},this.switchThemeEventSet.add(this._mapboxOnSwitchTheme))}},{key:"initTypeit",value:function initTypeit(){var a=this;this.config.typeit&&this.config.typeit.forEach(function(b){var c=function(d){var e=b[d];if(d===b.length-1)return void new TypeIt("#".concat(e),{strings:a.data[e]}).go();var f=new TypeIt("#".concat(e),{strings:a.data[e],afterComplete:function afterComplete(){f.destroy(),c(d+1)}}).go()};c(0)})}},{key:"initComment",value:function initComment(){if(this.config.comment&&this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var a=new Gitalk(this.config.comment.gitalk.body);a.render("gitalk")}this.config.comment&&this.config.comment.valine&&new Valine(this.config.comment.valine)}},{key:"initSmoothScroll",value:function initSmoothScroll(){!this.util.isMobile()&&"normal"===this.config.headerMode.desktop||this.util.isMobile()&&"normal"===this.config.headerMode.mobile?new SmoothScroll("[href^=\"#\"]",{speed:300,speedAsDuration:!0}):new SmoothScroll("[href^=\"#\"]",{speed:300,speedAsDuration:!0,header:"#header-desktop"})}},{key:"onScroll",value:function onScroll(){var a=this,b=[];if("auto"===this.config.headerMode.desktop&&b.push(document.getElementById("header-desktop")),"auto"===this.config.headerMode.mobile&&b.push(document.getElementById("header-mobile")),document.getElementById("comments")){var e=document.getElementById("view-comments");e.href="#comments",e.style.display="block"}var c=document.getElementById("fixed-buttons"),d=20;window.addEventListener("scroll",function(){a.newScrollTop=a.util.getScrollTop();var e=a.newScrollTop-a.oldScrollTop;a.util.forEach(b,function(b){e>d?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>d?e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):c.style.display="none";var f,g=_createForOfIteratorHelper(a.scrollEventSet);try{for(g.s();!(f=g.n()).done;){var h=f.value;h()}}catch(a){g.e(a)}finally{g.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initSmoothScroll(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initToc(),this.initComment(),this.initSmoothScroll(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.onScroll(),this.onResize(),this.onClickMask()}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit();
 
 //# sourceMappingURL=theme.min.js.map
\ No newline at end of file
diff --git a/assets/js/theme.min.js.map b/assets/js/theme.min.js.map
index e6fe499d..28b3b09c 100644
--- a/assets/js/theme.min.js.map
+++ b/assets/js/theme.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["class Util {\n    forEach(elements, handler) {\n        elements = elements || [];\n        for (let i = 0; i < elements.length; i++) handler(elements[i]);\n    }\n\n    getScrollTop() {\n        return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n    }\n\n    isMobile() {\n        return window.matchMedia('only screen and (max-width: 680px)').matches;\n    }\n\n    isTocStatic() {\n        return window.matchMedia('only screen and (max-width: 960px)').matches;\n    }\n\n    animateCSS(element, animation, reserved, callback) {\n        if (!Array.isArray(animation)) animation = [animation];\n        element.classList.add('animated', ...animation);\n        const handler = () => {\n            element.classList.remove('animated', ...animation);\n            element.removeEventListener('animationend', handler);\n            if (typeof callback === 'function') callback();\n        };\n        if (!reserved) element.addEventListener('animationend', handler, false);\n    }\n}\n\nclass Theme {\n    constructor() {\n        this.config = window.config;\n        this.data = this.config.data;\n        this.isDark = document.body.classList.contains('dark');\n        this.util = new Util();\n        this.newScrollTop = this.util.getScrollTop();\n        this.oldScrollTop = this.newScrollTop;\n        this.scrollEventSet = new Set();\n        this.resizeEventSet = new Set();\n        this.switchThemeEventSet = new Set();\n        this.clickMaskEventSet = new Set();\n    }\n\n    initSVGIcon() {\n        this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n            fetch($icon.getAttribute('data-svg-src'))\n                .then(response => response.text())\n                .then(svg => {\n                    const $temp = document.createElement('div');\n                    $temp.insertAdjacentHTML('afterbegin', svg);\n                    const $svg = $temp.firstChild;\n                    $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n                    $svg.classList.add('icon');\n                    $icon.parentElement.replaceChild($svg, $icon);\n                })\n                .catch(console.error.bind(console));\n        });\n    }\n\n    initTwemoji() {\n        if (this.config.twemoji) twemoji.parse(document.body);\n    }\n\n    initMenuMobile() {\n        const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n        const $menuMobile = document.getElementById('menu-mobile');\n        $menuToggleMobile.addEventListener('click', () => {\n            document.body.classList.toggle('blur');\n            $menuToggleMobile.classList.toggle('active');\n            $menuMobile.classList.toggle('active');\n        }, false);\n        this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n            $menuToggleMobile.classList.remove('active');\n            $menuMobile.classList.remove('active');\n        });\n        this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n    }\n\n    initSwitchTheme() {\n        this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n            $themeSwitch.addEventListener('click', () => {\n                document.body.classList.toggle('dark');\n                this.isDark = !this.isDark;\n                window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n                for (let event of this.switchThemeEventSet) event();\n            }, false);\n        });\n    }\n\n    initSearch() {\n        const searchConfig = this.config.search;\n        const isMobile = this.util.isMobile();\n        if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return;\n        const classSuffix = isMobile ? 'mobile' : 'desktop';\n        const $header = document.getElementById(`header-${classSuffix}`);\n        const $searchInput = document.getElementById(`search-input-${classSuffix}`);\n        const $searchToggle = document.getElementById(`search-toggle-${classSuffix}`);\n        const $searchLoading = document.getElementById(`search-loading-${classSuffix}`);\n        const $searchClear = document.getElementById(`search-clear-${classSuffix}`);\n        if (isMobile) {\n            this._searchMobileOnce = true;\n            $searchInput.addEventListener('focus', () => {\n                document.body.classList.add('blur');\n                $header.classList.add('open');\n            }, false);\n            document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n                $header.classList.remove('open');\n                document.body.classList.remove('blur');\n                document.getElementById('menu-toggle-mobile').classList.remove('active');\n                document.getElementById('menu-mobile').classList.remove('active');\n                $searchLoading.style.display = 'none';\n                $searchClear.style.display = 'none';\n                this._searchMobile && this._searchMobile.autocomplete.setVal('');\n            }, false);\n            $searchClear.addEventListener('click', () => {\n                $searchClear.style.display = 'none';\n                this._searchMobile && this._searchMobile.autocomplete.setVal('');\n            }, false);\n            this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n                $header.classList.remove('open');\n                $searchLoading.style.display = 'none';\n                $searchClear.style.display = 'none';\n                this._searchMobile && this._searchMobile.autocomplete.setVal('');\n            });\n            this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n        } else {\n            this._searchDesktopOnce = true;\n            $searchToggle.addEventListener('click', () => {\n                document.body.classList.add('blur');\n                $header.classList.add('open');\n                $searchInput.focus();\n            }, false);\n            $searchClear.addEventListener('click', () => {\n                $searchClear.style.display = 'none';\n                this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n            }, false);\n            this._searchDesktopOnClickMask = this._searchDesktopOnClickMask || (() => {\n                $header.classList.remove('open');\n                $searchLoading.style.display = 'none';\n                $searchClear.style.display = 'none';\n                this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n            });\n            this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n        }\n        $searchInput.addEventListener('input', () => {\n            if ($searchInput.value === '') $searchClear.style.display = 'none';\n            else $searchClear.style.display = 'inline';\n        }, false);\n\n        const CONTEXT_LENGTH = 200;\n        const initAutosearch = () => {\n            const autosearch = autocomplete(`#search-input-${classSuffix}`, {\n                hint: false,\n                autoselect: true,\n                dropdownMenuContainer: `#search-dropdown-${classSuffix}`,\n                clearOnSelected: true,\n                cssClasses: { noPrefix: true },\n             // debug: true,\n            }, {\n                name: 'search',\n                source: (query, callback) => {\n                    $searchLoading.style.display = 'inline';\n                    $searchClear.style.display = 'none';\n                    const finish = (results) => {\n                        $searchLoading.style.display = 'none';\n                        $searchClear.style.display = 'inline';\n                        callback(results);\n                    };\n                    if (searchConfig.type === 'lunr') {\n                        const search = () => {\n                            if (lunr.queryHandler) query = lunr.queryHandler(query);\n                            return this._index.search(query).slice(0, 12).map(({ ref, matchData: { metadata } }) => {\n                                const matchData = this._indexData[ref];\n                                let { title, content: context } = matchData;\n                                let position = 0;\n                                Object.values(metadata).forEach(({ description, content }) => {\n                                    if (description) {\n                                        context = matchData.description;\n                                        position = -1;\n                                    } else if (content) {\n                                        const matchPosition = content.position[0][0];\n                                        if (matchPosition < position || position === 0) position = matchPosition;\n                                    }\n                                });\n                                position -= CONTEXT_LENGTH / 5;\n                                if (position > 0) {\n                                    position += context.substr(position, 25).lastIndexOf(' ') + 1;\n                                    context = '...' + context.substr(position, CONTEXT_LENGTH);\n                                } else {\n                                    context = context.substr(0, CONTEXT_LENGTH);\n                                }\n                                Object.keys(metadata).forEach(key => {\n                                    title = title.replace(new RegExp(`(${key})`, 'gi'), '<em>$1</em>');\n                                    context = context.replace(new RegExp(`(${key})`, 'gi'), '<em>$1</em>');\n                                });\n                                return {\n                                    'uri': matchData.uri,\n                                    'title' : title,\n                                    'date' : matchData.date,\n                                    'context' : context,\n                                };\n                            });\n                        }\n                        if (!this._index) {\n                            fetch(searchConfig.lunrIndexURL)\n                                .then(response => response.json())\n                                .then(data => {\n                                    const indexData = {};\n                                    this._index = lunr(function () {\n                                        if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n                                        this.ref('uri');\n                                        this.field('title', { boost: 50 });\n                                        this.field('tags', { boost: 20 });\n                                        this.field('description', { boost: 10 });\n                                        this.field('content', { boost: 5 });\n                                        this.metadataWhitelist = ['position'];\n                                        data.forEach((record) => {\n                                            indexData[record.uri] = record;\n                                            this.add(record);\n                                        });\n                                    });\n                                    this._indexData = indexData;\n                                    finish(search());\n                                }).catch(err => {\n                                    console.error(err);\n                                    finish([]);\n                                });\n                        } else finish(search());\n                    } else if (searchConfig.type === 'algolia') {\n                        $searchLoading.style.display = 'inline';\n                        $searchClear.style.display = 'none';\n                        this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n                        this._algoliaIndex\n                            .search(query, { offset: 0, length: 12, attributesToHighlight: ['title', 'content'] })\n                            .then(({ hits }) => {\n                                finish(hits.map(({ uri, date, _highlightResult: { title, content } }) => ({\n                                    uri: uri,\n                                    title: title.value,\n                                    date: date,\n                                    context: content.value,\n                                })));\n                            })\n                            .catch(err => {\n                                console.error(err);\n                                finish([]);\n                            });\n                    }\n                },\n                templates: {\n                    suggestion: ({ title, date, context }) => `<div><span class=\"suggestion-title\">${title}</span><span class=\"suggestion-date\">${date}</span></div><div class=\"suggestion-context\">${context}</div>`,\n                    empty: ({ query }) => `<div class=\"search-empty\">${searchConfig.noResultsFound}: <span class=\"search-query\">\"${query}\"</span></div>`,\n                    footer: ({}) => {\n                        const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n                            searchType: 'algolia',\n                            icon: '<i class=\"fab fa-algolia fa-fw\"></i>',\n                            href: 'https://www.algolia.com/',\n                        } : {\n                            searchType: 'Lunr.js',\n                            icon: '',\n                            href: 'https://lunrjs.com/',\n                        };\n                        return `<div class=\"search-footer\">Search by <a href=\"${href}\" rel=\"noopener noreffer\" target=\"_blank\">${icon} ${searchType}</a></div>`;},\n                },\n            });\n            autosearch.on('autocomplete:selected', (event, suggestion, dataset, context) => {\n                window.location.assign(suggestion.uri);\n            });\n            if (isMobile) this._searchMobile = autosearch;\n            else this._searchDesktop = autosearch;\n        };\n        if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n            const script = document.createElement('script');\n            script.id = 'lunr-segmentit';\n            script.type = 'text/javascript';\n            script.src = searchConfig.lunrSegmentitURL;\n            script.async = true;\n            if (script.readyState) {\n                script.onreadystatechange = () => {\n                    if (script.readyState == 'loaded' || script.readyState == 'complete'){\n                        script.onreadystatechange = null;\n                        initAutosearch();\n                    }\n                };\n            } else {\n                script.onload = () => {\n                    initAutosearch();\n                };\n            }\n            document.body.appendChild(script);\n        } else initAutosearch();\n    }\n\n    initDetails() {\n        this.util.forEach(document.getElementsByClassName('details'), $details => {\n            const $summary = $details.getElementsByClassName('details-summary')[0];\n            $summary.addEventListener('click', () => {\n                $details.classList.toggle('open');\n            }, false);\n        });\n    }\n\n    initLightGallery() {\n        if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n    }\n\n    initHighlight() {\n        this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n            const $chroma = document.createElement('div');\n            $chroma.className = $preChroma.className;\n            const $table = document.createElement('table');\n            $chroma.appendChild($table);\n            const $tbody = document.createElement('tbody');\n            $table.appendChild($tbody);\n            const $tr = document.createElement('tr');\n            $tbody.appendChild($tr);\n            const $td = document.createElement('td');\n            $tr.appendChild($td);\n            $preChroma.parentElement.replaceChild($chroma, $preChroma);\n            $td.appendChild($preChroma);\n        });\n        this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n            const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n            if ($codeElements.length) {\n                const $code = $codeElements[$codeElements.length - 1];\n                const $header = document.createElement('div');\n                $header.className = 'code-header ' + $code.className.toLowerCase();\n                const $title = document.createElement('span');\n                $title.classList.add('code-title');\n                $title.insertAdjacentHTML('afterbegin', '<i class=\"arrow fas fa-chevron-right fa-fw\"></i>');\n                $title.addEventListener('click', () => {\n                    $chroma.classList.toggle('open');\n                }, false);\n                $header.appendChild($title);\n                const $ellipses = document.createElement('span');\n                $ellipses.insertAdjacentHTML('afterbegin', '<i class=\"fas fa-ellipsis-h fa-fw\"></i>');\n                $ellipses.classList.add('ellipses');\n                $ellipses.addEventListener('click', () => {\n                    $chroma.classList.add('open');\n                }, false);\n                $header.appendChild($ellipses);\n                const $copy = document.createElement('span');\n                $copy.insertAdjacentHTML('afterbegin', '<i class=\"far fa-copy fa-fw\"></i>');\n                $copy.classList.add('copy');\n                const code = $code.innerText;\n                if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n                if (this.config.code.copyTitle) {\n                    $copy.setAttribute('data-clipboard-text', code);\n                    $copy.title = this.config.code.copyTitle;\n                    const clipboard = new ClipboardJS($copy);\n                    clipboard.on('success', e => {\n                        this.util.animateCSS($code, 'flash');\n                    });\n                    $header.appendChild($copy);\n                }\n                $chroma.insertBefore($header, $chroma.firstChild);\n            }\n        });\n    }\n\n    initTable() {\n        this.util.forEach(document.querySelectorAll('.content table'), $table => {\n            const $wrapper = document.createElement('div');\n            $wrapper.className = 'table-wrapper';\n            $table.parentElement.replaceChild($wrapper, $table);\n            $wrapper.appendChild($table);\n        });\n    }\n\n    initHeaderLink() {\n        for (let num = 1; num <= 6; num++) {\n            this.util.forEach(document.querySelectorAll('.single .content > h' + num), $header => {\n                $header.classList.add('headerLink');\n                $header.insertAdjacentHTML('afterbegin', `<a href=\"#${$header.id}\" class=\"header-mark\"></a>`);\n            });\n        }\n    }\n\n    initToc() {\n        const $tocCore = document.getElementById('TableOfContents');\n        if ($tocCore === null) return;\n        if (this.util.isTocStatic()) {\n            const $tocContentStatic = document.getElementById('toc-content-static');\n            if ($tocCore.parentElement !== $tocContentStatic) {\n                $tocCore.parentElement.removeChild($tocCore);\n                $tocContentStatic.appendChild($tocCore);\n            }\n            if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);\n        } else {\n            const $tocContentAuto = document.getElementById('toc-content-auto');\n            if ($tocCore.parentElement !== $tocContentAuto) {\n                $tocCore.parentElement.removeChild($tocCore);\n                $tocContentAuto.appendChild($tocCore);\n            }\n            const $toc = document.getElementById('toc-auto');\n            const $page = document.getElementsByClassName('page')[0];\n            const rect = $page.getBoundingClientRect();\n            $toc.style.left = `${rect.left + rect.width + 20}px`;\n            $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n            const $tocLinkElements = $tocCore.getElementsByTagName('a');\n            const $tocLiElements = $tocCore.getElementsByTagName('li');\n            const $headerLinkElements = document.getElementsByClassName('headerLink');\n            const headerIsFixed = this.config.headerMode.desktop !== 'normal';\n            const headerHeight = document.getElementById('header-desktop').offsetHeight;\n            const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n            const minTocTop = $toc.offsetTop;\n            const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n            this._tocOnScroll = this._tocOnScroll || (() => {\n                const footerTop = document.getElementById('post-footer').offsetTop;\n                const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n                const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n                if (this.newScrollTop < minScrollTop) {\n                    $toc.style.position = 'absolute';\n                    $toc.style.top = `${minTocTop}px`;\n                } else if (this.newScrollTop > maxScrollTop) {\n                    $toc.style.position = 'absolute';\n                    $toc.style.top = `${maxTocTop}px`;\n                } else {\n                    $toc.style.position = 'fixed';\n                    $toc.style.top = `${TOP_SPACING}px`;\n                }\n\n                this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n                this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\n                const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n                let activeTocIndex = $headerLinkElements.length - 1;\n                for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n                    const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n                    const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n                    if ((i == 0 && thisTop > INDEX_SPACING)\n                     || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n                        activeTocIndex = i;\n                        break;\n                    }\n                }\n                if (activeTocIndex !== -1) {\n                    $tocLinkElements[activeTocIndex].classList.add('active');\n                    let $parent = $tocLinkElements[activeTocIndex].parentElement;\n                    while ($parent !== $tocCore) {\n                        $parent.classList.add('has-active');\n                        $parent = $parent.parentElement.parentElement;\n                    }\n                }\n            });\n            this._tocOnScroll();\n            this.scrollEventSet.add(this._tocOnScroll);\n        }\n    }\n\n    initMath() {\n        if (this.config.math) renderMathInElement(document.body, this.config.math);\n    }\n\n    initMermaid() {\n        const $mermaidElements = document.getElementsByClassName('mermaid');\n        if ($mermaidElements.length) {\n            mermaid.initialize({startOnLoad: false, theme: 'null'});\n            this.util.forEach($mermaidElements, $mermaid => {\n                mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n                    $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n                }, $mermaid);\n            });\n        }\n    }\n\n    initEcharts() {\n        this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n            this._echartsArr = this._echartsArr || [];\n            for (let i = 0; i < this._echartsArr.length; i++) {\n                this._echartsArr[i].dispose();\n            }\n            this._echartsArr = [];\n            this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n                const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {renderer: 'svg'});\n                chart.setOption(JSON.parse(this.data[$echarts.id]));\n                this._echartsArr.push(chart);\n            });\n        });\n        this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n        this._echartsOnSwitchTheme();\n        this._echartsOnResize = this._echartsOnResize || (() => {\n            for (let i = 0; i < this._echartsArr.length; i++) {\n                this._echartsArr[i].resize();\n            }\n        });\n        this.resizeEventSet.add(this._echartsOnResize);\n    }\n\n    initMapbox() {\n        if (this.config.mapbox) {\n            mapboxgl.accessToken = this.config.mapbox.accessToken;\n            mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n            this._mapboxArr = this._mapboxArr || [];\n            this.util.forEach(document.getElementsByClassName('mapbox'), $mapbox => {\n                const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n                const mapbox = new mapboxgl.Map({\n                    container: $mapbox,\n                    center: [lng, lat],\n                    zoom: zoom,\n                    minZoom: .2,\n                    style: this.isDark ? darkStyle : lightStyle,\n                    attributionControl: false,\n                });\n                if (marked) {\n                    new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n                }\n                if (navigation) {\n                    mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n                }\n                if (geolocate) {\n                    mapbox.addControl(new mapboxgl.GeolocateControl({\n                        positionOptions: {\n                            enableHighAccuracy: true,\n                        },\n                        showUserLocation: true,\n                        trackUserLocation: true,\n                    }), 'bottom-right');\n                }\n                if (scale) {\n                    mapbox.addControl(new mapboxgl.ScaleControl());\n                }\n                if (fullscreen) {\n                    mapbox.addControl(new mapboxgl.FullscreenControl());\n                }\n                mapbox.addControl(new MapboxLanguage());\n                this._mapboxArr.push(mapbox);\n            });\n            this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n                this.util.forEach(this._mapboxArr, mapbox => {\n                    const $mapbox = mapbox.getContainer();\n                    const { lightStyle, darkStyle } = this.data[$mapbox.id];\n                    mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n                    mapbox.addControl(new MapboxLanguage());\n                });\n            });\n            this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n        }\n    }\n\n    initTypeit() {\n        if (this.config.typeit) {\n            this.config.typeit.forEach(group => {\n                const typeone = (i) => {\n                    const id = group[i];\n                    if (i === group.length - 1) {\n                        new TypeIt(`#${id}`, {\n                            strings: this.data[id],\n                        }).go();\n                        return;\n                    }\n                    let instance = new TypeIt(`#${id}`, {\n                        strings: this.data[id],\n                        afterComplete: () => {\n                            instance.destroy();\n                            typeone(i + 1);\n                        },\n                    }).go();\n                };\n                typeone(0);\n            });\n        }\n    }\n\n    initComment() {\n        if (this.config.comment && this.config.comment.gitalk) {\n            this.config.comment.gitalk.body = decodeURI(window.location.href);\n            const gitalk = new Gitalk(this.config.comment.gitalk.body);\n            gitalk.render('gitalk');\n        }\n        if (this.config.comment && this.config.comment.valine) new Valine(this.config.comment.valine);\n    }\n\n    initSmoothScroll() {\n        if ((!this.util.isMobile() && this.config.headerMode.desktop === 'normal')\n          || (this.util.isMobile() && this.config.headerMode.mobile === 'normal')) {\n            new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true});\n        } else {\n            new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'});\n        }\n    }\n\n    onScroll() {\n        const $headers = [];\n        if (this.config.headerMode.desktop === 'auto') $headers.push(document.getElementById('header-desktop'));\n        if (this.config.headerMode.mobile === 'auto') $headers.push(document.getElementById('header-mobile'));\n        if (document.getElementById('comments')) {\n            const $viewComments = document.getElementById('view-comments');\n            $viewComments.href = `#comments`;\n            $viewComments.style.display = 'block';\n        }\n        const $fixedButtons = document.getElementById('fixed-buttons');\n        const MIN_SCROLL = 20;\n        window.addEventListener('scroll', () => {\n            this.newScrollTop = this.util.getScrollTop();\n            const scroll = this.newScrollTop - this.oldScrollTop;\n            this.util.forEach($headers, $header => {\n                if (scroll > MIN_SCROLL) {\n                    $header.classList.remove('fadeInDown');\n                    this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n                } else if (scroll < - MIN_SCROLL) {\n                    $header.classList.remove('fadeOutUp');\n                    this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n                }\n            });\n            if (this.newScrollTop > MIN_SCROLL) {\n                if (scroll > MIN_SCROLL) {\n                    $fixedButtons.classList.remove('fadeIn');\n                    this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n                } else if (scroll < - MIN_SCROLL) {\n                    $fixedButtons.style.display = 'block';\n                    $fixedButtons.classList.remove('fadeOut');\n                    this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n                }\n            } else {\n                $fixedButtons.style.display = 'none';\n            }\n            for (let event of this.scrollEventSet) event();\n            this.oldScrollTop = this.newScrollTop;\n        }, false);\n    }\n\n    onResize() {\n        window.addEventListener('resize', () => {\n            if (!this._resizeTimeout) {\n                this._resizeTimeout = window.setTimeout(() => {\n                    this._resizeTimeout = null;\n                    for (let event of this.resizeEventSet) event();\n                    this.initToc();\n                    this.initSmoothScroll();\n                    this.initMermaid();\n                    this.initSearch();\n                }, 100);\n            }\n        }, false);\n    }\n\n    onClickMask() {\n        document.getElementById('mask').addEventListener('click', () => {\n            for (let event of this.clickMaskEventSet) event();\n            document.body.classList.remove('blur');\n        }, false);\n    }\n\n    init() {\n        this.initSVGIcon();\n        this.initTwemoji();\n        this.initMenuMobile();\n        this.initSwitchTheme();\n        this.initSearch();\n        this.initDetails();\n        this.initLightGallery();\n        this.initHighlight();\n        this.initTable();\n        this.initHeaderLink();\n        this.initToc();\n        this.initComment();\n        this.initSmoothScroll();\n        this.initMath();\n        this.initMermaid();\n        this.initEcharts();\n        this.initTypeit();\n        this.initMapbox();\n\n        this.onScroll();\n        this.onResize();\n        this.onClickMask();\n    }\n}\n\nconst themeInit = () => {\n    const theme = new Theme();\n    theme.init();\n};\n\nif (document.readyState !== 'loading') {\n    themeInit();\n} else {\n    document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["class Util {\n    forEach(elements, handler) {\n        elements = elements || [];\n        for (let i = 0; i < elements.length; i++) handler(elements[i]);\n    }\n\n    getScrollTop() {\n        return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n    }\n\n    isMobile() {\n        return window.matchMedia('only screen and (max-width: 680px)').matches;\n    }\n\n    isTocStatic() {\n        return window.matchMedia('only screen and (max-width: 960px)').matches;\n    }\n\n    animateCSS(element, animation, reserved, callback) {\n        if (!Array.isArray(animation)) animation = [animation];\n        element.classList.add('animated', ...animation);\n        const handler = () => {\n            element.classList.remove('animated', ...animation);\n            element.removeEventListener('animationend', handler);\n            if (typeof callback === 'function') callback();\n        };\n        if (!reserved) element.addEventListener('animationend', handler, false);\n    }\n}\n\nclass Theme {\n    constructor() {\n        this.config = window.config;\n        this.data = this.config.data;\n        this.isDark = document.body.getAttribute('theme') === 'dark';\n        this.util = new Util();\n        this.newScrollTop = this.util.getScrollTop();\n        this.oldScrollTop = this.newScrollTop;\n        this.scrollEventSet = new Set();\n        this.resizeEventSet = new Set();\n        this.switchThemeEventSet = new Set();\n        this.clickMaskEventSet = new Set();\n    }\n\n    initSVGIcon() {\n        this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n            fetch($icon.getAttribute('data-svg-src'))\n                .then(response => response.text())\n                .then(svg => {\n                    const $temp = document.createElement('div');\n                    $temp.insertAdjacentHTML('afterbegin', svg);\n                    const $svg = $temp.firstChild;\n                    $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n                    $svg.classList.add('icon');\n                    $icon.parentElement.replaceChild($svg, $icon);\n                })\n                .catch(console.error.bind(console));\n        });\n    }\n\n    initTwemoji() {\n        if (this.config.twemoji) twemoji.parse(document.body);\n    }\n\n    initMenuMobile() {\n        const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n        const $menuMobile = document.getElementById('menu-mobile');\n        $menuToggleMobile.addEventListener('click', () => {\n            document.body.classList.toggle('blur');\n            $menuToggleMobile.classList.toggle('active');\n            $menuMobile.classList.toggle('active');\n        }, false);\n        this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n            $menuToggleMobile.classList.remove('active');\n            $menuMobile.classList.remove('active');\n        });\n        this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n    }\n\n    initSwitchTheme() {\n        this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n            $themeSwitch.addEventListener('click', () => {\n                if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\n                else document.body.setAttribute('theme', 'dark');\n                this.isDark = !this.isDark;\n                window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n                for (let event of this.switchThemeEventSet) event();\n            }, false);\n        });\n    }\n\n    initSearch() {\n        const searchConfig = this.config.search;\n        const isMobile = this.util.isMobile();\n        if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return;\n        const classSuffix = isMobile ? 'mobile' : 'desktop';\n        const $header = document.getElementById(`header-${classSuffix}`);\n        const $searchInput = document.getElementById(`search-input-${classSuffix}`);\n        const $searchToggle = document.getElementById(`search-toggle-${classSuffix}`);\n        const $searchLoading = document.getElementById(`search-loading-${classSuffix}`);\n        const $searchClear = document.getElementById(`search-clear-${classSuffix}`);\n        if (isMobile) {\n            this._searchMobileOnce = true;\n            $searchInput.addEventListener('focus', () => {\n                document.body.classList.add('blur');\n                $header.classList.add('open');\n            }, false);\n            document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n                $header.classList.remove('open');\n                document.body.classList.remove('blur');\n                document.getElementById('menu-toggle-mobile').classList.remove('active');\n                document.getElementById('menu-mobile').classList.remove('active');\n                $searchLoading.style.display = 'none';\n                $searchClear.style.display = 'none';\n                this._searchMobile && this._searchMobile.autocomplete.setVal('');\n            }, false);\n            $searchClear.addEventListener('click', () => {\n                $searchClear.style.display = 'none';\n                this._searchMobile && this._searchMobile.autocomplete.setVal('');\n            }, false);\n            this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n                $header.classList.remove('open');\n                $searchLoading.style.display = 'none';\n                $searchClear.style.display = 'none';\n                this._searchMobile && this._searchMobile.autocomplete.setVal('');\n            });\n            this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n        } else {\n            this._searchDesktopOnce = true;\n            $searchToggle.addEventListener('click', () => {\n                document.body.classList.add('blur');\n                $header.classList.add('open');\n                $searchInput.focus();\n            }, false);\n            $searchClear.addEventListener('click', () => {\n                $searchClear.style.display = 'none';\n                this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n            }, false);\n            this._searchDesktopOnClickMask = this._searchDesktopOnClickMask || (() => {\n                $header.classList.remove('open');\n                $searchLoading.style.display = 'none';\n                $searchClear.style.display = 'none';\n                this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n            });\n            this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n        }\n        $searchInput.addEventListener('input', () => {\n            if ($searchInput.value === '') $searchClear.style.display = 'none';\n            else $searchClear.style.display = 'inline';\n        }, false);\n\n        const CONTEXT_LENGTH = 200;\n        const initAutosearch = () => {\n            const autosearch = autocomplete(`#search-input-${classSuffix}`, {\n                hint: false,\n                autoselect: true,\n                dropdownMenuContainer: `#search-dropdown-${classSuffix}`,\n                clearOnSelected: true,\n                cssClasses: { noPrefix: true },\n             // debug: true,\n            }, {\n                name: 'search',\n                source: (query, callback) => {\n                    $searchLoading.style.display = 'inline';\n                    $searchClear.style.display = 'none';\n                    const finish = (results) => {\n                        $searchLoading.style.display = 'none';\n                        $searchClear.style.display = 'inline';\n                        callback(results);\n                    };\n                    if (searchConfig.type === 'lunr') {\n                        const search = () => {\n                            if (lunr.queryHandler) query = lunr.queryHandler(query);\n                            return this._index.search(query).slice(0, 12).map(({ ref, matchData: { metadata } }) => {\n                                const matchData = this._indexData[ref];\n                                let { title, content: context } = matchData;\n                                let position = 0;\n                                Object.values(metadata).forEach(({ description, content }) => {\n                                    if (description) {\n                                        context = matchData.description;\n                                        position = -1;\n                                    } else if (content) {\n                                        const matchPosition = content.position[0][0];\n                                        if (matchPosition < position || position === 0) position = matchPosition;\n                                    }\n                                });\n                                position -= CONTEXT_LENGTH / 5;\n                                if (position > 0) {\n                                    position += context.substr(position, 25).lastIndexOf(' ') + 1;\n                                    context = '...' + context.substr(position, CONTEXT_LENGTH);\n                                } else {\n                                    context = context.substr(0, CONTEXT_LENGTH);\n                                }\n                                Object.keys(metadata).forEach(key => {\n                                    title = title.replace(new RegExp(`(${key})`, 'gi'), '<em>$1</em>');\n                                    context = context.replace(new RegExp(`(${key})`, 'gi'), '<em>$1</em>');\n                                });\n                                return {\n                                    'uri': matchData.uri,\n                                    'title' : title,\n                                    'date' : matchData.date,\n                                    'context' : context,\n                                };\n                            });\n                        }\n                        if (!this._index) {\n                            fetch(searchConfig.lunrIndexURL)\n                                .then(response => response.json())\n                                .then(data => {\n                                    const indexData = {};\n                                    this._index = lunr(function () {\n                                        if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n                                        this.ref('uri');\n                                        this.field('title', { boost: 50 });\n                                        this.field('tags', { boost: 20 });\n                                        this.field('description', { boost: 10 });\n                                        this.field('content', { boost: 5 });\n                                        this.metadataWhitelist = ['position'];\n                                        data.forEach((record) => {\n                                            indexData[record.uri] = record;\n                                            this.add(record);\n                                        });\n                                    });\n                                    this._indexData = indexData;\n                                    finish(search());\n                                }).catch(err => {\n                                    console.error(err);\n                                    finish([]);\n                                });\n                        } else finish(search());\n                    } else if (searchConfig.type === 'algolia') {\n                        $searchLoading.style.display = 'inline';\n                        $searchClear.style.display = 'none';\n                        this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n                        this._algoliaIndex\n                            .search(query, { offset: 0, length: 12, attributesToHighlight: ['title', 'content'] })\n                            .then(({ hits }) => {\n                                finish(hits.map(({ uri, date, _highlightResult: { title, content } }) => ({\n                                    uri: uri,\n                                    title: title.value,\n                                    date: date,\n                                    context: content.value,\n                                })));\n                            })\n                            .catch(err => {\n                                console.error(err);\n                                finish([]);\n                            });\n                    }\n                },\n                templates: {\n                    suggestion: ({ title, date, context }) => `<div><span class=\"suggestion-title\">${title}</span><span class=\"suggestion-date\">${date}</span></div><div class=\"suggestion-context\">${context}</div>`,\n                    empty: ({ query }) => `<div class=\"search-empty\">${searchConfig.noResultsFound}: <span class=\"search-query\">\"${query}\"</span></div>`,\n                    footer: ({}) => {\n                        const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n                            searchType: 'algolia',\n                            icon: '<i class=\"fab fa-algolia fa-fw\"></i>',\n                            href: 'https://www.algolia.com/',\n                        } : {\n                            searchType: 'Lunr.js',\n                            icon: '',\n                            href: 'https://lunrjs.com/',\n                        };\n                        return `<div class=\"search-footer\">Search by <a href=\"${href}\" rel=\"noopener noreffer\" target=\"_blank\">${icon} ${searchType}</a></div>`;},\n                },\n            });\n            autosearch.on('autocomplete:selected', (event, suggestion, dataset, context) => {\n                window.location.assign(suggestion.uri);\n            });\n            if (isMobile) this._searchMobile = autosearch;\n            else this._searchDesktop = autosearch;\n        };\n        if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n            const script = document.createElement('script');\n            script.id = 'lunr-segmentit';\n            script.type = 'text/javascript';\n            script.src = searchConfig.lunrSegmentitURL;\n            script.async = true;\n            if (script.readyState) {\n                script.onreadystatechange = () => {\n                    if (script.readyState == 'loaded' || script.readyState == 'complete'){\n                        script.onreadystatechange = null;\n                        initAutosearch();\n                    }\n                };\n            } else {\n                script.onload = () => {\n                    initAutosearch();\n                };\n            }\n            document.body.appendChild(script);\n        } else initAutosearch();\n    }\n\n    initDetails() {\n        this.util.forEach(document.getElementsByClassName('details'), $details => {\n            const $summary = $details.getElementsByClassName('details-summary')[0];\n            $summary.addEventListener('click', () => {\n                $details.classList.toggle('open');\n            }, false);\n        });\n    }\n\n    initLightGallery() {\n        if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n    }\n\n    initHighlight() {\n        this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n            const $chroma = document.createElement('div');\n            $chroma.className = $preChroma.className;\n            const $table = document.createElement('table');\n            $chroma.appendChild($table);\n            const $tbody = document.createElement('tbody');\n            $table.appendChild($tbody);\n            const $tr = document.createElement('tr');\n            $tbody.appendChild($tr);\n            const $td = document.createElement('td');\n            $tr.appendChild($td);\n            $preChroma.parentElement.replaceChild($chroma, $preChroma);\n            $td.appendChild($preChroma);\n        });\n        this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n            const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n            if ($codeElements.length) {\n                const $code = $codeElements[$codeElements.length - 1];\n                const $header = document.createElement('div');\n                $header.className = 'code-header ' + $code.className.toLowerCase();\n                const $title = document.createElement('span');\n                $title.classList.add('code-title');\n                $title.insertAdjacentHTML('afterbegin', '<i class=\"arrow fas fa-chevron-right fa-fw\"></i>');\n                $title.addEventListener('click', () => {\n                    $chroma.classList.toggle('open');\n                }, false);\n                $header.appendChild($title);\n                const $ellipses = document.createElement('span');\n                $ellipses.insertAdjacentHTML('afterbegin', '<i class=\"fas fa-ellipsis-h fa-fw\"></i>');\n                $ellipses.classList.add('ellipses');\n                $ellipses.addEventListener('click', () => {\n                    $chroma.classList.add('open');\n                }, false);\n                $header.appendChild($ellipses);\n                const $copy = document.createElement('span');\n                $copy.insertAdjacentHTML('afterbegin', '<i class=\"far fa-copy fa-fw\"></i>');\n                $copy.classList.add('copy');\n                const code = $code.innerText;\n                if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n                if (this.config.code.copyTitle) {\n                    $copy.setAttribute('data-clipboard-text', code);\n                    $copy.title = this.config.code.copyTitle;\n                    const clipboard = new ClipboardJS($copy);\n                    clipboard.on('success', e => {\n                        this.util.animateCSS($code, 'flash');\n                    });\n                    $header.appendChild($copy);\n                }\n                $chroma.insertBefore($header, $chroma.firstChild);\n            }\n        });\n    }\n\n    initTable() {\n        this.util.forEach(document.querySelectorAll('.content table'), $table => {\n            const $wrapper = document.createElement('div');\n            $wrapper.className = 'table-wrapper';\n            $table.parentElement.replaceChild($wrapper, $table);\n            $wrapper.appendChild($table);\n        });\n    }\n\n    initHeaderLink() {\n        for (let num = 1; num <= 6; num++) {\n            this.util.forEach(document.querySelectorAll('.single .content > h' + num), $header => {\n                $header.classList.add('headerLink');\n                $header.insertAdjacentHTML('afterbegin', `<a href=\"#${$header.id}\" class=\"header-mark\"></a>`);\n            });\n        }\n    }\n\n    initToc() {\n        const $tocCore = document.getElementById('TableOfContents');\n        if ($tocCore === null) return;\n        if (this.util.isTocStatic()) {\n            const $tocContentStatic = document.getElementById('toc-content-static');\n            if ($tocCore.parentElement !== $tocContentStatic) {\n                $tocCore.parentElement.removeChild($tocCore);\n                $tocContentStatic.appendChild($tocCore);\n            }\n            if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);\n        } else {\n            const $tocContentAuto = document.getElementById('toc-content-auto');\n            if ($tocCore.parentElement !== $tocContentAuto) {\n                $tocCore.parentElement.removeChild($tocCore);\n                $tocContentAuto.appendChild($tocCore);\n            }\n            const $toc = document.getElementById('toc-auto');\n            const $page = document.getElementsByClassName('page')[0];\n            const rect = $page.getBoundingClientRect();\n            $toc.style.left = `${rect.left + rect.width + 20}px`;\n            $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n            const $tocLinkElements = $tocCore.getElementsByTagName('a');\n            const $tocLiElements = $tocCore.getElementsByTagName('li');\n            const $headerLinkElements = document.getElementsByClassName('headerLink');\n            const headerIsFixed = this.config.headerMode.desktop !== 'normal';\n            const headerHeight = document.getElementById('header-desktop').offsetHeight;\n            const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n            const minTocTop = $toc.offsetTop;\n            const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n            this._tocOnScroll = this._tocOnScroll || (() => {\n                const footerTop = document.getElementById('post-footer').offsetTop;\n                const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n                const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n                if (this.newScrollTop < minScrollTop) {\n                    $toc.style.position = 'absolute';\n                    $toc.style.top = `${minTocTop}px`;\n                } else if (this.newScrollTop > maxScrollTop) {\n                    $toc.style.position = 'absolute';\n                    $toc.style.top = `${maxTocTop}px`;\n                } else {\n                    $toc.style.position = 'fixed';\n                    $toc.style.top = `${TOP_SPACING}px`;\n                }\n\n                this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n                this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\n                const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n                let activeTocIndex = $headerLinkElements.length - 1;\n                for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n                    const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n                    const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n                    if ((i == 0 && thisTop > INDEX_SPACING)\n                     || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n                        activeTocIndex = i;\n                        break;\n                    }\n                }\n                if (activeTocIndex !== -1) {\n                    $tocLinkElements[activeTocIndex].classList.add('active');\n                    let $parent = $tocLinkElements[activeTocIndex].parentElement;\n                    while ($parent !== $tocCore) {\n                        $parent.classList.add('has-active');\n                        $parent = $parent.parentElement.parentElement;\n                    }\n                }\n            });\n            this._tocOnScroll();\n            this.scrollEventSet.add(this._tocOnScroll);\n        }\n    }\n\n    initMath() {\n        if (this.config.math) renderMathInElement(document.body, this.config.math);\n    }\n\n    initMermaid() {\n        const $mermaidElements = document.getElementsByClassName('mermaid');\n        if ($mermaidElements.length) {\n            mermaid.initialize({startOnLoad: false, theme: 'null'});\n            this.util.forEach($mermaidElements, $mermaid => {\n                mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n                    $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n                }, $mermaid);\n            });\n        }\n    }\n\n    initEcharts() {\n        this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n            this._echartsArr = this._echartsArr || [];\n            for (let i = 0; i < this._echartsArr.length; i++) {\n                this._echartsArr[i].dispose();\n            }\n            this._echartsArr = [];\n            this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n                const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {renderer: 'svg'});\n                chart.setOption(JSON.parse(this.data[$echarts.id]));\n                this._echartsArr.push(chart);\n            });\n        });\n        this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n        this._echartsOnSwitchTheme();\n        this._echartsOnResize = this._echartsOnResize || (() => {\n            for (let i = 0; i < this._echartsArr.length; i++) {\n                this._echartsArr[i].resize();\n            }\n        });\n        this.resizeEventSet.add(this._echartsOnResize);\n    }\n\n    initMapbox() {\n        if (this.config.mapbox) {\n            mapboxgl.accessToken = this.config.mapbox.accessToken;\n            mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n            this._mapboxArr = this._mapboxArr || [];\n            this.util.forEach(document.getElementsByClassName('mapbox'), $mapbox => {\n                const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n                const mapbox = new mapboxgl.Map({\n                    container: $mapbox,\n                    center: [lng, lat],\n                    zoom: zoom,\n                    minZoom: .2,\n                    style: this.isDark ? darkStyle : lightStyle,\n                    attributionControl: false,\n                });\n                if (marked) {\n                    new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n                }\n                if (navigation) {\n                    mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n                }\n                if (geolocate) {\n                    mapbox.addControl(new mapboxgl.GeolocateControl({\n                        positionOptions: {\n                            enableHighAccuracy: true,\n                        },\n                        showUserLocation: true,\n                        trackUserLocation: true,\n                    }), 'bottom-right');\n                }\n                if (scale) {\n                    mapbox.addControl(new mapboxgl.ScaleControl());\n                }\n                if (fullscreen) {\n                    mapbox.addControl(new mapboxgl.FullscreenControl());\n                }\n                mapbox.addControl(new MapboxLanguage());\n                this._mapboxArr.push(mapbox);\n            });\n            this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n                this.util.forEach(this._mapboxArr, mapbox => {\n                    const $mapbox = mapbox.getContainer();\n                    const { lightStyle, darkStyle } = this.data[$mapbox.id];\n                    mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n                    mapbox.addControl(new MapboxLanguage());\n                });\n            });\n            this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n        }\n    }\n\n    initTypeit() {\n        if (this.config.typeit) {\n            this.config.typeit.forEach(group => {\n                const typeone = (i) => {\n                    const id = group[i];\n                    if (i === group.length - 1) {\n                        new TypeIt(`#${id}`, {\n                            strings: this.data[id],\n                        }).go();\n                        return;\n                    }\n                    let instance = new TypeIt(`#${id}`, {\n                        strings: this.data[id],\n                        afterComplete: () => {\n                            instance.destroy();\n                            typeone(i + 1);\n                        },\n                    }).go();\n                };\n                typeone(0);\n            });\n        }\n    }\n\n    initComment() {\n        if (this.config.comment && this.config.comment.gitalk) {\n            this.config.comment.gitalk.body = decodeURI(window.location.href);\n            const gitalk = new Gitalk(this.config.comment.gitalk.body);\n            gitalk.render('gitalk');\n        }\n        if (this.config.comment && this.config.comment.valine) new Valine(this.config.comment.valine);\n    }\n\n    initSmoothScroll() {\n        if ((!this.util.isMobile() && this.config.headerMode.desktop === 'normal')\n          || (this.util.isMobile() && this.config.headerMode.mobile === 'normal')) {\n            new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true});\n        } else {\n            new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'});\n        }\n    }\n\n    onScroll() {\n        const $headers = [];\n        if (this.config.headerMode.desktop === 'auto') $headers.push(document.getElementById('header-desktop'));\n        if (this.config.headerMode.mobile === 'auto') $headers.push(document.getElementById('header-mobile'));\n        if (document.getElementById('comments')) {\n            const $viewComments = document.getElementById('view-comments');\n            $viewComments.href = `#comments`;\n            $viewComments.style.display = 'block';\n        }\n        const $fixedButtons = document.getElementById('fixed-buttons');\n        const MIN_SCROLL = 20;\n        window.addEventListener('scroll', () => {\n            this.newScrollTop = this.util.getScrollTop();\n            const scroll = this.newScrollTop - this.oldScrollTop;\n            this.util.forEach($headers, $header => {\n                if (scroll > MIN_SCROLL) {\n                    $header.classList.remove('fadeInDown');\n                    this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n                } else if (scroll < - MIN_SCROLL) {\n                    $header.classList.remove('fadeOutUp');\n                    this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n                }\n            });\n            if (this.newScrollTop > MIN_SCROLL) {\n                if (scroll > MIN_SCROLL) {\n                    $fixedButtons.classList.remove('fadeIn');\n                    this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n                } else if (scroll < - MIN_SCROLL) {\n                    $fixedButtons.style.display = 'block';\n                    $fixedButtons.classList.remove('fadeOut');\n                    this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n                }\n            } else {\n                $fixedButtons.style.display = 'none';\n            }\n            for (let event of this.scrollEventSet) event();\n            this.oldScrollTop = this.newScrollTop;\n        }, false);\n    }\n\n    onResize() {\n        window.addEventListener('resize', () => {\n            if (!this._resizeTimeout) {\n                this._resizeTimeout = window.setTimeout(() => {\n                    this._resizeTimeout = null;\n                    for (let event of this.resizeEventSet) event();\n                    this.initToc();\n                    this.initSmoothScroll();\n                    this.initMermaid();\n                    this.initSearch();\n                }, 100);\n            }\n        }, false);\n    }\n\n    onClickMask() {\n        document.getElementById('mask').addEventListener('click', () => {\n            for (let event of this.clickMaskEventSet) event();\n            document.body.classList.remove('blur');\n        }, false);\n    }\n\n    init() {\n        this.initSVGIcon();\n        this.initTwemoji();\n        this.initMenuMobile();\n        this.initSwitchTheme();\n        this.initSearch();\n        this.initDetails();\n        this.initLightGallery();\n        this.initHighlight();\n        this.initTable();\n        this.initHeaderLink();\n        this.initToc();\n        this.initComment();\n        this.initSmoothScroll();\n        this.initMath();\n        this.initMermaid();\n        this.initEcharts();\n        this.initTypeit();\n        this.initMapbox();\n\n        this.onScroll();\n        this.onResize();\n        this.onClickMask();\n    }\n}\n\nconst themeInit = () => {\n    const theme = new Theme();\n    theme.init();\n};\n\nif (document.readyState !== 'loading') {\n    themeInit();\n} else {\n    document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]}
\ No newline at end of file
diff --git a/assets/lib/aplayer/dark.scss b/assets/lib/aplayer/dark.scss
index 4a26503e..bff3cdd1 100644
--- a/assets/lib/aplayer/dark.scss
+++ b/assets/lib/aplayer/dark.scss
@@ -1,4 +1,4 @@
-.dark .aplayer {
+[theme=dark] .aplayer {
   background: #212121;
 
   &.aplayer-withlist {
diff --git a/assets/lib/mermaid/mermaid.scss b/assets/lib/mermaid/mermaid.scss
index 074d7c37..28a7554a 100644
--- a/assets/lib/mermaid/mermaid.scss
+++ b/assets/lib/mermaid/mermaid.scss
@@ -9,7 +9,7 @@
 
   @import "themes/neutral/index";
 
-  .dark & {
+  [theme=dark] & {
     @import "themes/dark/index";
   }
 }
diff --git a/assets/lib/polyfill.yml b/assets/lib/polyfill.yml
index 9b6f0c1c..bc300c0a 100644
--- a/assets/lib/polyfill.yml
+++ b/assets/lib/polyfill.yml
@@ -6,6 +6,14 @@ algoliasearch:
   - Promise
   - Object.entries
   - Object.assign
+TypeIt:
+  - Array.prototype.fill
+  - Array.prototype.find
+  - Array.from
+  - IntersectionObserver
+  - Math.sign
+  - Object.assign
+  - Promise
 theme:
   - Object.values
   - Promise
diff --git a/assets/lib/valine/valine.scss b/assets/lib/valine/valine.scss
new file mode 100644
index 00000000..e4793035
--- /dev/null
+++ b/assets/lib/valine/valine.scss
@@ -0,0 +1,14 @@
+$border-color: #f0f0f0;
+$border-color-dark: #363636;
+
+.v[data-class=v] {
+  .vwrap,
+  .vwrap .vheader .vinput,
+  .vcards .vcard .vh {
+    border-color: $border-color;
+
+    [theme=dark] & {
+      border-color: $border-color-dark;
+    }
+  }
+}
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index 8847adc9..be701b38 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -774,31 +774,31 @@ enableEmoji = true
       enable = true
       Twitter = true
       Facebook = true
-      # Linkedin = true
-      # Whatsapp = true
-      # Pinterest = true
-      # Tumblr = true
-      # HackerNews = true
-      # Reddit = true
-      # VK = true
-      # Buffer = true
-      # Xing = true
+      Linkedin = false
+      Whatsapp = true
+      Pinterest = false
+      Tumblr = false
+      HackerNews = false
+      Reddit = false
+      VK = false
+      Buffer = false
+      Xing = false
       Line = true
-      # Instapaper = true
-      # Pocket = true
-      # Digg = true
-      # Stumbleupon = true
-      # Flipboard = true
+      Instapaper = false
+      Pocket = false
+      Digg = false
+      Stumbleupon = false
+      Flipboard = false
       Weibo = true
-      # Renren = true
-      # Myspace = true
-      # Blogger = true
-      Baidu = true
-      # Odnoklassniki = true
+      Renren = false
+      Myspace = true
+      Blogger = true
+      Baidu = false
+      Odnoklassniki = false
       Evernote = true
-      # Skype = true
-      # Trello = true
-      # Mix = true
+      Skype = false
+      Trello = false
+      Mix = false
     # Comment config
     # 评论系统设置
     [params.page.comment]
diff --git a/exampleSite/content/about.en.md b/exampleSite/content/about.en.md
index bd152ea6..d097a392 100644
--- a/exampleSite/content/about.en.md
+++ b/exampleSite/content/about.en.md
@@ -17,9 +17,9 @@ math:
 [![GitHub forks](https://img.shields.io/github/forks/dillonzq/LoveIt?style=social)](https://github.com/dillonzq/LoveIt/fork)
 {{< /style >}}
 
-[:(far fa-kiss-wink-heart fa-fw): LoveIt](https://github.com/dillonzq/LoveIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/) developed by [Dillon](https://dillonzq.com).
-
-It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt/) and [KeepIt Theme](https://github.com/liuzc/LeaveIt/).
+> [:(far fa-kiss-wink-heart fa-fw): LoveIt](https://github.com/dillonzq/LoveIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/) developed by [Dillon](https://dillonzq.com).
+>
+> It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/liuzc/LeaveIt).
 
 ![Hugo Theme LoveIt](/images/Apple-Devices-Preview.png "Hugo Theme LoveIt")
 
diff --git a/exampleSite/content/about.fr.md b/exampleSite/content/about.fr.md
index ae6ef478..118c2a72 100644
--- a/exampleSite/content/about.fr.md
+++ b/exampleSite/content/about.fr.md
@@ -22,9 +22,9 @@ Sorry, this article has not been completely translated into **French**.
 Welcome to take the time to propose a translation by [making a PR](https://github.com/dillonzq/LoveIt/pulls) to the theme!
 {{< /admonition >}}
 
-[:(far fa-kiss-wink-heart fa-fw): LoveIt](https://github.com/dillonzq/LoveIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/) developed by [Dillon](https://dillonzq.com).
-
-It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt/) and [KeepIt Theme](https://github.com/liuzc/LeaveIt/).
+> [:(far fa-kiss-wink-heart fa-fw): LoveIt](https://github.com/dillonzq/LoveIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/) developed by [Dillon](https://dillonzq.com).
+>
+> It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/liuzc/LeaveIt).
 
 ![Hugo Theme LoveIt](/images/Apple-Devices-Preview.png "Hugo Theme LoveIt")
 
diff --git a/exampleSite/content/about.zh-cn.md b/exampleSite/content/about.zh-cn.md
index 7df18911..96a20211 100644
--- a/exampleSite/content/about.zh-cn.md
+++ b/exampleSite/content/about.zh-cn.md
@@ -17,9 +17,9 @@ math:
 [![GitHub forks](https://img.shields.io/github/forks/dillonzq/LoveIt?style=social)](https://github.com/dillonzq/LoveIt/fork)
 {{< /style >}}
 
-[:(far fa-kiss-wink-heart fa-fw): LoveIt](https://github.com/dillonzq/LoveIt) 是一个由 [Dillon](https://dillonzq.com) 开发的**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
-
-它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt/) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt/)。
+> [:(far fa-kiss-wink-heart fa-fw): LoveIt](https://github.com/dillonzq/LoveIt) 是一个由 [Dillon](https://dillonzq.com) 开发的**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
+>
+> 它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt)。
 
 ![Hugo 主题 LoveIt](/images/Apple-Devices-Preview.png "Hugo 主题 LoveIt")
 
diff --git a/exampleSite/content/posts/basic-markdown-syntax.en.md b/exampleSite/content/posts/basic-markdown-syntax.en.md
index 4c6c8c23..cf89f522 100644
--- a/exampleSite/content/posts/basic-markdown-syntax.en.md
+++ b/exampleSite/content/posts/basic-markdown-syntax.en.md
@@ -22,7 +22,7 @@ This article offers a sample of basic Markdown syntax that can be used in Hugo c
 {{< admonition >}}
 This article is a shameful copy of the great [Grav original page](http://learn.getgrav.org/content/markdown).
 
-If you want to know about the extented Markdown syntax of **LoveIt** theme, please read [extended Markdown syntax page](../theme-documentation-content/#extended-markdown-syntax).
+If you want to know about the extented Markdown syntax of **LoveIt** theme, please read [extended Markdown syntax page](../theme-documentation-content#extended-markdown-syntax).
 {{< /admonition >}}
 
 Let's face it: Writing content for the Web is tiresome. WYSIWYG editors help alleviate this task, but they generally result in horrible code, or worse yet, ugly web pages.
@@ -757,5 +757,5 @@ With a reference later in the document defining the URL location:
 [id]: https://octodex.github.com/images/dojocat.jpg  "The Dojocat"
 
 {{< admonition tip >}}
-**LoveIt** theme has [special shortcode for image](../theme-documentation-extended-shortcodes/#image), which provides more features.
+**LoveIt** theme has [special shortcode for image](../theme-documentation-extended-shortcodes#image), which provides more features.
 {{< /admonition >}}
diff --git a/exampleSite/content/posts/basic-markdown-syntax.fr.md b/exampleSite/content/posts/basic-markdown-syntax.fr.md
index 527c59e2..0d70fa58 100644
--- a/exampleSite/content/posts/basic-markdown-syntax.fr.md
+++ b/exampleSite/content/posts/basic-markdown-syntax.fr.md
@@ -27,7 +27,7 @@ Welcome to take the time to propose a translation by [making a PR](https://githu
 {{< admonition >}}
 This article is a shameful copy of the great [Grav original page](http://learn.getgrav.org/content/markdown).
 
-If you want to know about the extented Markdown syntax of **LoveIt** theme, please read [extended Markdown syntax page](../theme-documentation-content/#extended-markdown-syntax).
+If you want to know about the extented Markdown syntax of **LoveIt** theme, please read [extended Markdown syntax page](../theme-documentation-content#extended-markdown-syntax).
 {{< /admonition >}}
 
 Let's face it: Writing content for the Web is tiresome. WYSIWYG editors help alleviate this task, but they generally result in horrible code, or worse yet, ugly web pages.
@@ -762,5 +762,5 @@ With a reference later in the document defining the URL location:
 [id]: https://octodex.github.com/images/dojocat.jpg  "The Dojocat"
 
 {{< admonition tip >}}
-**LoveIt** theme has [special shortcode for image](../theme-documentation-extended-shortcodes/#image), which provides more features.
+**LoveIt** theme has [special shortcode for image](../theme-documentation-extended-shortcodes#image), which provides more features.
 {{< /admonition >}}
diff --git a/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md b/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md
index 4f0444cb..591ba16d 100644
--- a/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md
+++ b/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md
@@ -22,7 +22,7 @@ lightgallery: true
 {{< admonition >}}
 这篇文章借鉴了一篇很棒的[来自 Grav 的文章](http://learn.getgrav.org/content/markdown).
 
-如果你想了解 **Loveit** 主题的扩展 Markdown 语法, 请阅读[扩展 Markdown 语法页面](../theme-documentation-content/#extended-markdown-syntax).
+如果你想了解 **Loveit** 主题的扩展 Markdown 语法, 请阅读[扩展 Markdown 语法页面](../theme-documentation-content#extended-markdown-syntax).
 {{< /admonition >}}
 
 事实上, 编写 Web 内容很麻烦. [WYSIWYG]^(所见即所得) 编辑器帮助减轻了这一任务. 但通常会导致代码太糟, 或更糟糕的是, 网页也会很丑.
@@ -393,13 +393,13 @@ odio non est accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac
 
 ```markdown
 1. Lorem ipsum dolor sit amet
-2. Consectetur adipiscing elit
-3. Integer molestie lorem at massa
-4. Facilisis in pretium nisl aliquet
-5. Nulla volutpat aliquam velit
-6. Faucibus porta lacus fringilla vel
-7. Aenean sit amet erat nunc
-8. Eget porttitor lorem
+1. Consectetur adipiscing elit
+1. Integer molestie lorem at massa
+1. Facilisis in pretium nisl aliquet
+1. Nulla volutpat aliquam velit
+1. Faucibus porta lacus fringilla vel
+1. Aenean sit amet erat nunc
+1. Eget porttitor lorem
 ```
 
 呈现的输出效果如下:
@@ -764,5 +764,5 @@ Content for chapter one.
 [id]: https://octodex.github.com/images/dojocat.jpg  "The Dojocat"
 
 {{< admonition tip >}}
-**LoveIt** 主题提供了一个包含更多功能的 [图片的 shortcode](../theme-documentation-extended-shortcodes/#image).
+**LoveIt** 主题提供了一个包含更多功能的 [图片的 shortcode](../theme-documentation-extended-shortcodes#image).
 {{< /admonition >}}
diff --git a/exampleSite/content/posts/emoji-support.en.md b/exampleSite/content/posts/emoji-support.en.md
index 6bd18968..d0ccfeb0 100644
--- a/exampleSite/content/posts/emoji-support.en.md
+++ b/exampleSite/content/posts/emoji-support.en.md
@@ -20,9 +20,9 @@ Emoji can be enabled in a Hugo project in a number of ways.
 
 <!--more-->
 
-The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
+The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates#inline-shortcodes).
 
-To enable emoji globally, set `enableEmoji` to `true` in your site’s [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files.
+To enable emoji globally, set `enableEmoji` to `true` in your [site configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files.
 
 These begin and end with a **colon** and include the **code** of an emoji:
 
@@ -38,6 +38,12 @@ Gone camping! :tent: Be back soon.
 
 That is so funny! :joy:
 
+{{< admonition tip "Enable Twemoji" >}}
+This page enables `twemoji` to make emoji look beautiful everywhere.
+
+Set `twemoji` to `true` in your [front matter](../theme-documentation-content#front-matter) or in the `params.page` part of the [site configuration](https://gohugo.io/getting-started/configuration/) to use :(far fa-grin-tongue-wink fa-fw): Twemoji.
+{{< /admonition >}}
+
 ## Emoji Cheat Sheet
 
 The following cheat sheet is a useful reference for emoji shorthand codes.
diff --git a/exampleSite/content/posts/emoji-support.fr.md b/exampleSite/content/posts/emoji-support.fr.md
index bb8a8c9e..10c97a27 100644
--- a/exampleSite/content/posts/emoji-support.fr.md
+++ b/exampleSite/content/posts/emoji-support.fr.md
@@ -25,9 +25,9 @@ Sorry, this article has not been completely translated into **French**.
 Welcome to take the time to propose a translation by [making a PR](https://github.com/dillonzq/LoveIt/pulls) to the theme!
 {{< /admonition >}}
 
-The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
+The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates#inline-shortcodes).
 
-To enable emoji globally, set `enableEmoji` to `true` in your site’s [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files.
+To enable emoji globally, set `enableEmoji` to `true` in your [site configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files.
 
 These begin and end with a **colon** and include the **code** of an emoji:
 
@@ -43,6 +43,12 @@ Gone camping! :tent: Be back soon.
 
 That is so funny! :joy:
 
+{{< admonition tip "Enable Twemoji" >}}
+This page enables `twemoji` to make emoji look beautiful everywhere.
+
+Set `twemoji` to `true` in your [front matter](../theme-documentation-content#front-matter) or in the `params.page` part of the [site configuration](https://gohugo.io/getting-started/configuration/) to use :(far fa-grin-tongue-wink fa-fw): Twemoji.
+{{< /admonition >}}
+
 ## Emoji Cheat Sheet
 
 The following cheat sheet is a useful reference for emoji shorthand codes.
diff --git a/exampleSite/content/posts/emoji-support.zh-cn.md b/exampleSite/content/posts/emoji-support.zh-cn.md
index 83b903ff..3e78bb1c 100644
--- a/exampleSite/content/posts/emoji-support.zh-cn.md
+++ b/exampleSite/content/posts/emoji-support.zh-cn.md
@@ -20,9 +20,9 @@ Emoji 可以通过多种方式在 Hugo 项目中启用.
 
 <!--more-->
 
-[`emojify`](https://gohugo.io/functions/emojify/) 方法可以直接在模板中调用, 或者使用 [行内 Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
+[`emojify`](https://gohugo.io/functions/emojify/) 方法可以直接在模板中调用, 或者使用[行内 Shortcodes](https://gohugo.io/templates/shortcode-templates#inline-shortcodes).
 
-要全局使用 emoji, 需要在你的网站 [配置](https://gohugo.io/getting-started/configuration/) 中设置 `enableEmoji` 为 `true`,
+要全局使用 emoji, 需要在你的[网站配置](https://gohugo.io/getting-started/configuration/)中设置 `enableEmoji` 为 `true`,
 然后你就可以直接在文章中输入 emoji 的代码.
 
 它们以**冒号**开头和结尾,并且包含 emoji 的 **代码**:
@@ -39,6 +39,12 @@ Emoji 可以通过多种方式在 Hugo 项目中启用.
 
 真开心! :joy:
 
+{{< admonition tip "使用 Twemoji" >}}
+这个页面使用了 `twemoji` 来使 emoji 具有一致的美观性.
+
+请在文章的[前置参数](../theme-documentation-content#front-matter) 或 [网站配置](../theme-documentation-basics#site-configuration) 的 `params.page` 部分中将 `twemoji` 设置为 `true` 来使用 :(far fa-grin-tongue-wink fa-fw): Twemoji.
+{{< /admonition >}}
+
 ## Emoji 符号清单
 
 以下清单是 emoji 代码的非常有用的参考.
diff --git a/exampleSite/content/posts/theme-documentation-basics.en.md b/exampleSite/content/posts/theme-documentation-basics.en.md
index 3b65891f..ddacc901 100644
--- a/exampleSite/content/posts/theme-documentation-basics.en.md
+++ b/exampleSite/content/posts/theme-documentation-basics.en.md
@@ -29,7 +29,7 @@ Thanks to the simplicity of Hugo, [Hugo](https://gohugo.io/) is the only depende
 Just install latest version of [:(far fa-file-archive fa-fw): Hugo extended (> 0.62.0)](https://gohugo.io/getting-started/installing/) for your OS (**Windows**, **Linux**, **macOS**).
 
 {{< admonition note "Why not support earlier versions of Hugo?" >}}
-Since [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup/#markdown-render-hooks) was introduced in the [Hugo Christmas Edition](https://gohugo.io/news/0.62.0-relnotes/), this theme only supports Hugo versions above **0.62.0**.
+Since [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks) was introduced in the [Hugo Christmas Edition](https://gohugo.io/news/0.62.0-relnotes/), this theme only supports Hugo versions above **0.62.0**.
 {{< /admonition >}}
 
 {{< admonition note "Why need the Hugo extended version?" >}}
@@ -181,9 +181,7 @@ Alternatively, you can use [AWS Amplify](https://gohugo.io/hosting-and-deploymen
 
 In addition to [Hugo global configuration](https://gohugo.io/overview/configuration/) and [menu configuration](#basic-configuration), **LoveIt** lets you define the following parameters in your site configuration (here is a `config.toml`, whose values are default).
 
-{{< admonition >}}
-Note that some of these parameters are explained in details in other sections of this documentation.
-{{< /admonition >}}
+Please open the code block below to view the complete sample configuration :(far fa-hand-point-down fa-fw)::
 
 ```toml
 [params]
@@ -420,44 +418,44 @@ Note that some of these parameters are explained in details in other sections of
       lightStyle = "mapbox://styles/mapbox/light-v9"
       # style for the dark theme
       darkStyle = "mapbox://styles/mapbox/dark-v9"
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol" NavigationControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol" NavigationControl >}}
       navigation = true
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol" GeolocateControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol" GeolocateControl >}}
       geolocate = true
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol" ScaleControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol" ScaleControl >}}
       scale = true
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol" FullscreenControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol" FullscreenControl >}}
       fullscreen = true
     # {{< version 0.2.0 changed >}} social share links in post page
     [params.page.share]
       enable = true
       Twitter = true
       Facebook = true
-      Linkedin = true
+      Linkedin = false
       Whatsapp = true
-      Pinterest = true
-      # Tumblr = true
-      HackerNews = true
-      # Reddit = true
-      # VK = true
-      # Buffer = true
-      # Xing = true
-      # Line = true
-      # Instapaper = true
-      # Pocket = true
-      # Digg = true
-      # Stumbleupon = true
-      # Flipboard = true
-      # Weibo = true
-      # Renren = true
-      # Myspace = true
-      # Blogger = true
-      # Baidu = true
-      # Odnoklassniki = true
-      # Evernote = true
-      # Skype = true
-      # Trello = true
-      # Mix = true
+      Pinterest = false
+      Tumblr = false
+      HackerNews = false
+      Reddit = false
+      VK = false
+      Buffer = false
+      Xing = false
+      Line = true
+      Instapaper = false
+      Pocket = false
+      Digg = false
+      Stumbleupon = false
+      Flipboard = false
+      Weibo = true
+      Renren = false
+      Myspace = true
+      Blogger = true
+      Baidu = false
+      Odnoklassniki = false
+      Evernote = true
+      Skype = false
+      Trello = false
+      Mix = false
     # {{< version 0.2.0 changed >}} Comment config
     [params.page.comment]
       enable = true
@@ -652,7 +650,7 @@ Note that some of these parameters are explained in details in other sections of
   filename = "sitemap.xml"
   priority = 0.5
 
-# {{< link "https://gohugo.io/content-management/urls/#permalinks" "Permalinks config" >}}
+# {{< link "https://gohugo.io/content-management/urls#permalinks" "Permalinks config" >}}
 [Permalinks]
   # posts = ":year/:month/:filename"
   posts = ":filename"
@@ -688,6 +686,19 @@ Note that some of these parameters are explained in details in other sections of
   taxonomyTerm = ["HTML"]
 ```
 
+{{< admonition >}}
+Note that some of these parameters are explained in details in other sections of this documentation.
+{{< /admonition >}}
+
+{{< admonition note "Hugo environments" >}}
+Default environments are `development` with `hugo serve` and `production` with `hugo`.
+
+Due to limitations in the local `development` environment,
+the **comment system**, **CDN** and **fingerprint** will not be enabled in the `development` environment.
+
+You could enable these features with `hugo serve -e production`.
+{{< /admonition >}}
+
 {{< admonition tip "Tips about CDN Configuration" >}}
 Full HTML tags or URLs are supported for CDN configuration:
 
@@ -903,7 +914,7 @@ Be aware that only translated pages are displayed in menu. It’s not replaced w
 {{< /admonition >}}
 
 {{< admonition tip >}}
-Use [Front Matter parameter](https://gohugo.io/content-management/multilingual/#translate-your-content) to translate urls too.
+Use [Front Matter parameter](https://gohugo.io/content-management/multilingual#translate-your-content) to translate urls too.
 {{< /admonition >}}
 
 ### 4.3 Overwrite Translation Strings
@@ -949,6 +960,8 @@ Here is the search configuration in your [site configuration](#site-configuratio
 ```
 
 {{< admonition note "How to choose the type of search engine?" >}}
+The following is a comparison of two search engines:
+
 * `lunr`: simple, no need to synchronize `index.json`, no limit for `contentLength`,
   but high bandwidth and low performance (Especially for Chinese which needs a large segmentit library)
 * `algolia`: high performance and low bandwidth, but need to synchronize `index.json` and limit for `contentLength`
diff --git a/exampleSite/content/posts/theme-documentation-basics.fr.md b/exampleSite/content/posts/theme-documentation-basics.fr.md
index 0b139458..9ed83960 100644
--- a/exampleSite/content/posts/theme-documentation-basics.fr.md
+++ b/exampleSite/content/posts/theme-documentation-basics.fr.md
@@ -34,7 +34,7 @@ Thanks to the simplicity of Hugo, [Hugo](https://gohugo.io/) is the only depende
 Just install latest version of [:(far fa-file-archive fa-fw): Hugo extended (> 0.62.0)](https://gohugo.io/getting-started/installing/) for your OS (**Windows**, **Linux**, **macOS**).
 
 {{< admonition note "Why not support earlier versions of Hugo?" >}}
-Since [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup/#markdown-render-hooks) was introduced in the [Hugo Christmas Edition](https://gohugo.io/news/0.62.0-relnotes/), this theme only supports Hugo versions above **0.62.0**.
+Since [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks) was introduced in the [Hugo Christmas Edition](https://gohugo.io/news/0.62.0-relnotes/), this theme only supports Hugo versions above **0.62.0**.
 {{< /admonition >}}
 
 {{< admonition note "Why need the Hugo extended version?" >}}
@@ -186,9 +186,7 @@ Alternatively, you can use [AWS Amplify](https://gohugo.io/hosting-and-deploymen
 
 In addition to [Hugo global configuration](https://gohugo.io/overview/configuration/) and [menu configuration](#basic-configuration), **LoveIt** lets you define the following parameters in your site configuration (here is a `config.toml`, whose values are default).
 
-{{< admonition >}}
-Note that some of these parameters are explained in details in other sections of this documentation.
-{{< /admonition >}}
+Please open the code block below to view the complete sample configuration :(far fa-hand-point-down fa-fw)::
 
 ```toml
 [params]
@@ -425,44 +423,44 @@ Note that some of these parameters are explained in details in other sections of
       lightStyle = "mapbox://styles/mapbox/light-v9"
       # style for the dark theme
       darkStyle = "mapbox://styles/mapbox/dark-v9"
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol" NavigationControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol" NavigationControl >}}
       navigation = true
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol" GeolocateControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol" GeolocateControl >}}
       geolocate = true
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol" ScaleControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol" ScaleControl >}}
       scale = true
-      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol" FullscreenControl >}}
+      # whether to add {{< link "https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol" FullscreenControl >}}
       fullscreen = true
     # {{< version 0.2.0 changed >}} social share links in post page
     [params.page.share]
       enable = true
       Twitter = true
       Facebook = true
-      Linkedin = true
+      Linkedin = false
       Whatsapp = true
-      Pinterest = true
-      # Tumblr = true
-      HackerNews = true
-      # Reddit = true
-      # VK = true
-      # Buffer = true
-      # Xing = true
-      # Line = true
-      # Instapaper = true
-      # Pocket = true
-      # Digg = true
-      # Stumbleupon = true
-      # Flipboard = true
-      # Weibo = true
-      # Renren = true
-      # Myspace = true
-      # Blogger = true
-      # Baidu = true
-      # Odnoklassniki = true
-      # Evernote = true
-      # Skype = true
-      # Trello = true
-      # Mix = true
+      Pinterest = false
+      Tumblr = false
+      HackerNews = false
+      Reddit = false
+      VK = false
+      Buffer = false
+      Xing = false
+      Line = true
+      Instapaper = false
+      Pocket = false
+      Digg = false
+      Stumbleupon = false
+      Flipboard = false
+      Weibo = true
+      Renren = false
+      Myspace = true
+      Blogger = true
+      Baidu = false
+      Odnoklassniki = false
+      Evernote = true
+      Skype = false
+      Trello = false
+      Mix = false
     # {{< version 0.2.0 changed >}} Comment config
     [params.page.comment]
       enable = true
@@ -657,7 +655,7 @@ Note that some of these parameters are explained in details in other sections of
   filename = "sitemap.xml"
   priority = 0.5
 
-# {{< link "https://gohugo.io/content-management/urls/#permalinks" "Permalinks config" >}}
+# {{< link "https://gohugo.io/content-management/urls#permalinks" "Permalinks config" >}}
 [Permalinks]
   # posts = ":year/:month/:filename"
   posts = ":filename"
@@ -693,6 +691,19 @@ Note that some of these parameters are explained in details in other sections of
   taxonomyTerm = ["HTML"]
 ```
 
+{{< admonition >}}
+Note that some of these parameters are explained in details in other sections of this documentation.
+{{< /admonition >}}
+
+{{< admonition note "Hugo environments" >}}
+Default environments are `development` with `hugo serve` and `production` with `hugo`.
+
+Due to limitations in the local `development` environment,
+the **comment system**, **CDN** and **fingerprint** will not be enabled in the `development` environment.
+
+You could enable these features with `hugo serve -e production`.
+{{< /admonition >}}
+
 {{< admonition tip "Tips about CDN Configuration" >}}
 Full HTML tags or URLs are supported for CDN configuration:
 
@@ -908,7 +919,7 @@ Be aware that only translated pages are displayed in menu. It’s not replaced w
 {{< /admonition >}}
 
 {{< admonition tip >}}
-Use [Front Matter parameter](https://gohugo.io/content-management/multilingual/#translate-your-content) to translate urls too.
+Use [Front Matter parameter](https://gohugo.io/content-management/multilingual#translate-your-content) to translate urls too.
 {{< /admonition >}}
 
 ### 4.3 Overwrite Translation Strings
@@ -954,6 +965,8 @@ Here is the search configuration in your [site configuration](#site-configuratio
 ```
 
 {{< admonition note "How to choose the type of search engine?" >}}
+The following is a comparison of two search engines:
+
 * `lunr`: simple, no need to synchronize `index.json`, no limit for `contentLength`,
   but high bandwidth and low performance (Especially for Chinese which needs a large segmentit library)
 * `algolia`: high performance and low bandwidth, but need to synchronize `index.json` and limit for `contentLength`
diff --git a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md
index 1976dfe4..95b0cbb8 100644
--- a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md
+++ b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md
@@ -29,7 +29,7 @@ toc:
 直接安装满足你操作系统 (**Windows**, **Linux**, **macOS**) 的最新版本 [:(far fa-file-archive fa-fw): Hugo extended (> 0.62.0)](https://gohugo.io/getting-started/installing/).
 
 {{< admonition note "为什么不支持早期版本的 Hugo?" >}}
-由于 [Markdown 渲染钩子函数](https://gohugo.io/getting-started/configuration-markup/#markdown-render-hooks) 在 [Hugo 圣诞节版本](https://gohugo.io/news/0.62.0-relnotes/) 中被引入, 本主题只支持高于 **0.62.0** 的 Hugo 版本.
+由于 [Markdown 渲染钩子函数](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks) 在 [Hugo 圣诞节版本](https://gohugo.io/news/0.62.0-relnotes/) 中被引入, 本主题只支持高于 **0.62.0** 的 Hugo 版本.
 {{< /admonition >}}
 
 {{< admonition note "为什么需要 Hugo extended 版本?" >}}
@@ -184,9 +184,7 @@ hugo
 
 除了 [Hugo 全局配置](https://gohugo.io/overview/configuration/) 和 [菜单配置](#basic-configuration) 之外, **LoveIt** 主题还允许您在网站配置中定义以下参数 (这是一个示例 `config.toml`, 其内容为默认值).
 
-{{< admonition >}}
-请注意, 本文档其他部分将详细解释其中一些参数.
-{{< /admonition >}}
+请打开下面的代码块查看完整的示例配置 :(far fa-hand-point-down fa-fw)::
 
 ```toml
 [params]
@@ -423,44 +421,44 @@ hugo
       lightStyle = "mapbox://styles/mapbox/light-v9"
       # 深色主题的地图样式
       darkStyle = "mapbox://styles/mapbox/dark-v9"
-      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol" NavigationControl >}}
+      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol" NavigationControl >}}
       navigation = true
-      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol" GeolocateControl >}}
+      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol" GeolocateControl >}}
       geolocate = true
-      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol" ScaleControl >}}
+      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol" ScaleControl >}}
       scale = true
-      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol" FullscreenControl >}}
+      # 是否添加 {{< link "https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol" FullscreenControl >}}
       fullscreen = true
     # {{< version 0.2.0 changed >}} 文章页面的分享信息设置
     [params.page.share]
       enable = true
       Twitter = true
       Facebook = true
-      # Linkedin = true
-      # Whatsapp = true
-      # Pinterest = true
-      # Tumblr = true
-      # HackerNews = true
-      # Reddit = true
-      # VK = true
-      # Buffer = true
-      # Xing = true
-      # Line = true
-      # Instapaper = true
-      # Pocket = true
-      # Digg = true
-      # Stumbleupon = true
-      # Flipboard = true
+      Linkedin = false
+      Whatsapp = true
+      Pinterest = false
+      Tumblr = false
+      HackerNews = false
+      Reddit = false
+      VK = false
+      Buffer = false
+      Xing = false
+      Line = true
+      Instapaper = false
+      Pocket = false
+      Digg = false
+      Stumbleupon = false
+      Flipboard = false
       Weibo = true
-      # Renren = true
-      # Myspace = true
-      # Blogger = true
-      # Baidu = true
-      # Odnoklassniki = true
+      Renren = false
+      Myspace = true
+      Blogger = true
+      Baidu = false
+      Odnoklassniki = false
       Evernote = true
-      # Skype = true
-      # Trello = true
-      # Mix = true
+      Skype = false
+      Trello = false
+      Mix = false
     # {{< version 0.2.0 changed >}} 评论系统设置
     [params.page.comment]
       enable = true
@@ -655,7 +653,7 @@ hugo
   filename = "sitemap.xml"
   priority = 0.5
 
-# {{< link "https://gohugo.io/content-management/urls/#permalinks" "Permalinks 配置" >}}
+# {{< link "https://gohugo.io/content-management/urls#permalinks" "Permalinks 配置" >}}
 [Permalinks]
   # posts = ":year/:month/:filename"
   posts = ":filename"
@@ -691,6 +689,20 @@ hugo
   taxonomyTerm = ["HTML"]
 ```
 
+{{< admonition >}}
+请注意, 本文档其他部分将详细解释其中一些参数.
+{{< /admonition >}}
+
+{{< admonition note "Hugo 的运行环境" >}}
+`hugo serve` 的默认运行环境是 `development`,
+而 `hugo` 的默认运行环境是 `production`.
+
+由于本地 `development` 环境的限制,
+**评论系统**, **CDN** 和 **fingerprint** 不会在 `development` 环境下启用.
+
+你可以使用 `hugo serve -e production` 命令来开启这些特性.
+{{< /admonition >}}
+
 {{< admonition tip "关于 CDN 配置的技巧" >}}
 在 CDN 的配置中, 完整的 HTML 标签和 URL 都是支持的:
 
@@ -906,7 +918,7 @@ defaultContentLanguage = "zh-cn"
 {{< /admonition >}}
 
 {{< admonition tip >}}
-也可以使用 [文章前置参数](https://gohugo.io/content-management/multilingual/#translate-your-content) 来翻译网址.
+也可以使用 [文章前置参数](https://gohugo.io/content-management/multilingual#translate-your-content) 来翻译网址.
 {{< /admonition >}}
 
 ### 4.3 修改默认的翻译字符串
@@ -953,6 +965,8 @@ defaultContentLanguage = "zh-cn"
 ```
 
 {{< admonition note "怎样选择搜索引擎的类型?" >}}
+以下是两种搜索引擎的对比:
+
 * `lunr`: 简单, 无需同步 `index.json`, 没有 `contentLength` 的限制, 但占用带宽大且性能低 (特别是中文需要一个较大的分词依赖库)
 * `algolia`: 高性能并且占用带宽低, 但需要同步 `index.json` 且有 `contentLength` 的限制
 {{< /admonition >}}
diff --git a/exampleSite/content/posts/theme-documentation-built-in-shortcodes.en.md b/exampleSite/content/posts/theme-documentation-built-in-shortcodes.en.md
index 1621cc0c..f61d94a7 100644
--- a/exampleSite/content/posts/theme-documentation-built-in-shortcodes.en.md
+++ b/exampleSite/content/posts/theme-documentation-built-in-shortcodes.en.md
@@ -30,7 +30,7 @@ Hugo ships with a set of predefined shortcodes that represent very common usage.
 
 ## figure {#figure}
 
-[Documentation of `figure`](https://gohugo.io/content-management/shortcodes/#figure)
+[Documentation of `figure`](https://gohugo.io/content-management/shortcodes#figure)
 
 Example `figure` input:
 
@@ -55,7 +55,7 @@ The HTML looks like this:
 
 ## gist
 
-[Documentation of `gist`](https://gohugo.io/content-management/shortcodes/#gist)
+[Documentation of `gist`](https://gohugo.io/content-management/shortcodes#gist)
 
 Example `gist` input:
 
@@ -75,7 +75,7 @@ The HTML looks like this:
 
 ## highlight
 
-[Documentation of `highlight`](https://gohugo.io/content-management/shortcodes/#instagram)
+[Documentation of `highlight`](https://gohugo.io/content-management/shortcodes#instagram)
 
 Example `highlight` input:
 
@@ -107,7 +107,7 @@ The rendered output looks like this:
 
 ## instagram
 
-[Documentation of `instagram`](https://gohugo.io/content-management/shortcodes/#instagram)
+[Documentation of `instagram`](https://gohugo.io/content-management/shortcodes#instagram)
 
 Example `instagram` input:
 
@@ -121,7 +121,7 @@ The rendered output looks like this:
 
 ## param
 
-[Documentation of `param`](https://gohugo.io/content-management/shortcodes/#param)
+[Documentation of `param`](https://gohugo.io/content-management/shortcodes#param)
 
 Example `param` input:
 
@@ -135,11 +135,11 @@ The rendered output looks like this:
 
 ## ref and relref {#ref-and-relref}
 
-[Documentation of `ref` and `relref`](https://gohugo.io/content-management/shortcodes/#ref-and-relref)
+[Documentation of `ref` and `relref`](https://gohugo.io/content-management/shortcodes#ref-and-relref)
 
 ## tweet
 
-[Documentation of `tweet`](https://gohugo.io/content-management/shortcodes/#tweet)
+[Documentation of `tweet`](https://gohugo.io/content-management/shortcodes#tweet)
 
 Example `tweet` input:
 
@@ -153,7 +153,7 @@ The rendered output looks like this:
 
 ## vimeo
 
-[Documentation of `vimeo`](https://gohugo.io/content-management/shortcodes/#vimeo)
+[Documentation of `vimeo`](https://gohugo.io/content-management/shortcodes#vimeo)
 
 Example `vimeo` input:
 
@@ -167,7 +167,7 @@ The rendered output looks like this:
 
 ## youtube
 
-[Documentation of `youtube`](https://gohugo.io/content-management/shortcodes/#youtube)
+[Documentation of `youtube`](https://gohugo.io/content-management/shortcodes#youtube)
 
 Example `youtube` input:
 
diff --git a/exampleSite/content/posts/theme-documentation-built-in-shortcodes.fr.md b/exampleSite/content/posts/theme-documentation-built-in-shortcodes.fr.md
index 4a04869f..e9752db5 100644
--- a/exampleSite/content/posts/theme-documentation-built-in-shortcodes.fr.md
+++ b/exampleSite/content/posts/theme-documentation-built-in-shortcodes.fr.md
@@ -35,7 +35,7 @@ Hugo ships with a set of predefined shortcodes that represent very common usage.
 
 ## figure {#figure}
 
-[Documentation of `figure`](https://gohugo.io/content-management/shortcodes/#figure)
+[Documentation of `figure`](https://gohugo.io/content-management/shortcodes#figure)
 
 Example `figure` input:
 
@@ -60,7 +60,7 @@ The HTML looks like this:
 
 ## gist
 
-[Documentation of `gist`](https://gohugo.io/content-management/shortcodes/#gist)
+[Documentation of `gist`](https://gohugo.io/content-management/shortcodes#gist)
 
 Example `gist` input:
 
@@ -80,7 +80,7 @@ The HTML looks like this:
 
 ## highlight
 
-[Documentation of `highlight`](https://gohugo.io/content-management/shortcodes/#instagram)
+[Documentation of `highlight`](https://gohugo.io/content-management/shortcodes#instagram)
 
 Example `highlight` input:
 
@@ -112,7 +112,7 @@ The rendered output looks like this:
 
 ## instagram
 
-[Documentation of `instagram`](https://gohugo.io/content-management/shortcodes/#instagram)
+[Documentation of `instagram`](https://gohugo.io/content-management/shortcodes#instagram)
 
 Example `instagram` input:
 
@@ -126,7 +126,7 @@ The rendered output looks like this:
 
 ## param
 
-[Documentation of `param`](https://gohugo.io/content-management/shortcodes/#param)
+[Documentation of `param`](https://gohugo.io/content-management/shortcodes#param)
 
 Example `param` input:
 
@@ -140,11 +140,11 @@ The rendered output looks like this:
 
 ## ref and relref {#ref-and-relref}
 
-[Documentation of `ref` and `relref`](https://gohugo.io/content-management/shortcodes/#ref-and-relref)
+[Documentation of `ref` and `relref`](https://gohugo.io/content-management/shortcodes#ref-and-relref)
 
 ## tweet
 
-[Documentation of `tweet`](https://gohugo.io/content-management/shortcodes/#tweet)
+[Documentation of `tweet`](https://gohugo.io/content-management/shortcodes#tweet)
 
 Example `tweet` input:
 
@@ -158,7 +158,7 @@ The rendered output looks like this:
 
 ## vimeo
 
-[Documentation of `vimeo`](https://gohugo.io/content-management/shortcodes/#vimeo)
+[Documentation of `vimeo`](https://gohugo.io/content-management/shortcodes#vimeo)
 
 Example `vimeo` input:
 
@@ -172,7 +172,7 @@ The rendered output looks like this:
 
 ## youtube
 
-[Documentation of `youtube`](https://gohugo.io/content-management/shortcodes/#youtube)
+[Documentation of `youtube`](https://gohugo.io/content-management/shortcodes#youtube)
 
 Example `youtube` input:
 
diff --git a/exampleSite/content/posts/theme-documentation-built-in-shortcodes.zh-cn.md b/exampleSite/content/posts/theme-documentation-built-in-shortcodes.zh-cn.md
index c67eaa45..85e21fff 100644
--- a/exampleSite/content/posts/theme-documentation-built-in-shortcodes.zh-cn.md
+++ b/exampleSite/content/posts/theme-documentation-built-in-shortcodes.zh-cn.md
@@ -31,7 +31,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## figure {#figure}
 
-[`figure` 的文档](https://gohugo.io/content-management/shortcodes/#figure)
+[`figure` 的文档](https://gohugo.io/content-management/shortcodes#figure)
 
 一个 `figure` 示例:
 
@@ -56,7 +56,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## gist
 
-[`gist` 的文档](https://gohugo.io/content-management/shortcodes/#gist)
+[`gist` 的文档](https://gohugo.io/content-management/shortcodes#gist)
 
 一个 `gist` 示例:
 
@@ -76,7 +76,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## highlight
 
-[`highlight` 的文档](https://gohugo.io/content-management/shortcodes/#instagram)
+[`highlight` 的文档](https://gohugo.io/content-management/shortcodes#instagram)
 
 一个 `highlight` 示例:
 
@@ -108,7 +108,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## instagram
 
-[`instagram` 的文档](https://gohugo.io/content-management/shortcodes/#instagram)
+[`instagram` 的文档](https://gohugo.io/content-management/shortcodes#instagram)
 
 一个 `instagram` 示例:
 
@@ -122,7 +122,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## param
 
-[`param` 的文档](https://gohugo.io/content-management/shortcodes/#param)
+[`param` 的文档](https://gohugo.io/content-management/shortcodes#param)
 
 一个 `param` 示例:
 
@@ -136,11 +136,11 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## ref 和 relref {#ref-and-relref}
 
-[`ref` 和 `relref` 的文档](https://gohugo.io/content-management/shortcodes/#ref-and-relref)
+[`ref` 和 `relref` 的文档](https://gohugo.io/content-management/shortcodes#ref-and-relref)
 
 ## tweet
 
-[`tweet` 的文档](https://gohugo.io/content-management/shortcodes/#tweet)
+[`tweet` 的文档](https://gohugo.io/content-management/shortcodes#tweet)
 
 一个 `tweet` 示例:
 
@@ -154,7 +154,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## vimeo
 
-[`vimeo` 的文档](https://gohugo.io/content-management/shortcodes/#vimeo)
+[`vimeo` 的文档](https://gohugo.io/content-management/shortcodes#vimeo)
 
 一个 `vimeo` 示例:
 
@@ -168,7 +168,7 @@ Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见
 
 ## youtube
 
-[`youtube` 的文档](https://gohugo.io/content-management/shortcodes/#youtube)
+[`youtube` 的文档](https://gohugo.io/content-management/shortcodes#youtube)
 
 一个 `youtube` 示例:
 
diff --git a/exampleSite/content/posts/theme-documentation-content.en.md b/exampleSite/content/posts/theme-documentation-content.en.md
index e8d3a265..f7373df2 100644
--- a/exampleSite/content/posts/theme-documentation-content.en.md
+++ b/exampleSite/content/posts/theme-documentation-content.en.md
@@ -38,7 +38,7 @@ A few suggestions to help you get a good looking site quickly:
 
 {{< admonition >}}
 **Not all** of the below front matters need to be set in each of your posts.
-It is necessary only if the front matters and the `page` part in your [site configuration](../theme-documentation-basics/#site-configuration) are inconsistent.
+It is necessary only if the front matters and the `page` part in your [site configuration](../theme-documentation-basics#site-configuration) are inconsistent.
 {{< /admonition >}}
 
 Here is a front matter example:
@@ -92,7 +92,7 @@ comment:
 
 * **title**: the title for the content.
 * **subtitle**: {{< version 0.2.0 >}} the subtitle for the content.
-* **date**: the datetime assigned to this page, which is usually fetched from the `date` field in front matter, but this behaviour is configurabl in the [site configuration](../theme-documentation-basics/#site-configuration).
+* **date**: the datetime assigned to this page, which is usually fetched from the `date` field in front matter, but this behaviour is configurabl in the [site configuration](../theme-documentation-basics#site-configuration).
 * **lastmod**: the datetime at which the content was last modified.
 * **draft**: if `true`, the content will not be rendered unless the `--buildDrafts`/`-D` flag is passed to the `hugo` command.
 * **author**: the author for the content.
@@ -114,12 +114,12 @@ comment:
 * **fontawesome**: {{< version 0.2.0 >}} if `true`, the content will enable the [Font Awesome extended syntax](#fontawesome).
 * **linkToMarkdown**: if `true`, the footer of the content will show the link to the orignal Markdown file.
 
-* **toc**: {{< version 0.2.0 changed >}} the same as the `params.page.toc` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **code**: {{< version 0.2.0 >}} the same as the `params.page.code` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **math**: {{< version 0.2.0 changed >}} the same as the `params.page.math` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **mapbox**: {{< version 0.2.0 >}} the same as the `params.page.mapbox` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **share**: the same as the `params.page.share` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **comment**: {{< version 0.2.0 changed >}} the same as the `params.page.comment` part in the [site configuration](../theme-documentation-basics/#site-configuration).
+* **toc**: {{< version 0.2.0 changed >}} the same as the `params.page.toc` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **code**: {{< version 0.2.0 >}} the same as the `params.page.code` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **math**: {{< version 0.2.0 changed >}} the same as the `params.page.math` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **mapbox**: {{< version 0.2.0 >}} the same as the `params.page.mapbox` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **share**: the same as the `params.page.share` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **comment**: {{< version 0.2.0 changed >}} the same as the `params.page.comment` part in the [site configuration](../theme-documentation-basics#site-configuration).
 
 ## 3 Content Summaries
 
@@ -131,9 +131,9 @@ comment:
 
 By default, Hugo automatically takes the first 70 words of your content as its summary.
 
-You may customize the summary length by setting `summaryLength` in the [site configuration](../theme-documentation-basics/#site-configuration).
+You may customize the summary length by setting `summaryLength` in the [site configuration](../theme-documentation-basics#site-configuration).
 
-If you are creating content in a [CJK]^(Chinese/Japanese/Korean) language and want to use Hugo’s automatic summary splitting, set `hasCJKLanguage` to `true` in your [site configuration](../theme-documentation-basics/#site-configuration).
+If you are creating content in a [CJK]^(Chinese/Japanese/Korean) language and want to use Hugo’s automatic summary splitting, set `hasCJKLanguage` to `true` in your [site configuration](../theme-documentation-basics#site-configuration).
 
 ### Manual Summary Splitting
 
@@ -184,7 +184,7 @@ This part is shown in the [emoji support page](../emoji-support/).
 
 **LoveIt** theme supports mathematical formulas based on [$ \KaTeX $](https://katex.org/).
 
-Set the property `enable = true` under `[params.math]` in your [site configuration](../theme-documentation-basics/#site-configuration)
+Set the property `enable = true` under `[params.math]` in your [site configuration](../theme-documentation-basics#site-configuration)
 and the property `math: true` of the article front matter to enable the automatic rendering of mathematical formulas.
 
 {{< admonition tip >}}
@@ -220,7 +220,7 @@ The rendered output looks like this:
 $ c = \pm\sqrt{a^2 + b^2} $ and \\( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^{2 \pi i \xi x} d \xi \\)
 
 {{< admonition tip >}}
-You can add more block and inline delimiters in your [site configuration](../theme-documentation-basics/#site-configuration).
+You can add more block and inline delimiters in your [site configuration](../theme-documentation-basics#site-configuration).
 {{< /admonition >}}
 
 #### Copy-tex
@@ -229,7 +229,7 @@ You can add more block and inline delimiters in your [site configuration](../the
 
 By the extension, when selecting and copying $ \KaTeX $ rendered elements, copies their $ \LaTeX $ source to the clipboard.
 
-Set the property `copyTex = true` under `[params.math]` in your [site configuration](../theme-documentation-basics/#site-configuration) to enable Copy-tex.
+Set the property `copyTex = true` under `[params.math]` in your [site configuration](../theme-documentation-basics#site-configuration) to enable Copy-tex.
 
 Select and copy the formula rendered in the previous section, and you can find that the copied content is the LaTeX source code.
 
@@ -239,7 +239,7 @@ Select and copy the formula rendered in the previous section, and you can find t
 
 By the extension, you can write beautiful chemical equations easily in the article.
 
-Set the property `mhchem = true` under `[params.math]` in your [site configuration](../theme-documentation-basics/#site-configuration) to enable mhchem.
+Set the property `mhchem = true` under `[params.math]` in your [site configuration](../theme-documentation-basics#site-configuration) to enable mhchem.
 
 ```markdown
 $$ \ce{CO2 + C -> 2 CO} $$
diff --git a/exampleSite/content/posts/theme-documentation-content.fr.md b/exampleSite/content/posts/theme-documentation-content.fr.md
index dab79165..bf2bdae1 100644
--- a/exampleSite/content/posts/theme-documentation-content.fr.md
+++ b/exampleSite/content/posts/theme-documentation-content.fr.md
@@ -43,7 +43,7 @@ A few suggestions to help you get a good looking site quickly:
 
 {{< admonition >}}
 **Not all** of the below front matters need to be set in each of your posts.
-It is necessary only if the front matters and the `page` part in your [site configuration](../theme-documentation-basics/#site-configuration) are inconsistent.
+It is necessary only if the front matters and the `page` part in your [site configuration](../theme-documentation-basics#site-configuration) are inconsistent.
 {{< /admonition >}}
 
 Here is a front matter example:
@@ -97,7 +97,7 @@ comment:
 
 * **title**: the title for the content.
 * **subtitle**: {{< version 0.2.0 >}} the subtitle for the content.
-* **date**: the datetime assigned to this page, which is usually fetched from the `date` field in front matter, but this behaviour is configurabl in the [site configuration](../theme-documentation-basics/#site-configuration).
+* **date**: the datetime assigned to this page, which is usually fetched from the `date` field in front matter, but this behaviour is configurabl in the [site configuration](../theme-documentation-basics#site-configuration).
 * **lastmod**: the datetime at which the content was last modified.
 * **draft**: if `true`, the content will not be rendered unless the `--buildDrafts`/`-D` flag is passed to the `hugo` command.
 * **author**: the author for the content.
@@ -119,12 +119,12 @@ comment:
 * **fontawesome**: {{< version 0.2.0 >}} if `true`, the content will enable the [Font Awesome extended syntax](#fontawesome).
 * **linkToMarkdown**: if `true`, the footer of the content will show the link to the orignal Markdown file.
 
-* **toc**: {{< version 0.2.0 changed >}} the same as the `params.page.toc` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **code**: {{< version 0.2.0 >}} the same as the `params.page.code` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **math**: {{< version 0.2.0 changed >}} the same as the `params.page.math` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **mapbox**: {{< version 0.2.0 >}} the same as the `params.page.mapbox` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **share**: the same as the `params.page.share` part in the [site configuration](../theme-documentation-basics/#site-configuration).
-* **comment**: {{< version 0.2.0 changed >}} the same as the `params.page.comment` part in the [site configuration](../theme-documentation-basics/#site-configuration).
+* **toc**: {{< version 0.2.0 changed >}} the same as the `params.page.toc` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **code**: {{< version 0.2.0 >}} the same as the `params.page.code` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **math**: {{< version 0.2.0 changed >}} the same as the `params.page.math` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **mapbox**: {{< version 0.2.0 >}} the same as the `params.page.mapbox` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **share**: the same as the `params.page.share` part in the [site configuration](../theme-documentation-basics#site-configuration).
+* **comment**: {{< version 0.2.0 changed >}} the same as the `params.page.comment` part in the [site configuration](../theme-documentation-basics#site-configuration).
 
 ## 3 Content Summaries
 
@@ -136,9 +136,9 @@ comment:
 
 By default, Hugo automatically takes the first 70 words of your content as its summary.
 
-You may customize the summary length by setting `summaryLength` in the [site configuration](../theme-documentation-basics/#site-configuration).
+You may customize the summary length by setting `summaryLength` in the [site configuration](../theme-documentation-basics#site-configuration).
 
-If you are creating content in a [CJK]^(Chinese/Japanese/Korean) language and want to use Hugo’s automatic summary splitting, set `hasCJKLanguage` to `true` in your [site configuration](../theme-documentation-basics/#site-configuration).
+If you are creating content in a [CJK]^(Chinese/Japanese/Korean) language and want to use Hugo’s automatic summary splitting, set `hasCJKLanguage` to `true` in your [site configuration](../theme-documentation-basics#site-configuration).
 
 ### Manual Summary Splitting
 
@@ -189,7 +189,7 @@ This part is shown in the [emoji support page](../emoji-support/).
 
 **LoveIt** theme supports mathematical formulas based on [$ \KaTeX $](https://katex.org/).
 
-Set the property `enable = true` under `[params.math]` in your [site configuration](../theme-documentation-basics/#site-configuration)
+Set the property `enable = true` under `[params.math]` in your [site configuration](../theme-documentation-basics#site-configuration)
 and the property `math: true` of the article front matter to enable the automatic rendering of mathematical formulas.
 
 {{< admonition tip >}}
@@ -225,7 +225,7 @@ The rendered output looks like this:
 $ c = \pm\sqrt{a^2 + b^2} $ and \\( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^{2 \pi i \xi x} d \xi \\)
 
 {{< admonition tip >}}
-You can add more block and inline delimiters in your [site configuration](../theme-documentation-basics/#site-configuration).
+You can add more block and inline delimiters in your [site configuration](../theme-documentation-basics#site-configuration).
 {{< /admonition >}}
 
 #### Copy-tex
@@ -234,7 +234,7 @@ You can add more block and inline delimiters in your [site configuration](../the
 
 By the extension, when selecting and copying $ \KaTeX $ rendered elements, copies their $ \LaTeX $ source to the clipboard.
 
-Set the property `copyTex = true` under `[params.math]` in your [site configuration](../theme-documentation-basics/#site-configuration) to enable Copy-tex.
+Set the property `copyTex = true` under `[params.math]` in your [site configuration](../theme-documentation-basics#site-configuration) to enable Copy-tex.
 
 Select and copy the formula rendered in the previous section, and you can find that the copied content is the LaTeX source code.
 
@@ -244,7 +244,7 @@ Select and copy the formula rendered in the previous section, and you can find t
 
 By the extension, you can write beautiful chemical equations easily in the article.
 
-Set the property `mhchem = true` under `[params.math]` in your [site configuration](../theme-documentation-basics/#site-configuration) to enable mhchem.
+Set the property `mhchem = true` under `[params.math]` in your [site configuration](../theme-documentation-basics#site-configuration) to enable mhchem.
 
 ```markdown
 $$ \ce{CO2 + C -> 2 CO} $$
diff --git a/exampleSite/content/posts/theme-documentation-content.zh-cn.md b/exampleSite/content/posts/theme-documentation-content.zh-cn.md
index 46e71341..9a6cd46c 100644
--- a/exampleSite/content/posts/theme-documentation-content.zh-cn.md
+++ b/exampleSite/content/posts/theme-documentation-content.zh-cn.md
@@ -38,7 +38,7 @@ math:
 
 {{< admonition >}}
 **不是所有**的以下前置参数都必须在你的每篇文章中设置.
-只有在文章的参数和你的 [网站设置](../theme-documentation-basics/#site-configuration) 中的 `page` 部分不一致时才有必要这么做.
+只有在文章的参数和你的 [网站设置](../theme-documentation-basics#site-configuration) 中的 `page` 部分不一致时才有必要这么做.
 {{< /admonition >}}
 
 这是一个前置参数例子:
@@ -92,7 +92,7 @@ comment:
 
 * **title**: 文章标题.
 * **subtitle**: {{< version 0.2.0 >}} 文章副标题.
-* **date**: 这篇文章创建的日期时间. 它通常是从文章的前置参数中的 `date` 字段获取的, 但是也可以在 [网站配置](../theme-documentation-basics/#site-configuration) 中设置.
+* **date**: 这篇文章创建的日期时间. 它通常是从文章的前置参数中的 `date` 字段获取的, 但是也可以在 [网站配置](../theme-documentation-basics#site-configuration) 中设置.
 * **lastmod**: 上次修改内容的日期时间.
 * **draft**: 如果设为 `true`, 除非 `hugo` 命令使用了 `--buildDrafts`/`-D` 参数, 这篇文章不会被渲染.
 * **author**: 文章作者.
@@ -114,12 +114,12 @@ comment:
 * **fontawesome**: {{< version 0.2.0 >}} 如果设为 `true`, 这篇文章会使用 [Font Awesome 扩展语法](#fontawesome).
 * **linkToMarkdown**: 如果设为 `true`, 内容的页脚将显示指向原始 Markdown 文件的链接.
 
-* **toc**: {{< version 0.2.0 changed >}} 和 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `params.page.toc` 部分相同.
-* **code**: {{< version 0.2.0 >}} 和 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `params.page.code` 部分相同.
-* **math**: {{< version 0.2.0 changed >}} 和 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `params.page.math` 部分相同.
-* **mapbox**: {{< version 0.2.0 >}} 和 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `params.page.mapbox` 部分相同.
-* **share**: 和 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `params.page.share` 部分相同.
-* **comment**: {{< version 0.2.0 changed >}} 和 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `params.page.comment` 部分相同.
+* **toc**: {{< version 0.2.0 changed >}} 和 [网站配置](../theme-documentation-basics#site-configuration) 中的 `params.page.toc` 部分相同.
+* **code**: {{< version 0.2.0 >}} 和 [网站配置](../theme-documentation-basics#site-configuration) 中的 `params.page.code` 部分相同.
+* **math**: {{< version 0.2.0 changed >}} 和 [网站配置](../theme-documentation-basics#site-configuration) 中的 `params.page.math` 部分相同.
+* **mapbox**: {{< version 0.2.0 >}} 和 [网站配置](../theme-documentation-basics#site-configuration) 中的 `params.page.mapbox` 部分相同.
+* **share**: 和 [网站配置](../theme-documentation-basics#site-configuration) 中的 `params.page.share` 部分相同.
+* **comment**: {{< version 0.2.0 changed >}} 和 [网站配置](../theme-documentation-basics#site-configuration) 中的 `params.page.comment` 部分相同.
 
 ## 3 内容摘要
 
@@ -131,9 +131,9 @@ comment:
 
 默认情况下, Hugo 自动将内容的前 70 个单词作为摘要.
 
-你可以通过在 [网站配置](../theme-documentation-basics/#site-configuration) 中设置 `summaryLength` 来自定义摘要长度.
+你可以通过在 [网站配置](../theme-documentation-basics#site-configuration) 中设置 `summaryLength` 来自定义摘要长度.
 
-如果您要使用 [CJK]^(中文/日语/韩语) 语言创建内容, 并且想使用 Hugo 的自动摘要拆分功能,请在 [网站配置](../theme-documentation-basics/#site-configuration) 中将 `hasCJKLanguage` 设置为 `true`.
+如果您要使用 [CJK]^(中文/日语/韩语) 语言创建内容, 并且想使用 Hugo 的自动摘要拆分功能,请在 [网站配置](../theme-documentation-basics#site-configuration) 中将 `hasCJKLanguage` 设置为 `true`.
 
 ### 手动摘要拆分
 
@@ -184,7 +184,7 @@ comment:
 
 **LoveIt** 基于 [$ \KaTeX $](https://katex.org/) 提供数学公式的支持.
 
-在你的 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `[params.math]` 下面设置属性 `enable = true`,
+在你的 [网站配置](../theme-documentation-basics#site-configuration) 中的 `[params.math]` 下面设置属性 `enable = true`,
 并在文章的前置参数中设置属性 `math: true`来启用数学公式的自动渲染.
 
 {{< admonition tip >}}
@@ -220,7 +220,7 @@ $ c = \pm\sqrt{a^2 + b^2} $ 和 \\( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^
 $ c = \pm\sqrt{a^2 + b^2} $ 和 \\( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^{2 \pi i \xi x} d \xi \\)
 
 {{< admonition tip >}}
-你可以在 [网站配置](../theme-documentation-basics/#site-configuration) 中自定义公式块和行内公式的分割符.
+你可以在 [网站配置](../theme-documentation-basics#site-configuration) 中自定义公式块和行内公式的分割符.
 {{< /admonition >}}
 
 #### Copy-tex
@@ -229,7 +229,7 @@ $ c = \pm\sqrt{a^2 + b^2} $ 和 \\( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^
 
 通过这个扩展, 在选择并复制 $ \KaTeX $ 渲染的公式时, 会将其 $ \LaTeX $ 源代码复制到剪贴板.
 
-在你的 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `[params.math]` 下面设置属性 `copyTex = true` 来启用 Copy-tex.
+在你的 [网站配置](../theme-documentation-basics#site-configuration) 中的 `[params.math]` 下面设置属性 `copyTex = true` 来启用 Copy-tex.
 
 选择并复制上一节中渲染的公式, 可以发现复制的内容为 LaTeX 源代码.
 
@@ -239,7 +239,7 @@ $ c = \pm\sqrt{a^2 + b^2} $ 和 \\( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^
 
 通过这个扩展, 你可以在文章中轻松编写漂亮的化学方程式.
 
-在你的 [网站配置](../theme-documentation-basics/#site-configuration) 中的 `[params.math]` 下面设置属性 `mhchem = true` 来启用 mhchem.
+在你的 [网站配置](../theme-documentation-basics#site-configuration) 中的 `[params.math]` 下面设置属性 `mhchem = true` 来启用 mhchem.
 
 ```markdown
 $$ \ce{CO2 + C -> 2 CO} $$
diff --git a/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md b/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md
index 932a40fb..08927cfc 100644
--- a/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md
+++ b/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md
@@ -52,7 +52,7 @@ This is a **right-aligned** paragraph.
 
 {{< version 0.2.0 >}}
 
-`link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax/#links). `link` shortcode can provide some other features and can be used in code blocks.
+`link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax#links). `link` shortcode can provide some other features and can be used in code blocks.
 
 The `link` shortcode has the following named parameters:
 
@@ -116,7 +116,7 @@ The rendered output looks like this (hover over the link, there should be a tool
 
 {{< version 0.2.0 changed >}}
 
-`image` shortcode is an alternative to [`figure` shortcode](../theme-documentation-built-in-shortcodes/#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js).
+`image` shortcode is an alternative to [`figure` shortcode](../theme-documentation-built-in-shortcodes#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js).
 
 The `image` shortcode has the following named parameters:
 
@@ -246,25 +246,25 @@ The `admonition` shortcode has the following named parameters:
 
     Title of the `admonition` banner, default value is the value of **type** parameter.
 
-* **details** *[optional]* (**third** positional parameter)
+* **open** *[optional]* (**third** positional parameter) {{< version 0.2.0 changed >}}
 
-    Whether the content will be expandable/collapsible, default value is `false`.
+    Whether the content will be expandable by default, default value is `true`.
 
 Example `admonition` input:
 
 ```markdown
-{{</* admonition type=tip title="This is a tip" details=true */>}}
+{{</* admonition type=tip title="This is a tip" open=false */>}}
 A **tip** banner
 {{</* /admonition */>}}
 Or
-{{</* admonition tip "This is a tip" true */>}}
+{{</* admonition tip "This is a tip" false */>}}
 A **tip** banner
 {{</* /admonition */>}}
 ```
 
 The rendered output looks like this:
 
-{{< admonition tip "This is a tip" true >}}
+{{< admonition tip "This is a tip" false >}}
 A **tip** banner
 {{< /admonition >}}
 
@@ -930,27 +930,27 @@ The `mapbox` shortcode has the following named parameters to use Mapbox GL JS:
 
 * **light-style** *[optional]* (**fifth** positional parameter)
 
-    Style for the light theme, default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Style for the light theme, default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **dark-style** *[optional]* (**sixth** positional parameter)
 
-    Style for the dark theme, default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Style for the dark theme, default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **navigation** *[optional]*
 
-    Whether to add [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **geolocate** *[optional]*
 
-    Whether to add [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **scale** *[optional]*
 
-    Whether to add [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **fullscreen** *[optional]*
 
-    Whether to add [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **width** *[optional]*
 
diff --git a/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md b/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md
index 37585847..1c39199b 100644
--- a/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md
+++ b/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md
@@ -57,7 +57,7 @@ This is a **right-aligned** paragraph.
 
 {{< version 0.2.0 >}}
 
-`link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax/#links). `link` shortcode can provide some other features and can be used in code blocks.
+`link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax#links). `link` shortcode can provide some other features and can be used in code blocks.
 
 The `link` shortcode has the following named parameters:
 
@@ -121,7 +121,7 @@ The rendered output looks like this (hover over the link, there should be a tool
 
 {{< version 0.2.0 changed >}}
 
-`image` shortcode is an alternative to [`figure` shortcode](../theme-documentation-built-in-shortcodes/#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js).
+`image` shortcode is an alternative to [`figure` shortcode](../theme-documentation-built-in-shortcodes#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js).
 
 The `image` shortcode has the following named parameters:
 
@@ -251,25 +251,25 @@ The `admonition` shortcode has the following named parameters:
 
     Title of the `admonition` banner, default value is the value of **type** parameter.
 
-* **details** *[optional]* (**third** positional parameter)
+* **open** *[optional]* (**third** positional parameter) {{< version 0.2.0 changed >}}
 
-    Whether the content will be expandable/collapsible, default value is `false`.
+    Whether the content will be expandable by default, default value is `true`.
 
 Example `admonition` input:
 
 ```markdown
-{{</* admonition type=tip title="This is a tip" details=true */>}}
+{{</* admonition type=tip title="This is a tip" open=false */>}}
 A **tip** banner
 {{</* /admonition */>}}
 Or
-{{</* admonition tip "This is a tip" true */>}}
+{{</* admonition tip "This is a tip" false */>}}
 A **tip** banner
 {{</* /admonition */>}}
 ```
 
 The rendered output looks like this:
 
-{{< admonition tip "This is a tip" true >}}
+{{< admonition tip "This is a tip" false >}}
 A **tip** banner
 {{< /admonition >}}
 
@@ -935,27 +935,27 @@ The `mapbox` shortcode has the following named parameters to use Mapbox GL JS:
 
 * **light-style** *[optional]* (**fifth** positional parameter)
 
-    Style for the light theme, default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Style for the light theme, default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **dark-style** *[optional]* (**sixth** positional parameter)
 
-    Style for the dark theme, default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Style for the dark theme, default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **navigation** *[optional]*
 
-    Whether to add [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **geolocate** *[optional]*
 
-    Whether to add [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **scale** *[optional]*
 
-    Whether to add [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **fullscreen** *[optional]*
 
-    Whether to add [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol), default value is the value set in the [front matter](../theme-documentation-content/#front-matter) or the [site configuration](../theme-documentation-basics/#site-configuration).
+    Whether to add [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol), default value is the value set in the [front matter](../theme-documentation-content#front-matter) or the [site configuration](../theme-documentation-basics#site-configuration).
 
 * **width** *[optional]*
 
diff --git a/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md b/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md
index 74e09a1f..9590c575 100644
--- a/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md
+++ b/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md
@@ -54,7 +54,7 @@ This is a **right-aligned** paragraph.
 
 {{< version 0.2.0 >}}
 
-`link` shortcode 是 [Markdown 链接语法](../basic-markdown-syntax/#links) 的替代.
+`link` shortcode 是 [Markdown 链接语法](../basic-markdown-syntax#links) 的替代.
 `link` shortcode 可以提供一些其它的功能并且可以在代码块中使用.
 
 `link` shortcode 有以下命名参数:
@@ -119,7 +119,7 @@ This is a **right-aligned** paragraph.
 
 {{< version 0.2.0 changed >}}
 
-`image` shortcode 是 [`figure` shortcode](../theme-documentation-built-in-shortcodes/#figure) 的替代. `image` shortcode 可以充分利用 [lazysizes](https://github.com/aFarkas/lazysizes) 和 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 两个依赖库.
+`image` shortcode 是 [`figure` shortcode](../theme-documentation-built-in-shortcodes#figure) 的替代. `image` shortcode 可以充分利用 [lazysizes](https://github.com/aFarkas/lazysizes) 和 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 两个依赖库.
 
 `image` shortcode 有以下命名参数:
 
@@ -249,25 +249,25 @@ This is a **right-aligned** paragraph.
 
     `admonition` 横幅的标题, 默认值是 **type** 参数的值.
 
-* **details** *[可选]* (**第三个**位置参数)
+* **open** *[可选]* (**第三个**位置参数) {{< version 0.2.0 changed >}}
 
-    横幅内容是否可展开/可折叠, 默认值是 `false`.
+    横幅内容是否默认展开, 默认值是 `true`.
 
 一个 `admonition` 示例:
 
 ```markdown
-{{</* admonition type=tip title="This is a tip" details=true */>}}
+{{</* admonition type=tip title="This is a tip" open=false */>}}
 一个 **技巧** 横幅
 {{</* /admonition */>}}
 或者
-{{</* admonition tip "This is a tip" true */>}}
+{{</* admonition tip "This is a tip" false */>}}
 一个 **技巧** 横幅
 {{</* /admonition */>}}
 ```
 
 呈现的输出效果如下:
 
-{{< admonition tip "This is a tip" true >}}
+{{< admonition tip "This is a tip" false >}}
 一个 **技巧** 横幅
 {{< /admonition >}}
 
@@ -933,27 +933,27 @@ data = [
 
 * **light-style** *[可选]* (**第五个**位置参数)
 
-    浅色主题的地图样式, 默认值是[前置参数](../theme-documentation-content/#front-matter)或者[网站配置](../theme-documentation-basics/#site-configuration)中设置的值.
+    浅色主题的地图样式, 默认值是[前置参数](../theme-documentation-content#front-matter)或者[网站配置](../theme-documentation-basics#site-configuration)中设置的值.
 
 * **dark-style** *[可选]* (**第六个**位置参数)
 
-    深色主题的地图样式, 默认值是[前置参数](../theme-documentation-content/#front-matter)或者[网站配置](../theme-documentation-basics/#site-configuration)中设置的值.
+    深色主题的地图样式, 默认值是[前置参数](../theme-documentation-content#front-matter)或者[网站配置](../theme-documentation-basics#site-configuration)中设置的值.
 
 * **navigation** *[可选]*
 
-    是否添加 [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol), 默认值是[前置参数](../theme-documentation-content/#front-matter)或者[网站配置](../theme-documentation-basics/#site-configuration)中设置的值.
+    是否添加 [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api#navigationcontrol), 默认值是[前置参数](../theme-documentation-content#front-matter)或者[网站配置](../theme-documentation-basics#site-configuration)中设置的值.
 
 * **geolocate** *[可选]*
 
-    是否添加 [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol), 默认值是[前置参数](../theme-documentation-content/#front-matter)或者[网站配置](../theme-documentation-basics/#site-configuration)中设置的值.
+    是否添加 [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api#geolocatecontrol), 默认值是[前置参数](../theme-documentation-content#front-matter)或者[网站配置](../theme-documentation-basics#site-configuration)中设置的值.
 
 * **scale** *[可选]*
 
-    是否添加 [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol), 默认值是[前置参数](../theme-documentation-content/#front-matter)或者[网站配置](../theme-documentation-basics/#site-configuration)中设置的值.
+    是否添加 [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api#scalecontrol), 默认值是[前置参数](../theme-documentation-content#front-matter)或者[网站配置](../theme-documentation-basics#site-configuration)中设置的值.
 
 * **fullscreen** *[可选]*
 
-   是否添加 [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol), 默认值是[前置参数](../theme-documentation-content/#front-matter)或者[网站配置](../theme-documentation-basics/#site-configuration)中设置的值.
+   是否添加 [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api#fullscreencontrol), 默认值是[前置参数](../theme-documentation-content#front-matter)或者[网站配置](../theme-documentation-basics#site-configuration)中设置的值.
 
 * **width** *[可选]*
 
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index eb4c5109..29ee549d 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -1,10 +1,12 @@
 {{- $version := "0.2.X" -}}
 
 {{- /* LoveIt theme version detection */ -}}
-{{- if not .Site.Params.version -}}
-    {{- errorf "\n\nYou haven't configured the LoveIt version param correctly yet. See https://hugoloveit.com/theme-documentation-basics/#basic-configuration \n你还没有正确配置 LoveIt 的版本参数 参考 https://hugoloveit.com/zh-cn/theme-documentation-basics/#basic-configuration \n" -}}
-{{- else if ne .Site.Params.version $version -}}
-    {{- errorf (printf "\n\n%s -> %s:\nYou have an incompatible update. See https://github.com/dillonzq/LoveIt/releases \n你进行了一次不兼容的更新 参考 https://github.com/dillonzq/LoveIt/releases \n" .Site.Params.version $version) -}}
+{{- if eq .Site .Sites.First -}}
+    {{- if not .Site.Params.version -}}
+        {{- errorf "Configuration Error 配置文件错误\n\nYou haven't configured the LoveIt version param correctly yet. See https://hugoloveit.com/theme-documentation-basics/#basic-configuration\n你还没有正确配置 LoveIt 的版本参数. 参考 https://hugoloveit.com/zh-cn/theme-documentation-basics/#basic-configuration\n" -}}
+    {{- else if ne .Site.Params.version $version -}}
+        {{- errorf (printf "Compatibility Error 兼容性错误\n\n%s -> %s:\nYou have an incompatible update. See https://github.com/dillonzq/LoveIt/releases\n你进行了一次不兼容的更新. 参考 https://github.com/dillonzq/LoveIt/releases\n" .Site.Params.version $version) -}}
+    {{- end -}}
 {{- end -}}
 
 {{- $params := .Params | merge .Site.Params.page -}}
@@ -15,6 +17,8 @@
     {{- .Scratch.Set "fingerprint" .Site.Params.fingerprint -}}
     {{- .Scratch.Set "analytics" .Site.Params.analytics -}}
     {{- .Scratch.Set "comment" $params.comment -}}
+{{- else if eq .Site .Sites.First -}}
+    {{- warnf "\n\nCurrent environment is \"development\". The \"comment system\", \"CDN\" and \"fingerprint\" will be disabled.\n当前运行环境是 \"development\". \"评论系统\", \"CDN\" 和 \"fingerprint\" 不会启用.\n" -}}
 {{- end -}}
 
 {{- .Scratch.Set "params" $params -}}
@@ -40,7 +44,7 @@
     <body>
         {{- /* Check theme isDark before body rendering */ -}}
         {{- $theme := .Site.Params.defaulttheme -}}
-        <script type="text/javascript">(window.localStorage && localStorage.getItem('theme') ? localStorage.getItem('theme') === 'dark' : ('{{ $theme }}' === 'auto' ? window.matchMedia('(prefers-color-scheme: dark)').matches : '{{ $theme }}' === 'dark')) && document.body.classList.add('dark');</script>
+        <script type="text/javascript">(window.localStorage && localStorage.getItem('theme') ? localStorage.getItem('theme') === 'dark' : ('{{ $theme }}' === 'auto' ? window.matchMedia('(prefers-color-scheme: dark)').matches : '{{ $theme }}' === 'dark')) && document.body.setAttribute('theme', 'dark');</script>
 
         <div id="mask"></div>
 
diff --git a/layouts/partials/assets.html b/layouts/partials/assets.html
index 0cb4aa7f..8aab1bda 100644
--- a/layouts/partials/assets.html
+++ b/layouts/partials/assets.html
@@ -122,7 +122,7 @@
 {{- if (.Scratch.Get "this").mermaid -}}
     {{- $source := $cdn.mermaidJS | default "lib/mermaid/mermaid.min.js" -}}
     {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}}
-    {{- $options := dict "targetPath" "lib/mermaid/mermaid.min.css" -}}
+    {{- $options := dict "targetPath" "lib/mermaid/mermaid.min.css" "enableSourceMap" true -}}
     {{- dict "source" "lib/mermaid/mermaid.scss" "toCSS" $options "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}}
 {{- end -}}
 
@@ -149,7 +149,7 @@
     {{- /* APlayer */ -}}
     {{- $source := $cdn.aplayerCSS | default "lib/aplayer/APlayer.min.css" -}}
     {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}}
-    {{- $options := dict "targetPath" "lib/aplayer/dark.min.css" -}}
+    {{- $options := dict "targetPath" "lib/aplayer/dark.min.css" "enableSourceMap" true -}}
     {{- dict "source" "lib/aplayer/dark.scss" "toCSS" $options "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}}
     {{- $source := $cdn.aplayerJS | default "lib/aplayer/APlayer.min.js" -}}
     {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}}
@@ -172,7 +172,7 @@
 </script>
 
 {{- /* Polyfill.io */ -}}
-{{- partial "plugin/script.html" (dict "source" "https://polyfill.io/v3/polyfill.min.js?features=Element.prototype.closest%2CrequestAnimationFrame%2CCustomEvent%2CPromise%2CObject.entries%2CObject.assign%2CObject.values%2Cfetch%2CElement.prototype.after") -}}
+{{- partial "plugin/script.html" (dict "source" "https://polyfill.io/v3/polyfill.min.js?features=Element.prototype.closest%2CrequestAnimationFrame%2CCustomEvent%2CPromise%2CObject.entries%2CObject.assign%2CObject.values%2Cfetch%2CElement.prototype.after%2CArray.prototype.fill%2CIntersectionObserver%2CArray.from%2CArray.prototype.find%2CMath.sign") -}}
 
 {{- range (.Scratch.Get "this").script -}}
     {{- partial "plugin/script.html" . -}}
diff --git a/layouts/partials/comment.html b/layouts/partials/comment.html
index 2c9c3516..81e7590a 100644
--- a/layouts/partials/comment.html
+++ b/layouts/partials/comment.html
@@ -31,6 +31,8 @@
         {{- /* Valine Comment System */ -}}
         {{- if $comment.valine.enable -}}
             <div id="valine" class="comment"></div>
+            {{- $options := dict "targetPath" "lib/valine/valine.min.css" -}}
+            {{- dict "source" "lib/valine/valine.scss" "toCSS" $options | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}}
             {{- $source := $cdn.valineJS | default "lib/valine/Valine.min.js" -}}
             {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}}
             {{- $commentConfig = dict "el" "#valine" "appId" $comment.valine.appId "appKey" $comment.valine.appKey "lang" ($comment.valine.lang | default (T "valineLang")) "visitor" $comment.valine.visitor "recordIP" $comment.valine.recordIP "placeholder" ($comment.valine.placeholder | default (T "valinePlaceholder")) | dict "valine" | merge $commentConfig -}}
diff --git a/layouts/partials/head/link.html b/layouts/partials/head/link.html
index ce5875d1..04d5b6df 100644
--- a/layouts/partials/head/link.html
+++ b/layouts/partials/head/link.html
@@ -37,7 +37,7 @@
 {{- /* style.min.css */ -}}
 {{- $stylesheet := dict "source" "css/style.template.scss" "fingerprint" $fingerprint -}}
 {{- $targetPath := cond .Site.IsMultiLingual (printf "css/style.%s.min.css" .Language.Lang) "css/style.min.css" -}}
-{{- $options := dict "targetPath" $targetPath "includePaths" (slice "config/css") -}}
+{{- $options := dict "targetPath" $targetPath "includePaths" (slice "config/css") "enableSourceMap" true -}}
 {{- $stylesheet = dict "template" "style.scss" "context" . "toCSS" $options | merge $stylesheet -}}
 {{- partial "plugin/stylesheet.html" $stylesheet -}}
 
diff --git a/layouts/partials/plugin/stylesheet.html b/layouts/partials/plugin/stylesheet.html
index 54d057a2..1f997fe8 100644
--- a/layouts/partials/plugin/stylesheet.html
+++ b/layouts/partials/plugin/stylesheet.html
@@ -9,7 +9,7 @@
             {{- $res = $res | resources.ExecuteAsTemplate . $.context -}}
         {{- end -}}
         {{- with .toCSS -}}
-            {{- $options := . | merge (dict "outputStyle" "compressed" "enableSourceMap" true) -}}
+            {{- $options := . | merge (dict "outputStyle" "compressed") -}}
             {{- $res = $res | toCSS $options -}}
         {{- end -}}
         {{- if .minify -}}
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index f4861e76..a1813839 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -70,7 +70,7 @@
             <div class="details toc" id="toc-static">
                 <div class="details-summary toc-title">
                     <span>{{ T "contents" }}</span>
-                    <span><i class="details-icon fas fa-angle-down"></i></span>
+                    <span><i class="details-icon fas fa-angle-right"></i></span>
                 </div>
                 <div class="details-content toc-content" id="toc-content-static">
                     {{- dict "content" .TableOfContents "ruby" $params.ruby "fraction" $params.fraction "fontawesome" $params.fontawesome | partial "function/content.html" | safeHTML -}}
diff --git a/layouts/shortcodes/admonition.html b/layouts/shortcodes/admonition.html
index ac69a334..bfe14526 100644
--- a/layouts/shortcodes/admonition.html
+++ b/layouts/shortcodes/admonition.html
@@ -1,59 +1,41 @@
 {{- $inner := .Inner | .Page.RenderString -}}
 
-{{- $iconMap := dict "note" "fas fa-pencil-alt" -}}
-{{- $iconMap  = dict "abstract" "fas fa-list-ul" | merge $iconMap -}}
-{{- $iconMap  = dict "info" "fas fa-info-circle" | merge $iconMap -}}
-{{- $iconMap  = dict "tip" "fas fa-lightbulb" | merge $iconMap -}}
-{{- $iconMap  = dict "success" "fas fa-check-circle" | merge $iconMap -}}
-{{- $iconMap  = dict "question" "fas fa-question-circle" | merge $iconMap -}}
-{{- $iconMap  = dict "warning" "fas fa-exclamation-triangle" | merge $iconMap -}}
-{{- $iconMap  = dict "failure" "fas fa-times-circle" | merge $iconMap -}}
-{{- $iconMap  = dict "danger" "fas fa-skull-crossbones" | merge $iconMap -}}
-{{- $iconMap  = dict "bug" "fas fa-bug" | merge $iconMap -}}
-{{- $iconMap  = dict "example" "fas fa-list-ol" | merge $iconMap -}}
-{{- $iconMap  = dict "quote" "fas fa-quote-right" | merge $iconMap -}}
-{{- $iconDetails := "fas fa-angle-down" -}}
+{{- $iconMap := dict "note" "fas fa-pencil-alt fa-fw" -}}
+{{- $iconMap  = dict "abstract" "fas fa-list-ul fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "info" "fas fa-info-circle fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "tip" "fas fa-lightbulb fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "success" "fas fa-check-circle fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "question" "fas fa-question-circle fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "warning" "fas fa-exclamation-triangle fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "failure" "fas fa-times-circle fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "danger" "fas fa-skull-crossbones fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "bug" "fas fa-bug fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "example" "fas fa-list-ol fa-fw" | merge $iconMap -}}
+{{- $iconMap  = dict "quote" "fas fa-quote-right fa-fw" | merge $iconMap -}}
+{{- $iconDetails := "fas fa-angle-right fa-fw" -}}
 
 {{- if .IsNamedParams -}}
     {{- $type := .Get "type" | default "note" -}}
-    {{- if .Get "details" -}}
-        <div class="details admonition {{ $type }}">
-            <div class="details-summary admonition-title">
-                <i class="icon {{ index $iconMap $type | default (index $iconMap "note") }}"></i>{{ .Get "title" | default (T $type) }}<i class="details-icon {{ $iconDetails }}"></i>
-            </div>
-            <div class="details-content">
-                <div class="admonition-content">
-                    {{- $inner -}}
-                </div>
-            </div>
+    <div class="details admonition {{ $type }}{{ if .Get `open` | ne false }} open{{ end }}">
+        <div class="details-summary admonition-title">
+            <i class="icon {{ index $iconMap $type | default (index $iconMap "note") }}"></i>{{ .Get "title" | default (T $type) }}<i class="details-icon {{ $iconDetails }}"></i>
         </div>
-    {{- else -}}
-        <div class="admonition {{ $type }}">
-            <div class="admonition-title"><i class="icon {{ index $iconMap $type | default (index $iconMap "note") }}"></i>{{ .Get "title" | default (T $type) }}</div>
+        <div class="details-content">
             <div class="admonition-content">
                 {{- $inner -}}
             </div>
         </div>
-    {{- end -}}
+    </div>
 {{- else -}}
     {{- $type := .Get 0 | default "note" -}}
-    {{- if .Get 2 -}}
-        <div class="details admonition {{ $type }}">
-            <div class="details-summary admonition-title">
-                <i class="icon {{ index $iconMap $type | default (index $iconMap "note") }}"></i>{{ .Get 1 | default (T $type) }}<i class="details-icon {{ $iconDetails }}"></i>
-            </div>
-            <div class="details-content">
-                <div class="admonition-content">
-                    {{- $inner -}}
-                </div>
-            </div>
+    <div class="details admonition {{ $type }}{{ if .Get 2 | ne false }} open{{ end }}">
+        <div class="details-summary admonition-title">
+            <i class="icon {{ index $iconMap $type | default (index $iconMap "note") }}"></i>{{ .Get 1 | default (T $type) }}<i class="details-icon {{ $iconDetails }}"></i>
         </div>
-    {{- else -}}
-        <div class="admonition {{ $type }}">
-            <div class="admonition-title"><i class="icon {{ index $iconMap $type | default (index $iconMap "note") }}"></i>{{ .Get 1 | default (T $type) }}</div>
+        <div class="details-content">
             <div class="admonition-content">
                 {{- $inner -}}
             </div>
         </div>
-    {{- end -}}
+    </div>
 {{- end -}}
diff --git a/layouts/shortcodes/style.html b/layouts/shortcodes/style.html
index 26c3d6c7..7d942340 100644
--- a/layouts/shortcodes/style.html
+++ b/layouts/shortcodes/style.html
@@ -2,7 +2,7 @@
 {{- $id := partial "function/id.html" (dict "content" $content) -}}
 {{- $tag := .Get 1 | default "div" -}}
 {{- $style := .Get 0 | printf "#%s{%s}" $id -}}
-{{- $res := resources.FromString "css/shortcode/style.scss" $style -}}
-{{- $res = $res | toCSS (dict "targetPath" "css/shortcode/style.css" "outputStyle" "compressed") -}}
+{{- $res := resources.FromString (printf "temp/%s.scss" $id) $style -}}
+{{- $res = $res | toCSS (dict "targetPath" (printf "temp/%s.css" $id)) -}}
 {{- printf `<%s id="%s">%s</%s>` $tag $id $content $tag | safeHTML -}}
 <style>{{ $res.Content | safeCSS }}</style>
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.content b/resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.content
deleted file mode 100644
index 0a7657ee..00000000
--- a/resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.content
+++ /dev/null
@@ -1 +0,0 @@
-#id-9a5e4c img{height:1.25rem}
diff --git a/resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.json b/resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.json
deleted file mode 100644
index a34aed86..00000000
--- a/resources/_gen/assets/scss/css/shortcode/style.scss_19001642409beba3b4bbc3ec1bde302a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Target":"css/shortcode/style.css","MediaType":"text/css","Data":{}}
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content b/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content
index fe205162..97a4ce22 100644
--- a/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content
+++ b/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content
@@ -1,3 +1,3 @@
-@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}.dark ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;overflow-wrap:break-word;scrollbar-color:auto}body.dark{color:#a9a9b3;background-color:#292a2d}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}a{text-decoration:none}a{color:#161209}.dark a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}.dark a:active,.dark a:hover{color:#fff}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.dark .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}.dark .fixed-button{color:#5d5d5f;background:#252627}.dark .fixed-button:hover,.dark .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark .toc .toc-content ul a::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}.dark .toc ruby{background:#272C34}.dark .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:9999px}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.dark #toc-auto{border-left:1px solid #4a4b50}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}.dark #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}.dark #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#ededed}.dark #toc-static .toc-title{background:#20252b}#toc-static .toc-title:hover{background:#e6e6e6}.dark #toc-static .toc-title:hover{background:#1c2025}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}.dark #toc-static .toc-content{background-color:#272C34}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}.dark .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}.dark .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}.dark .single .post-meta a:active,.dark .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}.dark .single .content h2,.dark .single .content h3,.dark .single .content h4,.dark .single .content h5,.dark .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark .single .content>h2>.header-mark::before,.dark .single .content>h3>.header-mark::before,.dark .single .content>h4>.header-mark::before,.dark .single .content>h5>.header-mark::before,.dark .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}.dark .single .content b,.dark .single .content strong{color:#ddd}.single .content a{color:#2d96bd}.dark .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}.dark .single .content a:active,.dark .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}.dark .single .content a b,.dark .single .content a strong{color:#55bde2}.single .content .dark a:hover b,.single .content .dark a:hover strong{color:#bdebfc}.single .content ul{margin:.5rem 0;padding-left:2rem;list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}.dark .single .content ruby{background:#272C34}.dark .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}.dark .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}.dark .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}.dark .single .content .table-wrapper>table th,.dark .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}.dark .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}.dark .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C;padding:0 .4rem}.dark .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1.25em;max-height:1.25em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}.dark .single .content code,.dark .single .content pre,.dark .single .content .highlight table,.dark .single .content .highlight tr,.dark .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma{position:relative;line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#acabab;background:#e1e1e1}.dark .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{padding-left:.75rem;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}.dark .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}.dark .single .content .highlight>.chroma .ln,.dark .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}.dark .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}.dark .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight>.chroma .c,.single .content .highlight>.chroma .ch,.single .content .highlight>.chroma .cm,.single .content .highlight>.chroma .c1,.single .content .highlight>.chroma .cs,.single .content .highlight>.chroma .cp,.single .content .highlight>.chroma .cpf{font-style:italic}.single .content .highlight>.chroma .gl{text-decoration:underline}.single .content .highlight>.chroma .p{color:#a9a9b3}.single .content .highlight>.chroma .k{color:#b501a9}.single .content .highlight>.chroma .kc{color:#b501a9}.single .content .highlight>.chroma .kd{color:#b501a9}.single .content .highlight>.chroma .kn{color:#b501a9}.single .content .highlight>.chroma .kp{color:#b501a9}.single .content .highlight>.chroma .kr{color:#b501a9}.single .content .highlight>.chroma .kt{color:#b501a9}.single .content .highlight>.chroma .n{color:#333}.single .content .highlight>.chroma .na{color:#2b77fa}.single .content .highlight>.chroma .nb{color:#f74840}.single .content .highlight>.chroma .bp{color:#f74840}.single .content .highlight>.chroma .nc{color:#cb8100}.single .content .highlight>.chroma .no{color:#2b77fa}.single .content .highlight>.chroma .nd{color:#0086c1}.single .content .highlight>.chroma .ni{color:#2b77fa}.single .content .highlight>.chroma .ne{color:#2b77fa}.single .content .highlight>.chroma .nf{color:#2b77fa}.single .content .highlight>.chroma .fm{color:#1ccad6}.single .content .highlight>.chroma .nl{color:#2b77fa}.single .content .highlight>.chroma .nn{color:#2b77fa}.single .content .highlight>.chroma .nx{color:#333}.single .content .highlight>.chroma .py{color:#2b77fa}.single .content .highlight>.chroma .nt{color:#2b77fa}.single .content .highlight>.chroma .nv{color:#2b77fa}.single .content .highlight>.chroma .vc{color:#2b77fa}.single .content .highlight>.chroma .vg{color:#2b77fa}.single .content .highlight>.chroma .vi{color:#2b77fa}.single .content .highlight>.chroma .vm{color:#2b77fa}.single .content .highlight>.chroma .l{color:#2aa198}.single .content .highlight>.chroma .ld{color:#2aa198}.single .content .highlight>.chroma .s{color:#24a443}.single .content .highlight>.chroma .sa{color:#24a443}.single .content .highlight>.chroma .sb{color:#24a443}.single .content .highlight>.chroma .sc{color:#24a443}.single .content .highlight>.chroma .dl{color:#24a443}.single .content .highlight>.chroma .sd{color:#24a443}.single .content .highlight>.chroma .s2{color:#24a443}.single .content .highlight>.chroma .se{color:#24a443}.single .content .highlight>.chroma .sh{color:#24a443}.single .content .highlight>.chroma .si{color:#24a443}.single .content .highlight>.chroma .sx{color:#24a443}.single .content .highlight>.chroma .sr{color:#24a443}.single .content .highlight>.chroma .s1{color:#24a443}.single .content .highlight>.chroma .ss{color:#24a443}.single .content .highlight>.chroma .m{color:#e2893c}.single .content .highlight>.chroma .mb{color:#e2893c}.single .content .highlight>.chroma .mf{color:#e2893c}.single .content .highlight>.chroma .mh{color:#e2893c}.single .content .highlight>.chroma .mi{color:#e2893c}.single .content .highlight>.chroma .il{color:#e2893c}.single .content .highlight>.chroma .mo{color:#e2893c}.single .content .highlight>.chroma .o{color:#f19b04}.single .content .highlight>.chroma .ow{color:#b501a9}.single .content .highlight>.chroma .c{color:#a0a1a8}.single .content .highlight>.chroma .ch{color:#a0a1a8}.single .content .highlight>.chroma .cm{color:#a0a1a8}.single .content .highlight>.chroma .c1{color:#a0a1a8}.single .content .highlight>.chroma .cs{color:#a0a1a8}.single .content .highlight>.chroma .cp{color:#a0a1a8}.single .content .highlight>.chroma .cpf{color:#a0a1a8}.single .content .highlight>.chroma .g{color:#e72d40}.single .content .highlight>.chroma .gd{color:#e72d40}.single .content .highlight>.chroma .ge{color:#e72d40}.single .content .highlight>.chroma .gr{color:#e72d40}.single .content .highlight>.chroma .gh{color:#e72d40}.single .content .highlight>.chroma .gi{color:#e72d40}.single .content .highlight>.chroma .go{color:#e72d40}.single .content .highlight>.chroma .gp{color:#e72d40}.single .content .highlight>.chroma .gs{color:#e72d40}.single .content .highlight>.chroma .gu{color:#e72d40}.single .content .highlight>.chroma .gt{color:#e72d40}.single .content .highlight>.chroma .w{color:#bbb}.dark .single .content .highlight>.chroma .p{color:#a9a9b3}.dark .single .content .highlight>.chroma .k{color:#d371e3}.dark .single .content .highlight>.chroma .kc{color:#d371e3}.dark .single .content .highlight>.chroma .kd{color:#d371e3}.dark .single .content .highlight>.chroma .kn{color:#d371e3}.dark .single .content .highlight>.chroma .kp{color:#d371e3}.dark .single .content .highlight>.chroma .kr{color:#d371e3}.dark .single .content .highlight>.chroma .kt{color:#d371e3}.dark .single .content .highlight>.chroma .n{color:#a9b2c0}.dark .single .content .highlight>.chroma .na{color:#41b0f5}.dark .single .content .highlight>.chroma .nb{color:#19b9c4}.dark .single .content .highlight>.chroma .bp{color:#ecbf6f}.dark .single .content .highlight>.chroma .nc{color:#ecbf6f}.dark .single .content .highlight>.chroma .no{color:#41b0f5}.dark .single .content .highlight>.chroma .nd{color:#ecbf6f}.dark .single .content .highlight>.chroma .ni{color:#41b0f5}.dark .single .content .highlight>.chroma .ne{color:#41b0f5}.dark .single .content .highlight>.chroma .nf{color:#41b0f5}.dark .single .content .highlight>.chroma .fm{color:#19b9c4}.dark .single .content .highlight>.chroma .nl{color:#41b0f5}.dark .single .content .highlight>.chroma .nn{color:#41b0f5}.dark .single .content .highlight>.chroma .nx{color:#a9a9b3}.dark .single .content .highlight>.chroma .py{color:#41b0f5}.dark .single .content .highlight>.chroma .nt{color:#41b0f5}.dark .single .content .highlight>.chroma .nv{color:#41b0f5}.dark .single .content .highlight>.chroma .vc{color:#41b0f5}.dark .single .content .highlight>.chroma .vg{color:#41b0f5}.dark .single .content .highlight>.chroma .vi{color:#41b0f5}.dark .single .content .highlight>.chroma .vm{color:#41b0f5}.dark .single .content .highlight>.chroma .l{color:#2aa198}.dark .single .content .highlight>.chroma .ld{color:#2aa198}.dark .single .content .highlight>.chroma .s{color:#8cc570}.dark .single .content .highlight>.chroma .sa{color:#8cc570}.dark .single .content .highlight>.chroma .sb{color:#8cc570}.dark .single .content .highlight>.chroma .sc{color:#8cc570}.dark .single .content .highlight>.chroma .dl{color:#8cc570}.dark .single .content .highlight>.chroma .sd{color:#8cc570}.dark .single .content .highlight>.chroma .s2{color:#8cc570}.dark .single .content .highlight>.chroma .se{color:#8cc570}.dark .single .content .highlight>.chroma .sh{color:#8cc570}.dark .single .content .highlight>.chroma .si{color:#8cc570}.dark .single .content .highlight>.chroma .sx{color:#8cc570}.dark .single .content .highlight>.chroma .sr{color:#8cc570}.dark .single .content .highlight>.chroma .s1{color:#8cc570}.dark .single .content .highlight>.chroma .ss{color:#8cc570}.dark .single .content .highlight>.chroma .m{color:#db985c}.dark .single .content .highlight>.chroma .mb{color:#db985c}.dark .single .content .highlight>.chroma .mf{color:#db985c}.dark .single .content .highlight>.chroma .mh{color:#db985c}.dark .single .content .highlight>.chroma .mi{color:#db985c}.dark .single .content .highlight>.chroma .il{color:#db985c}.dark .single .content .highlight>.chroma .mo{color:#db985c}.dark .single .content .highlight>.chroma .o{color:#ecbf6f}.dark .single .content .highlight>.chroma .ow{color:#d371e3}.dark .single .content .highlight>.chroma .c{color:#7e848f}.dark .single .content .highlight>.chroma .ch{color:#7e848f}.dark .single .content .highlight>.chroma .cm{color:#7e848f}.dark .single .content .highlight>.chroma .c1{color:#7e848f}.dark .single .content .highlight>.chroma .cs{color:#7e848f}.dark .single .content .highlight>.chroma .cp{color:#7e848f}.dark .single .content .highlight>.chroma .cpf{color:#7e848f}.dark .single .content .highlight>.chroma .g{color:#f16372}.dark .single .content .highlight>.chroma .gd{color:#f16372}.dark .single .content .highlight>.chroma .ge{color:#f16372}.dark .single .content .highlight>.chroma .gr{color:#f16372}.dark .single .content .highlight>.chroma .gh{color:#f16372}.dark .single .content .highlight>.chroma .gi{color:#f16372}.dark .single .content .highlight>.chroma .go{color:#f16372}.dark .single .content .highlight>.chroma .gp{color:#f16372}.dark .single .content .highlight>.chroma .gs{color:#f16372}.dark .single .content .highlight>.chroma .gu{color:#f16372}.dark .single .content .highlight>.chroma .gt{color:#f16372}.dark .single .content .highlight>.chroma .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}.dark .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}.dark .single .content .gist .gist-meta a:active,.dark .single .content .gist .gist-meta a:hover{color:#bdebfc}.dark .single .content .gist .gist-meta{background-color:#1c2025}.dark .single .content .gist .highlight{background:#141414}.dark .single .content .gist .blob-num,.dark .single .content .gist .blob-code-inner,.dark .single .content .gist .highlight,.dark .single .content .gist .pl-enm,.dark .single .content .gist .pl-ko,.dark .single .content .gist .pl-mo,.dark .single .content .gist .pl-mp1 .pl-sf,.dark .single .content .gist .pl-ms,.dark .single .content .gist .pl-pdc1,.dark .single .content .gist .pl-scp,.dark .single .content .gist .pl-smc,.dark .single .content .gist .pl-som,.dark .single .content .gist .pl-va,.dark .single .content .gist .pl-vpf,.dark .single .content .gist .pl-vpu,.dark .single .content .gist .pl-mdr{color:#aab1bf}.dark .single .content .gist .pl-mb,.dark .single .content .gist .pl-pdb{font-weight:700}.dark .single .content .gist .pl-c,.dark .single .content .gist .pl-c span,.dark .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}.dark .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}.dark .single .content .gist .pl-ef,.dark .single .content .gist .pl-en,.dark .single .content .gist .pl-enf,.dark .single .content .gist .pl-eoai,.dark .single .content .gist .pl-kos,.dark .single .content .gist .pl-mh .pl-pdh,.dark .single .content .gist .pl-mr{color:#61afef}.dark .single .content .gist .pl-ens,.dark .single .content .gist .pl-vi{color:#be5046}.dark .single .content .gist .pl-enti,.dark .single .content .gist .pl-mai .pl-sf,.dark .single .content .gist .pl-ml,.dark .single .content .gist .pl-sf,.dark .single .content .gist .pl-sr,.dark .single .content .gist .pl-sr .pl-sra,.dark .single .content .gist .pl-src,.dark .single .content .gist .pl-st,.dark .single .content .gist .pl-vo{color:#56b5c2}.dark .single .content .gist .pl-eoi,.dark .single .content .gist .pl-mri,.dark .single .content .gist .pl-pds,.dark .single .content .gist .pl-pse .pl-s1,.dark .single .content .gist .pl-s,.dark .single .content .gist .pl-s1{color:#97c279}.dark .single .content .gist .pl-k,.dark .single .content .gist .pl-kolp,.dark .single .content .gist .pl-mc,.dark .single .content .gist .pl-pde{color:#c578dd}.dark .single .content .gist .pl-mi,.dark .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}.dark .single .content .gist .pl-mp,.dark .single .content .gist .pl-stp{color:#818896}.dark .single .content .gist .pl-mdh,.dark .single .content .gist .pl-mdi,.dark .single .content .gist .pl-mdr{font-weight:400}.dark .single .content .gist .pl-mdht,.dark .single .content .gist .pl-mi1{color:#97c279;background:#020}.dark .single .content .gist .pl-md,.dark .single .content .gist .pl-mdhf{color:#df6b75;background:#200}.dark .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}.dark .single .content .gist .pl-ib{background:#df6b75}.dark .single .content .gist .pl-ii{background:#e0c184;color:#fff}.dark .single .content .gist .pl-iu{background:#e05151}.dark .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}.dark .single .content .gist .pl-c1,.dark .single .content .gist .pl-cn,.dark .single .content .gist .pl-e,.dark .single .content .gist .pl-eoa,.dark .single .content .gist .pl-eoac,.dark .single .content .gist .pl-eoac .pl-pde,.dark .single .content .gist .pl-kou,.dark .single .content .gist .pl-mm,.dark .single .content .gist .pl-mp .pl-s3,.dark .single .content .gist .pl-mq,.dark .single .content .gist .pl-s3,.dark .single .content .gist .pl-sok,.dark .single .content .gist .pl-sv,.dark .single .content .gist .pl-mb{color:#d19965}.dark .single .content .gist .pl-enc,.dark .single .content .gist .pl-entc,.dark .single .content .gist .pl-pse .pl-s2,.dark .single .content .gist .pl-s2,.dark .single .content .gist .pl-sc,.dark .single .content .gist .pl-smp,.dark .single .content .gist .pl-sr .pl-sre,.dark .single .content .gist .pl-stj,.dark .single .content .gist .pl-v,.dark .single .content .gist .pl-pdb{color:#e4bf7a}.dark .single .content .gist .pl-ent,.dark .single .content .gist .pl-entl,.dark .single .content .gist .pl-entm,.dark .single .content .gist .pl-mh,.dark .single .content .gist .pl-pdv,.dark .single .content .gist .pl-smi,.dark .single .content .gist .pl-sol,.dark .single .content .gist .pl-mdh,.dark .single .content .gist .pl-mdi{color:#df6b75}.dark .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{margin:0 -0.75rem;padding:.2rem .75rem .2rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition .details-summary.admonition-title:hover{background-color:rgba(37,119,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;left:.6rem;top:.6rem}.single .content .admonition i.details-icon{position:absolute;top:.5rem;right:.5rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .details-summary.admonition-title:hover{background-color:rgba(37,119,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .details-summary.admonition-title:hover{background-color:rgba(0,155,224,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .details-summary.admonition-title:hover{background-color:rgba(0,157,181,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .details-summary.admonition-title:hover{background-color:rgba(0,160,139,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .details-summary.admonition-title:hover{background-color:rgba(0,169,70,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .details-summary.admonition-title:hover{background-color:rgba(87,193,20,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .details-summary.admonition-title:hover{background-color:rgba(224,128,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .details-summary.admonition-title:hover{background-color:rgba(255,51,51,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .details-summary.admonition-title:hover{background-color:rgba(247,0,48,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .details-summary.admonition-title:hover{background-color:rgba(214,0,76,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .details-summary.admonition-title:hover{background-color:rgba(80,0,255,0.1)}.single .content .admonition.quote{background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .details-summary.admonition-title:hover{background-color:rgba(143,143,143,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}.dark .single .content hr{border-top:1px dashed #4a4b50}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}.dark .single .content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}.dark .single .post-footer .post-info{border-bottom:1px solid #4a4b50}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}.dark .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}.dark .single .post-footer .post-info .post-info-line .post-info-mod a:active,.dark .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}.dark .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark .single .post-footer .post-info .post-info-line .post-info-md a:active,.dark .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark .archive .archive-item-link{color:#a9a9b3}.dark .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}.dark .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}.dark .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}.dark .archive .tag-cloud-tags a:active,.dark .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}.dark .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}.dark .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}.dark .home .summary{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}.dark .home .summary .content h2::before,.dark .home .summary .content h3::before,.dark .home .summary .content h4::before,.dark .home .summary .content h5::before,.dark .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}.dark .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}.dark .home .summary .content a:active,.dark .home .summary .content a:hover{color:#fff}.dark .home .summary .content b,.dark .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}.dark .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}.dark .home .summary .post-footer a:active,.dark .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}.dark .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}.dark .home .summary .post-footer .post-tags a:active,.dark .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}.dark header{background-color:#252627}header .logo{min-height:1.25em;height:1.25em;vertical-align:text-bottom;padding-right:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin:0 .5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.dark .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}.dark .open .search input,.dark .search.mobile input{color:#a9a9b3;background-color:#363636}.dark .open .search input::-webkit-input-placeholder,.dark .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}.dark .open .search input:-moz-placeholder,.dark .search.mobile input:-moz-placeholder{color:#5d5d5f}.dark .open .search input::-moz-placeholder,.dark .search.mobile input::-moz-placeholder{color:#5d5d5f}.dark .open .search input:-ms-input-placeholder,.dark .search.mobile input:-ms-input-placeholder{color:#5d5d5f}.dark .open .search input::placeholder,.dark .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}.dark .open .search .search-button,.dark .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 10vw}#header-desktop .header-wrapper .header-title{font-size:1.25rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}.dark #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#4a4b50}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}.dark #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.25rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}.dark #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}.dark #header-mobile .header-container .menu{background:#252627;border-top-color:#4a4b50}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:10vw;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}.dark .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}.dark .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}.dark .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}.dark .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}.dark .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer .dark{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a{color:#2d96bd}.dark .search-dropdown .dropdown-menu .search-footer a{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}.dark .search-dropdown .dropdown-menu .search-footer a:active,.dark .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}.dark .pagination li:before,.dark .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}#header-desktop .header-wrapper{padding:0 8vw}.search-dropdown.desktop{right:8vw}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding:0 4vw}.search-dropdown.desktop{right:4vw}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
+@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}a{text-decoration:none}a{color:#161209}[theme=dark] a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:9999px}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}[theme=dark] .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a{color:#2d96bd}[theme=dark] .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C;padding:0 .4rem}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.25em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma{position:relative;line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight>.chroma .c,.single .content .highlight>.chroma .ch,.single .content .highlight>.chroma .cm,.single .content .highlight>.chroma .c1,.single .content .highlight>.chroma .cs,.single .content .highlight>.chroma .cp,.single .content .highlight>.chroma .cpf{font-style:italic}.single .content .highlight>.chroma .gl{text-decoration:underline}.single .content .highlight>.chroma .p{color:#a9a9b3}.single .content .highlight>.chroma .k{color:#b501a9}.single .content .highlight>.chroma .kc{color:#b501a9}.single .content .highlight>.chroma .kd{color:#b501a9}.single .content .highlight>.chroma .kn{color:#b501a9}.single .content .highlight>.chroma .kp{color:#b501a9}.single .content .highlight>.chroma .kr{color:#b501a9}.single .content .highlight>.chroma .kt{color:#b501a9}.single .content .highlight>.chroma .n{color:#333}.single .content .highlight>.chroma .na{color:#2b77fa}.single .content .highlight>.chroma .nb{color:#f74840}.single .content .highlight>.chroma .bp{color:#f74840}.single .content .highlight>.chroma .nc{color:#cb8100}.single .content .highlight>.chroma .no{color:#2b77fa}.single .content .highlight>.chroma .nd{color:#0086c1}.single .content .highlight>.chroma .ni{color:#2b77fa}.single .content .highlight>.chroma .ne{color:#2b77fa}.single .content .highlight>.chroma .nf{color:#2b77fa}.single .content .highlight>.chroma .fm{color:#1ccad6}.single .content .highlight>.chroma .nl{color:#2b77fa}.single .content .highlight>.chroma .nn{color:#2b77fa}.single .content .highlight>.chroma .nx{color:#333}.single .content .highlight>.chroma .py{color:#2b77fa}.single .content .highlight>.chroma .nt{color:#2b77fa}.single .content .highlight>.chroma .nv{color:#2b77fa}.single .content .highlight>.chroma .vc{color:#2b77fa}.single .content .highlight>.chroma .vg{color:#2b77fa}.single .content .highlight>.chroma .vi{color:#2b77fa}.single .content .highlight>.chroma .vm{color:#2b77fa}.single .content .highlight>.chroma .l{color:#2aa198}.single .content .highlight>.chroma .ld{color:#2aa198}.single .content .highlight>.chroma .s{color:#24a443}.single .content .highlight>.chroma .sa{color:#24a443}.single .content .highlight>.chroma .sb{color:#24a443}.single .content .highlight>.chroma .sc{color:#24a443}.single .content .highlight>.chroma .dl{color:#24a443}.single .content .highlight>.chroma .sd{color:#24a443}.single .content .highlight>.chroma .s2{color:#24a443}.single .content .highlight>.chroma .se{color:#24a443}.single .content .highlight>.chroma .sh{color:#24a443}.single .content .highlight>.chroma .si{color:#24a443}.single .content .highlight>.chroma .sx{color:#24a443}.single .content .highlight>.chroma .sr{color:#24a443}.single .content .highlight>.chroma .s1{color:#24a443}.single .content .highlight>.chroma .ss{color:#24a443}.single .content .highlight>.chroma .m{color:#e2893c}.single .content .highlight>.chroma .mb{color:#e2893c}.single .content .highlight>.chroma .mf{color:#e2893c}.single .content .highlight>.chroma .mh{color:#e2893c}.single .content .highlight>.chroma .mi{color:#e2893c}.single .content .highlight>.chroma .il{color:#e2893c}.single .content .highlight>.chroma .mo{color:#e2893c}.single .content .highlight>.chroma .o{color:#f19b04}.single .content .highlight>.chroma .ow{color:#b501a9}.single .content .highlight>.chroma .c{color:#a0a1a8}.single .content .highlight>.chroma .ch{color:#a0a1a8}.single .content .highlight>.chroma .cm{color:#a0a1a8}.single .content .highlight>.chroma .c1{color:#a0a1a8}.single .content .highlight>.chroma .cs{color:#a0a1a8}.single .content .highlight>.chroma .cp{color:#a0a1a8}.single .content .highlight>.chroma .cpf{color:#a0a1a8}.single .content .highlight>.chroma .g{color:#e72d40}.single .content .highlight>.chroma .gd{color:#e72d40}.single .content .highlight>.chroma .ge{color:#e72d40}.single .content .highlight>.chroma .gr{color:#e72d40}.single .content .highlight>.chroma .gh{color:#e72d40}.single .content .highlight>.chroma .gi{color:#e72d40}.single .content .highlight>.chroma .go{color:#e72d40}.single .content .highlight>.chroma .gp{color:#e72d40}.single .content .highlight>.chroma .gs{color:#e72d40}.single .content .highlight>.chroma .gu{color:#e72d40}.single .content .highlight>.chroma .gt{color:#e72d40}.single .content .highlight>.chroma .w{color:#bbb}[theme=dark] .single .content .highlight>.chroma .p{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .k{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kc{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kd{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kn{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kp{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kr{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kt{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .n{color:#a9b2c0}[theme=dark] .single .content .highlight>.chroma .na{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nb{color:#19b9c4}[theme=dark] .single .content .highlight>.chroma .bp{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .nc{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .no{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nd{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .ni{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .ne{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nf{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .fm{color:#19b9c4}[theme=dark] .single .content .highlight>.chroma .nl{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nn{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nx{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .py{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nt{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nv{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vc{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vg{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vi{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vm{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .l{color:#2aa198}[theme=dark] .single .content .highlight>.chroma .ld{color:#2aa198}[theme=dark] .single .content .highlight>.chroma .s{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sa{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sb{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sc{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .dl{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sd{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .s2{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .se{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sh{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .si{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sx{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sr{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .s1{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .ss{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .m{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mb{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mf{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mh{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mi{color:#db985c}[theme=dark] .single .content .highlight>.chroma .il{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mo{color:#db985c}[theme=dark] .single .content .highlight>.chroma .o{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .ow{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .c{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .ch{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cm{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .c1{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cs{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cp{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cpf{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .g{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gd{color:#f16372}[theme=dark] .single .content .highlight>.chroma .ge{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gr{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gh{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gi{color:#f16372}[theme=dark] .single .content .highlight>.chroma .go{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gp{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gs{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gu{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gt{color:#f16372}[theme=dark] .single .content .highlight>.chroma .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}[theme=dark] .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}[theme=dark] .home .summary .content h2::before,[theme=dark] .home .summary .content h3::before,[theme=dark] .home .summary .content h4::before,[theme=dark] .home .summary .content h5::before,[theme=dark] .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}[theme=dark] .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}[theme=dark] .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}[theme=dark] .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.25em;height:1.25em;vertical-align:text-bottom;padding-right:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin:0 .5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.25rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.25rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a{color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
 
 /*# sourceMappingURL=style.fr.min.css.map */
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content b/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content
index 01a6e52c..aaf0bc82 100644
--- a/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content
+++ b/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content
@@ -1,3 +1,3 @@
-@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}.dark ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;overflow-wrap:break-word;scrollbar-color:auto}body.dark{color:#a9a9b3;background-color:#292a2d}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}a{text-decoration:none}a{color:#161209}.dark a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}.dark a:active,.dark a:hover{color:#fff}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.dark .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}.dark .fixed-button{color:#5d5d5f;background:#252627}.dark .fixed-button:hover,.dark .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark .toc .toc-content ul a::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}.dark .toc ruby{background:#272C34}.dark .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:9999px}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.dark #toc-auto{border-left:1px solid #4a4b50}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}.dark #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}.dark #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#ededed}.dark #toc-static .toc-title{background:#20252b}#toc-static .toc-title:hover{background:#e6e6e6}.dark #toc-static .toc-title:hover{background:#1c2025}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}.dark #toc-static .toc-content{background-color:#272C34}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}.dark .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}.dark .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}.dark .single .post-meta a:active,.dark .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}.dark .single .content h2,.dark .single .content h3,.dark .single .content h4,.dark .single .content h5,.dark .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark .single .content>h2>.header-mark::before,.dark .single .content>h3>.header-mark::before,.dark .single .content>h4>.header-mark::before,.dark .single .content>h5>.header-mark::before,.dark .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}.dark .single .content b,.dark .single .content strong{color:#ddd}.single .content a{color:#2d96bd}.dark .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}.dark .single .content a:active,.dark .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}.dark .single .content a b,.dark .single .content a strong{color:#55bde2}.single .content .dark a:hover b,.single .content .dark a:hover strong{color:#bdebfc}.single .content ul{margin:.5rem 0;padding-left:2rem;list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}.dark .single .content ruby{background:#272C34}.dark .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}.dark .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}.dark .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}.dark .single .content .table-wrapper>table th,.dark .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}.dark .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}.dark .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C;padding:0 .4rem}.dark .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1.25em;max-height:1.25em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}.dark .single .content code,.dark .single .content pre,.dark .single .content .highlight table,.dark .single .content .highlight tr,.dark .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma{position:relative;line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#acabab;background:#e1e1e1}.dark .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{padding-left:.75rem;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}.dark .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}.dark .single .content .highlight>.chroma .ln,.dark .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}.dark .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}.dark .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight>.chroma .c,.single .content .highlight>.chroma .ch,.single .content .highlight>.chroma .cm,.single .content .highlight>.chroma .c1,.single .content .highlight>.chroma .cs,.single .content .highlight>.chroma .cp,.single .content .highlight>.chroma .cpf{font-style:italic}.single .content .highlight>.chroma .gl{text-decoration:underline}.single .content .highlight>.chroma .p{color:#a9a9b3}.single .content .highlight>.chroma .k{color:#b501a9}.single .content .highlight>.chroma .kc{color:#b501a9}.single .content .highlight>.chroma .kd{color:#b501a9}.single .content .highlight>.chroma .kn{color:#b501a9}.single .content .highlight>.chroma .kp{color:#b501a9}.single .content .highlight>.chroma .kr{color:#b501a9}.single .content .highlight>.chroma .kt{color:#b501a9}.single .content .highlight>.chroma .n{color:#333}.single .content .highlight>.chroma .na{color:#2b77fa}.single .content .highlight>.chroma .nb{color:#f74840}.single .content .highlight>.chroma .bp{color:#f74840}.single .content .highlight>.chroma .nc{color:#cb8100}.single .content .highlight>.chroma .no{color:#2b77fa}.single .content .highlight>.chroma .nd{color:#0086c1}.single .content .highlight>.chroma .ni{color:#2b77fa}.single .content .highlight>.chroma .ne{color:#2b77fa}.single .content .highlight>.chroma .nf{color:#2b77fa}.single .content .highlight>.chroma .fm{color:#1ccad6}.single .content .highlight>.chroma .nl{color:#2b77fa}.single .content .highlight>.chroma .nn{color:#2b77fa}.single .content .highlight>.chroma .nx{color:#333}.single .content .highlight>.chroma .py{color:#2b77fa}.single .content .highlight>.chroma .nt{color:#2b77fa}.single .content .highlight>.chroma .nv{color:#2b77fa}.single .content .highlight>.chroma .vc{color:#2b77fa}.single .content .highlight>.chroma .vg{color:#2b77fa}.single .content .highlight>.chroma .vi{color:#2b77fa}.single .content .highlight>.chroma .vm{color:#2b77fa}.single .content .highlight>.chroma .l{color:#2aa198}.single .content .highlight>.chroma .ld{color:#2aa198}.single .content .highlight>.chroma .s{color:#24a443}.single .content .highlight>.chroma .sa{color:#24a443}.single .content .highlight>.chroma .sb{color:#24a443}.single .content .highlight>.chroma .sc{color:#24a443}.single .content .highlight>.chroma .dl{color:#24a443}.single .content .highlight>.chroma .sd{color:#24a443}.single .content .highlight>.chroma .s2{color:#24a443}.single .content .highlight>.chroma .se{color:#24a443}.single .content .highlight>.chroma .sh{color:#24a443}.single .content .highlight>.chroma .si{color:#24a443}.single .content .highlight>.chroma .sx{color:#24a443}.single .content .highlight>.chroma .sr{color:#24a443}.single .content .highlight>.chroma .s1{color:#24a443}.single .content .highlight>.chroma .ss{color:#24a443}.single .content .highlight>.chroma .m{color:#e2893c}.single .content .highlight>.chroma .mb{color:#e2893c}.single .content .highlight>.chroma .mf{color:#e2893c}.single .content .highlight>.chroma .mh{color:#e2893c}.single .content .highlight>.chroma .mi{color:#e2893c}.single .content .highlight>.chroma .il{color:#e2893c}.single .content .highlight>.chroma .mo{color:#e2893c}.single .content .highlight>.chroma .o{color:#f19b04}.single .content .highlight>.chroma .ow{color:#b501a9}.single .content .highlight>.chroma .c{color:#a0a1a8}.single .content .highlight>.chroma .ch{color:#a0a1a8}.single .content .highlight>.chroma .cm{color:#a0a1a8}.single .content .highlight>.chroma .c1{color:#a0a1a8}.single .content .highlight>.chroma .cs{color:#a0a1a8}.single .content .highlight>.chroma .cp{color:#a0a1a8}.single .content .highlight>.chroma .cpf{color:#a0a1a8}.single .content .highlight>.chroma .g{color:#e72d40}.single .content .highlight>.chroma .gd{color:#e72d40}.single .content .highlight>.chroma .ge{color:#e72d40}.single .content .highlight>.chroma .gr{color:#e72d40}.single .content .highlight>.chroma .gh{color:#e72d40}.single .content .highlight>.chroma .gi{color:#e72d40}.single .content .highlight>.chroma .go{color:#e72d40}.single .content .highlight>.chroma .gp{color:#e72d40}.single .content .highlight>.chroma .gs{color:#e72d40}.single .content .highlight>.chroma .gu{color:#e72d40}.single .content .highlight>.chroma .gt{color:#e72d40}.single .content .highlight>.chroma .w{color:#bbb}.dark .single .content .highlight>.chroma .p{color:#a9a9b3}.dark .single .content .highlight>.chroma .k{color:#d371e3}.dark .single .content .highlight>.chroma .kc{color:#d371e3}.dark .single .content .highlight>.chroma .kd{color:#d371e3}.dark .single .content .highlight>.chroma .kn{color:#d371e3}.dark .single .content .highlight>.chroma .kp{color:#d371e3}.dark .single .content .highlight>.chroma .kr{color:#d371e3}.dark .single .content .highlight>.chroma .kt{color:#d371e3}.dark .single .content .highlight>.chroma .n{color:#a9b2c0}.dark .single .content .highlight>.chroma .na{color:#41b0f5}.dark .single .content .highlight>.chroma .nb{color:#19b9c4}.dark .single .content .highlight>.chroma .bp{color:#ecbf6f}.dark .single .content .highlight>.chroma .nc{color:#ecbf6f}.dark .single .content .highlight>.chroma .no{color:#41b0f5}.dark .single .content .highlight>.chroma .nd{color:#ecbf6f}.dark .single .content .highlight>.chroma .ni{color:#41b0f5}.dark .single .content .highlight>.chroma .ne{color:#41b0f5}.dark .single .content .highlight>.chroma .nf{color:#41b0f5}.dark .single .content .highlight>.chroma .fm{color:#19b9c4}.dark .single .content .highlight>.chroma .nl{color:#41b0f5}.dark .single .content .highlight>.chroma .nn{color:#41b0f5}.dark .single .content .highlight>.chroma .nx{color:#a9a9b3}.dark .single .content .highlight>.chroma .py{color:#41b0f5}.dark .single .content .highlight>.chroma .nt{color:#41b0f5}.dark .single .content .highlight>.chroma .nv{color:#41b0f5}.dark .single .content .highlight>.chroma .vc{color:#41b0f5}.dark .single .content .highlight>.chroma .vg{color:#41b0f5}.dark .single .content .highlight>.chroma .vi{color:#41b0f5}.dark .single .content .highlight>.chroma .vm{color:#41b0f5}.dark .single .content .highlight>.chroma .l{color:#2aa198}.dark .single .content .highlight>.chroma .ld{color:#2aa198}.dark .single .content .highlight>.chroma .s{color:#8cc570}.dark .single .content .highlight>.chroma .sa{color:#8cc570}.dark .single .content .highlight>.chroma .sb{color:#8cc570}.dark .single .content .highlight>.chroma .sc{color:#8cc570}.dark .single .content .highlight>.chroma .dl{color:#8cc570}.dark .single .content .highlight>.chroma .sd{color:#8cc570}.dark .single .content .highlight>.chroma .s2{color:#8cc570}.dark .single .content .highlight>.chroma .se{color:#8cc570}.dark .single .content .highlight>.chroma .sh{color:#8cc570}.dark .single .content .highlight>.chroma .si{color:#8cc570}.dark .single .content .highlight>.chroma .sx{color:#8cc570}.dark .single .content .highlight>.chroma .sr{color:#8cc570}.dark .single .content .highlight>.chroma .s1{color:#8cc570}.dark .single .content .highlight>.chroma .ss{color:#8cc570}.dark .single .content .highlight>.chroma .m{color:#db985c}.dark .single .content .highlight>.chroma .mb{color:#db985c}.dark .single .content .highlight>.chroma .mf{color:#db985c}.dark .single .content .highlight>.chroma .mh{color:#db985c}.dark .single .content .highlight>.chroma .mi{color:#db985c}.dark .single .content .highlight>.chroma .il{color:#db985c}.dark .single .content .highlight>.chroma .mo{color:#db985c}.dark .single .content .highlight>.chroma .o{color:#ecbf6f}.dark .single .content .highlight>.chroma .ow{color:#d371e3}.dark .single .content .highlight>.chroma .c{color:#7e848f}.dark .single .content .highlight>.chroma .ch{color:#7e848f}.dark .single .content .highlight>.chroma .cm{color:#7e848f}.dark .single .content .highlight>.chroma .c1{color:#7e848f}.dark .single .content .highlight>.chroma .cs{color:#7e848f}.dark .single .content .highlight>.chroma .cp{color:#7e848f}.dark .single .content .highlight>.chroma .cpf{color:#7e848f}.dark .single .content .highlight>.chroma .g{color:#f16372}.dark .single .content .highlight>.chroma .gd{color:#f16372}.dark .single .content .highlight>.chroma .ge{color:#f16372}.dark .single .content .highlight>.chroma .gr{color:#f16372}.dark .single .content .highlight>.chroma .gh{color:#f16372}.dark .single .content .highlight>.chroma .gi{color:#f16372}.dark .single .content .highlight>.chroma .go{color:#f16372}.dark .single .content .highlight>.chroma .gp{color:#f16372}.dark .single .content .highlight>.chroma .gs{color:#f16372}.dark .single .content .highlight>.chroma .gu{color:#f16372}.dark .single .content .highlight>.chroma .gt{color:#f16372}.dark .single .content .highlight>.chroma .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}.dark .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}.dark .single .content .gist .gist-meta a:active,.dark .single .content .gist .gist-meta a:hover{color:#bdebfc}.dark .single .content .gist .gist-meta{background-color:#1c2025}.dark .single .content .gist .highlight{background:#141414}.dark .single .content .gist .blob-num,.dark .single .content .gist .blob-code-inner,.dark .single .content .gist .highlight,.dark .single .content .gist .pl-enm,.dark .single .content .gist .pl-ko,.dark .single .content .gist .pl-mo,.dark .single .content .gist .pl-mp1 .pl-sf,.dark .single .content .gist .pl-ms,.dark .single .content .gist .pl-pdc1,.dark .single .content .gist .pl-scp,.dark .single .content .gist .pl-smc,.dark .single .content .gist .pl-som,.dark .single .content .gist .pl-va,.dark .single .content .gist .pl-vpf,.dark .single .content .gist .pl-vpu,.dark .single .content .gist .pl-mdr{color:#aab1bf}.dark .single .content .gist .pl-mb,.dark .single .content .gist .pl-pdb{font-weight:700}.dark .single .content .gist .pl-c,.dark .single .content .gist .pl-c span,.dark .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}.dark .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}.dark .single .content .gist .pl-ef,.dark .single .content .gist .pl-en,.dark .single .content .gist .pl-enf,.dark .single .content .gist .pl-eoai,.dark .single .content .gist .pl-kos,.dark .single .content .gist .pl-mh .pl-pdh,.dark .single .content .gist .pl-mr{color:#61afef}.dark .single .content .gist .pl-ens,.dark .single .content .gist .pl-vi{color:#be5046}.dark .single .content .gist .pl-enti,.dark .single .content .gist .pl-mai .pl-sf,.dark .single .content .gist .pl-ml,.dark .single .content .gist .pl-sf,.dark .single .content .gist .pl-sr,.dark .single .content .gist .pl-sr .pl-sra,.dark .single .content .gist .pl-src,.dark .single .content .gist .pl-st,.dark .single .content .gist .pl-vo{color:#56b5c2}.dark .single .content .gist .pl-eoi,.dark .single .content .gist .pl-mri,.dark .single .content .gist .pl-pds,.dark .single .content .gist .pl-pse .pl-s1,.dark .single .content .gist .pl-s,.dark .single .content .gist .pl-s1{color:#97c279}.dark .single .content .gist .pl-k,.dark .single .content .gist .pl-kolp,.dark .single .content .gist .pl-mc,.dark .single .content .gist .pl-pde{color:#c578dd}.dark .single .content .gist .pl-mi,.dark .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}.dark .single .content .gist .pl-mp,.dark .single .content .gist .pl-stp{color:#818896}.dark .single .content .gist .pl-mdh,.dark .single .content .gist .pl-mdi,.dark .single .content .gist .pl-mdr{font-weight:400}.dark .single .content .gist .pl-mdht,.dark .single .content .gist .pl-mi1{color:#97c279;background:#020}.dark .single .content .gist .pl-md,.dark .single .content .gist .pl-mdhf{color:#df6b75;background:#200}.dark .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}.dark .single .content .gist .pl-ib{background:#df6b75}.dark .single .content .gist .pl-ii{background:#e0c184;color:#fff}.dark .single .content .gist .pl-iu{background:#e05151}.dark .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}.dark .single .content .gist .pl-c1,.dark .single .content .gist .pl-cn,.dark .single .content .gist .pl-e,.dark .single .content .gist .pl-eoa,.dark .single .content .gist .pl-eoac,.dark .single .content .gist .pl-eoac .pl-pde,.dark .single .content .gist .pl-kou,.dark .single .content .gist .pl-mm,.dark .single .content .gist .pl-mp .pl-s3,.dark .single .content .gist .pl-mq,.dark .single .content .gist .pl-s3,.dark .single .content .gist .pl-sok,.dark .single .content .gist .pl-sv,.dark .single .content .gist .pl-mb{color:#d19965}.dark .single .content .gist .pl-enc,.dark .single .content .gist .pl-entc,.dark .single .content .gist .pl-pse .pl-s2,.dark .single .content .gist .pl-s2,.dark .single .content .gist .pl-sc,.dark .single .content .gist .pl-smp,.dark .single .content .gist .pl-sr .pl-sre,.dark .single .content .gist .pl-stj,.dark .single .content .gist .pl-v,.dark .single .content .gist .pl-pdb{color:#e4bf7a}.dark .single .content .gist .pl-ent,.dark .single .content .gist .pl-entl,.dark .single .content .gist .pl-entm,.dark .single .content .gist .pl-mh,.dark .single .content .gist .pl-pdv,.dark .single .content .gist .pl-smi,.dark .single .content .gist .pl-sol,.dark .single .content .gist .pl-mdh,.dark .single .content .gist .pl-mdi{color:#df6b75}.dark .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{margin:0 -0.75rem;padding:.2rem .75rem .2rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition .details-summary.admonition-title:hover{background-color:rgba(37,119,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;left:.6rem;top:.6rem}.single .content .admonition i.details-icon{position:absolute;top:.5rem;right:.5rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .details-summary.admonition-title:hover{background-color:rgba(37,119,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .details-summary.admonition-title:hover{background-color:rgba(0,155,224,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .details-summary.admonition-title:hover{background-color:rgba(0,157,181,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .details-summary.admonition-title:hover{background-color:rgba(0,160,139,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .details-summary.admonition-title:hover{background-color:rgba(0,169,70,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .details-summary.admonition-title:hover{background-color:rgba(87,193,20,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .details-summary.admonition-title:hover{background-color:rgba(224,128,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .details-summary.admonition-title:hover{background-color:rgba(255,51,51,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .details-summary.admonition-title:hover{background-color:rgba(247,0,48,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .details-summary.admonition-title:hover{background-color:rgba(214,0,76,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .details-summary.admonition-title:hover{background-color:rgba(80,0,255,0.1)}.single .content .admonition.quote{background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .details-summary.admonition-title:hover{background-color:rgba(143,143,143,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}.dark .single .content hr{border-top:1px dashed #4a4b50}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}.dark .single .content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}.dark .single .post-footer .post-info{border-bottom:1px solid #4a4b50}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}.dark .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}.dark .single .post-footer .post-info .post-info-line .post-info-mod a:active,.dark .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}.dark .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark .single .post-footer .post-info .post-info-line .post-info-md a:active,.dark .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark .archive .archive-item-link{color:#a9a9b3}.dark .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}.dark .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}.dark .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}.dark .archive .tag-cloud-tags a:active,.dark .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}.dark .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}.dark .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}.dark .home .summary{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}.dark .home .summary .content h2::before,.dark .home .summary .content h3::before,.dark .home .summary .content h4::before,.dark .home .summary .content h5::before,.dark .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}.dark .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}.dark .home .summary .content a:active,.dark .home .summary .content a:hover{color:#fff}.dark .home .summary .content b,.dark .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}.dark .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}.dark .home .summary .post-footer a:active,.dark .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}.dark .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}.dark .home .summary .post-footer .post-tags a:active,.dark .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}.dark header{background-color:#252627}header .logo{min-height:1.25em;height:1.25em;vertical-align:text-bottom;padding-right:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin:0 .5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.dark .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}.dark .open .search input,.dark .search.mobile input{color:#a9a9b3;background-color:#363636}.dark .open .search input::-webkit-input-placeholder,.dark .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}.dark .open .search input:-moz-placeholder,.dark .search.mobile input:-moz-placeholder{color:#5d5d5f}.dark .open .search input::-moz-placeholder,.dark .search.mobile input::-moz-placeholder{color:#5d5d5f}.dark .open .search input:-ms-input-placeholder,.dark .search.mobile input:-ms-input-placeholder{color:#5d5d5f}.dark .open .search input::placeholder,.dark .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}.dark .open .search .search-button,.dark .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 10vw}#header-desktop .header-wrapper .header-title{font-size:1.25rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}.dark #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#4a4b50}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}.dark #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.25rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}.dark #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}.dark #header-mobile .header-container .menu{background:#252627;border-top-color:#4a4b50}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:10vw;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}.dark .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}.dark .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}.dark .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}.dark .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}.dark .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer .dark{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a{color:#2d96bd}.dark .search-dropdown .dropdown-menu .search-footer a{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}.dark .search-dropdown .dropdown-menu .search-footer a:active,.dark .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}.dark .pagination li:before,.dark .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}#header-desktop .header-wrapper{padding:0 8vw}.search-dropdown.desktop{right:8vw}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding:0 4vw}.search-dropdown.desktop{right:4vw}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
+@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}a{text-decoration:none}a{color:#161209}[theme=dark] a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:9999px}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}[theme=dark] .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a{color:#2d96bd}[theme=dark] .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C;padding:0 .4rem}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.25em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma{position:relative;line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight>.chroma .c,.single .content .highlight>.chroma .ch,.single .content .highlight>.chroma .cm,.single .content .highlight>.chroma .c1,.single .content .highlight>.chroma .cs,.single .content .highlight>.chroma .cp,.single .content .highlight>.chroma .cpf{font-style:italic}.single .content .highlight>.chroma .gl{text-decoration:underline}.single .content .highlight>.chroma .p{color:#a9a9b3}.single .content .highlight>.chroma .k{color:#b501a9}.single .content .highlight>.chroma .kc{color:#b501a9}.single .content .highlight>.chroma .kd{color:#b501a9}.single .content .highlight>.chroma .kn{color:#b501a9}.single .content .highlight>.chroma .kp{color:#b501a9}.single .content .highlight>.chroma .kr{color:#b501a9}.single .content .highlight>.chroma .kt{color:#b501a9}.single .content .highlight>.chroma .n{color:#333}.single .content .highlight>.chroma .na{color:#2b77fa}.single .content .highlight>.chroma .nb{color:#f74840}.single .content .highlight>.chroma .bp{color:#f74840}.single .content .highlight>.chroma .nc{color:#cb8100}.single .content .highlight>.chroma .no{color:#2b77fa}.single .content .highlight>.chroma .nd{color:#0086c1}.single .content .highlight>.chroma .ni{color:#2b77fa}.single .content .highlight>.chroma .ne{color:#2b77fa}.single .content .highlight>.chroma .nf{color:#2b77fa}.single .content .highlight>.chroma .fm{color:#1ccad6}.single .content .highlight>.chroma .nl{color:#2b77fa}.single .content .highlight>.chroma .nn{color:#2b77fa}.single .content .highlight>.chroma .nx{color:#333}.single .content .highlight>.chroma .py{color:#2b77fa}.single .content .highlight>.chroma .nt{color:#2b77fa}.single .content .highlight>.chroma .nv{color:#2b77fa}.single .content .highlight>.chroma .vc{color:#2b77fa}.single .content .highlight>.chroma .vg{color:#2b77fa}.single .content .highlight>.chroma .vi{color:#2b77fa}.single .content .highlight>.chroma .vm{color:#2b77fa}.single .content .highlight>.chroma .l{color:#2aa198}.single .content .highlight>.chroma .ld{color:#2aa198}.single .content .highlight>.chroma .s{color:#24a443}.single .content .highlight>.chroma .sa{color:#24a443}.single .content .highlight>.chroma .sb{color:#24a443}.single .content .highlight>.chroma .sc{color:#24a443}.single .content .highlight>.chroma .dl{color:#24a443}.single .content .highlight>.chroma .sd{color:#24a443}.single .content .highlight>.chroma .s2{color:#24a443}.single .content .highlight>.chroma .se{color:#24a443}.single .content .highlight>.chroma .sh{color:#24a443}.single .content .highlight>.chroma .si{color:#24a443}.single .content .highlight>.chroma .sx{color:#24a443}.single .content .highlight>.chroma .sr{color:#24a443}.single .content .highlight>.chroma .s1{color:#24a443}.single .content .highlight>.chroma .ss{color:#24a443}.single .content .highlight>.chroma .m{color:#e2893c}.single .content .highlight>.chroma .mb{color:#e2893c}.single .content .highlight>.chroma .mf{color:#e2893c}.single .content .highlight>.chroma .mh{color:#e2893c}.single .content .highlight>.chroma .mi{color:#e2893c}.single .content .highlight>.chroma .il{color:#e2893c}.single .content .highlight>.chroma .mo{color:#e2893c}.single .content .highlight>.chroma .o{color:#f19b04}.single .content .highlight>.chroma .ow{color:#b501a9}.single .content .highlight>.chroma .c{color:#a0a1a8}.single .content .highlight>.chroma .ch{color:#a0a1a8}.single .content .highlight>.chroma .cm{color:#a0a1a8}.single .content .highlight>.chroma .c1{color:#a0a1a8}.single .content .highlight>.chroma .cs{color:#a0a1a8}.single .content .highlight>.chroma .cp{color:#a0a1a8}.single .content .highlight>.chroma .cpf{color:#a0a1a8}.single .content .highlight>.chroma .g{color:#e72d40}.single .content .highlight>.chroma .gd{color:#e72d40}.single .content .highlight>.chroma .ge{color:#e72d40}.single .content .highlight>.chroma .gr{color:#e72d40}.single .content .highlight>.chroma .gh{color:#e72d40}.single .content .highlight>.chroma .gi{color:#e72d40}.single .content .highlight>.chroma .go{color:#e72d40}.single .content .highlight>.chroma .gp{color:#e72d40}.single .content .highlight>.chroma .gs{color:#e72d40}.single .content .highlight>.chroma .gu{color:#e72d40}.single .content .highlight>.chroma .gt{color:#e72d40}.single .content .highlight>.chroma .w{color:#bbb}[theme=dark] .single .content .highlight>.chroma .p{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .k{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kc{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kd{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kn{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kp{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kr{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kt{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .n{color:#a9b2c0}[theme=dark] .single .content .highlight>.chroma .na{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nb{color:#19b9c4}[theme=dark] .single .content .highlight>.chroma .bp{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .nc{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .no{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nd{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .ni{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .ne{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nf{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .fm{color:#19b9c4}[theme=dark] .single .content .highlight>.chroma .nl{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nn{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nx{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .py{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nt{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nv{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vc{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vg{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vi{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vm{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .l{color:#2aa198}[theme=dark] .single .content .highlight>.chroma .ld{color:#2aa198}[theme=dark] .single .content .highlight>.chroma .s{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sa{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sb{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sc{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .dl{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sd{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .s2{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .se{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sh{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .si{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sx{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sr{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .s1{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .ss{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .m{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mb{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mf{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mh{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mi{color:#db985c}[theme=dark] .single .content .highlight>.chroma .il{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mo{color:#db985c}[theme=dark] .single .content .highlight>.chroma .o{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .ow{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .c{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .ch{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cm{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .c1{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cs{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cp{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cpf{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .g{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gd{color:#f16372}[theme=dark] .single .content .highlight>.chroma .ge{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gr{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gh{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gi{color:#f16372}[theme=dark] .single .content .highlight>.chroma .go{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gp{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gs{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gu{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gt{color:#f16372}[theme=dark] .single .content .highlight>.chroma .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}[theme=dark] .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}[theme=dark] .home .summary .content h2::before,[theme=dark] .home .summary .content h3::before,[theme=dark] .home .summary .content h4::before,[theme=dark] .home .summary .content h5::before,[theme=dark] .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}[theme=dark] .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}[theme=dark] .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}[theme=dark] .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.25em;height:1.25em;vertical-align:text-bottom;padding-right:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin:0 .5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.25rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.25rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a{color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
 
 /*# sourceMappingURL=style.en.min.css.map */
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content b/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content
index ac57cd51..854491ab 100644
--- a/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content
+++ b/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content
@@ -1,3 +1,3 @@
-@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}.dark ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;overflow-wrap:break-word;scrollbar-color:auto}body.dark{color:#a9a9b3;background-color:#292a2d}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}a{text-decoration:none}a{color:#161209}.dark a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}.dark a:active,.dark a:hover{color:#fff}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.dark .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}.dark .fixed-button{color:#5d5d5f;background:#252627}.dark .fixed-button:hover,.dark .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark .toc .toc-content ul a::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}.dark .toc ruby{background:#272C34}.dark .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:9999px}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.dark #toc-auto{border-left:1px solid #4a4b50}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}.dark #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}.dark #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#ededed}.dark #toc-static .toc-title{background:#20252b}#toc-static .toc-title:hover{background:#e6e6e6}.dark #toc-static .toc-title:hover{background:#1c2025}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}.dark #toc-static .toc-content{background-color:#272C34}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}.dark .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}.dark .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}.dark .single .post-meta a:active,.dark .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}.dark .single .content h2,.dark .single .content h3,.dark .single .content h4,.dark .single .content h5,.dark .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark .single .content>h2>.header-mark::before,.dark .single .content>h3>.header-mark::before,.dark .single .content>h4>.header-mark::before,.dark .single .content>h5>.header-mark::before,.dark .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}.dark .single .content b,.dark .single .content strong{color:#ddd}.single .content a{color:#2d96bd}.dark .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}.dark .single .content a:active,.dark .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}.dark .single .content a b,.dark .single .content a strong{color:#55bde2}.single .content .dark a:hover b,.single .content .dark a:hover strong{color:#bdebfc}.single .content ul{margin:.5rem 0;padding-left:2rem;list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}.dark .single .content ruby{background:#272C34}.dark .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}.dark .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}.dark .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}.dark .single .content .table-wrapper>table th,.dark .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}.dark .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}.dark .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C;padding:0 .4rem}.dark .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1.25em;max-height:1.25em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}.dark .single .content code,.dark .single .content pre,.dark .single .content .highlight table,.dark .single .content .highlight tr,.dark .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma{position:relative;line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#acabab;background:#e1e1e1}.dark .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{padding-left:.75rem;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}.dark .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}.dark .single .content .highlight>.chroma .ln,.dark .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}.dark .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}.dark .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight>.chroma .c,.single .content .highlight>.chroma .ch,.single .content .highlight>.chroma .cm,.single .content .highlight>.chroma .c1,.single .content .highlight>.chroma .cs,.single .content .highlight>.chroma .cp,.single .content .highlight>.chroma .cpf{font-style:italic}.single .content .highlight>.chroma .gl{text-decoration:underline}.single .content .highlight>.chroma .p{color:#a9a9b3}.single .content .highlight>.chroma .k{color:#b501a9}.single .content .highlight>.chroma .kc{color:#b501a9}.single .content .highlight>.chroma .kd{color:#b501a9}.single .content .highlight>.chroma .kn{color:#b501a9}.single .content .highlight>.chroma .kp{color:#b501a9}.single .content .highlight>.chroma .kr{color:#b501a9}.single .content .highlight>.chroma .kt{color:#b501a9}.single .content .highlight>.chroma .n{color:#333}.single .content .highlight>.chroma .na{color:#2b77fa}.single .content .highlight>.chroma .nb{color:#f74840}.single .content .highlight>.chroma .bp{color:#f74840}.single .content .highlight>.chroma .nc{color:#cb8100}.single .content .highlight>.chroma .no{color:#2b77fa}.single .content .highlight>.chroma .nd{color:#0086c1}.single .content .highlight>.chroma .ni{color:#2b77fa}.single .content .highlight>.chroma .ne{color:#2b77fa}.single .content .highlight>.chroma .nf{color:#2b77fa}.single .content .highlight>.chroma .fm{color:#1ccad6}.single .content .highlight>.chroma .nl{color:#2b77fa}.single .content .highlight>.chroma .nn{color:#2b77fa}.single .content .highlight>.chroma .nx{color:#333}.single .content .highlight>.chroma .py{color:#2b77fa}.single .content .highlight>.chroma .nt{color:#2b77fa}.single .content .highlight>.chroma .nv{color:#2b77fa}.single .content .highlight>.chroma .vc{color:#2b77fa}.single .content .highlight>.chroma .vg{color:#2b77fa}.single .content .highlight>.chroma .vi{color:#2b77fa}.single .content .highlight>.chroma .vm{color:#2b77fa}.single .content .highlight>.chroma .l{color:#2aa198}.single .content .highlight>.chroma .ld{color:#2aa198}.single .content .highlight>.chroma .s{color:#24a443}.single .content .highlight>.chroma .sa{color:#24a443}.single .content .highlight>.chroma .sb{color:#24a443}.single .content .highlight>.chroma .sc{color:#24a443}.single .content .highlight>.chroma .dl{color:#24a443}.single .content .highlight>.chroma .sd{color:#24a443}.single .content .highlight>.chroma .s2{color:#24a443}.single .content .highlight>.chroma .se{color:#24a443}.single .content .highlight>.chroma .sh{color:#24a443}.single .content .highlight>.chroma .si{color:#24a443}.single .content .highlight>.chroma .sx{color:#24a443}.single .content .highlight>.chroma .sr{color:#24a443}.single .content .highlight>.chroma .s1{color:#24a443}.single .content .highlight>.chroma .ss{color:#24a443}.single .content .highlight>.chroma .m{color:#e2893c}.single .content .highlight>.chroma .mb{color:#e2893c}.single .content .highlight>.chroma .mf{color:#e2893c}.single .content .highlight>.chroma .mh{color:#e2893c}.single .content .highlight>.chroma .mi{color:#e2893c}.single .content .highlight>.chroma .il{color:#e2893c}.single .content .highlight>.chroma .mo{color:#e2893c}.single .content .highlight>.chroma .o{color:#f19b04}.single .content .highlight>.chroma .ow{color:#b501a9}.single .content .highlight>.chroma .c{color:#a0a1a8}.single .content .highlight>.chroma .ch{color:#a0a1a8}.single .content .highlight>.chroma .cm{color:#a0a1a8}.single .content .highlight>.chroma .c1{color:#a0a1a8}.single .content .highlight>.chroma .cs{color:#a0a1a8}.single .content .highlight>.chroma .cp{color:#a0a1a8}.single .content .highlight>.chroma .cpf{color:#a0a1a8}.single .content .highlight>.chroma .g{color:#e72d40}.single .content .highlight>.chroma .gd{color:#e72d40}.single .content .highlight>.chroma .ge{color:#e72d40}.single .content .highlight>.chroma .gr{color:#e72d40}.single .content .highlight>.chroma .gh{color:#e72d40}.single .content .highlight>.chroma .gi{color:#e72d40}.single .content .highlight>.chroma .go{color:#e72d40}.single .content .highlight>.chroma .gp{color:#e72d40}.single .content .highlight>.chroma .gs{color:#e72d40}.single .content .highlight>.chroma .gu{color:#e72d40}.single .content .highlight>.chroma .gt{color:#e72d40}.single .content .highlight>.chroma .w{color:#bbb}.dark .single .content .highlight>.chroma .p{color:#a9a9b3}.dark .single .content .highlight>.chroma .k{color:#d371e3}.dark .single .content .highlight>.chroma .kc{color:#d371e3}.dark .single .content .highlight>.chroma .kd{color:#d371e3}.dark .single .content .highlight>.chroma .kn{color:#d371e3}.dark .single .content .highlight>.chroma .kp{color:#d371e3}.dark .single .content .highlight>.chroma .kr{color:#d371e3}.dark .single .content .highlight>.chroma .kt{color:#d371e3}.dark .single .content .highlight>.chroma .n{color:#a9b2c0}.dark .single .content .highlight>.chroma .na{color:#41b0f5}.dark .single .content .highlight>.chroma .nb{color:#19b9c4}.dark .single .content .highlight>.chroma .bp{color:#ecbf6f}.dark .single .content .highlight>.chroma .nc{color:#ecbf6f}.dark .single .content .highlight>.chroma .no{color:#41b0f5}.dark .single .content .highlight>.chroma .nd{color:#ecbf6f}.dark .single .content .highlight>.chroma .ni{color:#41b0f5}.dark .single .content .highlight>.chroma .ne{color:#41b0f5}.dark .single .content .highlight>.chroma .nf{color:#41b0f5}.dark .single .content .highlight>.chroma .fm{color:#19b9c4}.dark .single .content .highlight>.chroma .nl{color:#41b0f5}.dark .single .content .highlight>.chroma .nn{color:#41b0f5}.dark .single .content .highlight>.chroma .nx{color:#a9a9b3}.dark .single .content .highlight>.chroma .py{color:#41b0f5}.dark .single .content .highlight>.chroma .nt{color:#41b0f5}.dark .single .content .highlight>.chroma .nv{color:#41b0f5}.dark .single .content .highlight>.chroma .vc{color:#41b0f5}.dark .single .content .highlight>.chroma .vg{color:#41b0f5}.dark .single .content .highlight>.chroma .vi{color:#41b0f5}.dark .single .content .highlight>.chroma .vm{color:#41b0f5}.dark .single .content .highlight>.chroma .l{color:#2aa198}.dark .single .content .highlight>.chroma .ld{color:#2aa198}.dark .single .content .highlight>.chroma .s{color:#8cc570}.dark .single .content .highlight>.chroma .sa{color:#8cc570}.dark .single .content .highlight>.chroma .sb{color:#8cc570}.dark .single .content .highlight>.chroma .sc{color:#8cc570}.dark .single .content .highlight>.chroma .dl{color:#8cc570}.dark .single .content .highlight>.chroma .sd{color:#8cc570}.dark .single .content .highlight>.chroma .s2{color:#8cc570}.dark .single .content .highlight>.chroma .se{color:#8cc570}.dark .single .content .highlight>.chroma .sh{color:#8cc570}.dark .single .content .highlight>.chroma .si{color:#8cc570}.dark .single .content .highlight>.chroma .sx{color:#8cc570}.dark .single .content .highlight>.chroma .sr{color:#8cc570}.dark .single .content .highlight>.chroma .s1{color:#8cc570}.dark .single .content .highlight>.chroma .ss{color:#8cc570}.dark .single .content .highlight>.chroma .m{color:#db985c}.dark .single .content .highlight>.chroma .mb{color:#db985c}.dark .single .content .highlight>.chroma .mf{color:#db985c}.dark .single .content .highlight>.chroma .mh{color:#db985c}.dark .single .content .highlight>.chroma .mi{color:#db985c}.dark .single .content .highlight>.chroma .il{color:#db985c}.dark .single .content .highlight>.chroma .mo{color:#db985c}.dark .single .content .highlight>.chroma .o{color:#ecbf6f}.dark .single .content .highlight>.chroma .ow{color:#d371e3}.dark .single .content .highlight>.chroma .c{color:#7e848f}.dark .single .content .highlight>.chroma .ch{color:#7e848f}.dark .single .content .highlight>.chroma .cm{color:#7e848f}.dark .single .content .highlight>.chroma .c1{color:#7e848f}.dark .single .content .highlight>.chroma .cs{color:#7e848f}.dark .single .content .highlight>.chroma .cp{color:#7e848f}.dark .single .content .highlight>.chroma .cpf{color:#7e848f}.dark .single .content .highlight>.chroma .g{color:#f16372}.dark .single .content .highlight>.chroma .gd{color:#f16372}.dark .single .content .highlight>.chroma .ge{color:#f16372}.dark .single .content .highlight>.chroma .gr{color:#f16372}.dark .single .content .highlight>.chroma .gh{color:#f16372}.dark .single .content .highlight>.chroma .gi{color:#f16372}.dark .single .content .highlight>.chroma .go{color:#f16372}.dark .single .content .highlight>.chroma .gp{color:#f16372}.dark .single .content .highlight>.chroma .gs{color:#f16372}.dark .single .content .highlight>.chroma .gu{color:#f16372}.dark .single .content .highlight>.chroma .gt{color:#f16372}.dark .single .content .highlight>.chroma .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}.dark .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}.dark .single .content .gist .gist-meta a:active,.dark .single .content .gist .gist-meta a:hover{color:#bdebfc}.dark .single .content .gist .gist-meta{background-color:#1c2025}.dark .single .content .gist .highlight{background:#141414}.dark .single .content .gist .blob-num,.dark .single .content .gist .blob-code-inner,.dark .single .content .gist .highlight,.dark .single .content .gist .pl-enm,.dark .single .content .gist .pl-ko,.dark .single .content .gist .pl-mo,.dark .single .content .gist .pl-mp1 .pl-sf,.dark .single .content .gist .pl-ms,.dark .single .content .gist .pl-pdc1,.dark .single .content .gist .pl-scp,.dark .single .content .gist .pl-smc,.dark .single .content .gist .pl-som,.dark .single .content .gist .pl-va,.dark .single .content .gist .pl-vpf,.dark .single .content .gist .pl-vpu,.dark .single .content .gist .pl-mdr{color:#aab1bf}.dark .single .content .gist .pl-mb,.dark .single .content .gist .pl-pdb{font-weight:700}.dark .single .content .gist .pl-c,.dark .single .content .gist .pl-c span,.dark .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}.dark .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}.dark .single .content .gist .pl-ef,.dark .single .content .gist .pl-en,.dark .single .content .gist .pl-enf,.dark .single .content .gist .pl-eoai,.dark .single .content .gist .pl-kos,.dark .single .content .gist .pl-mh .pl-pdh,.dark .single .content .gist .pl-mr{color:#61afef}.dark .single .content .gist .pl-ens,.dark .single .content .gist .pl-vi{color:#be5046}.dark .single .content .gist .pl-enti,.dark .single .content .gist .pl-mai .pl-sf,.dark .single .content .gist .pl-ml,.dark .single .content .gist .pl-sf,.dark .single .content .gist .pl-sr,.dark .single .content .gist .pl-sr .pl-sra,.dark .single .content .gist .pl-src,.dark .single .content .gist .pl-st,.dark .single .content .gist .pl-vo{color:#56b5c2}.dark .single .content .gist .pl-eoi,.dark .single .content .gist .pl-mri,.dark .single .content .gist .pl-pds,.dark .single .content .gist .pl-pse .pl-s1,.dark .single .content .gist .pl-s,.dark .single .content .gist .pl-s1{color:#97c279}.dark .single .content .gist .pl-k,.dark .single .content .gist .pl-kolp,.dark .single .content .gist .pl-mc,.dark .single .content .gist .pl-pde{color:#c578dd}.dark .single .content .gist .pl-mi,.dark .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}.dark .single .content .gist .pl-mp,.dark .single .content .gist .pl-stp{color:#818896}.dark .single .content .gist .pl-mdh,.dark .single .content .gist .pl-mdi,.dark .single .content .gist .pl-mdr{font-weight:400}.dark .single .content .gist .pl-mdht,.dark .single .content .gist .pl-mi1{color:#97c279;background:#020}.dark .single .content .gist .pl-md,.dark .single .content .gist .pl-mdhf{color:#df6b75;background:#200}.dark .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}.dark .single .content .gist .pl-ib{background:#df6b75}.dark .single .content .gist .pl-ii{background:#e0c184;color:#fff}.dark .single .content .gist .pl-iu{background:#e05151}.dark .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}.dark .single .content .gist .pl-c1,.dark .single .content .gist .pl-cn,.dark .single .content .gist .pl-e,.dark .single .content .gist .pl-eoa,.dark .single .content .gist .pl-eoac,.dark .single .content .gist .pl-eoac .pl-pde,.dark .single .content .gist .pl-kou,.dark .single .content .gist .pl-mm,.dark .single .content .gist .pl-mp .pl-s3,.dark .single .content .gist .pl-mq,.dark .single .content .gist .pl-s3,.dark .single .content .gist .pl-sok,.dark .single .content .gist .pl-sv,.dark .single .content .gist .pl-mb{color:#d19965}.dark .single .content .gist .pl-enc,.dark .single .content .gist .pl-entc,.dark .single .content .gist .pl-pse .pl-s2,.dark .single .content .gist .pl-s2,.dark .single .content .gist .pl-sc,.dark .single .content .gist .pl-smp,.dark .single .content .gist .pl-sr .pl-sre,.dark .single .content .gist .pl-stj,.dark .single .content .gist .pl-v,.dark .single .content .gist .pl-pdb{color:#e4bf7a}.dark .single .content .gist .pl-ent,.dark .single .content .gist .pl-entl,.dark .single .content .gist .pl-entm,.dark .single .content .gist .pl-mh,.dark .single .content .gist .pl-pdv,.dark .single .content .gist .pl-smi,.dark .single .content .gist .pl-sol,.dark .single .content .gist .pl-mdh,.dark .single .content .gist .pl-mdi{color:#df6b75}.dark .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{margin:0 -0.75rem;padding:.2rem .75rem .2rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition .details-summary.admonition-title:hover{background-color:rgba(37,119,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;left:.6rem;top:.6rem}.single .content .admonition i.details-icon{position:absolute;top:.5rem;right:.5rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .details-summary.admonition-title:hover{background-color:rgba(37,119,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .details-summary.admonition-title:hover{background-color:rgba(0,155,224,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .details-summary.admonition-title:hover{background-color:rgba(0,157,181,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .details-summary.admonition-title:hover{background-color:rgba(0,160,139,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .details-summary.admonition-title:hover{background-color:rgba(0,169,70,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .details-summary.admonition-title:hover{background-color:rgba(87,193,20,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .details-summary.admonition-title:hover{background-color:rgba(224,128,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .details-summary.admonition-title:hover{background-color:rgba(255,51,51,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .details-summary.admonition-title:hover{background-color:rgba(247,0,48,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .details-summary.admonition-title:hover{background-color:rgba(214,0,76,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .details-summary.admonition-title:hover{background-color:rgba(80,0,255,0.1)}.single .content .admonition.quote{background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .details-summary.admonition-title:hover{background-color:rgba(143,143,143,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}.dark .single .content hr{border-top:1px dashed #4a4b50}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}.dark .single .content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}.dark .single .post-footer .post-info{border-bottom:1px solid #4a4b50}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}.dark .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}.dark .single .post-footer .post-info .post-info-line .post-info-mod a:active,.dark .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}.dark .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark .single .post-footer .post-info .post-info-line .post-info-md a:active,.dark .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark .archive .archive-item-link{color:#a9a9b3}.dark .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}.dark .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}.dark .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}.dark .archive .tag-cloud-tags a:active,.dark .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}.dark .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}.dark .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}.dark .home .summary{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}.dark .home .summary .content h2::before,.dark .home .summary .content h3::before,.dark .home .summary .content h4::before,.dark .home .summary .content h5::before,.dark .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}.dark .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}.dark .home .summary .content a:active,.dark .home .summary .content a:hover{color:#fff}.dark .home .summary .content b,.dark .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}.dark .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}.dark .home .summary .post-footer a:active,.dark .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}.dark .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}.dark .home .summary .post-footer .post-tags a:active,.dark .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}.dark header{background-color:#252627}header .logo{min-height:1.25em;height:1.25em;vertical-align:text-bottom;padding-right:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin:0 .5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.dark .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}.dark .open .search input,.dark .search.mobile input{color:#a9a9b3;background-color:#363636}.dark .open .search input::-webkit-input-placeholder,.dark .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}.dark .open .search input:-moz-placeholder,.dark .search.mobile input:-moz-placeholder{color:#5d5d5f}.dark .open .search input::-moz-placeholder,.dark .search.mobile input::-moz-placeholder{color:#5d5d5f}.dark .open .search input:-ms-input-placeholder,.dark .search.mobile input:-ms-input-placeholder{color:#5d5d5f}.dark .open .search input::placeholder,.dark .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}.dark .open .search .search-button,.dark .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 10vw}#header-desktop .header-wrapper .header-title{font-size:1.25rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}.dark #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#4a4b50}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}.dark #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.25rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}.dark #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}.dark #header-mobile .header-container .menu{background:#252627;border-top-color:#4a4b50}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:10vw;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}.dark .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}.dark .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}.dark .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}.dark .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}.dark .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer .dark{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a{color:#2d96bd}.dark .search-dropdown .dropdown-menu .search-footer a{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}.dark .search-dropdown .dropdown-menu .search-footer a:active,.dark .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}.dark .pagination li:before,.dark .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}#header-desktop .header-wrapper{padding:0 8vw}.search-dropdown.desktop{right:8vw}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding:0 4vw}.search-dropdown.desktop{right:4vw}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
+@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}a{text-decoration:none}a{color:#161209}[theme=dark] a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:9999px}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}[theme=dark] .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a{color:#2d96bd}[theme=dark] .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C;padding:0 .4rem}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.25em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma{position:relative;line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight>.chroma .c,.single .content .highlight>.chroma .ch,.single .content .highlight>.chroma .cm,.single .content .highlight>.chroma .c1,.single .content .highlight>.chroma .cs,.single .content .highlight>.chroma .cp,.single .content .highlight>.chroma .cpf{font-style:italic}.single .content .highlight>.chroma .gl{text-decoration:underline}.single .content .highlight>.chroma .p{color:#a9a9b3}.single .content .highlight>.chroma .k{color:#b501a9}.single .content .highlight>.chroma .kc{color:#b501a9}.single .content .highlight>.chroma .kd{color:#b501a9}.single .content .highlight>.chroma .kn{color:#b501a9}.single .content .highlight>.chroma .kp{color:#b501a9}.single .content .highlight>.chroma .kr{color:#b501a9}.single .content .highlight>.chroma .kt{color:#b501a9}.single .content .highlight>.chroma .n{color:#333}.single .content .highlight>.chroma .na{color:#2b77fa}.single .content .highlight>.chroma .nb{color:#f74840}.single .content .highlight>.chroma .bp{color:#f74840}.single .content .highlight>.chroma .nc{color:#cb8100}.single .content .highlight>.chroma .no{color:#2b77fa}.single .content .highlight>.chroma .nd{color:#0086c1}.single .content .highlight>.chroma .ni{color:#2b77fa}.single .content .highlight>.chroma .ne{color:#2b77fa}.single .content .highlight>.chroma .nf{color:#2b77fa}.single .content .highlight>.chroma .fm{color:#1ccad6}.single .content .highlight>.chroma .nl{color:#2b77fa}.single .content .highlight>.chroma .nn{color:#2b77fa}.single .content .highlight>.chroma .nx{color:#333}.single .content .highlight>.chroma .py{color:#2b77fa}.single .content .highlight>.chroma .nt{color:#2b77fa}.single .content .highlight>.chroma .nv{color:#2b77fa}.single .content .highlight>.chroma .vc{color:#2b77fa}.single .content .highlight>.chroma .vg{color:#2b77fa}.single .content .highlight>.chroma .vi{color:#2b77fa}.single .content .highlight>.chroma .vm{color:#2b77fa}.single .content .highlight>.chroma .l{color:#2aa198}.single .content .highlight>.chroma .ld{color:#2aa198}.single .content .highlight>.chroma .s{color:#24a443}.single .content .highlight>.chroma .sa{color:#24a443}.single .content .highlight>.chroma .sb{color:#24a443}.single .content .highlight>.chroma .sc{color:#24a443}.single .content .highlight>.chroma .dl{color:#24a443}.single .content .highlight>.chroma .sd{color:#24a443}.single .content .highlight>.chroma .s2{color:#24a443}.single .content .highlight>.chroma .se{color:#24a443}.single .content .highlight>.chroma .sh{color:#24a443}.single .content .highlight>.chroma .si{color:#24a443}.single .content .highlight>.chroma .sx{color:#24a443}.single .content .highlight>.chroma .sr{color:#24a443}.single .content .highlight>.chroma .s1{color:#24a443}.single .content .highlight>.chroma .ss{color:#24a443}.single .content .highlight>.chroma .m{color:#e2893c}.single .content .highlight>.chroma .mb{color:#e2893c}.single .content .highlight>.chroma .mf{color:#e2893c}.single .content .highlight>.chroma .mh{color:#e2893c}.single .content .highlight>.chroma .mi{color:#e2893c}.single .content .highlight>.chroma .il{color:#e2893c}.single .content .highlight>.chroma .mo{color:#e2893c}.single .content .highlight>.chroma .o{color:#f19b04}.single .content .highlight>.chroma .ow{color:#b501a9}.single .content .highlight>.chroma .c{color:#a0a1a8}.single .content .highlight>.chroma .ch{color:#a0a1a8}.single .content .highlight>.chroma .cm{color:#a0a1a8}.single .content .highlight>.chroma .c1{color:#a0a1a8}.single .content .highlight>.chroma .cs{color:#a0a1a8}.single .content .highlight>.chroma .cp{color:#a0a1a8}.single .content .highlight>.chroma .cpf{color:#a0a1a8}.single .content .highlight>.chroma .g{color:#e72d40}.single .content .highlight>.chroma .gd{color:#e72d40}.single .content .highlight>.chroma .ge{color:#e72d40}.single .content .highlight>.chroma .gr{color:#e72d40}.single .content .highlight>.chroma .gh{color:#e72d40}.single .content .highlight>.chroma .gi{color:#e72d40}.single .content .highlight>.chroma .go{color:#e72d40}.single .content .highlight>.chroma .gp{color:#e72d40}.single .content .highlight>.chroma .gs{color:#e72d40}.single .content .highlight>.chroma .gu{color:#e72d40}.single .content .highlight>.chroma .gt{color:#e72d40}.single .content .highlight>.chroma .w{color:#bbb}[theme=dark] .single .content .highlight>.chroma .p{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .k{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kc{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kd{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kn{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kp{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kr{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .kt{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .n{color:#a9b2c0}[theme=dark] .single .content .highlight>.chroma .na{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nb{color:#19b9c4}[theme=dark] .single .content .highlight>.chroma .bp{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .nc{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .no{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nd{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .ni{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .ne{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nf{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .fm{color:#19b9c4}[theme=dark] .single .content .highlight>.chroma .nl{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nn{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nx{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .py{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nt{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .nv{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vc{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vg{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vi{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .vm{color:#41b0f5}[theme=dark] .single .content .highlight>.chroma .l{color:#2aa198}[theme=dark] .single .content .highlight>.chroma .ld{color:#2aa198}[theme=dark] .single .content .highlight>.chroma .s{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sa{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sb{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sc{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .dl{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sd{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .s2{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .se{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sh{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .si{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sx{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .sr{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .s1{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .ss{color:#8cc570}[theme=dark] .single .content .highlight>.chroma .m{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mb{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mf{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mh{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mi{color:#db985c}[theme=dark] .single .content .highlight>.chroma .il{color:#db985c}[theme=dark] .single .content .highlight>.chroma .mo{color:#db985c}[theme=dark] .single .content .highlight>.chroma .o{color:#ecbf6f}[theme=dark] .single .content .highlight>.chroma .ow{color:#d371e3}[theme=dark] .single .content .highlight>.chroma .c{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .ch{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cm{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .c1{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cs{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cp{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .cpf{color:#7e848f}[theme=dark] .single .content .highlight>.chroma .g{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gd{color:#f16372}[theme=dark] .single .content .highlight>.chroma .ge{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gr{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gh{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gi{color:#f16372}[theme=dark] .single .content .highlight>.chroma .go{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gp{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gs{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gu{color:#f16372}[theme=dark] .single .content .highlight>.chroma .gt{color:#f16372}[theme=dark] .single .content .highlight>.chroma .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}[theme=dark] .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}[theme=dark] .home .summary .content h2::before,[theme=dark] .home .summary .content h3::before,[theme=dark] .home .summary .content h4::before,[theme=dark] .home .summary .content h5::before,[theme=dark] .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}[theme=dark] .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}[theme=dark] .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}[theme=dark] .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.25em;height:1.25em;vertical-align:text-bottom;padding-right:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin:0 .5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.25rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.25rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a{color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
 
 /*# sourceMappingURL=style.zh-cn.min.css.map */
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/lib/aplayer/dark.scss_be0d6bec1a51ff037db8cc74d6ec1271.content b/resources/_gen/assets/scss/lib/aplayer/dark.scss_be0d6bec1a51ff037db8cc74d6ec1271.content
index a8ee0036..da387ce5 100644
--- a/resources/_gen/assets/scss/lib/aplayer/dark.scss_be0d6bec1a51ff037db8cc74d6ec1271.content
+++ b/resources/_gen/assets/scss/lib/aplayer/dark.scss_be0d6bec1a51ff037db8cc74d6ec1271.content
@@ -1,3 +1,3 @@
-.dark .aplayer{background:#212121}.dark .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark .aplayer .aplayer-body{background-color:#212121}.dark .aplayer .aplayer-info{border-top-color:#212121}.dark .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark .aplayer .aplayer-list{background-color:#212121}.dark .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}.dark .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}.dark .aplayer .aplayer-lrc p{color:#fff}.dark .aplayer .aplayer-miniswitcher{background:#484848}.dark .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}
+[theme=dark] .aplayer{background:#212121}[theme=dark] .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}[theme=dark] .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}[theme=dark] .aplayer .aplayer-body{background-color:#212121}[theme=dark] .aplayer .aplayer-info{border-top-color:#212121}[theme=dark] .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}[theme=dark] .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}[theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}[theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}[theme=dark] .aplayer .aplayer-list{background-color:#212121}[theme=dark] .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}[theme=dark] .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}[theme=dark] .aplayer .aplayer-list li{color:#fff;border-top-color:#666}[theme=dark] .aplayer .aplayer-list li:hover{background:#4e4e4e}[theme=dark] .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}[theme=dark] .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}[theme=dark] .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}[theme=dark] .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}[theme=dark] .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}[theme=dark] .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}[theme=dark] .aplayer .aplayer-lrc p{color:#fff}[theme=dark] .aplayer .aplayer-miniswitcher{background:#484848}[theme=dark] .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}
 
 /*# sourceMappingURL=dark.min.css.map */
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_43d09a0fb297c4cc88d4122515a2e889.content b/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_43d09a0fb297c4cc88d4122515a2e889.content
index 578151f5..ae6a23b9 100644
--- a/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_43d09a0fb297c4cc88d4122515a2e889.content
+++ b/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_43d09a0fb297c4cc88d4122515a2e889.content
@@ -1,3 +1,3 @@
-.page .mermaid{width:100%;margin:3% auto;text-align:center}.page .mermaid>svg{max-width:100%}.page .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.page .mermaid .label text{fill:#333}.page .mermaid .node rect,.page .mermaid .node circle,.page .mermaid .node ellipse,.page .mermaid .node polygon,.page .mermaid .node path{fill:#eee;stroke:#999;stroke-width:1px}.page .mermaid .node .label{text-align:center}.page .mermaid .node.clickable{cursor:pointer}.page .mermaid .arrowheadPath{fill:#333}.page .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.page .mermaid .edgeLabel{background-color:#fff;text-align:center}.page .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.page .mermaid .cluster text{fill:#333}.page .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.page .mermaid .actor{stroke:#999;fill:#eee}.page .mermaid text.actor{fill:#333;stroke:none}.page .mermaid .actor-line{stroke:#666}.page .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .mermaid #arrowhead{fill:#333}.page .mermaid .sequenceNumber{fill:#fff}.page .mermaid #sequencenumber{fill:#333}.page .mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.page .mermaid .messageText{fill:#333;stroke:none}.page .mermaid .labelBox{stroke:#999;fill:#eee}.page .mermaid .labelText{fill:#333;stroke:none}.page .mermaid .loopText{fill:#333;stroke:none}.page .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.page .mermaid .note{stroke:#770;fill:#ffa}.page .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.page .mermaid .activation0{fill:#f4f4f4;stroke:#666}.page .mermaid .activation1{fill:#f4f4f4;stroke:#666}.page .mermaid .activation2{fill:#f4f4f4;stroke:#666}.page .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .section{stroke:none;opacity:0.2}.page .mermaid .section0{fill:#80b3e6}.page .mermaid .section2{fill:#80b3e6}.page .mermaid .section1,.page .mermaid .section3{fill:#fff;opacity:0.2}.page .mermaid .sectionTitle0{fill:#333}.page .mermaid .sectionTitle1{fill:#333}.page .mermaid .sectionTitle2{fill:#333}.page .mermaid .sectionTitle3{fill:#333}.page .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .grid .tick{stroke:#e6e6e6;opacity:0.8;shape-rendering:crispEdges}.page .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333}.page .mermaid .grid path{stroke-width:0}.page .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.page .mermaid .task{stroke-width:2}.page .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .taskText:not([font-size]){font-size:11px}.page .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.page .mermaid .task.clickable{cursor:pointer}.page .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskText0,.page .mermaid .taskText1,.page .mermaid .taskText2,.page .mermaid .taskText3{fill:#fff}.page .mermaid .task0,.page .mermaid .task1,.page .mermaid .task2,.page .mermaid .task3{fill:#26a;stroke:#1a4d80}.page .mermaid .taskTextOutside0,.page .mermaid .taskTextOutside2{fill:#333 !important}.page .mermaid .taskTextOutside1,.page .mermaid .taskTextOutside3{fill:#333 !important}.page .mermaid .active0,.page .mermaid .active1,.page .mermaid .active2,.page .mermaid .active3{fill:#eee;stroke:#1a4d80}.page .mermaid .activeText0,.page .mermaid .activeText1,.page .mermaid .activeText2,.page .mermaid .activeText3{fill:#333}.page .mermaid .done0,.page .mermaid .done1,.page .mermaid .done2,.page .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.page .mermaid .doneText0,.page .mermaid .doneText1,.page .mermaid .doneText2,.page .mermaid .doneText3{fill:#333}.page .mermaid .crit0,.page .mermaid .crit1,.page .mermaid .crit2,.page .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.page .mermaid .activeCrit0,.page .mermaid .activeCrit1,.page .mermaid .activeCrit2,.page .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.page .mermaid .doneCrit0,.page .mermaid .doneCrit1,.page .mermaid .doneCrit2,.page .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.page .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.page .mermaid .milestoneText{font-style:italic}.page .mermaid .doneCritText0,.page .mermaid .doneCritText1,.page .mermaid .doneCritText2,.page .mermaid .doneCritText3{fill:#333}.page .mermaid .activeCritText0,.page .mermaid .activeCritText1,.page .mermaid .activeCritText2,.page .mermaid .activeCritText3{fill:#333}.page .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.page .mermaid g.classGroup text .title{font-weight:bolder}.page .mermaid g.clickable{cursor:pointer}.page .mermaid g.classGroup rect{fill:#eee;stroke:#999}.page .mermaid g.classGroup line{stroke:#999;stroke-width:1}.page .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .mermaid .classLabel .label{fill:#999;font-size:10px}.page .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.page .mermaid .dashed-line{stroke-dasharray:3}.page .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.page .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.page .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid .commit-id,.page .mermaid .commit-msg,.page .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.page .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.page .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.page .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.page .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.page .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.page .mermaid .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.page .mermaid .state-note{stroke:#770;fill:#ffa}.page .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.page .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark .page .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.dark .page .mermaid .label text{fill:#333}.dark .page .mermaid .node rect,.dark .page .mermaid .node circle,.dark .page .mermaid .node ellipse,.dark .page .mermaid .node polygon,.dark .page .mermaid .node path{fill:#BDD5EA;stroke:purple;stroke-width:1px}.dark .page .mermaid .node .label{text-align:center}.dark .page .mermaid .node.clickable{cursor:pointer}.dark .page .mermaid .arrowheadPath{fill:#d3d3d3}.dark .page .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.dark .page .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark .page .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.dark .page .mermaid .cluster text{fill:#F9FFFE}.dark .page .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.dark .page .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}.dark .page .mermaid text.actor{fill:#000;stroke:none}.dark .page .mermaid .actor-line{stroke:#d3d3d3}.dark .page .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark .page .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark .page .mermaid #arrowhead{fill:#d3d3d3}.dark .page .mermaid .sequenceNumber{fill:#fff}.dark .page .mermaid #sequencenumber{fill:#d3d3d3}.dark .page .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.dark .page .mermaid .messageText{fill:#d3d3d3;stroke:none}.dark .page .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}.dark .page .mermaid .labelText{fill:#323D47;stroke:none}.dark .page .mermaid .loopText{fill:#d3d3d3;stroke:none}.dark .page .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.dark .page .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark .page .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.dark .page .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark .page .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark .page .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark .page .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid .section{stroke:none;opacity:0.2}.dark .page .mermaid .section0{fill:rgba(255,255,255,0.3)}.dark .page .mermaid .section2{fill:#EAE8B9}.dark .page .mermaid .section1,.dark .page .mermaid .section3{fill:#fff;opacity:0.2}.dark .page .mermaid .sectionTitle0{fill:#F9FFFE}.dark .page .mermaid .sectionTitle1{fill:#F9FFFE}.dark .page .mermaid .sectionTitle2{fill:#F9FFFE}.dark .page .mermaid .sectionTitle3{fill:#F9FFFE}.dark .page .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}.dark .page .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#d3d3d3}.dark .page .mermaid .grid path{stroke-width:0}.dark .page .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}.dark .page .mermaid .task{stroke-width:2}.dark .page .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid .taskText:not([font-size]){font-size:11px}.dark .page .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.dark .page .mermaid .task.clickable{cursor:pointer}.dark .page .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark .page .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark .page .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark .page .mermaid .taskText0,.dark .page .mermaid .taskText1,.dark .page .mermaid .taskText2,.dark .page .mermaid .taskText3{fill:#323D47}.dark .page .mermaid .task0,.dark .page .mermaid .task1,.dark .page .mermaid .task2,.dark .page .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.dark .page .mermaid .taskTextOutside0,.dark .page .mermaid .taskTextOutside2{fill:#d3d3d3 !important}.dark .page .mermaid .taskTextOutside1,.dark .page .mermaid .taskTextOutside3{fill:#d3d3d3 !important}.dark .page .mermaid .active0,.dark .page .mermaid .active1,.dark .page .mermaid .active2,.dark .page .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.dark .page .mermaid .activeText0,.dark .page .mermaid .activeText1,.dark .page .mermaid .activeText2,.dark .page .mermaid .activeText3{fill:#323D47}.dark .page .mermaid .done0,.dark .page .mermaid .done1,.dark .page .mermaid .done2,.dark .page .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.dark .page .mermaid .doneText0,.dark .page .mermaid .doneText1,.dark .page .mermaid .doneText2,.dark .page .mermaid .doneText3{fill:#323D47}.dark .page .mermaid .crit0,.dark .page .mermaid .crit1,.dark .page .mermaid .crit2,.dark .page .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.dark .page .mermaid .activeCrit0,.dark .page .mermaid .activeCrit1,.dark .page .mermaid .activeCrit2,.dark .page .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.dark .page .mermaid .doneCrit0,.dark .page .mermaid .doneCrit1,.dark .page .mermaid .doneCrit2,.dark .page .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark .page .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.dark .page .mermaid .milestoneText{font-style:italic}.dark .page .mermaid .doneCritText0,.dark .page .mermaid .doneCritText1,.dark .page .mermaid .doneCritText2,.dark .page .mermaid .doneCritText3{fill:#323D47}.dark .page .mermaid .activeCritText0,.dark .page .mermaid .activeCritText1,.dark .page .mermaid .activeCritText2,.dark .page .mermaid .activeCritText3{fill:#323D47}.dark .page .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#d3d3d3;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.dark .page .mermaid g.classGroup text .title{font-weight:bolder}.dark .page .mermaid g.clickable{cursor:pointer}.dark .page .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}.dark .page .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark .page .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark .page .mermaid .classLabel .label{fill:purple;font-size:10px}.dark .page .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark .page .mermaid .dashed-line{stroke-dasharray:3}.dark .page .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark .page .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark .page .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark .page .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark .page .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark .page .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark .page .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark .page .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark .page .mermaid .commit-id,.dark .page .mermaid .commit-msg,.dark .page .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark .page .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark .page .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}.dark .page .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark .page .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark .page .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.dark .page .mermaid .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.dark .page .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark .page .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.dark .page .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark .page .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark .page .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}
+.page .mermaid{width:100%;margin:3% auto;text-align:center}.page .mermaid>svg{max-width:100%}.page .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.page .mermaid .label text{fill:#333}.page .mermaid .node rect,.page .mermaid .node circle,.page .mermaid .node ellipse,.page .mermaid .node polygon,.page .mermaid .node path{fill:#eee;stroke:#999;stroke-width:1px}.page .mermaid .node .label{text-align:center}.page .mermaid .node.clickable{cursor:pointer}.page .mermaid .arrowheadPath{fill:#333}.page .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.page .mermaid .edgeLabel{background-color:#fff;text-align:center}.page .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.page .mermaid .cluster text{fill:#333}.page .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.page .mermaid .actor{stroke:#999;fill:#eee}.page .mermaid text.actor{fill:#333;stroke:none}.page .mermaid .actor-line{stroke:#666}.page .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .mermaid #arrowhead{fill:#333}.page .mermaid .sequenceNumber{fill:#fff}.page .mermaid #sequencenumber{fill:#333}.page .mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.page .mermaid .messageText{fill:#333;stroke:none}.page .mermaid .labelBox{stroke:#999;fill:#eee}.page .mermaid .labelText{fill:#333;stroke:none}.page .mermaid .loopText{fill:#333;stroke:none}.page .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.page .mermaid .note{stroke:#770;fill:#ffa}.page .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.page .mermaid .activation0{fill:#f4f4f4;stroke:#666}.page .mermaid .activation1{fill:#f4f4f4;stroke:#666}.page .mermaid .activation2{fill:#f4f4f4;stroke:#666}.page .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .section{stroke:none;opacity:0.2}.page .mermaid .section0{fill:#80b3e6}.page .mermaid .section2{fill:#80b3e6}.page .mermaid .section1,.page .mermaid .section3{fill:#fff;opacity:0.2}.page .mermaid .sectionTitle0{fill:#333}.page .mermaid .sectionTitle1{fill:#333}.page .mermaid .sectionTitle2{fill:#333}.page .mermaid .sectionTitle3{fill:#333}.page .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .grid .tick{stroke:#e6e6e6;opacity:0.8;shape-rendering:crispEdges}.page .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333}.page .mermaid .grid path{stroke-width:0}.page .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.page .mermaid .task{stroke-width:2}.page .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .taskText:not([font-size]){font-size:11px}.page .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.page .mermaid .task.clickable{cursor:pointer}.page .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskText0,.page .mermaid .taskText1,.page .mermaid .taskText2,.page .mermaid .taskText3{fill:#fff}.page .mermaid .task0,.page .mermaid .task1,.page .mermaid .task2,.page .mermaid .task3{fill:#26a;stroke:#1a4d80}.page .mermaid .taskTextOutside0,.page .mermaid .taskTextOutside2{fill:#333 !important}.page .mermaid .taskTextOutside1,.page .mermaid .taskTextOutside3{fill:#333 !important}.page .mermaid .active0,.page .mermaid .active1,.page .mermaid .active2,.page .mermaid .active3{fill:#eee;stroke:#1a4d80}.page .mermaid .activeText0,.page .mermaid .activeText1,.page .mermaid .activeText2,.page .mermaid .activeText3{fill:#333}.page .mermaid .done0,.page .mermaid .done1,.page .mermaid .done2,.page .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.page .mermaid .doneText0,.page .mermaid .doneText1,.page .mermaid .doneText2,.page .mermaid .doneText3{fill:#333}.page .mermaid .crit0,.page .mermaid .crit1,.page .mermaid .crit2,.page .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.page .mermaid .activeCrit0,.page .mermaid .activeCrit1,.page .mermaid .activeCrit2,.page .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.page .mermaid .doneCrit0,.page .mermaid .doneCrit1,.page .mermaid .doneCrit2,.page .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.page .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.page .mermaid .milestoneText{font-style:italic}.page .mermaid .doneCritText0,.page .mermaid .doneCritText1,.page .mermaid .doneCritText2,.page .mermaid .doneCritText3{fill:#333}.page .mermaid .activeCritText0,.page .mermaid .activeCritText1,.page .mermaid .activeCritText2,.page .mermaid .activeCritText3{fill:#333}.page .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.page .mermaid g.classGroup text .title{font-weight:bolder}.page .mermaid g.clickable{cursor:pointer}.page .mermaid g.classGroup rect{fill:#eee;stroke:#999}.page .mermaid g.classGroup line{stroke:#999;stroke-width:1}.page .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .mermaid .classLabel .label{fill:#999;font-size:10px}.page .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.page .mermaid .dashed-line{stroke-dasharray:3}.page .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.page .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.page .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid .commit-id,.page .mermaid .commit-msg,.page .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.page .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.page .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.page .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.page .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.page .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.page .mermaid .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.page .mermaid .state-note{stroke:#770;fill:#ffa}.page .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.page .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}[theme=dark] .page .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}[theme=dark] .page .mermaid .label text{fill:#333}[theme=dark] .page .mermaid .node rect,[theme=dark] .page .mermaid .node circle,[theme=dark] .page .mermaid .node ellipse,[theme=dark] .page .mermaid .node polygon,[theme=dark] .page .mermaid .node path{fill:#BDD5EA;stroke:purple;stroke-width:1px}[theme=dark] .page .mermaid .node .label{text-align:center}[theme=dark] .page .mermaid .node.clickable{cursor:pointer}[theme=dark] .page .mermaid .arrowheadPath{fill:#d3d3d3}[theme=dark] .page .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}[theme=dark] .page .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}[theme=dark] .page .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}[theme=dark] .page .mermaid .cluster text{fill:#F9FFFE}[theme=dark] .page .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}[theme=dark] .page .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}[theme=dark] .page .mermaid text.actor{fill:#000;stroke:none}[theme=dark] .page .mermaid .actor-line{stroke:#d3d3d3}[theme=dark] .page .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}[theme=dark] .page .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}[theme=dark] .page .mermaid #arrowhead{fill:#d3d3d3}[theme=dark] .page .mermaid .sequenceNumber{fill:#fff}[theme=dark] .page .mermaid #sequencenumber{fill:#d3d3d3}[theme=dark] .page .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}[theme=dark] .page .mermaid .messageText{fill:#d3d3d3;stroke:none}[theme=dark] .page .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}[theme=dark] .page .mermaid .labelText{fill:#323D47;stroke:none}[theme=dark] .page .mermaid .loopText{fill:#d3d3d3;stroke:none}[theme=dark] .page .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}[theme=dark] .page .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}[theme=dark] .page .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}[theme=dark] .page .mermaid .activation0{fill:#f4f4f4;stroke:#666}[theme=dark] .page .mermaid .activation1{fill:#f4f4f4;stroke:#666}[theme=dark] .page .mermaid .activation2{fill:#f4f4f4;stroke:#666}[theme=dark] .page .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid .section{stroke:none;opacity:0.2}[theme=dark] .page .mermaid .section0{fill:rgba(255,255,255,0.3)}[theme=dark] .page .mermaid .section2{fill:#EAE8B9}[theme=dark] .page .mermaid .section1,[theme=dark] .page .mermaid .section3{fill:#fff;opacity:0.2}[theme=dark] .page .mermaid .sectionTitle0{fill:#F9FFFE}[theme=dark] .page .mermaid .sectionTitle1{fill:#F9FFFE}[theme=dark] .page .mermaid .sectionTitle2{fill:#F9FFFE}[theme=dark] .page .mermaid .sectionTitle3{fill:#F9FFFE}[theme=dark] .page .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}[theme=dark] .page .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#d3d3d3}[theme=dark] .page .mermaid .grid path{stroke-width:0}[theme=dark] .page .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}[theme=dark] .page .mermaid .task{stroke-width:2}[theme=dark] .page .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid .taskText:not([font-size]){font-size:11px}[theme=dark] .page .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}[theme=dark] .page .mermaid .task.clickable{cursor:pointer}[theme=dark] .page .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}[theme=dark] .page .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}[theme=dark] .page .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}[theme=dark] .page .mermaid .taskText0,[theme=dark] .page .mermaid .taskText1,[theme=dark] .page .mermaid .taskText2,[theme=dark] .page .mermaid .taskText3{fill:#323D47}[theme=dark] .page .mermaid .task0,[theme=dark] .page .mermaid .task1,[theme=dark] .page .mermaid .task2,[theme=dark] .page .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}[theme=dark] .page .mermaid .taskTextOutside0,[theme=dark] .page .mermaid .taskTextOutside2{fill:#d3d3d3 !important}[theme=dark] .page .mermaid .taskTextOutside1,[theme=dark] .page .mermaid .taskTextOutside3{fill:#d3d3d3 !important}[theme=dark] .page .mermaid .active0,[theme=dark] .page .mermaid .active1,[theme=dark] .page .mermaid .active2,[theme=dark] .page .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}[theme=dark] .page .mermaid .activeText0,[theme=dark] .page .mermaid .activeText1,[theme=dark] .page .mermaid .activeText2,[theme=dark] .page .mermaid .activeText3{fill:#323D47}[theme=dark] .page .mermaid .done0,[theme=dark] .page .mermaid .done1,[theme=dark] .page .mermaid .done2,[theme=dark] .page .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}[theme=dark] .page .mermaid .doneText0,[theme=dark] .page .mermaid .doneText1,[theme=dark] .page .mermaid .doneText2,[theme=dark] .page .mermaid .doneText3{fill:#323D47}[theme=dark] .page .mermaid .crit0,[theme=dark] .page .mermaid .crit1,[theme=dark] .page .mermaid .crit2,[theme=dark] .page .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}[theme=dark] .page .mermaid .activeCrit0,[theme=dark] .page .mermaid .activeCrit1,[theme=dark] .page .mermaid .activeCrit2,[theme=dark] .page .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}[theme=dark] .page .mermaid .doneCrit0,[theme=dark] .page .mermaid .doneCrit1,[theme=dark] .page .mermaid .doneCrit2,[theme=dark] .page .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}[theme=dark] .page .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}[theme=dark] .page .mermaid .milestoneText{font-style:italic}[theme=dark] .page .mermaid .doneCritText0,[theme=dark] .page .mermaid .doneCritText1,[theme=dark] .page .mermaid .doneCritText2,[theme=dark] .page .mermaid .doneCritText3{fill:#323D47}[theme=dark] .page .mermaid .activeCritText0,[theme=dark] .page .mermaid .activeCritText1,[theme=dark] .page .mermaid .activeCritText2,[theme=dark] .page .mermaid .activeCritText3{fill:#323D47}[theme=dark] .page .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#d3d3d3;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}[theme=dark] .page .mermaid g.classGroup text .title{font-weight:bolder}[theme=dark] .page .mermaid g.clickable{cursor:pointer}[theme=dark] .page .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}[theme=dark] .page .mermaid g.classGroup line{stroke:purple;stroke-width:1}[theme=dark] .page .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}[theme=dark] .page .mermaid .classLabel .label{fill:purple;font-size:10px}[theme=dark] .page .mermaid .relation{stroke:purple;stroke-width:1;fill:none}[theme=dark] .page .mermaid .dashed-line{stroke-dasharray:3}[theme=dark] .page .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}[theme=dark] .page .mermaid .commit-id,[theme=dark] .page .mermaid .commit-msg,[theme=dark] .page .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}[theme=dark] .page .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}[theme=dark] .page .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}[theme=dark] .page .mermaid g.stateGroup line{stroke:purple;stroke-width:1}[theme=dark] .page .mermaid .transition{stroke:purple;stroke-width:1;fill:none}[theme=dark] .page .mermaid .stateGroup .composit{fill:white;border-bottom:1px}[theme=dark] .page .mermaid .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}[theme=dark] .page .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}[theme=dark] .page .mermaid .state-note text{fill:black;stroke:none;font-size:10px}[theme=dark] .page .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}[theme=dark] .page .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}[theme=dark] .page .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}
 
 /*# sourceMappingURL=mermaid.min.css.map */
\ No newline at end of file
diff --git a/resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.content b/resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.content
new file mode 100644
index 00000000..ee6fa767
--- /dev/null
+++ b/resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.content
@@ -0,0 +1 @@
+.v[data-class=v] .vwrap,.v[data-class=v] .vwrap .vheader .vinput,.v[data-class=v] .vcards .vcard .vh{border-color:#f0f0f0}[theme=dark] .v[data-class=v] .vwrap,[theme=dark] .v[data-class=v] .vwrap .vheader .vinput,[theme=dark] .v[data-class=v] .vcards .vcard .vh{border-color:#363636}
diff --git a/resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.json b/resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.json
new file mode 100644
index 00000000..f830c05c
--- /dev/null
+++ b/resources/_gen/assets/scss/lib/valine/valine.scss_782a264805f83ff21e4b24d4d52cfa46.json
@@ -0,0 +1 @@
+{"Target":"lib/valine/valine.min.css","MediaType":"text/css","Data":{}}
\ No newline at end of file
diff --git a/src/js/theme.js b/src/js/theme.js
index bf00f1bb..ef56582c 100644
--- a/src/js/theme.js
+++ b/src/js/theme.js
@@ -32,7 +32,7 @@ class Theme {
     constructor() {
         this.config = window.config;
         this.data = this.config.data;
-        this.isDark = document.body.classList.contains('dark');
+        this.isDark = document.body.getAttribute('theme') === 'dark';
         this.util = new Util();
         this.newScrollTop = this.util.getScrollTop();
         this.oldScrollTop = this.newScrollTop;
@@ -80,7 +80,8 @@ class Theme {
     initSwitchTheme() {
         this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {
             $themeSwitch.addEventListener('click', () => {
-                document.body.classList.toggle('dark');
+                if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');
+                else document.body.setAttribute('theme', 'dark');
                 this.isDark = !this.isDark;
                 window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');
                 for (let event of this.switchThemeEventSet) event();