﻿/* ============================================================
   时间容器 · Time Capsule — Halo 主题样式
   书卷气 / 高密度 / 长期写作的个人图书馆
   v1.1 · 字号统一上调 · 列表列宽锁定防右溢
   ============================================================ */

:root{
  --paper:#F7F3EA;   /* 页面底 */
  --surface:#FCFAF4; /* 卡片底 */
  --hi:#F1EADB;      /* 高亮（精华/当前项） */
  --ink:#2E2A24;     /* 墨（标题/正文） */
  --sub:#6E6555;     /* 次要文字 */
  --line:#E3DBC8;    /* 发丝分隔线 */
  --link:#3D4A57;    /* 链接/交互 */
  --accent:#9E3B2E;  /* 朱砂（强调/宣言/关键标记） */
  --accent-deep:#7A2A20;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  --mono:"SFMono-Regular","JetBrains Mono",Consolas,"Liberation Mono",monospace;
  /* 语义角色：fonts.html 可按方案覆盖；默认=书卷 */
  --font-heading: var(--serif);
  --font-body: var(--serif);
  --font-ui: var(--sans);
  --shadow:0 6px 18px rgba(46,42,36,0.07);
}

/* 主题自托管中文字体：任意设备一致，不依赖本机安装 */
@font-face{
  font-family:"Noto Serif SC";
  src:url("../fonts/noto-serif-sc-300.woff2") format("woff2");
  font-weight:300;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Noto Serif SC";
  src:url("../fonts/noto-serif-sc-400.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Noto Serif SC";
  src:url("../fonts/noto-serif-sc-600.woff2") format("woff2");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Noto Sans SC";
  src:url("../fonts/noto-sans-sc-400.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Noto Sans SC";
  src:url("../fonts/noto-sans-sc-500.woff2") format("woff2");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}

/* 霞鹜文楷：仅「墨韵」方案启用时才会被下载 */
@font-face{
  font-family:"LXGW WenKai";
  src:url("../fonts/lxgw-wenkai-300.woff2") format("woff2");
  font-weight:300;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"LXGW WenKai";
  src:url("../fonts/lxgw-wenkai-500.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"LXGW WenKai";
  src:url("../fonts/lxgw-wenkai-500.woff2") format("woff2");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"LXGW WenKai";
  src:url("../fonts/lxgw-wenkai-500.woff2") format("woff2");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}

/* 暗色：自动跟随系统，或手动切换 */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#1E1B16; --surface:#26221B; --hi:#2E2921;
    --ink:#EDE6D8; --sub:#A79C89; --line:#3A342A;
    --link:#9FB0BE; --accent:#C96A58; --accent-deep:#D98A76;
    --shadow:0 6px 18px rgba(0,0,0,0.35);
  }
}
html[data-theme="dark"]{
  --paper:#1E1B16; --surface:#26221B; --hi:#2E2921;
  --ink:#EDE6D8; --sub:#A79C89; --line:#3A342A;
  --link:#9FB0BE; --accent:#C96A58; --accent-deep:#D98A76;
  --shadow:0 6px 18px rgba(0,0,0,0.35);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{
  font-family:var(--font-ui); font-size:16px; color:var(--ink); background-color:var(--paper); line-height:1.6;
  background-image:
    radial-gradient(circle at 18% 8%, rgba(158,59,46,0.03), transparent 42%),
    radial-gradient(circle at 84% 92%, rgba(61,74,87,0.03), transparent 46%);
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;}
.container{max-width:1180px;margin:0 auto;padding:0 40px;}
.container-narrow{max-width:1000px;margin:0 auto;padding:0 40px;}

/* ---------- 顶栏 Masthead ---------- */
.site-header{display:flex;align-items:flex-end;justify-content:space-between;padding:44px 0 26px;border-bottom:1px solid var(--line);}
.brand{display:flex;align-items:center;gap:18px;}
/* 顶栏方印：默认主题印，可在「品牌形象」上传替换；尺寸由 --seal-size 控制 */
.seal{
  --seal-size:58px;
  width:var(--seal-size);height:var(--seal-size);
  flex:0 0 auto;
  display:block;
  border-radius:3px;
  object-fit:cover;
  box-shadow:0 4px 12px rgba(158,59,46,0.18);
  transition:transform .2s, box-shadow .2s;
}
.brand:hover .seal{transform:rotate(-3deg);box-shadow:0 8px 18px rgba(158,59,46,0.26);}
.brand-text h1{font-family:var(--font-heading);font-weight:600;font-size:32px;letter-spacing:0.04em;line-height:1.1;color:var(--ink);}
/* 顶栏站名隶书：优先本机华文隶书/隶书，缺字时回退到当前标题字体 */
.brand-text h1.is-lishu{
  font-family:"LiSu","STLiti","Baoli SC","华文隶书","隶书",var(--font-heading);
  font-weight:400;
  letter-spacing:0.14em;
  font-size:34px;
}
.brand-text .tag{font-family:var(--font-heading);font-weight:300;font-size:14px;color:var(--sub);margin-top:6px;letter-spacing:0.06em;}
.header-tools{display:flex;gap:14px;align-items:center;}
.header-tools a,.header-tools button{background:none;border:none;cursor:pointer;padding:4px;display:flex;}
.header-tools svg{width:21px;height:21px;stroke:var(--link);transition:.2s;}
.header-tools a:hover svg,.header-tools button:hover svg{stroke:var(--accent);}

/* ---------- 区块标签 ---------- */
.sec-label{font-size:13px;font-weight:500;letter-spacing:0.16em;color:var(--accent);display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.sec-label::after{content:"";flex:1;height:1px;background:var(--line);}

/* ---------- 首页分类导航（门径） ---------- */
.category-nav{padding:28px 0 22px;border-bottom:1px solid var(--line);}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;}
.cat-card{background:var(--surface);border:1px solid var(--line);border-top:2px solid transparent;border-radius:4px;padding:16px 16px 14px;transition:.2s;display:block;min-width:0;}
.cat-card:hover{border-top-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow);}
.cat-card .cn{font-family:var(--font-heading);font-weight:600;font-size:19px;color:var(--ink);}
.cat-card .cc{font-size:13px;color:var(--sub);margin-top:6px;}
.cat-more{
  display:inline-block;
  margin-top:18px;
  font-size:14px;
  color:var(--link);
  letter-spacing:0.04em;
  transition:color .15s;
}
.cat-more:hover{color:var(--accent);}

/* ---------- 精华区 ---------- */
.featured{padding:32px 0;border-bottom:1px solid var(--line);}
.featured-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:24px;padding:13px 0;border-bottom:1px solid var(--line);transition:.2s;}
.featured-item:last-child{border-bottom:none;}
.featured-item:hover{padding-left:10px;}
.featured-item .ft{font-family:var(--font-heading);font-weight:600;font-size:18px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.featured-item:hover .ft{color:var(--accent-deep);}
.featured-item .fe{font-size:15px;color:var(--sub);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.featured-item .fd{font-size:13px;color:var(--sub);white-space:nowrap;}

/* ---------- 首页主体：书单墙 + 文章流 ---------- */
.home-body{display:grid;grid-template-columns:280px minmax(0,1fr);gap:48px;padding:34px 0 56px;align-items:start;}
.home-body.no-book-wall{grid-template-columns:minmax(0,1fr);}
.home-left{min-width:0;display:flex;flex-direction:column;gap:28px;}
.book-wall{min-width:0;}
.book-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--line);border-left:3px solid var(--link);border-radius:3px;margin-bottom:10px;background:var(--surface);transition:.2s;}
.book-item:hover{border-left-color:var(--accent);background:var(--hi);transform:translateX(3px);}
.book-item .bt{font-family:var(--font-heading);font-size:16px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.book-item .bc{font-size:13px;color:var(--sub);border:1px solid var(--line);border-radius:10px;padding:2px 9px;white-space:nowrap;flex:0 0 auto;}
.book-item.reading{border-left-color:var(--accent);}
.book-item.reading .bc{color:var(--accent);border-color:var(--accent);}
.book-more{font-size:14px;color:var(--link);display:inline-block;margin-top:6px;}
.book-more:hover{color:var(--accent);}

.post-stream{min-width:0;}
.post-stream .stream-item{display:grid;grid-template-columns:58px minmax(0,1fr);gap:18px;padding:16px 0 16px 14px;border-bottom:1px solid var(--line);border-left:2px solid transparent;transition:.2s;}
.post-stream .stream-item:first-of-type{border-top:1px solid var(--line);}
.post-stream .stream-item:hover{border-left-color:var(--accent);padding-left:20px;}
.stream-date{display:flex;flex-direction:column;padding-top:2px;}
.stream-date .d{font-family:var(--font-heading);font-weight:600;font-size:24px;color:var(--ink);line-height:1;}
.stream-date .m{font-size:12px;color:var(--sub);margin-top:4px;letter-spacing:0.05em;}
.stream-main{min-width:0;}
.stream-main .st{font-family:var(--font-heading);font-weight:600;font-size:20px;color:var(--ink);line-height:1.35;}
.post-stream .stream-item:hover .st{color:var(--accent-deep);}
.stream-main .sx{font-size:15px;color:var(--sub);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.stream-main .sm{font-size:13px;color:var(--sub);margin-top:7px;letter-spacing:0.02em;}

/* ---------- 页脚 ---------- */
.site-footer{border-top:1px solid var(--line);padding:34px 0 44px;text-align:center;}
.manifesto{font-family:var(--font-heading);font-weight:300;font-size:16px;color:var(--accent);letter-spacing:0.04em;margin-bottom:14px;}
.copyright{font-size:13px;color:var(--sub);margin-bottom:12px;}
.footer-links{display:flex;gap:22px;justify-content:center;}
.footer-links a{font-size:14px;color:var(--sub);}
.footer-links a:hover{color:var(--accent);}

/* ---------- 内页页头（分类/书单/文章） ---------- */
.page-head{padding:36px 0 22px;border-bottom:1px solid var(--line);}
.breadcrumb{font-size:13px;color:var(--sub);margin-bottom:10px;}
.breadcrumb a{color:var(--sub);}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb .sep{margin:0 6px;color:var(--line);}
.page-title{font-family:var(--font-heading);font-weight:600;font-size:36px;color:var(--ink);line-height:1.2;}
.page-desc{font-size:16px;color:var(--sub);margin-top:12px;}

/* ---------- 分类页 ---------- */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;padding:20px 0 22px;border-bottom:1px solid var(--line);}
.filter-chip{font-size:14px;color:var(--sub);border:1px solid var(--line);border-radius:16px;padding:6px 15px;transition:.15s;}
.filter-chip:hover{border-color:var(--accent);color:var(--accent);}
.filter-chip.on{background:var(--accent);border-color:var(--accent);color:var(--paper);font-weight:500;}
.cat-post-item{display:grid;grid-template-columns:74px minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:15px 0 15px 12px;border-bottom:1px solid var(--line);border-left:2px solid transparent;transition:.15s;}
.cat-post-item:hover{border-left-color:var(--accent);padding-left:18px;}
.cat-post-item .cd{font-size:15px;color:var(--sub);}
.cat-post-item .ct{font-family:var(--font-heading);font-weight:600;font-size:18px;color:var(--ink);min-width:0;}
.cat-post-item:hover .ct{color:var(--accent-deep);}
.cat-post-item .cb,.cat-post-item .ctm{font-size:13px;color:var(--sub);white-space:nowrap;}

/* ---------- 书单页 ---------- */
.book-head{display:flex;gap:32px;padding:32px 0 26px;border-bottom:1px solid var(--line);align-items:flex-start;}
.book-cover{width:150px;height:200px;border-radius:3px;background:var(--link);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;flex:0 0 auto;box-shadow:6px 0 0 rgba(46,42,36,0.12),0 8px 20px rgba(46,42,36,0.12);overflow:hidden;}
.book-cover img{width:100%;height:100%;object-fit:cover;}
.book-cover .cvt{font-family:var(--font-heading);font-weight:600;font-size:19px;text-align:center;line-height:1.4;}
.book-cover .cva{font-size:13px;opacity:0.75;}
.book-info{min-width:0;}
.book-info h1{font-family:var(--font-heading);font-weight:600;font-size:32px;color:var(--ink);}
.book-info .ba{font-size:15px;color:var(--link);margin-top:8px;letter-spacing:0.02em;}
.book-info .bm{font-size:15px;color:var(--sub);margin-top:10px;}
.book-info .bi{font-size:15px;color:var(--sub);line-height:1.7;margin-top:14px;max-width:560px;white-space:pre-wrap;}
.timeline{padding:8px 0 40px;}
.timeline-item{display:flex;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);transition:.15s;}
.timeline-item:hover{padding-left:8px;}
.timeline-item .dot{width:10px;height:10px;border-radius:5px;background:var(--line);flex:0 0 auto;}
.timeline-item:first-of-type .dot{background:var(--accent);}
.timeline-item .td{font-size:14px;color:var(--sub);width:104px;flex:0 0 auto;}
.timeline-item .tt{font-family:var(--font-heading);font-size:18px;color:var(--ink);min-width:0;}
.timeline-item .to{font-weight:600;letter-spacing:0.06em;}
.timeline-item .ts{font-weight:400;color:var(--sub);}
.timeline-item:hover .tt{color:var(--accent-deep);}
.timeline-item:hover .ts{color:var(--accent);}
.back-link{display:inline-block;font-size:14px;color:var(--link);margin-top:18px;}
.back-link:hover{color:var(--accent);}

