@charset "utf-8";
@import url("https://fontsapi.zeoseven.com/442/main/result.css");
@import url("https://fontsapi.zeoseven.com/159/main/result.css");

/* ============================================================
   Uno v2 —— 单栏中式博客主题
   · 昼为宣纸，夜为墨蓝格纸；格纹是"笺纸"材质，不是装饰
   · 老宋体优先
   · 印泥红仍是全站唯一强调，面积 < 2%
   · 无入场动画，hover 只变色，无 JS 完整可读
   ============================================================ */

:root{
  /* 昼 · 宣纸 */
  --paper:#f4f2ec;
  --paper-soft:#faf8f2;
  --ink:#211f1c;
  --ink-2:#5b564d;        /* 淡墨 ≈6.2:1 */
  --ink-3:#6f6a5d;        /* 最淡 ≈4.4:1 */
  --hair:#d9d5c9;
  --hair-strong:#bdb8a8;
  --red:#9c2a2a;
  --mark:#f5e6b8;
  --grain:.5;
  --grid:rgba(58,53,43,.03);     /* 绢纹：经纬细线，宜淡——凑近才看得见 */

  --serif:"Sarasa Mono SC","KingHwa OldSong","Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Maple Mono NF CN",-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;
  --latin:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --face:var(--serif);

  --measure:40rem;
  --wide:62rem;
}

html[data-theme="dark"]{
  /* 夜 · 墨蓝格纸 */
  --paper:#101720;
  --paper-soft:#161d27;
  --ink:#ccd4e0;          /* 12.1:1 */
  --ink-2:#8d99ad;        /* 6.3:1 */
  --ink-3:#7a8699;        /* 4.9:1 */
  --hair:#2b3543;
  --hair-strong:#3f4b5b;
  --red:#cf5348;
  --mark:#5a5028;
  --grain:.28;
  --grid:rgba(155,167,187,.055);
}

html[data-font="sans"]{ --face:var(--sans); }

/* 字号三档（媒体查询内须用同特异性选择器覆写） */
html{font-size:16px}
html[data-fs="s"]{font-size:15px}
html[data-fs="l"]{font-size:17.5px}

/* ---------------- 2. 基础 ---------------- */
*,*::before,*::after{box-sizing:border-box}
html{
    scroll-behavior: smooth;
	color-scheme: dark;
}
body{
  margin:0;
  position: relative;
  background-color:var(--paper);
  color:var(--ink);
  font-family:var(--face);
  font-size:1rem;
  line-height:1.88;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background-color .2s ease,color .2s ease;
}
::selection{background:var(--red);color:var(--paper)}
img{max-width:100%;height:auto}
.view-image {
    opacity: 1 !important;
}
.view-image__out {
    animation: view-image-out-fix .03s forwards !important;
}
@keyframes view-image-out-fix {
    0% { opacity: 1; }
    100% { opacity: 0; }
}
a{color:inherit}
a:focus{outline:0}


/* 过渡时长和方式 */
html.is-changing .transition-fade {
  transition: opacity 0.25s ease;
  opacity: 1;
}

/* 离开时的状态 */
html.is-animating .transition-fade {
  opacity: 0;
}
/* 纸纹噪点：唯一的一层底纹。让背景成为"纸的肌理"，不是图案 */
.grain{
  position:fixed; inset:0; z-index:8; pointer-events:none;
  opacity:var(--grain);
  mix-blend-mode:multiply;
  background-size:180px 180px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .grain{mix-blend-mode:screen;opacity:calc(var(--grain) * .8)}

/* 绢纹：7px 经纬方格。比参考站的 5px 疏、比它淡，叠在噪点之下——
   追求的是绢的织纹，不是网格布。可关。 */
html[data-theme="dark"][data-grid="off"] body::before{
    background: linear-gradient(180deg, rgba(16, 23, 32, .42), rgba(16, 23, 32, .72)), url(paper-hills-dark.png) center / cover no-repeat;
}
html[data-grid="off"] body::before{
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    min-height: 100vh;
    background: var(--paper) url(paper-hills.jpg) no-repeat center bottom / cover;
    background-attachment: fixed;
}
html[data-grid="on"] body{
  background-image:
    linear-gradient(to right,var(--grid) 1px,transparent 1px),
    linear-gradient(to bottom,var(--grid) 1px,transparent 1px);
  background-size:7px 7px;
}

/* ---------------- 3. 栅格：出边式单栏 ---------------- */
.page{
  display:grid;
  grid-template-columns:1fr min(var(--measure),100%) 1fr;
  padding:0 24px;
}
.page > *{grid-column:2;min-width:0}
.page > .wide{grid-column:1 / -1;width:min(var(--wide),100%);margin-inline:auto}
.page > .full{grid-column:1 / -1;width:100%}

body.p-home{--measure:52rem;--wide:64rem}
body.p-post{--measure:44rem;--wide:68rem}
body.p-photo{--measure:68rem;--wide:68rem}
body.p-page{--measure:44rem;--wide:58rem}

/* ---------------- 4. 刊头 ---------------- */
.masthead{padding:72px 0 34px;text-align:center}
.masthead.compact{padding:42px 0 28px}
.brand{display:flex;align-items:flex-start;justify-content:center;gap:15px}
.seal{
  flex:0 0 auto;width:2.55rem;height:2.55rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--red);color:var(--paper);
  font-family:var(--serif);font-weight:700;font-size:.78rem;
  line-height:1.16;letter-spacing:0;text-align:center;
}
.site-title{
  font-family:var(--serif);font-weight:700;
  font-size:1.6rem;line-height:1.2;letter-spacing:.18em;margin:.3rem 0 0;
}
/* 副题竖排：一枚印、一个题、一行书脊小注 */
.site-sub{
  writing-mode:vertical-rl;
  margin:0;font-size:.7rem;letter-spacing:.4em;
  color:var(--ink-3);font-family:var(--face);line-height:1;
}
.brand a{text-decoration:none}
.notice{
  margin:26px auto 0;max-width:34rem;
  font-size:.8rem;line-height:1.8;color:var(--ink-2);
  padding:12px 0;
}
.notice b{color:var(--ink);font-weight:600}

