/* roulang page: index */
:root{--primary:#17332D;--primary-light:#1F4038;--primary-rgb:23,51,45;--accent:#B48C4C;--accent-light:rgba(180,140,76,.14);--accent-rgb:180,140,76;--bg:#F7F5F0;--bg-alt:#EFEDE8;--white:#fff;--text:#1D2A26;--text-secondary:#5A6661;--text-muted:#8C948F;--border:#E5E1D9;--success:#3E7C4F;--warning:#C47A2B;--error:#B5483A;--radius-lg:12px;--radius:8px;--radius-sm:4px;--shadow:0 8px 24px rgba(var(--primary-rgb),.08);--shadow-lg:0 16px 40px rgba(var(--primary-rgb),.12);--font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;--font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--container:1200px;--space:clamp(72px,10vw,120px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:88px}body{font-family:var(--font-sans);font-size:17px;line-height:1.9;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;transition:color .2s ease}img{display:block;max-width:100%;height:auto}.container{max-width:var(--container);margin:0 auto;padding:0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 26px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:15px;font-weight:600;line-height:1.4;border:1px solid transparent;cursor:pointer;transition:all .25s ease;white-space:nowrap}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:var(--primary);border-color:var(--accent)}.btn-primary:hover{background:var(--primary);color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.25);transform:translateY(-2px)}.btn-outline{background:transparent;color:#D8E0DC;border-color:rgba(255,255,255,.5)}.btn-outline:hover{background:rgba(255,255,255,.1);border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.btn-accent{background:var(--accent);color:var(--primary);border-color:var(--accent)}.btn-accent:hover{background:transparent;color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.35);transform:translateY(-2px)}.btn-outline-light{background:transparent;color:#E8EEEB;border-color:rgba(255,255,255,.45)}.btn-outline-light:hover{background:rgba(255,255,255,.1);border-color:var(--accent);color:var(--accent)}.btn-lg{padding:15px 36px;font-size:16px}.tag{display:inline-flex;align-items:center;padding:4px 14px;border-radius:999px;font-size:13px;font-weight:500;letter-spacing:.02em;border:1px solid rgba(var(--accent-rgb),.5);color:var(--accent);background:transparent;transition:all .2s ease}.tag:hover{background:var(--accent);color:var(--primary)}.badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--accent);color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.04em;padding:5px 16px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.18)}.section-head{margin-bottom:48px;max-width:760px}.section-title{font-family:var(--font-serif);font-size:clamp(28px,3.5vw,40px);font-weight:700;line-height:1.3;color:var(--text);letter-spacing:-.01em}.section-title .section-num{color:var(--accent);margin-right:10px;font-family:var(--font-serif)}.section-title.light{color:#F0F4F2}.section-desc{color:var(--text-secondary);font-size:16px;margin-top:12px;line-height:1.7}.light-desc{color:#A8B8B2}/* Header */ .site-header{position:sticky;top:0;left:0;right:0;z-index:100;background:rgba(var(--primary-rgb),.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}.brand{font-family:var(--font-serif);font-weight:700;font-size:22px;color:#fff;letter-spacing:.01em;display:flex;align-items:center;gap:2px;white-space:nowrap}.brand-q{color:var(--accent)}.brand-dot{color:var(--accent);margin:0 2px}.main-nav{display:flex;align-items:center;gap:8px}.main-nav .chip{display:inline-flex;align-items:center;padding:9px 20px;border-radius:999px;font-size:14px;font-weight:500;color:#D8E0DC;border:1px solid transparent;transition:all .25s ease}.main-nav .chip:hover{background:rgba(255,255,255,.1);color:#fff}.main-nav .chip.active{background:var(--accent);color:var(--primary);font-weight:700}.nav-cta{margin-left:8px}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;padding:10px;transition:border-color .2s}.nav-toggle span{display:block;height:2px;background:#fff;border-radius:2px;transition:all .3s ease}.nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}/* Hero */ .hero{position:relative;min-height:92vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:var(--primary)}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.45}.hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(23,51,45,.95) 0%,rgba(23,51,45,.72) 45%,rgba(23,51,45,.5) 100%)}.hero-watermark{position:absolute;top:16vh;right:4vw;font-family:var(--font-serif);font-size:clamp(80px,15vw,200px);font-weight:700;color:rgba(var(--accent-rgb),.10);line-height:1;pointer-events:none;user-select:none;z-index:1}.hero-content{position:relative;z-index:2;padding-top:80px;padding-bottom:60px}.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;letter-spacing:.08em;color:var(--accent);margin-bottom:28px;text-transform:uppercase}.hero-eyebrow::before{content:"";display:block;width:32px;height:1px;background:var(--accent)}.hero-title{font-family:var(--font-serif);font-size:clamp(44px,6vw,72px);font-weight:700;line-height:1.2;letter-spacing:-.01em;color:#fff;max-width:860px;text-shadow:0 2px 20px rgba(0,0,0,.2)}.hero-subtitle{font-size:clamp(16px,2vw,20px);line-height:1.8;color:#C4D0CB;margin-top:24px;max-width:620px}.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}.hero-metrics{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.15);background:rgba(0,0,0,.12);backdrop-filter:blur(6px)}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr)}.metric{padding:32px 24px;border-left:1px solid rgba(255,255,255,.15);text-align:left}.metric:first-child{border-left:0}.metric-value{display:block;font-family:var(--font-serif);font-size:clamp(40px,5vw,64px);font-weight:700;color:var(--accent);line-height:1.1}.metric-label{display:block;font-size:13px;color:#A8B8B2;margin-top:8px;letter-spacing:.04em;font-weight:500}/* TOC */ .toc-section{background:var(--bg);padding:0;border-bottom:1px solid var(--border)}.toc-wrap{display:flex;overflow-x:auto;gap:0;scrollbar-width:none;-ms-overflow-style:none}.toc-wrap::-webkit-scrollbar{display:none}.toc-item{flex:1;min-width:200px;display:flex;align-items:center;gap:14px;padding:24px 28px;border-right:1px solid var(--border);transition:background .3s ease;position:relative}.toc-item:last-child{border-right:0}.toc-item:hover{background:var(--accent-light)}.toc-item:hover .toc-num{color:var(--accent);transform:translateX(4px)}.toc-num{font-family:var(--font-serif);font-size:28px;font-weight:700;color:var(--text-muted);transition:all .3s ease}.toc-label{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap}.toc-line{font-size:12px;color:var(--text-muted);margin-left:auto;white-space:nowrap}/* Featured */ .featured-section{padding:var(--space) 0;background:var(--bg)}.featured-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px;align-items:start}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .3s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--accent)}.card-img{position:relative;aspect-ratio:16/9;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.card:hover .card-img img{transform:scale(1.03)}.card-body{padding:32px}.card-body h3{font-family:var(--font-serif);font-size:clamp(18px,2vw,22px);font-weight:600;line-height:1.45;color:var(--text);margin-bottom:14px}.card-body p{font-size:15px;color:var(--text-secondary);line-height:1.75;margin-bottom:20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.read-time{font-size:13px;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px}.featured-side{display:flex;flex-direction:column;gap:0}.side-item{padding:26px 24px;border-left:3px solid transparent;border-bottom:1px solid var(--border);background:var(--white);transition:all .25s ease;position:relative}.side-item:hover{border-left-color:var(--accent);background:var(--white);box-shadow:var(--shadow)}.side-item:last-child{border-bottom:0}.side-item h4{font-family:var(--font-serif);font-size:16px;font-weight:600;line-height:1.5;color:var(--text);transition:color .2s}.side-item:hover h4{color:var(--accent)}.side-meta{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:12px;color:var(--text-muted)}.side-tag{font-size:12px;color:var(--accent);border:1px solid rgba(var(--accent-rgb),.4);padding:2px 10px;border-radius:999px}/* Directory */ .directory-section{padding:var(--space) 0;background:var(--bg-alt)}.directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.dir-card{display:block;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:32px;transition:all .3s ease;position:relative;overflow:hidden}.dir-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.dir-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(var(--accent-rgb),.5)}.dir-card:hover::before{transform:scaleX(1)}.dir-icon{width:52px;height:52px;background:var(--accent-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:20px;transition:transform .3s ease}.dir-card:hover .dir-icon{transform:scale(1.05)}.dir-card h3{font-family:var(--font-serif);font-size:18px;font-weight:600;margin-bottom:10px;color:var(--text)}.dir-card p{font-size:14px;color:var(--text-secondary);line-height:1.7;margin-bottom:18px}.dir-count{display:inline-block;font-size:13px;font-weight:600;color:var(--accent);background:var(--accent-light);padding:4px 14px;border-radius:999px}/* Data Section */ .data-section{padding:var(--space) 0;background:var(--primary);color:#E0E8E4}.data-section .section-title{color:#F0F4F2}.data-section .section-desc{color:#A8B8B2}.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.data-chart{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:340px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.15)}.data-chart-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(23,51,45,.92),rgba(23,51,45,.55));display:flex;flex-direction:column;justify-content:flex-end;padding:28px}.data-chart-num{font-family:var(--font-serif);font-size:64px;font-weight:700;color:var(--accent);line-height:1}.data-chart-label{font-size:14px;color:#C4D0CB;margin-top:8px}.data-list{display:flex;flex-direction:column;gap:22px}.data-row{display:grid;grid-template-columns:120px 1fr 60px;align-items:center;gap:16px}.data-label{font-size:14px;color:#B8C6C0}.data-bar{height:6px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden}.data-bar span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width 1.2s ease}.data-value{font-family:var(--font-serif);font-size:18px;font-weight:700;color:#fff;text-align:right}/* Latest */ .latest-section{padding:var(--space) 0;background:var(--bg)}.latest-list{display:flex;flex-direction:column;gap:16px;margin-top:8px}.latest-item{display:grid;grid-template-columns:120px 1fr;gap:28px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;transition:all .3s ease;align-items:start}.latest-item:hover{box-shadow:var(--shadow);border-color:rgba(var(--accent-rgb),.5);transform:translateY(-2px)}.latest-time{display:flex;flex-direction:column;align-items:flex-start;padding-top:4px}.latest-day{font-family:var(--font-serif);font-size:34px;font-weight:700;color:var(--accent);line-height:1.1}.latest-month{font-size:13px;color:var(--text-muted);margin-top:4px;letter-spacing:.05em}.latest-content h3{font-family:var(--font-serif);font-size:19px;font-weight:600;line-height:1.45;color:var(--text);margin-bottom:8px;transition:color .2s}.latest-content h3 a{transition:color .2s}.latest-content h3 a:hover{color:var(--accent)}.latest-content p{font-size:15px;color:var(--text-secondary);line-height:1.75;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.latest-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.read-more{font-size:14px;font-weight:600;color:var(--text-secondary);display:inline-flex;align-items:center;gap:4px;transition:all .2s ease}.read-more:hover{color:var(--accent);gap:8px}.latest-empty{border:2px dashed #D0CCC2;background:#FAF9F6;border-radius:var(--radius-lg);padding:60px 32px;text-align:center;color:var(--text-muted);font-size:16px}/* Recommend */ .recommend-section{padding:var(--space) 0;background:var(--bg-alt)}.recommend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.rec-card{display:block;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .3s ease;position:relative}.rec-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--accent)}.rec-img{position:relative;aspect-ratio:16/10;overflow:hidden}.rec-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.rec-card:hover .rec-img img{transform:scale(1.03)}.rec-body{padding:22px 24px}.rec-body h3{font-family:var(--font-serif);font-size:17px;font-weight:600;line-height:1.5;color:var(--text);transition:color .2s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rec-card:hover .rec-body h3{color:var(--accent)}.rec-source{display:inline-block;font-size:12px;color:var(--text-muted);margin-top:10px}/* FAQ */ .faq-section{padding:var(--space) 0;background:var(--bg)}.faq-list{max-width:860px;margin:0 auto}.faq-item{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;transition:border-color .2s}.faq-item:hover{border-color:rgba(var(--accent-rgb),.4)}.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 28px;cursor:pointer;font-family:var(--font-serif);font-size:17px;font-weight:600;color:var(--text);list-style:none;transition:background .2s}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";font-family:var(--font-serif);font-size:26px;font-weight:400;color:var(--accent);transition:transform .3s ease;flex-shrink:0}.faq-item[open] summary::after{transform:rotate(45deg)}.faq-item[open] summary{background:var(--accent-light)}.faq-item p{padding:0 28px 24px;font-size:15px;color:var(--text-secondary);line-height:1.75}/* CTA */ .cta-section{position:relative;padding:clamp(60px,8vw,100px) 0;background:var(--primary);overflow:hidden}.cta-section::before{content:"";position:absolute;top:-30%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(var(--accent-rgb),.15),transparent 70%);pointer-events:none}.cta-wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}.cta-text h2{font-family:var(--font-serif);font-size:clamp(24px,3vw,36px);font-weight:700;color:#fff;line-height:1.3;margin-bottom:12px}.cta-text p{color:#A8B8B2;font-size:15px;max-width:440px}.cta-actions{display:flex;gap:14px;flex-wrap:wrap}/* Footer */ .site-footer{background:var(--primary);border-top:1px solid rgba(255,255,255,.08);padding:72px 0 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:48px;padding-bottom:56px}.footer-brand .brand{font-size:24px;margin-bottom:16px;display:inline-block}.footer-brand p{color:#A8B8B2;font-size:14px;line-height:1.8;max-width:280px}.footer-col h4{font-family:var(--font-serif);font-size:15px;font-weight:600;color:#fff;margin-bottom:18px;letter-spacing:.03em}.footer-col a,.footer-col p{display:block;color:#A8B8B2;font-size:14px;line-height:2.2;transition:color .2s;margin:0}.footer-col a:hover{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:22px 0}.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:rgba(255,255,255,.45)}.footer-bottom-inner a{color:rgba(255,255,255,.45)}.footer-bottom-inner a:hover{color:var(--accent)}/* Animation */ .anim{opacity:0;transform:translateY(16px);transition:opacity .5s ease-out,transform .5s ease-out}.anim.visible{opacity:1;transform:translateY(0)}/* Responsive */ @media(max-width:1023px){.main-nav{position:fixed;top:72px;left:0;right:0;background:rgba(var(--primary-rgb),.97);flex-direction:column;align-items:stretch;padding:24px;gap:8px;border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-130%);transition:transform .3s ease;z-index:99;backdrop-filter:blur(12px)}.main-nav.open{transform:translateY(0)}.main-nav .chip{justify-content:center;padding:14px 20px}.nav-cta{display:none}.nav-toggle{display:flex}.featured-grid{grid-template-columns:1fr}.directory-grid{grid-template-columns:repeat(2,1fr)}.recommend-grid{grid-template-columns:repeat(2,1fr)}.data-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,1fr)}.metric:nth-child(3){border-left:0}.metric{border-left:0;border-top:1px solid rgba(255,255,255,.12)}.metric:nth-child(-n+2){border-top:0}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:767px){body{font-size:16px}.container{padding:0 16px}.hero{min-height:70vh}.hero-title{font-size:clamp(34px,9vw,44px)}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.toc-item{min-width:160px;padding:18px 16px}.toc-line{display:none}.directory-grid{grid-template-columns:1fr}.recommend-grid{grid-template-columns:1fr}.latest-item{grid-template-columns:1fr;gap:12px;padding:20px}.latest-time{flex-direction:row;align-items:center;gap:10px}.latest-day{font-size:24px}.data-row{grid-template-columns:80px 1fr 50px;gap:10px}.data-label{font-size:12px}.data-value{font-size:15px}.section-head{margin-bottom:32px}.faq-item summary{padding:18px 20px;font-size:15px}.faq-item p{padding:0 20px 20px}.cta-wrap{flex-direction:column;align-items:flex-start}.cta-actions{width:100%}.cta-actions .btn{width:100%}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-bottom-inner{flex-direction:column;text-align:center}.metric{padding:20px 16px}.metric-value{font-size:36px}}

/* roulang page: category1 */
/* ========== 设计变量 ========== */
:root {
  --primary: #17332D;
  --primary-light: #1E3F37;
  --primary-lighter: #285247;
  --accent: #B48C4C;
  --accent-light: #D4B87A;
  --accent-dark: #916B37;
  --bg: #F7F5F0;
  --bg-alt: #EFEDE8;
  --white: #FFFFFF;
  --text: #1D2A26;
  --text-secondary: #5A6661;
  --text-muted: #8C948F;
  --border: #E5E1D9;
  --border-dark: #D0CCC2;
  --success: #3E7C4F;
  --warning: #C47A2B;
  --error: #B5483A;
  --radius-lg: 12px;
  --radius-md: 8px;
  --radius-sm: 4px;
  --shadow: 0 8px 24px rgba(23, 51, 45, 0.08);
  --shadow-accent: 0 0 0 3px rgba(180, 140, 76, 0.25);
  --container: 1200px;
  --space: clamp(72px, 10vw, 120px);
  --font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
  --font-sans: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --transition: 0.3s ease;
}

/* ========== Reset / Base ========== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.8;
  color: var(--text);
  background-color: var(--bg);
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  display: block;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--transition);
}

a:hover {
  color: var(--accent);
}

button {
  font-family: inherit;
  border: none;
  background: none;
  cursor: pointer;
}

input, textarea, select {
  font-family: inherit;
}

ul, ol {
  list-style: none;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

section {
  padding: var(--space) 0;
}

/* ========== 排版 ========== */
h1, h2, h3, h4 {
  font-family: var(--font-serif);
  color: var(--primary);
  line-height: 1.3;
}

h1 {
  font-size: clamp(38px, 5.5vw, 60px);
  font-weight: 700;
  letter-spacing: -0.01em;
}

h2 {
  font-size: clamp(28px, 3.5vw, 40px);
  font-weight: 700;
  margin-bottom: 16px;
}

h3 {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  line-height: 1.4;
}

p {
  line-height: 1.9;
  color: var(--text-secondary);
}

.section-title-wrap {
  margin-bottom: 48px;
  max-width: 640px;
}

.section-title-wrap .section-num {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: 0.04em;
  display: block;
  margin-bottom: 8px;
}

.section-title-wrap p {
  font-size: 15px;
  color: var(--text-muted);
  margin-top: 8px;
}

/* ========== 按钮 ========== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border-radius: var(--radius-sm);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2;
  transition: all var(--transition);
  white-space: nowrap;
  border: 1px solid transparent;
}

.btn-primary {
  background-color: var(--accent);
  color: var(--primary);
}

.btn-primary:hover {
  background-color: var(--accent-light);
  color: var(--primary);
  transform: translateY(-2px);
  box-shadow: var(--shadow-accent);
}

.btn-outline {
  border-color: rgba(255, 255, 255, 0.6);
  color: #fff;
}

.btn-outline:hover {
  border-color: var(--accent);
  color: var(--accent-light);
  background-color: rgba(180, 140, 76, 0.12);
  transform: translateY(-2px);
}

.btn-outline-dark {
  border-color: var(--primary);
  color: var(--primary);
}

.btn-outline-dark:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.btn:active {
  transform: scale(0.98);
}

.btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ========== 标签 / 徽章 ========== */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  background: transparent;
  border: 1px solid var(--accent);
  color: var(--accent);
  transition: all var(--transition);
}