/* ---------- 文章详情 ---------- */
.post-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:48px;padding:30px 0 50px;align-items:start;}
.post-content{font-family:var(--font-body);font-size:18px;color:var(--ink);line-height:1.9;min-width:0;}
.post-content > p:first-of-type::first-letter{font-weight:600;font-size:2.7em;color:var(--accent);float:left;line-height:1;padding:5px 12px 0 0;}
.post-content p{margin-bottom:24px;}
.post-content h1,.post-content h2,.post-content h3,.post-content h4{font-family:var(--font-heading);font-weight:600;color:var(--ink);line-height:1.4;margin:34px 0 16px;}
.post-content h1{font-size:26px;}.post-content h2{font-size:23px;}.post-content h3{font-size:20px;}.post-content h4{font-size:18px;}
.post-content a{color:var(--link);border-bottom:1px solid var(--line);}
.post-content a:hover{color:var(--accent);border-color:var(--accent);}
.post-content blockquote{border-left:3px solid var(--accent);background:var(--hi);padding:15px 19px;margin:0 0 24px;line-height:1.8;border-radius:0 3px 3px 0;}
.post-content code{font-family:var(--mono);font-size:0.9em;background:var(--hi);padding:2px 6px;border-radius:3px;}
.post-content pre{background:var(--ink);color:var(--paper);padding:18px;border-radius:4px;overflow-x:auto;margin:0 0 24px;line-height:1.6;}
.post-content pre code{background:none;color:inherit;padding:0;font-size:15px;}
.post-content img{border-radius:4px;margin:8px 0 24px;}
.post-content ul,.post-content ol{margin:0 0 24px 1.4em;}
.post-content li{margin-bottom:7px;}
.post-content hr{border:none;height:1px;background:var(--line);margin:32px 0;}
.post-content table{width:100%;border-collapse:collapse;margin:0 0 24px;font-family:var(--font-ui);font-size:15px;}
.post-content th,.post-content td{border:1px solid var(--line);padding:9px 13px;text-align:left;vertical-align:middle;}
.post-content th{background:var(--hi);font-weight:600;}

