/* ===========================================================
   字体（全部本地加载，不依赖 Google Fonts）
   - Spectral：英文 / 数字 / 文章标题（拉丁字形）
   - Noto Sans CJK SC（= 思源黑体 Source Han Sans）：中文正文
   加载顺序：先 local() 本机字体，命中则完全不下载；未命中才取 assets/fonts 内的文件
   =========================================================== */
/* Spectral 只声明拉丁/数字/拉丁标点范围（无 CJK）—— 从字体层面保证中文永远不会用到 Spectral */
@font-face {
  font-family: 'Spectral';
  src: local('Spectral'), local('Spectral Regular'),
       url('assets/fonts/Spectral-Regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-02AF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
                 U+0304, U+0308, U+0329, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
                 U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  src: local('Spectral SemiBold'), local('Spectral-SemiBold'),
       url('assets/fonts/Spectral-SemiBold.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-02AF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
                 U+0304, U+0308, U+0329, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
                 U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  src: local('Spectral Bold'), local('Spectral-Bold'),
       url('assets/fonts/Spectral-Bold.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-02AF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
                 U+0304, U+0308, U+0329, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
                 U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  src: local('Spectral Italic'), local('Spectral-Italic'),
       url('assets/fonts/Spectral-Italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
  unicode-range: U+0000-00FF, U+0100-02AF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
                 U+0304, U+0308, U+0329, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
                 U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}
/* 中文无衬线体：本地命中即零下载，未命中取主题内 Noto Sans CJK SC（思源黑体）子集；只负责 CJK 范围 */
@font-face {
  font-family: 'Noto Sans CJK SC Local';
  src: local('Noto Sans CJK SC'), local('Source Han Sans SC'), local('Source Han Sans CN'),
       local('Noto Sans SC'), local('PingFang SC'), local('Hiragino Sans GB'),
       local('Microsoft YaHei'), local('WenQuanYi Micro Hei'),
       url('assets/fonts/NotoSansCJKsc-Regular-subset.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+2E80-2EFF, U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE10-FE4F, U+FF00-FFEF;
}

/* ===========================================================
   LIFE NOTE — Typecho 主题
   白底 + 低饱和浅绿 + 白色/浅绿虚线边框，单栏正文，底部四栏
   =========================================================== */
:root{
  --green:#D0D594;        /* 主浅绿（按参考图取样 #D0D594）*/
  --green-2:#C1C68A;      /* hover 稍深 */
  --dash:#b7c98b;         /* 虚线 */
  --ink:#3b3b3b;
  --ink-2:#555;
  --muted:#9a9a9a;
  --muted-2:#b8b8b8;
  --line:#e8e8e8;
  --wrap:1020px;
  /* 拉丁（Spectral）只负责英文/数字；中文一律走无衬线（思源黑体/Noto Sans CJK SC）。
     注意：CJK 之前绝不能出现 serif/Georgia/Times 等衬线兜底，否则中文会被系统衬线体（宋体/Noto Serif CJK）接走。 */
  --font-latin:'Spectral';
  --font-cjk:'Source Han Sans SC','Noto Sans CJK SC','思源黑体','Microsoft YaHei','Noto Sans CJK SC Local','PingFang SC','Hiragino Sans GB','Heiti SC','WenQuanYi Micro Hei',sans-serif;
  --font-text:var(--font-latin),var(--font-cjk);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:#fff;color:var(--ink);
  font:15px/1.75 var(--font-text);
}
/* 强制统一：中文元素与表单控件都用同一栈（Spectral 负责英文/数字，中文走思源黑体无衬线），杜绝任何 serif 兜底 */
body,h1,h2,h3,h4,h5,h6,.site-title,.nav a,.col h3,.post-title,.single-title,.post-body,.post-meta,.archive-title,.page-title,.footer,.empty,.tags,.prevnext,
input,button,textarea,select,.respond button.submit,.search-form button{
  font-family:var(--font-text);
}
a{color:var(--ink);text-decoration:none}
a:hover{color:#55702f}
img{max-width:100%;height:auto}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}

/* ---------- 标题区（居中，无副标题占位） ---------- */
.site-head{text-align:center;padding:56px 0 24px}
.site-title{font-size:32px;font-weight:400;letter-spacing:.18em;margin:0;color:#333}
.site-title a{color:#333}
.cover{margin:24px auto 0;border:1px dashed var(--dash);border-radius:3px;padding:4px;background:#fff}
.cover img{display:block;width:100%;max-height:340px;object-fit:cover;border-radius:2px}
.cover-actions{margin-top:14px;display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
.cover-form{display:inline}
.btn-ghost{
  display:inline-block;font-size:12.5px;color:#7a7a7a;background:#fff;
  border:1px dashed var(--dash);border-radius:999px;padding:7px 20px;cursor:pointer;line-height:1.2;
}
.btn-ghost:hover{background:var(--green);color:#3b3b3b}
.btn-green{
  display:inline-block;font-size:14px;color:#3b3b3b;background:var(--green);
  border:0;border-radius:999px;padding:10px 26px;cursor:pointer;
}
.btn-green:hover{background:var(--green-2);color:#2f2f2f}
.flash{margin:16px auto 0;font-size:13px;color:#7a7a7a;background:#f7faef;border:1px dashed var(--dash);border-radius:3px;padding:8px 14px;display:inline-block}

/* ---------- 导航条：与底部栏目标题框同一套视觉（浅绿底 + 柔和灰色外阴影 + 内部白色虚线框） ---------- */
.nav{
  position:relative;
  background:var(--green);
  border-radius:2px;
  box-shadow:0 1px 2px rgba(112,112,104,.075),0 2px 6px rgba(112,112,104,.08);
  min-height:57px;
  padding:6px 18px;
  display:flex;align-items:center;justify-content:center;
}
.nav::before{
  content:'';position:absolute;inset:6px;border:1px dashed #fff;
  border-radius:1px;pointer-events:none;
}
.nav-inner{
  position:relative;z-index:1;
  display:flex;justify-content:center;align-items:center;gap:38px;min-height:45px;flex-wrap:wrap;
}
.nav a{font-size:14.5px;color:#3b3b3b;padding:9px 2px;border-bottom:2px solid transparent;white-space:nowrap}
.nav a.current{border-bottom-color:#6f8f3f}
.nav a:hover{border-bottom-color:#8fae5c}

/* ---------- 单栏正文 ---------- */
.main{padding:54px 0 8px;min-height:320px}
.archive-title{font-size:14px;color:var(--muted);margin:0 0 26px;text-align:center}
.empty{text-align:center;padding:56px 0 72px;color:var(--muted)}
.empty svg{width:32px;height:32px;display:block;margin:0 auto 14px}
.empty p{margin:0 0 22px;font-size:14px}
.post-list{list-style:none;margin:0;padding:0}
.post-item{padding-bottom:30px;margin-bottom:30px;border-bottom:1px dashed var(--line)}
.post-item:last-child{border-bottom:0}
.post-title{font-size:20px;font-weight:500;margin:0 0 8px;line-height:1.5;font-family:var(--font-text)}
.post-meta{font-size:12.5px;color:var(--muted);margin:0 0 14px}
.post-meta a{color:var(--muted)}
.post-body{color:var(--ink-2);word-break:break-word}
.post-body a{color:#6f8f3f;border-bottom:1px dashed #bcd39a}
.post-body a:hover{color:#55702f;border-bottom-style:solid}
.post-more{font-size:13px;color:#6f8f3f;margin-top:10px;display:inline-block}
.pager{margin:6px 0 34px;font-size:13.5px;color:var(--muted);text-align:center}
.pager a{margin:0 10px;color:#6f8f3f}

/* ---------- 单篇 / 独立页面 ---------- */
.single-head{text-align:center;padding:6px 0 28px}
.single-title{font-size:26px;font-weight:500;margin:0 0 10px;line-height:1.45;font-family:var(--font-text)}
.single .post-body{font-size:15.5px;line-height:1.95;color:#444}
.single .post-body h2{font-size:19px;margin:30px 0 10px;font-weight:500;font-family:var(--font-text)}
.single .post-body h3{font-size:16.5px;margin:24px 0 8px;font-weight:500;font-family:var(--font-text)}
.single .post-body p{margin:0 0 16px}
.single .post-body ul,.single .post-body ol{padding-left:22px;margin:0 0 16px}
.single .post-body blockquote{border-left:3px solid var(--green);margin:18px 0;padding:6px 16px;color:#666;background:#fafcf5}
.single .post-body code{background:#f4f6ee;padding:2px 6px;border-radius:3px;font-size:13px}
.single .post-body pre{background:#f7f9f2;border:1px dashed var(--line);padding:14px;overflow:auto;border-radius:4px}
.single .post-body img{border-radius:3px}
.tags{font-size:12.5px;color:var(--muted);margin-top:26px}
.backhome{text-align:center;padding:6px 0 40px;font-size:13.5px}
.prevnext{display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted);margin:22px 0 0;border-top:1px dashed var(--line);padding-top:18px;flex-wrap:wrap}
.prevnext a{color:#6f8f3f}

/* ---------- 评论 ---------- */
.comments{margin:40px 0 10px;border-top:1px dashed var(--line);padding-top:26px}
.comments h3{font-size:15px;font-weight:400;color:#555;margin:0 0 18px}
.comments ol{list-style:none;margin:0 0 20px;padding:0}
.comments ol li.comment{padding:14px 0;border-bottom:1px dashed var(--line)}
.comments .comment-author{font-size:13.5px;color:#3b3b3b}
.comments .comment-meta{font-size:12px;color:var(--muted);margin:2px 0 8px}
.comments .comment-content{font-size:14px;color:var(--ink-2)}
.comments .comment-reply a{font-size:12.5px;color:#6f8f3f}
.comments .children{padding-left:20px}
.respond input[type=text],.respond input[type=email],.respond input[type=url],.respond textarea{
  width:100%;border:1px solid #e0e0e0;border-radius:4px;padding:8px 12px;font-size:14px;font-family:inherit;background:#fff;
}
.respond textarea{min-height:120px}
.respond label{display:block;font-size:13px;color:var(--muted);margin:12px 0 6px}
.respond button.submit{background:var(--green);border:0;border-radius:999px;padding:9px 24px;font-size:14px;color:#3b3b3b;cursor:pointer}
.respond button.submit:hover{background:var(--green-2)}

/* ---------- 底部四栏（标题框：浅绿底 + 柔和灰色外阴影 + 内部四边均匀留白的白色虚线框，按参考图 227×45、虚线内缩 5px） ---------- */
.cols{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px;
  padding:34px 0 60px;margin-top:6px;border-top:1px dashed var(--line);
}
.col h3{
  position:relative;
  background:var(--green);
  border-radius:2px;
  box-shadow:0 1px 2px rgba(112,112,104,.075),0 2px 6px rgba(112,112,104,.08);
  min-height:45px;
  padding:12px;
  margin:0 0 16px;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:400;color:#3b3b3b;line-height:1.25;text-align:center;
}
.col h3::before{
  content:'';position:absolute;inset:5px;border:1px dashed #fff;
  border-radius:1px;pointer-events:none;
}
/* 「简介」栏目内容：作者头像/版头缩略图 + 作者名 + 个人简介（沿用同一配色与字体，不改字号层级） */
.about{display:flex;gap:12px;align-items:flex-start}
.about-avatar{
  width:56px;height:56px;flex:0 0 auto;border-radius:50%;object-fit:cover;
  border:1px dashed var(--dash);background:#fff;
}
.about-avatar-letter{
  display:flex;align-items:center;justify-content:center;
  font-size:22px;color:#6b6b6b;background:var(--green);border-radius:50%;
}
.about-body{min-width:0}
.about-name{font-size:14px;color:#3b3b3b;font-weight:500;margin:0 0 6px;white-space:normal}
.about-bio{margin:0;font-size:13px;line-height:1.7;color:var(--muted);white-space:normal;word-break:break-word}
.col ul{list-style:none;margin:0;padding:0;font-size:13px;color:var(--muted)}
.col li{margin-bottom:9px;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.col li a{color:#6b6b6b}
.col li a:hover{color:#55702f}
.col .empty-note{font-size:13px;color:var(--muted-2)}
.cat-count{color:var(--muted-2);font-size:12px}
.search-form{display:flex;gap:8px;align-items:center}
.search-form input[type=text]{
  flex:1 1 auto;min-width:0;height:34px;border:1px solid #ddd;border-radius:999px;padding:0 14px;font-size:13px;background:#fff;
}
.search-form button{height:34px;flex:0 0 auto;white-space:nowrap;border:0;border-radius:999px;background:var(--green);color:#3b3b3b;font-size:13px;padding:0 18px;cursor:pointer}
.search-form button:hover{background:var(--green-2)}
.footer{margin-top:8px;border-top:1px dashed var(--line);padding:20px 0 30px;text-align:center;font-size:12.5px;color:var(--muted-2)}
.footer a{color:var(--muted)}

/* ---------- 手机端适配 ---------- */
@media (max-width:900px){
  .site-head{padding:42px 0 20px}
  .site-title{font-size:26px;letter-spacing:.12em}
  .cols{gap:26px}
}
@media (max-width:760px){
  .nav-inner{justify-content:flex-start;gap:20px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .nav a{padding:12px 0}
  .main{padding:34px 0 6px}
  .post-title{font-size:18px}
  .single-title{font-size:21px}
  .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cover img{max-height:220px}
}
@media (max-width:480px){
  .wrap{padding:0 14px}
  .cols{grid-template-columns:minmax(0,1fr);gap:22px}
  .post-meta{font-size:12px}
}