/* 导航：纯文字，当前项以朱线标记 */
.nav{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:.3rem 1.5rem;margin-top:24px;
  font-size:.84rem;letter-spacing:.18em;color:var(--ink-2);
}
.nav a{
  color:inherit;text-decoration:none;padding-bottom:3px;
  border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease;
}
.nav a:hover{color:var(--red)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--red)}
.nav .sep{width:1px;height:.9em;background:var(--hair-strong)}
.nav .tool{display:inline-flex;align-items:center;gap:.9rem;font-size:.76rem;letter-spacing:.1em;color:var(--ink-3)}
.nav .tool button{
  font:inherit;letter-spacing:inherit;color:inherit;background:none;
  border:0;padding:0 0 3px;cursor:pointer;border-bottom:1px solid transparent;
  transition:color .15s ease;
}
.nav .tool button:hover{color:var(--red)}

/* ---------------- 5. 文章列表 ---------------- */
.entries{margin:0;padding:0;list-style:none}
.entry{padding:2.7rem 0}            /* 分隔靠留白，不靠线 */
.entry:first-child{padding-top:1.6rem}
.entry-title{
  font-family:var(--serif);font-weight:700;
  font-size:1.26rem;line-height:1.6;letter-spacing:.03em;
  margin:0 0 .55rem;
}
/* 标题不着线，静默；触及才以朱笔点出——着重号在"读"的时候才出现 */
.entry-title a{
  text-decoration:none;
  transition:color .15s ease;
}
.entry-title a:hover{
  color:var(--red);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.34em;
  text-decoration-color:var(--red);
}
.entry-title .cat{
  font-family:var(--serif);font-weight:400;
  font-size:.76rem;letter-spacing:.22em;color:var(--ink-3);
  margin-left:.7em;text-decoration:none;
}
.entry-excerpt{
  margin:0 0 .8rem;color:var(--ink-2);font-size:.9rem;line-height:1.92;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.entry-foot{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.entry-meta{
  font-family:var(--latin);font-style:italic;
  font-size:.74rem;letter-spacing:.05em;color:var(--ink-3);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.55rem;
}
.entry-meta .cn{font-family:var(--face);font-style:normal;letter-spacing:.08em}
.entry-meta .dot{opacity:.45}
.entry-more{
  flex:0 0 auto;font-size:.76rem;letter-spacing:.22em;color:var(--ink-3);
  text-decoration:none;transition:color .15s ease;
}
.entry-more:hover{color:var(--red)}
.pin{
  display:inline-block;width:6px;height:6px;background:var(--red);
  vertical-align:.16em;margin-right:.55rem;
}


/* ---------------- 6. 正文 ---------------- */
/* 题头：左齐、分类小注在上、标题撑开、导语随后 */
/* 题头与全站一致：居中。跨页刊头位置必须统一，否则跳页会跳 */
.post-head{padding:20px 0 0;text-align:center}
.post-cat{
  margin:0 0 1.1rem;font-size:.72rem;letter-spacing:.36em;
  color:var(--ink-3);text-transform:none;
}
.post-title{
    font-weight:700;
  font-size:clamp(2rem,5.2vw,3rem);line-height:1.3;letter-spacing:.02em;
  margin:0 0 1rem;
}
.post-meta{
  font-family:var(--latin);font-style:italic;
  font-size:.78rem;letter-spacing:.05em;color:var(--ink-3);
  display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;
}
.post-meta .cat{font-family:var(--face);font-style:normal;letter-spacing:.2em}
.post-meta .cn{font-family:var(--face);font-style:normal;letter-spacing:.12em}
.tags{
  display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;
  margin:0 0 1.6rem;padding:0;list-style:none;
  font-size:.76rem;letter-spacing:.14em;color:var(--ink-3);
}
.tags a{text-decoration:none;transition:color .15s ease}
.tags a:hover{color:var(--red)}
.post-lede{
  margin:1.8rem auto 0;max-width:38rem;
  font-size:1.1rem;line-height:1.9;letter-spacing:.02em;color:var(--ink-2);
}
.post-lede::first-letter{color:var(--ink)}

.prose{padding-top:3.2rem;font-size:1rem;line-height:1.95;counter-reset:sec}
.prose > *{margin:0 0 1.35rem;text-align:justify;text-justify:inter-ideograph}
.prose h2{
  counter-increment:sec;
  font-family:var(--serif);font-weight:700;font-size:1.24rem;
  letter-spacing:.05em;margin:3.2rem 0 1.1rem;
}
/* 编号由计数器生成，标题文本里不要再写"一、" */
.prose h2::before{content:counter(sec,cjk-ideographic)"　";color:var(--red);font-weight:400}
.prose h2[data-en]::after{
  content:"· " attr(data-en);
  margin-left:.7em;font-family:var(--latin);font-weight:400;
  font-size:.62rem;letter-spacing:.22em;color:var(--ink-3);vertical-align:.22em;
}
.prose h3{font-family:var(--serif);font-size:1rem;font-weight:700;margin:1.9rem 0 .8rem}
.prose ul,.prose ol{margin:0 0 1.45rem;padding:0;list-style:none}
.prose li{position:relative;margin:.42rem 0;padding-left:1.25em}
.prose ul > li::before{
  content:"";position:absolute;left:.15em;top:.75em;
  width:6px;height:6px;
  border:1px solid var(--hair-strong);
}
.prose ol{counter-reset:xc-ol}
.prose ol > li{counter-increment:xc-ol;padding-left:2.3em}
.prose ol > li::before{
  content:counter(xc-ol) ".";
  position:absolute;left:0;top:0;width:1.5em;text-align:right;
  font-family:var(--latin);font-size:.9em;letter-spacing:0;
  color:var(--ink-3);font-variant-numeric:lining-nums tabular-nums;
}
.prose li > ul,.prose li > ol{margin:.4rem 0 .1rem}
.prose li > ul > li{padding-left:1.6em}
.prose li > ul > li::before{
  top:.76em;left:.1em;width:9px;height:0;
  border:0;border-top:1px solid var(--hair-strong);
}
.prose li > ol > li{padding-left:2.8em}
.prose li > ol > li::before{
  content:counter(xc-ol,cjk-ideographic) "、";
  width:2.3em;font-family:var(--serif);font-size:.9em;
  color:var(--ink-3);
}
.prose blockquote{
  margin:1.7rem 0;padding:.2rem 0 .2rem 1.1rem;
  border-left:2px solid var(--red);color:var(--ink-2);font-size:.96rem;
}
.prose blockquote p:last-child{margin-bottom:0}
.prose hr{border:0;height:1px;background:var(--hair);margin:2.4rem 0}
.prose a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair-strong);transition:color .15s ease,border-color .15s ease}
.prose a:hover{color:var(--red);border-bottom-color:var(--red)}
.prose code{
  font-family:Consolas,"SF Mono",Menlo,monospace;font-size:.86em;
  background:var(--paper-soft);border:1px solid var(--hair);padding:1px 5px;
}
.prose em{font-style:normal;border-bottom:1px solid var(--hair-strong);padding-bottom:1px}
.prose img{filter:sepia(.07) contrast(.98);display:block;width:100%;border-radius: 8px;}
html[data-theme="dark"] .prose img{filter:sepia(.04) brightness(.94)}
.prose figure,.wide{margin:2.2rem 0}
figcaption{
  font-size:.74rem;line-height:1.75;letter-spacing:.06em;
  color:var(--ink-3);margin-top:.65rem;text-align:center;
}
/* 边注：宽屏时图注移到图右侧的空白里，像古籍的页边批 */
.prose figure{position:relative}
@media (min-width:1480px){
  .prose figure figcaption{
    position:absolute;left:calc(100% + 1.4rem);top:.15rem;
    width:9rem;margin-top:0;text-align:left;
    padding-left:.9rem;border-left:1px solid var(--hair);
  }
}
.mark{background:var(--mark);padding:0 2px}
.mini-player{
  position:relative;display:flex;align-items:center;gap:14px;
  padding:12px;background:rgb(229 227 222 / 30%);
  color:var(--ink);overflow:hidden;border-radius:8px;
  border:1px solid var(--hair);
}
.mini-player:hover{background:rgb(203 201 196 / 30%)}
html[data-theme="dark"] .mini-player{background:rgb(6 16 33 / 60%);}
html[data-theme="dark"] .mini-player:hover{background:rgb(2 6 12 / 60%)}
.mini-cover{
  position:relative;width:72px;height:72px;flex-shrink:0;
  border-radius:4px;overflow:hidden;
  background:var(--paper-soft);
}
.mini-cover img{width:100%;height:100%;object-fit:cover;display:block}
.mini-play{
  position:absolute;inset:0;margin:auto;width:32px;height:32px;
  border:none;border-radius:50%;cursor:pointer;
  background:rgba(33,31,28,.5);color:#fff;
  display:flex;align-items:center;justify-content:center;transition:background .2s;
}
.mini-play:hover{background:rgba(33,31,28,.7)}
.mini-play svg{width:16px;height:16px}
.mini-progress{
  width:100%;height:4px;
  background:rgba(33,31,28,.12);
  border-radius:2px;margin:6px 0;
  overflow:hidden;cursor:pointer;
}
.mini-progress-bar{
  width:0;height:100%;
  background:var(--ink);
  border-radius:2px;
  transition:width .1s linear;
}
html[data-theme="dark"] .mini-progress{background:rgba(255,255,255,.14)}
html[data-theme="dark"] .mini-progress-bar{background:var(--ink)}
html[data-theme="dark"] .mini-play{background:rgba(0,0,0,.5)}
html[data-theme="dark"] .mini-play:hover{background:rgba(0,0,0,.7)}