.post-nav{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding-top:28px;border-top:1px solid var(--line);}
.post-nav a{font-size:15px;color:var(--link);max-width:48%;}
.post-nav a:hover{color:var(--accent);}
.post-nav .pn-label{display:block;font-size:13px;color:var(--sub);margin-bottom:4px;}

.post-sidebar{min-width:0;position:sticky;top:26px;}
.post-sidebar .side-block{margin-bottom:28px;}
.post-sidebar .side-block h4{font-size:13px;font-weight:600;letter-spacing:0.1em;color:var(--accent);margin-bottom:12px;font-family:var(--font-ui);}
.side-path{font-size:14px;color:var(--link);}
.tag-cloud{display:flex;gap:8px;flex-wrap:wrap;}
.tag-cloud a{font-size:13px;color:var(--sub);border:1px solid var(--line);border-radius:3px;padding:4px 10px;}
.tag-cloud a:hover{border-color:var(--accent);color:var(--accent);}
.tag-cloud-page a{font-size:15px;padding:8px 14px;}
.rel-item{display:block;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line);}
.rel-item:last-child{border-bottom:none;}
.rel-item .rt{font-family:var(--font-heading);font-size:15px;color:var(--ink);line-height:1.4;}
.rel-item:hover .rt{color:var(--accent-deep);}
.rel-item .rd{font-size:12px;color:var(--sub);margin-top:3px;}

