* {
  box-sizing: border-box;
}

:root {
  --ink: #51464a;
  --muted: #9a888e;
  --line: rgba(115, 89, 98, 0.17);
  --paper: rgba(255, 255, 255, 0.46);
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  min-height: 100vh;
  color: var(--ink);
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 218, 229, 0.55), transparent 31%),
    radial-gradient(circle at 84% 24%, rgba(223, 219, 244, 0.47), transparent 30%),
    radial-gradient(circle at 70% 83%, rgba(245, 225, 210, 0.43), transparent 31%),
    linear-gradient(135deg, #fbf7f8 0%, #f6f1f5 48%, #f8f4f1 100%);
  background-attachment: fixed;
}

body::before,
body::after {
  content: "";
  position: fixed;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0.7;
  animation: float 9s ease-in-out infinite;
}

body::before {
  width: 220px;
  height: 220px;
  top: -70px;
  right: -55px;
  background: rgba(231, 200, 218, 0.2);
}

body::after {
  width: 160px;
  height: 160px;
  left: -45px;
  bottom: 80px;
  background: rgba(205, 201, 229, 0.2);
  animation-delay: -3s;
}

.page-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 24px;
}

main {
  flex: 1;
}

.hero {
  min-height: calc(100vh - 100px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero.hero-compact {
  min-height: 390px;
  padding-top: 40px;
}

.hero-inner {
  animation: fadeUp 0.9s ease-out both;
}

.fox-mark {
  width: 50px;
  height: 50px;
  margin: 0 auto 22px;
  position: relative;
}

.fox-mark::before,
.fox-mark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 38px;
  border-radius: 70% 30% 70% 30%;
  border: 1px solid rgba(151, 113, 126, 0.35);
  transform-origin: 50% 100%;
}

.fox-mark::before {
  transform: translate(-85%, -55%) rotate(-32deg);
  background: rgba(255,255,255,.27);
}

.fox-mark::after {
  transform: translate(-15%, -55%) rotate(32deg) scaleX(-1);
  background: rgba(255,255,255,.17);
}

.hero h1 {
  margin: 0;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: clamp(44px, 7vw, 76px);
  font-weight: 400;
  letter-spacing: 0.2em;
  padding-left: 0.2em;
  color: #55474c;
}

.hairline {
  width: 38px;
  height: 1px;
  margin: 24px auto 20px;
  background: rgba(116,89,98,.32);
}

.tagline {
  margin: 0;
  font-size: 14px;
  letter-spacing: .32em;
  padding-left: .32em;
  color: #98868c;
}

.hero-logo-image {
  display:block;
  width:118px;
  height:118px;
  max-width:none;
  margin:0 auto 22px;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
  border:4px solid rgba(255,255,255,.96);
  background:rgba(255,247,250,.88);
  box-shadow:
    0 17px 42px rgba(151,101,121,.18),
    0 0 0 1px rgba(182,139,155,.12),
    0 0 52px rgba(220,166,187,.23);
  filter:none;
}
.hero-logo-static { opacity:1; }

.empty-note {
  margin-top: 13px;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 13px;
  letter-spacing: .12em;
  color: rgba(115,98,104,.58);
}

.post-list {
  width: min(780px, 100%);
  margin: 0 auto 60px;
  border-top: 1px solid var(--line);
}

.post-card {
  border-bottom: 1px solid var(--line);
}

.post-card-link {
  display: block;
  padding: 34px 6px 36px;
  color: inherit;
  text-decoration: none;
  transition: transform .22s ease, opacity .22s ease;
}

.post-card-link:hover {
  transform: translateX(5px);
}

.post-card time,
.article-header time {
  display: block;
  margin-bottom: 10px;
  color: rgba(98,79,86,.52);
  font-size: 12px;
  letter-spacing: .08em;
}

.post-card h2 {
  margin: 0 0 12px;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 25px;
  font-weight: 400;
  letter-spacing: .03em;
}

.post-card p {
  margin: 0;
  color: #817177;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 15px;
  line-height: 1.95;
}

.read-more {
  display: inline-block;
  margin-top: 16px;
  color: #9b7f89;
  font-size: 12px;
  letter-spacing: .08em;
}

.pagination {
  width: min(780px, 100%);
  margin: -20px auto 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  font-size: 13px;
  color: #99878d;
}

.pagination a,
.back-home,
.site-footer a {
  color: inherit;
  text-decoration: none;
}

.article-wrap {
  width: min(860px, 100%);
  margin: 0 auto;
  padding: 62px 0 80px;
}

.article {
  width: min(720px, 100%);
  margin: 0 auto;
}

.back-home {
  display: inline-block;
  margin-bottom: 54px;
  color: #9a858d;
  font-size: 13px;
  transition: transform .2s ease;
}

.back-home:hover {
  transform: translateX(-3px);
}

.article-header {
  margin-bottom: 46px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line);
}

.article-header h1 {
  margin: 0;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: clamp(32px, 6vw, 46px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: .04em;
}

.article-summary {
  margin: 22px 0 0;
  color: #8d7980;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 15px;
  line-height: 1.9;
}

.article-content {
  color: #54494d;
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-size: 17px;
  line-height: 2.02;
  word-break: break-word;
}

.article-content p {
  margin: 0 0 1.45em;
}

.article-content p:empty {
  min-height: 1.4em;
}

.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4 {
  margin: 2.2em 0 .9em;
  font-weight: 500;
  line-height: 1.45;
}

.article-content h2 {
  font-size: 26px;
}

.article-content h3 {
  font-size: 21px;
}

.article-content img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 30px auto;
  border-radius: 3px;
}

.article-content blockquote {
  margin: 28px 0;
  padding: 2px 0 2px 20px;
  border-left: 2px solid rgba(153,122,134,.42);
  color: #7c6a71;
}

.article-content pre {
  overflow: auto;
  padding: 18px;
  border-radius: 8px;
  background: rgba(82,67,73,.07);
  font-size: 14px;
  line-height: 1.7;
}

.article-content code {
  font-family: Consolas, Monaco, monospace;
}

.article-content a {
  color: #9b6e7d;
  text-underline-offset: 3px;
}

.article-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 28px 0;
}

.article-content th,
.article-content td {
  border: 1px solid var(--line);
  padding: 9px 12px;
}

.article-end {
  margin-top: 62px;
  text-align: center;
  color: #b19ca4;
  letter-spacing: .6em;
}

.article-empty {
  min-height: 60vh;
}

.article-empty h1 {
  font-family: "Songti SC", "STSong", "SimSun", serif;
  font-weight: 400;
}

.article-empty p {
  color: #8f7d84;
}

.site-footer {
  text-align: center;
  padding: 18px 10px 4px;
  font-size: 12px;
  color: rgba(91,76,82,.48);
}

.site-footer a:hover {
  color: rgba(91,76,82,.78);
}

.site-filing-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}

.site-filing-separator {
  opacity: .48;
}

.site-police-filing {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.site-police-filing svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}

@media (max-width: 520px) {
  .site-filing-row {
    flex-direction: column;
    gap: 5px;
  }

  .site-filing-separator {
    display: none;
  }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes float {
  0%, 100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(0,12px,0); }
}