.badge:hover {
  background-color: var(--accent);
  color: #fff;
}

.badge-solid {
  background-color: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.badge-tag {
  background: rgba(180, 140, 76, 0.1);
}

/* ========== 导航 ========== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(23, 51, 45, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
  gap: 20px;
}

.brand {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.brand-q {
  color: var(--accent);
}

.brand-dot {
  margin: 0 4px;
  color: var(--accent);
}

.brand:hover {
  color: #fff;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 8px;
}

.chip {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  color: #D8E0DC;
  transition: all var(--transition);
  border: 1px solid transparent;
}

.chip:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.chip.active {
  background-color: var(--accent);
  color: var(--primary);
  font-weight: 700;
}

.nav-cta {
  margin-left: 8px;
  padding: 10px 24px;
  font-size: 14px;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 6px;
  padding: 8px;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.nav-toggle.active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2) {
  opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* ========== 横幅区 ========== */
.page-banner {
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  padding: 80px 0 64px;
}

.page-banner .banner-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}

.page-banner h1 {
  color: var(--primary);
  margin-bottom: 12px;
}

.page-banner .banner-desc {
  font-size: 16px;
  color: var(--text-muted);
  max-width: 600px;
  line-height: 1.8;
}

.page-banner .banner-en {
  font-family: var(--font-serif);
  font-size: 20px;
  color: var(--accent);
  letter-spacing: 0.08em;
  white-space: nowrap;
  padding-bottom: 12px;
  text-transform: uppercase;
}