/* ---------- 归档 ---------- */
.archive-year{font-family:var(--font-heading);font-weight:600;font-size:24px;color:var(--ink);margin:28px 0 6px;}
.archive-month{font-size:14px;color:var(--accent);letter-spacing:0.08em;margin:16px 0 4px;font-weight:600;}
.archive-item{display:flex;gap:18px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);}
.archive-item .ad{font-size:14px;color:var(--sub);width:64px;flex:0 0 auto;font-family:var(--font-ui);}
.archive-item .at{font-family:var(--font-heading);font-size:18px;color:var(--ink);min-width:0;}
.archive-item:hover .at{color:var(--accent-deep);}

/* ---------- 分页 ---------- */
.pagination{display:flex;justify-content:center;align-items:center;gap:20px;padding:26px 0 10px;}
.pagination a{font-size:14px;color:var(--link);border:1px solid var(--line);border-radius:4px;padding:8px 17px;}
.pagination a:hover{border-color:var(--accent);color:var(--accent);}
.pagination .page-info{font-size:14px;color:var(--sub);}

/* ---------- 页内听乐区（封面卡） ---------- */
.listening{border-top:1px solid var(--line);padding-top:22px;margin:0;background:transparent;}
.listening.hidden{display:none;}
.listening-inner{max-width:100%;}
.listening-intro{font-family:var(--font-heading);font-size:13px;color:var(--sub);margin:-2px 0 14px;letter-spacing:0.02em;line-height:1.6;}
.listening-card{background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:var(--shadow);}
.listening.is-playing .listening-card{border-color:rgba(158,59,46,0.4);}
.listening-cover-wrap{position:relative;aspect-ratio:1/1;background:var(--hi);overflow:hidden;}
.listening-cover{width:100%;height:100%;object-fit:cover;display:block;}
.listening-cover-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:48px;color:var(--sub);background:
  linear-gradient(145deg, var(--hi), var(--line));}
