@charset "UTF-8";
/*
Theme Name: For Words
Description: 白底极简衬线 Typecho 主题：全屏插画首屏、右侧竖排导航、单页应用式视图、数据看板与精致排版。
Version: 3.3.0
Author: QwenWork
*/

/* ============================================================
   设计系统 · For Words
   白 #fff · 文 #000 · 链接 #999→#000 · 弱化 #ccc · 副文 #333
   东京蓝 accent #12385f · 衬线排版（CJK 明朝 + 拉丁 Crimson/Times）
   ============================================================ */
:root{
  --bg:#ffffff;
  --ink:#111418;
  --ink-strong:#000000;
  --sub:#3a3f45;
  --link:#666e76;          /* 链接/摘要：对比度 4.9:1（原 #868c93 仅 3.39:1，偏灰） */
  --muted:#848b93;         /* 日期/弱化信息：对比度 3.5:1（原 #b0b4b9 仅 2.08:1） */
  --line:rgba(17,20,24,.10);
  --line-soft:rgba(17,20,24,.06);
  --accent:#12385f;               /* 东京蓝 */
  --accent-2:#1d5c8f;

  --side-w:262px;
  --side-pad-l:34px;
  --side-pad-r:24px;
  --side-total:320px;             /* side-w + pad-l + pad-r */

  /* 字体：优先系统内较优雅的明朝/衬线，离线回退不依赖外链 */
  --serif-en:"Crimson Text","Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",Times,serif;
  --serif-cjk:"Source Han Serif SC","Noto Serif SC","Noto Serif CJK SC","Songti SC","STZhongsong","Hiragino Mincho ProN","Yu Mincho",SimSun,serif;
  --serif-mix:"Crimson Text","Source Han Serif SC","Noto Serif SC","Songti SC","STZhongsong","Times New Roman",SimSun,serif;

  /* 流式字号阶梯 */
  --fs--1:clamp(.80rem,.77rem+.13vw,.88rem);
  --fs-0:clamp(1rem,.95rem+.20vw,1.10rem);
  --fs-1:clamp(1.18rem,1.08rem+.42vw,1.42rem);
  --fs-2:clamp(1.45rem,1.24rem+.85vw,1.95rem);
  --fs-3:clamp(1.85rem,1.42rem+1.7vw,2.7rem);
  --fs-4:clamp(2.3rem,1.7rem+2.7vw,3.6rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{overflow-y:scroll;background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;border-radius:1px;}
body{
  margin:0;padding:0;color:var(--ink);
  font-family:var(--serif-mix);
  font-size:var(--fs-0);line-height:1.85;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
}
img{border:0;max-width:100%;}
a,a:link,a:visited{color:var(--link);text-decoration:none;transition:color .35s ease;}
a:hover,a:focus,a:active{color:var(--ink-strong);}
ul,ol,dl,dd,dt,li{list-style:none;margin:0;padding:0;}
#comments .comment-list{list-style:none;margin:0;padding:0;}
#comments .comment-children{list-style:none;}
h1,h2,h3,h4,h5,h6{font-weight:400;margin:0;line-height:1.3;}
p{margin:0;}
::selection{background:#111418;color:#fff;}
.font-en{font-family:var(--serif-en);font-variant-numeric:tabular-nums;}
.skip-screen-reader-text{position:absolute;left:-9999px;top:0;}
.skip-screen-reader-text:focus{left:0;top:0;z-index:99999;padding:8px 12px;background:var(--bg);color:var(--ink-strong);}

/* ============ 入场动效（参照 aza.co.jp：渐显 / 上滑 / 遮罩线） ============ */
/* 仅在 JS 可用时先隐藏、进入视口再揭示；无 JS 时内容始终可见 */
.tb-reveal,.tb-reveal-up,.tb-reveal-fade,.tb-reveal-mask{will-change:opacity,transform;}
html.js .tb-reveal-fade{opacity:0;transition:opacity 1s cubic-bezier(.16,.84,.24,1);}
html.js .tb-reveal-up,html.js .tb-reveal{opacity:0;transform:translateY(30px);transition:opacity .95s cubic-bezier(.16,.84,.24,1),transform .95s cubic-bezier(.16,.84,.24,1);}
html.js .tb-reveal-mask{clip-path:inset(0 0 100% 0);opacity:.001;transition:clip-path 1.1s cubic-bezier(.16,.84,.24,1),opacity .5s ease;}
html.js .tb-reveal-fade.in,html.js .tb-reveal-up.in,html.js .tb-reveal.in{opacity:1;transform:none;}
html.js .tb-reveal-mask.in{clip-path:inset(0 0 0 0);opacity:1;}
@media (prefers-reduced-motion:reduce){
  html.js .tb-reveal,html.js .tb-reveal-up,html.js .tb-reveal-fade,html.js .tb-reveal-mask{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important;}
}

/* ============ cover 载入幕布 ============ */
#cover{
  display:none;position:fixed;top:0;left:0;width:100%;height:100%;
  background:var(--bg);z-index:10000;
}

/* ============ container / main / side ============ */
#container{position:relative;z-index:0;width:100%;min-width:0;}
#main{position:relative;z-index:1000;margin-right:var(--side-total);}

#side{
  position:fixed;top:0;right:0;
  width:var(--side-w);
  padding:0 var(--side-pad-r) 20px var(--side-pad-l);
  height:100vh;
  background:var(--bg);z-index:2000;
  font-family:var(--serif-en);
  transition:background-color .45s ease,box-shadow .45s ease;
  display:flex;flex-direction:column;
  overflow:hidden;
}
#side .en_title{margin-top:42px;flex:0 0 auto;}
#side .en_title h2{font-size:1.35rem;letter-spacing:.3px;line-height:1.22;overflow-wrap:anywhere;word-break:break-word;}
#side .en_title h2 a{color:var(--ink-strong);}
#side .en_title .tb-subtitle{margin-top:10px;font-size:.82rem;letter-spacing:.02em;line-height:1.5;color:var(--link);font-family:var(--serif-mix);font-weight:400;}

/* nav-body：分区导航（中英）+ 搜索，中部可滚动 */
#side .nav-body{margin-top:20px;flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none;
  display:flex;flex-direction:column;justify-content:space-between;gap:20px;}
#side .nb-top{display:flex;flex-direction:column;}
#side .nb-bottom{display:flex;flex-direction:column;gap:16px;}
#side .nav-body::-webkit-scrollbar{display:none;}
/* 导航：两列网格。英文列与中文列分别做「两端对齐」（justify），
   使每一行的英文块、中文块左右边界完全对齐，形成平整的版面 */
#side .tb-sections li{margin-top:16px;}
#side .tb-sections li:first-child{margin-top:0;}
#side .tb-sections li a{position:relative;display:grid;grid-template-columns:1fr var(--nav-cn-w,52px);
  align-items:baseline;column-gap:12px;color:var(--sub);transition:color .3s;}
/* 侧栏导航的悬停/激活态：下划线 + 颜色 + 位移。
   （原「左侧竖条」在 .nav-body 的 overflow 裁剪区内，永远不可见，已移除） */
/* 英文：左端对齐 + 右端对齐（末尾字距补偿，避免 letter-spacing 造成的右侧虚位） */
#side .tb-sections .s-en{display:block;font-size:.86rem;letter-spacing:.18em;margin-right:-.18em;
  color:var(--ink-strong);white-space:nowrap;text-align:justify;text-align-last:justify;
  transition:transform .38s cubic-bezier(.16,.84,.24,1);}
/* 中文：同样两端对齐，定宽 3 字，2 字项自动撑满，与 3 字项左右齐平 */
#side .tb-sections .s-cn{display:block;font-size:.84rem;letter-spacing:.1em;margin-right:-.1em;
  color:var(--link);font-family:var(--serif-cjk);white-space:nowrap;
  text-align:justify;text-align-last:justify;}
#side .tb-sections li a:hover{color:var(--ink-strong);}
#side .tb-sections li a:hover .s-cn{color:var(--ink-strong);}
#side .tb-sections li a:hover .s-en{transform:translateX(3px);}
#side .tb-sections li a.is-active .s-en{color:var(--accent-2);}
#side .tb-sections li a.is-active .s-cn{color:var(--ink-strong);font-weight:600;}
/* 激活标识统一交给 ::after 下划线 + 左侧竖条（旧的圆点会让两端对齐的文本换行，已移除） */
#side .line{display:block;width:100%;height:0;border-top:1px solid var(--ink-strong);margin:22px 0 0;opacity:.14;}
/* —— 搜索框：精致的「带图标胶囊 + 圆形箭头按钮」 —— */
#side .tb-search{position:relative;margin-top:18px;display:flex;align-items:center;gap:8px;
  background:rgba(17,20,24,.035);border:1px solid var(--line);border-radius:4px;
  padding:5px 5px 5px 12px;transition:border-color .3s,background .3s,box-shadow .3s;}
#side .tb-search:focus-within{border-color:var(--accent-2);background:var(--bg);box-shadow:0 0 0 3px rgba(29,92,143,.08);}
#side .tb-search-ic{flex:0 0 auto;display:flex;align-items:center;}
#side .tb-search-ic svg{width:15px;height:15px;stroke:var(--muted);fill:none;stroke-width:1.9;stroke-linecap:round;transition:stroke .3s;}
#side .tb-search:focus-within .tb-search-ic svg{stroke:var(--accent-2);}
#side .tb-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;
  font-family:var(--serif-mix);font-size:.86rem;color:var(--ink-strong);padding:6px 0;}
#side .tb-search input::placeholder{color:var(--muted);letter-spacing:.02em;}
#side .tb-search button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:4px;
  width:28px;height:28px;padding:0;border:0;border-radius:50%;background:var(--ink-strong);color:#fff;
  cursor:pointer;transition:background .3s,transform .3s;}
#side .tb-search button:hover{background:var(--accent-2);transform:translateX(1px);}
#side .tb-search button svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
#side .tb-search .btn-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* —— 侧栏近期文章：填充搜索框与页脚之间的留白 —— */
#side .side-recent{margin-top:22px;}
#side .sr-head{display:flex;align-items:baseline;gap:8px;padding-bottom:9px;border-bottom:1px solid var(--line-soft);}
#side .sr-cn{font-family:var(--serif-cjk);font-size:.8rem;letter-spacing:.1em;color:var(--ink-strong);font-weight:600;}
#side .sr-en{font-size:.62rem;letter-spacing:.22em;color:var(--muted);}
#side .side-recent ul{list-style:none;margin:10px 0 0;padding:0;}
#side .side-recent li{margin:0;}
#side .side-recent li a{display:flex;gap:9px;align-items:baseline;padding:6px 0;color:var(--link);transition:color .3s,padding-left .3s;}
#side .side-recent li a:hover{color:var(--ink-strong);padding-left:3px;}
#side .side-recent time{flex:0 0 auto;font-size:.66rem;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.03em;}
#side .side-recent .sr-t{font-size:.76rem;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;}
#side .side-recent li a:hover .sr-t{color:var(--ink-strong);}

/* nav-foot：统计 + 十年之约 + 版权，靠底部 */
#side .nav-foot{flex:0 0 auto;margin-top:18px;font-family:var(--serif-en);}
#side .nav-foot p{font-size:.72rem;line-height:1.9;}
#side .meta-stats{color:var(--sub);letter-spacing:.01em;margin-top:14px;margin-bottom:12px;}
#side .meta-stats .font-en{color:var(--ink-strong);font-weight:600;}
/* 两个站点徽标：去掉边框挤压，按等高自然宽度展示，保证清晰可辨 */
#side .foreverblog{display:flex;align-items:center;gap:14px;margin:0 0 12px;}
#side .foreverblog a{display:inline-flex;align-items:center;height:24px;opacity:.92;
  transition:opacity .3s,transform .3s;}
#side .foreverblog a:hover{opacity:1;transform:translateY(-1px);}
#side .foreverblog img{height:24px;width:auto;max-width:none;display:block;object-fit:contain;}
#side .meta-copy{color:var(--sub);} 
#side .meta-copy a{color:var(--sub);}
#side .meta-copy a:hover{color:var(--ink-strong);}
#side .meta-tech{color:var(--muted);}
#side .meta-run{color:var(--muted);}
#side .meta-run .js-runtime{color:var(--sub);}

/* ============ 单页应用 · 视图切换 ============ */
/* 截图辅助 */
body.tb-flat .tb-reveal-up,body.tb-flat .tb-reveal,body.tb-flat .tb-reveal-fade,body.tb-flat .tb-reveal-mask{opacity:1!important;transform:none!important;clip-path:none!important;}
/* 视图显隐（仅 JS 环境；无 JS 时全部堆叠可见） */
html.js .tb-view{display:none;}
html.js .tb-view.is-active{display:block;}
.tb-view{padding:3.4vh 0 40px;}
.tb-view.view-leave{opacity:0;transform:translateY(14px);transition:opacity .24s ease,transform .24s ease;}
.tb-view.view-enter{opacity:0;transform:translateY(20px);}
.tb-view.view-enter.in{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.16,.84,.24,1),transform .5s cubic-bezier(.16,.84,.24,1);}
@media (prefers-reduced-motion:reduce){.tb-view.view-leave,.tb-view.view-enter{opacity:1!important;transform:none!important;}}