/* 信息 */
.mini-info{flex:1;min-width:0}
.mini-title{
  font-size:16px;font-weight:500;margin-bottom:4px;
  color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mini-artist{font-size:13px;color:var(--ink-2);margin-bottom:8px}
.mini-time{font-size:12px;color:var(--ink-3);letter-spacing:.5px}

/* 右下角状态 */
.mini-status{
  position:absolute;right:12px;bottom:10px;
  font-size:12px;color:var(--ink-3);
}

/* 文末落款：不用印，朱色只落在署名二字上 */
.post-sign{
  margin:2.6rem 0 0;text-align:center;
  font-size:.82rem;line-height:1.9;
  letter-spacing:.06em;color:var(--ink-3);
}
.post-sign b{color:var(--red);font-weight:400;letter-spacing:.24em;margin-right:.6em}
.post-foot .tags{justify-content:center}

.post-foot{margin:3.6rem 0 0}
.post-nav{display:flex;justify-content:space-between;gap:1.2rem;font-size:.82rem;letter-spacing:.06em;color:var(--ink-2)}
.post-nav a{text-decoration:none;transition:color .15s ease}
.post-nav a:hover{color:var(--red)}
.post-nav span{display:block;font-size:.7rem;letter-spacing:.2em;color:var(--ink-3);margin-bottom:.2rem}

/* 文末「无评论」说明*/
.no-comment{
  margin-bottom:3.2rem; padding-top:2.2rem;
  text-align:center;
}
.no-comment p{margin:0;color:var(--ink-2);font-size:.85rem;letter-spacing:.05em;line-height:1.9}
.no-comment .sub{margin-top:.5rem;color:var(--ink-3);font-size:.75rem}

/* ---------------- 留言区 ---------------- */

.comments{margin:3.6rem 0 0;padding-top:2rem;border-top:1px solid var(--hair-strong)}

.cmt-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:1.4rem;flex-wrap:wrap;margin-bottom:2.4rem;
}
.cmt-count{display:flex;align-items:baseline;gap:.55rem;margin:0}
.cmt-count b{
  font-family:var(--latin);font-weight:700;
  font-size:clamp(2.8rem,8.5vw,4rem);line-height:.86;
  letter-spacing:-.03em;color:var(--ink);
  font-variant-numeric:lining-nums tabular-nums;
}
.cmt-count span{
  font-size:.8rem;letter-spacing:.26em;color:var(--ink-3);
  padding-bottom:.3rem;
}
.cmt-note{
  margin:0;padding-bottom:.3rem;
  font-family:var(--latin);font-size:.74rem;letter-spacing:.06em;
  color:var(--ink-3);font-variant-numeric:tabular-nums;
}