.listening-play{position:absolute;right:12px;bottom:12px;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;background:var(--accent);color:var(--paper);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(46,42,36,0.35);transition:transform .15s;}
.listening-play:hover{transform:scale(1.06);}
.listening-play svg{width:18px;height:18px;fill:currentColor;margin-left:2px;}
.listening-body{padding:14px 14px 12px;}
.listening-track{font-family:var(--font-heading);font-weight:600;font-size:17px;color:var(--ink);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.listening-artist{font-size:13px;color:var(--accent-deep);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.listening-album{font-size:12px;color:var(--sub);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.listening-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;}
.listening-tools button{background:none;border:1px solid var(--line);border-radius:4px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.listening-tools button:hover{border-color:var(--accent);}
.listening-tools svg{width:14px;height:14px;fill:var(--link);}
.listening-tools button:hover svg{fill:var(--accent);}
.listening-vol{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--sub);flex:1;min-width:120px;}
.listening-vol input{-webkit-appearance:none;appearance:none;flex:1;height:3px;border-radius:2px;background:var(--line);outline:none;cursor:pointer;}
.listening-vol input::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);}
.listening-time{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:8px;align-items:center;margin-top:10px;font-size:11px;color:var(--sub);font-variant-numeric:tabular-nums;}
.listening-progress{height:3px;background:var(--line);border-radius:2px;overflow:hidden;}
.listening-progress-bar{height:100%;width:0;background:var(--accent);transition:width .15s linear;}