@media (max-width: 640px) {
  .page-shell { padding: 18px; }
  .hero.hero-compact { min-height: 310px; }
  .hero h1 { font-size: 48px; }
  .hero-logo-image { width:88px; height:88px; max-width:none; margin-bottom:16px; border-width:3px; }
  .tagline { font-size: 12px; letter-spacing: .2em; padding-left: .2em; }
  .article-wrap { padding-top: 34px; }
  .back-home { margin-bottom: 40px; }
  .article-content { font-size: 16px; line-height: 1.95; }
  .post-card h2 { font-size: 23px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}


/* 文章音乐播放器 */
.article-content .music-player {
  display: block;
  margin: 30px 0;
  padding: 16px 18px;
  border: 1px solid rgba(132,101,112,.16);
  border-radius: 16px;
  background: rgba(255,250,252,.72);
  color: #574a4f;
  font-family: "PingFang SC","Microsoft YaHei",sans-serif;
  text-decoration: none;
}
.article-content .music-player-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.article-content .music-player-note {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(194,154,169,.16);
  color: #9a6f7e;
  font-family: Georgia,"Times New Roman",serif;
  font-size: 22px;
}
.article-content .music-player-info { display:block; min-width: 0; }
.article-content .music-player-title {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #574a4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.article-content .music-player-meta {
  display: block;
  margin-top: 2px;
  color: #9a858d;
  font-size: 12px;
  line-height: 1.5;
}
.article-content .music-player audio {
  display: block;
  width: 100%;
  height: 42px;
}
.article-content .music-inline-control {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:2px;
}
.article-content .music-inline-play {
  appearance:none;
  flex:0 0 auto;
  width:42px;
  min-width:42px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:0;
  border:1px solid rgba(151,105,121,.20);
  border-radius:999px;
  background:rgba(249,237,242,.92);
  color:#866472;
  cursor:pointer;
  font:12px/1 "PingFang SC","Microsoft YaHei",sans-serif;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.article-content .music-inline-play:hover {
  background:#f4e2e9;
  border-color:rgba(151,105,121,.34);
  transform:translateY(-1px);
}
.article-content .music-inline-play-icon {
  font-size:13px;
  line-height:1;
}
/* V24：详情页播放/暂停只保留图标；兼容旧文章已生成的文字节点。 */
.article-content .music-inline-play-text { display:none !important; }
.article-content .music-inline-line {
  position:relative;
  flex:1 1 auto;
  height:2px;
  border-radius:999px;
  background:rgba(154,111,126,.12);
  overflow:hidden;
}
.article-content .music-inline-line > span {
  display:block;
  width:18%;
  height:100%;
  border-radius:inherit;
  background:rgba(154,111,126,.28);
}
.article-content .music-player.is-global-playing {
  border-color:rgba(151,105,121,.30);
  background:rgba(255,247,250,.94);
}
.article-content .music-player.is-global-playing .music-inline-play {
  background:#a87989;
  border-color:#a87989;
  color:#fff;
}
.article-content .music-player.is-global-playing .music-inline-line > span {
  width:52%;
  background:rgba(154,111,126,.55);
}
.article-content .music-embed-frame {
  display: block;
  width: 100%;
  height: 86px;
  border: 0;
  overflow: hidden;
  background: transparent;
}
.article-content .music-player-open {
  display: inline-block;
  margin-top: 8px;
  color: #98717f;
  font-size: 12px;
  text-decoration: none;
}
.article-content a.music-player-link {
  display: block;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.article-content a.music-player-link:hover {
  transform: translateY(-1px);
  border-color: rgba(132,101,112,.28);
  background: rgba(255,255,255,.88);
}
.article-content a.music-player-link .music-player-head { margin-bottom: 0; }
.article-content a.music-player-link .music-player-open { margin-top: 12px; }
.article-content .music-player-invalid {
  color: #9a7b83;
  font-size: 13px;
}


/* 文章正文：后台编辑器的空行与对齐格式 */
.article-content .jiuwei-blank-line {
  min-height: 1.55em;
  margin: 0 !important;
  padding: 0;
}
.article-content .jiuwei-align-left { text-align: left; }
.article-content .jiuwei-align-center { text-align: center; }
.article-content .jiuwei-align-right { text-align: right; }
.article-content .jiuwei-align-left img,
.article-content .jiuwei-align-center img,
.article-content .jiuwei-align-right img {
  display: inline-block;
}

/* =========================================================
   2026-08 首页摘要 / 双排布局 / 九尾狐意向图 / 图片灯箱
   ========================================================= */
.fox-illustration {
  display:block;
  width:118px;
  height:auto;
  margin:0 auto 18px;
  opacity:.82;
  filter:drop-shadow(0 10px 24px rgba(116,89,98,.06));
}
.hero.hero-compact .fox-illustration { width:104px; margin-bottom:14px; }

.post-list.layout-single {
  width:min(820px,100%);
  border-top:1px solid var(--line);
}
.post-list.layout-double {
  width:min(1080px,100%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  border-top:0;
}
.post-list.layout-double .post-card {
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.34);
  overflow:hidden;
}
.post-card-inner {
  padding:34px 6px 36px;
}
.layout-double .post-card-inner { padding:28px 28px 30px; }
.post-card h2 a {
  color:inherit;
  text-decoration:none;
  transition:color .2s ease;
}
.post-card h2 a:hover { color:#8e6f7a; }
.post-summary {
  color:#817177;
  font-family:"Songti SC","STSong","SimSun",serif;
  font-size:15px;
  line-height:1.95;
  text-align:left;
  white-space:normal;
  overflow-wrap:anywhere;
}
.post-summary p,
.post-summary div { margin:0 0 .65em; text-align:left; }
.post-summary p:last-child,
.post-summary div:last-child { margin-bottom:0; }
.post-summary br { line-height:1.9; }
.post-summary img {
  display:block;
  width:auto;
  height:auto;
  max-width:min(500px,100%);
  max-height:800px;
  object-fit:contain;
  margin:18px auto;
  border-radius:5px;
}
.post-summary a { color:#977782; text-underline-offset:3px; }
.layout-double .post-summary img { max-width:100%; }
.layout-double .post-card h2 { font-size:23px; }
.layout-double .post-card { min-width:0; }
.layout-double .read-more { margin-top:18px; }

.article-summary {
  text-align:left;
  white-space:normal;
}
.article-summary p,
.article-summary div { margin:0 0 .7em; text-align:left; }
.article-summary p:last-child,
.article-summary div:last-child { margin-bottom:0; }
.article-summary img {
  display:block;
  width:auto;
  height:auto;
  max-width:min(500px,100%);
  max-height:800px;
  object-fit:contain;
  margin:18px auto;
  border-radius:5px;
}

.article-content img.lightbox-enabled {
  cursor:zoom-in;
  transition:opacity .2s ease, transform .2s ease;
}
.article-content img.lightbox-enabled:hover { opacity:.94; transform:translateY(-1px); }
body.lightbox-open { overflow:hidden; }
.image-lightbox[hidden] { display:none !important; }
.image-lightbox {
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px 74px;
  background:rgba(40,34,37,.88);
  backdrop-filter:blur(12px);
}
.lightbox-stage {
  margin:0;
  max-width:calc(100vw - 160px);
  max-height:calc(100vh - 90px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.lightbox-image {
  display:block;
  max-width:100%;
  max-height:calc(100vh - 130px);
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:5px;
  box-shadow:0 24px 70px rgba(0,0,0,.26);
  transform-origin:center center;
  will-change:transform;
  cursor:zoom-in;
}
.lightbox-caption {
  margin-top:12px;
  max-width:760px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  text-align:center;
  line-height:1.6;
}
.lightbox-close,
.lightbox-nav {
  position:absolute;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.lightbox-close {
  top:20px;
  right:24px;
  width:42px;
  height:42px;
  border-radius:50%;
  font-size:26px;
  line-height:1;
}
.lightbox-nav {
  top:50%;
  width:48px;
  height:72px;
  margin-top:-36px;
  border-radius:14px;
  font-size:42px;
  line-height:1;
}
.lightbox-prev { left:18px; }
.lightbox-next { right:18px; }
.lightbox-close:hover,
.lightbox-nav:hover { background:rgba(255,255,255,.15); }
.lightbox-counter {
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  color:rgba(255,255,255,.58);
  font-size:12px;
  letter-spacing:.08em;
}
.lightbox-zoom-hint {
  position:absolute;
  right:22px;
  bottom:20px;
  color:rgba(255,255,255,.56);
  font-size:12px;
}

@media(max-width:760px){
  .post-list.layout-double { grid-template-columns:1fr; gap:0; }
  .post-list.layout-double .post-card { border-left:0; border-right:0; border-radius:0; background:transparent; }
  .layout-double .post-card-inner { padding:30px 6px 32px; }
  .fox-illustration { width:96px; }
  .image-lightbox { padding:54px 12px 52px; }
  .lightbox-stage { max-width:100%; max-height:100%; }
  .lightbox-image { max-height:calc(100vh - 120px); }
  .lightbox-nav { width:42px; height:58px; margin-top:-29px; border-radius:12px; background:rgba(25,20,22,.42); }
  .lightbox-prev { left:8px; }
  .lightbox-next { right:8px; }
  .lightbox-close { top:10px; right:10px; }
}

/* =========================================================
   2026-08-14 阅读节奏优化 / 图片标题
   ========================================================= */
.article {
  width: min(730px, 100%);
}
.article-header {
  margin-bottom: 54px;
  padding-bottom: 38px;
}
.article-header h1 {
  color: #4f4448;
  line-height: 1.42;
}
.article-summary {
  margin-top: 26px;
  color: #8b787f;
  font-size: 16px;
  line-height: 1.88;
  letter-spacing: .032em;
}
.article-content {
  color: #594d52;
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  font-size: 18px;
  line-height: 1.90;
  letter-spacing: .044em;
  word-spacing: .045em;
}
.article-content p {
  margin: 0 0 1.46em;
}
.article-content p:empty {
  min-height: 1.75em;
}
.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4 {
  color: #4d4246;
  margin-top: 2.65em;
  margin-bottom: 1.05em;
  letter-spacing: .025em;
}
.article-content h2 { font-size: 27px; }
.article-content h3 { font-size: 22px; }
.article-content blockquote {
  margin: 36px 0;
  padding: 5px 0 5px 23px;
  line-height: 1.92;
}
.article-content > img,
.article-content p > img {
  margin-top: 42px;
  margin-bottom: 46px;
}
.article-content .jiuwei-figure {
  width: fit-content;
  max-width: 100%;
  margin: 44px auto 48px;
  padding: 0;
  text-align: center;
}
.article-content .jiuwei-figure img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.article-content .jiuwei-figure figcaption {
  margin-top: 13px;
  padding: 0 8px;
  color: #9a878e;
  font-family: "Kaiti SC", "STKaiti", "KaiTi", "Songti SC", "STSong", serif;
  font-size: 14px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: .045em;
  text-align: center;
}
.article-content .jiuwei-figure.jiuwei-align-left { margin-left: 0; margin-right: auto; }
.article-content .jiuwei-figure.jiuwei-align-center { margin-left: auto; margin-right: auto; }
.article-content .jiuwei-figure.jiuwei-align-right { margin-left: auto; margin-right: 0; }

.post-summary .jiuwei-figure,
.article-summary .jiuwei-figure {
  width: fit-content;
  max-width: min(500px, 100%);
  margin: 20px auto;
  text-align: center;
}
.post-summary .jiuwei-figure img,
.article-summary .jiuwei-figure img {
  margin: 0 auto;
  max-width: 100%;
  max-height: 800px;
}
.post-summary .jiuwei-figure figcaption,
.article-summary .jiuwei-figure figcaption {
  margin-top: 9px;
  color: #9b8990;
  font-family: "Kaiti SC", "STKaiti", "KaiTi", "Songti SC", serif;
  font-size: 12.5px;
  font-style: italic;
  line-height: 1.65;
  text-align: center;
}
.post-summary {
  color: #7d6f75;
  font-size: 15.8px;
  line-height: 1.88;
  letter-spacing: .032em;
}
.post-card h2 { color: #52464a; }

@media (max-width: 640px) {
  .article-content { font-size: 17px; line-height: 1.88; letter-spacing:.04em; }
  .article-content p { margin-bottom: 1.42em; }
  .article-content .jiuwei-figure { margin-top: 34px; margin-bottom: 38px; }
}

/* =========================================================
   深浅色主题切换
   ========================================================= */
.theme-toggle {
  position: fixed;
  top: 20px;
  right: 22px;
  z-index: 1200;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid rgba(113, 87, 97, .15);
  border-radius: 999px;
  background: rgba(255, 252, 253, .78);
  color: #75636a;
  box-shadow: 0 8px 28px rgba(91, 67, 76, .06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font: 12px/1 "PingFang SC", "Microsoft YaHei", sans-serif;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.theme-toggle:hover {
  transform: translateY(-1px);
  border-color: rgba(142, 103, 117, .28);
  background: rgba(255, 255, 255, .94);
}
.theme-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  font-size: 15px;
  line-height: 1;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e7dfe2;
  --muted: #bbaab0;
  --line: rgba(226, 205, 213, .15);
  --paper: rgba(46, 38, 42, .68);
}

html[data-theme="dark"] body {
  color: var(--ink);
  background:
    radial-gradient(circle at 18% 20%, rgba(116, 69, 88, .22), transparent 32%),
    radial-gradient(circle at 84% 24%, rgba(76, 67, 112, .20), transparent 30%),
    radial-gradient(circle at 70% 83%, rgba(117, 78, 64, .14), transparent 31%),
    linear-gradient(135deg, #211b1e 0%, #1b171a 48%, #221c1d 100%);
  background-attachment: fixed;
}
html[data-theme="dark"] body::before { background: rgba(145, 93, 115, .10); }
html[data-theme="dark"] body::after { background: rgba(104, 96, 142, .10); }

html[data-theme="dark"] .theme-toggle {
  border-color: rgba(225, 205, 213, .14);
  background: rgba(42, 35, 39, .76);
  color: #ddcfd4;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
}
html[data-theme="dark"] .theme-toggle:hover {
  border-color: rgba(226, 198, 208, .25);
  background: rgba(53, 43, 48, .92);
}

html[data-theme="dark"] .hero h1,
html[data-theme="dark"] .article-header h1,
html[data-theme="dark"] .article-content h1,
html[data-theme="dark"] .article-content h2,
html[data-theme="dark"] .article-content h3,
html[data-theme="dark"] .article-content h4,
html[data-theme="dark"] .post-card h2,
html[data-theme="dark"] .post-card h2 a,
html[data-theme="dark"] .article-empty h1 {
  color: #eee5e8;
}
html[data-theme="dark"] .tagline,
html[data-theme="dark"] .empty-note,
html[data-theme="dark"] .post-card time,
html[data-theme="dark"] .article-header time,
html[data-theme="dark"] .back-home,
html[data-theme="dark"] .pagination,
html[data-theme="dark"] .site-footer,
html[data-theme="dark"] .article-empty p {
  color: #aa979e;
}
html[data-theme="dark"] .hairline { background: rgba(222, 194, 204, .24); }
html[data-theme="dark"] .post-card p,
html[data-theme="dark"] .post-summary,
html[data-theme="dark"] .article-summary { color: #c5b5bb; }
html[data-theme="dark"] .article-content { color: #ddd3d6; }
html[data-theme="dark"] .article-content blockquote { color: #c4b2b8; border-left-color: rgba(205, 164, 179, .42); }
html[data-theme="dark"] .article-content a,
html[data-theme="dark"] .post-summary a,
html[data-theme="dark"] .read-more { color: #d0a9b8; }
html[data-theme="dark"] .post-card h2 a:hover { color: #dfb5c4; }
html[data-theme="dark"] .post-list.layout-double .post-card {
  background: rgba(46, 38, 42, .62);
  border-color: rgba(226, 205, 213, .13);
}
html[data-theme="dark"] .article-content pre {
  background: rgba(255, 255, 255, .055);
  color: #e0d4d8;
}
html[data-theme="dark"] .article-content th,
html[data-theme="dark"] .article-content td { border-color: rgba(226, 205, 213, .16); }
html[data-theme="dark"] .article-content .music-player {
  border-color: rgba(221, 194, 204, .15);
  background: rgba(48, 39, 43, .76);
  color: #dfd2d7;
}
html[data-theme="dark"] .article-content .music-player-note {
  background: rgba(190, 133, 155, .13);
  color: #d5a9ba;
}
html[data-theme="dark"] .article-content .music-inline-play {
  border-color: rgba(228,188,205,.13);
  background: rgba(75,52,62,.72);
  color: #d6b8c3;
}
html[data-theme="dark"] .article-content .music-inline-play:hover { background:#543a45; }
html[data-theme="dark"] .article-content .music-inline-line { background:rgba(224,184,201,.10); }
html[data-theme="dark"] .article-content .music-inline-line > span { background:rgba(224,184,201,.28); }
html[data-theme="dark"] .article-content .music-player.is-global-playing {
  border-color:rgba(228,188,205,.20);
  background:rgba(57,42,49,.92);
}
html[data-theme="dark"] .article-content .music-player.is-global-playing .music-inline-play {
  background:#8e6072;
  border-color:#8e6072;
  color:#fff;
}
html[data-theme="dark"] .article-content .jiuwei-figure figcaption,
html[data-theme="dark"] .post-summary .jiuwei-figure figcaption,
html[data-theme="dark"] .article-summary .jiuwei-figure figcaption { color: #aa969e; }
html[data-theme="dark"] .hero-logo-image {
  border-color:rgba(255,255,255,.88);
  background:#2a2226;
  box-shadow:
    0 18px 46px rgba(0,0,0,.34),
    0 0 0 1px rgba(230,190,205,.13),
    0 0 58px rgba(199,124,154,.18);
  filter:none;
}

@media (max-width: 640px) {
  .theme-toggle {
    top: 12px;
    right: 12px;
    min-height: 34px;
    padding: 7px 9px;
  }
  .theme-toggle-text { display: none; }
}

/* =========================================================
   2026-08-14 首页杂志式卡片：左图右文 / 标题虚线
   ========================================================= */
.post-list.layout-single {
  width:min(960px,100%);
  border-top:1px solid var(--line);
}
.post-list.layout-double {
  width:min(1120px,100%);
  gap:18px;
}
.post-card-inner {
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:30px;
  align-items:center;
  padding:30px 8px 32px;
}
.post-card.no-thumb .post-card-inner {
  grid-template-columns:260px minmax(0,1fr);
}
.post-card-body {
  min-width:0;
  align-self:center;
}
.post-thumb {
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border-radius:10px;
  background:rgba(255,255,255,.38);
  text-decoration:none;
}
.post-thumb img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease, opacity .25s ease;
}

.post-thumb-placeholder {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
  border:1px solid rgba(137,105,116,.10);
  background:
    radial-gradient(circle at 76% 23%, rgba(226,190,205,.26), transparent 34%),
    linear-gradient(145deg, rgba(255,251,252,.92), rgba(244,232,237,.76));
}
.post-thumb-placeholder::before,
.post-thumb-placeholder::after {
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:50%;
  pointer-events:none;
}
.post-thumb-placeholder::before {
  width:130px;
  height:130px;
  left:-38px;
  bottom:-52px;
  border:1px solid rgba(173,127,143,.13);
}
.post-thumb-placeholder::after {
  width:86px;
  height:86px;
  right:-24px;
  top:-31px;
  border:1px solid rgba(173,127,143,.10);
}
.post-placeholder-initial {
  position:relative;
  z-index:2;
  color:rgba(113,83,94,.70);
  font-family:"Songti SC","STSong","Noto Serif CJK SC","SimSun",serif;
  font-size:72px;
  font-weight:400;
  line-height:1;
  letter-spacing:0;
  transform:translateY(-4px);
}
.post-placeholder-hairline {
  position:absolute;
  left:50%;
  top:calc(50% + 47px);
  width:28px;
  height:1px;
  transform:translateX(-50%);
  background:rgba(132,94,108,.23);
}
.post-placeholder-fox {
  position:absolute;
  right:9px;
  bottom:8px;
  width:48px !important;
  height:48px !important;
  object-fit:contain !important;
  opacity:.16;
  filter:none;
  transform:none !important;
}
.post-card:hover .post-thumb-placeholder .post-placeholder-fox {
  opacity:.22;
}
.post-card:hover .post-thumb img {
  transform:scale(1.018);
  opacity:.97;
}
.post-card time {
  margin:0 0 9px;
  font-size:12px;
  letter-spacing:.12em;
}
.post-card h2 {
  margin:0 0 15px;
  padding:0 0 14px;
  border-bottom:1px dashed rgba(126,99,109,.26);
  font-size:26px;
  line-height:1.45;
  letter-spacing:.055em;
}
.post-summary {
  font-size:15.5px;
  line-height:2.02;
  letter-spacing:.016em;
}
.post-summary img,
.post-summary .jiuwei-figure {
  display:none !important;
}
.read-more {
  margin-top:17px;
}

/* 双排也保持左图右文，但更紧凑。 */
.post-list.layout-double .post-card {
  border-radius:16px;
}
.layout-double .post-card-inner {
  grid-template-columns:138px minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:20px;
}
.layout-double .post-card.no-thumb .post-card-inner {
  grid-template-columns:138px minmax(0,1fr);
}
.layout-double .post-thumb {
  aspect-ratio:4 / 5;
  border-radius:9px;
}
.layout-double .post-card h2 {
  margin-bottom:11px;
  padding-bottom:10px;
  font-size:21px;
  line-height:1.45;
}
.layout-double .post-card time {
  margin-bottom:7px;
}
.layout-double .post-summary {
  font-size:14.5px;
  line-height:1.9;
}
.layout-double .read-more {
  margin-top:13px;
}

html[data-theme="dark"] .post-thumb {
  background:rgba(255,255,255,.045);
}
html[data-theme="dark"] .post-thumb-placeholder {
  border-color:rgba(226,191,204,.08);
  background:
    radial-gradient(circle at 76% 23%, rgba(153,92,116,.16), transparent 34%),
    linear-gradient(145deg, rgba(50,42,46,.82), rgba(42,35,39,.94));
}
html[data-theme="dark"] .post-placeholder-initial { color:rgba(224,190,202,.68); }
html[data-theme="dark"] .post-placeholder-hairline { background:rgba(221,183,197,.20); }
html[data-theme="dark"] .post-placeholder-fox { opacity:.12; }
html[data-theme="dark"] .post-card h2 {
  border-bottom-color:rgba(221,194,204,.20);
}

@media(max-width:860px) {
  .post-card-inner {
    grid-template-columns:210px minmax(0,1fr);
    gap:22px;
  }
  .post-card.no-thumb .post-card-inner {
    grid-template-columns:210px minmax(0,1fr);
  }
  .layout-double .post-card-inner {
    grid-template-columns:120px minmax(0,1fr);
    gap:15px;
  }
  .layout-double .post-card.no-thumb .post-card-inner {
    grid-template-columns:120px minmax(0,1fr);
  }
}

@media(max-width:640px) {
  .post-list.layout-single,
  .post-list.layout-double {
    width:100%;
  }
  .post-list.layout-double {
    display:block;
  }
  .post-list.layout-double .post-card,
  .post-list.layout-single .post-card {
    border-left:0;
    border-right:0;
    border-radius:0;
    background:transparent;
  }
  .post-card-inner,
  .layout-double .post-card-inner {
    grid-template-columns:116px minmax(0,1fr);
    gap:15px;
    align-items:start;
    padding:24px 2px 26px;
  }
  .post-card.no-thumb .post-card-inner,
  .layout-double .post-card.no-thumb .post-card-inner {
    grid-template-columns:116px minmax(0,1fr);
  }
  .post-placeholder-initial { font-size:44px; }
  .post-placeholder-hairline { top:calc(50% + 30px); width:20px; }
  .post-placeholder-fox { width:31px !important; height:31px !important; right:5px; bottom:5px; }
  .post-thumb,
  .layout-double .post-thumb {
    aspect-ratio:1 / 1;
    border-radius:8px;
  }
  .post-card h2,
  .layout-double .post-card h2 {
    margin-bottom:10px;
    padding-bottom:9px;
    font-size:20px;
  }
  .post-card time { font-size:11px; }
  .post-summary,
  .layout-double .post-summary {
    font-size:14px;
    line-height:1.8;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .read-more,
  .layout-double .read-more {
    margin-top:10px;
  }
}


/* =========================================================
   V32 首页头图：固定列宽，图片按原始比例完整显示
   ========================================================= */
.post-card.has-thumb .post-thumb {
  aspect-ratio:auto;
  height:auto;
}
.post-card.has-thumb .post-thumb img {
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
}
.layout-double .post-card.has-thumb .post-thumb {
  aspect-ratio:auto;
}

@media(max-width:640px) {
  .post-card.has-thumb .post-thumb,
  .layout-double .post-card.has-thumb .post-thumb {
    aspect-ratio:auto;
  }
  .post-card.has-thumb .post-thumb img,
  .layout-double .post-card.has-thumb .post-thumb img {
    height:auto;
    object-fit:contain;
  }
}

/* =========================================================
   V25 首页文章逐条进入动画
   - 进入可视区时从右侧轻柔淡入
   - 同一屏同时出现的文章由 JS 自动错峰 delay
   ========================================================= */
html.js .home-page .post-card.home-reveal {
  opacity:0;
  transform:translate3d(34px,0,0);
  will-change:opacity, transform;
}
html.js .home-page .post-card.home-reveal.is-visible {
  animation:homePostFadeInRight .72s cubic-bezier(.22,.72,.26,1) var(--home-reveal-delay, 0ms) both;
}

@keyframes homePostFadeInRight {
  from {
    opacity:0;
    transform:translate3d(34px,0,0);
  }
  to {
    opacity:1;
    transform:translate3d(0,0,0);
  }
}

@media(max-width:640px) {
  html.js .home-page .post-card.home-reveal {
    transform:translate3d(18px,0,0);
  }
  @keyframes homePostFadeInRight {
    from {
      opacity:0;
      transform:translate3d(18px,0,0);
    }
    to {
      opacity:1;
      transform:translate3d(0,0,0);
    }
  }
}

@media(prefers-reduced-motion: reduce) {
  html.js .home-page .post-card.home-reveal,
  html.js .home-page .post-card.home-reveal.is-visible {
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
    will-change:auto;
  }
}

/* =========================================================
   V31 详情页右侧快捷导航：主页 / 到底部 / 回到顶部
   ========================================================= */
.page-jump-controls {
  position: fixed;
  right: 22px;
  bottom: 26px;
  z-index: 1180;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}
.page-jump-controls[hidden],
.page-jump-button[hidden] {
  display: none !important;
}
.page-jump-button,
.page-jump-controls .back-to-top {
  position: static;
  right: auto;
  bottom: auto;
  width: 42px;
  height: 42px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(113, 87, 97, .15);
  border-radius: 50%;
  background: rgba(255, 252, 253, .82);
  color: #806a73;
  box-shadow: 0 10px 30px rgba(91, 67, 76, .08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease;
}
.page-jump-button svg {
  width: 20px;
  height: 20px;
  display: block;
  pointer-events: none;
}
.page-jump-button:hover,
.page-jump-controls .back-to-top:hover {
  transform: translateY(-2px);
  border-color: rgba(142, 103, 117, .28);
  background: rgba(255, 255, 255, .96);
  color: #674f59;
}
.page-jump-home {
  color: #8d727d;
}
html[data-theme="dark"] .page-jump-button,
html[data-theme="dark"] .page-jump-controls .back-to-top {
  border-color: rgba(225, 205, 213, .14);
  background: rgba(42, 35, 39, .80);
  color: #dccbd1;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
}
html[data-theme="dark"] .page-jump-button:hover,
html[data-theme="dark"] .page-jump-controls .back-to-top:hover {
  border-color: rgba(226, 198, 208, .25);
  background: rgba(54, 44, 49, .95);
  color: #f0dfe5;
}
@media (max-width:640px) {
  .page-jump-controls {
    right: 12px;
    bottom: 18px;
    gap: 8px;
  }
  .page-jump-button,
  .page-jump-controls .back-to-top {
    width: 38px;
    height: 38px;
  }
  .page-jump-button svg {
    width: 18px;
    height: 18px;
  }
}

/* =========================================================
   V12 全站持续音乐播放器 / PJAX
   ========================================================= */
.global-music {
  position: fixed;
  left: 22px;
  bottom: 22px;
  z-index: 8400;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
}
.global-music[hidden] { display: none !important; }
/* V17：mini 与展开播放器严格互斥。hidden 需要覆盖 author display:flex。 */
.global-music-enable[hidden] { display: none !important; }
.global-music-enable {
  display: flex;
  align-items: center;
  gap: 9px;
  max-width: min(290px, calc(100vw - 100px));
  min-height: 44px;
  padding: 7px 14px 7px 8px;
  border: 1px solid rgba(136, 102, 114, .17);
  border-radius: 999px;
  background: rgba(255, 251, 252, .92);
  color: #745f67;
  box-shadow: 0 10px 30px rgba(90, 64, 74, .09);
  backdrop-filter: blur(14px);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
}
.global-music-enable {
  transition: opacity .18s ease, transform .22s cubic-bezier(.2,.8,.2,1), background .18s ease, border-color .18s ease;
}
.global-music-enable:hover { background: #fff; border-color: rgba(151,105,121,.3); }
.global-music-enable-text {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.global-music-disc,
.global-music-collapse {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(180, 132, 150, .18);
  border-radius: 50%;
  background: linear-gradient(145deg, #f5dce5, #ead4df);
  color: #996d7d;
  font-family: Georgia, serif;
  font-size: 16px;
}
.global-music-enable.is-playing .global-music-disc {
  animation: jiuweiDiscSpin 5s linear infinite;
}
.global-music-panel {
  width: min(370px, calc(100vw - 44px));
  padding: 12px;
  border: 1px solid rgba(136, 102, 114, .16);
  border-radius: 18px;
  background: rgba(255, 251, 252, .95);
  box-shadow: 0 18px 45px rgba(75, 53, 62, .13);
  backdrop-filter: blur(16px);
  transform-origin: left bottom;
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  transition: opacity .2s ease, transform .24s cubic-bezier(.2,.8,.2,1);
}
.global-music-panel.is-entering,
.global-music-panel.is-leaving {
  opacity: 0;
  transform: translate3d(0,8px,0) scale(.975);
  pointer-events: none;
}
.global-music-panel[hidden] { display: none !important; }
.global-music-panel-head {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
}
.global-music-collapse {
  appearance: none;
  padding: 0;
  cursor: pointer;
}
.global-music-now { min-width: 0; }
.global-music-now strong,
.global-music-now span { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.global-music-now strong { color: #655159; font-size: 13px; font-weight: 500; }
.global-music-now span { margin-top: 2px; color: #a08b92; font-size: 11px; }
.global-music-off {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #aa929a;
  cursor: pointer;
  font-size: 19px;
}
.global-music-off:hover { background: #f7e9ee; color: #7e626d; }
.global-music-host { min-height: 0; }
.global-music-frame {
  display: block;
  width: 100%;
  height: 86px;
  border: 0;
  background: transparent;
}
.global-music-audio { display: block; width: 100%; height: 38px; }
.global-music-hint {
  margin-top: 5px;
  color: #ad989f;
  font-size: 10.5px;
  line-height: 1.5;
  text-align: center;
}
.music-background-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding: 6px 10px;
  border: 1px solid rgba(151, 105, 121, .18);
  border-radius: 999px;
  background: rgba(250, 240, 244, .8);
  color: #8d6b78;
  cursor: pointer;
  font: 12px/1.2 "PingFang SC", "Microsoft YaHei", sans-serif;
}
.music-background-button:hover { background: #f4e2e9; border-color: rgba(151,105,121,.3); }
html.pjax-loading main { opacity: .55; transition: opacity .16s ease; }

html[data-theme="dark"] .global-music-enable,
html[data-theme="dark"] .global-music-panel {
  border-color: rgba(235, 199, 214, .13);
  background: rgba(37, 30, 34, .94);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .26);
}
html[data-theme="dark"] .global-music-enable { color: #d9c6cd; }
html[data-theme="dark"] .global-music-disc,
html[data-theme="dark"] .global-music-collapse {
  border-color: rgba(228, 188, 205, .12);
  background: linear-gradient(145deg, #553b46, #3c2d34);
  color: #e2bcca;
}
html[data-theme="dark"] .global-music-now strong { color: #e3d7db; }
html[data-theme="dark"] .global-music-now span,
html[data-theme="dark"] .global-music-hint { color: #a9959d; }
html[data-theme="dark"] .global-music-off:hover { background: #48353d; color: #e4c7d1; }
html[data-theme="dark"] .music-background-button {
  border-color: rgba(228, 188, 205, .12);
  background: rgba(76, 54, 64, .65);
  color: #d5b7c2;
}
html[data-theme="dark"] .music-background-button:hover { background: #543a45; }

@keyframes jiuweiDiscSpin { to { transform: rotate(360deg); } }

@media (max-width: 640px) {
  .global-music { left: 12px; bottom: 12px; }
  .global-music-panel { width: min(340px, calc(100vw - 24px)); padding: 10px; border-radius: 15px; }
  .global-music-enable { max-width: calc(100vw - 82px); min-height: 40px; }
  .global-music-frame { height: 86px; }
}

@media (prefers-reduced-motion: reduce) {
  .global-music-enable.is-playing .global-music-disc { animation: none; }
  html.pjax-loading main { transition: none; }
}


/* =========================================================
   V14 全站播放器：收起不断歌 / 迷你播放暂停
   ========================================================= */
.global-music-enable {
  padding: 5px 6px 5px 7px;
  gap: 4px;
}
.global-music-mini-main {
  min-width: 0;
  max-width: 240px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.global-music-mini-main .global-music-enable-text {
  max-width: 180px;
  font-size: 12px;
}
.global-music-mini-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 31px;
  height: 31px;
  padding: 0;
  border: 1px solid rgba(180,132,150,.18);
  border-radius: 50%;
  background: rgba(250,239,243,.92);
  color: #8e6876;
  cursor: pointer;
  font: 12px/1 "PingFang SC","Microsoft YaHei",sans-serif;
}
.global-music-mini-toggle:hover {
  background: #f3dfe7;
  border-color: rgba(151,105,121,.28);
}
.global-music-mini-toggle.is-paused { padding-left: 2px; }
.global-music-off {
  font-size: 19px;
}
html[data-theme="dark"] .global-music-mini-toggle {
  border-color: rgba(228,188,205,.12);
  background: rgba(76,54,64,.72);
  color: #dfbeca;
}
html[data-theme="dark"] .global-music-mini-toggle:hover { background: #563b47; }
@media (max-width:640px) {
  .global-music-mini-main { max-width: 200px; }
  .global-music-mini-main .global-music-enable-text { max-width: 130px; }
}

/* =========================================================
   V15 音乐：真实歌名提示 + 展开式 mini 播放列表
   ========================================================= */
.article-content .music-player.is-music-meta-loading .music-player-title {
  color: #8f7b83;
}
.article-content .music-player-title {
  font-size: 15px;
  letter-spacing: .015em;
}
.global-music-playlist {
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px dashed rgba(151, 105, 121, .15);
}
.global-music-playlist[hidden] { display: none !important; }
.global-music-playlist-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 3px 6px;
  color: #927c84;
  font-size: 10.5px;
  line-height: 1.4;
  letter-spacing: .04em;
}
.global-music-playlist-head span:last-child {
  color: #b09ba2;
  letter-spacing: 0;
}
.global-music-playlist-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 164px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(154,111,126,.22) transparent;
}
.global-music-playlist-list::-webkit-scrollbar { width: 5px; }
.global-music-playlist-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(154,111,126,.20);
}
.global-music-playlist-item {
  appearance: none;
  width: 100%;
  min-height: 42px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 7px;
  padding: 5px 7px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #766269;
  text-align: left;
  cursor: pointer;
  font: inherit;
  transition: background .15s ease, color .15s ease;
}
.global-music-playlist-item:hover {
  background: rgba(246, 231, 237, .58);
}
.global-music-playlist-item.is-current {
  background: rgba(244, 224, 232, .78);
  color: #7f5968;
}
.global-music-playlist-index {
  color: #b2939f;
  font-size: 10px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.global-music-playlist-item.is-current .global-music-playlist-index {
  color: #a16f81;
  font-size: 14px;
}
.global-music-playlist-text {
  min-width: 0;
  display: block;
}
.global-music-playlist-text strong,
.global-music-playlist-text span {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.global-music-playlist-text strong {
  color: inherit;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.45;
}
.global-music-playlist-text span {
  margin-top: 1px;
  color: #aa939b;
  font-size: 9.5px;
  line-height: 1.35;
}
.global-music-playlist-state {
  color: #b397a1;
  font-size: 9.5px;
  text-align: right;
  white-space: nowrap;
}
.global-music-playlist-item.is-current .global-music-playlist-state {
  color: #9a687a;
}
html[data-theme="dark"] .global-music-playlist {
  border-top-color: rgba(228, 188, 205, .10);
}
html[data-theme="dark"] .global-music-playlist-head { color: #b7a2aa; }
html[data-theme="dark"] .global-music-playlist-head span:last-child { color: #88757c; }
html[data-theme="dark"] .global-music-playlist-item { color: #d0bec5; }
html[data-theme="dark"] .global-music-playlist-item:hover { background: rgba(86, 59, 71, .42); }
html[data-theme="dark"] .global-music-playlist-item.is-current {
  background: rgba(101, 68, 82, .55);
  color: #ead7de;
}
html[data-theme="dark"] .global-music-playlist-text span,
html[data-theme="dark"] .global-music-playlist-index,
html[data-theme="dark"] .global-music-playlist-state { color: #a48b95; }
html[data-theme="dark"] .global-music-playlist-item.is-current .global-music-playlist-index,
html[data-theme="dark"] .global-music-playlist-item.is-current .global-music-playlist-state { color: #deb7c6; }

@media (max-width: 640px) {
  .global-music-playlist-list { max-height: 142px; }
  .global-music-playlist-item {
    grid-template-columns: 24px minmax(0, 1fr) 38px;
    min-height: 40px;
    padding: 4px 5px;
  }
}

/* =========================================================
   V16 全站音乐：真暂停续播 / 一体化控制面板 / 正文点歌默认 mini
   ========================================================= */
.global-music-panel.global-music-panel-v16 {
  width: min(380px, calc(100vw - 44px));
  padding: 0;
  overflow: hidden;
}
.global-music-panel-v16 .global-music-panel-head {
  margin: 0;
  padding: 13px 14px 10px;
  border-bottom: 0;
}
.global-music-panel-v16 .global-music-collapse {
  width: 34px;
  height: 34px;
}
.global-music-panel-v16 .global-music-now strong {
  font-size: 13.5px;
  line-height: 1.35;
}
.global-music-panel-v16 .global-music-now span {
  margin-top: 3px;
  font-size: 10.5px;
}
.global-music-transport {
  padding: 2px 14px 13px;
}
.global-music-transport-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}
.global-music-skip,
.global-music-main-toggle {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(165, 120, 136, .17);
  border-radius: 50%;
  background: rgba(251, 242, 246, .72);
  color: #8d6876;
  cursor: pointer;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.global-music-skip {
  width: 30px;
  height: 30px;
  font-size: 23px;
  line-height: 1;
  padding-bottom: 3px;
}
.global-music-main-toggle {
  width: 40px;
  height: 40px;
  background: linear-gradient(145deg, #f1dbe4, #e8cfd9);
  color: #8b6271;
  font-size: 12px;
  box-shadow: 0 5px 16px rgba(111, 77, 90, .09);
}
.global-music-main-toggle.is-paused { padding-left: 2px; }
.global-music-skip:hover,
.global-music-main-toggle:hover {
  transform: translateY(-1px);
  border-color: rgba(151, 105, 121, .30);
  background: #f4e3ea;
}
.global-music-progress-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.global-music-time {
  color: #ad979f;
  font: 9.5px/1.2 "PingFang SC", "Microsoft YaHei", sans-serif;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.global-music-progress {
  --music-progress: 0%;
  appearance: none;
  width: 100%;
  height: 14px;
  margin: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
}
.global-music-progress::-webkit-slider-runnable-track {
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(to right, #b68496 0 var(--music-progress), rgba(168, 132, 145, .17) var(--music-progress) 100%);
}
.global-music-progress::-webkit-slider-thumb {
  appearance: none;
  width: 10px;
  height: 10px;
  margin-top: -3.5px;
  border: 2px solid #fff9fb;
  border-radius: 50%;
  background: #a87889;
  box-shadow: 0 1px 5px rgba(95, 65, 76, .20);
}
.global-music-progress::-moz-range-track {
  height: 3px;
  border-radius: 999px;
  background: rgba(168, 132, 145, .17);
}
.global-music-progress::-moz-range-progress {
  height: 3px;
  border-radius: 999px;
  background: #b68496;
}
.global-music-progress::-moz-range-thumb {
  width: 8px;
  height: 8px;
  border: 2px solid #fff9fb;
  border-radius: 50%;
  background: #a87889;
}
.global-music-progress:disabled { cursor: default; opacity: .55; }
/* 真正的音源隐藏在面板内部，避免再出现第二个“网易云播放器块”。 */
.global-music-panel-v16 .global-music-host {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.global-music-engine-audio,
.global-music-fallback-frame {
  width: 1px;
  height: 1px;
  border: 0;
}
.global-music-panel-v16 .global-music-playlist {
  margin: 0;
  padding: 9px 12px 8px;
  border-top: 1px dashed rgba(151, 105, 121, .14);
  background: rgba(251, 245, 247, .34);
}
.global-music-panel-v16 .global-music-playlist-head {
  margin: 0 4px 6px;
}
.global-music-panel-v16 .global-music-playlist-list {
  max-height: 154px;
}
.global-music-panel-v16 .global-music-hint {
  margin: 0;
  padding: 6px 12px 10px;
  background: rgba(251, 245, 247, .34);
}
.article-content .music-player.is-global-paused {
  border-color: rgba(151, 105, 121, .22);
}
.article-content .music-player.is-global-paused .music-inline-play {
  background: rgba(249, 237, 242, .96);
  color: #866472;
}
html[data-theme="dark"] .global-music-skip,
html[data-theme="dark"] .global-music-main-toggle {
  border-color: rgba(228, 188, 205, .12);
  background: rgba(77, 54, 64, .75);
  color: #dfbeca;
}
html[data-theme="dark"] .global-music-main-toggle {
  background: linear-gradient(145deg, #5c3f4b, #46323b);
}
html[data-theme="dark"] .global-music-skip:hover,
html[data-theme="dark"] .global-music-main-toggle:hover { background: #5c404b; }
html[data-theme="dark"] .global-music-time { color: #9f8992; }
html[data-theme="dark"] .global-music-progress::-webkit-slider-runnable-track {
  background: linear-gradient(to right, #c291a3 0 var(--music-progress), rgba(211, 176, 190, .14) var(--music-progress) 100%);
}
html[data-theme="dark"] .global-music-progress::-webkit-slider-thumb {
  border-color: #30242a;
  background: #d0a0b1;
}
html[data-theme="dark"] .global-music-panel-v16 .global-music-playlist,
html[data-theme="dark"] .global-music-panel-v16 .global-music-hint {
  background: rgba(28, 22, 25, .25);
}
@media (max-width: 640px) {
  .global-music-panel.global-music-panel-v16 { width: min(350px, calc(100vw - 24px)); }
  .global-music-panel-v16 .global-music-panel-head { padding: 11px 11px 8px; }
  .global-music-transport { padding: 1px 11px 11px; }
  .global-music-panel-v16 .global-music-playlist { padding-left: 9px; padding-right: 9px; }
}

/* =========================================================
   V21 详情页音乐：真实可拖拽进度 + 与全局播放器共享时间轴
   ========================================================= */
.article-content .music-inline-control {
  align-items: center;
}
.article-content .music-inline-progress-wrap {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.article-content .music-inline-progress {
  --inline-music-progress: 0%;
  appearance: none;
  -webkit-appearance: none;
  flex: 1 1 auto;
  min-width: 70px;
  height: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  cursor: pointer;
}
.article-content .music-inline-progress::-webkit-slider-runnable-track {
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(to right, #ae8090 0 var(--inline-music-progress), rgba(154,111,126,.14) var(--inline-music-progress) 100%);
}
.article-content .music-inline-progress::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 13px;
  height: 13px;
  margin-top: -5px;
  border: 2px solid #fff9fb;
  border-radius: 50%;
  background: #a87989;
  box-shadow: 0 1px 5px rgba(101,72,83,.22);
}
.article-content .music-inline-progress::-moz-range-track {
  height: 3px;
  border: 0;
  border-radius: 999px;
  background: rgba(154,111,126,.14);
}
.article-content .music-inline-progress::-moz-range-progress {
  height: 3px;
  border-radius: 999px;
  background: #ae8090;
}
.article-content .music-inline-progress::-moz-range-thumb {
  width: 10px;
  height: 10px;
  border: 2px solid #fff9fb;
  border-radius: 50%;
  background: #a87989;
  box-shadow: 0 1px 5px rgba(101,72,83,.22);
}
.article-content .music-inline-progress:disabled {
  cursor: default;
  opacity: .48;
}
.article-content .music-inline-time {
  flex: 0 0 auto;
  min-width: 78px;
  color: #a08b92;
  font: 11px/1.2 "PingFang SC","Microsoft YaHei",sans-serif;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
/* 旧文章的装饰进度条由 JS 自动升级；若缓存 HTML 短暂出现，直接隐藏。 */
.article-content .music-inline-line { display: none !important; }
html[data-theme="dark"] .article-content .music-inline-progress::-webkit-slider-runnable-track {
  background: linear-gradient(to right, #c291a3 0 var(--inline-music-progress), rgba(211,176,190,.14) var(--inline-music-progress) 100%);
}
html[data-theme="dark"] .article-content .music-inline-progress::-webkit-slider-thumb {
  border-color: #30242a;
  background: #d0a0b1;
}
html[data-theme="dark"] .article-content .music-inline-progress::-moz-range-progress { background: #c291a3; }
html[data-theme="dark"] .article-content .music-inline-progress::-moz-range-thumb {
  border-color: #30242a;
  background: #d0a0b1;
}
html[data-theme="dark"] .article-content .music-inline-time { color: #a9959d; }
@media (max-width: 640px) {
  .article-content .music-inline-control { gap: 8px; }
  .article-content .music-inline-progress-wrap { gap: 7px; }
  .article-content .music-inline-time { min-width: 68px; font-size: 10px; }
}



/* =========================================================
   V26 详情页轻动效统一
   - 首屏标题错峰进入
   - 正文图片 / 标题 / 引用 / 音乐 / 分隔线按可视区淡入
   - 灯箱与 PJAX 页面切换增加柔和过渡
   ========================================================= */

/* 文章首屏：比首页卡片更克制，只做轻微上浮和淡入。 */
html.js .article-wrap .back-home {
  animation:articleIntroSoft .46s cubic-bezier(.22,.72,.26,1) .03s both;
}
html.js .article-wrap .article-header > time {
  animation:articleIntroSoft .48s cubic-bezier(.22,.72,.26,1) .09s both;
}
html.js .article-wrap .article-header > h1 {
  animation:articleIntroSoft .58s cubic-bezier(.22,.72,.26,1) .15s both;
}
html.js .article-wrap .article-header > .article-summary {
  animation:articleIntroSoft .62s cubic-bezier(.22,.72,.26,1) .23s both;
}
@keyframes articleIntroSoft {
  from { opacity:0; transform:translate3d(0,10px,0); }
  to   { opacity:1; transform:translate3d(0,0,0); }
}

/* JS 初始化后才给正文元素添加 article-reveal，避免影响非文章页面。 */
html.js .article-reveal {
  opacity:0;
  will-change:opacity, transform, filter;
  transition-property:opacity, transform, filter;
  transition-duration:.66s;
  transition-timing-function:cubic-bezier(.22,.72,.26,1);
  transition-delay:var(--article-reveal-delay, 0ms);
}
html.js .article-reveal.is-article-revealed {
  opacity:1;
  transform:none;
  filter:none;
  will-change:auto;
}

/* 图片是正文里最明显的视觉节点，动画稍完整一点。 */
html.js .article-reveal--image {
  transform:translate3d(0,20px,0) scale(.988);
  filter:blur(2px);
  transition-duration:.82s;
}
/* 标题只轻轻上浮，避免阅读时抢戏。 */
html.js .article-reveal--heading {
  transform:translate3d(0,11px,0);
  transition-duration:.58s;
}
/* 引用从左边微移，呼应原有左边线。 */
html.js .article-reveal--quote {
  transform:translate3d(-12px,0,0);
  transition-duration:.62s;
}
/* 音乐卡片只做轻微上浮。 */
html.js .article-reveal--music {
  transform:translate3d(0,13px,0);
  transition-duration:.62s;
}
/* 分隔线用缩放显现，不做位移。 */
html.js .article-reveal--divider {
  transform:scaleX(.78);
  transform-origin:center center;
  transition-duration:.56s;
}
html.js .article-reveal--end {
  transform:translate3d(0,8px,0);
  transition-duration:.52s;
}

/* 图片本身加载完成时再从轻微柔化过渡到清晰，慢网速下也不突兀。 */
html.js .article-content img.article-media-loadfx {
  opacity:.72;
  filter:blur(2.5px);
  transition:opacity .42s ease, filter .48s ease, transform .2s ease;
}
html.js .article-content img.article-media-loadfx.is-media-loaded {
  opacity:1;
  filter:none;
}
html.js .article-content img.article-media-loadfx.lightbox-enabled:hover {
  opacity:.94;
}

/* 灯箱：不再突然出现/消失。 */
.image-lightbox {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease, visibility 0s linear .24s;
}
.image-lightbox.is-open {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
}
.image-lightbox .lightbox-stage {
  opacity:0;
  transform:translate3d(0,10px,0) scale(.988);
  transition:opacity .26s ease, transform .30s cubic-bezier(.22,.72,.26,1);
}
.image-lightbox.is-open .lightbox-stage {
  opacity:1;
  transform:none;
}
.lightbox-image {
  transition:opacity .18s ease, transform .18s ease;
}
.lightbox-image.is-changing { opacity:.14; }

/* PJAX：只对新插入的 main 做一次很短的进入过渡。 */
main.pjax-enter {
  opacity:0;
  transform:translate3d(0,7px,0);
}
main.pjax-enter.is-ready {
  opacity:1;
  transform:none;
  transition:opacity .30s ease, transform .34s cubic-bezier(.22,.72,.26,1);
}

@media(max-width:640px) {
  html.js .article-reveal--image { transform:translate3d(0,14px,0) scale(.992); }
  html.js .article-reveal--quote { transform:translate3d(-8px,0,0); }
  html.js .article-wrap .article-header > h1 { animation-duration:.52s; }
}

@media(prefers-reduced-motion: reduce) {
  html.js .article-wrap .back-home,
  html.js .article-wrap .article-header > time,
  html.js .article-wrap .article-header > h1,
  html.js .article-wrap .article-header > .article-summary {
    animation:none !important;
  }
  html.js .article-reveal,
  html.js .article-reveal.is-article-revealed,
  html.js .article-content img.article-media-loadfx,
  html.js .article-content img.article-media-loadfx.is-media-loaded,
  main.pjax-enter,
  main.pjax-enter.is-ready,
  .image-lightbox,
  .image-lightbox .lightbox-stage,
  .lightbox-image {
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
    animation:none !important;
    visibility:visible;
  }
}


/* =========================================================
   V27 前台快捷工具：后台入口 + 主题切换
   ========================================================= */
.front-toolbar {
  position: fixed;
  top: 20px;
  right: 22px;
  z-index: 1200;
  display: flex;
  align-items: center;
  gap: 8px;
}
.front-toolbar .theme-toggle {
  position: static;
  top: auto;
  right: auto;
}
.admin-entry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid rgba(113, 87, 97, .15);
  border-radius: 999px;
  background: rgba(255, 252, 253, .78);
  color: #75636a;
  box-shadow: 0 8px 28px rgba(91, 67, 76, .06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font: 12px/1 "PingFang SC", "Microsoft YaHei", sans-serif;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.admin-entry:hover {
  transform: translateY(-1px);
  border-color: rgba(142, 103, 117, .28);
  background: rgba(255, 255, 255, .94);
}
.admin-entry-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  line-height: 1;
}
html[data-theme="dark"] .admin-entry {
  border-color: rgba(225, 205, 213, .14);
  background: rgba(42, 35, 39, .76);
  color: #ddcfd4;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
}
html[data-theme="dark"] .admin-entry:hover {
  border-color: rgba(226, 198, 208, .25);
  background: rgba(53, 43, 48, .92);
}

/* 用户确认的正文段间距：后续版本保持 .2em */
.article-content p {
  margin: 0 0 .2em;
}

@media (max-width: 640px) {
  .front-toolbar {
    top: 12px;
    right: 12px;
    gap: 7px;
  }
  .front-toolbar .theme-toggle,
  .admin-entry {
    min-height: 34px;
    padding: 7px 9px;
  }
  .admin-entry-text {
    display: none;
  }
  .article-content p {
    margin: 0 0 .2em;
  }
}

/* =========================================================
   V33 手机版首页头图可靠加载
   V32 取消固定比例后，未加载图片不能让缩略图容器先塌成 0 高度。
   图片加载完成后仍完全遵循原始宽高比。
   ========================================================= */
.post-card.has-thumb .post-thumb {
  min-height:86px;
  background:
    linear-gradient(105deg, rgba(190,153,166,.055) 20%, rgba(255,255,255,.16) 38%, rgba(190,153,166,.055) 58%)
    rgba(255,255,255,.08);
  background-size:220% 100%;
}
.post-card.has-thumb .post-thumb img {
  position:relative;
  z-index:1;
}
.post-card.has-thumb .post-thumb.is-thumb-loaded {
  min-height:0;
  background:transparent;
}
html[data-theme="dark"] .post-card.has-thumb .post-thumb {
  background:
    linear-gradient(105deg, rgba(226,190,204,.025) 20%, rgba(255,255,255,.045) 38%, rgba(226,190,204,.025) 58%)
    rgba(255,255,255,.018);
  background-size:220% 100%;
}
html[data-theme="dark"] .post-card.has-thumb .post-thumb.is-thumb-loaded {
  background:transparent;
}
@media(max-width:640px) {
  .post-card.has-thumb .post-thumb,
  .layout-double .post-card.has-thumb .post-thumb {
    min-height:72px;
  }
  .post-card.has-thumb .post-thumb.is-thumb-loaded,
  .layout-double .post-card.has-thumb .post-thumb.is-thumb-loaded {
    min-height:0;
  }
}


/* =========================================================
   V36 分享卡片：前台分享按钮 / 分享预览 / 微信引导
   ========================================================= */
.front-share-button {
  min-height:36px;
  padding:7px 11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(113,87,97,.15);
  border-radius:999px;
  background:rgba(255,252,253,.78);
  color:#75636a;
  box-shadow:0 8px 28px rgba(91,67,76,.06);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  font:12px/1 "PingFang SC","Microsoft YaHei",sans-serif;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.front-share-button:hover {
  transform:translateY(-1px);
  border-color:rgba(142,103,117,.28);
  background:rgba(255,255,255,.94);
}
.front-share-button svg { width:16px;height:16px;display:block; }
html[data-theme="dark"] .front-share-button {
  border-color:rgba(225,205,213,.14);
  background:rgba(42,35,39,.76);
  color:#ddcfd4;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
html[data-theme="dark"] .front-share-button:hover {
  border-color:rgba(226,198,208,.25);
  background:rgba(53,43,48,.92);
}


.share-modal[hidden], .share-image-viewer[hidden], .share-toast[hidden] { display:none !important; }
.share-modal {
  position:fixed;
  inset:0;
  z-index:9800;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
}
.share-modal-backdrop {
  position:absolute;
  inset:0;
  border:0;
  background:rgba(38,29,33,.34);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  cursor:default;
  animation:shareBackdropIn .2s ease both;
}
.share-dialog {
  position:relative;
  width:min(560px,100%);
  max-height:min(820px,calc(100vh - 36px));
  overflow:auto;
  padding:26px;
  border:1px solid rgba(137,101,115,.16);
  border-radius:30px;
  background:rgba(255,251,252,.97);
  color:#5c4c52;
  box-shadow:0 28px 90px rgba(69,46,55,.20);
  animation:shareDialogIn .34s cubic-bezier(.2,.8,.2,1) both;
}
.share-dialog-head { display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px; }
.share-dialog-kicker { display:block;margin-bottom:4px;color:#b18e9b;font-size:10px;letter-spacing:.24em; }
.share-dialog-head h2 { margin:0;font:600 25px/1.3 "Songti SC","STSong",serif;letter-spacing:.05em;color:#54464b; }
.share-dialog-close {
  width:38px;height:38px;flex:0 0 38px;border:0;border-radius:50%;background:rgba(184,145,159,.10);color:#8e737d;
  font-size:25px;line-height:1;cursor:pointer;transition:transform .2s ease,background .2s ease;
}
.share-dialog-close:hover { transform:rotate(6deg) scale(1.04);background:rgba(184,145,159,.17); }
.share-scope-switch { display:flex;gap:4px;padding:4px;margin:0 0 15px;border-radius:14px;background:rgba(181,147,159,.09); }
.share-scope-switch[hidden] { display:none !important; }
.share-scope-switch button { flex:1;border:0;border-radius:11px;padding:9px 12px;background:transparent;color:#9a7f89;cursor:pointer;font-size:13px; }
.share-scope-switch button.is-active { background:rgba(255,255,255,.92);color:#705a63;box-shadow:0 5px 18px rgba(89,66,74,.07); }
.share-scope-switch button.is-disabled { opacity:.48;cursor:not-allowed; }
.share-card-preview-wrap { padding:4px 0 0; }
.share-card-preview.is-render {
  position:relative;
  min-height:340px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  border:1px solid rgba(152,114,128,.14);
  border-radius:24px;
  background:radial-gradient(circle at 8% 15%,rgba(235,194,209,.24),transparent 35%),linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,238,242,.95));
  box-shadow:inset 0 1px rgba(255,255,255,.85),0 18px 44px rgba(103,73,84,.09);
}
.share-card-output {
  display:block;
  width:min(100%, 360px);
  aspect-ratio:9 / 14;
  object-fit:contain;
  border-radius:26px;
  background:#f7eef2;
  box-shadow:0 18px 50px rgba(80,56,67,.16);
}
.share-card-loading[hidden],
.share-card-output[hidden] { display:none !important; }
.share-card-loading {
  position:absolute;
  inset:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:20px;
  color:#9a7c87;
  font-size:13px;
  letter-spacing:.03em;
  background:rgba(255,255,255,.66);
}
.share-actions { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px; }
.share-action {
  min-height:62px;padding:10px 14px;display:flex;align-items:center;gap:11px;border:1px solid rgba(143,107,120,.14);border-radius:17px;
  background:rgba(255,255,255,.68);color:#6b565e;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.share-action:hover { transform:translateY(-1px);border-color:rgba(149,105,122,.27);background:rgba(255,255,255,.94); }
.share-action-primary { background:rgba(176,127,145,.11); }
.share-action > span:first-child { width:35px;height:35px;flex:0 0 35px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(183,139,155,.12);color:#9d7181;font-weight:700; }
.share-action span:last-child { display:flex;flex-direction:column;gap:3px;min-width:0; }
.share-action strong { font-size:14px;font-weight:600; }
.share-action small { color:#ad929b;font-size:10px; }
.share-dialog-note { margin:13px 2px 0;color:#b0969f;font-size:11px;line-height:1.7; }
.share-toast { position:fixed;left:50%;bottom:34px;z-index:10050;transform:translateX(-50%);padding:10px 16px;border-radius:999px;background:rgba(53,43,47,.9);color:#fff;font:12px/1.3 "PingFang SC","Microsoft YaHei",sans-serif;box-shadow:0 12px 36px rgba(0,0,0,.2); }
.share-action.is-waiting { opacity:.68; pointer-events:none; }
html.share-image-viewer-open { overflow:hidden; }
.share-image-viewer {
  position:fixed;
  inset:0;
  z-index:10080;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
}
.share-image-viewer-backdrop {
  position:absolute;
  inset:0;
  border:0;
  background:rgba(20,14,17,.82);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.share-image-viewer-panel {
  position:relative;
  width:min(620px,100%);
  max-height:calc(100vh - 28px);
  overflow:auto;
  padding:18px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:26px;
  background:rgba(37,29,33,.98);
  color:#eadde2;
  box-shadow:0 26px 90px rgba(0,0,0,.38);
  animation:shareDialogIn .25s cubic-bezier(.2,.8,.2,1) both;
}
.share-image-viewer-head { display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px; }
.share-image-viewer-head div { display:flex;flex-direction:column;gap:4px; }
.share-image-viewer-head span { color:#a98d97;font-size:9px;letter-spacing:.22em; }
.share-image-viewer-head strong { font:600 21px/1.35 "Songti SC","STSong",serif;letter-spacing:.04em; }
.share-image-viewer-head > button { width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.07);color:#d8c6cd;font-size:24px;cursor:pointer; }
.share-image-viewer-stage {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
  border-radius:20px;
  background:rgba(0,0,0,.18);
}
.share-image-viewer-stage img {
  display:block;
  width:min(100%,420px);
  height:auto;
  max-height:calc(100vh - 230px);
  object-fit:contain;
  border-radius:18px;
  background:#fff;
  -webkit-touch-callout:default;
  -webkit-user-select:auto;
  user-select:auto;
  touch-action:pan-y;
}
.share-image-viewer-panel > p { margin:13px 4px 0;color:#bda7af;font-size:12px;line-height:1.75;text-align:center; }
.share-image-viewer-actions { display:flex;justify-content:center;gap:10px;margin-top:13px; }
.share-image-viewer-actions button { min-width:108px;padding:9px 15px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.07);color:#e5d4da;cursor:pointer; }
.share-image-viewer-actions button:hover { background:rgba(255,255,255,.11); }

html[data-theme="dark"] .share-dialog { border-color:rgba(226,198,208,.15);background:rgba(37,30,34,.97);color:#dccbd1;box-shadow:0 28px 90px rgba(0,0,0,.42); }
html[data-theme="dark"] .share-dialog-head h2 { color:#eadce1; }
html[data-theme="dark"] .share-dialog-kicker,html[data-theme="dark"] .share-dialog-note { color:#a98d97; }
html[data-theme="dark"] .share-dialog-close { background:rgba(225,194,205,.08);color:#cfb4bd; }
html[data-theme="dark"] .share-scope-switch { background:rgba(230,202,212,.07); }
html[data-theme="dark"] .share-scope-switch button { color:#aa929b; }
html[data-theme="dark"] .share-scope-switch button.is-active { background:rgba(101,76,85,.45);color:#ead9df;box-shadow:none; }
html[data-theme="dark"] .share-card-preview.is-render {
  border-color:rgba(225,197,207,.12);
  background:radial-gradient(circle at 8% 15%,rgba(168,110,132,.15),transparent 36%),linear-gradient(135deg,rgba(55,43,49,.98),rgba(42,34,38,.96));
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 18px 44px rgba(0,0,0,.22);
}
html[data-theme="dark"] .share-card-output { background:#2f2429; box-shadow:0 18px 50px rgba(0,0,0,.3); }
html[data-theme="dark"] .share-card-loading { background:rgba(43,34,38,.7); color:#bda7af; }
html[data-theme="dark"] .share-action { border-color:rgba(226,198,208,.12);background:rgba(76,57,65,.32);color:#decbd2; }
html[data-theme="dark"] .share-action:hover { border-color:rgba(230,199,210,.23);background:rgba(90,66,75,.46); }
html[data-theme="dark"] .share-action-primary { background:rgba(158,105,125,.14); }
html[data-theme="dark"] .share-action small { color:#a78e98; }

@keyframes shareBackdropIn { from{opacity:0} to{opacity:1} }
@keyframes shareDialogIn { from{opacity:0;transform:translateY(12px) scale(.985)} to{opacity:1;transform:none} }

@media(max-width:640px) {
  .front-share-button { min-height:34px;padding:7px 9px; }
  .front-share-text { display:none; }
  .share-modal { padding:12px;align-items:flex-end; }
  .share-dialog { width:100%;max-height:calc(100vh - 18px);padding:20px;border-radius:25px; }
  .share-card-preview.is-render { min-height:280px;padding:14px; }
  .share-card-output { width:min(100%, 310px); border-radius:20px; }
  .share-actions { grid-template-columns:1fr 1fr; }
  .share-action { min-height:58px;padding:9px 10px; }
  .share-image-viewer { padding:0;align-items:flex-end; }
  .share-image-viewer-panel { width:100%;max-height:100dvh;padding:14px 14px 18px;border-radius:24px 24px 0 0; }
  .share-image-viewer-stage { padding:7px; }
  .share-image-viewer-stage img { width:min(100%,390px);max-height:calc(100dvh - 190px);border-radius:15px; }
  .share-image-viewer-head strong { font-size:19px; }
}

@media(prefers-reduced-motion:reduce) {
  .share-modal-backdrop,.share-dialog { animation:none !important; }
}

/* =========================================================
   V39 文章上一篇/下一篇 + 评论区
   ========================================================= */
.post-neighbors {
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr);
  gap:14px;
  margin:54px 0 0;
  padding-top:28px;
  border-top:1px solid rgba(117,87,98,.13);
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
}
.post-neighbor {
  min-height:104px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:9px;
  padding:18px 20px;
  border:1px solid rgba(139,103,116,.14);
  border-radius:20px;
  background:rgba(255,251,252,.58);
  color:#66545b;
  text-decoration:none;
  box-shadow:0 13px 34px rgba(92,64,75,.045);
  transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;
}
.post-neighbor:hover {
  transform:translateY(-2px);
  border-color:rgba(167,119,137,.27);
  background:rgba(255,255,255,.88);
  box-shadow:0 17px 38px rgba(92,64,75,.075);
}
.post-neighbor-next { text-align:right;align-items:flex-end; }
.post-neighbor-home {
  align-items:center;
  text-align:center;
  padding-left:14px;
  padding-right:14px;
  background:rgba(177,128,146,.075);
}
.post-neighbor-home strong { font-size:14px;white-space:nowrap; }
.post-neighbor-home:hover { background:rgba(177,128,146,.13); }
.post-neighbor-label { color:#ad8e99;font-size:11px;letter-spacing:.06em; }
.post-neighbor strong { max-width:100%;font:600 17px/1.55 "Songti SC","STSong",serif;letter-spacing:.035em;word-break:break-word; }
.post-neighbor-empty { visibility:hidden; }

.comments-section {
  margin-top:58px;
  padding-top:34px;
  border-top:1px solid rgba(117,87,98,.13);
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
}
.comments-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:22px;
}
.comments-kicker { display:block;margin-bottom:7px;color:#b2909c;font-size:10px;letter-spacing:.18em; }
.comments-head h2 { margin:0;color:#594950;font:600 25px/1.35 "Songti SC","STSong",serif;letter-spacing:.055em; }
.comments-head h2 small { margin-left:5px;color:#b49aa3;font:400 12px/1 "PingFang SC",sans-serif; }
.comments-head p { max-width:360px;margin:0;color:#ac939c;font-size:11px;line-height:1.7;text-align:right; }

.comment-flash {
  margin:0 0 15px;
  padding:11px 14px;
  border:1px solid rgba(166,116,135,.15);
  border-radius:13px;
  background:rgba(184,133,152,.07);
  color:#8f6977;
  font-size:12px;
  line-height:1.6;
}
.comment-flash.is-success { border-color:rgba(113,154,130,.16);background:rgba(116,157,131,.07);color:#658472; }
.comment-flash.is-error { border-color:rgba(174,99,107,.17);background:rgba(180,104,112,.07);color:#9b6068; }
.comment-form {
  position:relative;
  padding:22px;
  border:1px solid rgba(139,103,116,.14);
  border-radius:23px;
  background:rgba(255,251,252,.55);
  box-shadow:0 15px 44px rgba(90,63,73,.045);
}
.comment-form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.comment-field { display:block;min-width:0; }
.comment-field > span,
.comment-captcha-field > span:first-child { display:block;margin:0 0 8px;color:#79656d;font-size:12px;font-weight:600; }
.comment-field em { margin-left:5px;color:#b79ca5;font-size:10px;font-style:normal;font-weight:400; }
.comment-field input,
.comment-field textarea,
.comment-captcha-row input {
  width:100%;box-sizing:border-box;border:1px solid rgba(136,103,115,.17);border-radius:14px;
  background:rgba(255,255,255,.78);color:#5d4b52;outline:none;
  font:13px/1.6 "PingFang SC","Microsoft YaHei",sans-serif;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.comment-field input { height:44px;padding:0 13px; }
.comment-field textarea { display:block;min-height:126px;padding:12px 13px;resize:vertical; }
.comment-field input:focus,.comment-field textarea:focus,.comment-captcha-row input:focus {
  border-color:rgba(165,113,133,.46);background:#fff;box-shadow:0 0 0 3px rgba(171,121,139,.075);
}
.comment-field-content { position:relative;margin-top:15px; }
.comment-count { display:block;margin-top:6px;color:#b29ba3;font-size:10px;text-align:right; }
.comment-form-bottom { display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:15px; }
.comment-captcha-field { min-width:0; }
.comment-captcha-row { display:flex;align-items:center;gap:8px; }
.comment-captcha-row input { width:82px;height:44px;padding:0 12px;text-transform:uppercase;letter-spacing:.16em;text-align:center; }
.comment-captcha-row img { width:142px;height:46px;display:block;border-radius:12px;border:1px solid rgba(139,103,116,.13);background:#f8eff3; }
.comment-captcha-refresh { padding:7px 2px;border:0;background:transparent;color:#a17d8b;font-size:11px;cursor:pointer;white-space:nowrap; }
.comment-captcha-refresh:hover { color:#845f6d;text-decoration:underline;text-underline-offset:3px; }
.comment-submit {
  min-width:116px;height:44px;padding:0 18px;border:0;border-radius:999px;background:#a77989;color:#fff;
  font:600 12px/1 "PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer;box-shadow:0 9px 22px rgba(141,94,112,.14);
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
}
.comment-submit:hover { transform:translateY(-1px);background:#986a7a; }
.comment-submit:disabled { opacity:.58;cursor:wait;transform:none; }
.comment-form-note { margin:12px 0 0;color:#b09aa2;font-size:10px;line-height:1.7; }
.comment-honeypot { position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important; }

.comment-list { margin-top:26px; }
.comment-item { display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:21px 0;border-bottom:1px dashed rgba(128,95,107,.13); }
.comment-item:last-child { border-bottom:0; }
.comment-avatar { width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#f5e8ed,#ead8df);color:#987281;box-shadow:inset 0 0 0 1px rgba(159,117,132,.08);font:600 16px/1 "Songti SC","STSong",serif; }
.comment-main { min-width:0; }
.comment-meta { display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:7px; }
.comment-meta strong { color:#66535a;font-size:13px;font-weight:600; }
.comment-meta time { color:#b19aa2;font-size:10px; }
.comment-content { color:#725f66;font:13px/1.82 "PingFang SC","Microsoft YaHei",sans-serif;word-break:break-word;white-space:normal; }
.owner-reply { display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;margin-top:14px;padding:13px 14px;border-left:2px solid rgba(166,116,135,.24);border-radius:0 13px 13px 0;background:rgba(177,128,146,.055); }
.owner-reply-mark { width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#aa7d8d;color:#fff;font:600 12px/1 "Songti SC","STSong",serif; }
.owner-reply header { display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;margin-bottom:5px; }
.owner-reply header strong { color:#896876;font-size:11px; }
.owner-reply header time { color:#b9a2aa;font-size:9px; }
.owner-reply p { margin:0!important;color:#7c6670;font:12px/1.78 "PingFang SC","Microsoft YaHei",sans-serif;word-break:break-word; }
.comment-empty { margin:23px 0 0;color:#ae969f;font-size:12px;text-align:center; }

html[data-theme="dark"] .post-neighbors,
html[data-theme="dark"] .comments-section { border-color:rgba(226,198,208,.095); }
html[data-theme="dark"] .post-neighbor { border-color:rgba(226,198,208,.10);background:rgba(69,54,61,.24);color:#dfcfd5;box-shadow:0 13px 34px rgba(0,0,0,.10); }
html[data-theme="dark"] .post-neighbor:hover { border-color:rgba(225,188,202,.20);background:rgba(82,62,70,.36); }
html[data-theme="dark"] .post-neighbor-home { background:rgba(176,121,142,.085); }
html[data-theme="dark"] .post-neighbor-home:hover { background:rgba(176,121,142,.15); }
html[data-theme="dark"] .post-neighbor-label { color:#a98c97; }
html[data-theme="dark"] .comments-head h2 { color:#e5d7dc; }
html[data-theme="dark"] .comments-head p,html[data-theme="dark"] .comments-kicker { color:#a78d97; }
html[data-theme="dark"] .comment-form { border-color:rgba(225,198,208,.10);background:rgba(58,45,51,.28);box-shadow:0 16px 45px rgba(0,0,0,.10); }
html[data-theme="dark"] .comment-field > span,html[data-theme="dark"] .comment-captcha-field > span:first-child { color:#c7b3ba; }
html[data-theme="dark"] .comment-field em,html[data-theme="dark"] .comment-count,html[data-theme="dark"] .comment-form-note { color:#9e858e; }
html[data-theme="dark"] .comment-field input,html[data-theme="dark"] .comment-field textarea,html[data-theme="dark"] .comment-captcha-row input { border-color:rgba(224,196,206,.11);background:rgba(35,29,32,.48);color:#e2d4d9; }
html[data-theme="dark"] .comment-field input:focus,html[data-theme="dark"] .comment-field textarea:focus,html[data-theme="dark"] .comment-captcha-row input:focus { border-color:rgba(204,158,176,.30);background:rgba(40,32,36,.68);box-shadow:0 0 0 3px rgba(171,121,139,.06); }
html[data-theme="dark"] .comment-captcha-row img { border-color:rgba(225,198,208,.10);opacity:.88; }
html[data-theme="dark"] .comment-avatar { background:linear-gradient(145deg,#49373f,#3b3035);color:#d7bcc6; }
html[data-theme="dark"] .comment-item { border-color:rgba(226,198,208,.085); }
html[data-theme="dark"] .comment-meta strong { color:#dbcbd1; }
html[data-theme="dark"] .comment-meta time,html[data-theme="dark"] .comment-empty { color:#987f88; }
html[data-theme="dark"] .comment-content { color:#bfaeb4; }
html[data-theme="dark"] .owner-reply { border-color:rgba(211,164,181,.20);background:rgba(176,121,142,.065); }
html[data-theme="dark"] .owner-reply header strong { color:#c7a8b4; }
html[data-theme="dark"] .owner-reply p { color:#bca9b1; }

@media(max-width:640px) {
  .post-neighbors { grid-template-columns:1fr;gap:10px;margin-top:42px;padding-top:22px; }
  .post-neighbor { min-height:86px;padding:15px 17px; }
  .post-neighbor-empty { display:none; }
  .post-neighbor-next { text-align:left;align-items:flex-start; }
  .post-neighbor-home { align-items:center;text-align:center;min-height:68px; }
  .post-neighbor-home strong { font-size:13px; }
  .comments-section { margin-top:44px;padding-top:26px; }
  .comments-head { align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:17px; }
  .comments-head p { text-align:left; }
  .comment-form { padding:16px;border-radius:19px; }
  .comment-form-grid { grid-template-columns:1fr;gap:12px; }
  .comment-form-bottom { align-items:stretch;flex-direction:column;gap:14px; }
  .comment-captcha-row { display:grid;grid-template-columns:76px 142px auto;gap:7px; }
  .comment-captcha-row input { width:76px; }
  .comment-submit { width:100%; }
  .comment-item { grid-template-columns:36px minmax(0,1fr);gap:11px;padding:18px 0; }
  .comment-avatar { width:36px;height:36px;font-size:14px; }
}

/* =========================================================
   V41 前台博主评论管理
   ========================================================= */
.comment-owner-tools {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.comment-owner-action {
  appearance:none;
  border:1px solid rgba(153,112,128,.18);
  border-radius:999px;
  background:rgba(169,122,140,.065);
  color:#8f6a78;
  padding:6px 11px;
  font:500 10px/1.2 "PingFang SC","Microsoft YaHei",sans-serif;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease;
}
.comment-owner-action:hover {
  transform:translateY(-1px);
  border-color:rgba(153,112,128,.30);
  background:rgba(169,122,140,.11);
}
.comment-owner-action.is-danger { color:#a46b77; }
.comment-owner-action.is-muted { color:#a8959c;background:transparent; }
.comment-owner-action:disabled { opacity:.5;cursor:wait;transform:none; }
.owner-reply-form {
  margin-top:12px;
  padding:13px;
  border:1px solid rgba(151,111,126,.14);
  border-radius:14px;
  background:rgba(252,247,249,.72);
}
.owner-reply-form[hidden] { display:none!important; }
.owner-reply-form-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
  color:#9a7a86;
  font-size:10px;
}
.owner-reply-form-head strong { color:#7f616c;font-weight:600; }
.owner-reply-form-head button {
  border:0;
  background:transparent;
  color:#ab8d98;
  font-size:10px;
  cursor:pointer;
}
.owner-reply-form textarea {
  width:100%;
  box-sizing:border-box;
  min-height:86px;
  padding:11px 12px;
  border:1px solid rgba(153,112,128,.17);
  border-radius:12px;
  outline:0;
  resize:vertical;
  background:#fff;
  color:#67535b;
  font:12px/1.75 "PingFang SC","Microsoft YaHei",sans-serif;
}
.owner-reply-form textarea:focus {
  border-color:rgba(160,112,130,.35);
  box-shadow:0 0 0 3px rgba(164,116,134,.07);
}
.owner-reply-form-actions { display:flex;justify-content:flex-end;margin-top:9px; }
.owner-reply-form-actions button {
  min-width:92px;
  border:0;
  border-radius:999px;
  background:#a77b8b;
  color:#fff;
  padding:8px 14px;
  font-size:11px;
  cursor:pointer;
}
.owner-reply-form-actions button:disabled { opacity:.55;cursor:wait; }

html[data-theme="dark"] .comment-owner-action {
  border-color:rgba(225,194,206,.13);
  background:rgba(185,130,151,.075);
  color:#c9aab6;
}
html[data-theme="dark"] .comment-owner-action.is-muted { color:#9f8991;background:transparent; }
html[data-theme="dark"] .owner-reply-form {
  border-color:rgba(224,196,206,.10);
  background:rgba(55,43,49,.30);
}
html[data-theme="dark"] .owner-reply-form-head { color:#9e858e; }
html[data-theme="dark"] .owner-reply-form-head strong { color:#cbb3bc; }
html[data-theme="dark"] .owner-reply-form textarea {
  border-color:rgba(224,196,206,.11);
  background:rgba(34,28,31,.55);
  color:#dfd0d5;
}

@media(max-width:640px) {
  .comment-owner-tools { gap:7px;margin-top:10px; }
  .comment-owner-action { padding:6px 9px;font-size:9px; }
  .owner-reply-form { padding:11px; }
  .owner-reply-form-actions button { width:100%; }
}

/* =========================================================
   V43 登录后快捷编辑本文
   ========================================================= */
.article-top-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:54px;
}
.article-top-actions .back-home { margin:0; }
.article-edit-link {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:7px 12px;
  border:1px solid rgba(151,111,126,.15);
  border-radius:999px;
  background:rgba(255,255,255,.42);
  color:#967582;
  text-decoration:none;
  font:500 11px/1.1 "PingFang SC","Microsoft YaHei",sans-serif;
  backdrop-filter:blur(10px);
  transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease;
}
.article-edit-link:hover {
  transform:translateY(-1px);
  border-color:rgba(151,111,126,.27);
  background:rgba(255,255,255,.68);
  color:#795965;
}
html[data-theme="dark"] .article-edit-link {
  border-color:rgba(224,196,206,.10);
  background:rgba(71,54,62,.28);
  color:#c1a5b0;
}
html[data-theme="dark"] .article-edit-link:hover {
  border-color:rgba(224,196,206,.20);
  background:rgba(82,62,71,.42);
  color:#dbc7cf;
}
@media(max-width:640px) {
  .article-top-actions { margin-bottom:40px; }
  .article-edit-link { min-height:32px;padding:6px 10px;font-size:10px; }
}

/* V44：后台草稿预览提示 */
.article-preview-badge {
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border:1px solid rgba(196,156,171,.2);
  border-radius:999px;
  background:rgba(241,224,231,.46);
  color:#9b7482;
  font-size:12px;
  letter-spacing:.04em;
}
.draft-preview-note {
  margin:36px 0 0;
  padding:14px 16px;
  border:1px dashed rgba(197,160,174,.24);
  border-radius:14px;
  color:#9d8991;
  font-size:13px;
  text-align:center;
  background:rgba(248,239,243,.25);
}
html[data-theme="dark"] .article-preview-badge,
html[data-theme="dark"] .draft-preview-note {
  border-color:rgba(220,186,199,.16);
  background:rgba(105,77,89,.18);
  color:#c9aab5;
}

/* V48：全站音乐库来自全部已发布文章；歌手后附来源文章标题。 */
.global-music-playlist-text span { letter-spacing: .01em; }


/* =========================================================
   V51 体验封板：阅读进度 / 搜索 / 归档 / 音乐模式 / 评论人格 / 导航
   ========================================================= */
.reading-progress{position:fixed;z-index:1400;left:0;right:0;top:0;height:2px;pointer-events:none;background:transparent}.reading-progress[hidden]{display:none!important}.reading-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,rgba(211,154,178,.68),rgba(231,190,205,.92));box-shadow:0 0 10px rgba(213,151,175,.25);will-change:transform}html[data-theme="dark"] .reading-progress span{background:linear-gradient(90deg,rgba(180,112,139,.72),rgba(227,174,194,.9))}
.front-tool-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 11px;border:1px solid rgba(151,111,126,.13);border-radius:999px;background:rgba(255,255,255,.62);color:#90717d;text-decoration:none;font:500 11px/1 "PingFang SC","Microsoft YaHei",sans-serif;backdrop-filter:blur(12px);box-shadow:0 8px 25px rgba(91,62,73,.045);cursor:pointer;transition:.18s ease}.front-tool-button svg{width:16px;height:16px}.front-tool-button:hover{transform:translateY(-1px);border-color:rgba(151,111,126,.27);background:rgba(255,255,255,.88);color:#755764}html[data-theme="dark"] .front-tool-button{border-color:rgba(225,205,213,.12);background:rgba(42,35,39,.72);color:#cdb9c1;box-shadow:0 10px 30px rgba(0,0,0,.17)}html[data-theme="dark"] .front-tool-button:hover{background:rgba(56,45,51,.92);color:#eadce1}
@media(max-width:720px){.front-tool-button{width:34px;min-height:34px;padding:7px}.front-tool-button span{display:none}.front-tool-button svg{width:15px;height:15px}}

.front-search-modal[hidden]{display:none!important}.front-search-modal{position:fixed;z-index:1800;inset:0;display:grid;place-items:start center;padding:12vh 18px 24px}.front-search-backdrop{position:absolute;inset:0;border:0;background:rgba(36,29,32,.4);backdrop-filter:blur(14px);cursor:default}.front-search-dialog{position:relative;width:min(720px,100%);max-height:min(72vh,720px);overflow:auto;padding:24px;border:1px solid rgba(162,124,138,.14);border-radius:22px;background:rgba(252,248,249,.96);box-shadow:0 30px 100px rgba(69,45,54,.18)}.front-search-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.front-search-head span{display:block;color:#b594a0;font-size:9px;letter-spacing:.22em}.front-search-head h2{margin:4px 0 0;color:#66535a;font:500 20px/1.45 "Songti SC","STSong",serif;letter-spacing:.06em}.front-search-head>button{width:32px;height:32px;border:0;border-radius:50%;background:rgba(148,108,123,.07);color:#957680;font-size:19px;cursor:pointer}.front-search-form{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;padding:8px 9px 8px 14px;border:1px solid rgba(154,116,130,.17);border-radius:15px;background:#fff}.front-search-form svg{width:18px;color:#b28f9b}.front-search-form input{min-width:0;border:0;outline:0;background:transparent;color:#5c4a51;font-size:14px;padding:8px 0}.front-search-form button{border:0;border-radius:10px;background:#a77989;color:#fff;padding:9px 15px;cursor:pointer}.front-search-status{padding:16px 4px 8px;color:#a18b93;font-size:12px}.front-search-results{display:grid;gap:5px}.front-search-result{position:relative;display:grid;gap:5px;padding:14px 42px 14px 12px;border-radius:13px;color:inherit;text-decoration:none;transition:.18s ease}.front-search-result:hover{background:rgba(196,155,170,.09);transform:translateX(2px)}.front-search-result time{color:#ad939c;font-size:10px;letter-spacing:.08em}.front-search-result strong{color:#654f58;font:500 15px/1.45 "Songti SC","STSong",serif}.front-search-result p{margin:0;color:#8f7c83;font-size:12px;line-height:1.65}.front-search-result>span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#b594a0}html.front-search-open{overflow:hidden}html[data-theme="dark"] .front-search-backdrop{background:rgba(10,8,9,.54)}html[data-theme="dark"] .front-search-dialog{border-color:rgba(221,190,201,.11);background:rgba(34,28,31,.97);box-shadow:0 30px 100px rgba(0,0,0,.38)}html[data-theme="dark"] .front-search-head h2,html[data-theme="dark"] .front-search-result strong{color:#e0d0d6}html[data-theme="dark"] .front-search-form{border-color:rgba(222,194,204,.11);background:rgba(51,41,46,.85)}html[data-theme="dark"] .front-search-form input{color:#e5d9dd}html[data-theme="dark"] .front-search-result:hover{background:rgba(178,122,145,.11)}html[data-theme="dark"] .front-search-result p,html[data-theme="dark"] .front-search-status{color:#a9949c}

.archive-page,.search-page{width:min(880px,calc(100% - 36px));margin:0 auto;padding:120px 0 100px}.archive-hero{text-align:center;margin:0 auto 58px}.archive-kicker{color:#b697a2;font-size:9px;letter-spacing:.26em}.archive-hero h1{margin:8px 0 10px;color:#5d4d53;font:500 31px/1.4 "Songti SC","STSong",serif;letter-spacing:.08em}.archive-hero p{margin:0;color:#a08c93;font-size:13px;letter-spacing:.03em}.archive-years{display:grid;gap:50px}.archive-year{display:grid;grid-template-columns:100px 1fr;gap:28px}.archive-year-heading{padding-top:5px}.archive-year-heading strong{display:block;color:#816774;font:500 27px/1 Georgia,serif}.archive-year-heading span{display:block;margin-top:7px;color:#b19da4;font-size:10px}.archive-year-list{border-top:1px solid rgba(145,111,123,.12)}.archive-entry{display:grid;grid-template-columns:94px 1fr 24px;align-items:center;gap:16px;padding:16px 4px;border-bottom:1px dashed rgba(145,111,123,.13);color:inherit;text-decoration:none;transition:.18s ease}.archive-entry:hover{padding-left:10px;background:linear-gradient(90deg,rgba(190,145,163,.055),transparent)}.archive-entry time{color:#aa929b;font-size:10px;letter-spacing:.08em}.archive-entry span{color:#65545a;font:500 15px/1.45 "Songti SC","STSong",serif}.archive-entry i{color:#b89aa5;font-style:normal}.archive-empty{text-align:center;color:#a48f97}.search-page-form{display:flex;gap:8px;width:min(620px,100%);margin:0 auto 22px}.search-page-form input{flex:1;min-width:0;padding:12px 14px;border:1px solid rgba(151,111,126,.16);border-radius:12px;background:rgba(255,255,255,.68);color:#604f55;outline:0}.search-page-form button{border:0;border-radius:12px;padding:0 20px;background:#a77989;color:#fff}.search-page-count{width:min(620px,100%);margin:0 auto 16px;color:#9c868e;font-size:11px}.search-page-results{display:grid;gap:10px;width:min(620px,100%);margin:0 auto}.search-result-card{display:block;padding:18px;border:1px solid rgba(151,111,126,.1);border-radius:15px;background:rgba(255,255,255,.3);color:inherit;text-decoration:none;transition:.18s ease}.search-result-card:hover{transform:translateY(-2px);border-color:rgba(151,111,126,.2);background:rgba(255,255,255,.55)}.search-result-card time{display:block;color:#a9929a;font-size:10px}.search-result-card strong{display:block;margin-top:5px;color:#654f57;font:500 16px/1.5 "Songti SC","STSong",serif}.search-result-card p{margin:7px 0;color:#8d7b82;font-size:12px;line-height:1.7}.search-result-card span{color:#a88190;font-size:11px}html[data-theme="dark"] .archive-hero h1,html[data-theme="dark"] .archive-entry span,html[data-theme="dark"] .search-result-card strong{color:#ddd0d5}html[data-theme="dark"] .archive-year-list{border-color:rgba(223,197,206,.10)}html[data-theme="dark"] .archive-entry{border-color:rgba(223,197,206,.08)}html[data-theme="dark"] .archive-entry:hover{background:linear-gradient(90deg,rgba(159,99,123,.09),transparent)}html[data-theme="dark"] .search-page-form input,html[data-theme="dark"] .search-result-card{border-color:rgba(224,196,206,.09);background:rgba(55,44,49,.25);color:#e1d4d8}html[data-theme="dark"] .search-result-card:hover{background:rgba(67,52,59,.38)}
@media(max-width:640px){.archive-page,.search-page{width:min(100% - 28px,880px);padding:94px 0 72px}.archive-hero{margin-bottom:40px}.archive-year{grid-template-columns:1fr;gap:12px}.archive-year-heading{display:flex;align-items:baseline;gap:9px}.archive-year-heading strong{font-size:24px}.archive-year-heading span{margin:0}.archive-entry{grid-template-columns:75px 1fr 16px;gap:10px;padding:14px 2px}.archive-entry span{font-size:14px}.front-search-modal{padding-top:9vh}.front-search-dialog{padding:18px;border-radius:18px}.front-search-head h2{font-size:18px}}

.post-neighbors{gap:12px}.post-neighbor{min-height:108px;display:flex;flex-direction:column;justify-content:center;padding:17px 18px;border:1px solid rgba(151,111,126,.10);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.45),rgba(248,239,243,.22));transition:.2s ease}.post-neighbor:hover{transform:translateY(-2px);border-color:rgba(151,111,126,.20);box-shadow:0 14px 38px rgba(80,52,62,.055)}.post-neighbor strong{line-height:1.55}.post-neighbor time{margin-top:7px;color:#b098a1;font-size:9.5px;letter-spacing:.09em}.post-neighbor-home{align-items:center;text-align:center;background:transparent}.post-neighbor-home strong{font-size:12px;font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-weight:400}.post-neighbor-home .post-neighbor-label{font-size:16px}html[data-theme="dark"] .post-neighbor{border-color:rgba(224,196,206,.08);background:linear-gradient(145deg,rgba(64,49,56,.28),rgba(42,34,38,.18))}html[data-theme="dark"] .post-neighbor:hover{border-color:rgba(224,196,206,.16);box-shadow:0 14px 38px rgba(0,0,0,.14)}

.global-music-mode-row{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;margin-top:8px}.global-music-mode-button{border:1px solid rgba(151,111,126,.12);border-radius:999px;background:transparent;color:#9c7f8a;padding:5px 9px;font-size:10px;cursor:pointer}.global-music-mode-button.is-active{border-color:rgba(166,112,133,.28);background:rgba(181,127,147,.12);color:#885f6e}.global-music-volume{display:flex;align-items:center;gap:6px;min-width:0;color:#a18992;font-size:11px}.global-music-volume input{width:100%;accent-color:#a97789}.global-music-mode-button span{font-size:9px}html[data-theme="dark"] .global-music-mode-button{border-color:rgba(224,196,206,.10);color:#b59ba5}html[data-theme="dark"] .global-music-mode-button.is-active{background:rgba(181,122,145,.14);color:#e0b9c8}

.comment-avatar{background:hsl(var(--comment-avatar-hue,330) 34% 92%);color:hsl(var(--comment-avatar-hue,330) 24% 45%);border:1px solid hsl(var(--comment-avatar-hue,330) 28% 82%)}html[data-theme="dark"] .comment-avatar{background:hsl(var(--comment-avatar-hue,330) 18% 24%);color:hsl(var(--comment-avatar-hue,330) 30% 76%);border-color:hsl(var(--comment-avatar-hue,330) 18% 34%)}.owner-reply-avatar{width:36px;height:36px;flex:0 0 36px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.8);box-shadow:0 5px 18px rgba(118,75,91,.12)}

.article-content img[width][height]{height:auto}.article-content img{content-visibility:auto}.pjax-loading .post-neighbor{pointer-events:none}.article-content{contain:layout style}.hero-logo-image{aspect-ratio:1/1}
@media(max-width:640px){.global-music-mode-row{grid-template-columns:auto auto 1fr}.global-music-mode-button span{display:none}.post-neighbors{grid-template-columns:1fr}.post-neighbor{min-height:78px}.post-neighbor-home{order:3}}

/* 用户确认的正文段间距固定保持 */
.article-content p{margin:0 0 .2em}@media(max-width:640px){.article-content p{margin:0 0 .2em}}

/* V51 small corrections */
.owner-reply{grid-template-columns:36px minmax(0,1fr)}
@media(max-width:640px){.owner-reply{grid-template-columns:32px minmax(0,1fr)}.owner-reply-avatar{width:32px;height:32px;flex-basis:32px}}

/* =========================================================
   V52 滚动性能 + 正文图片 Lazy FadeIn
   ========================================================= */

/*
 * background-attachment:fixed 在 Chrome/Windows 上很容易造成长页滚动重绘。
 * 保留原来的渐变氛围，但让背景跟随文档；两个装饰光斑也停止持续浮动。
 */
body,
html[data-theme="dark"] body {
  background-attachment: scroll !important;
}
body::before,
body::after {
  animation: none !important;
  will-change: auto;
}

/* 常驻 fixed 控件不再实时模糊页面背后的每一帧，改用更实的半透明底色。 */
.front-toolbar .theme-toggle,
.front-toolbar .admin-entry,
.front-toolbar .front-share-button,
.front-toolbar .front-tool-button,
.page-jump-button,
.page-jump-controls .back-to-top,
.global-music-enable,
.global-music-panel {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.front-toolbar .theme-toggle,
.front-toolbar .admin-entry,
.front-toolbar .front-share-button,
.front-toolbar .front-tool-button,
.page-jump-button,
.page-jump-controls .back-to-top {
  background: rgba(255,252,253,.94);
}
html[data-theme="dark"] .front-toolbar .theme-toggle,
html[data-theme="dark"] .front-toolbar .admin-entry,
html[data-theme="dark"] .front-toolbar .front-share-button,
html[data-theme="dark"] .front-toolbar .front-tool-button,
html[data-theme="dark"] .page-jump-button,
html[data-theme="dark"] .page-jump-controls .back-to-top {
  background: rgba(42,35,39,.94);
}
.global-music-enable { background: rgba(255,251,252,.97); }
.global-music-panel { background: rgba(255,251,252,.985); }
html[data-theme="dark"] .global-music-enable,
html[data-theme="dark"] .global-music-panel { background: rgba(39,32,35,.975); }

/* V51 的 content-visibility/contain 对单张图片收益很小，长文滚动时反而会造成额外布局切换。 */
.article-content {
  contain: none !important;
}
.article-content img {
  content-visibility: visible !important;
}

/* 去掉大图片上的 blur filter 动画：视觉上仍有淡入上浮，但 GPU 压力明显更低。 */
html.js .article-reveal {
  will-change: opacity, transform;
  transition-property: opacity, transform;
}
html.js .article-reveal--image {
  filter: none !important;
  transform: translate3d(0,16px,0) scale(.994);
  transition-duration: .62s;
}
html.js .article-reveal.is-article-revealed {
  filter: none !important;
}

/* 真正的 lazy 图片 fadeIn：进入视口 + 图片加载完成，两个条件同时满足才显示。 */
html.js .article-content img.article-media-loadfx {
  filter: none !important;
  transition: opacity .56s cubic-bezier(.22,.72,.26,1),
              transform .62s cubic-bezier(.22,.72,.26,1);
}
html.js .article-content img.article-media-loadfx:not(.article-media-lazy) {
  opacity: 1;
}
html.js .article-content img.article-media-lazy {
  opacity: 0;
  transform: translate3d(0,12px,0) scale(.996);
}
html.js .article-content img.article-media-lazy.is-lazy-visible.is-media-loaded {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
}
html.js .article-content img.article-media-loadfx.lightbox-enabled:hover {
  opacity: .94;
}

/* 阅读进度条本身固定走合成层，不参与布局。 */
.reading-progress span {
  contain: paint;
  translate: 0 0;
}

@media (max-width:640px) {
  html.js .article-content img.article-media-lazy {
    transform: translate3d(0,9px,0) scale(.997);
  }
}

@media (prefers-reduced-motion: reduce) {
  html.js .article-content img.article-media-lazy,
  html.js .article-content img.article-media-lazy.is-lazy-visible.is-media-loaded {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* =========================================================
   V53 前台统一动效系统
   目标：明确可见、安静、统一；只用 opacity + transform 保持滚动流畅。
   ========================================================= */

/* 关闭旧 V25/V26/V52 的 reveal 动画状态，避免两套系统抢 opacity/transform。 */
html.motion-v53 .home-page .post-card.home-reveal,
html.motion-v53 .home-page .post-card.home-reveal.is-visible {
  animation:none !important;
  will-change:auto;
}
html.motion-v53 .article-reveal,
html.motion-v53 .article-reveal.is-article-revealed,
html.motion-v53 .article-content img.article-media-loadfx,
html.motion-v53 .article-content img.article-media-lazy,
html.motion-v53 .article-content img.article-media-lazy.is-lazy-visible.is-media-loaded {
  filter:none !important;
}

/* 所有进入视口节点的统一骨架。 */
html.motion-v53 .motion-reveal {
  opacity:0;
  transition-property:opacity, transform;
  transition-duration:.72s, .82s;
  transition-delay:var(--motion-delay, 0ms);
  transition-timing-function:cubic-bezier(.20,.72,.24,1);
  will-change:opacity, transform;
  backface-visibility:hidden;
}
html.motion-v53 .motion-reveal.is-motion-visible {
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
html.motion-v53 .motion-reveal.motion-finished {
  will-change:auto;
}

/* 首页文章：右侧 + 很轻的下方位移，明显但不“飞”。 */
html.motion-v53 .home-page .post-card.motion-reveal--home-card {
  opacity:0 !important;
  transform:translate3d(34px,14px,0) scale(.992) !important;
  transition-duration:.76s,.88s;
}
html.motion-v53 .home-page .post-card.motion-reveal--home-card.is-motion-visible {
  opacity:1 !important;
  transform:translate3d(0,0,0) scale(1) !important;
}

/* 正文图片：比其它节点更完整，缓存图片同样会执行。 */
html.motion-v53 .motion-reveal--image {
  opacity:0;
  transform:translate3d(0,28px,0) scale(.985);
  transition-duration:.88s,.98s;
}
html.motion-v53 .motion-reveal--image.is-motion-visible {
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
/* 图片内部不再有第二套透明度动画，完全由其 motion target 负责。 */
html.motion-v53 .article-content .motion-reveal--image img,
html.motion-v53 .article-content img.motion-reveal--image,
html.motion-v53 .article-content img.article-media-loadfx,
html.motion-v53 .article-content img.article-media-lazy,
html.motion-v53 .article-content img.article-media-lazy.is-lazy-visible.is-media-loaded {
  opacity:1;
  filter:none !important;
}

/* H2 稍明显，H3/H4 更轻。 */
html.motion-v53 .motion-reveal--h2 {
  transform:translate3d(0,17px,0);
  transition-duration:.64s,.72s;
}
html.motion-v53 .motion-reveal--heading {
  transform:translate3d(0,12px,0);
  transition-duration:.58s,.66s;
}

/* 引用从左侧进入。 */
html.motion-v53 .motion-reveal--quote {
  transform:translate3d(-20px,0,0);
  transition-duration:.66s,.76s;
}

/* 音乐卡片轻微上浮。 */
html.motion-v53 .motion-reveal--music {
  transform:translate3d(0,18px,0) scale(.994);
  transition-duration:.66s,.76s;
}

/* 分割线：从中心向两侧铺开。 */
html.motion-v53 .article-content hr.motion-reveal--divider {
  opacity:0;
  transform:scaleX(.04);
  transform-origin:center center;
  transition-duration:.48s,.78s;
}
html.motion-v53 .article-content hr.motion-reveal--divider.is-motion-visible {
  opacity:1;
  transform:scaleX(1);
}

/* 文章末尾、翻篇区、评论区。 */
html.motion-v53 .motion-reveal--end {
  transform:translate3d(0,12px,0);
  transition-duration:.54s,.62s;
}
html.motion-v53 .motion-reveal--neighbors {
  transform:translate3d(0,22px,0) scale(.994);
  transition-duration:.72s,.82s;
}
html.motion-v53 .motion-reveal--comments {
  transform:translate3d(0,24px,0);
  transition-duration:.76s,.88s;
}

/* 归档和搜索结果也用同一语言。 */
html.motion-v53 .motion-reveal--section {
  transform:translate3d(0,18px,0);
  transition-duration:.66s,.76s;
}

/* 首页标题区保持原来的 Logo/标题动画，再给列表和标题之间留出节奏。 */
html.motion-v53 .home-page .post-list {
  isolation:isolate;
}

@media(max-width:640px) {
  html.motion-v53 .home-page .post-card.motion-reveal--home-card {
    transform:translate3d(20px,10px,0) scale(.994) !important;
  }
  html.motion-v53 .motion-reveal--image { transform:translate3d(0,20px,0) scale(.989); }
  html.motion-v53 .motion-reveal--quote { transform:translate3d(-12px,0,0); }
  html.motion-v53 .motion-reveal--neighbors,
  html.motion-v53 .motion-reveal--comments { transform:translate3d(0,16px,0); }
}

@media(prefers-reduced-motion:reduce) {
  html.motion-v53 .motion-reveal,
  html.motion-v53 .home-page .post-card.motion-reveal--home-card,
  html.motion-v53 .article-content hr.motion-reveal--divider {
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
    will-change:auto !important;
  }
}


/* =========================================================
   V54 动效体验重构 + 顶部主页入口
   - 清理历史 V25/V26/V52/V53 动画冲突
   - 统一由 .v54-reveal / .is-v54-visible 控制
   - 仅 opacity + transform，保持长页滚动流畅
   ========================================================= */

/* 顶部主页按钮与其它工具按钮一致；主页本身也保留按钮，作为稳定导航锚点。 */
.front-home-link svg { width:16px; height:16px; }

/* 彻底解除旧动画系统对 opacity / transform 的控制。 */
html.motion-v54 .home-page .post-card.home-reveal,
html.motion-v54 .home-page .post-card.home-reveal.is-visible,
html.motion-v54 .article-reveal,
html.motion-v54 .article-reveal.is-article-revealed,
html.motion-v54 .motion-reveal,
html.motion-v54 .motion-reveal.is-motion-visible,
html.motion-v54 .article-content img.article-media-loadfx,
html.motion-v54 .article-content img.article-media-lazy,
html.motion-v54 .article-content img.article-media-lazy.is-lazy-visible.is-media-loaded {
  animation:none !important;
  filter:none !important;
}

/* 统一骨架：JS 先写入初始态，进入视口后只切一个 class。 */
html.motion-v54 .v54-reveal {
  opacity:0;
  transition-property:opacity, transform;
  transition-duration:.72s, .84s;
  transition-delay:var(--v54-delay, 0ms);
  transition-timing-function:cubic-bezier(.18,.74,.24,1);
  will-change:opacity, transform;
  backface-visibility:hidden;
}
html.motion-v54 .v54-reveal.is-v54-visible {
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
html.motion-v54 .v54-reveal.v54-motion-finished { will-change:auto; }

/* 首页卡片：更接近你最初喜欢的 fadeInRight，但位移控制得比较安静。 */
html.motion-v54 .home-page .post-card.v54-reveal--home-card {
  opacity:0 !important;
  transform:translate3d(38px,14px,0) scale(.991) !important;
  transition-duration:.78s,.90s;
}
html.motion-v54 .home-page .post-card.v54-reveal--home-card.is-v54-visible {
  opacity:1 !important;
  transform:translate3d(0,0,0) scale(1) !important;
}

/* 文章首屏：日期/操作很轻，标题稍完整。 */
html.motion-v54 .v54-reveal--intro-soft {
  transform:translate3d(0,12px,0);
  transition-duration:.54s,.64s;
}
html.motion-v54 .v54-reveal--intro-title {
  transform:translate3d(0,17px,0) scale(.995);
  transition-duration:.66s,.76s;
}

/* 正文图片：真正的缓存无关 FadeIn。裸 img 自己淡入，figure 则整块（含图注）淡入。 */
html.motion-v54 .v54-reveal--image {
  opacity:0 !important;
  transform:translate3d(0,30px,0) scale(.982) !important;
  transition-duration:.90s,1.02s;
}
html.motion-v54 .v54-reveal--image.is-v54-visible {
  opacity:1 !important;
  transform:translate3d(0,0,0) scale(1) !important;
}
html.motion-v54 .jiuwei-figure.v54-reveal--image img,
html.motion-v54 img.v54-reveal--image {
  filter:none !important;
}
/* 修掉 V53 的核心 bug：不能再把“裸 img 动画目标”强制 opacity:1。 */
html.motion-v54 .article-content img.v54-reveal--image:not(.is-v54-visible) {
  opacity:0 !important;
}
html.motion-v54 .article-content img.v54-reveal--image.is-v54-visible {
  opacity:1 !important;
}

html.motion-v54 .v54-reveal--h2 {
  transform:translate3d(0,19px,0);
  transition-duration:.64s,.74s;
}
html.motion-v54 .v54-reveal--heading {
  transform:translate3d(0,13px,0);
  transition-duration:.58s,.68s;
}
html.motion-v54 .v54-reveal--quote {
  transform:translate3d(-22px,0,0);
  transition-duration:.66s,.78s;
}
html.motion-v54 .v54-reveal--music {
  transform:translate3d(0,19px,0) scale(.993);
  transition-duration:.66s,.78s;
}

/* 分割线：从中间舒展开。 */
html.motion-v54 .article-content hr.v54-reveal--divider {
  opacity:0;
  transform:scaleX(.02);
  transform-origin:center center;
  transition-duration:.44s,.82s;
}
html.motion-v54 .article-content hr.v54-reveal--divider.is-v54-visible {
  opacity:1;
  transform:scaleX(1);
}

html.motion-v54 .v54-reveal--end { transform:translate3d(0,12px,0); }
html.motion-v54 .v54-reveal--neighbors {
  transform:translate3d(0,24px,0) scale(.993);
  transition-duration:.72s,.86s;
}
html.motion-v54 .v54-reveal--comments {
  transform:translate3d(0,26px,0);
  transition-duration:.76s,.90s;
}
html.motion-v54 .v54-reveal--section {
  transform:translate3d(0,20px,0);
  transition-duration:.66s,.78s;
}

/* 原 V26 首屏 keyframes 关闭，避免和 V54 再叠一遍。 */
html.motion-v54 .article-wrap .back-home,
html.motion-v54 .article-wrap .article-header > time,
html.motion-v54 .article-wrap .article-header > h1,
html.motion-v54 .article-wrap .article-header > .article-summary {
  animation:none !important;
}

@media(max-width:640px) {
  html.motion-v54 .home-page .post-card.v54-reveal--home-card {
    transform:translate3d(22px,10px,0) scale(.994) !important;
  }
  html.motion-v54 .v54-reveal--image {
    transform:translate3d(0,22px,0) scale(.987) !important;
  }
  html.motion-v54 .v54-reveal--quote { transform:translate3d(-13px,0,0); }
  html.motion-v54 .v54-reveal--neighbors,
  html.motion-v54 .v54-reveal--comments { transform:translate3d(0,17px,0); }
}

@media(prefers-reduced-motion:reduce) {
  html.motion-v54 .v54-reveal,
  html.motion-v54 .home-page .post-card.v54-reveal--home-card,
  html.motion-v54 .article-content hr.v54-reveal--divider {
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
    will-change:auto !important;
  }
}

/* V55：下划线排版与编辑器预览保持一致 */
.article-content u,
.article-summary u {
  text-underline-offset: .16em;
  text-decoration-thickness: .065em;
}


/* =========================================================
   V62：那年今日 + 随机一篇（短笺功能已撤回）
   ========================================================= */
.on-this-day-card {
  width:min(560px,calc(100vw - 42px));
  margin:24px auto 0;
  position:relative;
  border:1px solid rgba(149,105,121,.13);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(251,242,246,.48));
  box-shadow:0 16px 46px rgba(102,70,83,.065);
  overflow:hidden;
  text-align:left;
}
.on-this-day-card::before { content:""; position:absolute; inset:-40% auto auto -8%; width:190px; height:120px; background:radial-gradient(circle,rgba(204,151,172,.13),transparent 70%); pointer-events:none; }
.on-this-day-link { display:grid; grid-template-columns:34px minmax(0,1fr) 22px; gap:12px; align-items:center; padding:15px 42px 15px 16px; color:inherit; text-decoration:none; }
.on-this-day-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:rgba(180,126,147,.09); color:#b17e91; font-size:13px; }
.on-this-day-copy { min-width:0; display:block; }
.on-this-day-kicker { display:block; margin-bottom:4px; color:#b18494; font:9px/1.4 "PingFang SC","Microsoft YaHei",sans-serif; letter-spacing:.15em; }
.on-this-day-copy strong { display:block; overflow:hidden; color:#66545b; font:500 14px/1.55 "Songti SC","STSong",serif; text-overflow:ellipsis; white-space:nowrap; letter-spacing:.025em; }
.on-this-day-copy small { display:block; margin-top:4px; color:#a08a92; font-size:9.5px; line-height:1.5; letter-spacing:.03em; }
.on-this-day-arrow { color:#b28b99; font-size:14px; transition:transform .22s ease; }
.on-this-day-link:hover .on-this-day-arrow { transform:translateX(3px); }
.on-this-day-close { position:absolute; z-index:2; top:9px; right:9px; width:26px; height:26px; border:0; border-radius:50%; background:transparent; color:#b29ca4; font:18px/1 Georgia,serif; cursor:pointer; transition:.18s ease; }
.on-this-day-close:hover { background:rgba(150,111,125,.08); color:#806771; }
.on-this-day-card.is-dismissing { opacity:0!important; transform:translateY(-5px) scale(.985)!important; transition:opacity .24s ease,transform .24s ease!important; }
html[data-theme="dark"] .on-this-day-card { border-color:rgba(224,193,205,.10); background:linear-gradient(135deg,rgba(55,44,49,.72),rgba(45,36,40,.58)); box-shadow:0 18px 50px rgba(0,0,0,.15); }
html[data-theme="dark"] .on-this-day-copy strong { color:#ddd0d5; }
html[data-theme="dark"] .on-this-day-icon { background:rgba(208,154,176,.09); color:#ca9bad; }
html.motion-v54 .v54-reveal--today-card { opacity:0; transform:translate3d(0,13px,0) scale(.988); transition-duration:.62s,.74s; }
html.motion-v54 .v54-reveal--today-card.is-v54-visible { opacity:1; transform:translate3d(0,0,0) scale(1); }
@media(max-width:760px){
  .front-toolbar { max-width:calc(100vw - 24px); overflow-x:auto; scrollbar-width:none; }
  .front-toolbar::-webkit-scrollbar{display:none}
  .front-toolbar .front-tool-button span,.front-toolbar .front-share-text,.front-toolbar .theme-toggle-text { display:none; }
  .front-toolbar .front-tool-button,.front-toolbar .front-share-button,.front-toolbar .theme-toggle,.front-toolbar .admin-entry { width:34px; min-width:34px; height:34px; min-height:34px; padding:0; border-radius:50%; }
  .front-toolbar .front-tool-button svg,.front-toolbar .front-share-button svg { width:16px; height:16px; }
  .on-this-day-card { width:min(520px,calc(100vw - 30px)); margin-top:20px; }
  .on-this-day-link { grid-template-columns:30px minmax(0,1fr) 16px; gap:9px; padding:13px 36px 13px 13px; }
  .on-this-day-icon { width:29px; height:29px; }
  .on-this-day-copy strong { font-size:13px; }
  .on-this-day-copy small { font-size:9px; }
}
@media(prefers-reduced-motion:reduce){
  html.motion-v54 .v54-reveal--today-card { opacity:1!important; transform:none!important; transition:none!important; }
}

/* V69：打开摘句分享时先收起手机浏览器 / WebView 原生文字选区菜单 */
html.share-selection-clearing .article-content,
html.share-selection-clearing .article-header,
html.share-selection-clearing .article-summary {
  -webkit-user-select: none !important;
  user-select: none !important;
}

/* =========================================================
   V72：文章摘要 / 引言视觉重构 + 汇文明朝体
   字体文件：assets/fonts/huiwen-mingchao.woff2
   - 只影响文章详情页摘要，不改变正文宋体与 .2em 段距
   - 图片保持独立展示；浅色“纸笺晕染”只落在文字段落上
   - 深色主题与手机端单独适配
   ========================================================= */
@font-face {
  font-family: "Jiuwei Huiwen Mingchao";
  src: url("../fonts/huiwen-mingchao.woff2?v=1") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

.article-summary {
  position: relative;
  margin-top: 30px;
  color: #806b73;
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 2.04;
  letter-spacing: .065em;
  text-wrap: pretty;
}

/* 小小的“引”字印记：比直接写“摘要”更像一段序言。 */
.article-summary::before {
  content: "引";
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  margin: 0 0 16px 1px;
  border: 1px solid rgba(159, 107, 126, .30);
  border-radius: 4px;
  color: #a06f80;
  background: rgba(255, 250, 252, .42);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.20);
  font-family: "Jiuwei Huiwen Mingchao", "Kaiti SC", "STKaiti", "KaiTi", serif;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
}

/* 摘要里的图片仍然是“作品内容”，不做整块卡片背景。 */
.article-summary img,
.article-summary .jiuwei-figure {
  position: relative;
  z-index: 1;
}
.article-summary img {
  box-shadow: 0 14px 38px rgba(82, 52, 64, .055);
}

/* 现代浏览器：只给纯文字段落一层非常浅的纸笺晕染。 */
@supports selector(:has(*)) {
  .article-summary > p:not(:has(img)),
  .article-summary > div:not(.jiuwei-figure):not(:has(img)),
  .article-summary > blockquote:not(:has(img)) {
    position: relative;
    margin: .28em 0;
    padding: .28em 20px .28em 22px;
    border-left: 1px solid rgba(163, 111, 130, .23);
    background: linear-gradient(90deg,
      rgba(199, 151, 168, .085) 0%,
      rgba(211, 172, 186, .045) 58%,
      rgba(211, 172, 186, 0) 100%);
  }

  .article-summary > blockquote:not(:has(img)) {
    color: inherit;
    font-style: normal;
  }
}

.article-summary a {
  color: #9c687b;
  text-decoration-color: rgba(156, 104, 123, .34);
  text-underline-offset: .2em;
}

/* 深色：不是亮粉卡片，只保留一点暗玫瑰色的纸面层次。 */
html[data-theme="dark"] .article-summary {
  color: #c8b4bc;
}
html[data-theme="dark"] .article-summary::before {
  border-color: rgba(211, 157, 177, .28);
  color: #c795a8;
  background: rgba(93, 61, 73, .20);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.015);
}
html[data-theme="dark"] .article-summary img {
  box-shadow: 0 18px 46px rgba(0, 0, 0, .18);
}
html[data-theme="dark"] .article-summary a {
  color: #d0a4b5;
  text-decoration-color: rgba(208, 164, 181, .30);
}
@supports selector(:has(*)) {
  html[data-theme="dark"] .article-summary > p:not(:has(img)),
  html[data-theme="dark"] .article-summary > div:not(.jiuwei-figure):not(:has(img)),
  html[data-theme="dark"] .article-summary > blockquote:not(:has(img)) {
    border-left-color: rgba(210, 159, 178, .20);
    background: linear-gradient(90deg,
      rgba(169, 103, 127, .075) 0%,
      rgba(169, 103, 127, .032) 58%,
      rgba(169, 103, 127, 0) 100%);
  }
}

@media (max-width: 640px) {
  .article-summary {
    margin-top: 24px;
    font-size: 15.8px;
    line-height: 1.98;
    letter-spacing: .052em;
  }
  .article-summary::before {
    width: 23px;
    height: 23px;
    margin-bottom: 13px;
    font-size: 11px;
  }
  .article-summary img,
  .article-summary .jiuwei-figure {
    max-width: 100%;
  }
  @supports selector(:has(*)) {
    .article-summary > p:not(:has(img)),
    .article-summary > div:not(.jiuwei-figure):not(:has(img)),
    .article-summary > blockquote:not(:has(img)) {
      margin: .22em 0;
      padding: .22em 10px .22em 14px;
      border-left-color: rgba(163, 111, 130, .20);
      background: linear-gradient(90deg,
        rgba(199, 151, 168, .072) 0%,
        rgba(211, 172, 186, .032) 65%,
        rgba(211, 172, 186, 0) 100%);
    }
  }
}

/* =========================================================
   V73：摘要改为整块圆角边框模块；桌面端正文切换汇文明朝体
   - 用户反馈：摘要仍与正文偏混，希望更明确地区分
   - 用户反馈：汇文明朝体适合全文，但手机端先不动
   ========================================================= */
.article-summary {
  margin-top: 30px;
  padding: 18px 20px 20px;
  border: 1px solid rgba(191, 160, 171, .46);
  border-radius: 20px;
  background: linear-gradient(180deg,
    rgba(255, 252, 253, .82) 0%,
    rgba(252, 246, 248, .72) 100%);
  box-shadow: 0 16px 36px rgba(90, 62, 74, .045);
}

.article-summary::before {
  margin: 0 0 15px 0;
}

.article-summary > *:last-child {
  margin-bottom: 0;
}

.article-summary img {
  border-radius: 12px;
}

@supports selector(:has(*)) {
  .article-summary > p:not(:has(img)),
  .article-summary > div:not(.jiuwei-figure):not(:has(img)),
  .article-summary > blockquote:not(:has(img)) {
    margin: .32em 0;
    padding: 0;
    border-left: 0;
    background: none;
  }
}

html[data-theme="dark"] .article-summary {
  border-color: rgba(208, 169, 184, .24);
  background: linear-gradient(180deg,
    rgba(58, 42, 48, .56) 0%,
    rgba(47, 35, 40, .50) 100%);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .20);
}

/* 桌面端：将文章正文也切换到汇文明朝体；手机端保持原样。 */
@media (min-width: 641px) {
  .article-header h1,
  .article-content,
  .article-content h1,
  .article-content h2,
  .article-content h3,
  .article-content h4,
  .article-content blockquote {
    font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  }

  .article-header h1 {
    letter-spacing: .038em;
  }

  .article-content {
    font-size: 18px;
    line-height: 1.96;
    letter-spacing: .055em;
    word-spacing: .04em;
  }

  .article-content h2,
  .article-content h3,
  .article-content h4 {
    letter-spacing: .035em;
  }

  .article-content blockquote {
    color: #77666d;
  }

  html[data-theme="dark"] .article-content blockquote {
    color: #cdbdc3;
  }
}

@media (max-width: 640px) {
  .article-summary {
    padding: 14px 14px 16px;
    border-radius: 16px;
  }
}

/* =========================================================
   V74：导语卡片去下划线 + 增加下边距；主页同步汇文明朝体并细修布局
   - 导语已有整块包框后，不再需要标题区下划线
   - 主页桌面端同步切换汇文明朝体；手机端保持原逻辑
   ========================================================= */

/* 文章页：去掉导语区域下方横线，改为留白过渡。 */
.article-header {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 60px;
}

.article-summary {
  margin-bottom: 26px;
}

@media (max-width: 640px) {
  .article-header {
    margin-bottom: 44px;
  }

  .article-summary {
    margin-bottom: 20px;
  }
}

/* 首页：桌面端把首页主标题、卡片标题、摘要等同步到汇文明朝体，
   同时顺手微调几个细节，让视觉更统一、层次更柔和。 */
@media (min-width: 641px) {
  .hero h1,
  .post-card h2,
  .post-summary,
  .post-placeholder-initial,
  .on-this-day-copy strong,
  .empty-note {
    font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  }

  .hero.hero-compact {
    min-height: 410px;
    padding-top: 52px;
  }

  .hero h1 {
    letter-spacing: .14em;
    padding-left: .14em;
    line-height: 1.18;
  }

  .tagline {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.9;
  }

  .hairline {
    width: 44px;
    margin-top: 22px;
    margin-bottom: 18px;
  }

  .post-list.layout-single {
    width: min(840px, 100%);
  }

  .post-card-inner {
    grid-template-columns: 270px minmax(0, 1fr);
    gap: 34px;
    align-items: start;
    padding-top: 34px;
    padding-bottom: 36px;
  }

  .post-thumb {
    border-radius: 12px;
  }

  .post-card time {
    margin-bottom: 10px;
  }

  .post-card h2 {
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(145, 112, 124, .16);
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: .05em;
  }

  .post-summary {
    color: #7b696f;
    font-size: 16px;
    line-height: 2.02;
    letter-spacing: .045em;
  }

  .read-more {
    margin-top: 15px;
  }

  .layout-double .post-card {
    border-radius: 18px;
  }

  .layout-double .post-card-inner {
    grid-template-columns: 146px minmax(0, 1fr);
    gap: 20px;
    padding: 22px;
  }

  .layout-double .post-card h2 {
    font-size: 22px;
    line-height: 1.42;
  }

  .layout-double .post-summary {
    font-size: 14.8px;
    line-height: 1.92;
  }

  .on-this-day-copy strong {
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: .035em;
  }
}

/* =========================================================
   V75：摘要大号“引”字背景化
   - 用户希望“引”字更大，放左上角，像背景印记，层级更低、更有氛围
   ========================================================= */
.article-summary {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.article-summary::before {
  content: "引";
  position: absolute;
  top: 8px;
  left: 16px;
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: rgba(171, 123, 141, .16);
  font-family: "Jiuwei Huiwen Mingchao", "Kaiti SC", "STKaiti", "KaiTi", serif;
  font-size: 82px;
  line-height: .9;
  letter-spacing: 0;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}

.article-summary > * {
  position: relative;
  z-index: 1;
}

html[data-theme="dark"] .article-summary::before {
  color: rgba(215, 167, 185, .11);
}

@media (max-width: 640px) {
  .article-summary::before {
    top: 8px;
    left: 12px;
    font-size: 58px;
  }
}

/* =========================================================
   V76：首页摘要字体强制统一
   旧文章/粘贴富文本里可能残留 span / p / div 的内联 font-family，
   会覆盖 .post-summary 的继承字体，因此桌面首页对常见文字节点强制继承汇文明朝体。
   ========================================================= */
@media (min-width: 641px) {
  .home-page .post-summary,
  .home-page .post-summary p,
  .home-page .post-summary div,
  .home-page .post-summary span,
  .home-page .post-summary font,
  .home-page .post-summary strong,
  .home-page .post-summary b,
  .home-page .post-summary em,
  .home-page .post-summary i,
  .home-page .post-summary u,
  .home-page .post-summary s,
  .home-page .post-summary del,
  .home-page .post-summary blockquote,
  .home-page .post-summary cite,
  .home-page .post-summary q,
  .home-page .post-summary a,
  .home-page .post-summary small {
    font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif !important;
  }
}

/* =========================================================
   V77：汇文明朝体扩展到手机端
   - 首页与文章主体在手机端也统一使用汇文明朝体
   - 同时覆盖旧富文本残留的内联字体，避免新旧文章混用
   - 功能按钮、日期、导航等界面型小字仍保留原字体，保证可读性
   ========================================================= */

/* 首页正文性文字：桌面 + 手机统一。 */
.hero h1,
.post-card h2,
.post-placeholder-initial,
.on-this-day-copy strong,
.empty-note {
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
}

.home-page .post-summary,
.home-page .post-summary p,
.home-page .post-summary div,
.home-page .post-summary span,
.home-page .post-summary font,
.home-page .post-summary strong,
.home-page .post-summary b,
.home-page .post-summary em,
.home-page .post-summary i,
.home-page .post-summary u,
.home-page .post-summary s,
.home-page .post-summary del,
.home-page .post-summary blockquote,
.home-page .post-summary cite,
.home-page .post-summary q,
.home-page .post-summary a,
.home-page .post-summary small {
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif !important;
}

/* 文章标题、导语、正文：所有屏幕尺寸统一。 */
.article-header h1,
.article-summary,
.article-content,
.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4,
.article-content blockquote,
.article-content .jiuwei-figure figcaption {
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
}

/* 兼容旧文章中粘贴进来的内联 font-family。代码块不覆盖。 */
.article-summary p,
.article-summary div:not(.jiuwei-figure),
.article-summary span,
.article-summary font,
.article-summary strong,
.article-summary b,
.article-summary em,
.article-summary i,
.article-summary u,
.article-summary s,
.article-summary del,
.article-summary blockquote,
.article-summary cite,
.article-summary q,
.article-summary a,
.article-summary small,
.article-content p,
.article-content p *,
.article-content h1,
.article-content h1 *,
.article-content h2,
.article-content h2 *,
.article-content h3,
.article-content h3 *,
.article-content h4,
.article-content h4 *,
.article-content blockquote,
.article-content blockquote *,
.article-content .jiuwei-figure figcaption,
.article-content .jiuwei-figure figcaption * {
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif !important;
}

/* 手机端只切字体，不额外改变原有字号、行距和布局。 */
@media (max-width: 640px) {
  .hero h1,
  .post-card h2,
  .post-summary,
  .article-header h1,
  .article-summary,
  .article-content {
    font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  }
}

/* =========================================================
   V78：摘要文字去底色；整块卡片本身负责层次
   ========================================================= */
.article-summary > p,
.article-summary > div:not(.jiuwei-figure),
.article-summary > blockquote,
.article-summary > ul,
.article-summary > ol,
.article-summary > h1,
.article-summary > h2,
.article-summary > h3,
.article-summary > h4,
.article-summary > h5,
.article-summary > h6 {
  background: transparent !important;
  background-color: transparent !important;
}

/* Markdown 引用放在摘要卡片里时，只做很轻的文字层次，不再铺底色。 */
.article-summary > blockquote {
  margin: .5em 0;
  padding: 0 0 0 1.05em;
  border-left: 1px solid rgba(160, 112, 129, .28);
  color: inherit;
  font-style: normal;
}

html[data-theme="dark"] .article-summary > blockquote {
  border-left-color: rgba(211, 165, 182, .22);
}

/* =========================================================
   V79：微博站内嵌入页
   ========================================================= */
.weibo-page {
  width:min(1180px,100%);
  margin:0 auto;
  padding:92px 18px 34px;
}
.weibo-embed-shell {
  overflow:hidden;
  border:1px solid rgba(150,113,126,.16);
  border-radius:24px;
  background:rgba(255,255,255,.42);
  box-shadow:0 22px 70px rgba(87,60,70,.07);
}
.weibo-embed-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:22px 24px 20px;
  border-bottom:1px solid rgba(144,110,122,.12);
}
.weibo-embed-kicker {
  display:block;
  margin-bottom:5px;
  color:#ad8392;
  font:10px/1.2 "PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:.2em;
}
.weibo-embed-head h1 {
  margin:0;
  color:#55474d;
  font-family:"Jiuwei Huiwen Mingchao","Songti SC","STSong",serif;
  font-size:30px;
  font-weight:400;
  letter-spacing:.06em;
}
.weibo-embed-head p {
  margin:6px 0 0;
  color:#97828a;
  font-size:12px;
}
.weibo-open-original {
  flex:none;
  padding:9px 13px;
  border:1px solid rgba(160,113,131,.18);
  border-radius:999px;
  background:rgba(255,255,255,.62);
  color:#8e6877;
  font-size:12px;
  text-decoration:none;
}
.weibo-open-original:hover { background:rgba(255,255,255,.88); }
.weibo-embed-frame-wrap {
  position:relative;
  height:min(78vh,900px);
  min-height:680px;
  background:#fff;
}
.weibo-embed-fallback {
  position:absolute;
  inset:0;
  z-index:0;
  display:grid;
  place-items:center;
  color:#b3a3a9;
  font-size:12px;
  letter-spacing:.08em;
}
.weibo-embed-frame {
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.weibo-embed-note {
  margin:0;
  padding:12px 20px 14px;
  border-top:1px solid rgba(144,110,122,.10);
  color:#a18d94;
  font-size:10.5px;
  line-height:1.7;
  text-align:center;
}
html[data-theme="dark"] .weibo-embed-shell {
  border-color:rgba(225,202,211,.10);
  background:rgba(39,31,35,.66);
  box-shadow:0 24px 80px rgba(0,0,0,.18);
}
html[data-theme="dark"] .weibo-embed-head { border-bottom-color:rgba(225,202,211,.08); }
html[data-theme="dark"] .weibo-embed-head h1 { color:#e1d4d9; }
html[data-theme="dark"] .weibo-open-original {
  border-color:rgba(225,202,211,.12);
  background:rgba(64,50,56,.58);
  color:#d6b6c3;
}
html[data-theme="dark"] .weibo-embed-note { border-top-color:rgba(225,202,211,.08); }
@media(max-width:640px){
  .weibo-page { padding:68px 0 18px; }
  .weibo-embed-shell { border-left:0; border-right:0; border-radius:0; }
  .weibo-embed-head { align-items:flex-start; padding:16px 14px 14px; }
  .weibo-embed-head h1 { font-size:24px; }
  .weibo-embed-head p { font-size:11px; }
  .weibo-open-original { padding:8px 10px; font-size:11px; }
  .weibo-embed-frame-wrap { height:calc(100vh - 190px); min-height:560px; }
  .weibo-embed-note { padding:10px 14px 12px; }
}

/* =========================================================
   V81：站内微博时间线（公开微博本地缓存）
   ========================================================= */
.weibo-timeline-page{
  width:min(800px,100%);
  margin:0 auto;
  padding:98px 0 44px;
}
.weibo-timeline-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:0 4px 28px;
  border-bottom:1px solid var(--line);
}
.weibo-timeline-profile{display:flex;align-items:center;gap:17px;min-width:0}
.weibo-profile-avatar{
  flex:none;
  width:72px;
  height:72px;
  object-fit:cover;
  border-radius:50%;
  border:3px solid rgba(255,255,255,.76);
  box-shadow:0 10px 30px rgba(126,88,103,.12),0 0 0 1px rgba(142,104,119,.10);
}
.weibo-profile-copy{min-width:0}
.weibo-timeline-kicker{
  display:block;
  margin-bottom:5px;
  color:#ad8292;
  font:9.5px/1.3 "PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:.18em;
}
.weibo-profile-copy h1{
  margin:0;
  color:#55484d;
  font-family:"Jiuwei Huiwen Mingchao","Songti SC","STSong",serif;
  font-size:34px;
  font-weight:400;
  line-height:1.3;
  letter-spacing:.055em;
}
.weibo-profile-copy strong{
  display:block;
  margin-top:5px;
  color:#8f737e;
  font-family:"Jiuwei Huiwen Mingchao","Songti SC","STSong",serif;
  font-size:13px;
  font-weight:400;
}
.weibo-profile-copy p{
  max-width:520px;
  margin:5px 0 0;
  color:#9c878f;
  font-family:"Jiuwei Huiwen Mingchao","Songti SC","STSong",serif;
  font-size:12.5px;
  line-height:1.75;
}
.weibo-original-button{
  flex:none;
  padding:9px 13px;
  border:1px solid rgba(151,111,126,.18);
  border-radius:999px;
  background:rgba(255,255,255,.34);
  color:#8f6d79;
  font-size:11.5px;
  text-decoration:none;
  transition:.2s ease;
}
.weibo-original-button:hover{transform:translateY(-1px);background:rgba(255,255,255,.68)}
.weibo-timeline-meta{
  padding:14px 4px 2px;
  color:#aa979e;
  font-size:10px;
  line-height:1.6;
  letter-spacing:.025em;
}
.weibo-timeline-meta span{margin:0 5px;color:#c0b0b6}
.weibo-timeline{margin-top:8px}
.weibo-entry{
  position:relative;
  padding:34px 4px 38px;
  border-bottom:1px solid var(--line);
}
.weibo-entry-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:17px;
}
.weibo-entry-head > div{display:flex;align-items:center;gap:10px;min-width:0}
.weibo-entry-head time{
  color:#9d8991;
  font:10.5px/1.4 "PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:.09em;
}
.weibo-entry-head span{
  overflow:hidden;
  color:#b09aa2;
  font-size:10.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.weibo-entry-head a{
  flex:none;
  color:#a17988;
  font-size:10.5px;
  text-decoration:none;
}
.weibo-entry-text{
  color:#5d4f54;
  font-family:"Jiuwei Huiwen Mingchao","Songti SC","STSong","Noto Serif CJK SC","SimSun",serif;
  font-size:17px;
  line-height:2.02;
  letter-spacing:.045em;
  overflow-wrap:anywhere;
}
.weibo-media-grid{
  display:grid;
  gap:8px;
  margin-top:20px;
  width:min(620px,100%);
}
.weibo-media-grid.is-count-1{grid-template-columns:minmax(0,1fr);width:min(520px,100%)}
.weibo-media-grid.is-count-2,.weibo-media-grid.is-count-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.weibo-media-grid.is-count-3,.weibo-media-grid.is-count-5,.weibo-media-grid.is-count-6,.weibo-media-grid.is-count-7,.weibo-media-grid.is-count-8,.weibo-media-grid.is-count-9{grid-template-columns:repeat(3,minmax(0,1fr))}
.weibo-media-item{
  position:relative;
  overflow:hidden;
  margin:0;
  border-radius:10px;
  background:rgba(148,113,126,.06);
  aspect-ratio:1 / 1;
}
.weibo-media-grid.is-count-1 .weibo-media-item{aspect-ratio:auto;max-height:680px}
.weibo-media-item img{
  display:block;
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .28s ease,opacity .2s ease;
}
.weibo-media-grid.is-count-1 .weibo-media-item img{height:auto;min-height:0;max-height:680px;object-fit:contain;background:rgba(148,113,126,.035)}
.weibo-media-item:hover img{transform:scale(1.012);opacity:.98}
.weibo-repost-card{
  margin-top:20px;
  padding:17px 18px 18px;
  border:1px solid rgba(148,113,126,.12);
  border-radius:14px;
  background:rgba(164,121,137,.045);
}
.weibo-repost-author{
  margin-bottom:8px;
  color:#a57486;
  font-size:11px;
}
.weibo-repost-text{
  color:#77656c;
  font-family:"Jiuwei Huiwen Mingchao","Songti SC","STSong",serif;
  font-size:15px;
  line-height:1.92;
  letter-spacing:.035em;
  overflow-wrap:anywhere;
}
.weibo-repost-card .weibo-media-grid{margin-top:14px}
.weibo-video-card{
  position:relative;
  display:block;
  overflow:hidden;
  width:min(520px,100%);
  margin-top:20px;
  border-radius:12px;
  background:rgba(58,48,52,.9);
  color:#fff;
  text-decoration:none;
  min-height:120px;
}
.weibo-video-card img{display:block;width:100%;max-height:360px;object-fit:cover;opacity:.78}
.weibo-video-card strong,.weibo-video-card small{position:absolute;left:16px;right:16px;z-index:2;text-shadow:0 1px 5px rgba(0,0,0,.45)}
.weibo-video-card strong{bottom:30px;font-family:"Jiuwei Huiwen Mingchao","Songti SC",serif;font-size:15px;font-weight:400}
.weibo-video-card small{bottom:12px;font-size:9.5px;color:rgba(255,255,255,.72)}
.weibo-video-play{
  position:absolute;
  z-index:2;
  top:50%;left:50%;
  width:48px;height:48px;
  display:grid;place-items:center;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  background:rgba(0,0,0,.25);
  color:#fff;
  font-size:15px;
  backdrop-filter:blur(5px);
}
.weibo-entry-foot{
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:18px;
  color:#aa969e;
  font-size:9.5px;
  line-height:1.5;
}
.weibo-entry-counts{display:flex;gap:10px}
.weibo-entry-counts i{font-style:normal}
.weibo-empty-state{
  margin-top:32px;
  padding:42px 24px;
  border:1px dashed rgba(151,111,126,.20);
  border-radius:18px;
  text-align:center;
  color:#948087;
}
.weibo-empty-state span{display:block;color:#66565c;font-family:"Jiuwei Huiwen Mingchao","Songti SC",serif;font-size:21px}
.weibo-empty-state p{margin:10px 0;color:#9e8b92;font-size:12px;line-height:1.8}
.weibo-empty-state a{color:#9e7483;font-size:11px;text-decoration:none}
html[data-theme="dark"] .weibo-profile-copy h1{color:#e2d6da}
html[data-theme="dark"] .weibo-profile-copy strong{color:#c9adb8}
html[data-theme="dark"] .weibo-profile-copy p{color:#a9959d}
html[data-theme="dark"] .weibo-profile-avatar{border-color:rgba(255,255,255,.08);box-shadow:0 12px 34px rgba(0,0,0,.24),0 0 0 1px rgba(222,190,202,.08)}
html[data-theme="dark"] .weibo-original-button{border-color:rgba(222,190,202,.12);background:rgba(255,255,255,.025);color:#d1aaba}
html[data-theme="dark"] .weibo-original-button:hover{background:rgba(255,255,255,.05)}
html[data-theme="dark"] .weibo-entry-text{color:#d8cdd1}
html[data-theme="dark"] .weibo-repost-card{border-color:rgba(222,190,202,.09);background:rgba(255,255,255,.022)}
html[data-theme="dark"] .weibo-repost-text{color:#c8b9bf}
html[data-theme="dark"] .weibo-media-item{background:rgba(255,255,255,.025)}
html[data-theme="dark"] .weibo-empty-state{border-color:rgba(222,190,202,.12);color:#ae99a1}
html[data-theme="dark"] .weibo-empty-state span{color:#d9cdd1}

@media(max-width:640px){
  .weibo-timeline-page{padding:74px 0 28px}
  .weibo-timeline-hero{align-items:flex-start;gap:12px;padding:0 2px 20px}
  .weibo-timeline-profile{align-items:flex-start;gap:12px}
  .weibo-profile-avatar{width:54px;height:54px;border-width:2px}
  .weibo-profile-copy h1{font-size:27px}
  .weibo-profile-copy p{font-size:11px;line-height:1.65}
  .weibo-original-button{padding:7px 9px;font-size:10px}
  .weibo-timeline-meta{padding-top:11px;font-size:9px}
  .weibo-entry{padding:27px 1px 31px}
  .weibo-entry-head{margin-bottom:13px}
  .weibo-entry-head > div{align-items:flex-start;flex-direction:column;gap:3px}
  .weibo-entry-head time,.weibo-entry-head span,.weibo-entry-head a{font-size:9.5px}
  .weibo-entry-text{font-size:16px;line-height:1.98;letter-spacing:.038em}
  .weibo-media-grid{gap:5px;margin-top:15px}
  .weibo-media-grid.is-count-3,.weibo-media-grid.is-count-5,.weibo-media-grid.is-count-6,.weibo-media-grid.is-count-7,.weibo-media-grid.is-count-8,.weibo-media-grid.is-count-9{grid-template-columns:repeat(3,minmax(0,1fr))}
  .weibo-media-item{border-radius:7px}
  .weibo-repost-card{margin-top:15px;padding:13px;border-radius:11px}
  .weibo-repost-text{font-size:14px;line-height:1.88}
  .weibo-entry-foot{margin-top:14px;font-size:9px}
  .weibo-empty-state{margin-top:24px;padding:34px 16px;border-radius:14px}
}

/* =========================================================
   V82：主页卡片层次增强 / 导语“引”字顶层化 / 顶部工具栏加背景
   ========================================================= */

/* 顶部导航工具不再裸露悬浮，改为一体化半透明容器，滚动时不压正文。 */
.front-toolbar {
  padding: 8px;
  border: 1px solid rgba(126, 95, 108, .14);
  border-radius: 999px;
  background: rgba(255, 250, 252, .78);
  box-shadow: 0 12px 36px rgba(71, 47, 57, .08);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
html[data-theme="dark"] .front-toolbar {
  border-color: rgba(220, 195, 205, .12);
  background: rgba(35, 28, 32, .82);
  box-shadow: 0 14px 42px rgba(0, 0, 0, .22);
}
@media (max-width: 640px) {
  .front-toolbar { padding: 6px; }
}

/* 首页：单列也改为卡片式分组，不只靠横线分隔。 */
.post-list.layout-single {
  border-top: 0;
  display: grid;
  gap: 22px;
}
.post-list.layout-single .post-card {
  border: 1px solid rgba(151, 117, 129, .14);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
  box-shadow: 0 16px 44px rgba(72, 46, 57, .05);
  overflow: hidden;
}
.post-list.layout-single .post-card-inner {
  padding-left: 16px;
  padding-right: 16px;
}
html[data-theme="dark"] .post-list.layout-single .post-card {
  border-color: rgba(223, 194, 205, .10);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  box-shadow: 0 18px 50px rgba(0, 0, 0, .16);
}

/* 首页摘要沿用导语包框思路，分区更明确。 */
.home-page .post-summary {
  margin-top: 10px;
  padding: 14px 16px;
  border: 1px solid rgba(179, 143, 156, .18);
  border-radius: 18px;
  background: linear-gradient(180deg,
    rgba(255, 252, 253, .22) 0%,
    rgba(249, 240, 244, .10) 100%);
}
.home-page .post-summary p,
.home-page .post-summary div,
.home-page .post-summary blockquote {
  margin: 0 0 .75em;
}
.home-page .post-summary > *:last-child { margin-bottom: 0; }
html[data-theme="dark"] .home-page .post-summary {
  border-color: rgba(216, 184, 196, .13);
  background: linear-gradient(180deg,
    rgba(70, 52, 59, .34) 0%,
    rgba(54, 41, 47, .22) 100%);
}
@media (max-width: 640px) {
  .post-list.layout-single {
    gap: 16px;
  }
  .post-list.layout-single .post-card {
    border-radius: 18px;
  }
  .home-page .post-summary {
    padding: 12px 13px;
    border-radius: 14px;
  }
}

/* 图片标题字号再抬一点，主页/导语/正文统一更清楚。 */
.post-summary .jiuwei-figure figcaption,
.article-summary .jiuwei-figure figcaption,
.article-content .jiuwei-figure figcaption {
  margin-top: 11px;
  font-size: 15px;
  line-height: 1.78;
  letter-spacing: .035em;
}
@media (max-width: 640px) {
  .post-summary .jiuwei-figure figcaption,
  .article-summary .jiuwei-figure figcaption,
  .article-content .jiuwei-figure figcaption {
    font-size: 14px;
    line-height: 1.72;
  }
}

/* 导语“引”字改到顶层，允许压在图片之上，更像版式装饰；透明度更低。 */
.article-summary::before {
  top: 10px;
  left: 14px;
  font-size: 96px;
  color: rgba(171, 123, 141, .09);
  z-index: 3;
}
.article-summary > * {
  position: relative;
  z-index: 1;
}
html[data-theme="dark"] .article-summary::before {
  color: rgba(223, 181, 197, .075);
}
@media (max-width: 640px) {
  .article-summary::before {
    top: 8px;
    left: 10px;
    font-size: 68px;
  }
}

/* =========================================================
   V83：首页卡片只保留一层外框；摘要不再套第二层框
   ========================================================= */
.home-page .post-summary {
  margin-top: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
html[data-theme="dark"] .home-page .post-summary {
  border: 0;
  background: transparent;
  box-shadow: none;
}

/* 卡片已有外框后，标题下方分隔线也再淡一点，避免“框 + 线 + 框”的层级过多。 */
.post-list.layout-single .post-card h2 {
  border-bottom-color: rgba(145,112,124,.10);
}
html[data-theme="dark"] .post-list.layout-single .post-card h2 {
  border-bottom-color: rgba(223,194,205,.08);
}

/* =========================================================
   V84：导语“引”字移到右侧；歌曲标题颜色加重
   ========================================================= */

/* 导语装饰字改到右侧，更像角标印记。 */
.article-summary::before {
  left: auto;
  right: 18px;
  top: 12px;
  text-align: right;
}

@media (max-width: 640px) {
  .article-summary::before {
    left: auto;
    right: 10px;
    top: 8px;
  }
}

/* 歌曲标题更明显一点，和副信息拉开层级。 */
.global-music-now strong,
.global-music-panel-v16 .global-music-now strong,
.global-music-playlist-text strong,
.global-music-enable-text {
  color: #76535f;
  font-weight: 600;
}

html[data-theme="dark"] .global-music-now strong,
html[data-theme="dark"] .global-music-panel-v16 .global-music-now strong,
html[data-theme="dark"] .global-music-playlist-text strong,
html[data-theme="dark"] .global-music-enable-text {
  color: #f0e4e8;
}

.global-music-now span,
.global-music-panel-v16 .global-music-now span {
  color: #9a868f;
}

html[data-theme="dark"] .global-music-now span,
html[data-theme="dark"] .global-music-panel-v16 .global-music-now span,
html[data-theme="dark"] .global-music-hint {
  color: #b39ea6;
}

/* =========================================================
   V85：正文普通段落也加入滚动淡入
   - 特殊内容（图片、标题、引用、音乐）继续保留原动画
   - 普通 p / 列表 / pre / table 使用更轻的上浮淡入，避免过度抢眼
   ========================================================= */
html.motion-v54 .v54-reveal--text {
  transform: translate3d(0, 14px, 0);
  transition-duration: .62s, .74s;
}

@media (max-width: 640px) {
  html.motion-v54 .v54-reveal--text {
    transform: translate3d(0, 10px, 0);
    transition-duration: .56s, .66s;
  }
}

/* =========================================================
   V87：Markdown 分割线减淡 / 悬浮编辑按钮
   ========================================================= */

/* Markdown 的 --- / *** 分割线：保留节奏，但不再像一条白色粗线抢眼。 */
.article-content hr {
  height: 1px;
  margin: 46px 0;
  border: 0 !important;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(112, 88, 97, .11) 10%,
    rgba(112, 88, 97, .18) 50%,
    rgba(112, 88, 97, .11) 90%,
    transparent 100%);
}
html[data-theme="dark"] .article-content hr {
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(229, 207, 215, .08) 10%,
    rgba(229, 207, 215, .15) 50%,
    rgba(229, 207, 215, .08) 90%,
    transparent 100%);
}
@media (max-width: 640px) {
  .article-content hr { margin: 38px 0; }
}

/* 编辑本文移入右下悬浮工具组，用一个轻量铅笔按钮表示。 */
.page-jump-edit {
  color: #9a7180;
}
html[data-theme="dark"] .page-jump-edit {
  color: #e0bac8;
}

/* =========================================================
   V88：详情页摘要文字居中
   ========================================================= */
.article-summary,
.article-summary > p,
.article-summary > div:not(.jiuwei-figure),
.article-summary > blockquote,
.article-summary > h1,
.article-summary > h2,
.article-summary > h3,
.article-summary > h4,
.article-summary > h5,
.article-summary > h6 {
  text-align: center !important;
}

/* 摘要已经有外框，居中的 Markdown 引用不再保留左侧竖线。 */
.article-summary > blockquote {
  padding-left: 0;
  border-left: 0;
}

/* =========================================================
   V92：大图灯箱升级 —— 原图 1:1 / 滚轮缩放 / 鼠标与触摸拖拽查看长图
   ========================================================= */
.lightbox-stage{
  width:min(1200px,calc(100vw - 160px));
  height:calc(100vh - 90px);
  max-width:none;
  max-height:none;
  min-width:0;
  min-height:0;
}
.lightbox-viewport{
  position:relative;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  min-height:0;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:6px;
}
.lightbox-image{
  max-width:100%;
  max-height:100%;
  touch-action:none;
  user-select:none;
  -webkit-user-drag:none;
  transform-origin:center center;
  transition:opacity .16s ease;
}
.lightbox-image.is-zoomed{cursor:grab}
.lightbox-image.is-dragging{cursor:grabbing!important}
.lightbox-image.is-changing{opacity:.45}
.lightbox-caption{
  flex:none;
  margin-top:10px;
}
.lightbox-zoom-tools{
  position:absolute;
  right:20px;
  bottom:17px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(28,23,26,.48);
}
.lightbox-zoom-tools button{
  min-width:34px;
  height:30px;
  padding:0 9px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:rgba(255,255,255,.78);
  font-size:12px;
  line-height:30px;
  cursor:pointer;
}
.lightbox-zoom-tools button:hover,
.lightbox-zoom-tools button.is-active{
  background:rgba(255,255,255,.13);
  color:#fff;
}
.lightbox-zoom-hint{
  right:auto;
  left:22px;
  bottom:20px;
}
@media(max-width:760px){
  .lightbox-stage{
    width:100%;
    height:calc(100vh - 106px);
  }
  .lightbox-viewport{border-radius:4px}
  .lightbox-zoom-tools{
    right:10px;
    bottom:10px;
    gap:3px;
    padding:4px;
  }
  .lightbox-zoom-tools button{
    min-width:31px;
    height:29px;
    padding:0 7px;
    line-height:29px;
  }
  .lightbox-zoom-hint{
    left:10px;
    bottom:14px;
    max-width:42vw;
    font-size:10px;
  }
  .lightbox-counter{bottom:48px}
}

/* =========================================================
   V93：灯箱默认即显示抓手光标
   ========================================================= */
.lightbox-image,
.lightbox-image.is-zoomed {
  cursor: grab;
}
.lightbox-image:active,
.lightbox-image.is-dragging {
  cursor: grabbing !important;
}

/* =========================================================
   V94：取消引言右上角“引”字装饰
   ========================================================= */
.article-summary::before {
  content: none !important;
  display: none !important;
}

/* =========================================================
   V95：分享功能统一使用汇文明朝体
   - 分享弹窗 / 操作按钮 / 图片预览提示统一字体气质
   - 生成的分享卡片由 JS Canvas 同步使用该字体
   ========================================================= */
.share-dialog,
.share-dialog button,
.share-dialog input,
.share-dialog textarea,
.share-dialog select,
.share-dialog-head h2,
.share-dialog-kicker,
.share-scope-switch button,
.share-card-loading,
.share-action,
.share-action strong,
.share-action small,
.share-dialog-note,
.share-image-viewer-panel,
.share-image-viewer-panel button,
.share-image-viewer-head span,
.share-image-viewer-head strong,
.share-image-viewer-panel > p,
.share-toast {
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif !important;
}

.share-dialog-head h2 {
  font-weight: 400;
  letter-spacing: .065em;
}
.share-dialog-kicker,
.share-image-viewer-head span {
  letter-spacing: .16em;
}
.share-action strong {
  font-weight: 400;
  font-size: 15px;
  letter-spacing: .035em;
}
.share-action small,
.share-dialog-note,
.share-image-viewer-panel > p {
  letter-spacing: .025em;
}

/* =========================================================
   V97：微博页每页 50 条分页
   ========================================================= */
.weibo-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:28px 4px 8px;
  color:#9e8991;
  font-size:12px;
}
.weibo-pagination a{color:#a67989;text-decoration:none;transition:color .2s ease,transform .2s ease}
.weibo-pagination a:hover{color:#865f6e;transform:translateY(-1px)}
.weibo-pagination-current{min-width:54px;text-align:center;letter-spacing:.08em}
.weibo-pagination .is-disabled{opacity:.38}
html[data-theme="dark"] .weibo-pagination{color:#a9939b}
html[data-theme="dark"] .weibo-pagination a{color:#d0a5b5}
@media(max-width:640px){.weibo-pagination{gap:16px;padding-top:22px}}

/* =========================================================
   V98：正文图片主题色边框
   - 所有文章正文图片统一增加接近页面背景色的柔和边框
   - 浅色 / 深色主题分别适配，不影响摘要、首页和微博图片
   ========================================================= */
:root {
  --article-image-frame: rgba(246, 237, 241, .96);
  --article-image-frame-line: rgba(151, 116, 130, .12);
  --article-image-frame-shadow: rgba(91, 61, 73, .055);
}

html[data-theme="dark"] {
  --article-image-frame: rgba(44, 35, 40, .96);
  --article-image-frame-line: rgba(224, 198, 208, .10);
  --article-image-frame-shadow: rgba(0, 0, 0, .18);
}

.article-content img {
  border: 5px solid var(--article-image-frame);
  border-radius: 8px;
  box-shadow:
    0 0 0 1px var(--article-image-frame-line),
    0 12px 34px var(--article-image-frame-shadow);
}

/* 灯箱中的原图不继承正文装饰边框。 */
.image-lightbox .lightbox-image {
  border: 0;
  box-shadow: none;
}

@media (max-width: 640px) {
  .article-content img {
    border-width: 4px;
    border-radius: 7px;
    box-shadow:
      0 0 0 1px var(--article-image-frame-line),
      0 9px 26px var(--article-image-frame-shadow);
  }
}

/* =========================================================
   V99：微博分页重新设计
   - 从普通文字链接改成和微博时间线一致的柔和胶囊式分页器
   ========================================================= */
.weibo-pagination {
  width: fit-content;
  max-width: 100%;
  margin: 34px auto 8px;
  padding: 6px;
  display: grid;
  grid-template-columns: minmax(108px, auto) auto minmax(108px, auto);
  align-items: stretch;
  gap: 6px;
  border: 1px solid rgba(151, 116, 129, .16);
  border-radius: 999px;
  background: rgba(255, 252, 253, .42);
  box-shadow: 0 14px 34px rgba(83, 56, 67, .055);
  color: #917d85;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 12px;
}

.weibo-page-control {
  min-height: 46px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #8c6a77;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.weibo-page-control:not(.is-disabled):hover {
  border-color: rgba(168, 122, 140, .17);
  background: rgba(186, 137, 155, .09);
  color: #75515f;
  transform: translateY(-1px);
}

.weibo-page-arrow {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(164, 123, 138, .16);
  border-radius: 50%;
  background: rgba(255,255,255,.36);
  color: #a07182;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  line-height: 1;
  transition: transform .2s ease;
}

.weibo-page-control.is-prev:not(.is-disabled):hover .weibo-page-arrow { transform: translateX(-2px); }
.weibo-page-control.is-next:not(.is-disabled):hover .weibo-page-arrow { transform: translateX(2px); }

.weibo-pagination-current {
  min-width: 98px;
  padding: 5px 13px 4px;
  display: grid;
  grid-template-columns: auto auto auto;
  grid-template-rows: auto auto;
  align-items: baseline;
  justify-content: center;
  column-gap: 7px;
  border-radius: 999px;
  background: rgba(166, 116, 135, .075);
  text-align: center;
  letter-spacing: 0;
}

.weibo-pagination-current small {
  grid-column: 1 / -1;
  align-self: end;
  margin-bottom: 1px;
  color: #b0939e;
  font-size: 8px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .18em;
}

.weibo-pagination-current strong {
  color: #795865;
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", serif;
  font-size: 19px;
  font-weight: 400;
  line-height: 1.05;
}

.weibo-pagination-current i,
.weibo-pagination-current > span {
  color: #aa929b;
  font-size: 10px;
  font-style: normal;
  line-height: 1;
}

.weibo-pagination .is-disabled {
  opacity: .28;
  cursor: default;
  user-select: none;
}

html[data-theme="dark"] .weibo-pagination {
  border-color: rgba(224, 195, 206, .11);
  background: rgba(48, 38, 43, .58);
  box-shadow: 0 16px 38px rgba(0,0,0,.16);
}
html[data-theme="dark"] .weibo-page-control { color: #c8abb6; }
html[data-theme="dark"] .weibo-page-control:not(.is-disabled):hover {
  border-color: rgba(221, 180, 196, .12);
  background: rgba(207, 158, 177, .085);
  color: #ead8df;
}
html[data-theme="dark"] .weibo-page-arrow {
  border-color: rgba(221, 184, 198, .12);
  background: rgba(255,255,255,.025);
  color: #d3a8b8;
}
html[data-theme="dark"] .weibo-pagination-current { background: rgba(191, 137, 158, .09); }
html[data-theme="dark"] .weibo-pagination-current small { color: #a98d98; }
html[data-theme="dark"] .weibo-pagination-current strong { color: #eadbe0; }
html[data-theme="dark"] .weibo-pagination-current i,
html[data-theme="dark"] .weibo-pagination-current > span { color: #ad959e; }

@media (max-width: 640px) {
  .weibo-pagination {
    width: calc(100% - 24px);
    margin-top: 26px;
    grid-template-columns: 50px minmax(82px, auto) 50px;
    justify-content: center;
    border-radius: 22px;
  }
  .weibo-page-control {
    min-height: 44px;
    padding: 0;
  }
  .weibo-page-label { display: none; }
  .weibo-page-arrow { width: 32px; height: 32px; }
  .weibo-pagination-current { min-width: 84px; padding-left: 10px; padding-right: 10px; }
}

/* =========================================================
   V101：顶部工具栏滚动收起 + 手机灯箱双指缩放
   ========================================================= */
.front-toolbar {
  transition:
    transform .28s cubic-bezier(.22,.7,.24,1),
    opacity .22s ease,
    visibility .22s ease,
    background-color .2s ease,
    box-shadow .2s ease;
  will-change: transform, opacity;
}
.front-toolbar.is-scroll-hidden {
  transform: translate3d(0, calc(-100% - 32px), 0);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* 手机端由 Pointer Events 接管图片手势：单指拖动、双指缩放都不触发页面滚动。 */
.image-lightbox .lightbox-viewport,
.image-lightbox .lightbox-image {
  touch-action: none;
  overscroll-behavior: contain;
}

@media (prefers-reduced-motion: reduce) {
  .front-toolbar {
    transition: none !important;
  }
}

/* =========================================================
   V102：顶部导航固定在页面顶部文档流 + 精简导航 + 手机侧栏补齐
   ========================================================= */

/* 顶部导航不再 fixed / sticky，也不随滚动变化。它就是页面顶部的一部分。 */
.front-toolbar {
  position: static;
  top: auto;
  right: auto;
  z-index: auto;
  align-self: flex-end;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 10px auto;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  will-change: auto;
  transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 8px 24px rgba(71, 47, 57, .045);
}
.front-toolbar.is-scroll-hidden {
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
html[data-theme="dark"] .front-toolbar {
  box-shadow: 0 9px 28px rgba(0,0,0,.12);
}

@media (max-width: 640px) {
  .front-toolbar {
    position: static;
    top: auto;
    right: auto;
    align-self: flex-end;
    margin: 0 0 8px auto;
    max-width: 100%;
    overflow: visible;
    padding: 5px;
    gap: 5px;
  }
  .front-toolbar .front-tool-button,
  .front-toolbar .front-share-button,
  .front-toolbar .theme-toggle,
  .front-toolbar .admin-entry {
    width: 33px;
    min-width: 33px;
    height: 33px;
    min-height: 33px;
  }

  /* 手机侧栏现在承担全站快速导航，稍微抬高一点避免贴底。 */
  .page-jump-controls {
    right: 11px;
    bottom: 18px;
    gap: 7px;
  }
}

/* =========================================================
   V103：主题切换图标视觉居中
   - 不再使用字体里的太阳/月亮字符，避免不同字体基线导致偏移
   - 改成同一 24x24 viewBox 的 SVG，几何中心完全一致
   ========================================================= */
.theme-toggle-icon {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  line-height: 0;
}
.theme-toggle-icon .theme-icon {
  display: block;
  width: 18px;
  height: 18px;
  overflow: visible;
}
.theme-toggle-icon .theme-icon-sun { display: none; }
html[data-theme="dark"] .theme-toggle-icon .theme-icon-moon { display: none; }
html[data-theme="dark"] .theme-toggle-icon .theme-icon-sun { display: block; }

/* 图标型圆按钮中锁死到按钮几何中心，避免旧规则的字体 baseline 参与布局。 */
.front-toolbar .theme-toggle {
  justify-content: center;
}
@media (max-width: 640px) {
  .front-toolbar .theme-toggle-icon {
    flex-basis: 17px;
    width: 17px;
    height: 17px;
  }
  .front-toolbar .theme-toggle-icon .theme-icon {
    width: 17px;
    height: 17px;
  }
}

/* =========================================================
   V105：音乐音量滑杆前增加小喇叭图标
   ========================================================= */
.global-music-volume-icon {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  color: #9a7482;
}
.global-music-volume-icon svg {
  display: block;
  width: 16px;
  height: 16px;
}
html[data-theme="dark"] .global-music-volume-icon {
  color: #c9a7b4;
}


/* =========================================================
   V106：播放器进度条 / 音量条视觉层级统一
   - 播放进度略粗于音量条，突出当前播放位置
   - 两个滑杆统一圆角、滑块尺寸与主题色
   ========================================================= */
.global-music-progress::-webkit-slider-runnable-track {
  height: 5px;
}
.global-music-progress::-webkit-slider-thumb {
  width: 13px;
  height: 13px;
  margin-top: -4px;
}
.global-music-progress::-moz-range-track,
.global-music-progress::-moz-range-progress {
  height: 5px;
}
.global-music-progress::-moz-range-thumb {
  width: 11px;
  height: 11px;
}

/* 音量条不再使用浏览器默认 range 外观，避免看起来比进度条更粗。 */
.global-music-volume input[type="range"] {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  height: 14px;
  margin: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  accent-color: #a97789;
}
.global-music-volume input[type="range"]::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: rgba(168, 132, 145, .34);
}
.global-music-volume input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  margin-top: -4px;
  border: 1px solid rgba(255, 249, 251, .72);
  border-radius: 50%;
  background: #a87889;
  box-shadow: 0 1px 5px rgba(95, 65, 76, .18);
}
.global-music-volume input[type="range"]::-moz-range-track {
  height: 4px;
  border-radius: 999px;
  background: rgba(168, 132, 145, .34);
}
.global-music-volume input[type="range"]::-moz-range-progress {
  height: 4px;
  border-radius: 999px;
  background: #b68496;
}
.global-music-volume input[type="range"]::-moz-range-thumb {
  width: 10px;
  height: 10px;
  border: 1px solid rgba(255, 249, 251, .72);
  border-radius: 50%;
  background: #a87889;
  box-shadow: 0 1px 5px rgba(95, 65, 76, .18);
}
html[data-theme="dark"] .global-music-volume input[type="range"]::-webkit-slider-runnable-track {
  background: rgba(204, 167, 181, .26);
}
html[data-theme="dark"] .global-music-volume input[type="range"]::-moz-range-track {
  background: rgba(204, 167, 181, .26);
}

/* =========================================================
   V107：首页个人签名统一使用汇文明朝体
   ========================================================= */
.tagline {
  font-family: "Jiuwei Huiwen Mingchao", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif !important;
  font-weight: 400;
}


/* =========================================================
   V110：分享移入右侧快捷栏；主页也显示完整快捷导航
   ========================================================= */
.page-jump-share {
  color: #866b75;
}
html[data-theme="dark"] .page-jump-share {
  color: #d8c2ca;
}

/* 顶部工具栏移除分享后更简洁；右侧快捷栏承担分享 / 顶部 / 底部。 */
.page-jump-controls {
  max-height: calc(100vh - 36px);
}


/* =========================================================
   V114：微博评论 / 本站留言 / 本站喜欢
   ========================================================= */
.weibo-entry-counts{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.weibo-entry-counts button{font:inherit}
.weibo-discussion-toggle,.weibo-local-like{
  display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border:0;border-radius:999px;background:transparent;color:#a18b94;cursor:pointer;transition:.18s ease;
}
.weibo-discussion-toggle:hover,.weibo-local-like:hover{background:rgba(159,113,130,.07);color:#906d7a}
.weibo-discussion-toggle b,.weibo-local-like b{font-weight:500}
.weibo-discussion-toggle em{font-style:normal;color:#b2929e}
.weibo-local-like.is-liked{color:#a9677d;background:rgba(180,104,130,.075)}
.weibo-local-like.is-liked span{transform:scale(1.05)}
.weibo-local-like.is-like-error{animation:weibo-like-shake .28s ease 2}
@keyframes weibo-like-shake{0%,100%{transform:translateX(0)}50%{transform:translateX(2px)}}
.weibo-discussion{
  margin-top:18px;padding:18px;border:1px solid rgba(150,111,126,.12);border-radius:16px;background:rgba(164,121,137,.035);
}
.weibo-discussion[hidden]{display:none!important}
.weibo-discussion-column + .weibo-discussion-column{margin-top:20px;padding-top:20px;border-top:1px dashed rgba(145,108,121,.13)}
.weibo-discussion-column > header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.weibo-discussion-column > header strong{color:#725e66;font-family:"Jiuwei Huiwen Mingchao","Songti SC",serif;font-size:15px;font-weight:400;letter-spacing:.04em}
.weibo-discussion-column > header strong span{color:#aa8e99;font-size:11px}
.weibo-discussion-column > header button{padding:3px 0;border:0;background:transparent;color:#ac8b98;font-size:9.5px;cursor:pointer}
.weibo-discussion-column > header button:hover{text-decoration:underline;text-underline-offset:3px}
.weibo-discussion-status{margin:5px 0 10px;color:#b09ca4;font-size:10px;line-height:1.6}
.weibo-discussion-status.is-error{color:#aa747f}
.weibo-remote-comment{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px dashed rgba(145,108,121,.10)}
.weibo-remote-comment:last-child{border-bottom:0}
.weibo-remote-comment-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(175,132,148,.10);color:#987887;font-family:"Jiuwei Huiwen Mingchao","Songti SC",serif;font-size:13px}
.weibo-remote-comment-main header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.weibo-remote-comment-main header strong{color:#806872;font-size:11px;font-weight:600}
.weibo-remote-comment-main header time,.weibo-remote-comment-main header span{color:#b29ba4;font-size:9px}
.weibo-remote-comment-main p{margin:0;color:#77656c;font-size:12px;line-height:1.78;word-break:break-word}
.weibo-remote-reply{margin-top:7px;padding:7px 9px;border-radius:8px;background:rgba(160,121,136,.045);color:#8a747c;font-size:10.5px;line-height:1.65}
.weibo-remote-reply strong{color:#977482;font-weight:600}
.weibo-comments-more{display:inline-block;margin-top:9px;color:#a67f8d;font-size:9.5px;text-decoration:none}
.weibo-local-comment-list .comment-item{padding:14px 0;grid-template-columns:36px minmax(0,1fr);gap:11px}
.weibo-local-comment-list .comment-avatar{width:36px;height:36px;font-size:14px}
.weibo-local-empty{margin:8px 0 14px;color:#ae969f;font-size:10.5px}
.weibo-local-comment-form{margin-top:13px;padding:13px;border:1px solid rgba(145,108,121,.10);border-radius:13px;background:rgba(255,255,255,.24)}
.weibo-comment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.weibo-local-comment-form input,.weibo-local-comment-form textarea{box-sizing:border-box;width:100%;border:1px solid rgba(145,108,121,.13);border-radius:9px;background:rgba(255,255,255,.52);color:#725f66;outline:none;font:11px/1.5 "PingFang SC","Microsoft YaHei",sans-serif}
.weibo-local-comment-form input{height:36px;padding:0 10px}.weibo-local-comment-form textarea{display:block;min-height:78px;margin-top:8px;padding:9px 10px;resize:vertical}
.weibo-local-comment-form input:focus,.weibo-local-comment-form textarea:focus{border-color:rgba(173,124,143,.30);box-shadow:0 0 0 3px rgba(171,121,139,.05)}
.weibo-comment-form-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.weibo-comment-captcha{display:flex;align-items:center;gap:6px;min-width:0}.weibo-comment-captcha input{width:74px}.weibo-comment-captcha img{width:112px;height:36px;border-radius:8px;cursor:pointer}.weibo-comment-captcha button{padding:4px 2px;border:0;background:transparent;color:#a38490;font-size:9px;cursor:pointer;white-space:nowrap}
.weibo-comment-submit{flex:none;padding:8px 13px;border:0;border-radius:999px;background:#aa7d8d;color:#fff;font-size:10px;cursor:pointer}.weibo-comment-submit:hover{background:#986a7a}.weibo-comment-submit:disabled{opacity:.55;cursor:wait}
.weibo-comment-live-flash{margin:8px 0;padding:8px 10px;border-radius:9px;font-size:10px;line-height:1.55}.weibo-comment-live-flash.is-success{background:rgba(116,157,131,.07);color:#658472}.weibo-comment-live-flash.is-error{background:rgba(180,104,112,.07);color:#9b6068}
html[data-theme="dark"] .weibo-discussion{border-color:rgba(222,190,202,.09);background:rgba(255,255,255,.018)}
html[data-theme="dark"] .weibo-discussion-column + .weibo-discussion-column{border-color:rgba(222,190,202,.075)}
html[data-theme="dark"] .weibo-discussion-column > header strong{color:#d5c3ca}html[data-theme="dark"] .weibo-remote-comment-main header strong{color:#cdb4bd}html[data-theme="dark"] .weibo-remote-comment-main p{color:#bfaeb4}html[data-theme="dark"] .weibo-remote-comment-avatar{background:rgba(255,255,255,.04);color:#cfadb9}
html[data-theme="dark"] .weibo-local-comment-form{border-color:rgba(222,190,202,.08);background:rgba(255,255,255,.014)}html[data-theme="dark"] .weibo-local-comment-form input,html[data-theme="dark"] .weibo-local-comment-form textarea{border-color:rgba(222,190,202,.09);background:rgba(28,23,26,.38);color:#d7c8ce}
@media(max-width:640px){
  .weibo-entry-counts{gap:4px 6px}.weibo-discussion{margin-top:14px;padding:13px;border-radius:13px}.weibo-discussion-column + .weibo-discussion-column{margin-top:16px;padding-top:16px}.weibo-comment-fields{grid-template-columns:1fr}.weibo-comment-form-bottom{align-items:stretch;flex-direction:column}.weibo-comment-captcha{display:grid;grid-template-columns:72px 112px auto;width:100%}.weibo-comment-submit{width:100%;padding:9px 12px}.weibo-remote-comment{grid-template-columns:31px minmax(0,1fr);gap:9px}.weibo-remote-comment-avatar{width:31px;height:31px}.weibo-local-comment-form{padding:11px}
}


/* =========================================================
   V115：顶部导航整体居中
   ========================================================= */
.front-toolbar {
  align-self: center;
  margin: 0 auto 10px;
}

@media (max-width: 640px) {
  .front-toolbar {
    align-self: center;
    margin: 0 auto 8px;
  }
}


/* =========================================================
   V122：正文逐行阅读高亮
   ========================================================= */
.article-content {
  position: relative;
  isolation: isolate;
}

.reading-line-highlight {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 0;
  height: 0;
  border-radius: 7px;
  background: rgba(177, 126, 146, .075);
  opacity: 0;
  pointer-events: none;
  will-change: transform, width, height, opacity;
  transition:
    transform 145ms cubic-bezier(.22,.75,.25,1),
    width 145ms cubic-bezier(.22,.75,.25,1),
    height 145ms cubic-bezier(.22,.75,.25,1),
    opacity 165ms ease;
}

.reading-line-highlight.is-visible {
  opacity: 1;
}

html[data-theme="dark"] .reading-line-highlight {
  background: rgba(221, 178, 195, .105);
}

/* 触摸设备没有 hover，不显示任何阅读高亮。 */
@media (hover: none), (pointer: coarse) {
  .reading-line-highlight {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reading-line-highlight {
    transition: opacity 80ms linear;
  }
}


/* =========================================================
   V124：播放器音量条右边界与播放进度条对齐
   播放进度行右侧有 34px 时间列 + 8px 间距；
   音量控制预留同样的 42px，让两个滑杆视觉右端一致。
   ========================================================= */
.global-music-volume {
  margin-right: 42px;
}


/* =========================================================
   V140：正文图片编辑器尺寸在前台保持一致
   ========================================================= */
.article-content img[width] {
  max-width: 100%;
  height: auto;
}
/* HTML width 属性负责保持编辑器里保存的显示宽度；
   max-width:100% 只负责在手机窄屏继续缩小，避免溢出。 */


/* =========================================================
   V143：文章正文底部 · 分享到微博
   ========================================================= */
.article-bottom-share {
  display:flex;
  justify-content:flex-end;
  margin:-10px 0 26px;
  padding:0 2px;
}
.article-weibo-share {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 2px;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
  text-decoration:none;
  opacity:.62;
  transition:opacity .18s ease, color .18s ease, transform .18s ease;
}
.article-weibo-share:hover {
  color:var(--text);
  opacity:.92;
  transform:translateY(-1px);
}
.article-weibo-share > span:first-child {
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:11px;
  opacity:.72;
}
@media(max-width:640px) {
  .article-bottom-share {
    margin:-6px 0 22px;
  }
  .article-weibo-share {
    font-size:11px;
  }
}


/* =========================================================
   V145：正文底部微博分享入口 · 移动端颜色固定
   ========================================================= */
.article-bottom-share .article-weibo-share,
.article-bottom-share .article-weibo-share:link,
.article-bottom-share .article-weibo-share:visited,
.article-bottom-share .article-weibo-share:active {
  color: var(--muted);
  text-decoration: none;
  -webkit-text-decoration: none;
  -webkit-tap-highlight-color: rgba(154, 136, 142, .08);
}
.article-bottom-share .article-weibo-share:hover,
.article-bottom-share .article-weibo-share:focus-visible {
  color: var(--ink);
  text-decoration: none;
}
html[data-theme="dark"] .article-bottom-share .article-weibo-share,
html[data-theme="dark"] .article-bottom-share .article-weibo-share:link,
html[data-theme="dark"] .article-bottom-share .article-weibo-share:visited,
html[data-theme="dark"] .article-bottom-share .article-weibo-share:active {
  color: var(--muted);
}


/* =========================================================
   V146：首页“那年今日”和下方文章列表增加呼吸空间
   ========================================================= */
.home-page .on-this-day-card {
  margin-bottom: 30px;
}

@media (max-width: 760px) {
  .home-page .on-this-day-card {
    margin-bottom: 22px;
  }
}


/* =========================================================
   V147：首页 + 微博统一分页
   首页 / 上一页 / 数字页码 / 下一页 / 尾页 + 精确跳页
   ========================================================= */
.pagination.page-pagination,
.weibo-pagination.page-pagination {
  width: min(760px, calc(100% - 24px));
  max-width: 100%;
  margin: 34px auto 54px;
  padding: 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 9px 12px;
  border: 1px solid rgba(151, 116, 129, .15);
  border-radius: 24px;
  background: rgba(255, 252, 253, .42);
  box-shadow: 0 13px 34px rgba(83, 56, 67, .045);
  color: #917d85;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 12px;
}

.home-pagination.page-pagination {
  margin-top: -8px;
}

.page-pagination-main {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.page-pagination a {
  text-decoration: none;
}

.page-pagination-edge,
.page-pagination-arrow,
.page-pagination-number {
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  background: transparent;
  color: #8b6d78;
  transition:
    background .18s ease,
    border-color .18s ease,
    color .18s ease,
    transform .18s ease;
}

.page-pagination-edge {
  min-width: 48px;
  padding: 0 10px;
  border-radius: 12px;
}

.page-pagination-arrow,
.page-pagination-number {
  width: 36px;
  flex: 0 0 36px;
  border-radius: 50%;
}

.page-pagination-arrow {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
}

.page-pagination-number {
  font-size: 12px;
}

.page-pagination a.page-pagination-edge:hover,
.page-pagination a.page-pagination-arrow:hover,
.page-pagination a.page-pagination-number:hover {
  border-color: rgba(168, 122, 140, .16);
  background: rgba(186, 137, 155, .085);
  color: #714f5c;
  transform: translateY(-1px);
}

.page-pagination-number.is-current {
  border-color: rgba(168, 122, 140, .12);
  background: rgba(166, 116, 135, .12);
  color: #765360;
  font-weight: 600;
}

.page-pagination .is-disabled {
  opacity: .27;
  cursor: default;
  user-select: none;
}

.page-pagination-numbers {
  display: flex;
  align-items: center;
  gap: 3px;
}

.page-pagination-ellipsis {
  width: 22px;
  text-align: center;
  color: #b09ba3;
  user-select: none;
}

.page-pagination-meta {
  padding: 0 5px;
  color: #a18d95;
  font-size: 10px;
  white-space: nowrap;
}

.page-pagination-jump {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding-left: 11px;
  border-left: 1px solid rgba(151, 116, 129, .12);
}

.page-pagination-jump label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #9a858d;
  white-space: nowrap;
}

.page-pagination-jump input {
  width: 54px;
  height: 34px;
  padding: 0 6px;
  border: 1px solid rgba(151, 116, 129, .16);
  border-radius: 10px;
  outline: none;
  background: rgba(255,255,255,.5);
  color: #715761;
  font: inherit;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
}

.page-pagination-jump input::-webkit-inner-spin-button,
.page-pagination-jump input::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.page-pagination-jump input:focus {
  border-color: rgba(164, 116, 135, .34);
  box-shadow: 0 0 0 3px rgba(174, 126, 144, .07);
}

.page-pagination-jump button {
  height: 34px;
  padding: 0 11px;
  border: 1px solid rgba(151, 116, 129, .15);
  border-radius: 10px;
  background: rgba(166, 116, 135, .085);
  color: #82616e;
  font: inherit;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.page-pagination-jump button:hover {
  background: rgba(166, 116, 135, .14);
  color: #6d4b58;
  transform: translateY(-1px);
}

html[data-theme="dark"] .pagination.page-pagination,
html[data-theme="dark"] .weibo-pagination.page-pagination {
  border-color: rgba(224, 195, 206, .1);
  background: rgba(48, 38, 43, .55);
  box-shadow: 0 15px 36px rgba(0,0,0,.14);
  color: #aa969e;
}

html[data-theme="dark"] .page-pagination-edge,
html[data-theme="dark"] .page-pagination-arrow,
html[data-theme="dark"] .page-pagination-number {
  color: #c8adb7;
}

html[data-theme="dark"] .page-pagination a.page-pagination-edge:hover,
html[data-theme="dark"] .page-pagination a.page-pagination-arrow:hover,
html[data-theme="dark"] .page-pagination a.page-pagination-number:hover {
  border-color: rgba(221, 180, 196, .12);
  background: rgba(207, 158, 177, .08);
  color: #ead9df;
}

html[data-theme="dark"] .page-pagination-number.is-current {
  border-color: rgba(221, 180, 196, .09);
  background: rgba(191, 137, 158, .12);
  color: #eadbe0;
}

html[data-theme="dark"] .page-pagination-ellipsis,
html[data-theme="dark"] .page-pagination-meta,
html[data-theme="dark"] .page-pagination-jump label {
  color: #a79199;
}

html[data-theme="dark"] .page-pagination-jump {
  border-left-color: rgba(224, 195, 206, .09);
}

html[data-theme="dark"] .page-pagination-jump input {
  border-color: rgba(224, 195, 206, .11);
  background: rgba(255,255,255,.025);
  color: #e1d0d6;
}

html[data-theme="dark"] .page-pagination-jump button {
  border-color: rgba(224, 195, 206, .1);
  background: rgba(207, 158, 177, .07);
  color: #cfadb9;
}

@media (max-width: 680px) {
  .pagination.page-pagination,
  .weibo-pagination.page-pagination {
    width: calc(100% - 18px);
    margin-top: 24px;
    margin-bottom: 38px;
    padding: 9px 7px 10px;
    border-radius: 20px;
    gap: 8px;
  }

  .home-pagination.page-pagination {
    margin-top: 4px;
  }

  .page-pagination-main {
    width: 100%;
    gap: 3px;
  }

  .page-pagination-edge {
    min-width: 40px;
    height: 34px;
    padding: 0 7px;
    font-size: 11px;
  }

  .page-pagination-arrow,
  .page-pagination-number {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
  }

  .page-pagination-ellipsis {
    width: 14px;
  }

  .page-pagination-numbers .page-pagination-number:nth-of-type(2),
  .page-pagination-numbers .page-pagination-number:nth-last-of-type(2) {
    /* 小屏仍保留完整的当前页附近窗口，避免过度隐藏。 */
  }

  .page-pagination-meta {
    display: none;
  }

  .page-pagination-jump {
    width: auto;
    padding-left: 0;
    border-left: 0;
  }

  .page-pagination-jump input {
    width: 48px;
  }
}

@media (max-width: 430px) {
  .page-pagination-main {
    flex-wrap: wrap;
  }

  .page-pagination-numbers {
    order: 3;
    width: 100%;
    justify-content: center;
    margin-top: 2px;
  }

  .page-pagination-jump {
    width: 100%;
    justify-content: center;
  }
}


/* =========================================================
   V148：微博文本表情
   ========================================================= */
.weibo-inline-emoji {
  display: inline-block;
  margin: 0 .04em;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
  font-size: 1.05em;
  line-height: 1;
  vertical-align: -.08em;
}


/* =========================================================
   V151：微博原生自定义表情
   ========================================================= */
.weibo-inline-face {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin: 0 .04em;
  object-fit: contain;
  vertical-align: -.22em;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}


/* =========================================================
   V155：文章 / 微博本站留言 · 嵌套回复
   ========================================================= */
.comment-thread {
  margin-top: 10px;
}
.thread-root-actions,
.thread-reply-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:7px;
}
.thread-compose {
  display:inline-block;
}
.thread-compose > summary {
  list-style:none;
  cursor:pointer;
  color:#a1848f;
  font:11px/1.5 "PingFang SC","Microsoft YaHei",sans-serif;
  user-select:none;
}
.thread-compose > summary::-webkit-details-marker { display:none; }
.thread-compose > summary:hover { color:#765865; }
.thread-owner-compose > summary { color:#9b7181; }

.thread-reply-form,
.thread-owner-compose form {
  width:min(560px, calc(100vw - 54px));
  margin-top:8px;
  padding:10px;
  border:1px solid rgba(156,112,129,.13);
  border-radius:14px;
  background:rgba(255,255,255,.42);
}
.thread-reply-fields {
  display:grid;
  grid-template-columns:118px minmax(0,1fr) auto;
  gap:7px;
  align-items:end;
}
.thread-reply-fields input,
.thread-reply-fields textarea,
.thread-reply-captcha input,
.thread-owner-fields textarea {
  width:100%;
  min-width:0;
  border:1px solid rgba(151,112,127,.16);
  border-radius:11px;
  background:rgba(255,255,255,.55);
  color:inherit;
  outline:none;
  font:12px/1.55 "PingFang SC","Microsoft YaHei",sans-serif;
}
.thread-reply-fields input { height:38px;padding:0 10px; }
.thread-reply-fields textarea,
.thread-owner-fields textarea { min-height:46px;padding:8px 10px;resize:vertical; }
.thread-reply-fields button,
.thread-owner-fields button {
  height:38px;
  padding:0 13px;
  border:0;
  border-radius:10px;
  background:#a97d8d;
  color:#fff;
  cursor:pointer;
  white-space:nowrap;
}
.thread-reply-captcha {
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:7px;
}
.thread-reply-captcha input {
  width:72px;
  height:34px;
  padding:0 8px;
}
.thread-reply-captcha img {
  width:118px;
  height:38px;
  border-radius:9px;
}
.thread-reply-captcha button {
  border:0;
  background:transparent;
  color:#a1848f;
  font-size:10px;
  cursor:pointer;
}
.thread-reply-flash {
  margin-top:6px;
  color:#a45c67;
  font-size:10px;
}
.thread-owner-fields {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
  align-items:end;
}

.thread-root-children {
  margin-top:10px;
}
.thread-reply {
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:9px;
  margin-top:9px;
  padding:10px 0 0 12px;
  border-left:2px solid rgba(166,116,135,.13);
}
.thread-reply-avatar {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  overflow:hidden;
  background:hsl(var(--comment-avatar-hue,330) 34% 92%);
  color:hsl(var(--comment-avatar-hue,330) 24% 45%);
  border:1px solid hsl(var(--comment-avatar-hue,330) 28% 82%);
  font-size:11px;
}
.thread-reply-avatar img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.thread-reply-meta {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:3px;
}
.thread-reply-meta strong { font-size:11px;color:#745966; }
.thread-reply-meta time { font-size:9px;color:#b59fa7; }
.thread-owner-badge {
  padding:1px 5px;
  border-radius:999px;
  background:rgba(166,116,135,.10);
  color:#9a6e7f;
  font-size:8px;
}
.thread-reply-content {
  color:#765f69;
  font:12px/1.7 "PingFang SC","Microsoft YaHei",sans-serif;
  word-break:break-word;
}
.thread-delete-action {
  padding:0;
  border:0;
  background:transparent;
  color:#b37d86;
  font-size:10px;
  cursor:pointer;
}
.thread-children {
  margin-left:13px;
}
.thread-reply[data-thread-depth="4"] .thread-children {
  margin-left:0;
}

html[data-theme="dark"] .thread-reply-form,
html[data-theme="dark"] .thread-owner-compose form {
  background:rgba(255,255,255,.025);
  border-color:rgba(223,190,202,.10);
}
html[data-theme="dark"] .thread-reply-fields input,
html[data-theme="dark"] .thread-reply-fields textarea,
html[data-theme="dark"] .thread-reply-captcha input,
html[data-theme="dark"] .thread-owner-fields textarea {
  background:rgba(255,255,255,.025);
  border-color:rgba(223,190,202,.11);
  color:#d5c4ca;
}
html[data-theme="dark"] .thread-reply {
  border-left-color:rgba(214,164,182,.13);
}
html[data-theme="dark"] .thread-reply-meta strong,
html[data-theme="dark"] .thread-reply-content {
  color:#c8b1ba;
}
html[data-theme="dark"] .thread-reply-avatar {
  background:hsl(var(--comment-avatar-hue,330) 18% 24%);
  color:hsl(var(--comment-avatar-hue,330) 30% 76%);
  border-color:hsl(var(--comment-avatar-hue,330) 18% 34%);
}

@media(max-width:640px) {
  .thread-reply-fields {
    grid-template-columns:1fr auto;
  }
  .thread-reply-fields input[name="name"] {
    grid-column:1 / -1;
  }
  .thread-reply-form,
  .thread-owner-compose form {
    width:min(100%, calc(100vw - 44px));
  }
  .thread-children { margin-left:5px; }
  .thread-reply { padding-left:8px;grid-template-columns:28px minmax(0,1fr);gap:7px; }
  .thread-reply-avatar { width:27px;height:27px; }
}


/* =========================================================
   V156：前台回复框默认收起；按钮化
   ========================================================= */
details.thread-compose:not([open]) > form {
  display:none !important;
}
.thread-compose > summary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  height:27px;
  padding:0 10px;
  border:1px solid rgba(161,119,135,.13);
  border-radius:999px;
  background:rgba(168,116,135,.045);
  color:#9b7885;
  text-decoration:none;
  cursor:pointer;
}
.thread-compose > summary:hover {
  background:rgba(168,116,135,.09);
  border-color:rgba(161,119,135,.20);
}
.thread-reply {
  transition:opacity .15s ease, transform .15s ease;
}
.comment-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.comment-meta-main {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:8px;
}


/* =========================================================
   V158：前台回复入口按登录身份互斥显示
   ========================================================= */
.thread-root-actions .thread-owner-compose > summary,
.thread-reply-actions .thread-owner-compose > summary {
  min-width: 64px;
}