.cmt-list{list-style:none;margin:0 0 2.8rem;padding:0}
.cmt{
  display:grid;grid-template-columns:6.8rem 1fr;gap:0 1.3rem;
  padding:1.2rem 0;border-top:1px solid var(--hair);
}
.cmt:first-child{border-top:0;padding-top:0}
.cmt-stamp{
  margin:0;padding-top:.34rem;
  font-family:var(--latin);font-size:.76rem;letter-spacing:.05em;
  color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;
}
.cmt-main{min-width:0}
.cmt-who{
  margin:0 0 .4rem;
  font-family:var(--serif);font-size:1rem;font-weight:700;
  letter-spacing:.1em;color:var(--ink);
}
a.cmt-who{text-decoration:none;display:inline-block;transition:color .15s ease}
a.cmt-who:hover{color:var(--red)}
.cmt-body{font-size:.92rem;line-height:1.92;color:var(--ink-2);white-space: normal;overflow-wrap: anywhere;}
.cmt-body p{margin:0 0 .55rem}
.cmt-body p:last-child{margin-bottom:0}
.cmt-reply{
  display:inline-block;margin-top:.55rem;
  font-size:.72rem;letter-spacing:.18em;color:var(--ink-3);
  text-decoration:none;transition:color .15s ease;
}
.cmt-reply::before{content:"↳";margin-right:.4rem;color:var(--hair-strong)}
.cmt-reply:hover{color:var(--red)}

