:root {
  --c-base-black: #0c1e29;
  --c-base-blacklight: #4e616c;
  --c-base-purple: #003df0;
  --c-base-purplelight: #c2ccf2;
  --c-base-bluelight: hwb(199, 1%, 4%);
  --c-base-blue: hwb(209, 0%, 35%);
  --c-base-green: hwb(123, 40%, 27%);
  --c-base-graylight: hwb(0, 80%, 20%);
  --c-base-gray: hwb(0, 60%, 40%);
  --c-base-orange: hwb(22, 21%, 5%);
  --c-base-red: hwb(5, 24%, 9%);
  --c-base-white: hwb(0, 95%, 5%);
  --c-base-yellow: hwb(48, 6%, 5%);
}
/* modern-normalize | MIT License | https://github.com/sindresorhus/modern-normalize */
html {
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: inherit;
  margin: 0;
  padding: 0;
}
:root {
  -moz-tab-size: 4;
  tab-size: 4;
}
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}
body {
  margin: 0;
  font-size: 17.3px;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
}
hr {
  height: 0;
}
abbr[title] {
  text-decoration: underline dotted;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp,
pre {
  font-family: SFMono-Regular, Consolas, 'Liberation Mono', Menlo, Courier, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
button,
select {
/* 1 */
  text-transform: none;
}
button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  padding: 0;
}
progress {
  vertical-align: baseline;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
summary {
  display: list-item;
}
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(101,125,225,0.38) transparent;
}
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background-color: rgba(101,125,225,0.38);
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
  transition: background-color 0.18s ease;
}
::-webkit-scrollbar-thumb:hover {
  background-color: rgba(101,125,225,0.6);
}
::-webkit-scrollbar-thumb:active {
  background-color: rgba(101,125,225,0.78);
}
::-webkit-scrollbar-corner {
  background: transparent;
}
html.dark * {
  scrollbar-color: rgba(122,180,255,0.36) transparent;
}
html.dark ::-webkit-scrollbar-thumb {
  background-color: rgba(122,180,255,0.36);
}
html.dark ::-webkit-scrollbar-thumb:hover {
  background-color: rgba(122,180,255,0.58);
}
html.dark ::-webkit-scrollbar-thumb:active {
  background-color: rgba(122,180,255,0.75);
}
@media screen and (max-width: 768px) {
  ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }
}
.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  color: #333;
  background: #f8f8f8;
}
.comment,
.quote {
  color: #998;
  font-style: italic;
}
.keyword,
.selector-tag,
.subst {
  color: #333;
  font-weight: bold;
}
.number,
.literal,
.variable,
.template-variable,
.tag .attr {
  color: #008080;
}
.string,
.doctag {
  color: #d14;
}
.title,
.section,
.selector-id {
  color: #900;
  font-weight: bold;
}
.subst {
  font-weight: normal;
}
.type,
.class .title {
  color: #458;
  font-weight: bold;
}
.tag,
.name,
.attribute {
  color: #000080;
  font-weight: normal;
}
.regexp,
.link {
  color: #009926;
}
.symbol,
.bullet {
  color: #990073;
}
.built_in,
.builtin-name {
  color: #0086b3;
}
.meta {
  color: #999;
  font-weight: bold;
}
.deletion {
  background: #fdd;
}
.addition {
  background: #dfd;
}
.emphasis {
  font-style: italic;
}
.strong {
  font-weight: bold;
}
.footnote--top {
  position: relative;
  display: inline-block;
}
.footnote--pop-ups,
.footnote--top:before {
  position: absolute;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  visibility: hidden;
  opacity: 0;
  z-index: 1000000;
  pointer-events: none;
  -webkit-transition: 0.3s ease;
  -moz-transition: 0.3s ease;
  transition: 0.3s ease;
  -webkit-transition-delay: 0s;
  -moz-transition-delay: 0s;
  transition-delay: 0s;
}
.footnote--top:before {
  transition-delay: 0s;
  content: '';
  background: 0 0;
  border: 6px solid transparent;
  bottom: 100%;
  margin-bottom: -11px;
  left: calc(50% - 6px);
  border-top-color: #b34e4d;
}
.footnote--top:hover:before {
  visibility: visible;
  opacity: 1;
  -webkit-transition-delay: 0.1s;
  -moz-transition-delay: 0.1s;
  transition-delay: 0.1s;
  -webkit-transform: translateY(-8px);
  -moz-transform: translateY(-8px);
  transform: translateY(-8px);
  z-index: 1000001;
}
.footnote--top:hover .footnote--pop-ups {
  visibility: visible;
  opacity: 1;
  -webkit-transition-delay: 0.1s;
  -moz-transition-delay: 0.1s;
  transition-delay: 0.1s;
  -webkit-transform: translateX(-50%) translateY(-8px);
  -moz-transform: translateX(-50%) translateY(-8px);
  transform: translateX(-50%) translateY(-8px);
}
.footnote--pop-ups {
  border-radius: 4px;
  background-color: #b34e4d;
  text-shadow: 0 -1px 0 #592726;
  width: 150px;
  white-space: normal;
  line-height: 1.4em;
  word-wrap: break-word;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  transform: translateX(-50%);
  bottom: 100%;
  left: 50%;
  color: #fff;
  padding: 8px 10px;
  font-size: 13px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  box-shadow: 4px 4px 8px #000;
}
.footnote--pop-ups code {
  background-color: #261c1c !important;
}
@media (min-width: 1200px) {
  .footnote--pop-ups {
    width: 200px;
  }
}
@font-face {
  font-family: "iconfont"; /* Project id 3522054 */
  src: url("../fonts/iconfont.eot?t=1724986230549"); /* IE9 */
  src: url("../fonts/iconfont.eot?t=1724986230549#iefix") format('embedded-opentype'), url("../fonts/iconfont.woff2?t=1724986230549") format('woff2'), url("../fonts/iconfont.woff?t=1724986230549") format('woff'), url("../fonts/iconfont.ttf?t=1724986230549") format('truetype'), url("../fonts/iconfont.svg?t=1724986230549#iconfont") format('svg');
}
.icon {
  font-family: "iconfont" !important;
  font-size: 17.3px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-bluesky:before {
  content: "\ea98";
}
.icon-rss:before {
  content: "\e600";
}
.icon-email:before {
  content: "\e908";
}
.icon-copy:before {
  content: "\e67f";
}
.icon-close-outline:before {
  content: "\e61d";
}
.icon-menu-outline:before {
  content: "\e64d";
}
.icon-twitter:before {
  content: "\e6ef";
}
.icon-facebook:before {
  content: "\e605";
}
.icon-weibo:before {
  content: "\e88a";
}
.icon-zhihu:before {
  content: "\e88b";
}
.icon-github:before {
  content: "\e63a";
}
.icon-calendar-outline:before {
  content: "\e655";
}
.icon-pricetags-outline:before {
  content: "\e697";
}
.icon-arrow-ios-back-outline:before {
  content: "\e602";
}
.icon-arrow-ios-forward-outline:before {
  content: "\e603";
}
.site-footer {
  text-align: center;
  font-size: 13px;
  padding: 20px 16px;
}
.site-footer .slogan {
  margin-bottom: 24px;
}
.site-footer .social-container {
  margin-bottom: 24px;
  font-size: 17.3px;
}
.site-footer .social-container a {
  margin: 0 8px;
}
hr {
  margin: 10px 0;
}
.site-header-container {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1024;
  background: #fff;
  height: 56px;
}
.site-header {
  height: 56px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 768px;
  margin: 0 auto;
  box-shadow: inset 0px -1px 0px #fafafa;
}
.site-header .left {
  display: flex;
}
.site-header .left .avatar {
  border-radius: 50%;
}
.site-header .left .site-title {
  margin: 0 16px;
  font-size: 25.9px;
  line-height: 32px;
}
.site-header .right .menu-switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.16s ease;
}
.site-header .right .menu-switch:hover,
.site-header .right .menu-switch:focus {
  background: rgba(125,125,125,0.1);
  outline: 0;
}
.site-header .right .menu-switch .menu-switch-box {
  position: relative;
  display: block;
  width: 18px;
  height: 12px;
}
.site-header .right .menu-switch .menu-switch-bar {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: var(--c-base-black, #0c1e29);
  transition: transform 0.22s ease, opacity 0.18s ease;
}
.site-header .right .menu-switch .menu-switch-bar:nth-child(1) {
  top: 0;
}
.site-header .right .menu-switch .menu-switch-bar:nth-child(2) {
  top: 5px;
}
.site-header .right .menu-switch .menu-switch-bar:nth-child(3) {
  top: 10px;
}
.site-header .right .menu-switch.is-active .menu-switch-bar:nth-child(1) {
  transform: translateY(5px) rotate(45deg);
}
.site-header .right .menu-switch.is-active .menu-switch-bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0.4);
}
.site-header .right .menu-switch.is-active .menu-switch-bar:nth-child(3) {
  transform: translateY(-5px) rotate(-45deg);
}
.menu-backdrop {
  position: fixed;
  top: 56px;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1020;
  background: rgba(12,30,41,0.26);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s;
}
.menu-backdrop.is-active {
  opacity: 1;
  visibility: visible;
}
.menu-container {
  position: fixed;
  top: 56px;
  right: 0;
  left: 0;
  z-index: 1024;
  display: block;
  background: #fff;
  border-bottom: 1px solid rgba(125,125,125,0.14);
  box-shadow: 0 12px 24px rgba(12,30,41,0.1);
  max-height: calc(100vh - 56px);
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.2s ease, transform 0.22s ease, visibility 0.22s;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.menu-container.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.menu-container .menu-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(132px, 100%), 1fr));
  gap: 4px;
  max-width: 860px;
  margin: 0 auto;
  padding: 12px 16px 18px;
}
.menu-container .menu {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 17.3px;
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: inherit;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.18s ease, transform 0.2s ease, background-color 0.16s ease, color 0.16s ease;
}
.menu-container .menu:hover,
.menu-container .menu:focus-visible {
  background: rgba(101,125,225,0.12);
}
.menu-container .menu:focus {
  outline: 0;
}
.menu-container.is-open .menu {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(var(--menu-i, 0) * 25ms), calc(var(--menu-i, 0) * 25ms), 0s, 0s;
}
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
a,
.link {
  color: var(--c-base-black);
  text-decoration: none;
  cursor: pointer;
  background: transparent 0 0;
}
a:hover,
.link:hover,
a:focus,
.link:focus,
a:active,
.link:active {
  outline: 0;
}
a.purple-link {
  position: relative;
  background: none;
}
.main {
  max-width: 768px;
  margin: 0 auto;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}