/* ========== 分类介绍双栏 ========== */
.intro-section {
  background: var(--white);
}

.intro-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 48px;
}

.intro-copy p + p {
  margin-top: 20px;
}

.intro-copy strong {
  color: var(--primary);
  font-weight: 600;
}

.intro-aside {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
}

.intro-aside h4 {
  font-size: 18px;
  font-family: var(--font-serif);
  color: var(--primary);
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.info-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 14px;
}

.info-list li:last-child {
  border-bottom: none;
}

.info-list .label {
  color: var(--text-muted);
  font-weight: 400;
}

.info-list .value {
  color: var(--primary);
  font-weight: 600;
}

/* ========== 观察方向卡片 ========== */
.direction-section {
  background: var(--bg-alt);
}

.direction-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.direction-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--transition);
}

.direction-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--accent);
}

.direction-card .card-media {
  height: 160px;
  overflow: hidden;
  background: var(--bg-alt);
}

.direction-card .card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.direction-card:hover .card-media img {
  transform: scale(1.03);
}

.direction-card .card-body {
  padding: 24px;
}

.direction-card .card-index {
  font-family: var(--font-serif);
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: 0.04em;
  display: block;
  margin-bottom: 8px;
}

.direction-card h3 {
  font-size: 19px;
  margin-bottom: 10px;
}

