@import"https://fonts.googleapis.com/css?family=Source+Sans+Pro:100,300,400,600";@keyframes fadein{from{opacity:0}to{opacity:1}}@-moz-keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-ms-keyframes fadein{from{opacity:0}to{opacity:1}}@-o-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein-right{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0px)}}@-moz-keyframes fadein-right{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0px)}}@-webkit-keyframes fadein-right{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0px)}}@-ms-keyframes fadein-right{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0px)}}@-o-keyframes fadein-right{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0px)}}@keyframes fadein-top{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0px)}}@-moz-keyframes fadein-top{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0px)}}@-webkit-keyframes fadein-top{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0px)}}@-ms-keyframes fadein-top{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0px)}}@-o-keyframes fadein-top{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0px)}}@keyframes swift-down{from{transform:translateY(0%)}to{transform:translateY(20%)}}@-moz-keyframes swift-down{from{transform:translateY(0%)}to{transform:translateY(20%)}}@-webkit-keyframes swift-down{from{transform:translateY(0%)}to{transform:translateY(20%)}}@-ms-keyframes swift-down{from{transform:translateY(0%)}to{transform:translateY(20%)}}@-o-keyframes swift-down{from{transform:translateY(0%)}to{transform:translateY(20%)}}.invisible{opacity:0}.fadeIn{-webkit-animation:fadein 1s ease-out;-moz-animation:fadein 1s ease-out;-ms-animation:fadein 1s ease-out;-o-animation:fadein 1s ease-out;animation:fadein 1s ease-out}.fadeInRight{-webkit-animation:fadein-right 1s ease-out;-moz-animation:fadein-right 1s ease-out;-ms-animation:fadein-right 1s ease-out;-o-animation:fadein-right 1s ease-out;animation:fadein-right 1s ease-out}.fadeInTop{-webkit-animation:fadein-top 1s ease-out;-moz-animation:fadein-top 1s ease-out;-ms-animation:fadein-top 1s ease-out;-o-animation:fadein-top 1s ease-out;animation:fadein-top 1s ease-out}.swiftDown{-webkit-animation:swift-down 1s ease-out;-moz-animation:swift-down 1s ease-out;-ms-animation:swift-down 1s ease-out;-o-animation:swift-down 1s ease-out;animation:swift-down 1s ease-out}.swiftDownReversed{-webkit-animation:swift-down 1s reverse ease-out;-moz-animation:swift-down 1s reverse ease-out;-ms-animation:swift-down 1s reverse ease-out;-o-animation:swift-down 1s reverse ease-out;animation:swift-down 1s reverse ease-out}html,body,span,p,h1,h2,h3,h4,h5,h6{font-family:"Source Sans Pro","Roboto","Helvetica","Helvetica Neue","Source Han Sans SC","Source Han Sans TC","PingFang SC","PingFang HK","PingFang TC",sans-serif;color:#fff}html{background:#2e405b}.foreground{background:#fff !important}.background{background:#2e405b !important}.foreground-text *{color:#fff !important}.background-text *{color:#2e405b !important}h1{font-size:42px}h2{font-size:36px}h3{font-size:30px}h4{font-size:24px}h5{font-size:18px}h6{font-size:14px}body{font-size:18px;line-height:1.5em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi/P//Py8DpQCXISBxJlING4QaGEdDiQgAEGAAg8sST3LGZYoAAAAASUVORK5CYII=");background-repeat:repeat;background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-shadow:1px 1px 1px rgba(0,0,0,.04);min-height:100vh}.container{background-color:rgba(0,0,0,0);padding:0;position:relative}.full-width-container{width:100vw}.main-container{text-align:left;margin:0;padding:80px 40px;overflow:hidden;float:left}.main-container :nth-child(1){margin-top:0}.row{margin:0}.vertical-text{writing-mode:vertical-rl}.vertical-text *{line-height:1;text-align:left}.side-container{height:100vh;position:fixed;right:0;font-style:normal;font-size:1em;margin:0;transform:rotate(0deg);text-align:left;float:right;padding:80px 20px}.ar-year{margin-top:5px;margin-bottom:5px}.date{margin-bottom:0px}.ar-date{font-size:16px;margin-bottom:5px}.archive :first-child{padding-left:0}.archive ul{list-style-type:none}.site-title{font-weight:bolder;font-style:normal;width:auto;height:auto;margin:0 0 0 -2px;text-align:left;font-size:.5em;padding:0 0 50px 0;border-left:solid #fff 2px;transition:padding .8s ease 0s,background .8s ease 0s}.site-title:hover{padding:15px 0 35px 0;color:#2e405b !important;background:#fff !important;border-left:solid #fff 2px}.site-title:hover *{color:#2e405b !important}.site-title :first-child{margin-right:10px}.site-title *{text-align:left;font-weight:bolder;margin-top:0;margin-left:10px;margin-right:0;font-family:"HiraMinProN-W6","Source Han Serif CN","Source Han Serif SC","Source Han Serif TC",serif}.site-title-large{font-size:50px;padding-top:0}.site-title-small{font-size:30px;padding-top:1px}.site-title-links{font-weight:bold;font-style:normal;margin:0;padding:60px 0;text-align:left;position:fixed;bottom:20px}.site-title-links ul{list-style:none;padding:0}.site-title-links ul li{display:block;margin:5px 0;font-size:18px}.site-title-links a{border-bottom:solid #fff 2px}.no-margin-left{margin-left:0}.no-margin-right{margin-right:0}.no-margin-top{margin-top:0}.no-margin-bottom{margin-bottom:0}a{color:#fff;transition:color .3s ease 0s,background-color .3s ease 0s;-moz-transition:color .3s ease 0s,background-color .3s ease 0s;-o-transition:color .3s ease 0s,background-color .3s ease 0s;-webkit-transition:color .3s ease 0s,background-color .3s ease 0s;border-bottom:solid #fff 2px;padding:0;cursor:pointer;cursor:hand}a:hover,a:focus{text-decoration:none}a:hover{color:#2e405b !important;background-color:#fff;border-bottom:solid rgba(0,0,0,0) 2px}a:focus{color:hsl(0,0%,70%)}.a-title{text-decoration:none;background-color:rgba(0,0,0,0);border-bottom:solid rgba(0,0,0,0) 2px}.a-title:hover,.a-title:focus{background-color:rgba(0,0,0,0)}.current{border-bottom:solid #fff 3px !important}.a-mute{background-color:rgba(0,0,0,0);color:#fff !important;text-decoration:none;border-bottom:none}.a-mute:hover,.a-mute:focus{background-color:rgba(0,0,0,0);color:#fff !important;text-decoration:none;border-bottom:none}.soc{margin:0 5px 0 0;font-size:18px !important}.soc a{border-bottom:solid rgba(0,0,0,0) 2px}.soc a:hover{color:hsl(0,0%,90%) !important;background-color:rgba(0,0,0,0) !important;text-decoration:none;border-bottom:solid rgba(0,0,0,0) 2px}.soc a:focus{color:hsl(0,0%,90%) !important}.meta-item{margin:0 10px 0 0}img{display:block;max-width:100%;height:auto}footer{margin-top:10px;padding-top:0;font-size:12px;font-weight:bold}footer *{margin:0}.post-container{margin:0 0 20px 0;font-weight:normal}.post-title{font-size:24px;font-weight:bold;margin:3px 0}.post-meta{font-size:16px;margin:10px 0}.post-abstract{font-size:18px}li{margin:5px 0}figure{overflow:scroll}figure>table{width:100%}pre *{font-family:Monaco,Menlo,"Source Code Pro","Cascadia Code",Consolas,monospace;background:rgba(0,0,0,0) !important}figure .gutter pre{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none;text-align:right;min-width:3em}figure .code{width:99%}figure .code pre{border-bottom-left-radius:0;border-top-left-radius:0;border-left:solid rgba(0,0,0,.05) 1px;margin-right:1px}@media(max-width: 768px){body{line-height:normal}h1{font-size:40px}h2{font-size:34px}h3{font-size:28px}h4{font-size:22px}h5{font-size:16px}h6{font-size:14px}.site-title-large{font-size:38px}.site-title-small{font-size:22px}.vertical-text{writing-mode:horizontal-tb}.site-title{margin:0;font-weight:bolder;font-style:normal;width:auto;height:auto;font-size:.5em;padding:0;border-left:none;text-align:center;transition:none}.site-title *{text-align:center;margin-left:0 !important;margin-right:0 !important}.site-title:hover{color:#fff !important;background:rgba(0,0,0,0) !important;padding:0;border:none}.site-title:hover *{color:#fff !important;background:rgba(0,0,0,0) !important}.main-container{text-align:left;height:auto;margin:0;padding:20px 30px;overflow:auto}.side-container{padding:40px 30px 0 30px;height:auto;position:relative;left:0}.site-title-links{position:unset;padding:10px 0;margin:10px 0;text-align:center}.site-title-links ul li{display:inline;margin:0 3px;font-size:16px}footer{padding-top:30px;padding-bottom:35px}a{padding:0}.post-title{font-size:20px;font-weight:bold;margin:3px 0}.post-meta{font-size:14px;margin:10px 0}.post-abstract{font-size:16px}.soc{display:block !important}.site-nav-footer{display:none !important}.site-bottom-footer{display:block !important}li.soc{margin-top:5px !important}}@media only screen and (max-height: 860px){.site-title-large{font-size:32px}.site-title-small{font-size:20px}.site-title-links ul li{font-size:14px;line-height:1.3}.site-nav-footer-br{display:none}.side-container{padding-top:40px;padding-bottom:20px}.main-container{padding-top:40px;padding-bottom:60px}}@media only screen and (max-height: 600px){body{line-height:normal}h1{font-size:40px}h2{font-size:34px}h3{font-size:28px}h4{font-size:22px}h5{font-size:16px}h6{font-size:14px}.site-title-large{font-size:38px}.site-title-small{font-size:22px}.vertical-text{writing-mode:horizontal-tb}.site-title{margin:0;font-weight:bolder;font-style:normal;width:auto;height:auto;font-size:.5em;padding:0;border-left:none;text-align:center;transition:none}.site-title *{text-align:center;margin-left:0 !important;margin-right:0 !important}.site-title:hover{color:#fff !important;background:rgba(0,0,0,0) !important;padding:0;border:none}.site-title:hover *{color:#fff !important;background:rgba(0,0,0,0) !important}.main-container{text-align:left;height:auto;margin:0;padding:20px 30px;overflow:auto}.side-container{padding:40px 30px 0 30px;height:auto;position:relative;left:0}.site-title-links{position:unset;padding:10px 0;margin:10px 0;text-align:center}.site-title-links ul li{display:inline;margin:0 3px;font-size:16px}footer{padding-top:30px;padding-bottom:35px}a{padding:0}.post-title{font-size:20px;font-weight:bold;margin:3px 0}.post-meta{font-size:14px;margin:10px 0}.post-abstract{font-size:16px}.soc{display:block !important}.site-nav-footer{display:none !important}.site-bottom-footer{display:block !important}}/*# sourceMappingURL=style-dark.css.map */

/* Ray.so 风格代码块 */
figure.highlight {
  background: linear-gradient(145deg, #1a1a2e 0%, #16213e 100%);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05);
  margin: 1.5em 0;
  padding: 0;
  overflow: hidden;
  border: none !important;
}
figure.highlight table {
  margin: 0;
  background: transparent;
  border: none;
}
figure.highlight td {
  border: none;
  padding: 0;
  vertical-align: top;
}
figure.highlight pre {
  margin: 0;
  padding: 16px 0;
  background: transparent !important;
  border: none !important;
  font-size: 14px;
  line-height: 1.6;
  white-space: pre !important;
  word-wrap: normal !important;
  overflow-wrap: normal !important;
}
figure.highlight {
  overflow-x: auto !important;
}
figure.highlight table {
  width: auto !important;
}
figure.highlight .gutter {
  display: none;
}
figure.highlight .code {
  width: 100% !important;
}
figure.highlight .code pre {
  padding: 16px 20px;
  overflow-x: auto;
  line-height: 1.6;
  white-space: pre !important;
  word-wrap: normal !important;
  overflow-wrap: normal !important;
}

/* 行内代码 */
code, tt {
  padding: 2px 6px;
  border-radius: 4px;
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: #ff79c6 !important;
  border: none !important;
  font-family: "Fira Code", Monaco, Menlo, "Source Code Pro", Consolas, monospace;
  font-size: 0.9em;
}

mark {
  background-color: #ffcc00;
  color: #2e405b;
  padding: 2px 4px;
  border-radius: 2px;
  margin: 0 2px;
}

blockquote {
  border-left: #6272a4 0.4em solid !important;
}

/* highlight.js 语法高亮颜色 (Dracula 风格) */
.hljs { color: #f8f8f2; }
.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-section { color: #ff79c6; }
.hljs-string, .hljs-attr { color: #f1fa8c; }
.hljs-number, .hljs-literal { color: #bd93f9; }
.hljs-comment, .hljs-quote { color: #6272a4; font-style: italic; }
.hljs-function .hljs-title, .hljs-title.function_ { color: #50fa7b; }
.hljs-variable, .hljs-template-variable, .hljs-attribute { color: #8be9fd; }
.hljs-type, .hljs-built_in, .hljs-class .hljs-title { color: #8be9fd; }
.hljs-params { color: #ffb86c; }
.hljs-regexp { color: #ff5555; }
.hljs-symbol, .hljs-bullet { color: #bd93f9; }
.hljs-meta { color: #6272a4; }
.hljs-deletion { color: #ff5555; background: rgba(255, 85, 85, 0.1); }
.hljs-addition { color: #50fa7b; background: rgba(80, 250, 123, 0.1); }

/* 自定义滚动条样式 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #2e405b;
}
::-webkit-scrollbar-thumb {
  background: #4a5d7a;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #5a6d8a;
}
pre::-webkit-scrollbar-track,
figure.highlight::-webkit-scrollbar-track {
  background: #1e3050;
}

/* Gitalk 暗色主题样式修复 */
.gt-container {
  color: #fff;
}
.gt-container .gt-header-textarea {
  background-color: #384d6b !important;
  color: #fff !important;
  border-color: #4a5d7a !important;
}
.gt-container .gt-btn {
  background-color: #4a5d7a !important;
  border-color: #5a6d8a !important;
  color: #fff !important;
}
.gt-container .gt-btn:hover {
  background-color: #5a6d8a !important;
}
.gt-container .gt-btn-preview,
.gt-container .gt-btn-public {
  min-width: auto;
}
/* 隐藏空白按钮 */
.gt-container .gt-btn:empty {
  display: none !important;
}
.gt-container .gt-svg svg {
  fill: #fff;
}
.gt-container .gt-link {
  color: #6fa8dc !important;
  border-bottom: none;
}
.gt-container .gt-link:hover {
  color: #fff !important;
  background-color: transparent !important;
}
.gt-container .gt-popup {
  background-color: #384d6b !important;
}
.gt-container .gt-error {
  color: #ff6b6b !important;
}

/* Floating TOC */
.floating-toc {
  position: fixed;
  left: 15px;
  top: 100px;
  z-index: 100;
}
.floating-toc .toc-bars {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 8px;
  cursor: pointer;
}
.floating-toc .toc-bars .bar {
  height: 3px;
  background: rgba(255,255,255,0.5);
  border-radius: 2px;
  transition: width 0.2s;
}
.floating-toc .toc-bars .bar.h1 { width: 28px; }
.floating-toc .toc-bars .bar.h2 { width: 22px; }
.floating-toc .toc-bars .bar.h3 { width: 16px; }
.floating-toc .toc-full {
  position: absolute;
  left: 0;
  top: 0;
  width: 200px;
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  background: rgba(46, 64, 91, 0.95);
  border: 1px solid #4a5d7a;
  border-radius: 8px;
  padding: 12px;
  font-size: 13px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-10px);
  transition: opacity 0.25s, visibility 0.25s, transform 0.25s;
}
.floating-toc:hover .toc-full {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}
.floating-toc:hover .toc-bars { opacity: 0; }
.floating-toc .toc-header {
  font-weight: bold;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid #4a5d7a;
  font-size: 12px;
}
.floating-toc .toc-content ol {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.floating-toc .toc-content ol ol { padding-left: 12px; }
.floating-toc .toc-content a {
  color: #aaa;
  border-bottom: none;
  display: block;
  padding: 3px 0;
  line-height: 1.3;
}
.floating-toc .toc-content a:hover {
  color: #fff;
  background: transparent;
}
.floating-toc .toc-content a.active { color: #6fa8dc; }
@media (max-width: 1400px) {
  .floating-toc { display: none; }
}

/* 表格样式 */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  background-color: rgba(255, 255, 255, 0.05);
  border-radius: 4px;
  overflow: hidden;
}
table th,
table td {
  padding: 10px 14px;
  border: 1px solid #4a5d7a;
  text-align: left;
}
table th {
  background-color: rgba(255, 255, 255, 0.1);
  font-weight: bold;
}
table tr:nth-child(even) {
  background-color: rgba(255, 255, 255, 0.03);
}
table tr:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

/* Mermaid 暗色主题样式 */
.mermaid {
  display: flex;
  justify-content: center;
  overflow-x: auto;
  max-width: 100%;
  background: linear-gradient(145deg, #1a1a2e 0%, #16213e 100%);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05);
  padding: 20px;
  margin: 1.5em 0;
}
.mermaid svg {
  max-width: 100%;
  height: auto;
}
/* Mermaid 节点背景强制深色 */
.mermaid .node rect,
.mermaid .node polygon,
.mermaid .node circle,
.mermaid .node ellipse,
.mermaid .node path {
  fill: #282a36 !important;
  stroke: #6272a4 !important;
}
/* Mermaid 文本强制浅色 */
.mermaid svg text,
.mermaid .nodeLabel,
.mermaid .label,
.mermaid .node text,
.mermaid tspan {
  fill: #f8f8f2 !important;
  color: #f8f8f2 !important;
  font-weight: 600 !important;
}
.mermaid .edgeLabel {
  background-color: rgba(40, 42, 54, 0.9) !important;
  padding: 2px 6px;
  border-radius: 4px;
}
.mermaid .edgeLabel rect {
  fill: rgba(40, 42, 54, 0.9) !important;
}