/* —— 首页视图（内容优先：最新文章列表） —— */
.home-masthead{margin:0 auto;padding:22px 0 6px;text-align:center;}
.hm-eyebrow{font-size:var(--fs--1);letter-spacing:.26em;color:var(--link);margin-bottom:11px;}
.hm-title{font-family:var(--serif-cjk);font-size:clamp(1.6rem,1.25rem+1.5vw,2.3rem);font-weight:600;letter-spacing:.03em;line-height:1.34;color:var(--ink-strong);margin-bottom:11px;}
.hm-desc{font-family:var(--serif-cjk);font-size:calc(var(--fs-0) * .95);line-height:1.95;color:var(--sub);max-width:38em;margin:0 auto;}
.home-list-head{display:flex;align-items:baseline;gap:12px;width:min(920px,90%);margin:3.4vh auto 8px;padding-bottom:13px;border-bottom:1px solid var(--line);}
.home-list-head .hlh-cn{font-family:var(--serif-cjk);font-size:var(--fs-1);font-weight:600;color:var(--ink-strong);}
.home-list-head .hlh-en{font-size:var(--fs--1);letter-spacing:.2em;color:var(--muted);}
.home-list-head .hlh-all{margin-left:auto;font-size:var(--fs--1);color:var(--sub);border-bottom:1px solid var(--muted);}
.home-list-head .hlh-all:hover{color:var(--ink-strong);border-bottom-color:var(--ink-strong);}
.home-recent-list{width:min(920px,90%);margin:0 auto;}
.tb-btn{font-family:var(--serif-cjk);font-size:.92rem;letter-spacing:.08em;padding:11px 28px;border-radius:2px;cursor:pointer;transition:.3s;border:1px solid var(--ink-strong);}
.tb-btn-solid{background:var(--ink-strong);color:#fff;}
.tb-btn-solid:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
.tb-btn-ghost{background:transparent;color:var(--ink-strong);}
.tb-btn-ghost:hover{background:var(--ink-strong);color:#fff;}

/* —— 通用视图标题 —— */
.view-head{display:flex;align-items:baseline;gap:12px;width:min(920px,90%);margin:0 auto 26px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.view-head .vh-en{font-size:var(--fs-1);letter-spacing:.2em;font-family:var(--serif-en);color:var(--ink-strong);}
.view-head .vh-cn{font-size:var(--fs-0);letter-spacing:.1em;font-family:var(--serif-cjk);color:var(--link);}
.view-head .vh-count{margin-left:auto;font-size:.82rem;color:var(--muted);}
.view-head + *,.tb-view > .cats-grid,.tb-view > .tag-cloud,.tb-view > .friends-list,.tb-view > .art-list,.tb-view > .art-pager{width:min(920px,90%);margin-left:auto;margin-right:auto;}
.tb-view > .tag-cloud{margin-top:24px;}
.tb-view > .art-pager{margin-top:34px;}

/* —— 文章列表：单列编辑流（左图右文 · 层级清晰 · 节奏规整） —— */
.art-list{display:flex;flex-direction:column;}
.art-item{list-style:none;border-bottom:1px solid var(--line-soft);}
.art-item:first-child{border-top:1px solid var(--line-soft);}
.art-card{position:relative;display:flex;align-items:stretch;gap:26px;padding:22px 14px 22px 52px;transition:background-color .35s;}
/* 悬停：左侧东京蓝指示条展开 + 极浅底色 */
.art-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .42s cubic-bezier(.16,.84,.24,1);}
.art-card:hover{background:rgba(17,20,24,.022);}
.art-card:hover::before{transform:scaleY(1);}
.art-card:focus-visible::before{transform:scaleY(1);}
.art-thumb{flex:0 0 auto;width:252px;aspect-ratio:4/3;overflow:hidden;background:#0b1f38;border-radius:3px;align-self:flex-start;}
.art-thumb img,.art-thumb svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,.84,.24,1);}
.art-card:hover .art-thumb img,.art-card:hover .art-thumb svg{transform:scale(1.04);}
.art-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;padding:1px 0 0;}
.art-title{font-family:var(--serif-cjk);font-size:clamp(1.04rem,.98rem+.34vw,1.22rem);line-height:1.48;
  color:var(--ink-strong);font-weight:600;letter-spacing:.005em;transition:color .35s;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.art-card:hover .art-title{color:var(--accent-2);}
.art-pin{display:inline-block;vertical-align:.12em;margin-right:.55em;font-size:.56rem;letter-spacing:.16em;
  color:#fff;background:var(--accent-2);padding:2px 6px;border-radius:2px;font-weight:400;}
.art-excerpt{color:var(--link);font-size:var(--fs--1);line-height:1.85;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
/* 底部信息行：日期左、数据右，以细线分隔，形成稳定的阅读基线 */
.art-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-top:auto;padding-top:11px;border-top:1px solid var(--line-soft);}
.art-date{color:var(--muted);font-size:.73rem;letter-spacing:.06em;font-variant-numeric:tabular-nums;}
.art-stats{display:flex;gap:16px;}
.as-item{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums;}
.as-item .font-en{color:var(--sub);}
.as-ic{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
/* 公告卡（gonggao）：无缩略图的整行提示，弱化但清晰 */
.art-card--note{gap:0;align-items:center;background:linear-gradient(90deg,rgba(18,56,95,.05),rgba(18,56,95,0));border-left:3px solid var(--accent);}
.art-card--note::before{display:none;}
.art-card--note .art-excerpt{-webkit-line-clamp:3;color:var(--sub);}
.art-card--note:hover{background:linear-gradient(90deg,rgba(18,56,95,.08),rgba(18,56,95,0));}

/* —— 分页：全站唯一范式，定义见文件末尾「统一分页栏」 —— */

/* 分类 + 标签 */
.cats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;}
.cat-card{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:3px;transition:border-color .3s,transform .3s;}
.cat-card:hover{border-color:var(--ink-strong);transform:translateY(-2px);}
.cat-name{font-family:var(--serif-cjk);color:var(--ink-strong);font-size:var(--fs-0);}
.cat-count{font-size:.82rem;color:var(--muted);}
.cats-none{color:var(--muted);}
.tag-cloud{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;}
.tag-cloud .tc-label{font-size:.74rem;letter-spacing:.2em;color:var(--muted);margin-right:4px;}
.tag-cloud a{color:var(--link);font-size:var(--fs--1);padding:5px 13px;border:1px solid var(--line);border-radius:20px;transition:.3s;}
.tag-cloud a:hover{color:#fff;background:var(--ink-strong);border-color:var(--ink-strong);}

/* 友链 */
.friends-list{display:flex;flex-wrap:wrap;gap:14px 22px;}
.friends-list a{display:inline-flex;align-items:center;gap:8px;color:var(--sub);font-size:var(--fs-0);padding:8px 16px;border:1px solid var(--line);border-radius:2px;transition:border-color .3s,color .3s,transform .3s;}
.friends-list a:hover{color:var(--ink-strong);border-color:var(--ink-strong);transform:translateY(-2px);}
.friends-list img{width:22px;height:22px;border-radius:50%;object-fit:cover;}

/* ============ 文章浮动目录 toc-float ============ */
#toc-float{position:fixed;top:0;right:var(--side-total);height:100vh;width:min(300px,44vw);background:var(--bg);z-index:6100;
  transform:translateX(100%);transition:transform .5s cubic-bezier(.19,1,.22,1);
  box-shadow:-14px 0 50px rgba(0,0,0,.10);display:flex;flex-direction:column;}
#toc-float.on{transform:none;}
#toc-float .tf-head{display:flex;align-items:center;gap:8px;padding:26px 26px 14px;border-bottom:1px solid var(--line);font-family:var(--serif-en);font-size:.86rem;letter-spacing:.12em;color:var(--ink-strong);}
#toc-float .tf-head .font-en{margin-right:6px;}
#toc-float .tf-close{margin-left:auto;border:0;background:transparent;font-size:1.6rem;line-height:1;color:var(--link);cursor:pointer;}
#toc-float .tf-close:hover{color:var(--ink-strong);}
#toc-float .tf-list{flex:1;overflow-y:auto;list-style:none;margin:0;padding:14px 26px 40px;}
#toc-float .tf-list li{line-height:1.5;}
#toc-float .tf-list a{display:block;color:var(--link);font-size:.88rem;padding:7px 0;border-bottom:1px dashed var(--line-soft);}
#toc-float .tf-list a:hover{color:var(--ink-strong);}
#toc-float .tf-l2{padding-left:14px;}
#toc-float .tf-l3{padding-left:28px;}

/* ============ 十年之约 B人表情包（评论区 120px） ============ */
.comment-content img[src*="/stickers/bren/"]{height:120px;max-height:120px;width:auto;display:inline-block;vertical-align:middle;margin:3px 2px;}
.OwO .OwO-body .OwO-items .OwO-item img{max-height:56px;}

/* ============ 角落工具栏（返回顶部进度环 + 夜间模式，收为一组） ============ */
#cornertool{position:fixed;right:calc(var(--side-total) + 20px);bottom:28px;z-index:5000;
  display:flex;flex-direction:column;gap:8px;align-items:center;}
.ct-btn{position:relative;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;
  background:rgba(255,255,255,.92);backdrop-filter:blur(6px);color:var(--sub);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:opacity .35s,transform .35s,border-color .3s,color .3s,box-shadow .35s;
  box-shadow:0 2px 10px rgba(17,20,24,.05);}
.ct-btn:hover{border-color:var(--ink-strong);color:var(--ink-strong);box-shadow:0 6px 18px rgba(17,20,24,.1);}
.ct-btn.hidden{opacity:0;pointer-events:none;transform:translateY(8px);}
.ct-ic{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
/* 返回顶部：环形进度 + 中心百分比 */
.ct-ring{position:absolute;inset:0;width:100%;height:100%;}
.ct-ring-bg{stroke:var(--line);}
.ct-ring-fg{stroke:var(--accent-2);transition:stroke-dashoffset .15s linear;}
.ct-pct{position:relative;z-index:2;font-family:var(--serif-en);font-size:.62rem;letter-spacing:.02em;color:var(--sub);font-variant-numeric:tabular-nums;}
.ct-btn:hover .ct-pct{color:var(--ink-strong);}
/* 夜间模式按钮：切换后显示点亮态 */
body.dark .ct-btn{background:rgba(18,26,38,.92);border-color:#2a3546;color:#c9c9c9;}
body.dark .ct-btn:hover{border-color:#fff;color:#fff;}
body.dark .ct-ring-bg{stroke:#2a3546;}
body.dark .ct-ring-fg{stroke:#6aa9d8;}
body.dark .ct-pct{color:#c9c9c9;}
body.dark .ct-dark{color:#8fd0ff;border-color:#2b4a66;}

/* ============ 分页/非首页列表 ============ */
.screen-list-wrap.isPage{min-height:100vh;}
.tb-archive{max-width:840px;margin:0 auto;padding:72px 28px 40px;}
.tb-archive-banner{margin-bottom:34px;}
.tb-archive-label{display:block;font-size:var(--fs--1);letter-spacing:.28em;color:var(--muted);margin-bottom:10px;}
.tb-archive-title{font-size:var(--fs-3);letter-spacing:.02em;font-family:var(--serif-cjk);font-weight:500;}
.tb-archive-title span{font-size:var(--fs--1);color:var(--link);margin-left:10px;vertical-align:middle;}
.tb-list{margin-top:18px;}
.tb-list li{border-bottom:1px solid var(--line-soft);}
.tb-list-item{display:flex;align-items:flex-start;gap:22px;padding:24px 12px;border-radius:3px;transition:background-color .35s;}
.tb-list-item:hover{background:rgba(17,20,24,.022);}
.tb-list-thumb{flex:0 0 auto;width:150px;height:100px;overflow:hidden;background:#0b1f38;border-radius:2px;}
.tb-list-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,.84,.24,1);}
.tb-list-item:hover .tb-list-thumb img{transform:scale(1.06);}
.tb-list-body{flex:1;min-width:0;}
.tb-list-title{display:block;color:var(--ink-strong);font-size:var(--fs-1);line-height:1.45;overflow-wrap:break-word;}
.tb-list-item:hover .tb-list-title{color:var(--accent-2);}
.tb-list-excerpt{display:block;color:var(--link);font-size:var(--fs--1);line-height:1.8;margin-top:8px;overflow-wrap:break-word;}
.tb-list-date{display:block;color:var(--muted);font-size:var(--fs--1);letter-spacing:.1em;margin-top:10px;}

/* ============ 文章 / 独立页 / 归档 ============ */
.tb-single{padding:0;}
/* 阅读宽度：正文 700px 居中，两侧各留约 68px 余量给悬挂章节编号 */
.tb-single-inner{max-width:900px;margin:0 auto;padding:60px 32px 30px;}
.tb-hero{position:relative;height:46vh;min-height:280px;max-width:700px;margin:0 auto 36px;border-radius:3px;
  background-color:#1d4d78;background-image:linear-gradient(155deg,#3a6ea5 0%,#1d4d78 45%,#123a5f 100%);background-size:cover;background-position:center;overflow:hidden;}
.tb-hero::before{content:"";position:absolute;inset:0;background:var(--accent);opacity:.30;mix-blend-mode:multiply;pointer-events:none;}
.tb-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,14,26,.5),rgba(6,14,26,0) 55%);pointer-events:none;}
.tb-hero .tb-hero-date{position:absolute;bottom:40px;left:40px;writing-mode:vertical-rl;z-index:5;
  color:#fff;font-size:var(--fs-0);letter-spacing:.16em;text-shadow:0 1px 8px rgba(0,0,0,.4);font-family:var(--serif-cjk);max-height:calc(48vh - 90px);}
.post-panel{max-width:700px;margin:0 auto;}
.post-title-main{font-size:clamp(1.9rem,1.5rem+2vw,3rem);line-height:1.32;letter-spacing:.005em;margin-bottom:18px;font-family:var(--serif-cjk);font-weight:600;color:var(--ink-strong);}
.post-meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:var(--fs--1);color:var(--muted);font-family:var(--serif-en);letter-spacing:.04em;margin-bottom:34px;padding-bottom:20px;border-bottom:1px solid var(--line);}
.post-meta li a,.post-meta li{color:var(--link);}
.post-meta li a:hover{color:var(--ink-strong);}
/* v1.9.0：阅读量改用 span（无 href 的 a 不可聚焦），视觉与原来等价 */
.post-views{color:var(--link);}

/* 内联文章目录 */
.post-toc{margin:0 0 32px;border:1px solid var(--line);border-radius:3px;background:rgba(17,20,24,.014);overflow:hidden;}
.post-toc .toc-toggle{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;cursor:pointer;padding:13px 18px;font-family:var(--serif-cjk);color:var(--ink-strong);text-align:left;}
.post-toc .toc-ic{font-family:var(--serif-en);color:var(--accent-2);}
.post-toc .toc-label{font-size:.92rem;letter-spacing:.06em;font-weight:600;}
.post-toc .toc-caret{margin-left:auto;width:8px;height:8px;border-right:1.5px solid var(--link);border-bottom:1.5px solid var(--link);transform:rotate(45deg);transition:transform .3s;}
.post-toc.collapsed .toc-caret{transform:rotate(-45deg);}
.post-toc .toc-list{max-height:60vh;overflow:auto;list-style:none;margin:0;padding:2px 18px 16px;transition:max-height .4s ease,padding .4s ease,opacity .3s;}
.post-toc.collapsed .toc-list{max-height:0;padding-top:0;padding-bottom:0;opacity:0;}
.post-toc .toc-list li{line-height:1.5;}
.post-toc .toc-list a{display:block;color:var(--link);font-size:.9rem;padding:6px 0 6px 12px;border-bottom:1px dashed var(--line-soft);border-left:2px solid transparent;transition:color .25s,border-color .25s,padding-left .25s;}
.post-toc .toc-list a:hover{color:var(--ink-strong);}
/* 当前阅读位置：左侧蓝条 + 加粗 */
.post-toc .toc-list a.active{color:var(--accent-2);font-weight:600;border-left-color:var(--accent-2);padding-left:14px;}
.post-toc .toc-l2{padding-left:16px;}
.post-toc .toc-l3{padding-left:32px;}
.post-toc .toc-l2 a,.post-toc .toc-l3 a{padding-left:12px;}
.post-toc .toc-l2 a{font-size:.86rem;}
.post-toc .toc-l3 a{font-size:.82rem;}

.post-content{font-size:var(--fs-0);line-height:1.95;color:var(--ink);letter-spacing:.005em;}
/* 长英文串/文件名/URL 不换行会撑破移动端布局，仅在必要时断行 */
.post-content p,.post-content li,.post-content dd,.post-content blockquote{overflow-wrap:break-word;}
.post-content.indent p{text-indent:2em;}
.post-content p{margin:0 0 1.55em;}
/* 首段：引言化（放大 + 左侧细线 + 轻微缩进），打破整段齐头的呆板 */
.post-content > p:first-of-type{font-size:1.1em;line-height:1.95;color:var(--ink);letter-spacing:.012em;padding-left:1.1em;border-left:2px solid var(--accent);margin-bottom:2em;}
.post-content > p:first-of-type::first-letter{float:left;font-family:var(--serif-cjk);font-size:3.4em;line-height:.86;padding:8px 12px 0 0;color:var(--accent);font-weight:600;}
.post-content.indent > p:first-of-type{text-indent:0;}
/* —— 章节层级：由 JS 按「文章内相对层级」归一为 .hd-1 / .hd-2 / .hd-3 ——
   （旧文章常把标题全写成 ####，渲染出来只有 h4；这里不再依赖具体标签名） */
.post-content{counter-reset:h2cnt;}
/* 一级章节：左侧色块 + 悬挂大号淡蓝编号 */
.post-content .hd-1{counter-increment:h2cnt;position:relative;}
.post-content .hd-1::before{content:counter(h2cnt,decimal-leading-zero);position:absolute;left:-2.3em;top:-.16em;
  font-family:var(--serif-en);font-size:2em;font-weight:400;line-height:1;color:var(--accent-2);opacity:.16;letter-spacing:0;pointer-events:none;}
/* —— 日式图文错落：大图交替右/左对齐 + 隔张满宽，形成之字形排版节奏（不遮正文） —— */
.post-content img.fg-r,.post-content a.gallerybox.fg-r,
.post-content img.fg-l,.post-content a.gallerybox.fg-l{max-width:68%;}
.post-content img.fg-r,.post-content a.gallerybox.fg-r{margin-left:auto;margin-right:-6%;}
.post-content img.fg-l,.post-content a.gallerybox.fg-l{margin-left:-6%;margin-right:auto;}
.post-content a.gallerybox.fg-r,.post-content a.gallerybox.fg-l{padding:0;}
.post-content img.fg-r,.post-content img.fg-l,.post-content img.fg-wide{transition:opacity .5s;}
/* 满宽图：回归居中整幅 */
.post-content img.fg-wide,.post-content a.gallerybox.fg-wide{margin-left:auto;margin-right:auto;max-width:100%;}
/* —— 超长图（高宽比>2.5）：裁切预览 + 底部渐隐提示，点击进灯箱滚动看完整长图 —— */
.post-content a.gallerybox.is-long{position:relative;display:block;margin:1.8em auto;max-height:66vh;overflow:hidden;border-radius:3px;}
.post-content a.gallerybox.is-long img{margin:0;width:100%;height:auto;max-height:none;display:block;}
.post-content a.gallerybox.is-long::after{content:"长图 · 点击查看完整";position:absolute;left:0;right:0;bottom:0;
  padding:46px 16px 12px;text-align:center;font-family:var(--serif-cjk);font-size:.74rem;letter-spacing:.14em;
  color:#fff;background:linear-gradient(0deg,rgba(6,14,26,.82),rgba(6,14,26,0));pointer-events:none;}
/* 清除浮动：章节/引用/分隔线前后 */
.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content blockquote,.post-content hr,.post-content table,.post-content pre,.post-content ul,.post-content ol{clear:both;}
.post-content::after{content:"";display:block;clear:both;}
/* —— 基础标题排版（通用） —— */
.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{font-family:var(--serif-cjk);color:var(--ink-strong);font-weight:600;letter-spacing:.01em;line-height:1.4;scroll-margin-top:96px;}
.post-content h1,.post-content .hd-1{font-size:clamp(1.36rem,1.16rem+.8vw,1.7rem);margin:2.5em 0 1em;padding-left:15px;border-left:3px solid var(--accent);}
.post-content h2,.post-content .hd-2{font-size:clamp(1.18rem,1.06rem+.5vw,1.38rem);margin:2.1em 0 .8em;padding-bottom:.34em;border-bottom:1px solid var(--line);position:relative;padding-left:1.05em;}
.post-content h2::before,.post-content .hd-2::before{content:"";position:absolute;left:0;top:.42em;width:6px;height:6px;background:var(--accent);transform:rotate(45deg);}
.post-content h3,.post-content .hd-3{font-size:var(--fs-0);color:var(--ink);margin:1.8em 0 .7em;padding-left:.9em;position:relative;}
.post-content h3::before,.post-content .hd-3::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:1px;background:var(--accent-2);}
.post-content h4{font-size:calc(var(--fs-0) * .96);color:var(--ink);margin:1.6em 0 .6em;}
.post-content h5,.post-content h6{font-size:var(--fs--1);color:var(--sub);margin:1.4em 0 .6em;font-weight:600;}
/* 目录跳转锚点：预留吸顶/顶部空间，避免标题被裁到视口外 */
.post-content .cl-offset{position:relative;top:0;display:block;height:0;scroll-margin-top:96px;visibility:hidden;}
/* 标题紧跟段落时收紧上方留白 */
.post-content h1 + p,.post-content h2 + p,.post-content h3 + p,.post-content h4 + p{margin-top:0;}
.post-content a{color:var(--ink-strong);border-bottom:1px solid var(--muted);}
.post-content a:hover{border-bottom-color:var(--ink-strong);}
/* —— 图片：完整可见且受控（高度上限 + contain，点击可灯箱看原图） —— */
.post-content img{display:block;margin:1.8em auto;max-width:100%;width:auto;max-height:76vh;height:auto;object-fit:contain;border-radius:3px;}
/* 嵌入内容（视频 iframe / video / embed）：自适应容器宽度，避免撑破窄屏 */
.post-content iframe,.post-content video,.post-content embed,.post-content object{display:block;max-width:100%;margin:1.8em auto;border:0;border-radius:3px;}
.post-content video{height:auto;}
.post-content a.gallerybox{display:block;text-align:center;border:0;}
.post-content a.gallerybox img{margin-left:auto;margin-right:auto;border-bottom:0;}
.post-content figure{margin:1.8em 0;}
.post-content figure img{margin:0 auto;}
.post-content figcaption{text-align:center;color:var(--muted);font-size:var(--fs--1);margin-top:10px;font-family:var(--serif-en);letter-spacing:.02em;}
.post-content blockquote{position:relative;margin:2.1em 0 2.1em -6%;padding:.3em 1.4em .3em 1.9em;border-left:3px solid var(--accent);color:var(--ink);background:linear-gradient(90deg,rgba(18,56,95,.05),rgba(18,56,95,0));font-size:1.12em;line-height:1.95;font-family:var(--serif-cjk);max-width:112%;}
.post-content blockquote::before{content:"“";position:absolute;left:2px;top:-.12em;font-family:var(--serif-en);font-size:2.4em;color:var(--accent);opacity:.45;line-height:1;}
.post-content blockquote p:last-child{margin-bottom:0;}
.post-content blockquote p:first-of-type::first-letter{float:none;font-size:inherit;padding:0;color:inherit;font-weight:inherit;}
.post-content hr{border:0;text-align:center;margin:2.6em 0;}
.post-content hr::before{content:"· · ·";letter-spacing:.6em;color:var(--muted);font-family:var(--serif-en);}
.post-content ul,.post-content ol{margin:0 0 1.5em;padding-left:1.7em;}
.post-content ul li{list-style:disc;}
.post-content ol li{list-style:decimal;}
.post-content li{margin:.4em 0;}
.post-content li::marker{color:var(--accent-2);}
.post-content table{width:100%;border-collapse:collapse;margin:1.7em 0;font-size:var(--fs--1);display:block;overflow-x:auto;}
.post-content th,.post-content td{border:1px solid var(--line);padding:11px 14px;text-align:left;}
.post-content th{background:rgba(17,20,24,.04);font-weight:600;font-family:var(--serif-cjk);}
.post-content tbody tr:nth-child(even){background:rgba(17,20,24,.018);}
.post-content code{font-family:"Cascadia Code",Consolas,"SFMono-Regular",Menlo,monospace;background:rgba(17,20,24,.06);padding:2px 6px;border-radius:2px;font-size:.88em;}
/* —— 代码块：深海军蓝（东京蓝），顶部语言标签条 + 复制按钮 + 行号（Prism 深色 token 天然适配） —— */
.post-content pre,.post-content pre[class*="language-"]{position:relative;background:#0e1c2e;color:#e6edf3;padding:40px 20px 18px;overflow:auto;border:0;border-left:3px solid var(--accent-2);margin:1.7em 0;border-radius:3px;font-size:.9em;line-height:1.7;text-shadow:none;max-width:100%;-webkit-overflow-scrolling:touch;}
.post-content pre code,.post-content pre[class*="language-"]>code{background:none;padding:0;font-size:1em;color:inherit;text-shadow:none;font-family:"Cascadia Code",Consolas,"SFMono-Regular",Menlo,monospace;white-space:pre;word-break:normal;overflow-wrap:normal;display:block;min-width:0;}
/* 语言标签条 */
.post-content pre[class*="language-"]::before{content:attr(data-lang);position:absolute;top:0;left:0;right:0;height:32px;line-height:32px;padding:0 14px;font-family:var(--serif-en);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#8fa6bf;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);border-radius:3px 3px 0 0;pointer-events:none;}
/* 复制按钮 */
.tb-copy{position:absolute;top:4px;right:8px;z-index:3;border:1px solid rgba(255,255,255,.2);background:#152944;color:#c9d6e5;font-family:var(--serif-cjk);font-size:.72rem;letter-spacing:.06em;padding:3px 11px;border-radius:14px;cursor:pointer;opacity:0;transition:opacity .25s,border-color .25s,color .25s,background .25s;}
.post-content pre:hover .tb-copy,.tb-copy:focus-visible{opacity:1;}
.tb-copy:hover{border-color:#fff;color:#fff;}
.tb-copy.done{border-color:#6aa9d8;color:#8fd0ff;}
/* 行号布局（Prism line-numbers 兼容） */
.post-content pre.line-numbers{padding-left:3.4em;}
.post-content pre.line-numbers .line-numbers-rows>span::before{color:#5d738c;}
.post-content .photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:1.7em 0;}
.post-content .photos a,.post-content .photos img{margin:0;width:100%;height:170px;}
.post-content .photos img{object-fit:cover;}

.post-ad{margin:30px 0;}
.reward{margin:38px 0;text-align:center;}
#rewardButton{border:1px solid var(--ink-strong);background:#fff;color:var(--ink-strong);padding:9px 28px;font-family:var(--serif-en);cursor:pointer;letter-spacing:.1em;transition:.3s;}
#rewardButton:hover{background:var(--ink-strong);color:#fff;}
#QR{display:none;justify-content:center;flex-wrap:wrap;gap:24px;margin-top:24px;}
.qr-item img{width:132px;height:132px;object-fit:contain;}
.qr-item p{margin-top:8px;font-size:var(--fs--1);color:var(--sub);}

.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:48px 0 20px;}
.post-nav-item{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border:1px solid var(--line);border-radius:2px;transition:border-color .35s,transform .35s;min-width:0;}
.post-nav-item:hover{border-color:var(--ink-strong);transform:translateY(-2px);}
.post-nav-item.next{text-align:right;}
.post-nav-item .pn-label{font-family:var(--serif-en);font-size:.72rem;letter-spacing:.2em;color:var(--muted);}
.post-nav-item .pn-title{display:block;color:var(--ink-strong);font-size:var(--fs-0);line-height:1.45;}
.post-nav-item .pn-title a{color:var(--ink-strong);}
.post-nav-item .pn-none{display:block;color:var(--muted);font-size:var(--fs-0);}
.post-nav p{margin:0;max-width:48%;}
.post-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 0;padding-top:22px;border-top:1px solid var(--line);}
.post-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--serif-cjk);}
.post-tags .pf-label{font-size:var(--fs--1);color:var(--muted);letter-spacing:.06em;margin-right:2px;}
.post-tags a{display:inline-block;color:var(--sub);font-size:.82rem;line-height:1;padding:6px 13px;border:1px solid var(--line);border-radius:20px;transition:.3s;}
.post-tags a::before{content:"#";color:var(--muted);margin-right:3px;}
.post-tags a:hover{color:#fff;background:var(--ink-strong);border-color:var(--ink-strong);}
.post-tags a:hover::before{color:rgba(255,255,255,.7);}
.post-tags .tag-none{color:var(--muted);font-size:.82rem;}
.post-updated{font-size:var(--fs--1);color:var(--muted);font-family:var(--serif-en);letter-spacing:.02em;}

.section-sub-heading{margin:48px 0 18px;font-size:var(--fs-1);letter-spacing:.04em;font-family:var(--serif-cjk);font-weight:500;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.related-card{position:relative;display:block;padding:22px 20px 20px;border:1px solid var(--line);transition:border-color .35s,transform .35s,box-shadow .35s;overflow:hidden;}
.related-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--accent);transition:width .4s cubic-bezier(.16,.84,.24,1);}
.related-card:hover{border-color:var(--ink-strong);transform:translateY(-3px);box-shadow:0 12px 30px rgba(17,20,24,.06);}
.related-card:hover::before{width:100%;}
.related-card span{color:var(--ink-strong);font-size:var(--fs-0);line-height:1.5;display:block;}

/* ============ 评论（For Words 极简衬线卡片） ============ */
#comments{margin:52px 0 24px;}
.respond-heading{font-size:var(--fs-1);margin-bottom:20px;letter-spacing:.03em;font-family:var(--serif-cjk);font-weight:500;}
.respondtitle{margin:34px 0 6px;padding-top:8px;}
.respondtitle .respond-heading{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.respondtitle .respond-heading::after{content:"";flex:1;height:1px;background:var(--line);}
.respond{margin-bottom:40px;padding:26px 24px;border:1px solid var(--line);border-radius:2px;background:rgba(17,20,24,.012);}
.cancel-comment-reply{font-size:var(--fs--1);color:var(--link);margin-bottom:12px;}
.cancel-comment-reply a{color:var(--link);}
.cancel-comment-reply a:hover{color:var(--ink-strong);}
.comment-fields{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:14px;}
.comment-fields p{margin:0;flex:1 1 30%;min-width:0;}
.comment-fields input{width:100%;border:0;border-bottom:1px solid var(--muted);background:transparent;padding:9px 2px;font-family:var(--serif-cjk);font-size:var(--fs-0);color:var(--ink-strong);outline:none;transition:border-color .3s;}
.comment-fields input::placeholder{color:var(--muted);}
.comment-fields input:focus{border-bottom-color:var(--ink-strong);}
#code{flex:1 1 100%;}
#code,#code input{font-family:var(--serif-en);}
/* 评论输入区：文本域 + 表情工具栏合为一个整体边框，表情面板在框内展开 */
.comment-textarea-box{position:relative;margin-top:6px;border:1px solid var(--muted);border-radius:3px;overflow:hidden;transition:border-color .3s;}
.comment-textarea-box:focus-within{border-color:var(--ink-strong);}
.OwO-textarea,#textarea{width:100%;border:0;background:transparent;padding:15px;font-family:var(--serif-cjk);font-size:var(--fs-0);line-height:1.9;outline:none;resize:vertical;border-radius:0;transition:border-color .3s;color:var(--ink-strong);}
.OwO-textarea:focus,#textarea:focus{border-color:transparent;}
.comment-submit-box{margin-top:16px;}
/* 提交按钮：与上方文本框（.comment-textarea-box）同宽，整列视觉收口 */
.comment-submit{display:block;width:100%;border:1px solid var(--ink-strong);background:var(--ink-strong);color:#fff;padding:12px 0;font-family:var(--serif-cjk);cursor:pointer;letter-spacing:.12em;font-size:var(--fs-0);line-height:1.6;transition:.3s;}
.comment-submit:hover{background:#fff;color:var(--ink-strong);}
.comment-logged{font-size:var(--fs-0);color:var(--sub);margin-bottom:12px;}
.comment-logged a{color:var(--ink-strong);}

/* 评论：保留未被下方新版覆盖的规则（字体/间距统一在「评论区排版」段） */
.comment-content img{max-width:100%;height:auto;max-height:60vh;}
.comment-at a{color:var(--ink-strong);border-bottom:1px solid var(--muted);margin-right:8px;}
.commentReview{color:#b26b3a;font-size:var(--fs--1);}
/* 评论“显示更多” */
#cmt-list .cmt-hidden,#comments .comment-list > li.cmt-hidden{display:none;}
.cmt-more{display:block;margin:22px auto 4px;border:1px solid var(--ink-strong);background:transparent;color:var(--ink-strong);font-family:var(--serif-cjk);font-size:.86rem;letter-spacing:.08em;padding:9px 26px;border-radius:22px;cursor:pointer;transition:.3s;}
.cmt-more:hover{background:var(--ink-strong);color:#fff;}

/* OwO 面板适配白底 */
.OwO{position:relative;margin-top:8px;}
.OwO .OwO-body{background:#fff;color:#111418;border:1px solid var(--line);}
.OwO .OwO-bar{border:1px solid var(--line);border-bottom:0;}
.OwO .OwO-bar .OwO-items .OwO-item a{color:#111418;}

/* ============ 归档空 / 404 ============ */
.archive-empty{text-align:center;padding:80px 0;color:var(--sub);}
.archive-empty h2{font-size:var(--fs-2);margin-bottom:14px;color:var(--ink-strong);font-family:var(--serif-cjk);}
.archive-empty p{font-size:var(--fs-0);line-height:2;}
.archive-empty a{color:var(--ink-strong);border-bottom:1px solid var(--muted);}
.archive-empty a:hover{border-bottom-color:var(--ink-strong);}
.error-404 .error-404-code{font-size:clamp(4rem,10vw,7rem);line-height:1;letter-spacing:.02em;color:var(--accent);font-family:var(--serif-en);font-weight:500;margin-bottom:6px;}
.error-404 h3{font-size:var(--fs-1);color:var(--ink-strong);font-family:var(--serif-cjk);margin-bottom:16px;letter-spacing:.04em;}
.error-404 p{margin-bottom:26px;}
.error-404 .e404-home{display:inline-block;color:#fff;background:var(--ink-strong);padding:10px 30px;border:0;border-radius:2px;font-family:var(--serif-cjk);letter-spacing:.12em;transition:.3s;}
.error-404 .e404-home:hover{background:var(--accent);color:#fff;}

/* ============ 页脚（内页） ============ */
#tb-foot{margin-top:64px;padding:44px 30px 40px;border-top:1px solid var(--line);text-align:center;}
.tb-foot-inner{max-width:820px;margin:0 auto;font-size:var(--fs--1);color:var(--link);font-family:var(--serif-en);line-height:2;}
.tb-foot-copy a{color:var(--sub);}
.tb-foot-copy a:hover{color:var(--ink-strong);}
.tb-foot-stat{margin-top:6px;color:var(--muted);}
.tb-foot-stat .js-runtime{color:var(--sub);}
.tb-foot-links{margin-top:12px;}
.tb-foot-links a{color:var(--link);margin-right:14px;}
.tb-foot-links a:hover{color:var(--ink-strong);}

/* ============ 灯箱 ============ */
#tb-lightbox{position:fixed;inset:0;background:rgba(6,14,26,.92);display:none;align-items:center;justify-content:center;z-index:9000;opacity:0;transition:opacity .3s;}
#tb-lightbox.on{display:flex;opacity:1;}
#tb-lightbox img{max-width:92%;max-height:92%;object-fit:contain;}

/* ============ Pjax 顶栏 ============ */
#pjax-bar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--ink-strong);z-index:11000;opacity:0;transition:width .3s,opacity .3s;}
#pjax-bar.loading{opacity:1;width:35%;}
#pjax-bar.done{width:100%;}

/* ============ 阅读进度（文章/独立页顶部） ============ */
#read-progress{position:fixed;top:0;left:0;right:var(--side-total);height:2px;z-index:5500;background:transparent;pointer-events:none;}
#read-progress span{display:block;height:100%;width:0;background:var(--accent-2);transition:width .1s linear;}

/* ============ 提示框 / 下载按钮（保留内容组件） ============ */
#tips-red,#tips-green,#tips-orange,#bddownload,#lzdownload,#download{margin:1.2em 0;padding:12px 16px;border:1px solid var(--line);text-align:center;}
#tips-red{border-left:3px solid #b26b3a;}
#tips-green{border-left:3px solid #17aa6c;}
#tips-orange{border-left:3px solid #d26e49;}
#bddownload a,#lzdownload a,#download a{color:var(--ink-strong);border-bottom:1px solid var(--muted);}
input.todo_checkbox,input.done_checkbox{margin-right:8px;}

/* ============ 图片懒加载占位 ============ */
img[data-original]{opacity:0;transition:opacity .55s;}
img.loaded{opacity:1;}

/* ============ 全屏视觉首屏（100vh 大图 + 标题叠加） ============ */
/* 首屏：向右延伸至视口最右，图片从侧栏下方穿过 */
.hf-hero{position:relative;width:calc(100% + var(--side-total));margin-right:calc(-1 * var(--side-total));
  height:100vh;min-height:560px;visibility:hidden;overflow:hidden;background:#0b1f38;}
.hf-hero.splide.is-initialized,.hf-hero.splide.is-active{visibility:visible;}
.hf-hero .splide__track,.hf-hero .splide__list,.hf-hero .splide__slide{height:100%;}
.hf-slide{position:relative;display:block;width:100%;height:100%;background-size:cover;background-position:center;background-color:#0b1f38;overflow:hidden;}
/* 插画模式：底色与插画边缘同色，窄屏用 auto 高度铺满避免裁掉人物 */
.hf-slide.is-art{background-color:#081a30;background-position:center center;background-repeat:no-repeat;}
.hf-slide.is-art .hf-scrim{background:
    linear-gradient(0deg,var(--bg) 0%,rgba(255,255,255,0) 6%),
    linear-gradient(90deg,rgba(6,14,26,.62) 0%,rgba(6,14,26,.28) 30%,rgba(6,14,26,0) 52%),
    linear-gradient(180deg,rgba(6,14,26,.30) 0%,rgba(6,14,26,.04) 36%,rgba(6,14,26,.06) 62%,rgba(6,14,26,.18) 100%);}
/* 遮罩：上方压暗保证文字可读，底部渐隐到页面底色 → 与正文自然衔接，不再是硬切 */
.hf-scrim{position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(0deg,var(--bg) 0%,rgba(255,255,255,0) 16%),
    linear-gradient(180deg,rgba(6,14,26,.52) 0%,rgba(6,14,26,.14) 34%,rgba(6,14,26,.18) 58%,rgba(6,14,26,.46) 100%);}
/* 左侧竖排刊头 */
.hf-vlabel{position:absolute;left:clamp(16px,2.4vw,42px);top:clamp(90px,14vh,150px);z-index:2;
  writing-mode:vertical-rl;text-orientation:mixed;font-size:.66rem;letter-spacing:.36em;
  color:rgba(255,255,255,.62);text-transform:uppercase;pointer-events:none;}
/* 右下大号页码 */
.hf-num{position:absolute;right:calc(var(--side-total) + clamp(20px,2.4vw,44px));bottom:clamp(96px,15vh,168px);z-index:2;
  font-family:var(--serif-en);font-size:clamp(1.6rem,1rem+2.4vw,3.2rem);font-weight:600;line-height:1;
  color:rgba(255,255,255,.55);letter-spacing:.02em;pointer-events:none;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:.16em;}
.hf-num i{font-size:.42em;font-weight:400;color:rgba(255,255,255,.4);font-style:normal;letter-spacing:.08em;}
/* 标题块 */
.hf-body{position:absolute;left:clamp(24px,6vw,120px);right:calc(var(--side-total) + clamp(24px,4vw,90px));bottom:clamp(84px,13vh,150px);z-index:3;display:flex;flex-direction:column;gap:16px;}
.hf-cat{align-self:flex-start;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:#fff;
  background:rgba(18,56,95,.72);padding:5px 13px;border-radius:2px;backdrop-filter:blur(3px);}
.hf-title{font-family:var(--serif-cjk);font-size:clamp(1.9rem,1.2rem+3vw,4rem);font-weight:600;line-height:1.24;
  color:#fff;letter-spacing:.015em;text-shadow:0 2px 26px rgba(0,0,0,.34);max-width:15em;}
.hf-meta{display:flex;align-items:center;gap:20px;color:rgba(255,255,255,.85);font-size:.8rem;letter-spacing:.1em;}
.hf-meta .hf-more{color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px;transition:border-color .3s,letter-spacing .35s;}
.hf-slide:hover .hf-more{border-bottom-color:#fff;letter-spacing:.14em;}
/* 底部 SCROLL 提示（滚动后淡出） */
.hf-scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:9px;font-size:.6rem;letter-spacing:.34em;
  color:rgba(255,255,255,.6);pointer-events:none;transition:opacity .4s;}
.hf-scroll-line{display:block;width:1px;height:38px;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,0));animation:hfLine 2.2s cubic-bezier(.4,0,.2,1) infinite;}
@keyframes hfLine{0%{transform:scaleY(.2);transform-origin:top;opacity:0}45%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);transform-origin:bottom;opacity:0}}
.hf-hero.scrolled .hf-scroll{opacity:0;}
/* 箭头 */
/* 箭头：极简描边圆环（去掉深色实心块），悬停浮现 */
.hf-hero .splide__arrows{position:absolute;inset:0;z-index:4;pointer-events:none;}
.hf-hero .splide__arrows .splide__arrow{pointer-events:auto;}
.hf-hero .splide__arrow{position:absolute;background:transparent;border:1px solid rgba(255,255,255,.42);border-radius:50%;
  width:44px;height:44px;opacity:0;top:50%;transform:translateY(-50%);
  transition:opacity .35s,border-color .35s,background .35s,transform .35s;backdrop-filter:none;}
.hf-hero:hover .splide__arrow{opacity:.85;}
.hf-hero .splide__arrow:hover{opacity:1;background:rgba(255,255,255,.14);border-color:#fff;transform:translateY(-50%) scale(1.04);}
.hf-hero .splide__arrow svg{fill:none;stroke:#fff;stroke-width:1.6;width:15px;height:15px;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s;}
.hf-hero .splide__arrow--prev{left:26px;}
.hf-hero .splide__arrow--prev svg{transform:rotate(180deg);}
.hf-hero .splide__arrow--next{right:calc(var(--side-total) + 26px);}
.hf-hero .splide__pagination{display:none;}
/* 首页视图不留顶部内边距，首屏顶到页面最上沿 */
#view-home{padding-top:0;}
/* 首屏覆盖期：侧栏转为毛玻璃，让图片从下方透出，滚动过首屏后自动恢复实底 */
body.hero-over #side{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62));
  backdrop-filter:blur(26px) saturate(1.9);-webkit-backdrop-filter:blur(26px) saturate(1.9);
  box-shadow:inset 1px 0 0 rgba(255,255,255,.5),-12px 0 34px rgba(6,14,26,.10);}
body.hero-over #side .tb-sections a .s-cn,body.hero-over #side .tb-sections a .s-en{color:var(--ink-strong);}
body.hero-over #side .side-recent .sr-t,body.hero-over #side .side-recent time{color:#33414f;}
body.hero-over #side .sr-head .sr-cn,body.hero-over #side .sr-head .sr-en{color:#4a5766;}
body.hero-over #side .rk-name{color:#33414f;}
body.hero-over #side .rk-count,body.hero-over #side .rk-count i{color:#55636f;}
body.hero-over #side .meta-stats,body.hero-over #side .meta-tech,body.hero-over #side .meta-run,body.hero-over #side .meta-copy{color:#4a5766;}
body.hero-over #side .tb-search input{color:#2c3a48;}
body.dark.hero-over #side{background:rgba(10,16,26,.52);}
/* 统一内容宽度（与整站一致） */
.tb-wrap{width:min(920px,90%);margin:0 auto;}
/* 首屏下方的引言：左对齐编辑式排版 */
.home-intro{position:relative;width:min(920px,90%);margin:0 auto;padding:70px 0 0;}
.hi-inner{display:grid;grid-template-columns:74px minmax(0,1fr) 220px;align-items:center;gap:0 26px;
  border-top:1px solid var(--line);padding-top:34px;}
.hi-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:.64rem;letter-spacing:.4em;
  color:var(--muted);text-transform:uppercase;padding-top:2px;}
.hi-body{min-width:0;}
.home-masthead{margin:0;padding:0;text-align:left;}
.hm-eyebrow{font-size:var(--fs--1);letter-spacing:.22em;color:var(--link);margin:0 0 14px;}
.hm-title{font-family:var(--serif-cjk);font-size:clamp(1.75rem,1.25rem+1.7vw,2.55rem);font-weight:600;
  letter-spacing:.03em;line-height:1.3;color:var(--ink-strong);margin:0 0 16px;text-align:left;}
.hm-desc{font-family:var(--serif-cjk);font-size:calc(var(--fs-0) * .95);line-height:1.95;color:var(--sub);
  max-width:34em;margin:0 0 20px;text-align:left;}
.hi-meta{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:.76rem;color:var(--muted);}
.hi-meta i{display:inline-block;width:16px;height:1px;background:var(--line);}
.hi-meta .font-en{color:var(--ink-strong);font-weight:600;font-variant-numeric:tabular-nums;}
.hi-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;}
.hi-stats .hs-item{background:var(--bg);padding:14px 14px;display:flex;flex-direction:column;gap:5px;}
.hi-stats .hs-n{font-family:var(--serif-en);font-size:1.4rem;font-weight:600;line-height:1;color:var(--ink-strong);font-variant-numeric:tabular-nums;}
.hi-stats .hs-l{font-size:.68rem;color:var(--muted);letter-spacing:.08em;}
/* 首页精选大卡（置顶 / 精选文章固定在最前，不受分页影响） */
.home-feature{list-style:none;margin:26px 0 8px;padding:0;display:grid;gap:14px;}
.hf-card{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:0;
  border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--bg);
  transition:border-color .35s,box-shadow .35s,transform .35s;}
.hf-card:hover{border-color:var(--ink-strong);box-shadow:0 10px 32px rgba(17,20,24,.08);transform:translateY(-2px);}
.hf-card-media{position:relative;overflow:hidden;background:#0b1f38;min-height:210px;}
.hf-card-media img,.hf-card-media svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,.84,.24,1);}
.hf-card:hover .hf-card-media img,.hf-card:hover .hf-card-media svg{transform:scale(1.03);}
.hf-card-body{display:flex;flex-direction:column;gap:10px;padding:24px 26px;min-width:0;}
.hf-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.hf-pin{font-size:.6rem;letter-spacing:.2em;color:#fff;background:var(--accent-2);padding:3px 8px;border-radius:2px;}
.hf-card-cat{font-size:.72rem;color:var(--accent-2);letter-spacing:.06em;font-family:var(--serif-cjk);}
.hf-card-date{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.hf-card-title{font-family:var(--serif-cjk);font-size:clamp(1.12rem,1rem+.5vw,1.4rem);font-weight:600;line-height:1.44;
  color:var(--ink-strong);letter-spacing:.01em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.hf-card-ex{font-size:var(--fs--1);line-height:1.78;color:var(--link);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.hf-card-body .art-stats{margin-top:auto;padding-top:4px;}

/* ============ 归档视图（按年度） ============ */
.tb-archive-years{width:min(920px,90%);margin:0 auto;}
.year-group{border-bottom:1px solid var(--line-soft);}
.year-group:first-child{border-top:1px solid var(--line-soft);}
.year-head{display:flex;align-items:baseline;gap:16px;width:100%;padding:26px 8px;border:0;background:transparent;cursor:pointer;text-align:left;transition:background-color .3s;}
.year-head:hover{background:rgba(17,20,24,.02);}
.year-head .yh-year{font-family:var(--serif-en);font-size:clamp(1.6rem,1.2rem+1.6vw,2.4rem);font-weight:600;color:var(--ink-strong);letter-spacing:.02em;min-width:3.2em;}
.year-head .yh-count{font-size:.76rem;letter-spacing:.14em;color:var(--muted);}
.year-head .yh-toggle{margin-left:auto;width:9px;height:9px;border-right:1.5px solid var(--link);border-bottom:1.5px solid var(--link);transform:rotate(45deg);transition:transform .3s;}
.year-group.collapsed .yh-toggle{transform:rotate(-45deg);}
.year-list{list-style:none;margin:0;padding:0 8px 18px;overflow:hidden;transition:max-height .4s ease,opacity .3s;}
.year-group.collapsed .year-list{max-height:0!important;padding-bottom:0;opacity:0;}
.year-item{border-top:1px dashed var(--line-soft);}
/* 网格列：日期 / 标题 / 阅读+评论 / 分类 —— 各列固定宽度，纵向严格对齐 */
.year-item a{display:grid;grid-template-columns:4.2em minmax(0,1fr) 8.6em 5.8em;align-items:center;gap:16px;padding:14px 12px;border-radius:3px;transition:background-color .3s;position:relative;}
.year-item a:hover{background:rgba(17,20,24,.025);}
.year-item a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-2);transform:scaleY(0);transition:transform .3s;transform-origin:center;}
.year-item a:hover::before{transform:scaleY(1);}
.yi-date{font-size:.82rem;color:var(--muted);letter-spacing:.04em;font-variant-numeric:tabular-nums;}
.yi-title{min-width:0;color:var(--ink-strong);font-size:var(--fs-0);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .3s;}
.year-item a:hover .yi-title{color:var(--accent-2);}
.yi-cat{justify-self:end;font-size:.74rem;color:var(--link);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
/* 全部文章列表头：计数靠右 */
.home-list-head .hlh-count{margin-left:auto;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums;}

/* ============ 导航：日式倒卷 + 线条揭示特效 ============ */
#side .tb-sections li a .s-en{position:relative;}
#side .tb-sections li a .s-en::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--accent-2);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,.84,.24,1);}
#side .tb-sections li a:hover .s-en::after,#side .tb-sections li a.is-active .s-en::after{transform:scaleX(1);}
#side .tb-sections li a .s-cn{transform:translateX(0);transition:transform .38s cubic-bezier(.16,.84,.24,1),color .3s;}
#side .tb-sections li a:hover .s-cn{transform:translateX(4px);}

/* ============ 文章索引：悬挂序号（编辑感） ============ */
.art-card{padding-left:52px;}
.art-num{position:absolute;left:6px;top:22px;font-family:var(--serif-en);font-size:.86rem;letter-spacing:.04em;
  color:var(--muted);font-variant-numeric:tabular-nums;transition:color .3s,transform .3s;}
.art-card:hover .art-num{color:var(--accent-2);transform:translateX(-2px);}
/* 公告条 */
.art-note{position:relative;display:flex;gap:14px;align-items:flex-start;margin:0 0 8px;padding:14px 18px;
  border-left:2px solid var(--accent-2);background:linear-gradient(90deg,rgba(18,56,95,.05),rgba(18,56,95,0));}
.art-note .an-label{flex:0 0 auto;font-size:.62rem;letter-spacing:.2em;color:var(--accent-2);padding-top:.25em;}
.art-note p{margin:0;font-size:var(--fs--1);line-height:1.8;color:var(--sub);}

/* ============ 评论头像（默认头像 = 品牌色 + 首字） ============ */
.av{position:relative;flex:0 0 auto;width:40px;height:40px;border-radius:50%;overflow:hidden;display:block;}
.av-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;background:transparent;}
.av-fb{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,var(--av-bg,rgba(18,56,95,0.88)),rgba(10,24,42,.9));}
.av-ch{font-family:var(--serif-cjk);font-size:17px;line-height:1;color:#fff;opacity:.92;font-weight:500;
  text-shadow:0 1px 2px rgba(0,0,0,.18);}
/* 作者本人评论：加一圈强调描边 */
.comment-by-author .av{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--accent-2);}

/* ============ 评论区排版 ============ */
.respondtitle{display:flex;align-items:baseline;gap:14px;margin-bottom:6px;}
.respondtitle .respond-heading{margin-bottom:8px;}
.respondtitle .cmt-sort{margin-left:auto;font-size:.62rem;letter-spacing:.22em;color:var(--muted);}
.comment-list{list-style:none;margin:0;padding:0;}
#comments .comment-body{list-style:none;}
.comment-inner{position:relative;padding:13px 0 12px 48px;border-top:1px solid var(--line-soft);}
.comment-list > .comment-body:first-child > .comment-inner{border-top:1px solid var(--line);}
.comment-author{display:flex;align-items:center;gap:9px;}
.comment-author .av{position:absolute;left:0;top:12px;width:36px;height:36px;}
.comment-author .av-ch{font-size:15px;}
.comment-author .fn{font-family:var(--serif-cjk);font-size:.9rem;color:var(--ink-strong);font-style:normal;font-weight:600;}
.comment-author .fn.comment-by-author::after{content:"博主";display:inline-block;vertical-align:2px;white-space:nowrap;color:#fff;background:var(--accent-2);font-size:.62rem;line-height:1.7;padding:0 7px;border-radius:3px;margin-left:7px;letter-spacing:.08em;font-family:var(--serif-cjk);font-weight:400;}
.comment-meta{display:flex;align-items:center;flex-wrap:wrap;gap:2px 12px;margin:2px 0 6px;}
.comment-meta .comment-time{font-size:.68rem;color:var(--muted);letter-spacing:.03em;}
.comment-meta .comment-reply{font-size:.68rem;}
.comment-meta .comment-reply a{color:var(--link);border-bottom:1px solid transparent;transition:color .25s,border-color .25s;}
.comment-meta .comment-reply a:hover{color:var(--accent-2);border-bottom-color:var(--accent-2);}
.comment-content{font-size:calc(var(--fs-0) * .93);line-height:1.72;color:var(--ink);word-break:break-word;}
.comment-content p{margin:0 0 .45em;}
.comment-content p:last-child{margin-bottom:0;}
/* 子评论：左侧细线 + 缩进 */
.comment-children{margin-left:48px;padding-left:14px;border-left:1px solid var(--line-soft);}
.comment-children .comment-inner{padding:11px 0 11px 38px;}
.comment-children .comment-author .av{width:28px;height:28px;top:11px;}
.comment-children .av-ch{font-size:12px;}
/* 评论分页容器（按钮范式见文件末尾「统一分页栏」一节） */
.cmt-pager-wrap{margin-top:26px;}

/* ============ 友链页 ============
   与文章页共用同一套排版：.tb-view--doc > .tb-single-inner > .post-panel > .post-content
   宽度 / 字号 / 行高 / 标题层级全部继承文章页，不再自定义容器宽度
   ============================================================ */
.tb-view--doc{padding:0;}
.tb-view--doc .tb-single-inner{padding-top:56px;}
/* 首段：沿用文章页首段的左侧竖线，但不做首字下沉（友链引言不适合放大首字） */
.post-content > p.friends-intro:first-of-type{font-size:var(--fs-0);line-height:1.95;
  padding-left:1.1em;border-left:2px solid var(--accent);margin-bottom:2.2em;color:var(--ink);}
.post-content > p.friends-intro:first-of-type::first-letter{float:none;font-size:inherit;padding:0;
  color:inherit;font-weight:inherit;font-family:inherit;}

.fl-section{margin-bottom:44px;}
.fl-section:last-of-type{margin-bottom:4px;}
.fl-head{display:flex;align-items:baseline;gap:12px;padding-bottom:11px;
  border-bottom:1px solid var(--line);margin-bottom:18px;}
.fl-title{font-family:var(--serif-cjk);font-size:var(--fs-0);font-weight:600;color:var(--ink-strong);letter-spacing:.04em;}
.fl-en{font-size:.62rem;letter-spacing:.24em;color:var(--muted);}
.fl-badge{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.7rem;color:var(--sub);
  border:1px solid var(--line);border-radius:2px;padding:3px 9px;}
.fl-badge i{width:6px;height:6px;border-radius:50%;display:inline-block;}
.fl-badge-ok i{background:#3f9d5a;box-shadow:0 0 0 3px rgba(63,157,90,.15);}
.fl-badge-off i{background:#c1584f;box-shadow:0 0 0 3px rgba(193,88,79,.15);}
.fl-badge-plain{border-style:dashed;}

.fl-note{font-size:var(--fs--1);color:var(--muted);margin:-8px 0 16px;line-height:1.8;}

/* minmax(0,1fr) 而非 1fr：否则 grid 列会按内容最小宽度撑开，长域名导致移动端横向溢出 */
/* 友链区块位于 .post-content 内，会被 .post-content ul li{list-style:disc} 命中出圆点，
   这里用更高特异性显式清除（不影响正文里的普通列表） */
.post-content .fl-grid,.post-content .fl-grid > li,
.post-content .fl-chips,.post-content .fl-chips > li{list-style:none;margin:0;padding:0;}
/* 正文 .post-content a{border-bottom:1px solid var(--muted)} 会污染卡片/胶囊的底边，
   这里按四边统一回主题描边色 */
.post-content .fl-card,.post-content .fl-chips a{border:1px solid var(--line);}
.post-content .fl-card:hover,.post-content .fl-chips a:hover{border-color:var(--ink-strong);}
.fl-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.fl-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:13px 15px 13px 28px;min-width:0;
  border:1px solid var(--line);border-radius:4px;overflow:hidden;
  transition:border-color .3s,background .3s,transform .3s,box-shadow .3s;}
.fl-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-2);
  transform:scaleY(0);transform-origin:center;transition:transform .35s;}
.fl-card:hover{border-color:var(--ink-strong);background:rgba(17,20,24,.02);
  transform:translateY(-2px);box-shadow:0 8px 22px rgba(17,20,24,.06);}
.fl-card:hover::after{transform:scaleY(1);}
.fl-dot{position:absolute;left:13px;top:17px;width:5px;height:5px;border-radius:1px;}
.fl-card.is-ok .fl-dot{background:#3f9d5a;box-shadow:0 0 0 3px rgba(63,157,90,.12);}
.fl-card.is-off .fl-dot{background:#c1584f;box-shadow:0 0 0 3px rgba(193,88,79,.12);}
.fl-name{font-family:var(--serif-cjk);font-size:.86rem;color:var(--ink-strong);font-weight:600;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fl-host{font-size:.66rem;color:var(--muted);letter-spacing:.02em;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fl-card.is-off .fl-name{color:var(--link);}
.fl-card.is-off .fl-host{color:#b06a63;}

/* 单向收录：胶囊标签（发丝描边 + 前置状态点，悬停描边加深、点变强调色） */
.fl-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px;}
.fl-chips a{position:relative;display:inline-flex;align-items:center;gap:8px;
  padding:7px 15px 7px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;
  font-family:var(--serif-cjk);font-size:.78rem;line-height:1.25;letter-spacing:.02em;color:var(--sub);
  transition:color .26s,border-color .26s,background .26s,transform .26s;}
.fl-chips a::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.3;
  transition:opacity .26s,background .26s,transform .26s;}
.fl-chips a:hover{border-color:var(--ink-strong);color:var(--ink-strong);background:rgba(17,20,24,.035);
  transform:translateY(-1px);}
.fl-chips a:hover::before{opacity:1;background:var(--accent-2);transform:scale(1.2);}

/* ============ 归档：阅读量与评论量 ============ */
/* 阅读量/评论量：固定列宽 + 数字等宽右对齐，纵向整齐 */
.yi-stats{justify-self:end;display:inline-flex;gap:14px;align-items:center;}
.yi-stat{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;min-width:3.5em;
  font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.yi-stat .as-ic{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;}
.yi-stat .font-en,.yi-stat{font-variant-numeric:tabular-nums;}
.year-item a:hover .yi-stat{color:var(--sub);}

/* ============ 评论表情（内嵌在输入框下方，展开不浮层、不遮挡） ============ */
#comments{max-width:700px;margin:0 auto;}
#comments .OwO{position:relative;display:block;width:100%;margin:0;border-top:1px solid var(--line-soft);background:rgba(17,20,24,.015);}
.tb-emoji-btn{display:flex;align-items:center;gap:7px;width:100%;border:0;background:transparent;
  color:var(--sub);font-family:var(--serif-cjk);font-size:.78rem;letter-spacing:.06em;
  padding:9px 14px;cursor:pointer;transition:color .25s,background .25s;text-align:left;}
.tb-emoji-btn:hover,.OwO.is-open .tb-emoji-btn{color:var(--accent-2);background:rgba(17,20,24,.03);}
.tb-emoji-btn .eb-ic{font-size:1rem;line-height:1;opacity:.9;}
.tb-emoji-btn .eb-arrow{margin-left:auto;font-size:.62rem;letter-spacing:.14em;color:var(--muted);transition:transform .3s;}
.OwO.is-open .tb-emoji-btn .eb-arrow{transform:rotate(180deg);}
.tb-emoji-panel{position:static;width:100%;max-width:100%;box-sizing:border-box;
  background:var(--bg);border:0;border-top:1px solid var(--line-soft);border-radius:0;
  box-shadow:none;overflow:hidden;}
.em-tabs{display:flex;gap:0;border-bottom:1px solid var(--line-soft);}
.em-tab{flex:1;border:0;background:transparent;cursor:pointer;padding:8px 4px;font-size:.72rem;
  font-family:var(--serif-cjk);color:var(--muted);border-bottom:2px solid transparent;transition:.2s;}
.em-tab:hover{color:var(--ink-strong);}
.em-tab.is-on{color:var(--accent-2);border-bottom-color:var(--accent-2);font-weight:600;}
.em-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px;
  padding:10px;max-height:186px;overflow-y:auto;}
.em-item{border:0;background:transparent;cursor:pointer;font-size:1.22rem;line-height:1;
  padding:6px 0;border-radius:3px;transition:background .15s,transform .15s;}
.em-item:hover{background:rgba(17,20,24,.06);transform:scale(1.12);}

/* ============ 灯箱：长图可滚动查看（修复「点开也不能放大」） ============ */
#tb-lightbox{overflow:auto;padding:26px 0 40px;align-items:flex-start;cursor:zoom-out;}
#tb-lightbox img{display:block;margin:0 auto;width:auto;max-width:94vw;max-height:none;object-fit:contain;}

/* ============ 引言区附加：公告 / 随机推荐 ============ */
.hi-notice{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding:13px 16px;
  border-left:2px solid var(--accent-2);background:linear-gradient(90deg,rgba(29,92,143,.06),rgba(29,92,143,0));border-radius:0 3px 3px 0;}
.hi-notice .hn-tag{flex:0 0 auto;font-size:.6rem;letter-spacing:.2em;color:var(--accent-2);padding-top:.28em;}
.hi-notice .hn-body{font-size:var(--fs--1);line-height:1.85;color:var(--sub);}
.hi-notice .hn-body p{margin:0;}
.hi-pick{display:flex;align-items:center;gap:10px;margin-top:22px;padding:12px 16px;
  border:1px solid var(--line);border-radius:3px;transition:border-color .3s,background .3s;}
.hi-pick:hover{border-color:var(--ink-strong);background:rgba(17,20,24,.02);}
.hi-pick .hp-tag{flex:0 0 auto;font-size:.58rem;letter-spacing:.18em;color:#fff;background:var(--ink-strong);padding:2px 7px;border-radius:2px;}
.hi-pick .hp-label{flex:0 0 auto;font-size:.74rem;color:var(--muted);letter-spacing:.06em;}
.hi-pick .hp-title{flex:1;min-width:0;font-family:var(--serif-cjk);font-size:.9rem;color:var(--ink-strong);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .3s;}
.hi-pick:hover .hp-title{color:var(--accent-2);}
.hi-pick .hp-arrow{flex:0 0 auto;color:var(--muted);transition:transform .3s,color .3s;}
.hi-pick:hover .hp-arrow{color:var(--accent-2);transform:translateX(3px);}

/* ============ 侧栏：评论榜 + 励志语句 ============ */
#side .side-rank{margin-top:0;}
#side .side-rank .rk-podium{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:5px;margin-top:12px;}
#side .side-rank .rk-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;
  text-decoration:none;transition:transform .3s;}
#side .side-rank .rk-item:hover{transform:translateY(-2px);}
#side .side-rank .rk-1{order:2;}
#side .side-rank .rk-2{order:1;}
#side .side-rank .rk-3{order:3;}
#side .side-rank .rk-av{position:relative;width:30px;height:30px;}
#side .side-rank .rk-av .av{width:30px;height:30px;}
#side .side-rank .rk-av .av-ch{font-size:13px;}
#side .side-rank .rk-crown{position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(-8deg);
  font-size:.76rem;line-height:1;color:#e0a94f;text-shadow:0 1px 2px rgba(0,0,0,.22);pointer-events:none;}
#side .side-rank .rk-name{max-width:100%;font-size:.66rem;color:var(--sub);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#side .side-rank .rk-count{font-size:.6rem;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1;}
#side .side-rank .rk-count i{font-style:normal;font-size:.54rem;margin-left:1px;}
#side .side-rank .rk-bar{width:100%;display:flex;align-items:flex-start;justify-content:center;
  padding-top:5px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,rgba(17,20,24,.06),rgba(17,20,24,.015));
  transition:background .3s;}
#side .side-rank .rk-bar i{font-style:normal;font-size:.6rem;color:var(--muted);letter-spacing:.05em;}
#side .side-rank .rk-1 .rk-bar{height:46px;background:linear-gradient(180deg,rgba(29,92,143,.22),rgba(29,92,143,.05));}
#side .side-rank .rk-2 .rk-bar{height:34px;}
#side .side-rank .rk-3 .rk-bar{height:26px;}
#side .side-rank .rk-1 .rk-bar i{color:var(--accent-2);font-weight:700;}
#side .side-rank .rk-1 .rk-name{color:var(--ink-strong);font-weight:600;}

/* ============ 右侧励志竖排滚动条（与角落工具栏同一视觉语言） ============ */
#quote-ticker{position:fixed;right:calc(var(--side-total) + 16px);top:50%;transform:translateY(-50%);z-index:1500;
  width:38px;max-height:300px;display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:14px 0;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.72);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 20px rgba(17,20,24,.06);}
#quote-ticker .qt-mark{font-family:var(--serif-en);font-size:1.4rem;line-height:1;color:var(--accent-2);opacity:.5;flex:0 0 auto;}
#quote-ticker .qt-viewport{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;}
#quote-ticker .qt-text{margin:0;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.16em;
  font-family:var(--serif-cjk);font-size:.8rem;line-height:1.9;color:var(--sub);
  max-height:230px;transition:opacity .6s ease;}
body.dark #quote-ticker{background:rgba(12,20,30,.7);border-color:rgba(255,255,255,.12);}
body.dark #quote-ticker .qt-text{color:#9aa6b8;}
body.dark #quote-ticker .qt-mark{color:#6aa9d8;}

/* ============ 运行时间：心跳图标 + 实时跳动 ============ */
#side .meta-run{display:flex;align-items:center;gap:6px;color:var(--sub);font-size:.72rem;margin-top:2px;}
#side .meta-run .mr-ic{display:inline-flex;color:var(--accent-2);}
#side .meta-run .mr-ic svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;animation:mrBeat 1.6s ease-in-out infinite;}
@keyframes mrBeat{0%,100%{transform:scale(1);opacity:.75}12%{transform:scale(1.16);opacity:1}24%{transform:scale(1);opacity:.75}}
#side .meta-run .js-runtime{color:var(--ink-strong);font-variant-numeric:tabular-nums;letter-spacing:.01em;}

/* ============ 首页文章序号：更精致 ============ */
.art-num{left:3px;top:20px;display:flex;flex-direction:column;align-items:center;gap:5px;
  font-family:var(--serif-en);font-size:1.06rem;font-weight:600;color:var(--muted);
  letter-spacing:.02em;font-variant-numeric:tabular-nums;transition:color .3s;}
.art-num::before{content:"";width:16px;height:1px;background:currentColor;opacity:.45;transition:width .3s,opacity .3s;}
.art-card:hover .art-num{color:var(--accent-2);}
.art-card:hover .art-num::before{width:26px;opacity:.9;}

/* ============ 非置顶摘要：收紧底部留白 ============ */
.art-body{gap:8px;}
.art-foot{margin-top:11px;padding-top:10px;}
.art-excerpt{line-height:1.86;-webkit-line-clamp:2;}

/* ============ 分页：统一由文件末尾「统一分页栏」定义 ============ */

/* ============ 评论者名称字体（改用无衬线，避免与正文衬线冲突） ============ */
.comment-author .fn{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:.88rem;font-weight:600;letter-spacing:.01em;color:var(--ink-strong);font-style:normal;}
.comment-author .fn.comment-by-author::after{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;}

/* ============ 回复：梯级（阶梯）展示 ============ */
.comment-children{margin-left:42px;padding-left:16px;border-left:2px solid var(--line);}
.comment-children .comment-children{margin-left:24px;border-left-color:var(--line-soft);}
.comment-children .comment-children .comment-children{border-left-color:var(--line-soft);}
.comment-children > .comment-body > .comment-inner::before{content:"";position:absolute;left:-16px;top:22px;width:14px;height:2px;
  background:var(--line);border-radius:1px;}
.comment-children > .comment-body > .comment-inner{border-top:1px dashed var(--line-soft);}
.comment-children .comment-author .fn{font-size:.84rem;}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:1023px){
  :root{--side-total:0px;}
  #main{margin-right:0;}
  /* 移动端：侧栏变为紧凑顶栏，导航横向滚动一行，隐藏次要信息以节省首屏空间 */
  #side{position:sticky;top:0;z-index:3000;width:auto;height:auto;padding:11px 16px 0;border-bottom:1px solid var(--line);overflow:visible;background:var(--bg);backdrop-filter:blur(8px);}
  #side .en_title{margin-top:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
  #side .en_title h2{font-size:1.06rem;}
  #side .en_title .tb-subtitle{display:none;}
  #side .nav-body{margin-top:9px;overflow:visible;}
  #side .tb-sections{display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 26px),transparent 100%);
            mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 26px),transparent 100%);}
  .tb-view{padding:3vh 0 32px;}
  #side .tb-sections::-webkit-scrollbar{display:none;}
  #side .tb-sections li{margin-top:0;flex:0 0 auto;}
  #side .tb-sections li a{display:inline-flex;align-items:baseline;gap:6px;padding:9px 14px 11px 0;grid-template-columns:none;}
  /* 移动端：横向滚动条，取消两端对齐与定宽，回归自然排布 */
  #side .tb-sections .s-en{font-size:.78rem;letter-spacing:.1em;margin-right:0;text-align:left;text-align-last:auto;}
  #side .tb-sections .s-cn{font-size:.76rem;margin-right:0;width:auto;text-align:left;text-align-last:auto;}
  #side .line{display:none;}
  /* 搜索：并入顶栏一行，右侧对齐 */
  #side .tb-search{margin:9px 0 11px;max-width:100%;}
  /* 次要信息在移动端收进一行，节省纵向空间 */
  /* 移动端：隐藏「近期」与次要信息，仅保留版权行，避免顶栏抢占首屏 */
  #side .side-rank{display:none;}
  #quote-ticker{display:none;}
  #side .side-recent{display:none;}
  #side .nav-foot{margin-top:6px;display:block;}
  #side .meta-stats,#side .foreverblog,#side .meta-tech,#side .meta-run{display:none;}
  #side .meta-copy{font-size:.68rem;padding-bottom:9px;}
  #side .meta-stats,#side .foreverblog{margin-bottom:8px;}
  #side .nav-foot p{font-size:.7rem;}
  #map_s{display:none;}
  .tb-hero-wrap{width:94%;margin-top:14px;}
  .tb-hero-slider .splide__track{height:clamp(220px,58vw,340px);}
  .hs-title{max-width:100%;font-size:1.3rem;}
  .hs-meta .hs-more{display:none;}
  .hs-num{font-size:2.2rem;}
  .hs-vlabel{display:none;}
  .home-masthead{padding:18px 0 4px;}
  .home-list-head{width:90%;margin-top:4vh;}
  .home-recent-list{width:90%;}
  .tb-archive-years{width:92%;}
  .year-head{padding:20px 4px;gap:12px;}
  .yi-date{width:3.6em;}
  .view-head{width:90%;}
  .art-card{gap:16px;padding:18px 6px 18px 38px;}
  .art-num{left:2px;top:20px;font-size:.76rem;}
  /* 全屏首屏：移动端一屏略降，避免地址栏占位导致标题被压 */
  .hf-hero{height:72vh;min-height:420px;}
  .hf-body{left:20px;right:20px;bottom:74px;}
  .hf-title{font-size:1.7rem;max-width:100%;}
  .hf-vlabel{display:none;}
  .hf-slide.is-art{background-size:auto 100%;background-position:center 52%;}
  .hf-num{right:18px;bottom:86px;font-size:1.3rem;}
  .hf-scroll{display:none;}
  /* 引言区：窄屏纵向堆叠，数据卡横排 4 格 */
  .hi-inner{grid-template-columns:1fr;gap:16px;padding-top:26px;}
  .hi-label{writing-mode:horizontal-tb;text-orientation:initial;letter-spacing:.28em;padding:0;}
  .hi-stats{grid-template-columns:repeat(4,1fr);}
  .hi-stats .hs-item{padding:10px 8px;}
  .hi-stats .hs-n{font-size:1.08rem;}
  .hi-stats .hs-l{font-size:.62rem;}
  .hf-body{bottom:56px;}
  /* 友链两列 */
  .fl-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fl-head{flex-wrap:nowrap;}
  .fl-en{display:none;}
  .comment-inner{padding-left:46px;}
  .comment-children{margin-left:20px;padding-left:12px;}
  .comment-children .comment-inner{padding-left:36px;}
  .em-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));max-height:150px;}
  .art-thumb{width:150px;aspect-ratio:4/3;}
  .art-title{font-size:var(--fs-0);}
  .art-excerpt{-webkit-line-clamp:2;}
  .cats-grid{grid-template-columns:repeat(2,1fr);}
  #read-progress{right:0;}
  #cornertool{right:14px;top:auto;bottom:16px;transform:none;}
  #toc-float{right:0;width:min(320px,90vw);}
  .post-nav{grid-template-columns:1fr;}
  .post-nav-item.next{text-align:left;}
  .tb-list-item{gap:16px;padding:20px 8px;}
  .tb-list-thumb{width:110px;height:78px;}
  .related-grid{grid-template-columns:1fr;}
  .tb-single-inner{padding:34px 20px 20px;}
  .tb-hero{height:34vh;margin:0 auto 24px;}
  .post-content img{max-height:60vh;}
  .post-content blockquote{margin-left:0;max-width:100%;}
  /* 窄屏：错落对齐取消（负边距会造成横向溢出），图片统一整幅居中；悬挂编号收回行内 */
  .post-content img.fg-r,.post-content img.fg-l,
  .post-content a.gallerybox.fg-r,.post-content a.gallerybox.fg-l{max-width:100%;margin-left:auto;margin-right:auto;}
  .post-content .hd-1::before{position:static;display:inline-block;margin-right:.4em;font-size:.6em;vertical-align:middle;opacity:.35;}
}
@media (max-width:560px){
  .view-head,.home-list-head,.home-recent-list{width:92%;}
  /* 极窄屏：缩略图置顶、文字下移，避免横向挤压 */
  .art-card{flex-direction:column;gap:14px;padding:20px 4px;}
  .art-thumb{width:100%;aspect-ratio:16/9;}
  .art-stats{padding-top:8px;}
  .hs-title{font-size:1.35rem;}
  .hs-cat{font-size:.66rem;}
  .yi-cat{display:none;}
  .hf-card{grid-template-columns:1fr;}
  .hf-card-media{min-height:180px;aspect-ratio:16/9;}
  .hf-card-body{padding:18px 18px 20px;}
  /* 极窄屏：归档条目改为「日期 / 标题」两列，统计行折到下方 */
  .year-item a{grid-template-columns:3.4em minmax(0,1fr);gap:10px 12px;}
  .year-item .yi-stats{grid-column:2;justify-self:start;margin-top:2px;}
  .year-head .yh-year{font-size:1.5rem;min-width:2.4em;}
  .post-content .photos{grid-template-columns:repeat(2,1fr);}
  .comment-fields p{flex:1 1 100%;}
}

/* 减弱动效偏好 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;}
  .tb-reveal,.tb-reveal-up,.tb-reveal-fade,.tb-reveal-mask{opacity:1!important;transform:none!important;clip-path:none!important;}
}

/* ============================================================
   分页栏：统一范式（见文件末尾「统一分页栏」）
   ============================================================ */

/* 首屏期间隐藏励志竖条，避免干扰轮播 */
body.hero-over #quote-ticker{opacity:0;pointer-events:none;transform:translateY(-50%) translateX(10px);}
#quote-ticker{transition:opacity .45s ease,transform .45s ease;}

/* ============ 引言区：写作轨迹（年度柱状） ============ */
.hi-track{display:flex;flex-direction:column;gap:12px;padding:14px 16px 12px;
  border:1px solid var(--line);border-radius:4px;background:rgba(17,20,24,.012);}
.ht-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.ht-t{font-size:.58rem;letter-spacing:.18em;color:var(--muted);}
.ht-total{font-family:var(--serif-en);font-size:.92rem;font-weight:600;color:var(--ink-strong);}
.ht-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;height:96px;}
.ht-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;height:100%;cursor:default;}
.ht-n{font-size:.56rem;color:var(--muted);line-height:1;}
.ht-bar{display:block;width:100%;max-width:22px;border-radius:2px 2px 0 0;
  background:linear-gradient(180deg,var(--accent-2),rgba(29,92,143,.22));transition:opacity .3s,transform .3s;}
.ht-col:hover .ht-bar{opacity:.72;transform:translateY(-1px);}
.ht-y{font-size:.58rem;color:var(--muted);line-height:1;margin-top:2px;}

/* 评论提交失败提示 */
.comment-notice{margin:0 0 18px;padding:11px 16px;border-left:2px solid #b4452f;background:rgba(180,69,47,.05);
  color:#8e3524;font-family:var(--serif-cjk);font-size:var(--fs--1);line-height:1.8;}
.comment-notice.is-ok{border-left-color:var(--accent-2);background:rgba(29,92,143,.05);color:var(--accent-2);}

/* 分页三段结构见文件末尾「统一分页栏」 */

/* ============================================================
   v2.9 引言 NOTICE 轮播 + 首页统一大卡
   ============================================================ */
/* 竖排 NOTICE 标签 + 呼吸圆点 */
.hi-label{display:flex;flex-direction:column;align-items:center;gap:12px;writing-mode:horizontal-tb;
  font-size:.6rem;letter-spacing:.34em;color:var(--muted);text-transform:uppercase;}
.hi-label .hl-dot{position:relative;display:inline-flex;width:7px;height:7px;flex:0 0 auto;}
.hi-label .hl-dot i{position:absolute;inset:0;border-radius:50%;background:var(--accent-2);}
.hi-label .hl-dot i:last-child{animation:hlPulse 2s ease-out infinite;}
@keyframes hlPulse{0%{transform:scale(1);opacity:.5}70%{transform:scale(3);opacity:0}100%{opacity:0}}
.hi-label .hl-t{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.36em;}

/* 引言轮播文案 */
.hi-rotator{position:relative;padding-left:26px;min-height:2.1em;display:flex;align-items:center;}
.hi-rotator .hr-mark{position:absolute;left:0;top:-2px;font-family:var(--serif-en);font-size:2.2rem;line-height:1;color:var(--accent-2);opacity:.35;}
.hi-rotator .hi-line{margin:0;font-family:var(--serif-cjk);font-size:clamp(1.24rem,1.05rem+.9vw,1.8rem);
  line-height:1.62;letter-spacing:.02em;color:var(--ink-strong);font-weight:600;
  transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform;}
.hi-rotator .hi-line.is-out{opacity:0;transform:translateY(10px);}
.hi-sign{margin:16px 0 0 26px;font-size:.62rem;letter-spacing:.24em;color:var(--muted);}

/* 首页统一大卡 */
.art-list--big{display:flex;flex-direction:column;gap:16px;padding:0;margin:0;list-style:none;border-top:0;}
.art-list--big > .art-item{padding:0;border-top:0;}
.art-card--big{position:relative;display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  align-items:stretch;gap:0;padding:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;
  background:var(--bg);transition:border-color .35s,box-shadow .35s,transform .35s;}
.art-card--big::before{display:none;}
.art-card--big:hover{border-color:var(--ink-strong);box-shadow:0 10px 30px rgba(17,20,24,.07);transform:translateY(-2px);background:var(--bg);}
.art-card--big .art-thumb{width:100%;height:100%;min-height:232px;aspect-ratio:auto;border-radius:0;}
.art-card--big .art-thumb img,.art-card--big .art-thumb svg{height:100%;}
.art-card--big .art-body{padding:26px 28px 22px;justify-content:center;gap:9px;}
.art-card--big .art-meta{display:flex;align-items:center;gap:10px;font-size:.72rem;}
.art-card--big .art-title{font-size:clamp(1.08rem,1rem+.42vw,1.32rem);line-height:1.48;padding-right:54px;}
.art-card--big .art-excerpt{max-width:46em;line-height:1.88;}
.art-card--big .art-foot{margin-top:6px;padding-top:0;border-top:0;}
/* 序号移到卡片右上角 */
.art-card--big .art-num{position:absolute;top:16px;right:20px;left:auto;display:block;z-index:2;
  font-size:1.42rem;font-weight:600;line-height:1;letter-spacing:.02em;
  color:var(--muted);opacity:.5;transition:color .3s,opacity .3s,transform .3s;}
.art-card--big .art-num::before{display:none;}
.art-card--big:hover .art-num{color:var(--accent-2);opacity:.95;transform:translateY(-1px);}
/* 置顶文章标注 */
.art-card--big.is-pinned{border-color:rgba(29,92,143,.45);}
.art-card--big.is-pinned .art-num{color:var(--accent-2);opacity:.9;}
.art-card--big .art-pin{margin-right:2px;}

/* 锚点（原索引标题位置） */
.home-anchor{display:block;height:1px;margin-bottom:18px;}

@media (max-width:760px){
  .art-card--big{grid-template-columns:1fr;}
  .art-card--big .art-thumb{min-height:0;aspect-ratio:16/9;}
  .art-card--big .art-body{padding:20px 18px 18px;}
  .art-card--big .art-title{padding-right:46px;}
  .hi-rotator .hi-line{font-size:1.18rem;}
}

/* ============================================================
   羽毛球数据页（page-badminton.php）
   ============================================================ */
.bmt-page .bmt{max-width:700px;margin:0 auto;}
.bmt{padding:6px 0 30px;}
.bmt-head{border-bottom:0;padding-bottom:0;}
.bmt-eyebrow{font-size:.62rem;letter-spacing:.24em;color:var(--muted);margin:0 0 12px;}
.bmt-title{font-family:var(--serif-cjk);font-size:clamp(1.9rem,1.4rem+1.6vw,2.5rem);font-weight:600;
  letter-spacing:.06em;color:var(--ink-strong);margin:0 0 14px;}
.bmt-sub{font-family:var(--serif-cjk);font-size:var(--fs-0);line-height:1.95;color:var(--ink);margin:0 0 30px;letter-spacing:.005em;}
.bmt-meta{list-style:none;display:flex;flex-wrap:wrap;gap:22px;margin:0;padding:0;}
.bmt-meta li{display:flex;align-items:baseline;gap:8px;}
.bmt-meta .bm-k{font-size:.66rem;color:var(--muted);letter-spacing:.1em;}
.bmt-meta .bm-v{font-size:.76rem;color:var(--ink-strong);}

/* KPI */
.bmt-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:4px;overflow:hidden;margin:26px 0 34px;}
.bmt-kpi{background:var(--bg);padding:18px 12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.bmt-kpi .bk-n{font-family:var(--serif-en);font-size:1.35rem;font-weight:600;line-height:1;color:var(--ink-strong);font-variant-numeric:tabular-nums;}
.bmt-kpi .bk-n i{font-style:normal;font-size:.62rem;font-weight:400;color:var(--muted);margin-left:3px;letter-spacing:.04em;}
.bmt-kpi .bk-l{font-size:.66rem;color:var(--muted);letter-spacing:.08em;}

/* 段落标题 */
.bmt-sec{margin:0 0 36px;}
.bmt-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:20px;}
.bmt-sec-t{font-family:var(--serif-cjk);font-size:1.04rem;font-weight:600;letter-spacing:.06em;color:var(--ink-strong);margin:0;}
.bmt-sec-e{font-size:.58rem;letter-spacing:.22em;color:var(--muted);}

/* 趋势图 */
.bmt-chart{border:1px solid var(--line);border-radius:4px;padding:18px 18px 12px;}
.bmt-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;height:172px;}
.bmt-bar-col{position:relative;flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;}
.bmt-bar-col .bb-n{font-size:.6rem;color:var(--sub);font-variant-numeric:tabular-nums;}
.bmt-bar-col .bb-track{position:relative;width:100%;max-width:34px;flex:1;display:flex;align-items:flex-end;background:rgba(17,20,24,.03);border-radius:2px;}
.bmt-bar-col .bb-fill{width:100%;display:block;border-radius:2px 2px 0 0;
  background:linear-gradient(180deg,var(--accent-2),rgba(29,92,143,.28));transition:opacity .3s;}