.listening-list{list-style:none;margin:12px 0 0;padding:0;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:4px;background:var(--surface);}
.listening-item{display:grid;grid-template-columns:40px minmax(0,1fr) 24px;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s;}
.listening-item:last-child{border-bottom:none;}
.listening-item:hover{background:var(--hi);}
.listening-item.is-current{background:var(--hi);box-shadow:inset 3px 0 0 var(--accent);}
.listening-item .lthumb{width:40px;height:40px;border-radius:3px;overflow:hidden;background:var(--hi);flex:0 0 auto;}
.listening-item .lthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.listening-item .lthumb-ph{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:var(--sub);font-size:14px;}
.listening-item .ln{font-size:11px;color:var(--sub);font-variant-numeric:tabular-nums;text-align:right;}
.listening-item.is-current .ln{color:var(--accent);font-weight:600;}
.listening-item .lt{font-family:var(--font-heading);font-size:13px;color:var(--ink);line-height:1.35;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.listening-item.is-current .lt{color:var(--accent-deep);font-weight:600;}
.listening-item .lmain{min-width:0;}
.listening-item .la{display:block;font-size:11px;color:var(--sub);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.listening-error{font-size:12px;color:var(--accent-deep);line-height:1.65;margin-top:10px;padding:10px 12px;background:var(--hi);border:1px solid var(--line);border-radius:4px;}
.listening-hint{font-size:12px;color:var(--sub);margin-top:10px;letter-spacing:0.02em;}

/* ---------- 全站悬浮听乐条 ---------- */
body.tc-has-dock{padding-bottom:84px;}
.tc-dock{position:fixed;right:16px;bottom:16px;z-index:80;width:min(420px,calc(100vw - 24px));font-size:13px;color:var(--ink);filter:drop-shadow(0 8px 24px rgba(46,42,36,0.18));}
.tc-dock-bar{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto auto;gap:10px;align-items:center;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(8px);}
.tc-dock.is-playing .tc-dock-bar{border-color:rgba(158,59,46,0.45);}
.tc-dock-cover-wrap{position:relative;width:48px;height:48px;border-radius:4px;overflow:hidden;background:var(--hi);}
.tc-dock-cover{width:100%;height:100%;object-fit:cover;display:block;}
.tc-dock-cover-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--sub);}
.tc-dock-meta{min-width:0;}
.tc-dock-track{font-family:var(--font-heading);font-weight:600;font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tc-dock-artist{font-size:12px;color:var(--sub);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tc-dock-controls{display:flex;align-items:center;gap:4px;}
.tc-dock-controls button,.tc-dock-toggle-list{background:none;border:1px solid var(--line);border-radius:4px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:var(--link);}
.tc-dock-controls button:hover,.tc-dock-toggle-list:hover{border-color:var(--accent);color:var(--accent);}
.tc-dock-controls svg{width:14px;height:14px;fill:currentColor;}
.tc-dock-play{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--paper)!important;}
.tc-dock-play svg{fill:currentColor;}
.tc-dock-vol{display:none;align-items:center;min-width:72px;}
.tc-dock-vol input{-webkit-appearance:none;appearance:none;width:72px;height:3px;border-radius:2px;background:var(--line);outline:none;cursor:pointer;}
.tc-dock-vol input::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);}
.tc-dock-toggle-list{font-size:14px;line-height:1;}
.tc-dock-sheet{margin-top:8px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;max-height:min(52vh,420px);overflow:auto;}
.tc-dock-sheet-head{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--sub);margin-bottom:8px;}
.tc-dock-progress{margin-bottom:10px;}
.tc-dock-list{max-height:none;margin:0;}
body.tc-navigating{cursor:progress;}
@media (min-width:720px){
  .tc-dock-vol{display:flex;}
  .tc-dock-bar{grid-template-columns:48px minmax(0,1fr) auto auto auto auto;}
}
@media (max-width:520px){
  .tc-dock{right:10px;left:10px;width:auto;bottom:10px;}
}

