:root{
  --bg:#0a0a08;--surface:#141412;--surface2:#1c1c18;
  --accent:#d4a24e;--accent-dim:rgba(212,162,78,.6);
  --green:#7a9e7e;--purple:#8b7ac4;--rose:#c47a8b;
  --text-p:#f0ece4;--text-m:#6b6760;--text-b:#b0a99a;
  --border:rgba(107,103,96,.15);
  --font-sans:-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-serif:'Cormorant Garamond',Georgia,"Songti SC","STSong",serif;
  --font-syne:'Syne',-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --font-mono:'DM Mono',"SF Mono",Consolas,"Courier New",monospace;
}

/* ===== 自托管字体 (fontsource) ===== */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;src:url('/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;src:url('/fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;src:url('/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Syne';font-style:normal;font-weight:600;src:url('/fonts/syne-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Syne';font-style:normal;font-weight:700;src:url('/fonts/syne-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:300;src:url('/fonts/dm-mono-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;src:url('/fonts/dm-mono-latin-400-normal.woff2') format('woff2')}

*{box-sizing:border-box;margin:0;padding:0}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#2b2b27;border-radius:6px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#3a3a34}
html{scrollbar-width:thin;scrollbar-color:#2e2e2a var(--bg)}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text-b);font-family:var(--font-mono),var(--font-sans);font-weight:300;font-size:14px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* 暗色噪点质感 */
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:9999}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--accent);color:var(--bg)}
.wrap{max-width:1000px;margin:0 auto;padding:0 32px}

/* ===== 导航 ===== */
.site-header{border-bottom:1px solid var(--border);padding:22px 0}
.site-header .wrap{display:flex;justify-content:space-between;align-items:center}
.brand{font-family:var(--font-syne);font-weight:800;font-size:16px;color:var(--text-p);letter-spacing:.02em}
.site-nav a{margin-left:32px;font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-m);padding-bottom:2px;border-bottom:1px solid transparent;transition:color .3s}
.site-nav a:hover{color:var(--accent);border-color:var(--accent)}

/* ===== 首页 ===== */
main{padding-top:12px;min-height:70vh}
.hero{margin:40px 0 44px}
.hero-title{font-family:var(--font-serif);font-weight:300;font-size:clamp(32px,5vw,56px);color:var(--text-p);line-height:1.1;margin-bottom:12px}
.hero-title em{font-style:italic;color:var(--accent)}
.hero-sub{color:var(--text-m);font-size:13px;max-width:520px}

.sec-hd{display:flex;align-items:baseline;gap:16px;margin:32px 0 20px}
.sec-num{font-family:var(--font-serif);font-size:13px;color:var(--accent);font-weight:600}
.sec-title{font-family:var(--font-syne);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.2em;color:var(--text-m)}
.sec-line{flex:1;height:1px;background:linear-gradient(90deg,rgba(107,103,96,.3),transparent)}

.feed-list{border-top:1px solid var(--border)}
.post-card{display:grid;grid-template-columns:96px 1fr auto;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--border);transition:padding-left .3s ease;cursor:pointer}
.post-card:hover{padding-left:12px}
.post-card .post-date{font-size:12px;color:var(--text-m);font-variant-numeric:tabular-nums}
.post-title.feed-dyn{font-size:16px;line-height:1.6;color:var(--text-b);white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feed-type{font-size:10px;text-transform:uppercase;letter-spacing:.15em;padding:3px 10px;border:1px solid;text-align:center;white-space:nowrap}
.feed-type[data-type="article"]{color:var(--accent);border-color:rgba(212,162,78,.4)}
.feed-type[data-type="collection"]{color:var(--accent);border-color:rgba(212,162,78,.4);white-space:nowrap}
.feed-type[data-type="rant"]{color:var(--green);border-color:rgba(122,158,126,.4)}
.feed-type[data-type="image"]{color:var(--purple);border-color:rgba(139,122,196,.4)}
.post-title{font-family:var(--font-serif);font-size:20px;font-weight:600;color:var(--text-p);transition:color .3s}
.post-card:hover .post-title{color:var(--accent)}
.post-card:hover .post-arrow{transform:translateX(4px);color:var(--accent)}
.post-arrow{color:var(--text-m);font-size:18px;transition:transform .3s,color .3s}
.post-excerpt{grid-column:2 / span 2;color:var(--text-m);font-size:13px;line-height:1.7;margin-top:4px}
.pagination{display:flex;justify-content:space-between;margin:36px 0 24px}
.pagination a{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-m)}
.pagination a:hover{color:var(--accent)}
.meta-tag{color:var(--accent);border-bottom:1px solid rgba(212,162,78,.3);transition:border-color .3s}
.meta-tag:hover{color:var(--accent);border-color:var(--accent)}
.post-tags{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.post-tags .meta-tag{font-size:14px}
.empty{color:var(--text-m);font-size:13px;padding:20px 0}

/* ===== 文章 detail ===== */
.post-single{max-width:760px;margin-left:auto;margin-right:auto;padding-top:24px}
.post-single .post-title{font-family:var(--font-serif);font-weight:300;font-size:clamp(28px,4vw,44px);color:var(--text-p);line-height:1.2;margin-bottom:10px}
.post-single .post-meta{font-size:12px;color:var(--text-m);margin-bottom:32px}
.post-meta{font-variant-numeric:tabular-nums}
.post-content{color:var(--text-b);font-size:15px;line-height:1.9}
.post-content p{margin-bottom:20px}
.post-content h1,.post-content h2,.post-content h3{font-family:var(--font-syne);color:var(--text-p);margin:32px 0 16px;font-weight:700}
.post-content h1{font-size:24px}.post-content h2{font-size:20px}.post-content h3{font-size:16px}
.post-content strong{color:var(--text-p);font-weight:400}
.post-content em{color:var(--accent)}
.post-content a{color:var(--accent);border-bottom:1px solid rgba(212,162,78,.3)}
.post-content blockquote{border-left:2px solid var(--accent);padding-left:20px;margin:24px 0;color:var(--text-m);font-style:italic}
.post-content code{background:var(--surface);padding:2px 6px;font-size:13px;color:var(--accent);font-family:var(--font-mono)}
.post-content pre{background:var(--surface);padding:16px;overflow:auto;margin:24px 0}
.post-content pre code{background:none;color:var(--text-b);padding:0}
.post-content ul,.post-content ol{padding-left:20px;margin:16px 0}
.post-content li{margin-bottom:8px}
.post-content li::marker{color:var(--accent)}
.post-content hr{border:none;border-top:1px solid var(--border);margin:32px 0}
.post-content img{border:1px solid var(--border);margin:24px 0}
.post-nav{margin-top:40px;display:flex;flex-direction:column;gap:8px;color:var(--text-m);font-size:13px}
.post-nav a{color:var(--accent)}

/* ===== 归档 / 分类 / 标签 ===== */
.archive{max-width:760px;margin-left:auto;margin-right:auto;padding-top:32px}
.archive-title{font-family:var(--font-serif);font-weight:300;font-size:48px;color:rgba(240,236,228,.08);margin-bottom:24px;user-select:none}
.archive-list{list-style:none}
.archive-list li{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);font-family:var(--font-serif);font-size:18px;color:var(--text-p);transition:padding-left .3s}
.archive-list li:hover{padding-left:12px}
.archive-list .date{font-family:var(--font-mono);font-size:12px;color:var(--text-m);min-width:96px;font-variant-numeric:tabular-nums}
.archive-list a{color:var(--text-p)}
.archive-list a:hover{color:var(--accent)}
.count{font-family:var(--font-mono);color:var(--text-m);font-size:12px;margin-left:auto}

/* ===== 标签索引 ===== */
.tag-hero,.tag-index-head{border:1px solid var(--border);border-radius:14px;padding:28px 30px;margin-bottom:36px;background:var(--surface)}
.tag-kind{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent-dim);margin-bottom:10px}
.tag-name,.tag-index-title{font-family:var(--font-serif);font-weight:300;color:var(--text-p);line-height:1.1}
.tag-name{font-size:clamp(32px,5vw,56px)}
.tag-index-title{font-size:clamp(32px,5vw,48px)}
.tag-count,.tag-index-desc{color:var(--text-m);font-size:13px;margin-top:12px}
.tag-cloud{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 48px}
.tag-chip{display:inline-flex;align-items:baseline;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.015);color:var(--text-b);font-family:var(--font-serif);font-size:calc(15px * var(--tag-scale));transition:color .25s,border-color .25s,background .25s,transform .25s}
.tag-chip:hover{color:var(--accent);border-color:var(--accent);background:rgba(212,162,78,.06);transform:translateY(-2px)}
.tag-chip small{font-family:var(--font-mono);font-size:10px;color:var(--text-m)}
.tag-list-hd{margin-top:0;margin-bottom:16px}
.tag-list{margin-bottom:24px}