.direction-card p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--text-muted);
}

/* ========== 相关栏目 3×2 ========== */
.related-section {
  background: var(--white);
}

.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.related-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 32px 28px;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}

.related-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 0;
  background: var(--accent);
  transition: height 0.4s ease;
}

.related-card:hover::before {
  height: 100%;
}

.related-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--accent);
}

.related-card .rc-num {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  color: var(--accent);
  display: block;
  margin-bottom: 12px;
}

.related-card h3 {
  font-size: 20px;
  margin-bottom: 10px;
}

.related-card p {
  font-size: 14px;
  color: var(--text-muted);
  margin-bottom: 18px;
  line-height: 1.7;
}

.related-card .rc-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--primary);
  transition: all var(--transition);
}

.related-card .rc-link::after {
  content: "→";
  transition: transform var(--transition);
}

.related-card .rc-link:hover {
  color: var(--accent);
}

.related-card .rc-link:hover::after {
  transform: translateX(4px);
  color: var(--accent);
}

/* ========== 数据统计 ========== */
.stats-band {
  background: var(--primary);
  color: var(--white);
  padding: 64px 0;
}

.stats-band .section-title-wrap h2 {
  color: #fff;
}

.stats-band .section-title-wrap p {
  color: #A8B8B2;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.stat-item {
  padding: 24px 28px;
  border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.stat-item:first-child {
  border-left: none;
}

.stat-num {
  font-family: var(--font-serif);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 700;
  color: var(--accent);
  line-height: 1.1;
  margin-bottom: 8px;
}

.stat-label {
  font-size: 14px;
  color: #A8B8B2;
  letter-spacing: 0.02em;
}

/* ========== FAQ ========== */
.faq-section {
  background: var(--bg);
}

.faq-list {
  max-width: 800px;
  margin: 0 auto;
}

.faq-item {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  margin-bottom: 12px;
  overflow: hidden;
  transition: border-color var(--transition);
}

.faq-item:hover {
  border-color: var(--accent);
}

.faq-item summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  font-size: 16px;
  font-weight: 600;
  color: var(--primary);
  cursor: pointer;
  list-style: none;
  transition: background-color var(--transition);
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::before {
  content: "+";
  font-size: 22px;
  font-weight: 400;
  color: var(--accent);
  transition: transform 0.3s ease;
  flex-shrink: 0;
  line-height: 1;
}

.faq-item[open] summary::before {
  transform: rotate(45deg);
}

.faq-item[open] summary {
  background: rgba(180, 140, 76, 0.04);
}

.faq-item .faq-body {
  padding: 0 24px 20px 64px;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.8;
}

/* ========== CTA ========== */
.cta-bar {
  background: rgba(180, 140, 76, 0.1);
  border-top: 1px solid rgba(180, 140, 76, 0.25);
  border-bottom: 1px solid rgba(180, 140, 76, 0.25);
  padding: 48px 0;
}

.cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}