.book-empty{font-size:13px;color:var(--sub);line-height:1.7;padding:10px 0 4px;}

/* ---------- 瞬间（灵感匣 / 后台同步展示） ---------- */
.moments-tags{margin-top:4px;}
.moments-tag-n{opacity:0.75;}
.moments-stream{padding:8px 0 20px;}
.moment-card{
  padding:22px 0 20px;
  border-bottom:1px solid var(--line);
  border-left:2px solid transparent;
  padding-left:14px;
  margin-left:-2px;
  transition:border-color .15s, padding-left .15s;
}
.moment-card:hover{border-left-color:var(--accent);padding-left:18px;}
.moment-card-link{display:block;}
.moment-time{
  display:block;
  font-size:13px;
  color:var(--sub);
  letter-spacing:0.04em;
  margin-bottom:10px;
  font-variant-numeric:tabular-nums;
}
.moment-body{
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.75;
  color:var(--ink);
}
.moment-body p{margin:0 0 0.75em;}
.moment-body p:last-child{margin-bottom:0;}
.moment-body a{color:var(--link);border-bottom:1px solid var(--line);}
.moment-body a:hover{color:var(--accent);border-color:var(--accent);}
.moment-empty{color:var(--sub);font-style:italic;}
.moment-media{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px;
  margin-top:14px;
}
.moment-photo{
  display:block;
  border-radius:3px;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--hi);
  aspect-ratio:1;
}
.moment-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s;}
.moment-photo:hover img{transform:scale(1.03);}
.moment-media video,.moment-media audio{
  width:100%;
  max-width:100%;
  border-radius:3px;
  background:var(--ink);
}
.moment-media audio{grid-column:1 / -1;background:var(--surface);border:1px solid var(--line);padding:8px;}
.moment-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:14px;}
.moment-owner{font-size:13px;color:var(--sub);}
.moment-tag{
  font-size:12px;
  color:var(--sub);
  border:1px solid var(--line);
  border-radius:3px;
  padding:2px 8px;
}
.moment-tag:hover{border-color:var(--accent);color:var(--accent);}
.moments-empty{
  text-align:center;
  color:var(--sub);
  font-size:15px;
  line-height:1.7;
  padding:48px 12px 56px;
}
.moment-detail{padding:28px 0 12px;}
.moment-detail .moment-body{font-size:18px;line-height:1.85;}
.moment-detail .moment-media{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:20px;}

/* ---------- 响应式 ---------- */
@media (max-width:880px){
  .container,.container-narrow{padding:0 22px;}
  .home-body{grid-template-columns:1fr;gap:30px;}
  .home-left{gap:22px;}
  .book-wall{display:block;}
  .book-wall .book-item{margin-bottom:10px;}
  .featured-item{grid-template-columns:1fr;gap:4px;}
  .cat-post-item{grid-template-columns:64px minmax(0,1fr);gap:10px;}
  .cat-post-item .cb,.cat-post-item .ctm{display:none;}
  .site-header{flex-direction:column;align-items:flex-start;gap:18px;}
  .book-head{flex-direction:column;}
  .post-body{grid-template-columns:minmax(0,1fr) 200px;gap:32px;}
  .post-content{font-size:17px;}
  .page-title{font-size:30px;}
}
/* 文章页双栏→堆叠用更低断点：窗口不太多时侧栏仍留在正文右侧 */
@media (max-width:640px){
  .post-body{grid-template-columns:1fr;gap:30px;}
  .post-sidebar{order:2;position:static;}
}
