/* ============================================================
   时光家书 · 博客文章统一样式 (article.css)
   复用主站设计变量与字体，专为长文阅读优化。
   ============================================================ */
:root{
  --paper:#F6F1E7; --paper-deep:#EDE4D3; --surface:#FFFFFF;
  --ink:#2B2420; --ink-soft:#6E6255; --clay:#A8542F; --clay-strong:#8A4325;
  --indigo:#2F4858; --gold-line:#C9AD82; --gold-line-soft:#DCC9A6;
  --overlay-dark:20,16,13; --shadow:0 20px 60px -30px rgba(43,36,32,0.35);
  --radius-img:18px; --radius-card:18px; --radius-pill:999px;
  --card-shadow:0 24px 50px -28px rgba(43,36,32,0.28);
  --night:#2B2420; --night-ink:#F6F1E7;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#1A1613; --paper-deep:#211B16; --surface:#241E19;
    --ink:#F1E8DA; --ink-soft:#B8AA98; --clay:#E28A57; --clay-strong:#F0A374;
    --indigo:#7FA6BD; --gold-line:#4A4038; --gold-line-soft:#5C5044;
    --overlay-dark:8,6,5; --shadow:0 20px 60px -30px rgba(0,0,0,0.6);
    --card-shadow:0 24px 50px -28px rgba(0,0,0,0.55);
  }
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
body{margin:0; background:var(--paper); color:var(--ink);
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  font-weight:400; line-height:1.9; -webkit-font-smoothing:antialiased;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{font-family:"Noto Serif SC","Songti SC",serif; font-weight:600; margin:0; text-wrap:balance; letter-spacing:0.01em;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.eyebrow{display:flex; align-items:center; gap:14px; font-size:13px; letter-spacing:0.16em; color:var(--clay); font-weight:600; margin-bottom:22px;}
.eyebrow .rule{width:36px; height:1px; background:var(--gold-line);}

/* ---------- header ---------- */
header{position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between;
  padding:18px 40px; background:color-mix(in srgb, var(--paper) 93%, transparent);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--gold-line); box-shadow:0 12px 30px -24px rgba(20,16,13,0.4);}
.brand{display:block; width:180px; line-height:0;}
.brand img{width:100%; height:auto; display:block;}
nav.primary-nav{display:flex; align-items:center; gap:34px;}
nav.primary-nav a{font-size:14.5px; color:var(--ink-soft); letter-spacing:0.02em; position:relative; padding-bottom:4px; transition:color .3s ease;}
nav.primary-nav a:hover, nav.primary-nav a.active{color:var(--clay);}
.nav-cta{border:1px solid var(--ink); border-radius:var(--radius-pill); padding:9px 20px !important; color:var(--ink) !important;}
.nav-cta:hover{background:var(--ink); color:var(--paper) !important;}
.menu-btn{display:none; background:none; border:1px solid var(--gold-line); border-radius:10px; width:42px; height:38px; cursor:pointer; align-items:center; justify-content:center;}
.menu-btn span, .menu-btn span::before, .menu-btn span::after{content:""; display:block; width:18px; height:1.5px; background:var(--ink); position:relative;}
.menu-btn span::before{position:absolute; top:-6px;}
.menu-btn span::after{position:absolute; top:6px;}
@media (max-width:900px){
  .brand{width:158px;}
  nav.primary-nav{position:fixed; top:0; right:0; bottom:0; width:min(78vw,320px); height:100dvh; background:var(--paper);
    flex-direction:column; align-items:flex-start; padding:100px 34px 40px; gap:26px; box-shadow:var(--shadow);
    transform:translateX(100%); transition:transform .45s ease; overflow-y:auto;}
  nav.primary-nav.open{transform:translateX(0);}
  .menu-btn{display:flex;}
}

/* ---------- article hero ---------- */
.article-hero{padding:150px 0 0;}
.breadcrumb{font-size:13px; color:var(--ink-soft); margin-bottom:30px; letter-spacing:0.02em;}
.breadcrumb a:hover{color:var(--clay);}
.breadcrumb span{margin:0 8px; opacity:0.5;}
.article-head{max-width:760px; margin:0 auto; text-align:center;}
.article-tag{font-size:12.5px; letter-spacing:0.14em; color:var(--clay); font-weight:600; margin-bottom:20px;}
.article-head h1{font-size:clamp(30px,4.2vw,46px); line-height:1.4; color:var(--ink);}
.article-sub{margin-top:24px; font-size:17px; color:var(--ink-soft); line-height:1.85;}
.article-info{margin-top:28px; padding-top:24px; border-top:1px solid var(--gold-line-soft); font-size:13px; color:var(--ink-soft); display:flex; gap:20px; justify-content:center; flex-wrap:wrap;}
.article-cover{max-width:1000px; margin:48px auto 0; padding:0 32px;}
.article-cover img{width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius-img); box-shadow:var(--shadow);}
.article-cover figcaption{margin-top:14px; text-align:center; font-size:13px; color:var(--ink-soft); letter-spacing:0.02em;}