.cta-inner h2 {
  font-size: clamp(22px, 2.6vw, 30px);
  color: var(--primary);
  margin-bottom: 4px;
}

.cta-inner p {
  font-size: 15px;
  color: var(--text-secondary);
}

.cta-inner .btn {
  flex-shrink: 0;
}

/* ========== 页脚 ========== */
.site-footer {
  background: var(--primary);
  color: #D8E0DC;
  padding-top: 64px;
  font-size: 14px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.2fr;
  gap: 48px;
  padding-bottom: 48px;
}

.footer-brand .brand {
  font-size: 24px;
  margin-bottom: 16px;
}

.footer-brand .brand:hover {
  color: var(--accent);
}

.footer-brand p {
  color: #A8B8B2;
  font-size: 14px;
  line-height: 1.8;
  margin-top: 12px;
  max-width: 260px;
}

.footer-col h4 {
  color: #fff;
  font-size: 16px;
  font-family: var(--font-serif);
  margin-bottom: 18px;
}

.footer-col a {
  display: block;
  color: #A8B8B2;
  padding: 4px 0;
  font-size: 14px;
  transition: color var(--transition);
}

.footer-col a:hover {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.footer-col p {
  color: #A8B8B2;
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 6px;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 20px 0;
}

.footer-bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: #8CA29B;
}

.footer-bottom-inner a {
  color: #8CA29B;
}

.footer-bottom-inner a:hover {
  color: var(--accent);
}

/* ========== 滚动入场动画 ========== */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ========== 响应式断点 ========== */
@media (max-width: 1024px) {
  .direction-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .related-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  .intro-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 0;
  }

  .stat-item:nth-child(3) {
    border-left: none;
  }
}