/* 回复：整条缩进一步，左侧一条竖发丝线（Typecho 用 levels 打 .cmt-child） */
.cmt-child{
  margin-left:1.7rem;padding-left:1.3rem;
  border-left:1px solid var(--hair);
}
/* threadComments 递归输出时 children 会包一层 .cmt-kids，缩进交给它 */
.cmt-kids{
  list-style:none;margin:1.1rem 0 0;padding-left:1.5rem;
  border-left:1px solid var(--hair);
}
.cmt-kids .cmt{padding:1rem 0 0;border-top:0}
.cmt-kids .cmt-child{margin-left:0;padding-left:0;border-left:0}
.cmt-who a{text-decoration:none;transition:color .15s ease}
.cmt-who a:hover{color:var(--red)}
.cmt-wait{margin:.6rem 0 0;font-size:.74rem;letter-spacing:.14em;color:var(--ink-3)}
.cmt-empty,.cmt-closed{
  margin:0 0 2.6rem;font-size:.8rem;letter-spacing:.14em;color:var(--ink-3);
}
.cmt-re{display:inline-block;margin-top:.55rem;font-size:.72rem;letter-spacing:.18em}
.cmt-re a{color:var(--ink-3);text-decoration:none;transition:color .15s ease}
.cmt-re a:hover{color:var(--red)}

/* 评论分页（Typecho pageNav 输出） */
.page-navigator{
  list-style:none;margin:1.6rem 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:1.1rem;
  font-size:.76rem;letter-spacing:.14em;color:var(--ink-3);
}
.page-navigator a{text-decoration:none;color:var(--ink-3);transition:color .15s ease}
.page-navigator a:hover{color:var(--red)}
.page-navigator .current a{color:var(--ink-2)}

/* 表单：卷宗台账式，输入框本身无框，线条由行提供 */
.cmt-form{border-top:1px solid var(--hair-strong);padding-top:1.8rem;margin-block-end:3rem;}
.cmt-row{
  display:grid;grid-template-columns:5.6rem 1fr;gap:.1rem 1.1rem;
  align-items:baseline;padding:.62rem 0;
  border-bottom:1px solid var(--hair);
  transition:border-color .18s ease;
}
.cmt-row:focus-within{border-bottom-color:var(--red)}
.cmt-row label{
  font-size:.72rem;letter-spacing:.2em;color:var(--ink-3);
  padding-top:.15rem;
}
.cmt-row input,.cmt-row textarea{
  width:100%;min-width:0;
  font-family:var(--face);font-size:.94rem;line-height:1.85;color:var(--ink);
  background:none;border:0;border-radius:0;padding:0;
}
.cmt-row textarea{min-height:6.5rem;resize:vertical}
.cmt-row input::placeholder,.cmt-row textarea::placeholder{color:var(--ink-3);opacity:.7}
.cmt-row input:focus,.cmt-row textarea:focus{outline:none}
.cmt-send{margin:1.4rem 0 0;padding-left:calc(5.6rem + 1.1rem)}
.cmt-send button{
  font-family:var(--face);font-size:.78rem;letter-spacing:.24em;color:var(--ink-2);
  background:none;border:1px solid var(--hair-strong);border-radius:0;
  padding:.5rem 1.6rem;cursor:pointer;
  transition:color .18s ease,border-color .18s ease;
}
.cmt-send button:hover{color:var(--red);border-color:var(--red)}
.cmt-logged,.cmt-cancel{font-size:.78rem;letter-spacing:.1em;color:var(--ink-3);margin:0 0 1.2rem}
.cmt-logged a,.cmt-cancel a{color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--hair-strong);transition:color .15s ease,border-color .15s ease}
.cmt-logged a:hover,.cmt-cancel a:hover{color:var(--red);border-color:var(--red)}