/* ===== 关于 ===== */
.page-single{max-width:760px;margin-left:auto;margin-right:auto;padding-top:24px}
.page-title{font-family:var(--font-serif);font-weight:300;font-size:clamp(36px,6vw,72px);color:var(--text-p);line-height:1;margin-bottom:16px}
.page-content{color:var(--text-b);font-size:14px;line-height:1.9}
.page-content p{margin-bottom:18px}
.page-content h2,.page-content h3{font-family:var(--font-syne);color:var(--text-p);margin:28px 0 14px}
.page-content blockquote{border-left:2px solid var(--accent);padding-left:20px;margin:24px 0;font-family:var(--font-serif);font-size:20px;font-style:italic;color:var(--text-b)}
.about-hero{text-align:center;padding:40px 0 32px}
.about-name{font-family:var(--font-serif);font-weight:300;font-size:clamp(48px,8vw,110px);color:var(--text-p);line-height:.95;margin-bottom:16px}
.about-name em{font-style:italic;color:var(--accent)}
.about-aka{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);margin-bottom:40px}
.about-poem{max-width:480px;margin:0 auto;font-family:var(--font-serif);font-size:20px;font-style:italic;color:var(--text-b);line-height:1.8;padding:32px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:56px 0;align-items:start}
.about-bio p:first-of-type::first-letter{font-family:inherit;font-size:inherit;float:none;line-height:inherit;margin:0;color:inherit}
.about-stat{display:flex;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border)}
.about-stat-num{font-family:var(--font-serif);font-size:36px;font-weight:300;color:var(--text-p)}
.about-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-m);text-align:right;align-self:center}
.about-bio h3{font-family:var(--font-syne);font-size:12px;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:20px}
.about-logs{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:0 0 56px}.about-log-heading{margin-bottom:12px;color:var(--accent);font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.about-log{padding:13px 0;border-bottom:1px solid var(--border)}.about-log-head{display:flex;justify-content:space-between;gap:16px;color:var(--text-p);font-size:14px}.about-log-head time{flex-shrink:0;color:var(--text-m);font-family:var(--font-mono);font-size:11px}.about-log p{margin:6px 0 0;color:var(--text-m);font-size:13px;line-height:1.7}.about-log-empty{color:var(--text-m);font-size:13px}
.journal-hero{padding:40px 0 46px}.journal-kicker{display:block;margin-bottom:13px;color:var(--accent-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.journal-list{max-width:820px}.journal-card{padding:22px 0;border-bottom:1px solid var(--border)}.journal-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:9px}.journal-type{color:var(--accent);font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.journal-card time{color:var(--text-m);font-family:var(--font-mono);font-size:11px}.journal-card h2{margin:0;color:var(--text-p);font-family:var(--font-serif);font-size:26px;font-weight:600;line-height:1.25}.journal-card p{margin:9px 0 0;color:var(--text-b);font-size:14px;line-height:1.8;white-space:pre-wrap}.journal-empty{padding:24px 0}
.watching-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-bottom:16px}
.watching-card{display:flex;gap:16px;border:1px solid var(--border);padding:18px;transition:.3s;background:var(--surface)}
.watching-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.watching-cover{width:64px;height:64px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,#1a2a1a,#0d1a2d);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--accent);background-size:cover;background-position:center}
.watching-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-m);margin:2px 0 4px}
.watching-tag{color:var(--accent);border:1px solid rgba(212,162,78,.35);padding:1px 7px;border-radius:4px}
.watching-progress{font-family:var(--font-mono)}
.watching-rating{color:var(--accent)}
.watching-body{display:flex;flex-direction:column;justify-content:center}
.watching-title{font-family:var(--font-serif);font-size:18px;font-weight:600;color:var(--text-p)}
.watching-status{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-dim);margin-top:6px}
.watching-note{font-size:13px;color:var(--text-m);margin-top:6px;line-height:1.6}
.contact-line{color:var(--text-m);font-size:13px;margin-bottom:24px}
.home-top{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start}
.home-left{min-width:0}
.home-bottom{margin-top:8px}
.site-stats{margin:8px 0 68px;border:1px solid var(--border);border-radius:14px;padding:22px 24px;background:var(--surface)}
.site-stats-head{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}
.site-stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.site-stat{display:flex;flex-direction:column;gap:7px;padding:6px 24px 4px;border-left:1px solid var(--border)}
.site-stat:first-child{border-left:0;padding-left:0}
.site-stat:last-child{padding-right:0}
.site-stat-value{font-family:var(--font-serif);font-size:30px;line-height:1;color:var(--text-p);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-stat-label{font-size:11px;letter-spacing:.12em;color:var(--text-m)}
.home-side{position:sticky;top:24px;align-self:end;margin-bottom:8px}
.author-card{border:1px solid var(--border);padding:32px 24px;text-align:center;background:var(--surface);border-radius:14px;flex-shrink:0;margin-top:10px}
.author-avatar{width:84px;height:84px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 14px;border:1px solid var(--border)}
.author-name{font-family:var(--font-serif);font-size:22px;color:var(--text-p)}
.author-bio{font-size:13px;color:var(--text-m);margin:6px 0 20px}
.author-stats{display:flex;justify-content:center;gap:28px;padding:16px 0 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:22px}
.author-stat{display:flex;flex-direction:column;align-items:center;gap:4px}
.author-stat .num{font-family:var(--font-serif);font-size:24px;color:var(--text-p)}
.author-stat .lbl{font-size:11px;color:var(--text-m);letter-spacing:.1em}
.author-follow{display:inline-flex;align-items:center;gap:8px;padding:10px 26px;border:1px solid var(--accent);color:var(--accent);font-size:12px;letter-spacing:.08em;transition:.3s}
.author-follow svg{display:block}
.author-follow:hover{background:var(--accent);color:var(--bg)}
.credit-note{color:var(--text-m);font-size:13px;line-height:1.9;margin-bottom:24px}
.credit-note a{color:var(--accent);border-bottom:1px solid rgba(212,162,78,.3)}
.credit-note a:hover{border-color:var(--accent)}

/* ===== 相册 ===== */
.gallery{max-width:1000px}
.album{margin-bottom:48px}
.album-cover{height:220px;background-size:cover;background-position:center;border-radius:12px;margin-bottom:16px;border:1px solid var(--border)}
.album-name{font-family:var(--font-serif);font-weight:600;font-size:24px;color:var(--text-p);margin-bottom:6px}
.album-desc{color:var(--text-m);font-size:13px;margin:0 0 20px}
.album-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.album-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);cursor:pointer;transition:transform .3s,box-shadow .3s}
.album-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.3)}
.album-card-cover{height:150px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;background-color:#141412}
.album-card-cover.album-card-stack{overflow:hidden;position:relative;background:#121210}
.stack-img{position:absolute;width:60%;height:64%;object-fit:cover;border:2px solid #0d0d0b;border-radius:5px;box-shadow:0 4px 14px rgba(0,0,0,.5);transform:rotate(calc((var(--i) - 2) * 5deg)) translateY(calc((var(--i) - 2) * 5px));opacity:.95}
.cover-count{position:relative;z-index:3;font-family:var(--font-serif);font-size:30px;font-weight:600;color:var(--text-p);text-shadow:0 2px 10px rgba(0,0,0,.7)}
.stack-plus{color:var(--accent);font-size:34px}
.album-card-count{font-family:var(--font-serif);font-size:40px;color:rgba(240,236,228,.14)}
.album-card-body{padding:16px 18px}
.album-card-name{font-family:var(--font-serif);font-size:20px;font-weight:600;color:var(--text-p);margin-bottom:6px}
.album-card-desc{font-size:13px;color:var(--text-m);line-height:1.6;margin-bottom:6px}
.album-card-meta{font-family:var(--font-mono);font-size:12px;color:var(--text-m)}
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.gallery-item{margin:0;position:relative;overflow:hidden;border:1px solid var(--border);background:linear-gradient(135deg,#1a1a2d,#12261a,#2d1a1a);aspect-ratio:4/3;cursor:zoom-in}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gallery-item img.ph{opacity:0}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;font-family:var(--font-serif);font-size:16px;color:#f0ece4;background:linear-gradient(180deg,transparent,rgba(10,10,8,.85));opacity:0;transition:opacity .3s}
.gallery-item:hover figcaption{opacity:1}

.lightbox{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;cursor:pointer}
.lightbox.show{display:flex}
.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain;border:1px solid var(--border)}

/* ===== 页脚 ===== */
.site-footer{border-top:1px solid var(--border);margin-top:80px;padding:48px 0 32px}
.footer-friends{margin-bottom:40px}
.friends-label{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--text-m);margin-bottom:20px}
.friends-list{display:flex;flex-wrap:wrap;gap:16px}
.friend{display:flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid var(--border);color:var(--text-b);transition:.3s}
.friend:hover{border-color:var(--accent);color:var(--text-p)}
.footer-bottom{display:flex;justify-content:space-between;padding-top:24px;border-top:1px solid var(--border);font-size:11px;color:var(--text-m);letter-spacing:.05em}

/* ===== 音乐 ===== */
.music-btn{position:fixed;left:28px;bottom:28px;z-index:200;width:44px;height:44px;border:1px solid var(--border);background:rgba(20,20,18,.85);backdrop-filter:blur(8px);color:var(--text-b);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.3s}
.music-btn:hover{color:var(--accent);border-color:var(--accent)}
.music-btn.playing{color:var(--accent);border-color:var(--accent)}
.music-note{font-size:18px;line-height:1}
.music-btn.playing .music-note{animation:spin 3s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.music-hint{position:fixed;left:82px;bottom:36px;z-index:199;background:var(--surface);border:1px solid var(--border);color:var(--text-m);font-size:11px;padding:8px 12px;opacity:0;pointer-events:none;transition:opacity .3s;max-width:260px}
.music-card{position:fixed;left:28px;bottom:84px;width:280px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;z-index:300;display:none;box-shadow:0 16px 40px rgba(0,0,0,.4)}
.music-card.show{display:block}
.music-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.music-title{font-family:var(--font-serif);font-size:15px;color:var(--text-p)}
.music-close{background:none;border:none;color:var(--text-m);font-size:18px;cursor:pointer;line-height:1}
.music-close:hover{color:var(--accent)}
.music-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px}
.music-ctrl{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-b);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1}
.music-ctrl:hover{border-color:var(--accent);color:var(--accent)}
.music-play{background:var(--accent);color:#0d0d0b;border-color:var(--accent);font-size:16px}
.music-vol{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-m);margin-bottom:12px}
.music-vol input{flex:1;accent-color:var(--accent)}
.music-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text-b)}
.music-item:hover{background:rgba(255,255,255,.04)}
.music-item.cur{color:var(--accent)}
.music-item.muted{color:var(--text-m);cursor:default}
.music-item-tag{font-size:10px;color:var(--accent)}
.music-hint.show{opacity:1}

/* ===== 视图切换 ===== */
.view-toggle{display:flex;width:min(224px,100%);gap:0;margin-bottom:36px}
.toggle-btn{flex:0 0 50%;width:50%;min-width:0;box-sizing:border-box;text-align:center;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;padding:10px 8px;background:transparent;border:1px solid var(--border);color:var(--text-m);cursor:pointer;transition:.3s}
.toggle-btn:first-child{border-right:none}
.toggle-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}

/* 文章 / 图片视图切换：面板换场保持安静，内容项按顺序甩入甩出。 */
.animated-view-toggle{overflow:visible}
.animated-view-toggle .view-panel{will-change:contents}
.animated-view-toggle .view-item-leaving,.animated-view-toggle .view-item-entering{will-change:transform,opacity}
.animated-view-toggle .view-item-leaving{pointer-events:none}
.animated-view-toggle[data-switch-direction="forward"] .view-item-leaving{animation:site-item-out-left .36s cubic-bezier(.62,0,.82,.2) forwards}
.animated-view-toggle[data-switch-direction="backward"] .view-item-leaving{animation:site-item-out-right .36s cubic-bezier(.62,0,.82,.2) forwards}
.animated-view-toggle[data-switch-direction="forward"] .view-item-entering{animation:site-item-in-right .48s cubic-bezier(.2,.82,.24,1) both}
.animated-view-toggle[data-switch-direction="backward"] .view-item-entering{animation:site-item-in-left .48s cubic-bezier(.2,.82,.24,1) both}
@keyframes site-item-out-left{0%{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}76%{opacity:.82;filter:blur(0);transform:translate3d(-18px,0,0)}100%{opacity:0;filter:blur(2px);transform:translate3d(-92px,0,0)}}
@keyframes site-item-out-right{0%{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}76%{opacity:.82;filter:blur(0);transform:translate3d(18px,0,0)}100%{opacity:0;filter:blur(2px);transform:translate3d(92px,0,0)}}
@keyframes site-item-in-right{0%{opacity:0;transform:translate3d(92px,0,0)}100%{opacity:1;transform:var(--switch-final-transform,none)}}
@keyframes site-item-in-left{0%{opacity:0;transform:translate3d(-92px,0,0)}100%{opacity:1;transform:var(--switch-final-transform,none)}}
@media(prefers-reduced-motion:reduce){.animated-view-toggle .view-item-leaving,.animated-view-toggle .view-item-entering{animation:none}}

/* 换场卡片的悬浮只保留边框和阴影，避免动画结束后再次改变位置。 */
.animated-view-toggle .article-list-card:hover,.animated-view-toggle .collection-card:hover,.animated-view-toggle .album-card:hover{transform:none}

/* ===== 文章-时间线 ===== */
.articles-timeline{position:relative}
.articles-year{margin-bottom:48px}
.year-label{font-family:var(--font-serif);font-size:44px;font-weight:300;color:rgba(240,236,228,.08);margin-bottom:24px;user-select:none}
.year-month{margin-bottom:28px}
.month-label{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--accent-dim);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid rgba(212,162,78,.1)}
.month-item{display:flex;align-items:baseline;gap:16px;padding:10px 0;cursor:pointer;transition:padding-left .3s}
.month-item:hover{padding-left:12px}
.month-item-day{font-size:12px;color:var(--text-m);min-width:32px;font-variant-numeric:tabular-nums}
.month-item-title{font-family:var(--font-serif);font-size:18px;color:var(--text-p);transition:color .3s}
.month-item:hover .month-item-title{color:var(--accent)}

/* ===== 文章-合集 ===== */
.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.collection-card{display:block;border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:transform .3s,box-shadow .3s;background:var(--surface)}
.collection-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(0,0,0,.3)}
.collection-cover{height:110px;display:flex;align-items:center;justify-content:center;position:relative}
.collection-count{font-family:var(--font-serif);font-size:44px;font-weight:300;color:rgba(240,236,228,.14)}
.collection-body{padding:22px 24px}
.collection-name{font-family:var(--font-serif);font-size:24px;font-weight:600;color:var(--text-p);margin-bottom:6px}
.collection-desc{font-size:12px;color:var(--text-m);margin-bottom:14px}
.collection-items{list-style:none;display:flex;flex-direction:column;gap:6px}
.collection-items li{font-size:13px;color:var(--text-b);padding-left:14px;position:relative}
.collection-items li::before{content:'';position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:var(--accent)}