.bmt-bar-col:hover .bb-fill{opacity:.75;}
.bmt-bar-col .bb-dot{position:absolute;right:-5px;width:9px;height:9px;border-radius:50%;background:#c8894a;
  border:2px solid var(--bg);box-shadow:0 0 0 1px rgba(200,137,74,.4);}
.bmt-bar-col .bb-d{font-size:.58rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.bmt-legend{list-style:none;display:flex;gap:20px;margin:14px 0 0;padding:0;}
.bmt-legend li{display:flex;align-items:center;gap:6px;font-size:.64rem;color:var(--muted);}
.bmt-legend .lg-bar{width:12px;height:8px;border-radius:1px;background:linear-gradient(180deg,var(--accent-2),rgba(29,92,143,.28));}
.bmt-legend .lg-dot{width:8px;height:8px;border-radius:50%;background:#c8894a;}

/* 分析洞察 */
.bmt-insights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.bmt-insights li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;
  padding-bottom:16px;border-bottom:1px dashed var(--line-soft);}
.bmt-insights li:last-child{border-bottom:0;padding-bottom:0;}
.bi-no{font-family:var(--serif-en);font-size:.82rem;color:var(--accent-2);letter-spacing:.04em;padding-top:.2em;}
.bi-body{font-size:calc(var(--fs-0)*.9);line-height:1.92;color:var(--sub);}
.bi-body strong{display:block;font-family:var(--serif-cjk);font-size:.96rem;color:var(--ink-strong);margin-bottom:5px;font-weight:600;}
.bi-body b{color:var(--accent-2);font-weight:600;font-variant-numeric:tabular-nums;}

/* 单场卡片 */
.bmt-list{display:flex;flex-direction:column;gap:14px;}
.bmt-card{border:1px solid var(--line);border-radius:4px;padding:18px 20px 16px;background:var(--bg);
  transition:border-color .3s,box-shadow .3s;}
.bmt-card:hover{border-color:var(--ink-strong);box-shadow:0 8px 24px rgba(17,20,24,.05);}
.bc-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;}
.bc-date{font-family:var(--serif-en);font-size:1rem;font-weight:600;color:var(--ink-strong);letter-spacing:.02em;}
.bc-week{font-size:.68rem;color:var(--muted);}
.bc-no{margin-left:auto;font-family:var(--serif-en);font-size:.9rem;color:var(--muted);opacity:.55;}
.bc-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line-soft);}
.bc-k{display:flex;flex-direction:column;gap:3px;}
.bc-kn{font-family:var(--serif-en);font-size:.92rem;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums;line-height:1.1;}
.bc-kl{font-size:.6rem;color:var(--muted);letter-spacing:.04em;}
.bc-rows{display:flex;flex-direction:column;gap:9px;margin-top:13px;}
.bc-row{display:grid;grid-template-columns:64px minmax(0,1fr) 88px;gap:12px;align-items:center;}
.bc-rl{font-size:.66rem;color:var(--muted);letter-spacing:.04em;}
.bc-rv{font-size:.66rem;color:var(--sub);text-align:right;font-variant-numeric:tabular-nums;}
.bc-force{font-size:.68rem;color:var(--sub);}
.bc-force b{color:var(--ink-strong);font-weight:600;}
.bmt-split{display:flex;height:8px;border-radius:2px;overflow:hidden;background:rgba(17,20,24,.05);}
.bmt-split i{display:block;height:100%;}
.sp-fh{background:var(--accent-2);} .sp-bh{background:#e0a94f;}
.sp-ov{background:#3d9c8f;} .sp-un{background:#d98b3f;} .sp-ot{background:rgba(17,20,24,.16);}
.bmt-foot{border-top:1px solid var(--line);padding-top:16px;margin-top:8px;}
.bmt-foot p{font-size:.7rem;color:var(--muted);line-height:1.9;margin:0;}
.bmt-foot code{font-family:var(--serif-en);font-size:.68rem;background:rgba(17,20,24,.05);padding:1px 5px;border-radius:2px;}

@media (max-width:760px){
  .bmt-kpis{grid-template-columns:repeat(2,1fr);}
  .bmt-kpi:nth-child(5){grid-column:span 2;}
  .bc-kpis{grid-template-columns:repeat(3,1fr);gap:12px 8px;}
  .bc-row{grid-template-columns:56px minmax(0,1fr);}
  .bc-rv{grid-column:2;text-align:left;}
  .bmt-bars{gap:6px;}
}

/* v3.0 首屏纯净图 + 落款右对齐 + 缩略图统一 */
.hi-sign{margin:16px 0 0;text-align:right;padding-right:2px;}
/* 首屏不再有文字叠层，仅保留页码与竖标 */
.hf-hero .hf-body{display:none;}
/* 首页大卡缩略图统一 4:3，避免不同原图比例造成高低错落 */
.art-card--big{align-items:start;}
.art-card--big .art-thumb{width:100%;height:auto;aspect-ratio:4/3;min-height:0;border-radius:0;}
.art-card--big .art-thumb img,.art-card--big .art-thumb svg{width:100%;height:100%;object-fit:cover;display:block;}
/* 置顶文章：更明确的区分（左侧色条 + 底色 + 角标） */
.art-card--big.is-pinned{background:linear-gradient(90deg,rgba(29,92,143,.045),rgba(29,92,143,0) 42%);}
.art-card--big.is-pinned::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-2);}
.art-card--big.is-pinned .art-pin{background:var(--accent-2);color:#fff;}
@media (max-width:760px){
  .art-card--big .art-thumb{aspect-ratio:16/9;}
}

/* v3.0 友链卡片样式已合并到上方「友链页」区块，避免重复定义 */

/* v3.1 评论 IP 归属地 */
.comment-meta .comment-loc{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;color:var(--muted);
  border:1px solid var(--line-soft);border-radius:2px;padding:1px 6px;letter-spacing:.02em;white-space:nowrap;}
.comment-meta .comment-loc .loc-ic{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.8;}

/* v3.1 首页大卡：图文高度协调（统一卡高，图满高裁切） */
.art-card--big{height:208px;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:stretch;}
.art-card--big .art-thumb{height:100%;aspect-ratio:auto;min-height:0;}
.art-card--big .art-body{padding:20px 26px;justify-content:center;gap:7px;overflow:hidden;}
.art-card--big .art-title{font-size:clamp(1.04rem,.98rem+.34vw,1.2rem);line-height:1.42;}
.art-card--big .art-excerpt{line-height:1.78;-webkit-line-clamp:2;font-size:calc(var(--fs--1)*.97);}
.art-card--big .art-foot{margin-top:4px;}
@media (max-width:760px){
  .art-card--big{height:auto;grid-template-columns:1fr;}
  .art-card--big .art-thumb{height:auto;aspect-ratio:16/9;}
  .art-card--big .art-body{padding:18px 16px 16px;}
}

/* ============================================================
   统一分页栏（首页 / 归档 / 分类 / 标签 / 搜索 / 日期 / 评论）
   结构：<nav class="ap-pager"><div class="ap-lead|ap-pages|ap-tail">
   —— 全站唯一定义，不要再在别处新增 .ap-pager 相关样式
   ============================================================ */
.ap-pager,.art-pager{display:flex;align-items:center;justify-content:space-between;gap:14px;
  width:100%;margin:34px 0 0;padding-top:22px;border-top:1px solid var(--line-soft);}
.ap-pager .ap-lead,.ap-pager .ap-tail,
.art-pager .ap-lead,.art-pager .ap-tail{flex:0 0 auto;display:flex;gap:6px;}
.ap-pager .ap-pages,.art-pager .ap-pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:6px;flex:1 1 auto;min-width:0;}