/* ---------- article body ---------- */
.article-body{max-width:720px; margin:0 auto; padding:56px 32px 40px;}
.article-body > p{font-size:16.5px; color:var(--ink); margin:0 0 26px; line-height:1.95;}
.article-body h2{font-size:clamp(23px,2.8vw,30px); font-weight:700; line-height:1.5; margin:52px 0 22px; color:var(--ink); position:relative; padding-left:20px;}
.article-body h2::before{content:""; position:absolute; left:0; top:8px; bottom:8px; width:4px; border-radius:2px; background:var(--clay);}
.article-body h3{font-size:20px; font-weight:600; margin:38px 0 16px; color:var(--ink);}
.article-body strong{font-weight:700; color:var(--ink);}
.article-body em{font-style:normal; color:var(--clay-strong); font-weight:600;}
.article-body a{color:var(--clay); font-weight:600; border-bottom:1px solid var(--gold-line); transition:border-color .3s ease;}
.article-body a:hover{border-color:var(--clay);}
.article-body ul{margin:22px 0 30px; padding:0; list-style:none;}
.article-body ul li{position:relative; padding-left:28px; margin-bottom:14px; font-size:16px; color:var(--ink-soft); line-height:1.85;}
.article-body ul li::before{content:""; position:absolute; left:6px; top:13px; width:7px; height:7px; border-radius:50%; background:var(--clay);}
.article-body ol{margin:22px 0 30px; padding-left:22px;}
.article-body ol li{margin-bottom:14px; font-size:16px; color:var(--ink-soft); line-height:1.85; padding-left:8px;}
.article-body figure{margin:40px 0;}
.article-body figure img{width:100%; border-radius:var(--radius-img); box-shadow:var(--shadow);}
.article-body figure figcaption{margin-top:14px; text-align:center; font-size:13px; color:var(--ink-soft); letter-spacing:0.02em;}
.article-body blockquote{margin:38px 0; padding:28px 32px; background:var(--surface); border-left:3px solid var(--clay);
  border-radius:0 var(--radius-card) var(--radius-card) 0; box-shadow:var(--card-shadow);
  font-family:"Noto Serif SC",serif; font-size:19px; line-height:1.85; color:var(--ink);}
.article-body blockquote p{margin:0;}
.article-body blockquote cite{display:block; margin-top:14px; font-style:normal; font-size:13px; letter-spacing:0.06em; color:var(--ink-soft); font-family:"Noto Sans SC",sans-serif;}
.pull-quote{margin:44px 0; text-align:center; font-family:"Noto Serif SC",serif; font-size:clamp(21px,2.6vw,27px); line-height:1.7; color:var(--clay-strong); font-weight:600;}
.divider-dot{text-align:center; margin:44px 0; color:var(--gold-line); letter-spacing:1em; font-size:14px;}