/* ===== 图片-瀑布流 ===== */
.img-waterfall{column-count:4;column-gap:14px}
.img-card{break-inside:avoid;margin-bottom:14px;position:relative;overflow:hidden;cursor:zoom-in;border:1px solid var(--border);background:linear-gradient(135deg,#1a1a2d,#12261a,#2d1a1a);aspect-ratio:4/3;min-height:160px}
.img-card img{width:100%;display:block;transition:transform .3s}
.img-card img.ph{opacity:0}
.img-card:hover img{transform:scale(1.04)}
.img-card-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;font-family:var(--font-serif);font-size:15px;color:#f0ece4;background:linear-gradient(180deg,transparent,rgba(10,10,8,.85))}

/* ===== 动态 ===== */
.moment-feed{display:flex;flex-direction:column;gap:20px}
.moment{border:1px solid var(--border);padding:24px;background:var(--surface);transition:border-color .3s;cursor:pointer}
.moment:hover{border-color:var(--accent)}
.moment:hover{border-color:var(--accent)}
.moment-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.moment-date{font-size:12px;color:var(--text-m);font-variant-numeric:tabular-nums}
.moment-title{font-family:var(--font-serif);font-size:22px;font-weight:600;color:var(--text-p);margin-bottom:10px}
.moment-title a:hover{color:var(--accent)}
.moment-content{color:var(--text-b);line-height:1.8;font-size:14px;white-space:pre-wrap}

/* ===== 动态详情弹层 ===== */
.moment-modal{position:fixed;inset:0;background:rgba(8,8,6,.9);backdrop-filter:blur(8px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.moment-modal.show{display:flex}
.moment-modal-inner{max-width:600px;width:100%;max-height:85vh;overflow-y:auto;background:#0d0d0b;border:1px solid var(--border);border-radius:14px;padding:32px;position:relative}
.moment-x{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--text-m);font-size:24px;cursor:pointer;line-height:1}
.moment-x:hover{color:var(--accent)}
.moment-modal-date{font-family:var(--font-mono);font-size:12px;color:var(--text-m);margin-bottom:16px}
.moment-modal-text{color:var(--text-b);font-size:15px;line-height:1.9;white-space:pre-wrap}
.moment-modal-img{max-width:100%;margin-top:18px;border-radius:8px}

/* ===== 相册弹层 ===== */
.album-modal{position:fixed;inset:0;background:rgba(8,8,6,.9);backdrop-filter:blur(8px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.album-modal.show{display:flex}
.album-modal-inner{max-width:900px;width:100%;max-height:85vh;overflow-y:auto;background:#0d0d0b;border:1px solid var(--border);border-radius:14px;padding:32px;position:relative}
.album-modal-name{font-family:var(--font-serif);font-weight:600;font-size:24px;color:var(--text-p);margin:0 0 8px}

/* ===== 大图详情弹窗 ===== */
.imgdetail{position:fixed;inset:0;background:rgba(8,8,6,.92);backdrop-filter:blur(8px);z-index:99999;display:none;align-items:center;justify-content:center;padding:24px}
.imgdetail.show{display:flex}
.imgdetail-inner{max-width:1000px;width:100%;max-height:88vh;overflow:hidden;background:#0d0d0b;border:1px solid var(--border);border-radius:16px;position:relative;display:grid;grid-template-columns:1fr 260px}
.imgdetail-media{display:flex;align-items:center;justify-content:center;background:#000;min-height:60vh;overflow:hidden}
.imgdetail-media img{max-width:100%;max-height:88vh;object-fit:contain}
.imgdetail-info{padding:24px;overflow-y:auto;border-left:1px solid var(--border)}
.imgdetail-loading{color:var(--text-m);font-size:13px}
.imgdetail-rows{display:flex;flex-direction:column}
.imgdetail-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}
.imgdetail-row .k{color:var(--text-m);flex-shrink:0}
.imgdetail-row .v{color:var(--text-b);text-align:right;font-family:var(--font-mono)}
.imgdetail-sub{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-dim);margin:16px 0 4px}

/* ===== 弹窗动画 ===== */
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:scale(.94) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}
.imgdetail.show,.album-modal.show,.moment-modal.show{animation:overlayIn .28s ease both}
.imgdetail.show .imgdetail-inner,.album-modal.show .album-modal-inner,.moment-modal.show .moment-modal-inner{animation:popIn .34s cubic-bezier(.2,.9,.25,1) both}
.music-card.show{animation:popIn .34s cubic-bezier(.2,.9,.25,1) both}
/* 关闭淡出 */
.imgdetail,.album-modal,.moment-modal{transition:opacity .22s ease,transform .22s ease}
.imgdetail.closing,.album-modal.closing,.moment-modal.closing{animation:none;opacity:0;transform:scale(.96)}
.music-card{transition:opacity .22s ease,transform .22s ease}
.music-card.closing{animation:none;opacity:0;transform:scale(.96)}
.moment-modal.show .moment-modal-inner.closing,.album-modal.show .album-modal-inner.closing,.imgdetail.show .imgdetail-inner.closing{animation:none;opacity:0;transform:scale(.96)}

/* ===== 关于-优化 ===== */
.about-hero{padding:44px 0 12px}
.about-name{font-family:var(--font-serif);font-weight:300;font-size:clamp(48px,8vw,100px);color:var(--text-p);line-height:.95;margin-bottom:16px}
.about-aka{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);margin-bottom:44px}
.about-poem{max-width:480px;margin:0 auto;font-family:var(--font-serif);font-size:21px;font-style:italic;color:var(--text-b);line-height:1.8;padding:32px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;padding:56px 0;align-items:start}
.about-bio p{margin-bottom:18px}

/* ===== 页面切换过渡（每次加载都生效，稳定） ===== */
main{animation:mainIn .5s cubic-bezier(.22,.61,.36,1) both}
@keyframes mainIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion: reduce){main{animation:none}}

/* ===== 置顶横向卡片 ===== */
.pinned-wrap{position:relative;margin-bottom:0}
.pinned-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:thin}
.pinned-track::-webkit-scrollbar{height:6px}
.pinned-track::-webkit-scrollbar-thumb{background:rgba(107,103,96,.3);border-radius:3px}
.pin-card{flex:0 0 auto;width:280px;height:196px;overflow:hidden;scroll-snap-align:start;border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--surface);display:flex;flex-direction:column;transition:.3s}
.pin-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.pin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.pin-head .pin-title{flex:1}
.pin-top{display:flex;justify-content:flex-end;margin-bottom:12px}
.pin-kind{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-dim)}
.pin-title{font-family:var(--font-serif);font-size:20px;font-weight:600;color:var(--text-p);line-height:1.25;margin-bottom:6px}
.pin-meta{font-family:var(--font-mono);font-size:12px;color:var(--text-m)}
.pin-desc{color:var(--text-m);font-size:13px;line-height:1.5;margin-bottom:10px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pin-text{color:var(--text-b);font-size:14px;line-height:1.7;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.pin-img{max-width:100%;border-radius:8px;margin-top:14px;border:1px solid var(--border)}
.pin-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:34px;border:1px solid var(--border);background:rgba(20,20,18,.85);backdrop-filter:blur(6px);color:var(--text-b);cursor:pointer;border-radius:50%;font-size:20px;line-height:1}
.pin-nav:hover{color:var(--accent);border-color:var(--accent)}
.pin-prev{left:-14px}
.pin-next{right:-14px}

/* ===== 合集分类页 ===== */
.cat-hero{border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:36px;background:var(--surface)}
.cat-cover{height:200px;background-size:cover;background-position:center;border-bottom:1px solid var(--border)}
.cat-body{padding:28px 30px}
.cat-kind{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent-dim);margin-bottom:10px}
.cat-name{font-family:var(--font-serif);font-weight:300;font-size:clamp(28px,4vw,44px);color:var(--text-p);line-height:1.1;margin-bottom:10px}
.cat-desc{color:var(--text-b);font-size:15px;max-width:640px;line-height:1.8}
.cat-count{font-family:var(--font-mono);font-size:12px;color:var(--text-m);margin-top:14px}

.post-single{position:relative}
.post-reading{display:grid;grid-template-columns:190px minmax(0,720px);gap:40px;max-width:1000px;margin:56px auto}
.post-toc{position:sticky;top:0;align-self:start;max-height:70vh;overflow:auto;padding:0 14px 14px 0;border-right:1px solid var(--border)}
.post-toc-label,.comments-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-m);margin-bottom:12px}
.post-toc-list{font-size:12px;line-height:1.7;color:var(--text-m)}
.post-toc-list ol,.post-toc-list ul{list-style:none;padding-left:10px}
.post-toc-list a:hover{color:var(--accent)}
.post-main{min-width:0}
.post-reading .post-title{font-family:var(--font-serif);font-size:clamp(32px,5vw,56px);line-height:1.1;color:var(--text-p);margin-bottom:18px}
.post-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--text-m);font-size:12px;margin-bottom:38px}
.post-meta-cats{display:inline-flex;gap:5px;flex-wrap:wrap}
.comments{margin-top:64px;padding-top:24px;border-top:1px solid var(--border)}
.comments .utterances{max-width:none}