@media (max-width: 768px) {
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .site-header {
    background: rgba(23, 51, 45, 0.98);
  }

  .nav-wrap {
    height: 64px;
  }

  .nav-cta {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .main-nav {
    position: fixed;
    top: 64px;
    left: 0;
    right: 0;
    background: var(--primary);
    flex-direction: column;
    align-items: stretch;
    padding: 24px 16px;
    gap: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transform: translateY(-120%);
    transition: transform 0.35s ease;
    z-index: 99;
  }

  .main-nav.open {
    transform: translateY(0);
  }

  .main-nav .chip {
    justify-content: center;
    padding: 16px;
    font-size: 16px;
    border-radius: var(--radius-sm);
  }

  .main-nav .chip.active {
    background-color: var(--accent);
    color: var(--primary);
  }

  .nav-cta.mobile-cta {
    display: flex;
    margin-top: 12px;
    justify-content: center;
  }

  .page-banner {
    padding: 48px 0 40px;
  }

  .page-banner .banner-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .page-banner .banner-en {
    font-size: 16px;
    padding-bottom: 0;
  }

  .direction-grid,
  .related-grid {
    grid-template-columns: 1fr;
  }

  .stats-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .stat-item {
    border-left: none !important;
    text-align: center;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .cta-inner .btn {
    width: 100%;
  }

  .footer-bottom-inner {
    flex-direction: column;
    text-align: center;
  }

  .faq-item .faq-body {
    padding-left: 20px;
    padding-right: 20px;
  }

  .faq-item summary {
    padding: 16px 18px;
    font-size: 15px;
  }
}

@media (max-width: 520px) {
  body {
    font-size: 16px;
  }

  h1 {
    font-size: 34px;
  }

  h2 {
    font-size: 26px;
  }

  .direction-card .card-media {
    height: 130px;
  }

  .related-card {
    padding: 24px 20px;
  }

  .intro-aside {
    padding: 20px;
  }

  .page-banner {
    padding: 40px 0 32px;
  }

  .btn {
    width: 100%;
  }
}

@media (max-width: 400px) {
  .brand {
    font-size: 19px;
  }
}

/* ========== 可访问性 ========== */
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

::selection {
  background: rgba(180, 140, 76, 0.3);
}

/* roulang page: article */
:root {
            --primary: #17332D;
            --primary-light: #1E4038;
            --accent: #B48C4C;
            --accent-light: #D8BC8A;
            --bg: #F7F5F0;
            --bg-alt: #EFEDE8;
            --white: #FFFFFF;
            --text: #1D2A26;
            --text-secondary: #5A6661;
            --text-weak: #8C948F;
            --border: #E5E1D9;
            --border-dark: #D0CCC2;
            --success: #3E7C4F;
            --warning: #C47A2B;
            --error: #B5483A;
            --radius-lg: 12px;
            --radius-md: 8px;
            --radius-sm: 4px;
            --shadow-card: 0 8px 24px rgba(23, 51, 45, 0.08);
            --font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;
            --font-sans: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
            --transition: all 0.3s ease;
        }

        *,
        *::before,
        *::after {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 80px;
        }

        body {
            font-family: var(--font-sans);
            font-size: 16px;
            line-height: 1.75;
            color: var(--text);
            background: var(--bg);
            -webkit-font-smoothing: antialiased;
        }

        img {
            max-width: 100%;
            display: block;
        }

        a {
            color: var(--primary);
            text-decoration: none;
            transition: var(--transition);
        }

        button {
            font-family: var(--font-sans);
            border: none;
            cursor: pointer;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 24px;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 12px 28px;
            font-size: 15px;
            font-weight: 600;
            border-radius: var(--radius-sm);
            border: 1px solid transparent;
            letter-spacing: 0.02em;
            transition: var(--transition);
            line-height: 1.4;
        }

        .btn-primary {
            background: var(--accent);
            color: var(--primary);
            border-color: var(--accent);
        }

        .btn-primary:hover {
            background: transparent;
            color: var(--accent);
            box-shadow: 0 0 0 3px rgba(180, 140, 76, 0.25);
            transform: translateY(-2px);
        }

        .btn-primary:active {
            transform: scale(0.98);
        }

        .btn-primary:focus-visible {
            outline: 2px solid var(--accent);
            outline-offset: 2px;
        }

        .btn-outline {
            background: transparent;
            color: var(--white);
            border-color: rgba(255, 255, 255, 0.5);
        }

        .btn-outline:hover {
            background: rgba(255, 255, 255, 0.1);
            border-color: var(--accent);
            color: var(--accent);
        }

        .btn-wide {
            min-width: 220px;
        }

        .badge {
            display: inline-block;
            padding: 2px 14px;
            font-size: 12px;
            font-weight: 600;
            border-radius: 999px;
            background: var(--accent);
            color: var(--primary);
            letter-spacing: 0.03em;
        }

        /* ========== Header / Nav ========== */
        .site-header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            background: rgba(23, 51, 45, 0.92);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }

        .nav-wrap {
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 72px;
            gap: 16px;
        }

        .brand {
            display: inline-flex;
            align-items: baseline;
            font-family: var(--font-serif);
            font-size: 24px;
            font-weight: 700;
            color: var(--white);
            white-space: nowrap;
            flex-shrink: 0;
        }

        .brand-q {
            color: var(--accent);
            font-size: 26px;
        }

        .brand-dot {
            color: var(--accent-light);
            margin: 0 3px;
        }

        .main-nav {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: nowrap;
            overflow-x: auto;
            scrollbar-width: none;
        }

        .main-nav::-webkit-scrollbar {
            display: none;
        }

        .chip {
            display: inline-flex;
            align-items: center;
            padding: 10px 20px;
            font-size: 14px;
            font-weight: 500;
            color: #D8E0DC;
            border-radius: 999px;
            white-space: nowrap;
            transition: var(--transition);
        }

        .chip:hover {
            background: rgba(255, 255, 255, 0.12);
            color: var(--white);
        }

        .chip.active {
            background: var(--accent);
            color: var(--primary);
            font-weight: 700;
        }

        .nav-cta {
            padding: 10px 22px;
            font-size: 14px;
            flex-shrink: 0;
        }

        .nav-toggle {
            display: none;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            width: 44px;
            height: 44px;
            background: transparent;
            border-radius: var(--radius-sm);
            gap: 5px;
            flex-shrink: 0;
        }

        .nav-toggle span {
            display: block;
            width: 24px;
            height: 2px;
            background: var(--white);
            border-radius: 2px;
            transition: var(--transition);
        }

        .nav-toggle.active span:nth-child(1) {
            transform: translateY(7px) rotate(45deg);
        }

        .nav-toggle.active span:nth-child(2) {
            opacity: 0;
        }

        .nav-toggle.active span:nth-child(3) {
            transform: translateY(-7px) rotate(-45deg);
        }

        /* ========== Breadcrumb ========== */
        .breadcrumb-bar {
            background: var(--bg-alt);
            padding: 24px 0 16px;
            margin-top: 72px;
            border-bottom: 1px solid var(--border);
        }

        .breadcrumb {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 8px;
            font-size: 14px;
            color: var(--text-weak);
        }

        .breadcrumb a {
            color: var(--text-secondary);
        }

        .breadcrumb a:hover {
            color: var(--accent);
        }

        .breadcrumb .sep {
            color: var(--border-dark);
        }

        .breadcrumb .current {
            color: var(--primary);
            font-weight: 600;
            max-width: 480px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        /* ========== Article Top ========== */
        .article-top {
            padding: 48px 0 56px;
            background: var(--bg);
        }

        .article-top h1 {
            font-family: var(--font-serif);
            font-size: clamp(32px, 4.5vw, 52px);
            font-weight: 700;
            line-height: 1.25;
            color: var(--primary);
            letter-spacing: -0.01em;
            max-width: 900px;
            margin-bottom: 20px;
        }

        .article-excerpt {
            font-size: 17px;
            line-height: 1.8;
            color: var(--text-secondary);
            max-width: 720px;
            margin-bottom: 28px;
        }

        .article-meta {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 16px;
            padding-top: 20px;
            border-top: 1px solid var(--border);
            font-size: 14px;
            color: var(--text-weak);
        }

        .meta-item {
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .meta-item .dot {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: var(--accent);
            display: inline-block;
        }

        .meta-category {
            display: inline-flex;
            align-items: center;
            padding: 4px 14px;
            border-radius: 999px;
            border: 1px solid var(--accent);
            color: var(--accent);
            font-size: 13px;
            font-weight: 600;
            background: transparent;
        }

        .meta-category:hover {
            background: var(--accent);
            color: var(--white);
        }

        /* ========== Article Body ========== */
        .article-body {
            background: var(--white);
            padding: 72px 0;
            border-top: 1px solid var(--border);
            border-bottom: 1px solid var(--border);
        }

        .article-content {
            max-width: 760px;
            margin: 0 auto;
        }

        .article-content p,
        .article-content ul,
        .article-content ol {
            font-size: 17px;
            line-height: 1.9;
            margin-bottom: 1.5em;
            color: var(--text);
        }

        .article-content h2 {
            font-family: var(--font-serif);
            font-size: 26px;
            font-weight: 700;
            color: var(--primary);
            margin: 2em 0 1em;
            padding-left: 14px;
            border-left: 3px solid var(--accent);
            line-height: 1.4;
        }

        .article-content h3 {
            font-family: var(--font-serif);
            font-size: 20px;
            font-weight: 600;
            color: var(--primary);
            margin: 1.8em 0 0.8em;
            line-height: 1.4;
        }

        .article-content a {
            color: var(--primary);
            text-decoration: underline;
            text-underline-offset: 3px;
            text-decoration-color: var(--accent);
        }

        .article-content a:hover {
            color: var(--accent);
            text-decoration-color: var(--accent);
        }

        .article-content blockquote {
            border-left: 4px solid var(--accent);
            background: var(--bg);
            padding: 20px 28px;
            margin: 2em 0;
            color: var(--text-secondary);
            border-radius: 0 8px 8px 0;
            font-size: 16px;
            line-height: 1.8;
        }

        .article-content img {
            max-width: 100%;
            height: auto;
            border-radius: var(--radius-md);
            margin: 2em 0;
        }

        .article-content figure {
            margin: 2em 0;
        }

        .article-content figure figcaption {
            font-size: 13px;
            color: var(--text-weak);
            text-align: center;
            margin-top: 8px;
        }

        .article-content ul {
            padding-left: 1.5em;
            list-style: disc;
        }

        .article-content ol {
            padding-left: 1.5em;
            list-style: decimal;
        }

        .article-content li {
            margin-bottom: 0.6em;
        }

        .article-content table {
            width: 100%;
            border-collapse: collapse;
            margin: 2em 0;
            font-size: 15px;
        }

        .article-content th,
        .article-content td {
            border: 1px solid var(--border);
            padding: 12px 16px;
            text-align: left;
        }

        .article-content th {
            background: var(--bg);
            font-weight: 600;
            color: var(--primary);
        }

        .article-content code {
            background: var(--bg-alt);
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 14px;
            font-family: "SF Mono", Menlo, Consolas, monospace;
            color: var(--primary);
        }

        .article-content pre {
            background: var(--primary);
            padding: 20px;
            border-radius: var(--radius-md);
            overflow-x: auto;
            margin: 2em 0;
        }

        .article-content pre code {
            background: transparent;
            color: var(--white);
            font-size: 14px;
            line-height: 1.7;
        }

        .article-not-found {
            max-width: 640px;
            margin: 0 auto;
            padding: 80px 40px;
            text-align: center;
            border: 2px dashed var(--border-dark);
            border-radius: var(--radius-lg);
            background: #FAF9F6;
        }

        .article-not-found h1 {
            font-family: var(--font-serif);
            font-size: 32px;
            color: var(--primary);
            margin-bottom: 12px;
        }

        .article-not-found p {
            color: var(--text-secondary);
            margin-bottom: 28px;
            font-size: 15px;
        }

        /* ========== Related Section ========== */
        .related-section {
            background: var(--bg-alt);
            padding: 80px 0;
        }

        .section-heading {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            margin-bottom: 40px;
        }

        .section-heading h2 {
            font-family: var(--font-serif);
            font-size: clamp(26px, 3.5vw, 36px);
            font-weight: 700;
            color: var(--primary);
            letter-spacing: -0.01em;
        }

        .section-heading .section-num {
            color: var(--accent);
            font-size: 0.6em;
            margin-right: 8px;
            font-weight: 700;
        }

        .related-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
        }

        .related-card {
            display: block;
            background: var(--white);
            border: 1px solid var(--border);
            border-radius: var(--radius-md);
            overflow: hidden;
            transition: var(--transition);
        }

        .related-card:hover {
            box-shadow: var(--shadow-card);
            transform: translateY(-4px);
            border-color: var(--accent);
        }

        .related-cover {
            position: relative;
            aspect-ratio: 16 / 10;
            overflow: hidden;
        }

        .related-cover img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.4s ease;
        }

        .related-card:hover .related-cover img {
            transform: scale(1.03);
        }

        .related-cover .badge {
            position: absolute;
            top: 12px;
            left: 12px;
            z-index: 2;
        }

        .related-info {
            padding: 20px 24px 24px;
        }

        .related-info h3 {
            font-family: var(--font-serif);
            font-size: 18px;
            font-weight: 600;
            line-height: 1.5;
            color: var(--text);
            margin-bottom: 12px;
            transition: var(--transition);
        }

        .related-card:hover .related-info h3 {
            color: var(--accent);
        }

        .related-link {
            font-size: 14px;
            font-weight: 600;
            color: var(--primary);
            display: inline-flex;
            align-items: center;
            gap: 6px;
            transition: var(--transition);
        }

        .related-card:hover .related-link {
            color: var(--accent);
        }

        .related-link .arrow {
            transition: transform 0.3s ease;
        }

        .related-card:hover .related-link .arrow {
            transform: translateX(4px);
        }

        /* ========== Back Entry ========== */
        .back-entry {
            padding: 48px 0 72px;
            background: var(--bg);
        }

        /* ========== Footer ========== */
        .site-footer {
            background: var(--primary);
            color: #C4D0CB;
            padding: 64px 0 0;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1.2fr;
            gap: 40px;
            padding-bottom: 48px;
        }

        .footer-brand .brand {
            margin-bottom: 16px;
            display: inline-flex;
        }

        .footer-brand p {
            font-size: 14px;
            line-height: 1.8;
            color: #9AA8A2;
            max-width: 280px;
        }

        .footer-col h4 {
            font-family: var(--font-serif);
            font-size: 16px;
            font-weight: 600;
            color: var(--white);
            margin-bottom: 18px;
        }

        .footer-col a {
            display: block;
            padding: 6px 0;
            font-size: 14px;
            color: #9AA8A2;
            transition: var(--transition);
            text-decoration: none;
        }

        .footer-col a:hover {
            color: var(--accent);
            text-decoration: underline;
            text-underline-offset: 4px;
        }

        .footer-col p {
            font-size: 14px;
            color: #9AA8A2;
            padding: 4px 0;
            line-height: 1.7;
        }

        .footer-bottom {
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            padding: 20px 0;
        }

        .footer-bottom-inner {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 12px;
            font-size: 13px;
            color: #7A8B84;
        }

        .footer-bottom-inner a {
            color: #7A8B84;
            text-decoration: none;
        }

        .footer-bottom-inner a:hover {
            color: var(--accent);
        }

        /* ========== Responsive ========== */
        @media (max-width: 1023px) {
            .nav-cta {
                display: none;
            }

            .related-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 767px) {
            .container {
                padding: 0 16px;
            }

            .nav-toggle {
                display: flex;
            }

            .main-nav {
                position: fixed;
                top: 72px;
                left: 0;
                right: 0;
                background: rgba(23, 51, 45, 0.97);
                flex-direction: column;
                align-items: stretch;
                padding: 16px;
                gap: 4px;
                transform: translateY(-100%);
                visibility: hidden;
                opacity: 0;
                transition: var(--transition);
                border-bottom: 1px solid rgba(255, 255, 255, 0.08);
                overflow-y: auto;
                max-height: calc(100vh - 72px);
            }

            .main-nav.open {
                transform: translateY(0);
                visibility: visible;
                opacity: 1;
            }

            .chip {
                padding: 14px 20px;
                border-radius: var(--radius-sm);
                font-size: 15px;
            }

            .breadcrumb-bar {
                padding: 20px 0 12px;
                margin-top: 72px;
            }

            .breadcrumb .current {
                max-width: 240px;
            }

            .article-top {
                padding: 36px 0 44px;
            }

            .article-meta {
                gap: 10px;
                flex-direction: column;
                align-items: flex-start;
            }

            .article-body {
                padding: 48px 0;
            }

            .article-content p {
                font-size: 16px;
                line-height: 1.85;
            }

            .article-content h2 {
                font-size: 22px;
            }

            .article-content h3 {
                font-size: 18px;
            }

            .related-section {
                padding: 56px 0;
            }

            .section-heading {
                flex-direction: column;
                gap: 8px;
                margin-bottom: 28px;
            }

            .related-grid {
                grid-template-columns: 1fr;
                gap: 16px;
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 32px;
                padding-bottom: 32px;
            }

            .footer-bottom-inner {
                flex-direction: column;
                align-items: flex-start;
                gap: 6px;
            }

            .back-entry {
                padding: 36px 0 56px;
            }

            .btn-wide {
                width: 100%;
            }
        }

        @media (max-width: 520px) {
            .article-top h1 {
                font-size: 30px;
            }

            .article-excerpt {
                font-size: 15px;
            }

            .related-info {
                padding: 16px 18px 20px;
            }

            .related-info h3 {
                font-size: 16px;
            }

            .brand {
                font-size: 20px;
            }

            .brand-q {
                font-size: 22px;
            }
        }