/* ---------------- 7. 阅读进度 & 目录 ---------------- */
.progress{
  position:fixed;top:0;left:0;height:2px;width:0;
  background:var(--red);z-index:20;transition:width .08s linear;
}
.toc-container {position: fixed;left: 1rem;top: 20vh;}
#toc-mobile-text{display:none;}
#toc-list {list-style: none;margin-block-start: 1.5rem;font-size: 14px;max-height: 30rem;overflow-y: auto;}
#toc-list::-webkit-scrollbar {width: 0;}
#toc-list a{color:var(--ink-2);text-decoration: none;border: none;}
#toc-list a.active{color:var(--ink);}
.toc-toggle svg{width:20px;}

/* ---------------- 8. 友圈 ---------------- */
.circle{list-style:none;margin:0;padding:0}
.circle li{
  display:grid;grid-template-columns:3.8rem 1fr;gap:0 1.2rem;
  align-items:baseline;padding:.85rem 0;
}
.circle time{
  font-family:var(--latin);font-style:italic;
  font-size:.76rem;color:var(--ink-3);
}
.circle .who{
  font-size:.74rem;letter-spacing:.14em;color:var(--ink-3);
  margin-right:.85em;white-space:nowrap;
}
.circle .who a{text-decoration:none;transition:color .15s ease}
.circle .who a:hover{color:var(--red)}
.circle .what{
  font-family:var(--serif);font-size:1rem;letter-spacing:.02em;
  color:var(--ink);text-decoration:none;transition:color .15s ease;
}
.circle .what:hover{color:var(--red)}
.circle .sum{
  margin:.28rem 0 0;font-size:.82rem;line-height:1.8;color:var(--ink-3);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.circle .empty{color:var(--ink-3);font-size:.86rem;padding:1.2rem 0}


/* ---------------- 9. 归档 / 单页 ---------------- */
.year{
  display:grid;grid-template-columns:4.6rem 1fr;gap:0 2.4rem;
  align-items:start;margin:0 0 3.6rem;
}
.year-mark{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-top:.15rem}
.year h2{
  writing-mode:vertical-rl;
  font-family:var(--serif);font-size:1rem;font-weight:400;
  letter-spacing:.28em;color:var(--ink-2);margin:0;line-height:1;
}
.year .count{
  font-family:var(--latin);font-style:italic;
  font-size:.72rem;color:var(--ink-3);white-space:nowrap;
}
.year ul{list-style:none;margin:0;padding:0}
.year li{
  display:grid;grid-template-columns:3.6rem 1fr;gap:1.2rem;
  align-items:baseline;padding:.6rem 0;
}
.year li a{text-decoration:none;color:var(--ink);transition:color .15s ease}
.year li a:hover{color:var(--red)}
.year time{font-family:var(--latin);font-style:italic;font-size:.78rem;color:var(--ink-3)}
.year .note{font-size:.74rem;color:var(--ink-3);letter-spacing:.1em;margin-left:.8em}

/* 关于页 */
.about p{color:var(--ink-2)}

.ab-head{margin-bottom:2.4rem;padding-bottom:1.7rem;border-bottom:1px solid var(--hair-strong)}
.ab-kicker{margin:0 0 .7rem;font-size:.7rem;letter-spacing:.34em;color:var(--ink-3)}
.ab-title{font-family:var(--serif);font-size:clamp(2.3rem,7vw,3.2rem);font-weight:700;letter-spacing:.2em;margin:0;line-height:1.15}
.ab-lede{margin:.9rem 0 0;font-size:1rem;color:var(--ink-2);letter-spacing:.02em}
.ab-meta{margin:.8rem 0 0;font-size:.74rem;letter-spacing:.16em;color:var(--ink-3)}
.about .ab-open{
  font-family:var(--serif);font-size:1.1rem;line-height:2.05;
  color:var(--ink);letter-spacing:.02em;margin:0 0 2.8rem;
}
.ab-sec{
  display:grid;grid-template-columns:6.4rem 1fr;gap:0 1.6rem;
  padding:1.9rem 0;border-top:1px solid var(--hair);
}
.ab-page {
    counter-reset: ab-num;  /* 只在父容器重置一次 */
}
.ab-sec:last-of-type{border-bottom:1px solid var(--hair)}
.ab-label h2::before {
    counter-increment: ab-num;  /* 每次遇到 h2 就 +1 */
    content: counter(ab-num, decimal-leading-zero);
    display: block;
    font-size: .72rem;
    letter-spacing: .22em;
    color: var(--red);
    font-variant-numeric: tabular-nums;
    margin-bottom: 0.2rem;  /* 数字和标题之间的间距 */
}
.ab-label h2 {
    font-family: var(--serif);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .16em;
    margin: .35rem 0 0;
    color: var(--ink);
}
.ab-sec:not(:last-child) {
    border-bottom: 1px solid #ccc;
    padding-bottom: 2rem;
}
.ab-body{min-width:0}
.ab-body p{margin:0 0 .9rem}
.ab-body p:last-child{margin-bottom:0}

/* 规格行：标签＋值，行间发丝线 */
.ab-rows{margin:0;font-size:.92rem}
.ab-row{display:grid;grid-template-columns:5.2rem 1fr;gap:.15rem 1rem;padding:.62rem 0;border-bottom:1px solid var(--hair)}
.ab-row:last-child{border-bottom:0;padding-bottom:0}
.ab-row dt{color:var(--ink-3);letter-spacing:.14em;font-size:.8rem;padding-top:.1rem}
.ab-row dd{margin:0;color:var(--ink-2)}
.ab-row a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair-strong);padding-bottom:1px;transition:color .15s ease,border-color .15s ease}
.ab-row a:hover{color:var(--red);border-color:var(--red)}