.content-container {
  width: 100%;
  flex: 1;
  padding: 46px 16px 32px;
}
.post-item {
  display: flex;
  justify-content: space-between;
  padding: 20px 0;
  max-height: 200px;
}
.post-item .content {
  flex: 1;
}
.post-item .content .post-title {
  font-size: 23.8px;
  color: #0c1e29;
  display: inline-block;
}
.post-item .content .post-abstract {
  font-size: 15.1px;
  margin: 12px 0 8px;
  flex: 1;
  color: #4e616c;
  overflow: hidden;
  line-height: 24px;
  position: relative;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.post-item .content .post-abstract strong {
  font-weight: bolder;
}
.post-item .content .post-abstract a {
  font-weight: 600;
  background: none;
}
.post-item .content .post-abstract code {
  padding: 0 3px;
  margin: 0 2px;
  background: rgba(195,195,195,0.41);
  font-size: 0.9em;
  border-radius: 2px;
}
.post-item .feature-container {
  margin-left: 16px;
  flex-shrink: 0;
  width: 240px;
  height: 135px;
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
.post-info {
  color: var(--c-base-purple);
  font-size: 13px;
  margin-top: 10px;
}
.post-info span {
  margin-right: 16px;
}
.post-info .icon {
  font-size: 13px;
  margin-right: 4px;
}
.post-info a {
  color: var(--c-base-purple);
}
@media (max-width: 600px) {
  .post-item {
    flex-direction: column;
    height: auto;
    padding: 8px 0;
    max-height: none;
  }
  .post-item .content {
    order: 2;
    display: block;
  }
  .post-item .content .post-title {
    margin-top: 16px;
    font-size: 19.4px;
  }
  .post-item .feature-container {
    margin-left: 0;
    order: 1;
    height: 0;
    width: 100%;
    padding-top: 56%;
    position: relative;
    background-size: cover;
    background-position: center;
  }
}
nav {
  overflow: hidden;
}
@media (min-width: 1200px) {
  .main {
    max-width: 1000px;
  }
  .site-header {
    max-width: 1000px;
  }
}
.pagination-container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  padding: 28px 0 8px;
  overflow: visible;
/* 当前页 / 总页数，仅窄屏显示 */
/* 跳页 */
}
.pagination-container .extend {
  display: inline-flex;
  align-items: center;
  padding: 4px 6px;
  border-radius: 6px;
  white-space: nowrap;
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease;
}
.pagination-container .extend:hover {
  background: rgba(101,125,225,0.14);
}
.pagination-container .extend.disabled {
  opacity: 0.38;
  pointer-events: none;
}
.pagination-container .pager-numbers {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pagination-container .page-number,
.pagination-container .space {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 6px;
  border-radius: 6px;
  box-sizing: border-box;
  text-decoration: none;
  transition: background-color 0.18s ease, color 0.18s ease;
}
.pagination-container .page-number {
  background: rgba(101,125,225,0.12);
}
.pagination-container .page-number:hover {
  background: rgba(101,125,225,0.28);
}
.pagination-container .page-number.current {
  background: var(--c-base-purple, #003df0);
  color: #fff;
  font-weight: 600;
  cursor: default;
}
.pagination-container .space {
  min-width: 20px;
  color: var(--c-base-gray, #999);
}
.pagination-container .pager-indicator {
  display: none;
  padding: 0 4px;
  color: var(--c-base-gray, #999);
  font-size: 14px;
  white-space: nowrap;
}
.pagination-container .pager-jump {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.pagination-container .pager-jump .pager-jump-input {
  width: 52px;
  height: 30px;
  padding: 0 6px;
  border: 1px solid rgba(101,125,225,0.35);
  border-radius: 6px;
  background: transparent;
  outline: none;
  text-align: center;
  box-sizing: border-box;
}
.pagination-container .pager-jump .pager-jump-btn {
  height: 30px;
  padding: 0 10px;
  border: none;
  border-radius: 6px;
  background: rgba(101,125,225,0.18);
  cursor: pointer;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .pagination-container .pager-numbers .page-number.mid {
    display: none;
  }
}
@media screen and (max-width: 560px) {
  .pagination-container {
    gap: 6px;
  }
  .pagination-container .pager-numbers .page-number.edge {
    display: none;
  }
  .pagination-container .pager-numbers .space {
    display: none;
  }
  .pagination-container .pager-indicator {
    display: inline-flex;
  }
}
@media screen and (max-width: 420px) {
  .pagination-container .pager-text {
    display: none;
  }
  .pagination-container .pager-jump {
    display: none;
  }
}
.post-detail {
  padding: 0;
}
.post-detail .post-title {
  font-size: 34.6px;
  margin: 24px 0;
  color: var(--c-base-black);
}
.post-detail .post-detail-info {
  padding: 0 0 32px;
}
.post-detail .feature-container {
  padding-top: 56.25%;
  background-size: cover;
  background-position: center;
  border-radius: 2px;
  box-shadow: 0 0 30px #eee;
}
.next-post {
  text-align: center;
}
.next-post .post-title {
  display: inline-block;
  font-size: 23.8px;
}
.post-content {
  flex-shrink: 0;
  width: 100%;
}
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
  padding: 16px 0;
  color: #0c1e29;
}
.post-content a {
  word-break: break-all;
  color: #0e78db;
  font-weight: 600;
  transition: all 0.2s;
}
.post-content a:hover {
  color: #0081f9;
  text-decoration: underline;
}
.post-content img {
  display: block;
  box-shadow: 0 0 30px #eee;
  max-width: 100%;
  border-radius: 2px;
  margin: 16px auto;
}
.post-content p {
  line-height: 1.725;
  margin-bottom: 16px;
  color: var(--c-base-blacklight);
}
.post-content p code {
  color: #858080;
  padding: 0 3px;
  margin: 2px 2px;
  background-color: #f9fafa;
  border: 1px solid #e4e4e4;
  font-size: 0.9em;
  display: inline-block;
  border-radius: 4px;
  max-width: 740px;
}
.post-content code {
  color: #476582;
  padding: 0.16rem 0.5rem;
  margin: 0.25rem 0;
  font-size: 0.85em;
  background-color: rgba(27,31,35,0.05);
  border-radius: 3px;
  display: inline-block;
}
.post-content blockquote {
  background: #f3f5f7;
  padding: 16px;
  border-left: 2px solid var(--c-base-purple);
  margin-bottom: 16px;
}
.post-content blockquote p {
  margin-bottom: 0;
}
.post-content pre {
  margin-bottom: 16px;
}
.post-content pre code {
  font-size: 15.1px;
  font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace;
  padding: 2em 1em 1em;
  border-radius: 5px;
  line-height: 1.375;
  position: relative;
  background: #fafafa;
  display: block;
}
.post-content pre code:after {
  content: attr(data-content-after);
  display: block;
  position: absolute;
  left: 8px;
  top: 4px;
  font-size: 15.1px;
  font-weight: bold;
  color: #ccc;
}
.post-content pre:hover .copy-code {
  display: block;
}
.post-content pre .copy-code {
  cursor: pointer;
  display: none;
  position: absolute;
  right: 8px;
  top: 4px;
  font-size: 23.8px;
  color: #9a9a9a;
}
.post-content pre .copy-code .copy-success {
  font-size: 17.3px;
}
.post-content pre[class*=language-].line-numbers {
  position: relative;
}
.post-content table {
  border-collapse: collapse;
  overflow-x: auto;
  display: table;
  margin: 1rem auto;
}
.post-content figure table {
  margin: 1rem 0;
  display: block;
}
.post-content tr {
  border-top: 1px solid #dfe2e5;
  transition: 500ms;
}
.post-content td,
.post-content th {
  border: 1px solid #dfe2e5;
  padding: 0.4em;
  line-height: 1.2em;
}
.post-content tr:hover {
  background-color: #f8f8f8;
}
.post-content ul,
.post-content ol {
  color: var(--c-base-blacklight);
  padding-left: 24px;
  line-height: 1.725;
  margin-bottom: 16px;
}
.post-content strong {
  font-weight: bolder;
}
.post-content-wrapper {
  display: flex;
}
@media (max-width: 1400px) {
  .top-box {
    display: none;
  }
  #gitalk-container {
    width: 94%;
    margin: 0 auto;
  }
  #twikoo {
    width: 94%;
    margin: 0 auto;
  }
}
#twikoo .tk-content {
  overflow-y: hidden;
}
#twikoo .tk-content .wl-emoji,
#twikoo .tk-content img.wl-emoji,
#twikoo .tk-content .tk-owo-emotion {
  display: inline-block;
  width: 1.35em;
  height: 1.35em;
  margin: 0 0.08em;
  vertical-align: -0.25em;
  object-fit: contain;
}
#twikoo p {
  margin: revert;
}
@media (min-width: 1400px) {
  .top-div {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    position: sticky;
    top: 80px;
    right: 0;
    align-self: flex-start;
  }
  .top-box {
    list-style: none;
    width: 200px;
    padding-left: 20px;
    max-height: calc(100vh - 220px);
    overflow-y: auto;
  }
  .top-box:before {
    content: "";
    position: absolute;
    top: 0;
    left: 8px;
    bottom: 0;
    width: 1px;
    background-color: #ebedef;
    opacity: 0.5;
  }
  .top-box .top-box-child {
    list-style: none;
    padding-left: 16px;
  }
  .top-box li a {
    display: block;
    color: #868e96;
    padding: 4px;
    transition: all 0.3s;
    font-size: 0.9em;
  }
  .top-box li a.current {
    color: #006cff;
    background: #fafafa;
  }
  .top-box li a:hover {
    background: #fafafa;
  }
}
.toc-profile {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid #ebedef;
}
.toc-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 2px 10px rgba(0,0,0,0.12);
}
.toc-owner {
  margin-top: 10px;
  font-size: 17.3px;
  font-weight: 600;
  color: #0c1e29;
}
@media (max-width: 1399px) {
  .toc-profile {
    display: none;
  }
}
html.dark .toc-owner {
  color: #c9d1d9;
}
html.dark .toc-profile {
  border-bottom-color: rgba(255,255,255,0.1);
}
.github-emoji {
  position: relative;
  display: inline-block;
  width: 1.2em;
  min-height: 1.2em;
  overflow: hidden;
  vertical-align: top;
  color: transparent;
}
.github-emoji > span {
  position: relative;
  z-index: 10;
}
.github-emoji img,
.github-emoji .fancybox {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  outline: none !important;
  text-decoration: none !important;
  user-select: none !important;
  cursor: auto !important;
}
.github-emoji img {
  height: 1.2em !important;
  width: 1.2em !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  user-select: none !important;
  cursor: auto !important;
}
.github-emoji-fallback {
  color: inherit;
}
.github-emoji-fallback img {
  opacity: 0 !important;
}
.current-tag-container {
  padding-top: 32px;
  color: var(--c-base-purple);
}
.archives-container {
  padding: 0;
}
.archives-container .year {
  font-size: 28.1px;
  margin: 24px 0;
  color: var(--c-base-purple);
}
.archives-container .post {
  margin-bottom: 22px;
}
.archives-container .post .post-title {
  font-size: 19.4px;
  font-weight: normal;
  position: relative;
  transition: all 0.382s;
}
.archives-container .post .post-title:before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-base-purple);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
  transition: all 0.382s;
}
.archives-container .post .post-title:hover {
  transform: translateX(8px);
}
.archives-container .post .post-title:hover:before {
  left: -8px;
  opacity: 1;
}
.tags-container {
  padding: 20px 0;
}
.tags-container .tag {
  color: var(--c-base-purple);
  padding: 4px 8px;
  display: inline-block;
  border: 2px solid var(--c-base-purple);
  margin: 0 16px 16px 0;
  border-radius: 16px;
}
.highlight {
  margin-bottom: 16px;
  font-size: 0.87em;
  font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace;
  padding: 2em 1em 1em;
  border-radius: 5px;
  line-height: 1.375;
  position: relative;
  background: #fafafa;
  color: #476582;
  display: block;
}
.highlight table,
.highlight th,
.highlight tr,
.highlight td,
.highlight pre {
  border: none;
  margin: 0;
  padding: 0;
}
.highlight .gutter {
  display: none;
}
.highlight .code {
  display: flex;
}
.highlight:after {
  content: attr(data-content-after);
  display: block;
  position: absolute;
  left: 8px;
  top: 4px;
  font-size: 15.1px;
  font-weight: bold;
  color: #ccc;
}
.highlight:hover .copy-code {
  display: block;
}
.highlight .copy-code {
  cursor: pointer;
  display: none;
  position: absolute;
  right: 8px;
  top: 4px;
  font-size: 23.8px;
  color: #9a9a9a;
}
.highlight .copy-code .copy-success {
  font-size: 17.3px;
}
/* 搜索弹窗样式 */
.search-modal {
  position: fixed;
  z-index: 9999;
  left: 0; top: 0; right: 0; bottom: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.search-modal-mask {
  position: absolute;
  left: 0; top: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.45);
}
.search-modal-content {
  position: relative;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  padding: 2em 2em 1em 2em;
  width: min(560px, 92vw);
  min-width: 0;
  max-width: 92vw;
  min-height: 120px;
  z-index: 1;
  animation: popIn .2s;
  margin-top: 5vh;
}
@keyframes popIn {
  from { transform: scale(0.9); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.search-modal-close {
  position: absolute;
  right: 0.5em;
  top: 0.5em;
  width: 1.8em;
  height: 1.8em;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4em;
  line-height: 1;
  color: #888;
  cursor: pointer;
  transition: color .2s, background .2s;
  z-index: 10;
  background: none;
  border: none;
  padding: 0;
  border-radius: 50%;
}
.search-modal-close:hover {
  color: #f56c6c;
  background: #f4f4f4;
}
#search-container {
  margin-top: 1.5em;
}
#search-input {
  width: 100%;
  padding: 0.7em 1em;
  border: 1px solid #eee;
  border-radius: 6px;
  font-size: 1.1em;
  outline: none;
  margin-bottom: 1em;
  box-sizing: border-box;
  background: #fafbfc;
  transition: border .2s;
  position: sticky;
  top: 0;
  z-index: 2;
}
#search-input:focus {
  border: 1.5px solid #a0a0a0;
}
#search-results {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 300px;
  overflow-y: auto;
}
#search-results li {
  padding: 0.5em 0;
  border-bottom: 1px solid #f0f0f0;
}
#search-results li:last-child {
  border-bottom: none;
}
.search-title {
  font-weight: 600;
  color: #222;
  font-size: 1.08em;
  margin-bottom: 0.2em;
}
.search-summary {
  color: #888;
  font-size: 0.98em;
  margin-top: 0.1em;
  line-height: 1.5;
  word-break: break-all;
}
#search-results a {
  color: #333;
  text-decoration: none;
  display: block;
  padding: 0.2em 0.1em;
  transition: background .2s;
}
#search-results a:hover {
  color: #409eff;
  background: #f4faff;
  border-radius: 4px;
}
#search-float-btn {
  position: fixed;
  right: 2.2em;
  bottom: 2.2em;
  z-index: 10000;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 16px rgba(64,158,255,0.18);
  border: none;
  outline: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: box-shadow .2s, background .2s, transform .2s;
  padding: 0;
}
#search-float-btn:hover {
  box-shadow: 0 8px 32px rgba(64,158,255,0.28);
  background: #f4faff;
  transform: scale(1.08);
}
#search-float-btn svg {
  display: block;
}
html.dark .search-modal-content {
  background: #23272e;
  color: #e0e0e0;
  box-shadow: 0 8px 32px rgba(0,0,0,0.38);
}
html.dark #search-input {
  background: #181a1b;
  color: #e0e0e0;
  border: 1px solid #333;
}
html.dark #search-input:focus {
  border: 1.5px solid #759eff;
}
html.dark #search-results a {
  color: #e0e0e0;
}
html.dark #search-results a:hover {
  color: #409eff;
  background: #23272e;
}
html.dark .search-title {
  color: #c9d1d9;
}
html.dark .search-summary {
  color: #afafaf;
}
html.dark .search-modal-close {
  color: #aaa;
  background: none;
}
html.dark .search-modal-close:hover {
  color: #f56c6c;
  background: #23272e;
}
html.dark #search-float-btn {
  background: #23272e;
  box-shadow: 0 4px 16px rgba(64,158,255,0.28);
}
html.dark #search-float-btn:hover {
  background: #181a1b;
}
@media (max-width: 600px) {
  .search-modal-content {
    min-width: 100vw;
    max-width: 100vw;
    min-height: 100vh;
    border-radius: 0;
    margin: 0;
    padding: 1em 0.5em 0.5em 0.5em;
    box-sizing: border-box;
  }
  .search-modal-close {
    display: none;
  }
  #search-container {
    margin-top: 0.5em;
  }
  #search-results {
    max-height: 100vh;
  }
  #search-input {
    font-size: 1em;
    padding: 0.6em 0.7em;
  }
  #search-float-btn {
    right: 1em;
    bottom: 1em;
    width: 44px;
    height: 44px;
  }
}
@media (prefers-color-scheme: dark) {
  #search-float-btn {
    background: #222;
    box-shadow: 0 4px 16px rgba(64,158,255,0.28);
  }
  #search-float-btn:hover {
    background: #333;
  }
}