@media(max-width:900px){
  .album-cards{grid-template-columns:1fr}
  .wrap{padding:0 20px}
  .home-top{grid-template-columns:1fr}
  .home-side{position:static;align-self:start;margin-bottom:0}
  .author-card{min-width:0}
  .post-card{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .post-card .post-date{order:-1}
  .post-card .post-arrow{display:none}
  .post-excerpt{grid-column:1}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .about-logs{grid-template-columns:1fr;gap:34px}
  .footer-bottom{flex-direction:column;gap:12px}
  .img-waterfall{column-count:2}
  .collection-grid{grid-template-columns:1fr}
  .post-reading{display:block;margin:32px 0}
  .post-toc{position:static;max-height:none;border-right:0;border-bottom:1px solid var(--border);padding:0 0 16px;margin-bottom:28px}
  .site-stats{margin:24px 0 48px;padding:20px}
  .site-stats-grid{grid-template-columns:1fr 1fr;gap:20px 0}
  .site-stat{padding:4px 16px;border-left:1px solid var(--border)}
  .site-stat:nth-child(odd){border-left:0;padding-left:0}
  .site-stat:nth-child(even){padding-right:0}
}
@media(max-width:480px){
  .hero-title{font-size:28px}
  .about-name{font-size:40px}
  .archive-title{font-size:36px}
  .music-btn{left:20px;bottom:20px}
  .music-hint{left:68px;bottom:28px}
  .img-waterfall{column-count:1}
  .site-stats{padding:18px 16px}
  .site-stats-head{gap:10px;flex-wrap:wrap}
  .site-stat-value{font-size:25px}
}

/* ===== 本轮页面整理 ===== */
body{font-size:15px}
.site-nav a{font-size:12px}
.sec-title{font-size:13px}
.empty{font-size:14px}
.home-top{gap:20px}
.home-left{width:100%;padding-bottom:16px;box-sizing:border-box}
.home-side{margin-bottom:8px}
.author-card{max-width:300px;margin-left:auto;margin-right:auto}
.pinned-track{padding-top:6px;margin-top:-6px}
.pin-card{will-change:transform}
.site-stats{margin-top:8px}

/* 番剧 */
.watching-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:22px}
.watching-card{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;border-radius:14px;min-height:365px}
.watching-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.28)}
.watching-cover-link{display:block;flex:0 0 245px;min-height:0;background:#1c1a16}
.watching-cover{width:100%;height:100%;border-radius:0;background-size:cover;background-position:center}
.watching-cover-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#263b2c,#111a22)}
.watching-cover-empty span{font-size:42px;color:var(--accent);opacity:.7}
.watching-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;justify-content:space-between;width:100%;padding:17px 18px 16px;border:0;background:var(--surface);text-align:left;color:inherit;cursor:pointer}
.watching-title{font-family:var(--font-serif);font-size:21px;line-height:1.2;font-weight:600;color:var(--text-p)}
.watching-meta{flex-wrap:wrap;line-height:1.6;margin:10px 0 0;font-size:13px}
.watching-format{color:var(--text-m);font-family:var(--font-mono);font-size:11px}
.watching-open{display:flex;justify-content:space-between;width:100%;margin-top:13px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--text-m)}
.watching-open span{color:var(--accent);font-size:16px;line-height:1}
.watching-archive{margin-bottom:32px}
.anime-archive-head{display:flex;align-items:center;gap:20px;margin-top:54px}.anime-archive-head .sec-hd{flex:1;margin-bottom:20px}.anime-archive-count{color:var(--text-m);font-family:var(--font-mono);font-size:13px}.anime-empty-archive{grid-column:1/-1;border:1px dashed var(--border);padding:24px;text-align:center}
.anime-preparing-head{display:flex;align-items:center;gap:20px;margin-top:54px}.anime-preparing-head .sec-hd{flex:1;margin-bottom:20px}.anime-empty-preparing{grid-column:1/-1;border:1px dashed var(--border);padding:24px;text-align:center}
.anime-modal{position:fixed;inset:0;background:rgba(8,8,6,.9);backdrop-filter:blur(8px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}.anime-modal.show{display:flex}.anime-modal-inner{position:relative;width:min(620px,100%);max-height:85vh;overflow:auto;background:#0d0d0b;border:1px solid var(--border);border-radius:14px;padding:36px}.anime-modal-kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-dim);margin-bottom:12px}.anime-modal h2{font-family:var(--font-serif);font-size:34px;color:var(--text-p);font-weight:600;margin-bottom:10px}.anime-modal-meta{font-family:var(--font-mono);font-size:13px;color:var(--accent);margin-bottom:22px}.anime-modal-note{font-size:15px;line-height:1.8;color:var(--text-b);margin-bottom:20px}.anime-modal-details{border-top:1px solid var(--border)}.anime-modal-details>div{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px}.anime-modal-details span{color:var(--text-m)}.anime-modal-details b{color:var(--text-b);font-weight:400}.anime-no-details{display:block!important;color:var(--text-m)}.anime-modal-link{display:inline-flex;margin-top:22px;color:var(--accent);border-bottom:1px solid rgba(212,162,78,.4);padding-bottom:3px}

/* 动态 */
.moment{padding:24px 26px 18px;border-radius:14px}.moment-head{gap:12px;margin-bottom:17px}.moment-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--border)}.moment-author{font-size:14px;color:var(--text-p)}.moment-preview{font-size:15px;line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}.moment-ellipsis{height:1.5em;font-family:var(--font-serif);font-size:22px;line-height:1;color:var(--accent);letter-spacing:.16em}.moment-more{display:block;border:0;background:none;padding:0;margin:-1px 0 10px;color:var(--accent-dim);font-size:13px;cursor:pointer}.moment-more:hover{text-decoration:underline;color:var(--accent)}.moment-image-grid{display:grid;gap:4px;margin-top:17px;position:relative;max-width:650px;overflow:hidden;border-radius:8px}.moment-image-grid img{width:100%;height:100%;min-height:0;object-fit:cover;display:block;aspect-ratio:1.3}.moment-image-grid.layout-1{grid-template-columns:1fr}.moment-image-grid.layout-1 img{aspect-ratio:16/9}.moment-image-grid.layout-2,.moment-image-grid.layout-3,.moment-image-grid.layout-4,.moment-image-grid.layout-6,.moment-image-grid.layout-9{grid-template-columns:repeat(3,1fr)}.moment-image-more{position:absolute;right:8px;bottom:8px;padding:2px 8px;border-radius:999px;background:rgba(10,10,8,.8);color:var(--text-p);font-size:13px}.moment-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.moment-date{font-size:12px;color:var(--text-m);font-variant-numeric:tabular-nums}.moment-actions,.content-actions{display:flex;justify-content:flex-end;gap:7px}.moment-action,.content-action{border:1px solid transparent;background:transparent;color:var(--text-m);padding:6px 9px;font-size:13px;cursor:pointer;border-radius:6px}.moment-action:hover,.content-action:hover,.moment-action.liked,.content-action.liked{color:var(--accent);border-color:rgba(212,162,78,.32);background:rgba(212,162,78,.06)}.moment-action span,.content-action span{margin-left:2px}.moment-modal-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.moment-modal-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}.moment-modal-inner{padding:36px}.moment-modal-text{font-size:16px}

/* 图片时间线 */
.image-timeline-layout{display:grid;grid-template-columns:118px minmax(0,1fr);gap:34px;align-items:start}.image-timeline-index{position:sticky;top:0;align-self:start;padding:0 0 16px 14px}.image-timeline-index::before{content:"";position:absolute;left:0;top:0;bottom:16px;width:1px;background:var(--border)}.image-timeline-index-label{margin:0 0 13px;color:var(--text-m);font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.image-timeline-index nav{display:flex;flex-direction:column;gap:2px}.image-timeline-index a{display:block;padding:7px 0 7px 13px;border-left:2px solid transparent;color:var(--text-m);font-family:var(--font-serif);font-size:14px;line-height:1.35;transition:color .2s,border-color .2s,padding-left .2s}.image-timeline-index a:hover{padding-left:17px;color:var(--accent)}.image-timeline-index a.active{border-left-color:var(--accent);color:var(--accent);padding-left:17px}.image-timeline{border-top:1px solid var(--border)}.image-month{position:relative;padding:52px 0 16px;border-bottom:1px solid var(--border);scroll-margin-top:0}.image-month-label{position:absolute;top:16px;left:0;font-family:var(--font-serif);font-size:23px;color:var(--accent);font-weight:600}.image-month-list{display:flex;flex-direction:column;gap:12px}.image-timeline-item{display:grid;grid-template-columns:78px minmax(0,1fr);gap:20px;align-items:center;margin:0;cursor:zoom-in}.image-timeline-item>time{font-family:var(--font-serif);font-size:34px;color:var(--text-p);text-align:right;line-height:1}.image-timeline-item>time small{font-family:var(--font-sans);font-size:13px;color:var(--text-m);margin-left:3px}.image-timeline-media{position:relative;min-height:130px;max-width:680px;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:#141412}.image-timeline-media img{width:100%;max-height:330px;object-fit:cover;display:block;transition:transform .3s}.image-timeline-item:hover img{transform:scale(1.025)}.image-timeline-media figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;color:var(--text-p);font-family:var(--font-serif);font-size:16px;background:linear-gradient(180deg,transparent,rgba(10,10,8,.85))}
.album-modal-grid{display:block}.album-modal-grid .image-month{padding-top:52px}.album-modal-grid .image-timeline-media{min-height:100px}

/* 文章列表与合集 */
.article-list-cards{display:flex;flex-direction:column;gap:12px}.article-list-card{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:20px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);transition:transform .25s,border-color .25s,box-shadow .25s}.article-list-card:hover{transform:translateX(4px);border-color:var(--accent);box-shadow:0 10px 24px rgba(0,0,0,.22)}.article-list-cover{width:112px;height:112px;border-radius:8px;background-size:cover;background-position:center;flex-shrink:0}.article-list-cover-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#273b2d,#171a20)}.article-list-cover-empty span{font-size:28px;color:var(--accent);opacity:.7}.article-list-info{min-width:0}.article-list-info time{font-family:var(--font-mono);font-size:12px;color:var(--text-m)}.article-list-info h2{font-family:var(--font-serif);font-size:23px;line-height:1.2;color:var(--text-p);font-weight:600;margin:7px 0}.article-list-collection{display:inline-flex;color:var(--accent-dim);font-size:12px;margin-bottom:7px}.article-list-info p{color:var(--text-m);font-size:14px;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-list-arrow{font-size:22px;color:var(--accent);padding:0 10px}.collection-card{border-radius:14px}.collection-cover{height:158px}.collection-body{padding:22px 24px 20px}.collection-desc{font-size:14px}.collection-open{display:block;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--accent)}
.cat-hero{margin-top:54px;overflow:hidden}.cat-cover{height:270px}.cat-cover-empty{display:flex;align-items:flex-end;padding:24px 30px;background:linear-gradient(135deg,#273b2d,#111a16 55%,#282017)}.cat-cover-empty span{font-family:var(--font-mono);font-size:13px;color:rgba(240,236,228,.6)}.cat-body{padding:30px}.cat-desc{font-size:16px}.cat-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:28px;border-top:1px solid var(--border);padding-top:20px}.cat-stats>div{display:flex;flex-direction:column;gap:5px;padding-right:16px;border-right:1px solid var(--border)}.cat-stats>div+div{padding-left:18px}.cat-stats>div:last-child{border-right:0}.cat-stats b{font-family:var(--font-serif);font-size:25px;font-weight:600;color:var(--text-p);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-stats span{font-size:12px;color:var(--text-m)}

/* 文章详情 */
.post-reading{gap:46px}.post-kind{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--accent-dim);margin-bottom:13px}.post-reading .post-title{margin-bottom:24px}.post-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.post-info-grid>div{display:flex;flex-direction:column;gap:7px;padding:13px 12px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.015)}.post-info-grid span{font-size:11px;color:var(--text-m)}.post-info-grid b{font-family:var(--font-mono);font-weight:400;font-size:12px;color:var(--text-b);white-space:nowrap}.post-category-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 38px;padding:14px 16px;border-left:2px solid var(--accent);background:var(--surface);font-size:12px}.post-category-card>span{color:var(--text-m);letter-spacing:.1em}.post-category-card a{color:var(--accent);font-family:var(--font-serif);font-size:18px}.post-toc{padding-top:17px}.post-toc-label{font-family:var(--font-mono);font-size:12px;color:var(--accent-dim)}.post-toc-list{font-size:14px;line-height:1.85}.post-toc-list a{color:var(--text-m);display:block;padding:2px 0}.post-toc-list li::marker{color:var(--accent)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:52px;flex-direction:row}.post-nav-card{position:relative;display:flex;flex-direction:column;gap:8px;min-height:86px;padding:16px 42px 16px 18px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-b);transition:border-color .25s,transform .25s}.post-nav-card.next{text-align:right;padding:16px 18px 16px 42px}.post-nav-card:hover{border-color:var(--accent);transform:translateY(-2px)}.post-nav-card small{font-size:11px;color:var(--text-m)}.post-nav-card strong{font-family:var(--font-serif);font-size:18px;line-height:1.3;color:var(--text-p);font-weight:600}.post-nav-card span{position:absolute;top:50%;transform:translateY(-50%);font-size:21px;color:var(--accent)}.post-nav-card.prev span{left:14px}.post-nav-card.next span{right:14px}.empty-nav{border-color:transparent;background:transparent}.content-actions{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}

