@charset "UTF-8";
/* Base theme styles.
 *
 * These were inlined into every page by layouts/partials/style.html, which put
 * ~5.4 KB of identical CSS into all 602 documents and made it impossible to
 * cache. Now served as one fingerprinted file.
 */
/* light theme */
:root {
  --width-max: 720px;
  --font-primary: Verdana, sans-serif;
  --font-secondary: monospace;
  --font-size-primary: 1em;
  --font-size-secondary: 0.8em;
  --body-bg-color: #fcfcfc;
  --bold-text-color: #222;
  --body-text-color: #444;
  --link-color: #3273dc;
  --link-visited-color: #8b6fcb;
  --table-border-color: #f2f2f2;
  --table-th-bg-color: #f2f2f2;
  --img-border-color: #f2f2f2;
  --code-bg-color: #f2f2f2;
  --code-text-color: #222;
  --blockquote-border-color: #666;
  --blockquote-text-color: #666;
  --upvoted-color: #FA8072;
  --caption-text-color: #666;
  --toc-text-color: #e5e5e5;
  --toc-hover-color: #655e5e; }

@media (prefers-color-scheme: dark) {
  /* dark theme */
  :root {
    --body-bg-color: #1c1c1c;
    --bold-text-color: #eee;
    --body-text-color: #ddd;
    --link-color: #8cc2dd;
    --link-visited-color: #c3b1ee;
    --table-border-color: #999;
    --table-th-bg-color: #999;
    --img-border-color: #999;
    --code-bg-color: #555;
    --code-text-color: #ddd;
    --blockquote-border-color: #ccc;
    --blockquote-text-color: #ccc;
    --caption-text-color: #aaa;
    --toc-text-color: #373737;
    --toc-hover-color: #CAC3C3; } }

body {
  font-family: var(--font-primary);
  font-size: var(--font-size-primary);
  margin: auto;
  padding: 20px;
  max-width: var(--width-max);
  text-align: left;
  background-color: var(--body-bg-color);
  word-wrap: break-word;
  overflow-wrap: break-word;
  line-height: 1.5;
  color: var(--body-text-color); }

h1,
h2,
h3,
h4,
h5,
h6,
strong,
b {
  color: var(--bold-text-color); }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 16px 0; }

a {
  color: var(--link-color);
  cursor: pointer;
  text-decoration: none; }

a:hover {
  text-decoration: underline; }

.title {
  text-decoration: none;
  border: 0; }

.title:hover {
  text-decoration: none; }

.title span {
  font-weight: 400; }

nav a {
  margin-right: 8px; }

textarea {
  width: 100%;
  font-size: 16px; }

input {
  font-size: 14px; }

content {
  line-height: 1.6; }

table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--table-border-color);
  border-radius: 4px; }

th,
td {
  border: 1px solid var(--table-border-color);
  padding: 4px; }

th {
  background-color: var(--table-th-bg-color); }

hr {
  border: 0;
  border-top: 1px dashed; }

img {
  max-width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--img-border-color);
  border-radius: 4px;
  /* content-visibility:auto without contain-intrinsic-size collapsed
     off-screen images to zero height and reflowed the page on every scroll.
     lazy loading is now set as an HTML attribute by the render-image hook. */
  content-visibility: auto;
  contain-intrinsic-size: auto 320px; }

img[src*="#minipic"] {
  max-width: 50%;
  margin-left: 0;
  margin-right: auto; }

.image-caption figcaption {
  text-align: center;
  font-style: italic;
  font-size: 0.8em;
  margin-top: 0.6em;
  color: var(--caption-text-color); }

.image-caption {
  margin: auto; }

i {
  font-style: normal; }

time {
  font-family: var(--font-secondary);
  font-size: 15px; }

code {
  font-family: var(--font-secondary);
  background-color: var(--code-bg-color);
  color: var(--code-text-color);
  padding: 2px;
  border-radius: 4px; }

pre code {
  display: block;
  padding: 16px;
  white-space: pre-wrap;
  overflow-x: auto; }

div.highlight pre {
  border-radius: 4px; }

div.highlight code {
  background-color: var(--code-bg-color);
  color: var(--code-text-color); }

blockquote {
  border-left: 2px solid var(--blockquote-border-color);
  color: var(--blockquote-text-color);
  margin: 0;
  padding-left: 16px;
  font-style: normal; }

blockquote p {
  margin: 0; }

footer {
  padding: 25px 0;
  text-align: center;
  font-size: var(--font-size-secondary); }

ul li:has(input) {
  list-style-type: none;
  margin-left: -25.5px; }

/* blog post list */
ul.blog-posts {
  list-style-type: none;
  padding: unset; }

ul.blog-posts li {
  display: flex; }

ul.blog-posts li span {
  flex: 0 0 130px; }

ul.blog-posts li span.grouped {
  flex: 0 0 80px; }

ul.blog-posts li a:visited {
  color: var(--link-visited-color); }

