@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  height: 100%;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: #1a1a1a;
  background: #faf8f3;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

::selection {
  background: #1a1a1a;
  color: #faf8f3;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
a:hover {
  opacity: 0.55;
}

button {
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
  padding: 0;
}

:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 3px;
  border-radius: 2px;
}

#main {
  flex: 1;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  padding: 12px 16px;
  background: #1a1a1a;
  color: #faf8f3;
  z-index: 9999;
}
.skip-link:focus {
  left: 16px;
  top: 16px;
}

hr {
  border: 0;
  height: 1px;
  background: #d8d3c7;
  margin: 48px 0;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-weight: 500;
  color: #1a1a1a;
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin: 0;
}

h1 {
  font-size: 3rem;
  font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

h2 {
  font-size: 1.875rem;
  font-variation-settings: "opsz" 72, "SOFT" 50;
  margin-top: 48px;
  margin-bottom: 16px;
  line-height: 1.2;
}

h3 {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  color: #1a1a1a;
  margin-top: 24px;
  margin-bottom: 12px;
}

.kicker,
.side h3 {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6f6b64;
  margin: 0 0 12px;
}

h4, h5, h6 {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #4a4a4a;
  margin-top: 16px;
  margin-bottom: 8px;
}

p {
  margin: 0 0 16px;
}

blockquote {
  margin: 32px 0;
  padding: 0 0 0 24px;
  border-left: 2px solid #1a1a1a;
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-style: italic;
  font-variation-settings: "opsz" 24, "SOFT" 100;
  font-size: 1.25rem;
  color: #4a4a4a;
  line-height: 1.5;
}
blockquote p {
  margin: 0;
}
blockquote p + p {
  margin-top: 12px;
}
blockquote p:last-child {
  margin-bottom: 0;
}

.lede {
  font-style: italic;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 24px 0;
  font-size: 0.8125rem;
}
table th, table td {
  text-align: left;
  padding: 12px 16px;
  border-bottom: 1px solid #ebe7dd;
}
table th {
  font-weight: 600;
  color: #1a1a1a;
  border-bottom: 1px solid #d8d3c7;
}
table tbody tr:hover {
  background: #f3efe6;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

code {
  font-family: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.875em;
  background: #f3efe6;
  border: 1px solid #ebe7dd;
  padding: 0.1em 0.4em;
  border-radius: 2px;
  color: #4a4a4a;
}

pre {
  margin: 24px 0;
  padding: 24px;
  background: #1a1a1a;
  color: #e8e6e1;
  border-radius: 4px;
  overflow-x: auto;
  font-family: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.875rem;
  line-height: 1.65;
}
pre > code {
  background: transparent;
  border: none;
  padding: 0;
  color: inherit;
  font-size: inherit;
  border-radius: 0;
}

ul, ol {
  margin: 0 0 16px;
  padding-left: 24px;
}
ul li, ol li {
  margin-bottom: 8px;
  line-height: 1.6;
}
ul li::marker, ol li::marker {
  color: #6f6b64;
}

:lang(zh) blockquote,
:lang(zh) .lede,
:lang(zh) em,
:lang(zh) i, :lang(zh-tw) blockquote,
:lang(zh-tw) .lede,
:lang(zh-tw) em,
:lang(zh-tw) i, :lang(ja) blockquote,
:lang(ja) .lede,
:lang(ja) em,
:lang(ja) i, :lang(ko) blockquote,
:lang(ko) .lede,
:lang(ko) em,
:lang(ko) i {
  font-style: normal;
}
:lang(zh) blockquote, :lang(zh-tw) blockquote, :lang(ja) blockquote, :lang(ko) blockquote {
  font-weight: 500;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
header {
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(250, 248, 243, 0.85);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
header .wrapper {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
header .wrapper .brand-wrap {
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: 1;
  letter-spacing: normal;
  margin: 0;
  white-space: nowrap;
}
header .wrapper .brand {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.125rem;
  font-weight: 500;
  font-variation-settings: "opsz" 24, "SOFT" 50;
  color: #1a1a1a;
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
}
header .wrapper .brand:hover {
  opacity: 0.6;
}
header .wrapper .menu {
  display: none;
  font-size: 1.5rem;
  line-height: 1;
  width: 32px;
  height: 32px;
  color: #1a1a1a;
}
header .wrapper nav ul {
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}
header .wrapper nav ul li {
  list-style: none;
  position: relative;
  font-size: 0.8125rem;
}
header .wrapper nav ul li > a {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-weight: 500;
  color: #4a4a4a;
  padding: 8px 0;
  display: inline-block;
  position: relative;
  transition: color 150ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
header .wrapper nav ul li > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #1a1a1a;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
header .wrapper nav ul li > a:hover {
  color: #1a1a1a;
  opacity: 1;
}
header .wrapper nav ul li > a:hover::after {
  transform: scaleX(1);
}
header .wrapper nav ul li > a.active {
  color: #1a1a1a;
}
header .wrapper nav ul li > a.active::after {
  transform: scaleX(1);
}
header .wrapper nav ul li .submenu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #ffffff;
  border: 1px solid #d8d3c7;
  border-radius: 4px;
  min-width: 160px;
  padding: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: all 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
  z-index: 1000;
  flex-direction: column;
  gap: 0;
}
header .wrapper nav ul li .submenu li {
  list-style: none;
  width: 100%;
}
header .wrapper nav ul li .submenu li a {
  display: block;
  padding: 8px 12px;
  font-size: 0.8125rem;
  color: #4a4a4a;
  border-radius: 2px;
  white-space: nowrap;
}
header .wrapper nav ul li .submenu li a:hover {
  background: #f3efe6;
  color: #1a1a1a;
  opacity: 1;
}
header .wrapper nav ul li .submenu li a:hover::after {
  display: none;
}
header .wrapper nav ul li .submenu li.current a {
  color: #1a1a1a;
  font-weight: 600;
  background: #f3efe6;
}
header .wrapper nav ul li .submenu li.current a::before {
  content: "•";
  margin-right: 8px;
  color: #6f6b64;
}
header .wrapper nav ul li .submenu li.current a::after {
  display: none;
}
header .wrapper nav ul li:hover .submenu, header .wrapper nav ul li:focus-within .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media screen and (max-width: 1200px) {
  header .wrapper {
    max-width: 100%;
  }
}
@media screen and (max-width: 770px) {
  header .wrapper {
    padding: 0 24px;
    height: 56px;
  }
  header .wrapper .brand {
    font-size: 1.125rem;
  }
  header .wrapper .menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  header .wrapper nav {
    position: fixed;
    top: 56px;
    left: 0;
    right: 0;
    background: #faf8f3;
    border-bottom: 1px solid #d8d3c7;
    padding: 16px 24px;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  header .wrapper nav.nav-show {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
  header .wrapper nav ul {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  header .wrapper nav li > a {
    display: block;
    padding: 12px 0;
    font-size: 1.125rem;
    border-bottom: 1px solid #ebe7dd;
  }
  header .wrapper nav li .submenu {
    position: static;
    box-shadow: none;
    border: none;
    background: transparent;
    padding: 0 0 0 16px;
    opacity: 1;
    visibility: visible;
    transform: none;
    margin: 0 0 8px;
    flex-direction: column;
  }
}
.post {
  max-width: 856px;
  margin: 0 auto;
  padding: 48px 32px 96px;
}

.post-header {
  margin-bottom: 48px;
  padding-bottom: 24px;
  border-bottom: 1px solid #d8d3c7;
  text-align: center;
}
.post-header h1 {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 3.75rem;
  font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin: 0 0 16px;
  color: #1a1a1a;
  max-width: 16em;
  text-wrap: balance;
  margin-left: auto;
  margin-right: auto;
}
.post-header .post-tags {
  margin-top: 16px;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}
.post-header .post-tags a {
  color: #6f6b64;
  text-decoration: underline;
  text-decoration-color: #d8d3c7;
  text-underline-offset: 3px;
}
.post-header .post-tags a:hover {
  color: #1a1a1a;
  opacity: 1;
  text-decoration-color: #1a1a1a;
}
.post-header .post-tags .sep {
  color: #d8d3c7;
  margin: 0 8px;
}
.post-header .meta {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
  color: #6f6b64;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.post-header .meta time, .post-header .meta span {
  display: inline-block;
}

.post-body {
  max-width: 640px;
  margin: 0 auto;
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.125rem;
  line-height: 1.8;
  color: #1a1a1a;
  font-variation-settings: "opsz" 24, "SOFT" 30;
}
.post-body > p:first-of-type {
  font-size: 1.25rem;
  line-height: 1.6;
  color: #1a1a1a;
  margin-bottom: 24px;
}
.post-body > p:first-of-type::first-letter {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  font-size: 4.5em;
  line-height: 0.85;
  float: left;
  padding: 0.1em 0.12em 0 0;
  color: #1a1a1a;
}
.post-body h2, .post-body h3, .post-body h4 {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-variation-settings: "opsz" 72, "SOFT" 50;
  color: #1a1a1a;
  margin-top: 48px;
  margin-bottom: 12px;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.post-body h2 {
  font-size: 1.875rem;
  font-weight: 500;
}
.post-body h3 {
  font-size: 1.5rem;
  font-weight: 500;
}
.post-body h4 {
  font-size: 1.25rem;
  font-weight: 500;
}
.post-body p {
  margin: 0 0 16px;
}
.post-body a {
  color: #1a1a1a;
  text-decoration: underline;
  text-decoration-color: #d8d3c7;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: text-decoration-color 150ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.post-body a:hover {
  text-decoration-color: #1a1a1a;
  opacity: 1;
}
.post-body img {
  margin: 32px 0;
  border-radius: 4px;
}
.post-body blockquote {
  font-size: 1.25rem;
  color: #4a4a4a;
  margin: 32px 0;
}
.post-body pre {
  font-size: 0.85rem;
  border-radius: 4px;
}
.post-body ul, .post-body ol {
  margin: 0 0 16px;
  padding-left: 24px;
}
.post-body ul li, .post-body ol li {
  margin-bottom: 8px;
}

.related {
  max-width: 640px;
  margin: 96px auto 0;
  padding-top: 32px;
  border-top: 1px solid #d8d3c7;
}
.related h2 {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.5rem;
  font-variation-settings: "opsz" 48, "SOFT" 50;
  font-weight: 500;
  margin: 0 0 24px;
  color: #1a1a1a;
}
.related ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.related ul li {
  padding: 12px 0;
  border-bottom: 1px solid #ebe7dd;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.8125rem;
  color: #4a4a4a;
  transition: padding-left 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.related ul li:last-child {
  border-bottom: none;
}
.related ul li a {
  color: #4a4a4a;
}
.related ul li a:hover {
  color: #1a1a1a;
  opacity: 1;
}
.related ul li:hover {
  padding-left: 12px;
}

.post-nav {
  max-width: 640px;
  margin: 64px auto 0;
  padding-top: 32px;
  border-top: 1px solid #d8d3c7;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.post-nav a {
  display: block;
  color: #4a4a4a;
}
.post-nav a:hover {
  color: #1a1a1a;
  opacity: 1;
}
.post-nav span {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6f6b64;
  margin-bottom: 8px;
}
.post-nav strong {
  display: block;
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  color: #1a1a1a;
}
.post-nav .prev {
  grid-column: 1;
}
.post-nav .next {
  grid-column: 2;
  text-align: right;
}

@media screen and (max-width: 770px) {
  .post {
    padding: 24px 24px 64px;
  }
  .post-header h1 {
    font-size: 2.25rem;
  }
  .post-body {
    font-size: 1rem;
  }
  .post-nav {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .post-nav .prev, .post-nav .next {
    grid-column: 1;
    text-align: left;
  }
}
.page-article {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 32px 96px;
}
.page-article > header {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #d8d3c7;
}
.page-article > header h1 {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 3rem;
  font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 0;
}
.page-article .page-body {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.125rem;
  line-height: 1.7;
  color: #1a1a1a;
  font-variation-settings: "opsz" 24, "SOFT" 30;
  max-width: 640px;
}

.archive .archive-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.archive .archive-year {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.5rem;
  font-variation-settings: "opsz" 48, "SOFT" 50;
  font-weight: 500;
  color: #4a4a4a;
  letter-spacing: 0.02em;
  margin: 48px 0 12px;
  padding-top: 24px;
  border-top: 1px solid #d8d3c7;
}
.archive .archive-year:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.archive .archive-item {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #ebe7dd;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.8125rem;
  transition: padding-left 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.archive .archive-item:last-child {
  border-bottom: none;
}
.archive .archive-item:hover {
  padding-left: 12px;
}
.archive .archive-item a {
  flex: 1;
  color: #4a4a4a;
}
.archive .archive-item a:hover {
  color: #1a1a1a;
  opacity: 1;
}
.archive .archive-item time {
  font-family: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.75rem;
  color: #6f6b64;
  letter-spacing: 0;
  white-space: nowrap;
}

@media screen and (max-width: 770px) {
  .page-article {
    padding: 24px 24px 64px;
  }
  .page-article > header h1 {
    font-size: 2.25rem;
  }
}
.highlight {
  background: #1a1a1a;
  color: #e8e6e1;
  border-radius: 4px;
  margin: 24px 0;
}
.highlight pre {
  background: #1a1a1a;
  color: #e8e6e1;
  margin: 0;
  border-radius: 4px;
}
.highlight .hll {
  background-color: rgba(255, 255, 255, 0.06);
}
.highlight .c, .highlight .cm, .highlight .c1, .highlight .cs, .highlight .cp {
  color: #8a8680;
  font-style: italic;
}
.highlight { /* Comment */ }
.highlight .err {
  color: #d4a574;
}
.highlight .k, .highlight .kc, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt {
  color: #d4a574;
}
.highlight { /* Keyword */ }
.highlight .l, .highlight .ld, .highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .mo, .highlight .il {
  color: #c9a87c;
}
.highlight { /* Literal */ }
.highlight .n, .highlight .na, .highlight .nb, .highlight .nc, .highlight .no, .highlight .nd, .highlight .ni, .highlight .ne, .highlight .nf, .highlight .nl, .highlight .nn, .highlight .nx, .highlight .py, .highlight .nt, .highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi, .highlight .bp {
  color: #e8e6e1;
}
.highlight { /* Name */ }
.highlight .o, .highlight .ow, .highlight .p, .highlight .w {
  color: #a8a29e;
}
.highlight { /* Operator, Punctuation */ }
.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .s1, .highlight .ss {
  color: #b5cea8;
}
.highlight { /* String */ }
.highlight .ge {
  font-style: italic;
}
.highlight .gs {
  font-weight: bold;
}
.highlight .gh {
  color: #e8e6e1;
  font-weight: bold;
}
.highlight .gu {
  color: #8a8680;
}
.highlight .gd {
  color: #d4a574;
}
.highlight .gi {
  color: #b5cea8;
}

.page.index {
  max-width: 1180px;
  margin: 0 auto;
  padding: 48px 32px 96px;
  display: grid;
  grid-template-columns: minmax(0, 760px) 220px;
  justify-content: center;
  gap: 48px;
  align-items: start;
}
.page.index .main {
  min-width: 0;
}
.page.index .side {
  position: sticky;
  top: 104px;
  align-self: start;
  min-width: 0;
}
.page.index .lede {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-variation-settings: "opsz" 24, "SOFT" 100;
  font-size: 1.25rem;
  color: #4a4a4a;
  line-height: 1.5;
  max-width: 36ch;
  margin: 0 0 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid #d8d3c7;
}
.page.index .post-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.page.index .post-list > li {
  padding: 32px 0;
  border-bottom: 1px solid #ebe7dd;
}
.page.index .post-list > li:first-child {
  padding-top: 0;
}
.page.index .post-list > li:last-child {
  border-bottom: none;
}
.page.index .post-list > li h2 {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-size: 1.875rem;
  font-weight: 400;
  font-variation-settings: "opsz" 72, "SOFT" 50;
  line-height: 1.2;
  margin: 0 0 8px;
  letter-spacing: -0.02em;
}
.page.index .post-list > li h2 a {
  color: #1a1a1a;
  background-image: linear-gradient(#1a1a1a, #1a1a1a);
  background-size: 0 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size 420ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.page.index .post-list > li h2 a:hover {
  background-size: 100% 1px;
  opacity: 1;
}
.page.index .post-list > li .meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
  color: #6f6b64;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}
.page.index .post-list > li .meta time, .page.index .post-list > li .meta span {
  display: inline-block;
}
.page.index .post-list > li .meta span {
  color: #6f6b64;
}
.page.index .post-list > li .excerpt {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-variation-settings: "opsz" 18, "SOFT" 30;
  font-size: 1rem;
  line-height: 1.65;
  color: #4a4a4a;
  margin: 0;
  max-width: 60ch;
}
.page.index .more {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid #d8d3c7;
}
.page.index .more a {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.8125rem;
  color: #4a4a4a;
  letter-spacing: 0.02em;
}
.page.index .more a:hover {
  color: #1a1a1a;
  opacity: 1;
}
.page.index .tag-cloud .count {
  color: #6f6b64;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
}
.page.index .pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid #d8d3c7;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.8125rem;
}
.page.index .pagination a, .page.index .pagination span {
  color: #4a4a4a;
  padding: 4px 12px;
  transition: color 150ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.page.index .pagination a:hover {
  color: #1a1a1a;
  opacity: 1;
}
.page.index .pagination .disabled {
  color: #6f6b64;
  opacity: 0.4;
  cursor: not-allowed;
}
.page.index .pagination .page-number {
  color: #6f6b64;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}
.page.index .side section {
  margin-bottom: 48px;
}
.page.index .side h3 {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6f6b64;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #d8d3c7;
}
.page.index .side ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.page.index .side ul li {
  padding: 8px 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #4a4a4a;
}
.page.index .side ul li a {
  color: #4a4a4a;
  transition: color 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.page.index .side ul li a:hover {
  color: #1a1a1a;
  opacity: 1;
}

@media screen and (max-width: 960px) {
  .page.index {
    grid-template-columns: 1fr;
  }
  .page.index .side {
    position: static;
  }
}
@media screen and (max-width: 770px) {
  .page.index {
    padding: 24px 24px 64px;
  }
  .page.index .post-list > li {
    padding: 24px 0;
  }
  .page.index .post-list > li h2 {
    font-size: 1.5rem;
  }
}
.page.index .side .side-more {
  margin: 12px 0 0;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
}
.page.index .side .side-more a {
  color: #6f6b64;
}
.page.index .side .side-more a:hover {
  color: #1a1a1a;
  opacity: 1;
}

.site-footer {
  margin-top: auto;
  padding: 48px 0;
  border-top: 1px solid #d8d3c7;
}
.site-footer .wrapper {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}
.site-footer .description {
  font-family: "Fraunces", "Source Serif Pro", "Georgia", "Songti SC", serif;
  font-style: italic;
  font-variation-settings: "opsz" 24, "SOFT" 100;
  font-size: 1.125rem;
  color: #4a4a4a;
  line-height: 1.5;
  max-width: 42ch;
  margin: 0;
}
.site-footer .links {
  display: flex;
  gap: 24px;
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.8125rem;
  margin: 0;
}
.site-footer .links a {
  color: #4a4a4a;
  border-bottom: 1px solid transparent;
  transition: color 150ms cubic-bezier(0.22, 0.61, 0.36, 1), border-color 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.site-footer .links a:hover {
  color: #1a1a1a;
  border-color: #1a1a1a;
  opacity: 1;
}
.site-footer .power {
  font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.75rem;
  color: #6f6b64;
  letter-spacing: 0.04em;
  margin: 0;
}
.site-footer .power a {
  color: #4a4a4a;
  border-bottom: 1px solid #d8d3c7;
  transition: border-color 150ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.site-footer .power a:hover {
  border-color: #1a1a1a;
  opacity: 1;
}

@media screen and (max-width: 770px) {
  .site-footer .wrapper {
    padding: 0 24px;
  }
}
html {
  scroll-behavior: smooth;
}
html::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
html::-webkit-scrollbar-thumb {
  background: #d8d3c7;
  border-radius: 4px;
  border: 2px solid #faf8f3;
}
html::-webkit-scrollbar-thumb:hover {
  background: #6f6b64;
}
html::-webkit-scrollbar-track {
  background: transparent;
}

* {
  scrollbar-width: thin;
  scrollbar-color: #d8d3c7 transparent;
}

.back-to-top {
  position: fixed;
  right: 32px;
  bottom: 32px;
  width: 40px;
  height: 40px;
  background: #ffffff;
  border: 1px solid #d8d3c7;
  border-radius: 50%;
  z-index: 99;
  visibility: hidden;
  opacity: 0;
  transform: translateY(8px);
  transition: all 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.back-to-top a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #4a4a4a;
  font-size: 0.8125rem;
}
.back-to-top:hover {
  border-color: #1a1a1a;
}
.back-to-top:hover a {
  color: #1a1a1a;
}

.back-to-top-show {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

@media screen and (max-width: 770px) {
  .back-to-top {
    right: 16px;
    bottom: 16px;
    width: 36px;
    height: 36px;
  }
}

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