.ab-sign{margin:2.2rem 0 0;text-align:right;font-size:.76rem;letter-spacing:.14em;color:var(--ink-3)}

/* ---------------- 主题 ---------------- */
.tbar{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem;
  margin:0 0 1.4rem;list-style:none;padding:0;
  font-size:.76rem;letter-spacing:.18em;color:var(--ink-3);
}
.tbar li:not(:last-child)::after{content:"·";margin:0 .55rem;color:var(--ink-3);opacity:.5}
.tbar button{
  font:inherit;letter-spacing:inherit;color:inherit;
  background:none;border:0;padding:0 0 3px;cursor:pointer;
  border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease;
}
.tbar button:hover{color:var(--red)}
.tbar .is-on{color:var(--ink);border-bottom-color:var(--hair-strong)}
.tcount{margin:0 0 1rem;font-size:.74rem;letter-spacing:.16em;color:var(--ink-3)}

.tgrid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));
  gap:0;background:none;
  list-style:none;margin:0;padding:0;
  /* 收边线法：容器只画上/左，格子画右/下——末行空位不露底色 */
  border-top:1px solid var(--hair);
  border-left:1px solid var(--hair);
}
.tcard{
  background:var(--paper);
  border-right:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
  padding:1.3rem 1.25rem 1.1rem;
  display:flex;flex-direction:column;
  transition:background-color .18s ease;
}
.tcard:hover{background:var(--paper-soft)}
/* 配色带：换成你那套主题的真实色值即可 */
.swatch{display:flex;height:7px;margin:0 0 1.05rem;border:1px solid var(--hair)}
.swatch i{flex:1 1 0;min-width:0}
.tcard-name{
  display:flex;align-items:baseline;gap:.5rem;
  font-family:var(--serif);font-size:1.18rem;font-weight:700;letter-spacing:.12em;
  color:var(--ink);margin:0 0 .5rem;
}
.tcard-name .pin{position:static;margin:0}
.tcard-meta{margin:0 0 .7rem;font-size:.72rem;letter-spacing:.14em;color:var(--ink-3)}
.tcard-desc{margin:0 0 1rem;font-size:.86rem;line-height:1.85;color:var(--ink-2)}
.tcard-links{
  margin:auto 0 0;padding:.7rem 0 0;border-top:1px solid var(--hair);
  display:flex;gap:1.1rem;font-size:.76rem;letter-spacing:.12em;
}
.tcard-links a{text-decoration:none;color:var(--ink-2);transition:color .15s ease}
.tcard-links a:hover{color:var(--red)}
.tgrid .empty{grid-column:1 / -1;padding:2.2rem 1.25rem;background:var(--paper);color:var(--ink-3);font-size:.86rem}


/* 友邻：目录页式。站名在左、网址在右，中间点线引导；描述缩进在下。 */
.links{list-style:none;margin:0;padding:0}
.links li{padding:1.15rem 0}
.links .row{display:flex;align-items:baseline;gap:.7rem}
.links .name{
  flex:0 1 auto;font-weight:700;
  font-size:1.04rem;letter-spacing:.06em;line-height:1.6;
}
.links .name a{text-decoration:none;transition:color .15s ease}
.links .name a:hover{color:var(--red)}
.links .leader{
  flex:1 1 auto;min-width:1.5rem;height:0;
  border-bottom:1px dotted var(--hair-strong);
  transform:translateY(-.28em);
}
.links .url{
  flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:14rem;
  font-family:var(--latin);font-style:italic;
  font-size:.76rem;letter-spacing:.02em;color:var(--ink-3);
}
.links .desc{
  margin:.32rem 0 0;max-width:34rem;
  color:var(--ink-2);font-size:.86rem;line-height:1.8;
}
.links .sort{
  display:inline-block;margin-left:.9em;
  font-size:.72rem;letter-spacing:.16em;color:var(--ink-3);
}
.links .rss{
  font-size:.72rem;letter-spacing:.16em;color:var(--ink-3);
  text-decoration:none;margin-left:.8em;transition:color .15s ease;
}
.links .rss:hover{color:var(--red)}