/* TOC 样式 */
div.toc {
  position: fixed;
  /* 固定定位 */
  top: 50%;
  /* 垂直居中 */
  left: calc((100vw + var(--width-max)) / 2);
  /* 水平定位，根据视口宽度和最大内容宽度计算 */
  transform: translateY(-50%);
  /* 垂直居中调整 */
  width: calc((90vw - var(--width-max)) / 2);
  /* 宽度计算 */
  max-height: 80vh;
  /* 最大高度为视口高度的80% */
  overflow-y: auto;
  /* 垂直方向内容溢出时显示滚动条 */
  border: none;
  /* 无边框 */
  padding: 0;
  /* 无内边距 */
  margin: 0;
  /* 无外边距 */
  z-index: 99;
  /* 设置堆叠顺序，确保在其他元素之上 */ }

div.toc::-webkit-scrollbar {
  /* WebKit browsers */
  display: none; }

.toc-nav {
  /* 目录导航容器样式 */
  padding: 1.5rem;
  /* 内边距 */ }

.toc-nav ul {
  /* 目录导航无序列表样式 */
  list-style: none;
  /* 移除列表项标记 */
  padding: 0;
  /* 移除内边距 */
  margin: 0;
  /* 移除外边距 */ }

.toc-nav li {
  /* 目录导航列表项样式 */
  margin: 8px 0;
  /* 上下外边距 */ }

.toc-nav a {
  /* 目录链接样式 */
  display: block;
  /* 块级显示 */
  text-decoration: none;
  /* 无下划线 */
  color: transparent;
  /* 默认透明 */
  padding: 0 12px;
  /* 内边距 */
  transition: all 0.2s ease;
  /* 所有属性过渡效果 */
  font-size: 0.9rem;
  /* 字体大小 */
  line-height: 1.4;
  /* 行高 */
  text-align: left;
  /* 文本左对齐 */
  white-space: nowrap;
  /* 禁止换行 */
  overflow: hidden;
  /* 隐藏溢出内容 */
  text-overflow: ellipsis;
  /* 显示省略号 */
  max-width: 100%;
  /* 限制最大宽度 */ }

.toc-nav:hover a {
  color: var(--toc-text-color);
  /* hover时显示文字颜色 */ }

.toc-nav a::before {
  /* 目录链接前的小横线样式 */
  content: '';
  /* 生成内容 */
  display: inline-block;
  /* 行内块级显示 */
  width: 16px;
  /* 宽度 */
  height: 4px;
  /* 高度 */
  background-color: var(--toc-text-color);
  /* 灰色背景 */
  border-radius: 16px;
  /* 圆角 */
  margin-right: 12px;
  /* 右外边距 */
  vertical-align: middle;
  /* 垂直居中对齐 */ }

.toc-nav ul ul a::before {
  /* 二级目录链接前的小横线样式 */
  width: 12px;
  /* 显示宽度 */
  margin-right: 16px;
  /* 调整右外边距，使其与默认 a::before 占据的总宽度一致 (12px + 12px = 24px) */ }

.toc-nav ul ul ul a::before {
  /* 三级目录链接前的小横线样式 */
  width: 8px;
  /* 显示宽度 */
  margin-right: 20px;
  /* 调整右外边距，使其与默认 a::before 占据的总宽度一致 (8px + 16px = 24px) */ }

.toc-nav a.active,
.toc-nav a:hover {
  text-decoration: none;
  /* 无下划线 */
  color: var(--toc-hover-color);
  /* 文字颜色变为深灰色 */ }

.toc-nav a.active::before,
.toc-nav a:hover::before {
  background-color: var(--toc-hover-color);
  /* 背景颜色变为深灰色 */ }

/* upvote button style */
button.upvote-btn {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--body-text-color); }

button.upvoted {
  color: var(--upvoted-color); }

span.upvote-count {
  margin-top: -4px;
  font-size: smaller; }

button.upvote-btn.loading {
  opacity: 0.5;
  cursor: wait;
  pointer-events: none; }

@media (max-width: 800px) {
  img[src*="#minipic"] {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }
  div.toc {
    display: none; } }

/* --- codeblock: layout & TOC-safe --------------------------------------- */
.codeblock {
  margin: 1rem 0;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  background: var(--code-bg, #fafafa);
  max-width: 100%;
  box-shadow: 0 0.5px 0 rgba(0, 0, 0, 0.03) inset; }

.codeblock-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .45rem .75rem;
  font-size: .82rem;
  opacity: .7;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06); }

.codeblock-header .codeblock-copy {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: .82rem;
  opacity: .75; }

.codeblock pre {
  margin: 0;
  padding: .75rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  cursor: grab; }

.codeblock pre.dragging {
  cursor: grabbing;
  user-select: none; }

/* 行號（若啟用 inline 行號）弱化一點顏色 */
.chroma .ln,
.codeblock .ln {
  opacity: .45;
  user-select: none;
  margin-right: .5rem; }

/* 讓 pre 不會被任何浮動面板覆蓋成“看起來空白” */
.codeblock,
.codeblock pre {
  position: relative;
  z-index: 1; }

/* ------------------------------------------------------------------------ */
/* --------------------------------------------------------------------------- */