/* 按钮外观（页码 / 上一页 / 下一页 / 省略号共用） */
.ap-btn{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 13px;
  border:1px solid var(--line);border-radius:2px;background:transparent;color:var(--sub);cursor:pointer;
  font-family:var(--serif-en);font-size:.88rem;line-height:1;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
  transition:border-color .22s,color .22s,background .22s;}
.ap-btn:hover:not(.dis):not(.current){border-color:var(--accent-2);color:var(--accent-2);background:rgba(29,92,143,.05);}
.ap-btn.current{background:var(--ink-strong);color:#fff;border-color:var(--ink-strong);cursor:default;}
.ap-btn.ap-nav{font-family:var(--serif-cjk);font-size:.82rem;letter-spacing:.04em;min-width:auto;padding:0 16px;}
/* 禁用态：保留完整外观（首页也看得见「上一页」），仅降低对比度表示不可点 */
.ap-btn.dis{opacity:.42;cursor:not-allowed;border-style:dashed;}
.ap-btn.ap-gap{border:0;background:transparent;color:var(--muted);cursor:default;min-width:auto;padding:0 2px;}

@media (max-width:600px){
  .ap-pager,.art-pager{gap:8px;}
  .ap-btn{min-width:34px;height:34px;padding:0 9px;font-size:.82rem;}
  .ap-btn.ap-nav{padding:0 10px;font-size:.76rem;}
}


/* ============================================================
   羽毛球页的评论区（复用文章页评论组件）
   ============================================================ */
.bmt-comments{margin-top:56px;padding-top:38px;border-top:1px solid var(--line-soft);}
.bmt-comments #comments{margin-top:0;}
.bmt-comments .respond-heading{font-size:calc(var(--fs-1)*.98);}
@media (max-width:760px){
  .bmt-comments{margin-top:38px;padding-top:26px;}
}

/* ============================================================
   小屏（≤380px，如 iPhone SE 320/375）：压缩评论嵌套缩进
   多层回复叠加后可用宽度过窄，元信息（日期/IP归属地/回复）会挤出容器
   ============================================================ */
@media (max-width:380px){
  .comment-inner{padding-left:38px;}
  .comment-children{margin-left:16px;padding-left:10px;}
  .comment-children .comment-inner{padding-left:32px;}
  .comment-children .comment-children{margin-left:10px;}
  .comment-meta{gap:2px 8px;}
  .comment-meta .comment-time{font-size:.64rem;}
  .fl-chips a{padding:6px 12px 6px 10px;font-size:.74rem;}
  .ap-btn{min-width:30px;height:30px;padding:0 6px;font-size:.76rem;}
  .ap-btn.ap-nav{padding:0 7px;font-size:.7rem;}
}

/* ============================================================
   窄屏列表可读性：390px 下缩略图 110px 会挤得正文列只剩约 150px
   （每行 7 字），收窄缩略图把正文列让到 220px 以上
   ============================================================ */
@media (max-width:440px){
  .tb-list-item{gap:14px;padding:18px 6px;}
  .tb-list-thumb{width:96px;height:70px;}
  .art-thumb{width:112px;}
  .art-item{gap:12px;}
}

/* 极窄屏（≤340px）：左右并排会把正文挤到 100px 上下，改为上下排列 */
@media (max-width:340px){
  .tb-list-item{flex-direction:column;gap:12px;}
  .tb-list-thumb{width:100%;height:158px;}
  .art-item{flex-direction:column;}
  .art-thumb{width:100%;aspect-ratio:16/10;}
}