/* ---------------- 10. 页脚 ---------------- */
.foot{padding:20px 0 60px;text-align:center;font-size:.72rem;color:var(--ink-3);letter-spacing:.1em}
.foot p{margin:0 0 .55rem}
.badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem .9rem;margin:.4rem 0 1rem}
.badges a{
  text-decoration:none;color:var(--ink-3);
  border:1px solid var(--hair-strong);padding:.1rem .6rem;
  filter:grayscale(1);opacity:.6;transition:color .15s ease,filter .2s ease,opacity .2s ease;
}
.badges a:hover{filter:none;opacity:1;color:var(--red);border-color:var(--red)}
.footer-beian{display: flex;align-items: center;justify-content: center;flex-direction: column;}
.footer-beian > * {margin:0 0 .55rem}
.footer-beian a{text-decoration:none;display: flex;align-items: center;gap: .55rem;}
.footer-beian svg{width: 20px;}

/* ---------------- 11. 移动端 ---------------- */
@media (max-width:900px){
  .shots{grid-template-columns:repeat(2,1fr);gap:1.1rem}
}
@media (max-width:640px){
  html{font-size:15.5px}
  html[data-fs="s"]{font-size:14.5px}
  html[data-fs="l"]{font-size:16.5px}
  .page{padding:0 20px}
  .masthead{padding:44px 0 26px}
  .site-title{font-size:1.35rem;letter-spacing:.14em;margin-top:.2rem}
  .seal{width:2.2rem;height:2.2rem;font-size:.68rem}
  .site-sub{font-size:.62rem;letter-spacing:.34em}
  .nav{gap:.4rem 1.1rem;font-size:.8rem;letter-spacing:.12em}
  .nav .sep{display:none}
  .nav .tool{gap:.7rem}
  .entry{padding:1.6rem 0}
  .entry-title{font-size:1.12rem}
  .entry-foot{flex-direction:column;gap:.35rem}
  .prose{font-size:.98rem;line-height:1.9}
  .prose p{text-align:left}
  .shots{grid-template-columns:1fr;gap:1.5rem}
  .shots img,.shots.flow img{aspect-ratio:3 / 2}
  .tocbtn{right:12px;bottom:14px}
  #toc-mobile-text{display:block;}
  .toc-toggle svg{display:none}
  .toc-container {position: relative;left: inherit;top: inherit;background: rgb(229 227 222 / 30%);padding: 12px;border-radius:8px;border: 1px solid var(--hair);}
  html[data-theme="dark"] .toc-container {background: rgb(6 16 33 / 60%);}
  #toc-list{max-height: 8.5rem;overflow-y: auto;}
  .year{grid-template-columns:1fr;gap:0;margin-bottom:3rem}
  .year-mark{flex-direction:row;align-items:baseline;gap:.9rem;margin-bottom:.9rem}
  .year h2{writing-mode:horizontal-tb;letter-spacing:.24em;font-size:1.05rem}
  .year li{grid-template-columns:3.2rem 1fr;gap:.9rem}
  .links li{padding:1rem 0}
  .links .url{font-size:.72rem}
  .circle li{grid-template-columns:1fr;gap:.25rem;padding:.9rem 0}
  .ab-sec{grid-template-columns:1fr;gap:.7rem;padding:1.5rem 0}
  .ab-label{padding-top:0;display:flex;align-items:baseline;gap:.8rem}
  .ab-label h2{margin:0}
  .ab-row{grid-template-columns:1fr;gap:.1rem}
  .ab-row{padding:.55rem 0}
  .tgrid{grid-template-columns:1fr}
  .cmt{grid-template-columns:1fr;gap:.25rem}   /* 时间码回到正文上方 */
  .cmt-stamp{padding-top:0}
  .cmt-child{margin-left:0;padding-left:1rem}
  .cmt-row{grid-template-columns:1fr;gap:.35rem}   /* 窄屏标签挪到框上方 */
  .cmt-send{padding-left:0}
  .foot{padding-bottom:76px}
  .pager{gap:.7rem;letter-spacing:.12em;padding-top:2rem}
  .pager .pg-all{font-size:.74rem}
}
@media (max-width:380px){
  .nav .tool{width:100%;justify-content:center;margin-top:.4rem}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important}
}

/* ---------------- 12. 打印 ---------------- */
@media print{
  .grain,.progress,.nav,.toc,.tocbtn,.lb,.toolbar,.badges{display:none!important}
  body{background:#fff;color:#000}
  .page{display:block;padding:0}
  .page > *,.page > .wide{width:auto;max-width:100%}
  .prose a::after{content:"（" attr(href) "）";font-size:.75em;color:#555}
  .entry,.year li{page-break-inside:avoid}
}