/* 夜间主题 */
html.dark {
  background-color: #121212;
  color: #fff;
/* 文章右侧目录：深色下用「左侧强调条 + 蓝底 + 亮字」代替原来的浅灰块 */
/* 分页按钮：深底上提高明度与对比 */
/* 右上角菜单：三横线图标 + 下拉面板都要在深色下看得清 */
}
html.dark .post-title {
  color: #c9d1d9;
}
html.dark .post-item .content .post-title {
  color: #c9d1d9;
}
html.dark .post-item .content .post-abstract {
  color: #afafaf;
}
html.dark .post-item .post-info {
  color: #759eff;
}
html.dark .post-detail .post-title {
  color: #c9d1d9;
}
html.dark .post-detail .post-info,
html.dark .post-detail .post-info a {
  color: #759eff;
}
html.dark .post-detail .feature-container {
  box-shadow: none;
}
html.dark .post-content p {
  color: #c9d1d9;
}
html.dark .post-content code:not([class*=language-]) {
  color: #c9d1d9;
  background-color: rgba(110,118,129,0.4);
  border: none;
  border-radius: 6px;
}
html.dark .post-content h1,
html.dark .post-content h2,
html.dark .post-content h3,
html.dark .post-content h4,
html.dark .post-content h5,
html.dark .post-content h6 {
  color: #ddd;
}
html.dark .post-content img {
  box-shadow: none;
}
html.dark .post-content table {
  color: #c0c0c0;
}
html.dark .post-content table tr:hover {
  background-color: #2e2e2e;
}
html.dark .post-content ul,
html.dark .post-content ol {
  color: #c0c0c0;
}
html.dark .post-content blockquote {
  background: #000;
}
html.dark .highlight,
html.dark pre[class*=language-].line-numbers {
  background-color: #000;
}
html.dark .highlight .copy-code,
html.dark pre[class*=language-].line-numbers .copy-code {
  color: #a1a1a1;
}
html.dark .highlight table tr:hover,
html.dark pre[class*=language-].line-numbers table tr:hover {
  background-color: #000;
}
html.dark .highlight code[class*=language-],
html.dark pre[class*=language-].line-numbers code[class*=language-] {
  overflow-x: auto;
  background: #000;
}
html.dark .highlight .link,
html.dark pre[class*=language-].line-numbers .link {
  color: #3da3ff;
}
html.dark .site-header-container {
  background-color: #121212;
}
html.dark .site-header {
  box-shadow: none;
}
html.dark .site-header .site-title {
  color: #c0c0c0;
}
@media (min-width: 1400px) {
  html.dark .top-box:before {
    background-color: rgba(255,255,255,0.16);
    opacity: 1;
  }
  html.dark .top-box li a {
    color: #8b949e;
  }
  html.dark .top-box li a:hover {
    color: #a8cfff;
    background: rgba(122,180,255,0.1);
  }
  html.dark .top-box li a.current {
    color: #7ab4ff !important;
    background: rgba(122,180,255,0.16);
    font-weight: 600;
    border-radius: 4px;
    box-shadow: inset 2px 0 0 #4c8dff;
  }
}
html.dark .next-post .post-title {
  color: #c9d1d9;
}
html.dark .site-footer {
  color: #8b949e;
}
html.dark .site-footer a {
  color: #7ab4ff;
}
html.dark .site-footer a:hover {
  color: #a8cfff;
}
html.dark .site-footer .footer-copyright,
html.dark .site-footer .footer-links,
html.dark .site-footer .footer-link-item {
  color: #8b949e;
}
html.dark .site-footer .footer-copyright-author {
  color: #7ab4ff;
}
html.dark .site-footer .footer-link-sep {
  color: #7d8590;
}
html.dark .pagination-container {
  color: #c9d1d9;
}
html.dark .pagination-container a {
  color: #7ab4ff;
}
html.dark .pagination-container .extend {
  color: #7ab4ff;
}
html.dark .pagination-container .extend:hover {
  background: rgba(122,180,255,0.18);
  color: #a8cfff;
}
html.dark .pagination-container .extend.disabled {
  opacity: 0.32;
}
html.dark .pagination-container .page-number {
  background: rgba(122,180,255,0.16);
  color: #c9d1d9;
}
html.dark .pagination-container .page-number:hover {
  background: rgba(122,180,255,0.32);
  color: #fff;
}
html.dark .pagination-container .page-number.current {
  background: #4c8dff;
  color: #fff;
  box-shadow: 0 2px 10px rgba(76,141,255,0.35);
}
html.dark .pagination-container .space,
html.dark .pagination-container .pager-indicator {
  color: #7d8590;
}
html.dark .pagination-container .pager-jump .pager-jump-input {
  border-color: rgba(122,180,255,0.45);
  background: rgba(255,255,255,0.06);
  color: #e6edf3;
}
html.dark .pagination-container .pager-jump .pager-jump-btn {
  background: rgba(122,180,255,0.3);
  color: #e6edf3;
}
html.dark .pagination-container .pager-jump .pager-jump-btn:hover {
  background: rgba(122,180,255,0.45);
}
html.dark .site-header {
  box-shadow: inset 0 -1px 0 rgba(255,255,255,0.08);
}
html.dark .site-header .right .menu-switch .menu-switch-bar {
  background: #e6edf3;
}
html.dark .site-header .right .menu-switch:hover,
html.dark .site-header .right .menu-switch:focus-visible {
  background: rgba(255,255,255,0.12);
}
html.dark .menu-backdrop {
  background: rgba(0,0,0,0.55);
}
html.dark .menu-container {
  background-color: #1b1f24;
  border-bottom-color: rgba(255,255,255,0.08);
  box-shadow: 0 14px 30px rgba(0,0,0,0.55);
}
html.dark .menu-container .menu-list .menu {
  color: #e6edf3;
}
html.dark .menu-container .menu-list .menu:hover,
html.dark .menu-container .menu-list .menu:focus-visible {
  background: rgba(122,180,255,0.18);
  color: #7ab4ff;
}
html.dark .gt-container .gt-comment-body {
  color: #dfdfdf !important;
}
html.dark .markdown-body blockquote {
  border-left: 0.25em solid #959595;
}
html.dark .gt-container .gt-comment-content:hover {
  box-shadow: none;
}
html.dark .gt-container .gt-header-textarea {
  background-color: #424a54 !important;
  color: #dfdfdf;
}
html.dark .gt-container .gt-header-textarea:hover {
  background-color: #424a54;
}
html.dark .gt-container .gt-comment-content {
  background-color: #000;
}
html.dark .gt-container .gt-svg svg {
  fill: #78a1ed;
}
html.dark .highlight .tag,
html.dark .highlight .name,
html.dark .highlight .attribute {
  color: #8f8bf3;
}
html.dark .highlight .deletion {
  color: #ffdcd7;
  background: #67060c;
}
html.dark .highlight .addition {
  color: #aff5b4;
  background-color: #033a16;
}
html.dark .deletion {
  color: #ffdcd7;
  background: #67060c;
}
html.dark .addition {
  color: #aff5b4;
  background: #033a16;
}
html.dark .keyword,
html.dark .selector-tag,
html.dark .subst {
  color: #c9d1d9;
}
html.dark .tags-container .tag {
  color: #759eff;
  border-color: #759eff;
}
html.dark #twikoo .tk-ruser,
html.dark .tk-footer a,
html.dark .tk-actions a {
  color: #409eff;
}
.page-detail {
  padding: 16px 0 32px 0;
}
.page-detail .post-title {
  font-size: 28.1px;
  margin-bottom: 18px;
}
.page-detail .post-content {
  line-height: 1.8;
}
.page-detail .post-content h1,
.page-detail .post-content h2,
.page-detail .post-content h3,
.page-detail .post-content h4 {
  margin: 24px 0 12px 0;
}
.page-detail .post-content p {
  margin: 12px 0;
}
.page-detail .post-content img {
  max-width: 100%;
  border-radius: 6px;
}
.page-detail .page-extra-content {
  margin-top: 24px;
}
.timeline {
  position: relative;
  margin: 20px 0;
  padding-left: 26px;
}
.timeline:before {
  content: '';
  position: absolute;
  left: 5px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: var(--c-base-purplelight);
}
.timeline .timeline-item {
  position: relative;
  margin-bottom: 26px;
}
.timeline .timeline-item:before {
  content: '';
  position: absolute;
  left: -26px;
  top: 5px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--c-base-purple);
  box-shadow: 0 0 0 3px var(--c-base-purplelight);
}
.timeline .timeline-item.headline {
  margin-bottom: 16px;
}
.timeline .timeline-item.headline .item-circle {
  font-size: 25.9px;
  font-weight: 700;
}
.timeline .timeline-item .item-circle {
  color: var(--c-base-purple);
  font-weight: 600;
  margin-bottom: 6px;
}
.timeline .timeline-item .item-circle p {
  margin: 0;
}
.timeline .timeline-item .timeline-item-content p {
  margin: 8px 0;
}
.timeline .timeline-item .timeline-item-content img {
  max-width: 100%;
  border-radius: 6px;
  margin: 8px 0;
}
.timeline .timeline-item .timeline-item-content video {
  max-width: 100%;
  border-radius: 6px;
  margin: 8px 0;
}
.album-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
  gap: 20px;
}
.album-list .album-card {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: var(--c-base-white);
  transition: transform 0.3s;
}
.album-list .album-card:hover {
  transform: translateY(-4px);
}
.album-list .album-card .album-card-cover {
  height: 150px;
  overflow: hidden;
}
.album-list .album-card .album-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.album-list .album-card .album-card-info {
  padding: 12px;
}
.album-list .album-card .album-card-info .album-card-title {
  font-size: 19.4px;
  margin: 0 0 6px 0;
  color: var(--c-base-purple);
}
.album-list .album-card .album-card-info .album-card-desc {
  font-size: 15.1px;
  margin: 0;
  opacity: 0.75;
}
.album-detail .album-detail-header {
  margin-bottom: 24px;
}
.album-detail .album-detail-header .album-detail-title {
  color: var(--c-base-purple);
  margin-bottom: 6px;
}
.album-detail .album-detail-header .album-detail-desc {
  opacity: 0.8;
}
.album-detail .album-detail-header .album-back-btn {
  display: inline-block;
  margin-top: 10px;
  padding: 4px 14px;
  border-radius: 14px;
  background: var(--c-base-purple);
  color: #fff;
  text-decoration: none;
  font-size: 15.1px;
}
.album-detail .album-item {
  margin-bottom: 28px;
  content-visibility: auto;
  contain-intrinsic-size: auto 320px;
}
.album-detail .album-item .album-item-meta {
  font-size: 14px;
  opacity: 0.7;
}
.album-detail .album-item .album-item-meta span,
.album-detail .album-item .album-item-meta a {
  margin-right: 14px;
}
.album-detail .album-item .album-item-content {
  margin: 8px 0;
}
.album-detail .album-item .album-item-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(160px, 100%), 1fr));
  gap: 10px;
}
.album-detail .album-item .album-item-media-grid .album-item-media {
  position: relative;
  display: block;
  padding: 0;
  border: none;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(125,125,125,0.1);
  cursor: pointer;
  aspect-ratio: 1/1;
}
.album-detail .album-item .album-item-media-grid .album-item-media .album-item-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}
.album-detail .album-item .album-item-media-grid .album-item-media:hover .album-item-thumb {
  transform: scale(1.04);
}
.album-detail .album-item .album-item-media-grid .album-item-media .album-item-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(0,0,0,0.5);
  color: #fff;
  font-size: 19.4px;
  line-height: 44px;
  text-align: center;
  pointer-events: none;
}
.album-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.85);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s;
}
.album-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}
.album-lightbox .album-lightbox-content {
  max-width: 92vw;
  max-height: 88vh;
}
.album-lightbox .album-lightbox-content img,
.album-lightbox .album-lightbox-content video {
  max-width: 92vw;
  max-height: 88vh;
  border-radius: 8px;
  display: block;
  margin: 0 auto;
}
.album-lightbox .album-lightbox-close {
  position: absolute;
  top: 16px;
  right: 20px;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
  color: #fff;
  font-size: 25.9px;
  line-height: 40px;
  text-align: center;
  cursor: pointer;
}
.album-lightbox .album-lightbox-close:hover {
  background: rgba(255,255,255,0.32);
}
.post-content img.is-zoomable,
.page-extra-content img.is-zoomable {
  cursor: zoom-in;
}
.image-viewer {
  position: fixed;
  inset: 0;
  z-index: 11000;
  background: rgba(0,0,0,0.92);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.image-viewer.is-open {
  opacity: 1;
  visibility: visible;
}
.image-viewer .image-viewer-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.image-viewer .image-viewer-img {
  max-width: 92vw;
  max-height: 88vh;
  transform-origin: center center;
  cursor: zoom-in;
  touch-action: none;
  will-change: transform;
}
.image-viewer.is-zoomed .image-viewer-img {
  cursor: grab;
}
.image-viewer.is-dragging .image-viewer-img {
  cursor: grabbing;
}
.image-viewer .image-viewer-close,
.image-viewer .image-viewer-nav {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,0.16);
  color: #fff;
  cursor: pointer;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}