/* 页脚、音乐、分享和回顶 */
.footer-credit{margin-top:18px;color:var(--text-m);font-size:12px;line-height:1.8}.footer-credit a{color:var(--accent);border-bottom:1px solid rgba(212,162,78,.3)}.back-top{position:fixed;right:28px;bottom:28px;z-index:180;width:48px;height:48px;border:1px solid var(--border);border-radius:50%;background:rgba(20,20,18,.9);color:var(--accent);font-family:var(--font-mono);font-size:17px;cursor:pointer;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .25s,border-color .25s}.back-top.show{opacity:1;transform:none;pointer-events:auto}.back-top:hover{border-color:var(--accent)}.back-top span{display:block;font-size:7px;letter-spacing:.1em;margin-top:-3px}.share-modal{position:fixed;inset:0;background:rgba(8,8,6,.9);backdrop-filter:blur(8px);z-index:500;display:none;align-items:center;justify-content:center;padding:24px}.share-modal.show{display:flex}.share-modal-inner{position:relative;width:min(580px,100%);background:#0d0d0b;border:1px solid var(--border);border-radius:14px;padding:36px;box-shadow:0 18px 50px rgba(0,0,0,.4)}.share-modal-kicker{font-family:var(--font-mono);font-size:11px;color:var(--accent-dim);letter-spacing:.16em;text-transform:uppercase}.share-modal-title{font-family:var(--font-serif);font-size:30px;color:var(--text-p);font-weight:600;margin:8px 0 24px;padding-right:24px}.share-platforms{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.share-platform{display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 6px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-b);font-size:11px;cursor:pointer}.share-platform:hover{border-color:var(--accent);color:var(--accent)}.share-platform b{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--surface2);font-family:Arial;font-size:15px}.share-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}.share-tool{padding:12px;border:1px solid var(--border);background:transparent;color:var(--text-b);cursor:pointer;border-radius:8px;font-size:13px}.share-tool:hover{border-color:var(--accent);color:var(--accent)}.share-tip{min-height:1.5em;margin-top:14px;color:var(--accent);font-size:12px}

.moment-image-grid.layout-2,.moment-image-grid.layout-4{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){
  .home-top{gap:20px}.home-side{width:100%;display:flex;justify-content:center}.author-card{width:min(300px,100%)}
  .watching-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.watching-card{min-height:330px}.watching-cover-link{flex-basis:210px}
  .article-list-card{grid-template-columns:96px minmax(0,1fr) auto}.article-list-cover{width:96px;height:96px}.article-list-info h2{font-size:21px}.article-list-info p{font-size:13px}
  .cat-hero{margin-top:34px}.cat-cover{height:230px}.cat-stats b{font-size:21px}.post-info-grid{grid-template-columns:repeat(2,1fr)}
}

/* 番剧合集与标题：海报按原比例叠放，长标题只在悬停时横向播放 */
.watching-title{display:block;max-width:100%;overflow:hidden;white-space:nowrap}
.watching-title-text{display:inline-block;min-width:100%;white-space:nowrap;transform:translateX(0)}
.watching-title.is-scrolling .watching-title-text{animation:anime-title-marquee var(--title-duration,8s) linear infinite alternate}
@keyframes anime-title-marquee{from{transform:translateX(0)}to{transform:translateX(calc(-1 * var(--title-overflow,0px)))}}
.anime-collection-cover-link{position:relative}
.anime-collection-cover-link::after{z-index:1}
.anime-collection-stack{position:relative;z-index:2;display:block;width:72%;height:86%;max-width:240px}
.anime-collection-stack-cover{position:absolute;top:4%;display:flex;width:64%;height:auto;aspect-ratio:2 / 3;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(240,236,228,.18);border-radius:8px;background:#171715;box-shadow:0 16px 24px rgba(0,0,0,.55);transition:transform .22s ease}
.anime-collection-stack-cover img{display:block;width:100%;height:100%;object-fit:cover}
.anime-collection-stack-cover .watching-cover-empty{width:100%;height:100%;aspect-ratio:auto}
.anime-collection-stack-cover.stack-0{left:0;transform:rotate(-8deg) translate(-4px,7px)}
.anime-collection-stack-cover.stack-1{left:18%;z-index:2;transform:rotate(-1deg)}
.anime-collection-stack-cover.stack-2{right:0;z-index:3;transform:rotate(7deg) translate(4px,7px)}
.anime-collection-card:hover .stack-0{transform:rotate(-11deg) translate(-9px,4px)}
.anime-collection-card:hover .stack-2{transform:rotate(10deg) translate(9px,4px)}
.anime-collection-body.is-open{border-color:var(--accent)}
.anime-series-items{display:grid;grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:22px;max-height:3200px;padding:0;margin-top:-2px;overflow:hidden;animation:anime-series-rise .42s cubic-bezier(.2,.76,.28,1) both}
.anime-series-items.is-open{padding:0}
.anime-series-items.is-closing{animation:anime-series-sink .34s cubic-bezier(.52,.08,.72,.34) both}
.anime-series-items .watching-card{min-width:0}
@keyframes anime-series-rise{0%{max-height:0;opacity:0;filter:blur(4px);transform:translateY(-28px) scale(.97)}65%{opacity:1;filter:blur(0);transform:translateY(-4px) scale(.995)}100%{max-height:3200px;opacity:1;filter:none;transform:none}}
@keyframes anime-series-sink{0%{max-height:3200px;opacity:1;filter:none;transform:none}100%{max-height:0;opacity:0;filter:blur(4px);transform:translateY(22px) scale(.97)}}
@media(max-width:600px){
  .moment{padding:20px 18px 16px}.moment-foot{align-items:stretch;flex-direction:column-reverse;gap:8px}.moment-date{text-align:left}.moment-actions{width:100%;justify-content:flex-end}.moment-action{padding:6px 7px}.moment-image-grid{width:100%}
  .image-timeline-item{grid-template-columns:45px minmax(0,1fr);gap:12px}.image-timeline-item>time{font-size:25px}.image-timeline-media{min-height:90px}.image-timeline-media figcaption{font-size:14px;padding:7px 10px}.image-month-label{font-size:20px}
  .share-modal-inner{padding:30px 20px}.share-platforms{gap:5px}.share-platform{font-size:10px;padding:10px 2px}.share-tools{grid-template-columns:1fr}.music-btn{left:auto;right:20px;bottom:20px}.music-card{left:auto;right:20px;bottom:76px;width:min(300px,calc(100vw - 40px))}
  .cat-body{padding:24px 20px}.cat-cover{height:190px}.cat-stats{grid-template-columns:1fr 1fr;gap:16px 0}.cat-stats>div:nth-child(2){border-right:0}.cat-stats>div:nth-child(3){padding-left:0}.cat-stats>div:nth-child(4){padding-left:18px}.cat-stats b{font-size:20px}
  .article-list-card{grid-template-columns:76px minmax(0,1fr);gap:13px;padding:9px}.article-list-cover{width:76px;height:76px}.article-list-info h2{font-size:19px;margin:5px 0}.article-list-info p{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.article-list-arrow{display:none}
  .post-reading{margin:26px 0}.post-info-grid b{font-size:11px}.post-nav{gap:10px}.post-nav-card{padding:13px 30px 13px 14px}.post-nav-card.next{padding:13px 14px 13px 30px}.post-nav-card strong{font-size:16px}.post-category-card{margin-bottom:28px}.back-top{right:18px;bottom:18px}
}

/* ===== 根据反馈的第二轮调整 ===== */
.pinned-panel{width:100%;box-sizing:border-box;padding:18px 20px 20px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.pinned-panel>.sec-hd{margin:0 0 14px}.pinned-panel .pinned-wrap{margin:0}.pinned-panel .pinned-track{padding-left:2px;padding-right:2px}.pinned-panel .pin-card{background:var(--surface2);border-color:rgba(212,162,78,.18)}.pinned-panel .pin-card:hover{border-color:var(--accent)}
.home-side{margin-bottom:0;padding-bottom:16px;box-sizing:border-box}
.music-btn{left:auto;right:28px}.music-card{left:auto;right:28px}
.watching-card{min-height:0}.watching-cover-link{flex:0 0 auto;aspect-ratio:4/3}.watching-cover{object-fit:contain;background-color:#171715}
.moment-actions,.moment-modal-actions,.content-actions{align-items:center}.moment-action,.content-action{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface2);border-radius:7px;padding:8px 12px;font-family:var(--font-sans);font-size:12px;line-height:1.2}.action-icon{width:16px;height:16px;display:block;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.moment-action.liked .action-icon,.content-action.liked .action-icon{fill:currentColor;stroke-width:1.5}.moment-action:hover,.content-action:hover,.moment-action.liked,.content-action.liked{border-color:var(--accent);background:rgba(212,162,78,.1)}
.moment-comments{display:none;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.moment-comments.show{display:block}.moment-comments-title{margin-bottom:12px;color:var(--text-m);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.moment-comments .utterances{max-width:none}.moment-modal-comments{margin-top:22px}.comments-focus{border-color:var(--accent);transition:border-color .3s}
.moment-modal-author{display:flex;align-items:center;gap:12px;margin:14px 0 22px}.moment-modal-author img{width:42px;height:42px;border:1px solid var(--border);border-radius:50%;object-fit:cover}.moment-modal-author>div{display:flex;flex-direction:column;gap:3px}.moment-modal-author strong{font-size:14px;color:var(--text-p);font-weight:400}.moment-modal-author .moment-modal-date{margin:0}.moment-modal-text{margin-bottom:20px}.moment-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.image-day-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:20px;align-items:start}.image-day-row>time{font-family:var(--font-serif);font-size:34px;color:var(--text-p);text-align:right;line-height:1;padding-top:18px}.image-day-row>time small{font-family:var(--font-sans);font-size:13px;color:var(--text-m);margin-left:3px}.image-day-images{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.image-day-images .image-timeline-media{max-width:none;min-height:0;aspect-ratio:4/3}.image-day-images .image-timeline-media img{height:100%;max-height:none;object-fit:cover}.image-day-images .image-timeline-media figcaption{font-size:14px;padding:8px 10px}
.post-info-card{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:9px;background:var(--surface);margin-bottom:12px;overflow:hidden}.post-info-item{display:flex;flex-direction:column;gap:7px;padding:14px 16px;position:relative}.post-info-item+ .post-info-item{border-left:0}.post-info-item+ .post-info-item::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--border)}.post-info-item span{font-size:11px;color:var(--text-m)}.post-info-item b{font-family:var(--font-mono);font-weight:400;font-size:12px;color:var(--text-b);white-space:nowrap}.post-category-line{display:flex;align-items:baseline;gap:14px;margin:0 0 36px;padding:0 2px;font-size:12px;color:var(--text-m)}.post-category-line a{font-family:var(--font-sans);font-size:14px;color:var(--accent);font-weight:500}
.post-nav{grid-template-columns:1fr 1fr;align-items:start}.post-nav-card{justify-self:start;width:min(100%,330px);text-align:left!important;padding:16px 18px 16px 48px!important}.post-nav-card.prev{padding-left:48px!important;padding-right:18px!important}.post-nav-card.next{justify-self:end;padding-left:18px!important;padding-right:48px!important}.post-nav-card span{top:16px;transform:none}.post-nav-card.prev span{left:16px!important;right:auto!important}.post-nav-card.next span{left:auto!important;right:16px!important}.post-nav-card strong{display:block;overflow-wrap:anywhere}
.back-top{width:auto;height:42px;padding:0 15px;border-radius:8px;display:flex;align-items:center;gap:7px;font-size:16px}.back-top span{display:inline;font-size:10px;margin:0;letter-spacing:.12em}
@media(min-width:761px) and (max-width:900px){.home-top{grid-template-columns:1fr 300px}}
@media(max-width:760px){.home-top{grid-template-columns:1fr}.home-side{width:100%}.author-card{width:100%;max-width:none}.post-info-card{grid-template-columns:repeat(2,1fr)}.post-info-item:nth-child(3){border-left:0;border-top:1px solid var(--border)}.post-info-item:nth-child(4){border-top:1px solid var(--border)}.image-day-row{grid-template-columns:45px minmax(0,1fr);gap:12px}.image-day-row>time{font-size:25px;padding-top:10px}.image-day-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}}

/* ===== 番剧最终修正：统一卡片高度、海报悬浮展示、弹窗脱离页面定位 ===== */
.watching-card{height:520px;min-height:0}
.watching-cover-link{position:relative;display:flex;flex:0 0 320px;align-items:center;justify-content:center;box-sizing:border-box;padding:18px;min-height:0;overflow:hidden;background:#171715;line-height:0}
.watching-cover-backdrop{position:absolute;inset:-6px;background-position:center;background-size:cover;filter:blur(3px);opacity:.38;transform:scale(1.03);pointer-events:none}
.watching-cover-link::after{content:"";position:absolute;inset:0;background:rgba(12,12,10,.12);pointer-events:none}
.watching-cover{position:relative;z-index:1;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:auto;object-fit:contain;background:#171715;display:block;border-radius:8px;box-shadow:0 18px 30px -10px rgba(0,0,0,.82),0 5px 12px rgba(0,0,0,.38),0 0 0 1px rgba(240,236,228,.14);transition:transform .25s ease,box-shadow .25s ease}
.watching-cover-link:hover .watching-cover{transform:translateY(-3px);box-shadow:0 23px 34px -10px rgba(0,0,0,.88),0 7px 15px rgba(0,0,0,.42),0 0 0 1px rgba(240,236,228,.2)}
.watching-cover-empty{width:min(72%,240px);height:auto;aspect-ratio:4/3;min-height:0;line-height:normal;box-shadow:0 18px 30px -10px rgba(0,0,0,.66),0 0 0 1px rgba(240,236,228,.1)}
.anime-modal{position:fixed;inset:0;width:100%;height:100%;margin:0;display:none;align-items:center;justify-content:center;padding:24px;overflow:auto}
.anime-modal.show{display:flex}
.anime-modal-inner{width:min(620px,100%);max-height:min(85vh,760px);margin:auto;transform:none}
.anime-detail-modal{width:min(820px,100%);padding:0;overflow:hidden;background:linear-gradient(145deg,#151512,#0c0c0a)}
.anime-modal-top{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;padding:30px 34px 28px;background:linear-gradient(135deg,rgba(212,162,78,.09),rgba(255,255,255,.015));border-bottom:1px solid rgba(107,103,96,.28)}
.anime-modal-poster{position:relative;min-height:250px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(240,236,228,.16);border-radius:10px;background:#171715;box-shadow:0 18px 30px -10px rgba(0,0,0,.65)}
.anime-modal-poster-backdrop{position:absolute;inset:-10px;background-size:cover;background-position:center;filter:blur(8px);opacity:.42;transform:scale(1.08)}
.anime-modal-poster::after{content:"";position:absolute;inset:0;background:rgba(12,12,10,.16);pointer-events:none}
.anime-modal-poster img{position:relative;z-index:1;max-width:86%;max-height:88%;object-fit:contain;border-radius:7px;box-shadow:0 14px 26px rgba(0,0,0,.55)}
.anime-modal-poster-empty{width:72%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;border:1px solid rgba(240,236,228,.1);border-radius:7px;color:var(--accent);font-size:38px;background:linear-gradient(135deg,#263b2c,#111a22)}
.anime-modal-heading{align-self:center;padding:8px 20px 8px 0}
.anime-modal h2{max-width:520px;margin-bottom:17px;font-size:38px;line-height:1.18}
.anime-modal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px 13px;margin-bottom:0;font-size:13px;line-height:1.6}
.anime-modal-meta>span:not(.anime-modal-status){color:var(--text-m)}
.anime-modal-status,.anime-modal-rating{color:var(--accent)!important}
.anime-modal-format{color:var(--text-m)!important;font-family:var(--font-mono);font-size:11px}
.anime-modal-status{padding:3px 9px;border:1px solid rgba(212,162,78,.4);border-radius:5px;background:rgba(212,162,78,.08)}
.anime-modal-rating{font-family:var(--font-mono)}
.anime-modal-link{margin-top:24px;border:1px solid rgba(212,162,78,.35);border-radius:7px;padding:9px 12px;color:var(--accent);font-size:12px;text-decoration:none}
.anime-modal-link:hover{background:rgba(212,162,78,.08);border-color:var(--accent)}
.anime-modal-note-block,.anime-modal-data-block{padding:22px 34px 0}
.anime-modal-data-block{padding-bottom:30px}
.anime-modal-section-label{margin-bottom:10px;color:var(--accent-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.anime-modal-note{margin:0;color:var(--text-b);font-size:15px;line-height:1.85;white-space:pre-wrap}
.anime-modal-details{border-top:1px solid rgba(107,103,96,.28)}
.anime-modal-detail-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:18px;padding:12px 0;border-bottom:1px solid rgba(107,103,96,.2);font-size:14px;line-height:1.65}
.anime-modal-detail-row span{color:var(--text-m)}
.anime-modal-detail-row b{color:var(--text-b);font-weight:400;white-space:pre-wrap;word-break:break-word}
.anime-no-details{display:block!important;padding-top:13px;color:var(--text-m);font-size:13px}
@media(max-width:480px){.music-btn{right:16px;bottom:16px}.music-card{right:16px;bottom:72px}.moment-modal-actions{flex-wrap:wrap}.moment-modal-actions .content-action{flex:1;justify-content:center}.post-nav{gap:8px}.post-nav-card{min-height:100px;padding-left:13px!important;padding-right:38px!important}.post-nav-card strong{font-size:15px}.post-info-item{padding:12px 10px}.post-info-item b{font-size:11px}}
@media(max-width:600px){.anime-detail-modal{max-height:90vh}.anime-modal-top{grid-template-columns:112px minmax(0,1fr);gap:17px;padding:23px 20px 21px}.anime-modal-poster{min-height:158px}.anime-modal-heading{padding:3px 12px 3px 0}.anime-modal h2{font-size:25px;margin-bottom:13px}.anime-modal-meta{gap:7px 9px;font-size:11px}.anime-modal-status{padding:2px 7px}.anime-modal-link{margin-top:18px;padding:8px 9px;font-size:11px}.anime-modal-note-block,.anime-modal-data-block{padding-left:20px;padding-right:20px}.anime-modal-detail-row{grid-template-columns:70px minmax(0,1fr);gap:12px;font-size:13px}}
@media(min-width:700px) and (max-width:900px){.home-top{grid-template-columns:minmax(0,1fr) 300px}.home-side{position:static;align-self:end;width:auto;display:block;margin-bottom:0}.author-card{width:300px;max-width:300px}}
@media(max-width:699px){.home-top{grid-template-columns:1fr}.home-side{width:100%;display:flex}.author-card{width:100%;max-width:none}}

/* 详情页细节：分隔线只保留在内容中段，浮动控件避开回顶按钮 */
.music-btn{left:28px;right:auto}.music-card{left:28px;right:auto}
@media(max-width:760px){.post-info-item:nth-child(3),.post-info-item:nth-child(4){border-top:0}.post-info-item:nth-child(3)::before{display:none}.post-info-item:nth-child(3)::after,.post-info-item:nth-child(4)::after{content:"";position:absolute;left:20%;right:20%;top:0;height:1px;background:var(--border)}}
@media(max-width:900px){.image-timeline-layout{grid-template-columns:1fr;gap:18px}.image-timeline-index{position:static;padding:0 0 12px;border-right:0;border-bottom:1px solid var(--border)}.image-timeline-index nav{flex-direction:row;flex-wrap:wrap;gap:4px 18px}.image-timeline-index a{padding:3px 0}}
.post-toc{padding-top:0}
.image-timeline-index{margin-top:16px}
@media(max-width:900px){.image-timeline-index{margin-top:0}}
@media(max-width:600px){.music-btn{left:16px;right:auto}.music-card{left:16px;right:auto}}
@media(max-width:699px){.home-left{padding-bottom:0}}
@media(min-width:700px){.author-card{padding:53px 24px;margin-top:-32px}}

/* ===== 时间线目录与日期日历 ===== */
.post-toc{top:28px}
.image-timeline-index-label{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.image-calendar-modal{position:fixed;inset:0;z-index:700;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(8,8,6,.9);backdrop-filter:blur(8px)}.image-calendar-modal.show{display:flex}.image-calendar-inner{position:relative;width:min(430px,100%);max-height:85vh;overflow:auto;padding:32px;background:#0d0d0b;border:1px solid var(--border);border-radius:14px}.image-calendar-head{display:flex;align-items:center;gap:12px;padding-right:24px;margin-bottom:24px}.image-calendar-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--accent-dim)}.image-calendar-head h2{margin-top:6px;color:var(--text-p);font-family:var(--font-serif);font-size:28px;font-weight:600}.image-calendar-back{display:none;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-m);cursor:pointer}.image-calendar-back:hover{border-color:var(--accent);color:var(--accent)}.image-calendar-week,.image-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}.image-calendar-week{margin-bottom:7px;color:var(--text-m);font-family:var(--font-mono);font-size:11px}.image-calendar-grid span,.image-calendar-grid a{display:flex;align-items:center;justify-content:center;min-height:36px;border:1px solid transparent;border-radius:6px;color:var(--text-m);font-size:13px}.image-calendar-grid a{border-color:rgba(212,162,78,.35);background:rgba(212,162,78,.08);color:var(--accent);font-family:var(--font-mono)}.image-calendar-grid a:hover{border-color:var(--accent);background:rgba(212,162,78,.18)}.image-calendar-empty{visibility:hidden}.image-calendar-tip{margin-top:16px;color:var(--text-m);font-size:11px}.image-calendar-months,.image-calendar-date-list{display:flex;flex-direction:column;gap:8px}.image-calendar-months button,.image-calendar-date-list a{padding:11px 13px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text-b);text-align:left;font-family:var(--font-serif);font-size:16px;cursor:pointer}.image-calendar-months button:hover,.image-calendar-date-list a:hover{border-color:var(--accent);color:var(--accent)}
.archive-timeline-layout{display:grid;grid-template-columns:118px minmax(0,1fr);gap:30px;align-items:start;position:relative}.archive-timeline-index{position:sticky;top:28px;align-self:start;padding:0 0 16px 14px}.archive-timeline-index::before{content:"";position:absolute;left:0;top:0;bottom:16px;width:1px;background:var(--border)}.archive-timeline-index-label{margin:0 0 13px;color:var(--text-m);font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.archive-timeline-index nav{display:flex;flex-direction:column;gap:2px}.archive-timeline-index a{display:block;padding:7px 0 7px 13px;border-left:2px solid transparent;color:var(--text-m);font-family:var(--font-serif);font-size:14px;line-height:1.35;transition:color .2s,border-color .2s,padding-left .2s}.archive-timeline-index a:hover,.archive-timeline-index a.active{padding-left:17px;color:var(--accent)}.archive-timeline-index a.active{border-left-color:var(--accent)}.archive-timeline-layout>.articles-timeline,.archive-timeline-layout>.moment-feed{min-width:0}
@media(min-width:1100px){.image-timeline-layout{grid-template-columns:0 minmax(0,1fr);gap:0}.image-timeline-layout>.image-timeline{grid-column:2}.image-timeline-layout>.image-timeline-index{grid-column:1;width:118px;margin-left:-150px}.archive-timeline-layout{grid-template-columns:0 minmax(0,1fr);gap:0}.archive-timeline-layout>.articles-timeline,.archive-timeline-layout>.moment-feed{grid-column:2}.archive-timeline-layout>.archive-timeline-index{grid-column:1;width:118px;margin-left:-150px}}
@media(max-width:900px){.image-timeline-layout{display:flex;flex-direction:column;gap:18px}.image-timeline-layout>.image-timeline{order:1;width:100%}.image-timeline-layout>.image-timeline-index{order:2;position:static;width:auto;margin:0;padding:0}.image-timeline-index::before{display:none}.image-timeline-index-label{display:flex;align-items:center;gap:8px;width:auto;padding:9px 12px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text-b);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;cursor:pointer}.image-timeline-index-label:hover{border-color:var(--accent);color:var(--accent)}.image-timeline-index nav{display:none}.image-timeline-index.months-open nav{display:flex;gap:5px;margin-top:10px}.image-timeline-index.months-open a{padding:7px 0 7px 12px}.archive-timeline-layout{display:block}.archive-timeline-index{position:static;margin:0 0 24px;padding:0 0 12px;border-bottom:1px solid var(--border)}.archive-timeline-index::before{display:none}.archive-timeline-index nav{flex-direction:row;flex-wrap:wrap;gap:4px 18px}.archive-timeline-index a{padding:3px 0;border-left:0}.archive-timeline-index a:hover,.archive-timeline-index a.active{padding-left:0}.archive-timeline-index a.active{border-bottom:2px solid var(--accent)}}
@media(max-width:480px){.image-calendar-modal{padding:14px}.image-calendar-inner{padding:26px 20px}.image-calendar-grid{gap:4px}.image-calendar-grid span,.image-calendar-grid a{min-height:34px}}
.image-timeline-index a:focus{outline:0}
.image-calendar-inner{width:min(480px,100%);padding:34px 36px 30px;box-shadow:0 24px 80px rgba(0,0,0,.45)}.image-calendar-head{justify-content:space-between;gap:18px;margin-bottom:26px}.image-calendar-head>div{flex:1}.image-calendar-arrow{width:34px;height:34px;border-color:rgba(107,103,96,.5);font-size:17px}.image-calendar-title-line{gap:7px}.image-calendar-title-button{font-size:32px;line-height:1}.image-calendar-title-button.year{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em}.image-calendar-week,.image-calendar-grid{gap:0}.image-calendar-week{margin:0;padding-bottom:8px;border-bottom:1px solid rgba(107,103,96,.34);font-size:10px;letter-spacing:.08em}.image-calendar-grid{grid-template-rows:repeat(6,42px);border-left:1px solid rgba(107,103,96,.2);border-top:1px solid rgba(107,103,96,.2)}.image-calendar-grid span,.image-calendar-grid a{min-height:0;border:0;border-right:1px solid rgba(107,103,96,.2);border-bottom:1px solid rgba(107,103,96,.2);border-radius:0;font-family:var(--font-mono);font-size:12px;transition:background .2s,color .2s}.image-calendar-grid a{position:relative;background:rgba(212,162,78,.11);color:var(--accent);font-weight:600}.image-calendar-grid a::after{content:"";position:absolute;bottom:6px;width:3px;height:3px;border-radius:50%;background:var(--accent)}.image-calendar-grid a:hover{background:rgba(212,162,78,.25)}.image-calendar-tip{display:flex;align-items:center;gap:7px}.image-calendar-tip::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}.image-calendar-months{gap:7px}.image-calendar-months button{padding:13px 10px;border-radius:6px;background:rgba(255,255,255,.025);font-size:15px}.image-calendar-months button:hover,.image-calendar-months button.has-images{background:rgba(212,162,78,.09)}.image-calendar-years{gap:7px}.image-calendar-years button{padding:13px 4px;border-radius:6px;background:rgba(255,255,255,.025)}
.post-toc-list>ol{padding-left:0}.post-toc-list .toc-item{margin:2px 0}.post-toc-list .toc-level-1>.toc-link{padding:6px 0 6px 10px;border-left:2px solid rgba(212,162,78,.45);color:var(--text-b);font-size:15px;font-weight:500;line-height:1.45}.post-toc-list .toc-level-2>.toc-link{padding:4px 0 4px 12px;color:var(--text-m);font-size:13px;line-height:1.5}.post-toc-list .toc-level-3>.toc-link,.post-toc-list .toc-level-4>.toc-link{padding:3px 0 3px 12px;color:rgba(176,169,154,.65);font-size:12px;line-height:1.45}.post-toc-list .toc-link{display:block;transition:color .2s,background .2s}.post-toc-list .toc-link:hover{color:var(--accent);background:rgba(212,162,78,.06)}.post-toc-list .toc-child{margin:3px 0 7px;padding-left:12px;border-left:1px solid rgba(107,103,96,.35)}.timeline-menu-post-list{padding-right:8px}.timeline-menu-post-list .toc-level-1>.toc-link{font-size:16px}.timeline-menu-post-list .toc-level-2>.toc-link{font-size:14px}
.timeline-menu-modal{position:fixed;inset:0;z-index:700;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(8,8,6,.9);backdrop-filter:blur(8px)}.timeline-menu-modal.show{display:flex}.timeline-menu-inner{position:relative;width:min(420px,100%);max-height:80vh;overflow:auto;padding:32px;background:#0d0d0b;border:1px solid var(--border);border-radius:14px}.timeline-menu-inner h2{margin:7px 0 22px;padding-right:22px;color:var(--text-p);font-family:var(--font-serif);font-size:28px;font-weight:600}.timeline-menu-inner nav{display:flex;flex-direction:column;gap:7px}.timeline-menu-inner nav a{padding:11px 13px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text-b);font-family:var(--font-serif);font-size:16px}.timeline-menu-inner nav a:hover{border-color:var(--accent);color:var(--accent)}.timeline-menu-empty{color:var(--text-m);font-size:13px}.post-toc-button{display:none}
@media(max-width:900px){.archive-timeline-index-label{display:flex;align-items:center;gap:8px;width:auto;padding:9px 12px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text-b);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;cursor:pointer}.archive-timeline-index-label:hover{border-color:var(--accent);color:var(--accent)}.archive-timeline-index nav{display:none}.post-toc{display:none}.post-toc-button{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 24px;padding:9px 12px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text-b);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-align:left;cursor:pointer}.post-toc-button:hover{border-color:var(--accent);color:var(--accent)}}
@media(min-width:901px) and (max-width:1099px){.image-timeline-layout{display:block}.image-timeline-layout>.image-timeline-index{position:static;width:auto;margin:0 0 24px;padding:0 0 12px;border-bottom:1px solid var(--border)}.image-timeline-index::before{display:none}.image-timeline-index nav{flex-direction:row;flex-wrap:wrap;gap:4px 18px}.image-timeline-index a{padding:3px 0;border-left:0;border-bottom:2px solid transparent}.image-timeline-index a:hover,.image-timeline-index a.active{padding-left:0}.image-timeline-index a.active{border-bottom-color:var(--accent)}}
@media(max-width:900px){.image-timeline-layout>.image-timeline-index,.image-timeline-layout>.image-timeline{order:initial}}
@media(min-width:901px) and (max-width:1099px){.archive-timeline-layout{display:block}.archive-timeline-index{position:static;width:auto;margin:0 0 24px;padding:0 0 12px;border-bottom:1px solid var(--border)}.archive-timeline-index::before{display:none}.archive-timeline-index nav{flex-direction:row;flex-wrap:wrap;gap:4px 18px}.archive-timeline-index a{padding:3px 0;border-left:0;border-bottom:2px solid transparent}.archive-timeline-index a:hover,.archive-timeline-index a.active{padding-left:0}.archive-timeline-index a.active{border-bottom-color:var(--accent)}}
.image-calendar-arrow{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-m);font-size:18px;cursor:pointer}.image-calendar-arrow:hover{border-color:var(--accent);color:var(--accent)}.image-calendar-title-line{display:flex;align-items:baseline;gap:4px}.image-calendar-title-button{padding:0;border:0;background:transparent;color:var(--text-p);font-family:var(--font-serif);font-size:28px;font-weight:600;cursor:pointer}.image-calendar-title-button.year{color:var(--accent);font-size:17px}.image-calendar-title-button:hover{text-decoration:underline}.image-calendar-title-button:disabled{cursor:default}.image-calendar-title-button:disabled:hover{text-decoration:none}.image-calendar-months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.image-calendar-months button{position:relative;text-align:center}.image-calendar-months button.has-images{border-color:rgba(212,162,78,.45);color:var(--accent)}.image-calendar-months button.has-images::after{content:"";position:absolute;right:8px;top:8px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.image-calendar-years{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.image-calendar-years button{padding:12px 4px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text-b);font-family:var(--font-mono);font-size:13px;cursor:pointer}.image-calendar-years button:hover{border-color:var(--accent);color:var(--accent)}

/* 日历重排：标题居中，翻页按钮退到两侧，日期网格保持轻量但有明确层次。 */
.image-calendar-inner{width:min(520px,100%);padding:30px 34px 28px;background:linear-gradient(145deg,#11110f 0%,#0b0b09 100%);border-color:rgba(212,162,78,.28);border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.58)}
.image-calendar-head{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:18px;margin-bottom:27px;padding:0}
.image-calendar-heading{text-align:center;min-width:0}
.image-calendar-kicker{margin-bottom:9px;color:var(--accent-dim);font-size:9px;letter-spacing:.24em;text-align:center}
.image-calendar-title-line{justify-content:center;align-items:baseline;gap:9px;min-height:38px}
.image-calendar-title-button{color:var(--text-p);font-size:34px;line-height:1;font-weight:600;letter-spacing:.02em;text-decoration:none}
.image-calendar-title-button.year{color:var(--accent);font-family:var(--font-mono);font-size:14px;letter-spacing:.08em}
.image-calendar-title-button:hover{color:var(--accent);text-decoration:none}
.image-calendar-title-button:disabled{opacity:1}
.image-calendar-separator{color:rgba(212,162,78,.45);font-family:var(--font-mono);font-size:14px}
.image-calendar-arrow{width:42px;height:38px;border:1px solid rgba(107,103,96,.5);border-radius:9px;background:rgba(255,255,255,.025);color:var(--text-m);font-family:var(--font-mono);font-size:19px;line-height:1;transition:color .2s,border-color .2s,background .2s,transform .2s}
.image-calendar-arrow:hover{border-color:var(--accent);background:rgba(212,162,78,.1);color:var(--accent)}
.image-calendar-arrow:active{transform:scale(.96)}
.image-calendar-week{padding:0 4px 9px;border-bottom:1px solid rgba(107,103,96,.35);color:var(--text-m);font-size:10px;letter-spacing:.13em}
.image-calendar-grid{grid-template-rows:repeat(6,44px);gap:5px;padding-top:9px;border:0}
.image-calendar-grid span,.image-calendar-grid a{min-height:0;border:1px solid rgba(107,103,96,.17);border-radius:8px;background:rgba(255,255,255,.018);color:var(--text-b);font-size:12px;transition:background .2s,border-color .2s,color .2s,transform .2s}
.image-calendar-grid span:not(.image-calendar-empty):hover{border-color:rgba(212,162,78,.38);background:rgba(212,162,78,.07);color:var(--text-p)}
.image-calendar-grid .image-calendar-empty{border-color:transparent;background:transparent}
.image-calendar-grid a.has-images{border-color:var(--accent);border-radius:8px;background:var(--accent);color:#19140c;box-shadow:0 5px 14px rgba(212,162,78,.16),inset 0 -3px 0 rgba(0,0,0,.16)}
.image-calendar-grid a.has-images:hover{background:#e3b66d;color:#19140c;transform:translateY(-1px)}
.image-calendar-grid a.has-images b{font-size:13px}
.image-calendar-grid a.has-images small{font-size:8px}
.image-calendar-tip{margin:17px 4px 0;color:var(--text-m);font-size:11px}
.image-calendar-tip>span{width:9px;height:9px;margin-right:5px;border-radius:3px}
.image-calendar-months button.has-images{background:rgba(212,162,78,.13)}
@media(max-width:480px){.image-calendar-inner{padding:26px 18px 24px;border-radius:15px}.image-calendar-head{grid-template-columns:36px minmax(0,1fr) 36px;gap:10px;margin-bottom:23px}.image-calendar-arrow{width:36px;height:34px}.image-calendar-title-button{font-size:29px}.image-calendar-title-button.year{font-size:12px}.image-calendar-grid{grid-template-rows:repeat(6,40px);gap:4px;padding-top:8px}}

/* 文章目录：用细轨道和层级缩进表达结构，避免标题堆在一条粗边线上。 */
.post-toc{top:28px;max-height:calc(100vh - 56px);padding:5px 16px 18px 17px;border:0;border-left:1px solid rgba(107,103,96,.42);scrollbar-width:thin;scrollbar-color:rgba(212,162,78,.45) transparent}
.post-toc::before{content:"";position:absolute;left:-1px;top:5px;width:2px;height:30px;background:var(--accent)}
.post-toc-label{display:flex;align-items:center;gap:9px;margin-bottom:18px;color:var(--accent-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:.16em}
.post-toc-label::before{content:"目";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid rgba(212,162,78,.42);border-radius:5px;color:var(--accent);font-family:var(--font-serif);font-size:11px;letter-spacing:0}
.post-toc-list{font-size:14px;line-height:1.45}
.post-toc-list>ol{margin:0;padding:0}
.post-toc-list .toc-item{margin:3px 0;list-style:none}
.post-toc-list .toc-link{border:0!important;background:transparent!important;transition:color .2s,transform .2s}
.post-toc-list .toc-level-2>.toc-link{padding:7px 8px 7px 11px;color:var(--text-b);font-size:14px;font-weight:500;line-height:1.4;border-left:2px solid transparent!important;border-radius:0 5px 5px 0}
.post-toc-list .toc-level-2>.toc-link:hover{border-left-color:var(--accent)!important;color:var(--text-p);transform:translateX(2px)}
.post-toc-list .toc-child{margin:4px 0 8px 10px;padding:2px 0 2px 9px;border-left:1px solid rgba(107,103,96,.32)}
.post-toc-list .toc-level-3>.toc-link,.post-toc-list .toc-level-4>.toc-link{padding:4px 7px 4px 9px;color:var(--text-m);font-size:12px;line-height:1.45}
.post-toc-list .toc-level-3>.toc-link:hover,.post-toc-list .toc-level-4>.toc-link:hover{color:var(--accent);transform:translateX(2px)}
.post-toc-button{justify-content:flex-start;min-height:44px;margin:0 0 27px;padding:0 14px;border-color:rgba(212,162,78,.24);background:linear-gradient(90deg,rgba(212,162,78,.08),rgba(255,255,255,.025));color:var(--text-b);font-size:11px;letter-spacing:.12em}
.post-toc-button:hover{border-color:var(--accent);background:rgba(212,162,78,.1);color:var(--accent)}

/* 移动端目录弹窗与宽屏侧栏使用同一套层级语言。 */
.timeline-menu-inner{width:min(500px,100%);max-height:78vh;padding:30px 34px 32px;background:linear-gradient(145deg,#11110f 0%,#0b0b09 100%);border-color:rgba(212,162,78,.28);border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.58)}
.timeline-menu-inner .image-calendar-kicker{margin:0 0 9px;color:var(--accent-dim);font-size:9px;letter-spacing:.24em}
.timeline-menu-inner h2{margin:0 0 24px;padding:0;color:var(--text-p);font-family:var(--font-serif);font-size:32px;line-height:1.1;font-weight:600}
.timeline-menu-inner nav{display:block}
.timeline-menu-post-list{padding:0 3px 3px 0;counter-reset:toc-level-2}
.timeline-menu-post-list>ol{margin:0;padding:0}
.timeline-menu-post-list .toc-item{margin:4px 0;list-style:none}
.timeline-menu-post-list .toc-level-2>.toc-link{display:flex;align-items:center;gap:11px;padding:10px 12px 10px 10px;border:1px solid rgba(107,103,96,.2)!important;border-left:2px solid transparent!important;border-radius:8px;background:rgba(255,255,255,.018)!important;color:var(--text-b);font-size:15px;font-weight:500;line-height:1.4}
.timeline-menu-post-list .toc-level-2>.toc-link::before{counter-increment:toc-level-2;content:counter(toc-level-2,decimal-leading-zero);min-width:22px;color:var(--accent-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:.05em}
.timeline-menu-post-list .toc-level-2>.toc-link:hover{border-color:rgba(212,162,78,.5)!important;border-left-color:var(--accent)!important;background:rgba(212,162,78,.08)!important;color:var(--text-p);transform:none}
.timeline-menu-post-list .toc-child{margin:5px 0 9px 20px;padding:2px 0 2px 12px;border-left:1px solid rgba(107,103,96,.32)}
.timeline-menu-post-list .toc-level-3>.toc-link,.timeline-menu-post-list .toc-level-4>.toc-link{padding:6px 9px;color:var(--text-m);font-size:13px;line-height:1.45}
.timeline-menu-post-list .toc-level-3>.toc-link:hover,.timeline-menu-post-list .toc-level-4>.toc-link:hover{color:var(--accent);transform:translateX(2px)}
@media(max-width:480px){.timeline-menu-inner{padding:27px 20px 25px;border-radius:15px}.timeline-menu-inner h2{font-size:29px;margin-bottom:20px}.timeline-menu-post-list .toc-level-2>.toc-link{font-size:14px;padding:9px 10px}.timeline-menu-post-list .toc-child{margin-left:17px}}
.image-calendar-head>.image-calendar-arrow{position:relative;top:10px}

/* 目录采用窄线导航，不把每个标题做成独立卡片。 */
.timeline-menu-post-list{position:relative;padding:2px 0 4px 10px;counter-reset:toc-level-2}
.timeline-menu-post-list>ol{position:relative;margin:0;padding:0 0 0 13px;border-left:1px solid rgba(107,103,96,.42)}
.timeline-menu-post-list .toc-item{margin:0;list-style:none}
.timeline-menu-post-list .toc-level-2>.toc-link{display:flex;align-items:baseline;gap:12px;padding:9px 10px;border:0!important;border-left:2px solid transparent!important;border-radius:0;background:transparent!important;color:var(--text-b);font-size:15px;font-weight:500;line-height:1.45}
.timeline-menu-post-list .toc-level-2>.toc-link::before{min-width:24px;color:var(--accent-dim);font-size:10px}
.timeline-menu-post-list .toc-level-2>.toc-link:hover{border-left-color:var(--accent)!important;background:rgba(212,162,78,.065)!important;color:var(--text-p);transform:none}
.timeline-menu-post-list .toc-child{margin:0 0 7px 25px;padding:2px 0 3px 14px;border-left:1px solid rgba(107,103,96,.26)}
.timeline-menu-post-list .toc-level-3>.toc-link,.timeline-menu-post-list .toc-level-4>.toc-link{display:block;padding:5px 8px;color:var(--text-m);font-size:13px;line-height:1.45}
.timeline-menu-post-list .toc-level-3>.toc-link:hover,.timeline-menu-post-list .toc-level-4>.toc-link:hover{background:transparent!important;color:var(--accent);transform:translateX(2px)}
@media(max-width:480px){.timeline-menu-post-list{padding-left:6px}.timeline-menu-post-list>ol{padding-left:10px}.timeline-menu-post-list .toc-level-2>.toc-link{padding:8px 7px;font-size:14px}.timeline-menu-post-list .toc-child{margin-left:22px;padding-left:11px}}
.timeline-menu-post-list .toc-level-2>.toc-link{font-family:var(--font-sans);font-weight:600;color:var(--text-p)}
.timeline-menu-post-list .toc-level-3>.toc-link,.timeline-menu-post-list .toc-level-4>.toc-link{font-family:var(--font-sans);font-weight:500;color:var(--text-b)}
.post-toc-list .toc-level-2>.toc-link{font-family:var(--font-sans);font-weight:600;color:var(--text-p)}
.post-toc-list .toc-level-3>.toc-link,.post-toc-list .toc-level-4>.toc-link{font-family:var(--font-sans);font-weight:500;color:var(--text-b)}

/* 日历中有图片的日期需要成为明确的状态，而不是只靠一圈淡边框提示。 */
.image-calendar-grid a.has-images{flex-direction:column;gap:2px;border:1px solid var(--accent);background:var(--accent);color:#19140c;box-shadow:inset 0 -3px 0 rgba(0,0,0,.16),0 0 0 1px rgba(212,162,78,.14);font-weight:700}
.image-calendar-grid a.has-images:hover{background:#e3b66d;color:#19140c}
.image-calendar-grid a.has-images b{font-family:var(--font-mono);font-size:13px;line-height:1;font-weight:700}
.image-calendar-grid a.has-images small{font-family:var(--font-sans);font-size:8px;line-height:1;font-weight:700;opacity:.72}
.image-calendar-grid a.has-images::after{display:none}
.image-calendar-tip{font-size:12px;line-height:1.4}
.image-calendar-tip>span{display:inline-block;width:10px;height:10px;margin-right:2px;border-radius:2px;background:var(--accent);vertical-align:-1px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.16)}
.image-calendar-months button.has-images{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-left:15px;border-color:var(--accent);background:rgba(212,162,78,.16);box-shadow:inset 3px 0 0 var(--accent)}
.image-calendar-months button.has-images::after{display:none}
.image-calendar-months button.has-images small{font-family:var(--font-sans);font-size:10px;color:var(--accent-dim);white-space:nowrap}

/* 时间目录按钮：统一为站内控件，不使用浏览器原生按钮外观。 */
.archive-timeline-index-label,.image-timeline-index-label,.post-toc-button{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:0 14px;border:1px solid rgba(107,103,96,.34);border-radius:8px;background:linear-gradient(135deg,rgba(212,162,78,.09),rgba(255,255,255,.025));box-shadow:0 6px 18px rgba(0,0,0,.12);color:var(--text-b);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;line-height:1;text-align:left;cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s,box-shadow .2s}
.archive-timeline-index-label:hover,.image-timeline-index-label:hover,.post-toc-button:hover{border-color:rgba(212,162,78,.65);background:linear-gradient(135deg,rgba(212,162,78,.16),rgba(255,255,255,.04));box-shadow:0 8px 22px rgba(0,0,0,.2);color:var(--accent);transform:translateY(-1px)}
.archive-timeline-index-label:active,.image-timeline-index-label:active,.post-toc-button:active{transform:translateY(0);box-shadow:0 4px 12px rgba(0,0,0,.14)}
.archive-timeline-index-label:focus-visible,.image-timeline-index-label:focus-visible,.post-toc-button:focus-visible{outline:2px solid rgba(212,162,78,.62);outline-offset:3px}
.timeline-index-glyph{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid rgba(212,162,78,.42);border-radius:5px;color:var(--accent);font-family:var(--font-sans);font-size:13px;line-height:1;letter-spacing:0}
.archive-timeline-index-label{margin:0 0 13px}
.image-timeline-index-label{margin:0 0 13px}
.post-toc-button{display:none;width:100%;justify-content:flex-start;margin:0 0 27px}
@media(max-width:900px){.archive-timeline-index-label,.image-timeline-index-label{min-height:42px;padding:0 14px}.post-toc-button{display:flex}}

/* 动态图片统一使用 4:3 展示区域，避免单图和多图比例不一致。 */
.moment-image-grid img,.moment-image-grid.layout-1 img,.moment-modal-gallery img{aspect-ratio:4/3}

/* ===== 窄屏首页顺序：hero → 作者卡 → 置顶 =====
   ≤699px 时 .home-top 是单列，DOM 顺序为 hero、置顶、作者卡，
   作者卡会掉到置顶下面。这里让 .home-left 不再生成盒子，
   它的子元素直接参与 .home-top 的网格布局，用 order 把作者卡提到置顶之前。
   注意：子元素变成网格项后，1fr 轨道的自动最小尺寸会按内容撑开（实测 390px 视口撑到 622px），
   所以轨道必须写成 minmax(0,1fr)，并给子项 min-width:0。 */
@media(max-width:699px){
  .home-top{grid-template-columns:minmax(0,1fr)}
  .home-top>.home-left{display:contents}
  .home-top>.home-left>.hero,
  .home-top>.home-side,
  .home-top>.home-left>.pinned-panel{min-width:0}
  .home-top>.home-left>.hero{order:1}
  .home-top>.home-side{order:2}
  .home-top>.home-left>.pinned-panel{order:3}
}

/* ===== 窄屏音乐悬浮按钮 =====
   44px 不透明的圆钮常驻左下角会盖住正文。窄屏下改成「滚动时出现、停止 1 秒后收起」
   （脚本在 layout.ejs 里），静止阅读时它完全让位给正文。
   注意 transition 必须包含 opacity/transform，否则收起动画会被基础规则的 .3s 覆盖成一次跳变。 */
@media(max-width:600px){
  .music-btn{width:40px;height:40px;font-size:15px;left:14px;bottom:14px;background:rgba(20,20,18,.72);transition:opacity .22s ease,transform .22s ease,color .2s,border-color .2s,background .2s}
  .music-btn:hover,.music-btn:focus-visible,.music-btn.playing{opacity:1}
  .music-btn.is-hidden{opacity:0;transform:translateY(150%);pointer-events:none}
  .music-card{max-height:60vh;overflow:auto}
}
@media(prefers-reduced-motion:reduce){ .music-btn.is-hidden{transform:none} }
