:root{--primary:#cc3b2e;--primary-dark:#9e2a20;--primary-light:#e8796c;--on-primary:#ffffff;/* 主色背景上的文字色：亮色=白，暗色=深棕（见暗色段覆盖），解决暗色主色变浅后白字不可读 */ --primary-bg-soft:rgba(204,59,46,0.06);--primary-bg-light:rgba(204,59,46,0.1);--primary-border-soft:rgba(204,59,46,0.3);--body-bg:#f5f5f5;--header-bg:#1a1a2e;--header-dropdown-bg:#252540;--card-bg:#ffffff;--footer-bg:#1a1a2e;--text-dark:#333333;--text-title:#222222;--text-body:#444444;--text-muted:#767676;--text-light:#aaaaaa;--text-white:#ffffff;--text-header-link:#cccccc;--text-header-hover:#e8796c;--border-light:#eeeeee;--border-soft:#f0f0f0;--border-input:#dddddd;--shadow-sm:0 2px 8px rgba(0,0,0,0.04);--shadow-md:0 8px 20px rgba(0,0,0,0.06);--shadow-lg:0 4px 16px rgba(0,0,0,0.1);--code-bg:#f0f0f0;--pre-bg:#1a1a2e;--pre-color:#e8e8e8;--tag-bg:#f0f0f0;--tag-text:#555555;--badge-author-bg:var(--primary);--badge-floor-bg:var(--primary);--comment-author-bg:#fdf3f1;--comment-reply-bg:#f0f0f0;--comment-reply-text:#888888;--container-max:900px;--header-height:60px;--aux-soft:#fafbfc;--aux-blue-tint:#fdf2f0;--aux-blue-tint-2:#fcebe8;--aux-blue-tint-3:#fbe3e0;--aux-avatar:#f6e6e3;--aux-scrollbar:#cccccc;--shadow-color:rgba(0,0,0,0.08);--search-radius:6px;--search-bg:rgba(255,255,255,0.1);--search-border:rgba(255,255,255,0.2);--search-btn:rgba(255,255,255,0.15);--search-btn-hover:rgba(255,255,255,0.3);--overlay-counter:rgba(255,255,255,0.7);--text-placeholder:#bbbbbb;--text-quote:#555555;--text-disabled:#999999;--color-danger:#e74c3c;--border-info-soft:#d0e8ff;--accent-green:#2e8b6f}/* R21：键盘焦点环（UX-9），提升可达性 */ :focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px;}/* === R12：暗色模式 === */ /* 实现方式：仅覆盖 CSS 变量，不改动任何具体规则 —— 版式与组件逻辑零侵入。 切换入口：<html data-theme="dark">，由 assets/js/theme.js 在首屏前同步置位避免闪白。 */ :root[data-theme="dark"]{--primary:#e8796c;--primary-dark:#cc3b2e;--primary-light:#f0a49c;--on-primary:#3a0d08;/* 暗色下主色变浅红，配深棕字保证 ≥4.5:1 */ --primary-bg-soft:rgba(232,121,108,0.1);--primary-bg-light:rgba(232,121,108,0.16);--primary-border-soft:rgba(232,121,108,0.35);--body-bg:#14161c;--header-bg:#14161c;--header-dropdown-bg:#1e212a;--card-bg:#1c1f27;--footer-bg:#14161c;--text-dark:#d8dde7;--text-title:#eef1f6;--text-body:#c3c9d4;--text-muted:#8b93a1;--text-light:#6f7683;--text-white:#eef1f6;--text-header-link:#b6bdc9;--text-header-hover:#e8796c;--border-light:#2a2e38;--border-soft:#2a2e38;--border-input:#363b47;--shadow-sm:0 2px 8px rgba(0,0,0,0.35);--shadow-md:0 8px 20px rgba(0,0,0,0.45);--shadow-lg:0 4px 16px rgba(0,0,0,0.5);--code-bg:#22262f;--pre-bg:#0f1116;--pre-color:#e6e9ef;--tag-bg:#262a34;--tag-text:#b6bdc9;--aux-soft:#1a1d24;--aux-blue-tint:#2a1f1d;--aux-blue-tint-2:#31221f;--aux-blue-tint-3:#382622;--aux-avatar:#3a2b28;--aux-scrollbar:#3a3f4b;--shadow-color:rgba(0,0,0,0.45);--search-bg:rgba(255,255,255,0.06);--search-border:rgba(255,255,255,0.12);--search-btn:rgba(255,255,255,0.1);--search-btn-hover:rgba(255,255,255,0.18);--overlay-counter:rgba(0,0,0,0.7);--text-quote:#a9b1bf}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{font-size:clamp(16px,1.8vw,18px);scroll-behavior:smooth;touch-action:manipulation;scroll-padding-top:calc(var(--header-height) + 10px)}a,button{touch-action:manipulation}.icon{display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:inherit;vertical-align:middle;line-height:1}@media (max-width:768px){html{font-size:clamp(16px,4.5vw,18px) }}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;font-size:1rem;line-height:1.8;color:var(--text-dark);background:var(--body-bg)}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-dark)}img{max-width:100%;height:auto;display:block}ol,ul{list-style:none}button,input,textarea{font-family:inherit;font-size:inherit;outline:0;border:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-999px;left:-999px;z-index:9999;padding:12px 24px;background:var(--primary);color:var(--on-primary);font-size:1rem;font-weight:500;border-radius:0 0 8px 8px;text-decoration:none;transition:top .2s,left .2s}.skip-link:focus{top:0;left:0;outline:3px solid var(--text-white);outline-offset:2px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}:focus:not(:focus-visible){outline:0}@keyframes fadeIn{from{opacity:0 }to{opacity:1 }}.container{max-width:var(--container-max);margin:0 auto;padding:0 15px}.content-wrap{padding:30px 0}.main-content{max-width:780px;margin:0 auto}.site-header{background:var(--header-bg);position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.3)}.header-inner{max-width:var(--container-max);margin:0 auto;padding:0 15px;display:flex;align-items:center;min-height:var(--header-height);gap:20px}.header-logo a{color:var(--text-white);font-size:1.467rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;display:flex;align-items:center}.header-logo .logo-text{color:var(--text-white);font-size:1.467rem;font-weight:700;letter-spacing:1px}.mobile-menu-toggle{display:none;background:0 0;border:none;color:var(--text-white);font-size:1.1rem;cursor:pointer;padding:0;width:32px;height:32px;align-items:center;justify-content:center;flex-shrink:0}.header-nav{flex:1}.header-nav>ul{display:flex;gap:5px;align-items:center}.header-nav ul li{position:relative}.header-nav ul li a{color:var(--text-header-link);padding:6px 14px;border-radius:6px;font-size:.933rem;transition:color .2s,background .2s,transform .2s;white-space:nowrap;display:flex;align-items:center;gap:4px}.header-nav ul li a:hover,.header-nav ul li.active>a{color:var(--text-header-hover);background:var(--primary-bg-light);transform:translateY(-1px)}.header-nav li.has-dropdown>a .icon{font-size:.733rem;transition:transform .2s;display:inline-flex}.header-nav li.has-dropdown:hover>a .icon{transform:rotate(180deg)}.header-nav .dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--header-dropdown-bg);min-width:130px;border-radius:6px;box-shadow:var(--shadow-lg);z-index:200;padding:5px 0;flex-direction:column;gap:0}.header-nav li.has-dropdown:hover .dropdown-menu{display:flex}.header-nav .dropdown-menu li{width:100%}.header-nav .dropdown-menu li a{padding:8px 16px;border-radius:0;display:block;color:#bbb;font-size:.867rem;white-space:nowrap}.header-nav .dropdown-menu li a:hover,.header-nav .dropdown-menu li.active a{background:rgba(74,158,255,.15);color:var(--primary-light)}/* 注：.header-search 系列为已移除的 header 内嵌搜索框遗留样式（2026-10-17 移除， 搜索统一走导航「搜索」→ /search/ 页），整段删除。 */ @media (max-width:1024px){.header-inner{justify-content:space-between;flex-wrap:nowrap;min-height:var(--header-height);padding:8px 15px;gap:10px }.mobile-menu-toggle{display:flex;order:1;width:42px;height:42px;font-size:1.4rem }.header-logo{order:2;flex:1;text-align:center }.header-logo a{justify-content:center }.header-nav{order:4;display:none;position:absolute;top:100%;left:0;width:100%;background:var(--header-bg);z-index:200;max-height:calc(100vh - var(--header-height));overflow-y:auto;box-shadow:0 4px 8px rgba(0,0,0,.2) }.header-nav.open{display:block;animation:fadeIn .2s ease }/* R12 修复：暗黑按钮是 .header-inner 直接子元素（不再寄生 .header-search）， 移动端显式显示并排到 logo 右侧（order:3）。header 内嵌搜索框/移动端 搜索弹出层已于 2026-10-17 移除，搜索统一走导航「搜索」→ /search/ 页。 */ .header-inner>.theme-toggle{display:inline-flex;order:3;margin-left:0 }.header-nav>ul{flex-direction:column;gap:0;padding:10px 0 }.header-nav ul li{width:100% }.header-nav ul li a{padding:12px 20px;border-top:1px solid var(--search-bg);font-size:1rem }.header-nav .dropdown-menu{position:static;background:var(--header-dropdown-bg);box-shadow:none;padding-left:20px;display:none;max-height:0;overflow:hidden;transition:max-height .3s ease }.header-nav li.has-dropdown.open .dropdown-menu{display:block;max-height:500px }.header-nav li.has-dropdown>a .icon{float:right;margin-top:4px }.header-nav li.has-dropdown.open>a .icon{transform:rotate(180deg) }.pagination-list a,.pagination-list span{min-width:28px;height:28px;padding:0 6px;font-size:.8rem }.pagination-list li.next a,.pagination-list li.prev a{padding:0 8px;min-width:auto;font-size:.9rem }}.post-list{display:flex;flex-direction:column;gap:0}.post-card{background:var(--card-bg);padding:20px 25px;margin-bottom:15px;border-radius:12px;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s;opacity:0;transform:translateY(12px);animation:fadeInUp .4s ease forwards}.post-list .post-card:first-child{animation-delay:0s}.post-list .post-card:nth-child(2){animation-delay:60ms}.post-list .post-card:nth-child(3){animation-delay:.12s}.post-list .post-card:nth-child(4){animation-delay:.18s}.post-list .post-card:nth-child(5){animation-delay:.24s}@keyframes fadeInUp{from{opacity:0;transform:translateY(12px) }to{opacity:1;transform:translateY(0) }}@media (prefers-reduced-motion:reduce){.post-card{opacity:1;transform:none;animation:none }}@media (prefers-reduced-motion:reduce){*{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important }}.post-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)!important}.post-card-title{font-size:clamp(1.05rem,1.8vw,1.2rem);font-weight:600;margin-bottom:8px;line-height:1.5}.post-card-title a{color:var(--text-title)}.post-card-title a:hover{color:var(--primary)}.post-card-meta{font-size:.867rem;color:var(--text-muted);margin-top:8px;display:flex;flex-wrap:wrap;gap:12px}.post-card-meta span{display:inline-flex;align-items:center;gap:4px}.post-card-excerpt{flex:1;min-width:0}.post-card-excerpt p{color:var(--text-body);line-height:1.8;font-size:.95rem;margin-bottom:0;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:4}/* R6: 卡片封面图 */ /* 注：.post-card-cover-* 样式随列表卡片缩略图一并移除（2026-10-17，站长要求「不要缩略图」）。 原规则：封面图 200px 高、object-fit:cover、hover scale(1.03)，≤700px 高 160px。 */ .pagination{background:var(--card-bg);padding:15px 25px;border-radius:12px;box-shadow:var(--shadow-sm);margin-top:5px}.pagination-list{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;list-style:none;padding:0;margin:0}.pagination-list li{list-style:none;display:inline-flex}.pagination-list a,.pagination-list span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0 6px;font-size:.867rem;color:var(--text-body);border:1px solid var(--border-input);border-radius:6px;background:var(--card-bg);transition:background .2s,border-color .2s,color .2s;line-height:1;text-decoration:none}.pagination-list a:hover{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.pagination-list li.active a,.pagination-list li.active span{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600;cursor:default}.post-single{background:var(--card-bg);padding:30px;border-radius:12px;box-shadow:var(--shadow-sm)}.post-title{font-size:clamp(1.35rem,2.5vw,1.55rem);font-weight:700;color:var(--text-dark);line-height:1.4;margin-bottom:12px}.post-meta{font-size:.867rem;color:var(--text-muted);margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--border-light);display:flex;flex-wrap:wrap;gap:12px}.post-meta span{display:inline-flex;align-items:center;gap:4px}:root{--reading-font-size:clamp(1rem,1.6vw,1.05rem);--reading-line-height:1.9;--reading-title-size:clamp(1.25rem,2vw,1.4rem)}.post-content{font-size:var(--reading-font-size);line-height:var(--reading-line-height);color:var(--text-body);margin-bottom:25px}.post-content p{margin-bottom:1em}.post-content h2,.post-content h3,.post-content h4{font-weight:700;color:var(--text-title);margin:1.5em 0 .5em;line-height:1.4}.post-content h2{font-size:var(--reading-title-size);font-weight:700}.post-content h3{font-size:1.3rem;font-weight:600}.post-content h4{font-size:1.2rem}.post-content img{max-width:100%;height:auto;border-radius:6px;margin:1em 0}.post-content ol,.post-content ul{padding-left:2em;margin-bottom:1em;list-style:disc}.post-content ol{list-style:decimal}.post-content blockquote{padding:12px 20px 12px 24px;background:var(--aux-blue-tint-2);color:var(--text-quote);margin:1em 0;border-radius:0 6px 6px 0;border-left:4px solid var(--primary)}.post-content pre{background:var(--pre-bg);color:var(--pre-color);padding:15px;border-radius:6px;overflow-x:auto;margin:1em 0;font-size:.867rem;line-height:1.6}.post-content code{background:var(--code-bg);padding:2px 5px;border-radius:4px;font-size:.9em;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace}.post-content pre code{background:0 0;padding:0}.post-content a{color:var(--primary);border-bottom:1px solid var(--primary-border-soft)}.post-content table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.92rem;overflow-wrap:break-word}.post-content .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1em 0}.post-content table td,.post-content table th{border:1px solid var(--border-input);padding:8px 12px;text-align:left}.post-content table th{background:var(--body-bg);font-weight:700}.post-tags{margin:20px 0;padding:12px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);font-size:.867rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.post-tag{background:var(--tag-bg);color:var(--tag-text);padding:3px 10px;border-radius:20px;font-size:.85rem;transition:background .2s,color .2s;min-height:30px;display:inline-flex;align-items:center}.post-tag:hover{background:var(--primary);color:var(--on-primary)}.post-prev-next{display:flex;flex-wrap:wrap;gap:15px;margin:20px 0;padding:15px 0;border-top:1px solid var(--border-light)}.post-next,.post-prev{flex:1 1 0%;min-width:0;font-size:.933rem;overflow:hidden}.post-prev{text-align:left}.post-next{text-align:right}.nav-label{display:block;font-size:.8rem;color:var(--text-disabled);margin-bottom:3px}.post-next a,.post-prev a{color:var(--primary);font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-post{color:var(--text-placeholder)}/* R7: 相关阅读 */ .related-posts{margin:24px 0 8px;padding:18px 20px;background:var(--card-bg);border:1px solid var(--border-light);border-radius:12px}.related-posts .section-title{margin:0 0 12px;font-size:1.1rem;font-weight:700;color:var(--text-primary)}.related-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.related-item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--border-light)}.related-item:last-child{border-bottom:none}.related-link{color:var(--text-primary);font-size:.95rem;line-height:1.4;transition:color .15s ease}.related-link:hover{color:var(--primary)}.related-date{flex:none;font-size:.78rem;color:var(--text-disabled)}.page-single{background:var(--card-bg);padding:30px;border-radius:12px;box-shadow:var(--shadow-sm)}.page-title{font-size:clamp(1.4rem,3vw,1.8rem);font-weight:600;color:var(--primary-dark);margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--primary)}.page-content{font-size:clamp(.95rem,1.8vw,1.05rem);line-height:1.9;color:var(--text-body)}.page-content p{margin-bottom:1em}.page-content img{max-width:100%;border-radius:6px;margin:1em 0}.comments-section{background:var(--card-bg);padding:25px 30px;border-radius:12px;box-shadow:var(--shadow-sm);margin-top:15px}.comments-section .section-title{font-size:clamp(1rem,2vw,1.2rem);font-weight:700;color:var(--text-title);margin-bottom:15px;padding-left:10px;border-left:3px solid var(--primary)}.comment-form-wrap{background:var(--aux-soft);border-radius:12px;padding:18px 20px;margin-bottom:25px;box-shadow:inset 0 1px 3px var(--shadow-color)}.comment-form-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.comment-form-fields input{min-width:0;width:100%;border:1px solid var(--border-input);border-radius:6px;padding:10px 12px;font-size:16px;background:var(--card-bg);transition:border-color .2s;box-sizing:border-box}.comment-form-fields input:focus{border-color:var(--primary);outline:0}.comment-form-textarea{margin-bottom:12px}.comment-form-textarea textarea{width:100%;min-height:120px;border:1px solid var(--border-input);border-radius:6px;padding:10px 12px;font-size:16px;resize:vertical;background:var(--card-bg);transition:border-color .2s;line-height:1.7}.comment-form-textarea textarea:focus{border-color:var(--primary);outline:0}.comment-submit-btn{background:var(--primary);color:var(--on-primary);border:none;padding:10px 20px;border-radius:6px;font-size:.933rem;cursor:pointer;transition:background .2s;display:inline-flex;align-items:center;gap:6px;min-height:44px}.comment-submit-btn:hover{background:var(--primary-dark)}.comment-cancel-btn{background:var(--card-bg);color:var(--text-muted);border:1px solid var(--border-input);padding:10px 16px;border-radius:6px;font-size:.867rem;cursor:pointer;transition:border-color .2s,color .2s;display:inline-flex;align-items:center;gap:5px;min-height:44px}.comment-cancel-btn:hover{border-color:var(--primary);color:var(--primary)}.reply-tip{font-size:.867rem;color:var(--primary);background:var(--aux-blue-tint);padding:4px 10px;border-radius:10px}.comment-list{display:flex;flex-direction:column;gap:0}.comment-item{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--border-soft)}.comment-item:last-child{border-bottom:none}.comment-item.comment-by-author>.comment-body{background:var(--comment-author-bg);border-radius:6px;padding:8px 12px;border-left:3px solid var(--primary)}.comment-highlight{background:var(--primary-bg-soft);transition:background .3s}.comment-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--aux-avatar)}.comment-avatar img{width:100%;height:100%;object-fit:cover;display:block}.comment-body{flex:1;min-width:0}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;flex-wrap:wrap;gap:4px}.comment-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}.comment-author{font-weight:600;font-size:.933rem;color:var(--text-title)}a.comment-author{color:var(--primary)}a.comment-author:hover{color:var(--primary-dark)}.comment-badge-author{font-size:.733rem;background:var(--badge-author-bg);color:var(--text-white);padding:1px 7px;border-radius:10px;font-weight:500}.comment-reply-to{font-size:.8rem;color:var(--comment-reply-text);background:var(--comment-reply-bg);padding:1px 8px;border-radius:10px}.comment-reply-to em{font-style:normal;color:var(--primary)}.comment-floor{font-size:.733rem;color:var(--text-white);background:var(--badge-floor-bg);padding:1px 7px;border-radius:10px;font-weight:500}.comment-date{font-size:.8rem;color:var(--text-placeholder);white-space:nowrap}.comment-content{font-size:.933rem;color:var(--text-body);line-height:1.75;margin-bottom:6px;overflow-wrap:break-word}.comment-content p{margin-bottom:.5em}.comment-content p:last-child{margin-bottom:0}.comment-content a{color:var(--primary);border-bottom:1px solid var(--primary-border-soft);word-break:break-all}.comment-content pre{background:var(--pre-bg);color:var(--pre-color);padding:10px;border-radius:6px;overflow-x:auto;margin:8px 0;font-size:.867rem;line-height:1.6}.comment-content pre code{background:0 0;padding:0}.comment-content code{background:var(--code-bg);padding:1px 5px;border-radius:4px;font-size:.9em}.comment-content blockquote{padding:6px 12px 6px 16px;background:var(--aux-blue-tint-2);color:var(--text-quote);margin:8px 0;border-radius:0 4px 4px 0;border-left:3px solid var(--primary)}.comment-actions{margin-top:4px}.comment-reply-link,.gb-source-link{font-size:.8rem;color:var(--text-light);background:0 0;padding:4px 10px;border-radius:10px;text-decoration:none;transition:color .2s,background .2s;display:inline-flex;align-items:center;gap:3px;min-height:44px}.comment-reply-link:hover,.gb-source-link:hover{color:var(--primary);background:var(--aux-blue-tint)}.comment-children{grid-column:2;margin-top:8px;padding-left:14px;margin-left:4px;border-left:2px solid var(--primary-border-soft);border-radius:0 0 0 4px}.comment-children .comment-item{grid-template-columns:32px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.comment-children .comment-avatar{width:32px;height:32px}.comment-children .comment-author,.comment-children .comment-content{font-size:.867rem}.comment-children .comment-date{font-size:.733rem}.comment-children .comment-children{margin-left:2px;padding-left:12px}.comment-children .comment-item.comment-by-author>.comment-body{background:var(--primary-bg-light);border-left:none;padding:6px 10px}.no-comments{text-align:center;padding:40px 0;color:var(--text-placeholder);font-size:.933rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.site-footer{background:var(--footer-bg);color:var(--text-muted);padding:20px 0;margin-top:0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.8rem}.footer-left,.footer-center{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.footer-left a{color:var(--text-light);transition:color .2s}.footer-left a:hover{color:var(--text-white)}.footer-center{justify-content:center}.footer-center a{color:var(--text-light);transition:color .2s}.footer-center a:hover{color:var(--text-white)}.footer-right{display:flex;gap:12px;flex-wrap:wrap}.footer-right a{color:var(--text-light);transition:color .2s}.footer-right a:hover{color:var(--text-white)}.error-page{background:var(--card-bg);padding:60px 30px;border-radius:12px;text-align:center;box-shadow:var(--shadow-sm)}.error-page h1{font-size:5.333rem;font-weight:900;color:var(--text-muted);line-height:1;margin-bottom:10px}.error-page h2{font-size:1.467rem;color:var(--text-body);margin-bottom:20px}.error-page p{color:var(--text-muted);margin-bottom:25px}.error-page a{display:inline-flex;align-items:center;background:var(--primary);color:var(--on-primary);padding:12px 25px;border-radius:6px;font-size:.933rem;min-height:44px}.error-page a:hover{background:var(--primary-dark)}.error-search-form{display:flex;gap:8px;max-width:360px;margin:0 auto 20px;justify-content:center}.error-search-form input{flex:1;padding:10px 14px;border:1px solid var(--border-soft);border-radius:6px;font-size:16px;background:var(--body-bg);color:var(--text-body);outline:0}.error-search-form input:focus{border-color:var(--primary)}.error-search-form button{padding:10px 16px;background:var(--primary);color:var(--on-primary);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .2s}.error-search-form button:hover{background:var(--primary-dark)}.error-home-btn{display:inline-flex;align-items:center;gap:4px}.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;font-size:.85rem;color:var(--text-muted);background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-sm);padding:10px 18px;margin-bottom:12px;overflow:hidden;overflow-wrap:break-word;border-bottom:1px solid var(--border-light)}.breadcrumbs a{color:var(--primary);text-decoration:none;display:inline-flex;align-items:center;gap:3px;transition:opacity .2s}.breadcrumbs a:hover{opacity:.75}.breadcrumbs .separator{display:inline-flex;align-items:center;margin:0 4px;color:#ccc;font-size:.8rem}.breadcrumbs .current{color:var(--text-title);font-weight:500;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-header{background:var(--card-bg);padding:20px 25px;border-radius:12px;box-shadow:var(--shadow-sm);margin-bottom:15px}.archive-header h1{font-size:clamp(1.2rem,2.5vw,1.5rem);color:var(--primary-dark);font-weight:700}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--border-soft)}::-webkit-scrollbar-thumb{background:var(--aux-scrollbar);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}::selection{background:var(--primary-bg-light);color:var(--text-title)}@media (max-width:1024px){.site-footer{padding:15px 0 }.footer-inner{flex-direction:column;gap:6px;text-align:center }.post-card-meta{font-size:.867rem }.post-card-excerpt p{-webkit-line-clamp:3;font-size:1rem }.comments-section,.page-single,.post-single{padding:20px }.page-content,.post-content{line-height:1.85 }.post-meta{font-size:.85rem }.post-tag{padding:4px 10px;border-radius:20px;font-size:.8rem }.comment-form-fields{grid-template-columns:1fr }.comment-submit-btn{width:100%;justify-content:center }.pagination-list a,.pagination-list span{min-width:28px;height:28px;font-size:.8rem }.breadcrumbs{font-size:.82rem;padding:8px 14px }.breadcrumbs .current{max-width:160px }.pagination{padding:10px 15px;overflow:hidden }.pagination-list{flex-wrap:wrap;justify-content:center;gap:5px }.pagination-list li:not([class])>span{display:inline-flex;border:1px solid var(--border-input);background:var(--card-bg);color:var(--text-disabled);min-width:28px;height:28px;align-items:center;justify-content:center;border-radius:6px;font-size:.8rem;pointer-events:none }.pagination-list li.next a,.pagination-list li.prev a{padding:0 8px;min-width:auto;font-size:.85rem }.pagination-list li.active a,.pagination-list li.active span{min-width:28px;height:28px }.pagination-list li:not(.show-mobile){display:none }.pagination-list li.show-mobile{display:inline-flex }}@media (max-width:480px){.comment-avatar{width:36px;height:36px }.comment-list .comment-list{margin-left:20px }}@media (min-width:641px) and (max-width:1024px){:root{--container-max:680px }.content-wrap{padding:25px 0 }.comments-section,.page-single,.post-single{padding:25px }}.img-lightbox{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);z-index:9999;align-items:center;justify-content:center;flex-direction:column;padding:20px;cursor:zoom-out;animation:fadeIn .2s ease}.img-lightbox.active{display:flex}.img-lightbox img{max-width:90vw;max-height:85vh;border-radius:6px;object-fit:contain;box-shadow:0 8px 32px rgba(0,0,0,.4)}.img-lightbox .lb-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:20px;width:40px;height:40px;background:var(--search-btn);border:1px solid var(--search-btn-hover);border-radius:50%;color:var(--text-white);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:10000}.img-lightbox .lb-close:hover{background:var(--search-btn-hover)}.img-lightbox .lb-nav{display:flex;gap:12px;margin-top:16px}.img-lightbox .lb-nav button{background:var(--search-btn);border:1px solid var(--search-btn-hover);color:var(--text-white);padding:6px 16px;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s}.img-lightbox .lb-nav button:hover{background:var(--search-btn-hover)}.img-lightbox .lb-nav button:disabled{opacity:.4;cursor:not-allowed}.img-lightbox .lb-counter{color:var(--overlay-counter);font-size:13px;margin-top:10px}/* 注：.mobile-search-toggle/.mobile-search-overlay/.mobile-search-form/.mobile-search-close 与 @keyframes slideDown 为已移除的移动端搜索弹出层遗留样式（2026-10-17 移除， 搜索统一走 /search/ 页），此处整段删除。 */ .tag-desc{color:var(--text-muted);font-size:.9rem;margin-bottom:15px}@media print{*{page-break-inside:avoid }.container,.main-content{max-width:100%!important;padding:0!important }}/* === 搜索（卡片式，与 post-card 风格一致） === */ .search-info{color:var(--text-muted);font-size:.867rem;margin-bottom:12px}.search-empty{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:1rem}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:15px}.search-result-item{background:var(--card-bg);padding:20px 25px;border-radius:12px;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s;opacity:0;transform:translateY(12px);animation:fadeInUp .4s ease forwards}.search-results .search-result-item:nth-child(1){animation-delay:0s}.search-results .search-result-item:nth-child(2){animation-delay:60ms}.search-results .search-result-item:nth-child(3){animation-delay:.12s}.search-results .search-result-item:nth-child(4){animation-delay:.18s}.search-results .search-result-item:nth-child(5){animation-delay:.24s}.search-result-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)!important}.search-result-title{display:block;font-size:clamp(1.05rem,1.8vw,1.2rem);font-weight:600;color:var(--text-title);text-decoration:none;margin-bottom:8px;line-height:1.5;transition:color .2s}.search-result-title:hover{color:var(--primary)}.search-result-meta{font-size:.867rem;color:var(--text-muted);margin-top:8px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.search-result-date{color:var(--text-muted)}.search-result-category{background:var(--tag-bg);color:var(--tag-text);padding:1px 8px;border-radius:3px;font-size:.8rem}.search-result-snippet{font-size:.933rem;color:var(--text-body);line-height:1.65;margin-top:8px}.search-result-snippet mark{background:rgba(255,213,0,0.3);color:var(--text-dark);padding:1px 3px;border-radius:2px}@media (max-width:1024px){.search-result-item{padding:16px 18px }}/* 修复：深层嵌套评论宽度塌缩导致文字竖排（不影响原规则，仅覆盖） */ .comment-item{grid-template-columns:32px minmax(0,1fr)}.comment-children .comment-item{grid-template-columns:32px minmax(0,1fr)}.comment-children .comment-children{margin-left:0;padding-left:0;border-left:none}.comment-children .comment-children .comment-item{grid-template-columns:28px minmax(0,1fr);gap:8px}.comment-children .comment-children .comment-children .comment-item{grid-template-columns:24px minmax(0,1fr);gap:6px}.comment-children .comment-children .comment-avatar{width:28px;height:28px}.comment-children .comment-children .comment-children .comment-avatar{width:24px;height:24px}.comment-content{min-width:0}.post-card-meta,.post-meta{gap:6px}.post-card-meta .dot,.post-meta .dot{opacity:.5}/* === R12：暗色模式切换按钮 === */ .theme-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:1rem;line-height:1;color:var(--text-header-link);background:var(--search-bg);border:1px solid var(--search-border);border-radius:var(--search-radius);cursor:pointer;transition:color .2s,background .2s;margin-left:-12px}.theme-toggle:hover{color:var(--text-header-hover);background:var(--search-btn-hover)}:root[data-theme="dark"] .theme-toggle{color:var(--text-header-link)}/* === R11：独立 /search/ 搜索页 + 搜索建议 === */ .search-page{margin-bottom:30px}.search-page-desc{color:var(--text-muted);font-size:.933rem;margin:8px 0 22px}.search-page-form{position:relative;max-width:640px;margin-bottom:18px}.search-page-input-wrap{display:flex;gap:10px}.search-page-form input[type="search"]{flex:1;min-width:0;padding:12px 16px;font-size:1rem;border:1px solid var(--border-input);border-radius:10px;background:var(--card-bg);color:var(--text-body);outline:none;transition:border-color .2s,box-shadow .2s}.search-page-form input[type="search"]:focus{border-color:var(--primary)}.search-page-btn{flex:0 0 auto;padding:0 22px;border:none;border-radius:10px;background:var(--primary);color:var(--on-primary);font-size:.933rem;cursor:pointer;transition:opacity .2s}.search-page-btn:hover{opacity:.88}.search-suggestions{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:var(--card-bg);border:1px solid var(--border-input);border-radius:10px;box-shadow:var(--shadow-md);max-height:320px;overflow-y:auto;z-index:100;text-align:left}.search-suggestion{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:.933rem;color:var(--text-body)}.search-suggestion:hover,.search-suggestion:focus{background:var(--tag-bg);outline:none}.search-suggestion-type{flex:0 0 auto;font-size:.75rem;color:var(--text-muted);background:var(--tag-bg);padding:1px 7px;border-radius:3px}.search-suggestion-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-results-wrap{margin-top:24px}.search-hot{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.search-hot-label{font-size:.867rem;color:var(--text-muted)}.search-hot-tags{display:flex;flex-wrap:wrap;gap:8px}.search-hot-tag{font-size:.8rem;color:var(--tag-text);background:var(--tag-bg);padding:3px 10px;border-radius:20px;text-decoration:none;transition:color .2s}.search-hot-tag:hover{color:var(--primary)}@media (max-width:640px){.search-page-input-wrap{flex-direction:column }.search-page-btn{padding:12px 22px }}/* ==================== 归档页（原内联 style 收口） ==================== */ .archive-header{margin-bottom:8px}.archive-stats{margin-top:12px;font-size:.9rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:16px}.archive-stats strong{color:var(--primary);font-weight:600}.archive-year{margin-top:15px}.archive-year .year-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;user-select:none}.archive-year .year-header h2{font-size:1.15rem;font-weight:700;color:var(--text-title);margin:0}.archive-year .year-count{font-size:.85rem;color:var(--text-muted);font-weight:400;margin-left:6px}.archive-month{border-top:1px solid var(--border-light)}.archive-month .month-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;user-select:none}.archive-month .month-header h3{font-size:.95rem;font-weight:600;color:var(--primary-dark);margin:0}.archive-month .month-count{font-size:.82rem;color:var(--text-muted);font-weight:400;margin-left:6px}.archive-month .month-list{padding:0 20px 12px 20px;margin:0;list-style:none}.archive-month .archive-post-item{padding:6px 0;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;gap:12px;font-size:.933rem}.archive-month .archive-post-date{color:var(--text-muted);font-size:.85rem;flex-shrink:0;min-width:75px}.archive-month .archive-post-title{color:var(--text-title);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;transition:color .2s}.archive-month .archive-post-title:hover{color:var(--primary)}.archive-month .archive-post-comments{color:var(--text-light);font-size:.8rem;flex-shrink:0}/* ==================== 微读（原内联 style 收口） ==================== */ .weread-summary{margin-top:12px;font-size:.9rem;color:var(--text-muted)}.weread-stats{margin-top:12px;font-size:.9rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:16px}.weread-stats strong{color:var(--primary);font-weight:600}.weread-section-head{padding:14px 20px;margin-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}.weread-section-head h2{font-size:1.05rem;font-weight:600;color:var(--text-title);margin:0}.weread-section-head .section-count{font-size:.82rem;color:var(--text-muted)}.weread-note-count{color:var(--primary);text-decoration:none}.weread-quote{background:var(--aux-blue-tint);border-left:3px solid var(--primary);padding:10px 12px;font-size:.933rem;line-height:1.6;color:var(--text-body);border-radius:0 6px 6px 0}.weread-quote-chapter{font-size:.78rem;color:var(--text-light);margin-top:6px}.weread-thought{font-size:.933rem;line-height:1.6;color:var(--text-title);margin-top:10px}.weread-note-date{font-size:.78rem;color:var(--text-light);margin-top:8px;text-align:right}.weread-chapter-title{font-size:.85rem;font-weight:600;color:var(--text-muted);margin:4px 2px 8px;border-left:3px solid var(--primary);padding-left:8px}/* ==================== 关于页（原内联 <style> 收口） ==================== */ .about-page{font-family:var(--font-sans,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif);color:var(--text-dark)}.about-page .about-wrap{max-width:720px;margin:0 auto;padding:0 1rem 2rem}.about-page .about-hero{background:var(--card-bg);border-radius:12px;padding:2rem 1.8rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm);line-height:1.9}.about-page .about-hero h2{font-size:1.3rem;margin:1.5rem 0 .8rem;border-bottom:1px solid var(--border-light);padding-bottom:.5rem;color:var(--text-title)}.about-page .about-hero h2:first-child{margin-top:0}.about-page .about-hero p{margin:.5rem 0;font-size:.95rem;color:var(--text-body)}.about-page .about-hero strong{color:var(--primary)}.about-page .about-timeline{background:var(--card-bg);border-radius:12px;padding:2rem 1.8rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm)}.about-page .about-timeline h2{font-size:1.3rem;margin:0 0 1.2rem;border-bottom:1px solid var(--border-light);padding-bottom:.5rem;color:var(--text-title)}.about-page .tl-list{list-style:none;padding:0;margin:0;position:relative}.about-page .tl-list::before{content:'';position:absolute;left:.35rem;top:.35rem;bottom:.5rem;width:2px;background:linear-gradient(180deg,var(--primary) 0%,var(--border-light) 100%);border-radius:1px}.about-page .tl-item{position:relative;padding-left:1.8rem;padding-bottom:1.2rem}.about-page .tl-item:last-child{padding-bottom:0}.about-page .tl-item::before{content:'';position:absolute;left:0;top:.35rem;width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px rgba(204,59,46,.15)}.about-page .tl-item:last-child::before{box-shadow:0 0 0 3px rgba(204,59,46,.25)}.about-page .tl-time{font-size:.82rem;font-weight:700;color:var(--primary);margin-bottom:.2rem}.about-page .tl-text{font-size:.92rem;color:var(--text-body);line-height:1.65;margin:0}.about-page .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.about-page .about-card{background:var(--card-bg);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm)}.about-page .about-card h3{font-size:1rem;margin:0 0 1rem;color:var(--text-title);border-bottom:1px solid var(--border-light);padding-bottom:.4rem}.about-page .stat-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px dashed var(--border-light)}.about-page .stat-row:last-child{border-bottom:none}.about-page .stat-label{font-size:.85rem;color:var(--text-muted)}.about-page .stat-value{font-size:.95rem;font-weight:700;color:var(--text-title)}.about-page .tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem}.about-page .tag-cloud a{display:inline-block;padding:.3rem .7rem;border-radius:20px;text-decoration:none;color:var(--text-body);background:var(--tag-bg);font-size:.78rem;transition:background .15s,transform .15s}.about-page .tag-cloud a:hover{background:var(--primary);color:var(--text-white);transform:translateY(-1px);text-decoration:none}.about-page .about-toolbar{background:var(--card-bg);border-radius:12px;padding:1.2rem 1.8rem;box-shadow:var(--shadow-sm);display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.about-page .about-toolbar a{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1.2rem;border-radius:24px;background:var(--tag-bg);color:var(--text-body);text-decoration:none;font-size:.88rem;transition:background .15s,transform .15s}.about-page .about-toolbar a svg{flex-shrink:0}.about-page .about-toolbar a:hover{background:var(--primary);color:var(--text-white);transform:translateY(-1px);text-decoration:none}.about-page .about-page-title{font-size:1.5rem;margin-bottom:1rem;color:var(--text-title)}@media (max-width:640px){.about-page .about-hero{padding:1.2rem}.about-page .about-timeline{padding:1.2rem}.about-page .about-grid{grid-template-columns:1fr}.about-page .about-card{padding:1.2rem}.about-page .about-toolbar{padding:1rem 1.2rem;gap:.8rem}.about-page .about-toolbar a{font-size:.82rem;padding:.4rem .9rem}.about-page .tl-item::before{left:0;top:.28rem;width:8px;height:8px}.about-page .tl-list::before{left:.28rem}.about-page .tl-item{padding-left:1.5rem}}/* ==================== 评论表单 / 文章卡（原内联收口） ==================== */ .comment-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.comment-markdown-tip{font-size:.82em;color:var(--text-muted);margin:-4px 0 10px}.comment-submit-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}/* weread 列表容器（内联收口补充） */ /* ==================== R20 已移除：邮件订阅页样式已随订阅功能下线而清理 ==================== */ /* UI-1（2026-11-06）：局部 input:focus{outline:0} 曾盖掉全局 :focus-visible 焦点环， 键盘 Tab 导航看不到焦点位置。这里用 !important 统一兜底；鼠标态仍由 :focus:not(:focus-visible) 抑制，不会在点击时出现焦点环。 */ :where(input, textarea, select, button, a, [tabindex]):focus-visible{outline:2px solid var(--primary) !important;outline-offset:2px !important;}/* 审计 2026-11-08：移动端暗黑切换按钮可见性保障（与 css.min.css 同步） */ @media (max-width:1024px){.theme-toggle{display:inline-flex!important}}/* ==================== 交流页：全站互动聚合区块（2026-11-11） ==================== 只补最小布局：外层与评论条目全部复用 .comments-section / .comment-item 既有样式， 配色一律走 CSS 变量，三套主题与暗色模式自动适配，不新建视觉语言。 */ .gb-meta-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:12px}.gb-stats{font-size:.8rem;color:var(--text-placeholder);margin:0;line-height:1.7}.gb-jump{font-size:.8rem;color:var(--text-placeholder);text-decoration:none;white-space:nowrap}.gb-jump:hover{color:var(--primary);text-decoration:underline}.gb-note{font-size:.8rem;color:var(--text-placeholder);margin:0 0 12px;line-height:1.6}.gb-hot-list{list-style:none;margin:0;padding:0}.gb-hot-item{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--border-soft);font-size:.933rem}.gb-hot-item:last-child{border-bottom:none}.gb-hot-item a{color:var(--text-body);text-decoration:none;overflow-wrap:anywhere}.gb-hot-item a:hover{color:var(--primary)}.gb-hot-rank{color:var(--text-placeholder);font-size:.8rem;margin-right:10px}.gb-hot-count{color:var(--text-placeholder);font-size:.8rem;white-space:nowrap}