.image-viewer .image-viewer-close svg,
.image-viewer .image-viewer-nav svg {
  display: block;
}
.image-viewer .image-viewer-close:hover,
.image-viewer .image-viewer-nav:hover {
  background: rgba(255,255,255,0.32);
}
.image-viewer .image-viewer-close {
  top: 16px;
  right: 20px;
  width: 40px;
  height: 40px;
}
.image-viewer .image-viewer-nav {
  top: 50%;
  width: 46px;
  height: 46px;
  margin-top: -23px;
}
.image-viewer .image-viewer-nav.prev {
  left: 16px;
}
.image-viewer .image-viewer-nav.next {
  right: 16px;
}
.image-viewer .image-viewer-counter {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.16);
  color: #fff;
  font-size: 14px;
}
.image-viewer .image-viewer-tip {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.72);
  font-size: 14px;
  white-space: nowrap;
  pointer-events: none;
}
@media (max-width: 560px) {
  .image-viewer .image-viewer-nav {
    width: 38px;
    height: 38px;
    margin-top: -19px;
  }
  .image-viewer .image-viewer-nav svg {
    width: 17px;
    height: 17px;
  }
  .image-viewer .image-viewer-tip {
    font-size: 13px;
    white-space: normal;
    width: 84vw;
    text-align: center;
  }
}
.flink-group-title {
  margin: 24px 0 12px 0;
  color: var(--c-base-purple);
}
.flink-group-desc {
  opacity: 0.8;
  margin-bottom: 12px;
}
.flink-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
  grid-auto-rows: 1fr;
  gap: 14px;
}
.flink-list .flink-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
  min-height: 78px;
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid rgba(125,125,125,0.14);
  border-radius: 10px;
  background: var(--c-base-white);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.flink-list .flink-card:hover {
  transform: translateY(-3px);
  border-color: rgba(101,125,225,0.38);
  box-shadow: 0 8px 20px rgba(12,30,41,0.1);
}
.flink-list .flink-avatar-wrap {
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(125,125,125,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.flink-list .flink-avatar {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.flink-list .flink-info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}
.flink-list .flink-name {
  display: block;
  font-size: 16.7px;
  font-weight: 600;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.flink-list .flink-desc {
  display: block;
  font-size: 14.6px;
  line-height: 1.5;
  opacity: 0.72;
  overflow: hidden;
  white-space: nowrap;
}
.flink-list .flink-desc .flink-desc-track {
  display: inline-block;
  white-space: nowrap;
  will-change: transform;
}
.flink-list .flink-desc .flink-desc-text {
  display: inline-block;
  padding-right: 44px;
}
.flink-list .flink-desc.is-marquee:hover .flink-desc-track {
  animation: flink-marquee var(--flink-dur, 9s) linear infinite;
}
.flink-list .flink-tag {
  position: absolute;
  top: 6px;
  right: 8px;
  font-size: 11.9px;
  line-height: 1.6;
  padding: 0 6px;
  border-radius: 6px;
  background: var(--c-base-orange);
  color: #fff;
}
.flink-list .flink-card.has-tag .flink-name {
  padding-right: 40px;
}
.bangumi-title {
  margin: 24px 0 12px 0;
  color: var(--c-base-purple);
}
.bangumi-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap: 18px;
}
.bangumi-list .bangumi-card {
  display: flex;
  background: var(--c-base-white);
  border-radius: 10px;
  overflow: hidden;
}
.bangumi-list .bangumi-card .bangumi-card-cover {
  width: 110px;
  flex-shrink: 0;
}
.bangumi-list .bangumi-card .bangumi-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bangumi-list .bangumi-card .bangumi-card-body {
  min-width: 0;
  padding: 12px;
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-card-title {
  font-size: 17.3px;
  margin: 0 0 4px 0;
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-card-jp {
  font-size: 13px;
  opacity: 0.6;
  margin: 0 0 6px 0;
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-card-meta {
  font-size: 13px;
  opacity: 0.75;
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-card-meta span {
  margin-right: 10px;
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-card-meta .bangumi-status {
  color: var(--c-base-orange);
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-progress {
  height: 6px;
  border-radius: 3px;
  background: var(--c-base-purplelight);
  margin: 8px 0;
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-progress .bangumi-progress-inner {
  height: 100%;
  border-radius: 3px;
  background: var(--c-base-purple);
}
.bangumi-list .bangumi-card .bangumi-card-body .bangumi-card-desc {
  font-size: 14px;
  opacity: 0.8;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bangumi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(130px, 100%), 1fr));
  gap: 16px;
}
.bangumi-grid .bangumi-item .bangumi-item-cover {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: 8px;
}
.bangumi-grid .bangumi-item .bangumi-item-title {
  font-size: 14px;
  margin-top: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bangumi-grid .bangumi-item .bangumi-item-meta {
  font-size: 13px;
  opacity: 0.7;
}
.bangumi-grid .bangumi-item .bangumi-item-meta .bangumi-score {
  color: var(--c-base-orange);
  margin-right: 8px;
}
.page-tags .tag .tag-count {
  margin-left: 6px;
  font-size: 13px;
  opacity: 0.6;
}
.page-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.page-categories .category-item {
  padding: 6px 14px;
  border-radius: 16px;
  background: var(--c-base-white);
  text-decoration: none;
  color: inherit;
}
.page-categories .category-item .category-count {
  margin-left: 6px;
  font-size: 13px;
  opacity: 0.6;
}
.page-categories .category-item:hover {
  background: var(--c-base-purple);
  color: #fff;
}
.about-card {
  background: var(--c-base-white);
  border-radius: 12px;
  padding: 28px 22px 26px;
  text-align: center;
/* 站点统计：文章数 / 总字数 / 建站时间 / 已运行 */
}
.about-card .about-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.about-card .about-name {
  margin: 0;
  font-size: 29.2px;
  line-height: 1.3;
  color: var(--c-base-purple);
}
.about-card .about-avatar-wrap {
  display: block;
}
.about-card .about-avatar {
  display: block;
  width: 104px;
  height: 104px;
  margin: 0 auto;
  border-radius: 50%;
  object-fit: cover;
}
.about-card .about-subtitle,
.about-card .about-desc {
  margin: 0;
  max-width: 640px;
  line-height: 1.8;
}
.about-card .about-subtitle {
  font-size: 16.7px;
  font-weight: 500;
  opacity: 0.85;
}
.about-card .about-desc {
  font-size: 15.7px;
  opacity: 0.68;
}
.about-card .about-slogan {
  margin: 0;
  max-width: 640px;
  font-size: 16.2px;
  font-weight: 500;
  line-height: 1.8;
  opacity: 0.8;
}
.about-card .about-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 10px;
  list-style: none;
  margin: 18px auto 0;
  padding: 0;
  max-width: 640px;
}
.about-card .about-stat-item {
  flex: 0 1 auto;
  min-width: 96px;
  padding: 10px 16px;
  border-radius: 10px;
  background: rgba(101,125,225,0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  box-sizing: border-box;
}
.about-card .about-stat-num {
  font-size: 17.3px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--c-base-purple);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.about-card .about-stat-label {
  font-size: 12.9px;
  line-height: 1.5;
  opacity: 0.68;
}
.about-card .about-maxim {
  margin: 20px auto 0;
  max-width: 640px;
  padding: 0;
  border-left: none;
  background: transparent;
  font-size: 16.2px;
  line-height: 1.8;
  text-align: center;
  color: inherit;
}
.about-card .about-info {
  list-style: none;
  margin: 18px auto 0;
  padding: 0;
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.about-card .about-info li {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  font-size: 16.2px;
}
.about-card .about-info .about-info-key {
  flex: 0 0 auto;
  color: var(--c-base-purple);
  font-weight: 600;
}
.about-card .about-info .about-info-val {
  opacity: 0.82;
}
.about-card .about-contact {
  margin: 22px auto 0;
  max-width: 560px;
}
.about-card .about-contact .about-contact-title {
  margin: 0 0 10px 0;
  font-size: 18.4px;
  color: var(--c-base-purple);
}
.about-card .about-contact .about-contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 22px;
  font-size: 16.2px;
}
.about-card .about-contact .about-contact-list li {
  opacity: 0.82;
}
.about-card .about-contact .about-contact-list a {
  color: var(--c-base-purple, #003df0);
}
.mermaid {
  text-align: center;
  margin: 16px 0;
  overflow-x: auto;
}
.footer-links {
  margin-top: 6px;
}
.rss-page .rss-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  margin-bottom: 16px;
  border-radius: 10px;
  background: rgba(101,125,225,0.1);
}
.rss-page .rss-hero-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(101,125,225,0.25);
  font-size: 21.6px;
}
.rss-page .rss-hero-text h3 {
  margin: 0 0 4px 0;
  font-size: 19.4px;
}
.rss-page .rss-hero-text p {
  margin: 0;
  color: var(--c-base-gray, #999);
  font-size: 15.1px;
}
.rss-page .rss-copy {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.rss-page .rss-copy .rss-copy-input {
  flex: 1 1 260px;
  min-width: 0;
  height: 36px;
  padding: 0 10px;
  border: 1px solid rgba(101,125,225,0.35);
  border-radius: 6px;
  background: transparent;
  outline: none;
  box-sizing: border-box;
  font-size: 14px;
}
.rss-page .rss-copy .rss-copy-btn,
.rss-page .rss-copy .rss-view-btn {
  height: 36px;
  padding: 0 14px;
  border: none;
  border-radius: 6px;
  background: rgba(101,125,225,0.18);
  line-height: 36px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  font-size: 14px;
}
.rss-page .rss-copy .rss-view-btn {
  background: transparent;
  border: 1px solid rgba(101,125,225,0.35);
}
.rss-page .rss-tip {
  margin: 10px 0 22px 0;
  color: var(--c-base-gray, #999);
  font-size: 14px;
}
.rss-page .rss-tip code {
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(125,125,125,0.16);
}
.rss-page .rss-list-title {
  margin: 0 0 10px 0;
  font-size: 18.4px;
}
.rss-page .rss-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rss-page .rss-list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px dashed rgba(125,125,125,0.22);
}
.rss-page .rss-list li:last-child {
  border-bottom: none;
}
.rss-page .rss-list li a {
  flex: 1 1 auto;
  min-width: 0;
}
.rss-page .rss-list .rss-date {
  flex: 0 0 auto;
  color: var(--c-base-gray, #999);
  font-size: 13px;
}
.dark .rss-copy .rss-copy-input {
  color: inherit;
}
.post-reward {
  position: relative;
  margin: 40px 0 12px;
  text-align: center;
}
.post-reward.is-open {
  z-index: 1035;
}
.post-reward .reward-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 22px;
  border: none;
  border-radius: 22px;
  background: #2f6bff;
  color: #fff;
  font-size: 17.3px;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(47,107,255,0.3);
  transition: background-color 0.18s ease, transform 0.18s ease;
}
.post-reward .reward-button:hover {
  background: #4a83ff;
  transform: translateY(-1px);
}
.post-reward .reward-main {
  display: block;
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  z-index: 1040;
  width: max-content;
  max-width: min(92vw, 420px);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(6px);
  transition: opacity 0.18s ease, transform 0.2s ease, visibility 0.2s;
}
.post-reward.is-open .reward-main {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.post-reward .reward-all {
  padding: 18px 20px 14px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(12,30,41,0.16);
  border: 1px solid rgba(125,125,125,0.14);
}
.post-reward .reward-title {
  display: block;
  margin-bottom: 14px;
  font-size: 16.2px;
  color: var(--c-base-blacklight, #4e616c);
}
.post-reward .reward-group {
  display: flex;
  justify-content: center;
  gap: 24px;
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
}
.post-reward .reward-item {
  text-align: center;
}
.post-reward .reward-item .post-qr-code-img {
  width: 130px;
  height: 130px;
  object-fit: contain;
  display: block;
  border-radius: 8px;
  background: #fff;
}
.post-reward .reward-item .post-qr-code-desc {
  margin-top: 6px;
  font-size: 14px;
  color: var(--c-base-gray, #999);
}
.post-reward .reward-main-btn {
  display: block;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(101,125,225,0.1);
  text-decoration: none;
  transition: background-color 0.18s ease;
}
.post-reward .reward-main-btn:hover {
  background: rgba(101,125,225,0.2);
}
.post-reward .reward-main-btn .reward-text {
  font-size: 16.2px;
  font-weight: 600;
}
.post-reward .reward-main-btn .reward-dec {
  font-size: 13.5px;
  color: var(--c-base-gray, #999);
  margin-top: 2px;
}
.charge-wrap {
  margin-top: 32px;
  padding: 22px;
  border-radius: 12px;
  background: rgba(101,125,225,0.07);
}
.charge-wrap .charge-tips {
  display: inline-block;
  margin-bottom: 4px;
  color: var(--c-base-gray, #999);
  font-size: 14px;
}
.charge-wrap .charge-title {
  margin: 0 0 6px;
  font-size: 21.6px;
}
.charge-wrap .charge-desc {
  margin: 0 0 18px;
  color: var(--c-base-blacklight, #4e616c);
  font-size: 16.2px;
}
.charge-wrap .charge-body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
  text-align: left;
}
.charge-wrap .charge-list {
  flex: 1 1 280px;
  min-width: 0;
  text-align: left;
}
.charge-wrap .charge-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(125,125,125,0.22);
  font-size: 16.2px;
}
.charge-wrap .charge-list-item:last-child {
  border-bottom: none;
}
.charge-wrap .charge-list-item-name {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.charge-wrap .charge-list-bottom-group {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}
.charge-wrap .charge-list-item-money {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 2px 10px;
  border: 1px solid rgba(101,125,225,0.38);
  border-radius: 999px;
  background: rgba(101,125,225,0.16);
  font-size: 14.6px;
  font-weight: 700;
  line-height: 1.5;
  color: #1f4fd8;
  font-variant-numeric: tabular-nums;
}
.charge-wrap .charge-list-item-money.is-big {
  border-color: rgba(199,138,0,0.55);
  background: linear-gradient(135deg, #ffd76a 0%, #f7b500 100%);
  color: #4a3b00;
  box-shadow: 0 2px 8px rgba(247,181,0,0.32);
}
.charge-wrap .charge-list-item-time {
  font-size: 13px;
  color: var(--c-base-gray, #999);
}
.charge-wrap .charge-list-updateDate {
  margin-top: 10px;
  font-size: 13.5px;
  color: var(--c-base-gray, #999);
}
.charge-wrap .charge-empty {
  margin: 0;
  color: var(--c-base-gray, #999);
  font-size: 16.2px;
}
.about-reward {
  flex: 0 0 auto;
  position: relative;
  width: 350px;
  height: 100px;
}
.about-reward #con {
  position: absolute;
  top: 0;
  left: 0;
  width: 350px;
  height: 100px;
  border-radius: 4px;
  transform-origin: top left;
}
.about-reward #TA-con {
  width: 157px;
  height: 50px;
  background-color: #f25d8e;
  box-shadow: 0 4px 4px rgba(255,112,159,0.3);
  position: absolute;
  top: 50%;
  left: 10%;
  transform: translateY(-50%);
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.18s ease;
}
.about-reward #TA-con:hover {
  background-color: #ff6b9a;
}
.about-reward #text-con {
  width: 100px;
  height: 100%;
  margin: 0 auto;
  position: relative;
}
.about-reward #linght {
  width: 0;
  height: 0;
  position: absolute;
  top: 36%;
  left: 4px;
  border-color: transparent;
  border-style: solid;
  border-width: 10px;
  border-top: 10px solid #fff;
  border-radius: 4px;
  transform: rotate(-55deg);
}
.about-reward #linght::after {
  position: absolute;
  top: -13px;
  left: -11px;
  content: "";
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 10px;
  border-top: 10px solid #fff;
  transform: rotate(180deg);
  border-radius: 4px;
}
.about-reward #TA {
  float: right;
  line-height: 50px;
  font-size: 16.2px;
  color: #fff;
}
.about-reward #tube-con {
  width: 157px;
  height: 55px;
  position: absolute;
  right: -5px;
  top: 15px;
}
.about-reward svg {
  width: 100%;
  height: 100%;
}
.about-reward #mask {
  width: 0;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.5s;
}
.about-reward #mask svg {
  width: 157px;
  height: 55px;
}
.about-reward #TA-con:hover + #tube-con > #mask,
.about-reward #TA-con.is-active + #tube-con > #mask {
  width: 157px;
}
.about-reward #TA-con:hover + #tube-con > #orange-mask,
.about-reward #TA-con.is-active + #tube-con > #orange-mask {
  animation: charge-move1 0.5s linear 0.2s infinite;
}
.about-reward #TA-con:hover + #tube-con > #orange-mask svg,
.about-reward #TA-con.is-active + #tube-con > #orange-mask svg {
  animation: charge-move2 0.5s linear 0.2s infinite;
}
.about-reward #orange-mask {
  width: 18px;
  height: 100%;
  overflow: hidden;
  position: absolute;
  left: -15px;
  top: 0;
}
.about-reward #orange-mask svg {
  position: absolute;
  top: 0;
  left: 15px;
  width: 157px;
  height: 55px;
}
@media screen and (max-width: 768px) {
  .about-reward {
    width: 245px; /* 350 * .7 */
    height: 70px; /* 100 * .7 */
  }
  .about-reward #con {
    transform: scale(0.7);
  }
}
@media screen and (max-width: 400px) {
  .about-reward {
    width: 210px; /* 350 * .6 */
    height: 60px; /* 100 * .6 */
  }
  .about-reward #con {
    transform: scale(0.6);
  }
}
@media screen and (max-width: 768px) {
  .post-reward .reward-item .post-qr-code-img {
    width: 108px;
    height: 108px;
  }
}
@media screen and (max-width: 560px) {
  .about-card {
    padding: 22px 14px 20px;
  }
  .charge-wrap {
    margin-top: 24px;
    padding: 16px 14px;
  }
  .charge-wrap .charge-body {
    gap: 22px;
  }
  .charge-wrap .charge-title {
    font-size: 19.4px;
  }
  .charge-wrap .charge-desc {
    margin-bottom: 14px;
    font-size: 15.1px;
  }
}
@media screen and (max-width: 480px) {
  .about-card .about-stat-item {
    flex: 0 0 calc(50% - 5px);
    min-width: 0;
    padding: 9px 8px;
  }
  .charge-wrap .charge-list-item {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 2px 10px;
  }
  .charge-wrap .charge-list-item-name {
    flex: 1 1 100%;
  }
  .charge-wrap .charge-list-bottom-group {
    margin-left: auto;
  }
}
.reward-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
  background: rgba(12,30,41,0.32);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.18s ease, visibility 0.18s;
}
.reward-backdrop.is-active {
  opacity: 1;
  visibility: visible;
}
.charge-qr {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 1040;
  width: max-content;
  max-width: min(92vw, 420px);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%) scale(0.96);
  transition: opacity 0.18s ease, transform 0.2s ease, visibility 0.2s;
}
.charge-qr.is-open {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}
.charge-qr .charge-qr-inner {
  position: relative;
  padding: 20px 22px 16px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(125,125,125,0.14);
  box-shadow: 0 12px 32px rgba(12,30,41,0.18);
}
.charge-qr .charge-qr-close {
  position: absolute;
  top: 6px;
  right: 10px;
  border: none;
  background: transparent;
  font-size: 23.8px;
  line-height: 1;
  color: var(--c-base-gray, #999);
  cursor: pointer;
}
.charge-qr .charge-qr-close:hover {
  color: var(--c-base-black, #0c1e29);
}
.charge-qr .charge-qr-title {
  display: block;
  margin-bottom: 14px;
  font-size: 16.2px;
  text-align: center;
  color: var(--c-base-blacklight, #4e616c);
}
.charge-qr .charge-qr-group {
  display: flex;
  justify-content: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.charge-qr .charge-qr-item {
  text-align: center;
}
.charge-qr .charge-qr-item .charge-qr-img {
  display: block;
  width: 130px;
  height: 130px;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
}
.charge-qr .charge-qr-item .charge-qr-desc {
  margin-top: 6px;
  font-size: 14px;
  color: var(--c-base-gray, #999);
}
@media screen and (max-width: 768px) {
  .charge-qr .charge-qr-item .charge-qr-img {
    width: 108px;
    height: 108px;
  }
}
.post-license {
  margin: 28px 0 4px;
  padding: 14px 16px;
  border-radius: 10px;
  background: rgba(101,125,225,0.07);
  font-size: 15.1px;
  line-height: 1.9;
  color: var(--c-base-blacklight, #4e616c);
}
.post-license .post-license-line {
  margin: 2px 0;
}
.post-license .post-license-label {
  display: inline-block;
  min-width: 3em;
  margin-right: 8px;
  color: var(--c-base-purple, #003df0);
  font-weight: 600;
}
.post-license .post-license-permalink {
  word-break: break-all;
}
.post-license a {
  color: var(--c-base-purple, #003df0);
}
.dark .album-card,
.dark .flink-card,
.dark .bangumi-card,
.dark .page-categories .category-item {
  background: #1b1b1f;
}
.dark .timeline .timeline-item:before {
  background: var(--c-base-yellow);
}
.dark .reward-all,
.dark .charge-qr-inner {
  background: #1b1b1f;
  border-color: rgba(255,255,255,0.1);
}
.dark .reward-backdrop {
  background: rgba(0,0,0,0.55);
}
.dark .post-license {
  background: rgba(101,125,225,0.13);
  color: #c0c0c0;
}
.dark .post-reward .reward-title,
.dark .charge-qr-title {
  color: #c0c0c0;
}
.dark .post-reward .reward-main-btn {
  background: rgba(122,180,255,0.16);
}
.dark .post-reward .reward-main-btn:hover {
  background: rgba(122,180,255,0.28);
}
.dark .post-reward .reward-main-btn .reward-text {
  color: #e6edf3;
}
.dark .post-reward .reward-main-btn .reward-dec {
  color: #8b949e;
}
.dark .post-reward .reward-item .post-qr-code-desc,
.dark .charge-qr-desc {
  color: #8b949e;
}
.dark .charge-wrap {
  background: rgba(122,180,255,0.08);
}
.dark .charge-desc {
  color: #c0c0c0;
}
.dark .charge-tips,
.dark .charge-list-item-time,
.dark .charge-list-updateDate,
.dark .charge-empty {
  color: #8b949e;
}
.dark .charge-list-item {
  border-bottom-color: rgba(255,255,255,0.14);
}
.dark .charge-list-item-money {
  border-color: rgba(122,180,255,0.42);
  background: rgba(122,180,255,0.18);
  color: #9db8ff;
}
.dark .charge-list-item-money.is-big {
  border-color: rgba(255,213,43,0.6);
  background: linear-gradient(135deg, #ffd76a 0%, #f7b500 100%);
  color: #4a3b00;
  box-shadow: 0 2px 8px rgba(247,181,0,0.28);
}
.dark .about-card {
  background: #1b1b1f;
}
.dark .about-stat-item {
  background: rgba(122,180,255,0.1);
}
.dark .about-stat-num {
  color: #9db8ff;
}
@-moz-keyframes flink-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@-webkit-keyframes flink-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@-o-keyframes flink-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes flink-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@-moz-keyframes charge-move1 {
  0% {
    transform: translateX(-15px);
  }
  100% {
    transform: translateX(140px);
  }
}
@-webkit-keyframes charge-move1 {
  0% {
    transform: translateX(-15px);
  }
  100% {
    transform: translateX(140px);
  }
}
@-o-keyframes charge-move1 {
  0% {
    transform: translateX(-15px);
  }
  100% {
    transform: translateX(140px);
  }
}
@keyframes charge-move1 {
  0% {
    transform: translateX(-15px);
  }
  100% {
    transform: translateX(140px);
  }
}
@-moz-keyframes charge-move2 {
  0% {
    transform: translateX(15px);
  }
  100% {
    transform: translateX(-140px);
  }
}
@-webkit-keyframes charge-move2 {
  0% {
    transform: translateX(15px);
  }
  100% {
    transform: translateX(-140px);
  }
}
@-o-keyframes charge-move2 {
  0% {
    transform: translateX(15px);
  }
  100% {
    transform: translateX(-140px);
  }
}
@keyframes charge-move2 {
  0% {
    transform: translateX(15px);
  }
  100% {
    transform: translateX(-140px);
  }
}
body {
  font-size: 18.4px;
  line-height: 1.75;
}
.main {
  max-width: 860px;
}
.site-header {
  max-width: 860px;
}
.content-container {
  padding: 52px 20px 40px;
}
.post-item {
  padding: 24px 0;
  max-height: 240px;
}
.post-item .content .post-title {
  font-size: 25.9px;
  line-height: 1.45;
}
.post-item .content .post-abstract {
  font-size: 16.7px;
  line-height: 1.8;
  margin: 14px 0 10px;
  -webkit-line-clamp: 3;
}
.post-info {
  font-size: 14px;
  margin-top: 12px;
}
.post-info .icon {
  font-size: 14px;
}
.post-sticky {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-right: 6px;
  padding: 1px 7px;
  border-radius: 4px;
  background: var(--c-base-purple, #003df0);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.7;
  vertical-align: middle;
}
.post-sticky svg {
  display: block;
}
.post-item-sticky .content .post-title {
  font-weight: 600;
}
.post-detail .post-title {
  font-size: 36.7px;
  line-height: 1.35;
  margin: 26px 0;
}
.post-content {
  font-size: 18.9px;
  line-height: 1.85;
}
.post-content p {
  line-height: 1.85;
  margin-bottom: 18px;
}
.post-content h1 {
  font-size: 30.2px;
}
.post-content h2 {
  font-size: 27px;
}
.post-content h3 {
  font-size: 23.8px;
}
.post-content h4 {
  font-size: 20.5px;
}
.post-content h5 {
  font-size: 18.9px;
}
.post-content h6 {
  font-size: 17.8px;
}
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
  padding: 20px 0 12px;
  line-height: 1.45;
}
.post-content ul,
.post-content ol {
  font-size: 18.4px;
  line-height: 1.85;
  padding-left: 26px;
  margin-bottom: 18px;
}
.post-content ul li,
.post-content ol li {
  margin-bottom: 6px;
}
.post-content blockquote {
  font-size: 18.4px;
  padding: 18px 20px;
  line-height: 1.8;
}
.post-content img {
  margin: 20px auto;
}
.post-content code {
  font-size: 0.88em;
}
.post-content pre code {
  font-size: 16.2px;
  line-height: 1.6;
}
.post-content td,
.post-content th {
  padding: 0.5em 0.6em;
  line-height: 1.5;
  font-size: 17.3px;
}
.archives-container .year {
  font-size: 28.1px;
}
.archives-container .post-title {
  font-size: 19.4px;
  line-height: 1.7;
}
.tags-container .tag,
.page-tags .tag {
  font-size: 17.3px;
}
.site-footer {
  font-size: 16.2px;
  line-height: 2;
}
.footer-copyright {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2px 1.4em;
  margin-bottom: 6px;
  font-size: 15.1px;
}
.footer-copyright a {
  color: var(--c-base-purple, #003df0);
}
.footer-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 1.8em;
}
.footer-links .footer-link-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.footer-links .footer-link-item .footer-link-sep {
  color: var(--c-base-gray, #999);
  user-select: none;
}
.footer-links .footer-link-item a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.footer-links .footer-link-icon {
  display: block;
  width: auto;
  height: 17px;
  flex: 0 0 auto;
  object-fit: contain;
}
.menu-container .menu {
  font-size: 17.3px;
  padding: 9px 12px;
}
@media (min-width: 1200px) {
  .main {
    max-width: 1080px;
  }
  .site-header {
    max-width: 1080px;
  }
  .menu-container .menu-list {
    max-width: 1080px;
  }
}
@media (max-width: 600px) {
  body {
    font-size: 17.8px;
  }
  .content-container {
    padding: 46px 16px 32px;
  }
  .post-item .content .post-title {
    font-size: 21.6px;
  }
  .post-detail .post-title {
    font-size: 28.1px;
  }
  .post-content {
    font-size: 17.8px;
  }
  .post-content h1 {
    font-size: 24.8px;
  }
  .post-content h2 {
    font-size: 22.7px;
  }
  .post-content h3 {
    font-size: 20.5px;
  }
  .post-content h4 {
    font-size: 18.9px;
  }
}
/* 全站右侧悬浮工具条：搜索 / 繁简 / 日夜间 / 回到顶部 */
#site-sidebar-tools {
  position: fixed;
  right: 2.2em;
  bottom: 2.2em;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}
/* 搜索按钮并入工具条顶部（取消原 fixed 定位，作为栈顶第一位，上→下：搜索/繁简/日夜间/回到顶部） */
#site-sidebar-tools #search-float-btn {
  position: static;
  right: auto;
  bottom: auto;
  flex: 0 0 auto;
}
.sidebar-tool-btn {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 16px rgba(64,158,255,0.18);
  border: none;
  outline: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #409eff;
  font-size: 16.2px;
  font-weight: 600;
  transition: box-shadow .2s, background .2s, transform .2s;
  padding: 0;
}
.sidebar-tool-btn:hover {
  box-shadow: 0 8px 32px rgba(64,158,255,0.28);
  background: #f4faff;
  transform: scale(1.08);
}
.sidebar-tool-btn svg { display: block; }
.sidebar-tool-btn.hidden { display: none !important; }
html.dark #site-sidebar-tools .sidebar-tool-btn {
  background: #23272e;
  box-shadow: 0 4px 16px rgba(64,158,255,0.28);
  color: #7ab4ff;
}
html.dark #site-sidebar-tools .sidebar-tool-btn:hover { background: #181a1b; }
@media (max-width: 600px) {
  #site-sidebar-tools { right: 1em; bottom: 1em; gap: 10px; }
  .sidebar-tool-btn { width: 44px; height: 44px; font-size: 15.1px; }
  #site-sidebar-tools #search-float-btn { position: static; right: auto; bottom: auto; }
}

/* 代码块过长自动折叠（移植自 anzhiyu） */
figure.highlight,
pre[class*=language-] {
  position: relative;
}
figure.highlight.code-folded > table,
figure.highlight.code-folded > pre,
pre[class*=language-].code-folded {
  max-height: 400px;
  overflow: hidden;
}
.code-expand-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 30px;
  margin-top: 0;
  cursor: pointer;
  color: #8a8f99;
  font-size: 14px;
  user-select: none;
  background: transparent;
  transition: color .2s;
}
/* 非 figure 的裸 <pre>：按钮只能放在块后，用负 margin 抵消其下内边距 */
pre[class*=language-] + .code-expand-btn {
  margin-top: -12px;
}
pre[class*=language-].code-folded + .code-expand-btn {
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #f6f7f9 78%);
}
/* 折叠态：按钮绝对定位浮在代码块底部，不再占额外行高（消除两行空白） */
figure.highlight.code-folded .code-expand-btn {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  border-radius: 0 0 6px 6px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #f6f7f9 78%);
}
.code-expand-btn:hover { color: #006CFF; }
.code-expand-btn .code-fold-icon {
  display: inline-block;
  transition: transform .3s;
  animation: code-expand-key 1.2s ease 0s infinite;
}
.code-expand-btn.expand-done .code-fold-icon {
  transform: rotate(180deg);
  animation: none;
}
html.dark .code-expand-btn {
  color: #9aa4b2;
}
html.dark figure.highlight.code-folded .code-expand-btn,
html.dark pre[class*=language-].code-folded + .code-expand-btn {
  background: linear-gradient(180deg, rgba(27,31,36,0) 0%, #23272e 78%);
}
html.dark .code-expand-btn:hover { color: #409eff; }
@keyframes code-expand-key {
  0% { opacity: .6; }
  50% { opacity: .1; }
  100% { opacity: .6; }
}