/* highlight box */
.note-box{margin:36px 0; padding:28px 32px; background:var(--paper-deep); border:1px solid var(--gold-line-soft); border-radius:var(--radius-card);}
.note-box h4{font-size:16px; color:var(--clay); margin-bottom:14px; font-family:"Noto Sans SC",sans-serif;}
.note-box p{margin:0; font-size:15px; color:var(--ink-soft); line-height:1.85;}

/* ---------- CTA block ---------- */
.article-cta{background:var(--night); color:var(--night-ink); border-radius:var(--radius-card); padding:52px 44px; text-align:center; margin:56px 0 0;}
.article-cta h3{color:var(--night-ink); font-size:clamp(22px,2.6vw,28px); line-height:1.5; margin-bottom:16px;}
.article-cta p{color:rgba(246,241,231,0.72); font-size:15px; max-width:520px; margin:0 auto 28px; line-height:1.85;}
.article-cta .cta-btn{display:inline-flex; align-items:center; gap:10px; padding:14px 32px; font-size:14.5px; letter-spacing:0.02em;
  border-radius:var(--radius-pill); background:linear-gradient(135deg,var(--clay-strong),var(--clay)); color:#FBF4EB;
  box-shadow:0 14px 30px -14px rgba(168,84,47,0.55); transition:all .3s ease;}
.article-cta .cta-btn:hover{filter:brightness(1.06); transform:translateY(-2px);}
@media (max-width:560px){ .article-cta{padding:40px 26px;} }

/* ---------- related posts ---------- */
.related{background:var(--paper-deep); padding:80px 0;}
.related h2{text-align:center; font-size:clamp(24px,3vw,32px); margin-bottom:12px;}
.related .sub{text-align:center; color:var(--ink-soft); font-size:15px; margin-bottom:48px;}
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:820px){ .related-grid{grid-template-columns:1fr;} }
.related-card{background:var(--surface); border:1px solid var(--gold-line-soft); border-radius:var(--radius-card); overflow:hidden;
  box-shadow:var(--card-shadow); transition:transform .35s ease;}
.related-card:hover{transform:translateY(-5px);}
.related-card .thumb{aspect-ratio:16/10; overflow:hidden;}
.related-card .thumb img{width:100%; height:100%; object-fit:cover;}
.related-card .rc-body{padding:24px 26px 28px;}
.related-card .rc-tag{font-size:11.5px; letter-spacing:0.12em; color:var(--clay); font-weight:600; margin-bottom:12px;}
.related-card h3{font-size:17px; line-height:1.55;}

/* ---------- footer ---------- */
footer{background:var(--night); color:rgba(246,241,231,0.55); padding:70px 0 30px; border-top:1px solid rgba(246,241,231,0.12);}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:48px; padding-bottom:40px; border-bottom:1px solid rgba(246,241,231,0.1);}
.footer-logo{font-family:"Noto Serif SC",serif; font-size:19px; font-weight:700; color:rgba(246,241,231,0.92); display:flex; flex-direction:column; line-height:1.2;}
.footer-logo small{font-size:10px; font-weight:400; letter-spacing:0.2em; color:rgba(246,241,231,0.4); margin-top:4px; font-family:"Noto Sans SC",sans-serif;}
.footer-desc{margin:18px 0 22px; font-size:13px; line-height:1.85; color:rgba(246,241,231,0.5); max-width:320px;}
.footer-col h4{font-size:13px; font-weight:600; letter-spacing:0.06em; color:rgba(246,241,231,0.85); margin:0 0 22px;}
.footer-nav{display:flex; flex-direction:column; gap:14px;}
.footer-nav a{color:rgba(246,241,231,0.55); font-size:13.5px; transition:color .3s ease;}
.footer-nav a:hover{color:var(--clay-strong);}
.footer-contact-line{display:block; font-size:13.5px; color:rgba(246,241,231,0.55); margin-bottom:14px;}
.footer-bottom{padding-top:22px; display:flex; flex-direction:column; gap:8px; font-size:11.5px; line-height:1.7; color:rgba(246,241,231,0.42);}
@media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr; gap:36px 28px;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr; gap:30px;} }
