/* 财大学 · 文章模板共享样式 */
:root{
  --ink:#0A0908;
  --ink-2:#13110F;
  --ink-3:#1B1814;
  --paper:#E9E2D3;
  --paper-soft:#C8BFAC;
  --paper-mute:#867A60;
  --gold:#C8A968;
  --gold-deep:#8A6E3A;
  --gold-leaf:#E6CE94;
  --green-glow:#3E7A5A;
  --ember:#8B2E2A;
  --ember-glow:#C04A44;
  --rule:rgba(232,222,196,.18);
  --rule-strong:rgba(232,222,196,.32);
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
html,body{background:var(--ink);color:var(--paper);font-family:"Spectral","Noto Serif SC",Georgia,serif;font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased}
body{
  background:radial-gradient(1200px 600px at 80% -10%, rgba(200,169,104,.06), transparent 60%), var(--ink);
  position:relative;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.92  0 0 0 0 0.87  0 0 0 0 0.76  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;opacity:.4;
}

/* ── Top bar ───────────────── */
.site-bar{
  position:relative;z-index:5;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 36px;border-bottom:1px solid var(--rule);
  background:linear-gradient(180deg,rgba(10,9,8,.96),rgba(10,9,8,.6));
}
.site-bar .brand{
  font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:20px;
  color:var(--paper);text-decoration:none;
  display:inline-flex;align-items:center;gap:12px;letter-spacing:.04em;
}
.site-bar .brand::before{content:"";width:32px;height:1px;background:var(--gold);opacity:.75}
.site-bar .brand span{color:var(--gold);font-size:13px;letter-spacing:.06em}
.bar-nav{display:flex;gap:28px}
.bar-nav a{
  color:var(--paper-soft);text-decoration:none;
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  transition:color .3s;
}
.bar-nav a:hover{color:var(--gold-leaf)}
.bar-nav .free-pill{
  border:1px solid var(--gold);color:var(--gold-leaf);background:rgba(200,169,104,.05);
  padding:9px 16px;border-radius:1px;
  display:inline-flex;align-items:center;gap:8px;
  transition:background .3s,color .3s;
}
.bar-nav .free-pill::before{content:"";width:6px;height:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 10px var(--gold)}
.bar-nav .free-pill:hover{background:var(--gold);color:var(--ink)}

/* ── Layout ─────────────────── */
main{position:relative;z-index:2;max-width:780px;margin:0 auto;padding:48px 24px 80px}
.breadcrumb{
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper-mute);margin-bottom:32px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
.breadcrumb a{color:var(--paper-soft);text-decoration:none;transition:color .3s}
.breadcrumb a:hover{color:var(--gold-leaf)}
.breadcrumb span{color:var(--paper-mute)}

/* ── Article head ──────────── */
.post-head{margin-bottom:48px}
.post-head .kicker{
  font-family:"JetBrains Mono",monospace;font-size:13px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold);margin-bottom:18px;display:flex;align-items:center;gap:14px;
}
.post-head .kicker::before{content:"";width:7px;height:7px;background:var(--gold);border-radius:50%;box-shadow:0 0 12px var(--gold)}

.post-head h1{
  font-family:"Fraunces","Noto Serif SC",serif;font-weight:500;
  font-size:clamp(36px,5vw,56px);line-height:1.1;letter-spacing:-.012em;color:var(--paper);
  font-variation-settings:"opsz" 96;
  margin-bottom:22px;
}
.post-head h1 em{font-style:italic;color:var(--gold-leaf);font-weight:400}

.post-head .dek{
  font-family:"Spectral",serif;font-size:20px;line-height:1.6;color:var(--paper-soft);font-weight:400;
  margin-bottom:26px;
}
.post-head .dek b{color:var(--gold-leaf);font-weight:500;font-style:italic;font-family:"Fraunces",serif}

.post-head .meta{
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--paper-mute);
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  padding-top:20px;border-top:1px solid var(--rule);
}
.post-head .meta b{color:var(--gold-leaf);font-weight:500}

/* ── TOC ───────────────────── */
.toc{
  border-left:2px solid var(--gold);background:linear-gradient(90deg, rgba(200,169,104,.06), transparent);
  padding:24px 24px 22px 28px;margin:0 0 56px;
}
.toc h2{
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold);font-weight:500;margin-bottom:14px;
}
.toc ol{list-style:none;counter-reset:toc;display:grid;grid-template-columns:1fr 1fr;gap:6px 32px}
.toc ol li{counter-increment:toc;font-family:"Spectral",serif;font-size:15px}
.toc ol li::before{content:counter(toc, decimal-leading-zero) "  ";color:var(--gold-deep);font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;margin-right:6px}
.toc ol li a{color:var(--paper);text-decoration:none;font-style:italic;transition:color .3s}
.toc ol li a:hover{color:var(--gold-leaf)}

/* ── Body sections ─────────── */
.post section{margin-bottom:48px}
.post h2{
  font-family:"Fraunces","Noto Serif SC",serif;font-weight:500;
  font-size:clamp(28px,3.4vw,36px);line-height:1.2;letter-spacing:-.005em;color:var(--paper);
  font-variation-settings:"opsz" 72;
  margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--rule);
  scroll-margin-top:80px;
}
.post h2 em{font-style:italic;color:var(--gold-leaf)}
.post h3{
  font-family:"Fraunces","Noto Serif SC",serif;font-weight:500;font-style:italic;
  font-size:22px;line-height:1.3;color:var(--gold-leaf);margin:28px 0 12px;
}
.post p{margin-bottom:18px;font-size:17px;line-height:1.85;color:var(--paper)}
.post p b{color:var(--gold-leaf);font-weight:500}
.post p em{color:var(--paper);font-style:italic}
.post a{color:var(--gold-leaf);text-decoration:underline;text-decoration-color:var(--gold-deep);text-underline-offset:3px;transition:color .3s}
.post a:hover{color:var(--gold)}

.post ul,.post ol{margin:0 0 22px 1.4em;font-size:17px;line-height:1.85}
.post ul li,.post ol li{margin-bottom:8px;color:var(--paper)}
.post ul li::marker{color:var(--gold)}
.post ol li::marker{color:var(--gold);font-family:"JetBrains Mono",monospace;font-size:.85em}

.post blockquote{
  border-left:3px solid var(--gold);
  padding:14px 22px;margin:24px 0;
  background:linear-gradient(90deg,rgba(200,169,104,.05),transparent);
  font-family:"Spectral",serif;font-style:italic;font-size:18px;line-height:1.7;color:var(--paper-soft);
}
.post blockquote cite{display:block;margin-top:8px;font-family:"JetBrains Mono",monospace;font-style:normal;font-size:11px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase}

.post table{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px}
.post th,.post td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--rule)}
.post th{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:500;border-bottom-color:var(--gold-deep)}
.post td{font-family:"Spectral",serif;color:var(--paper)}

.post code{font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--gold-leaf);background:rgba(200,169,104,.08);padding:2px 6px;border-radius:1px}

.callout{
  border:1px solid var(--gold-deep);padding:20px 22px;margin:24px 0;
  background:linear-gradient(180deg, rgba(200,169,104,.06), rgba(200,169,104,.01));
}
.callout strong{color:var(--gold-leaf);font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:15px;letter-spacing:.04em;display:block;margin-bottom:6px}

/* ── FAQ ──────────────────── */
.faq-section{margin-top:64px;padding-top:32px;border-top:1px solid var(--rule-strong)}
.faq-section h2{border:0;padding:0;margin-bottom:24px}
.faq-section details{
  border:1px solid var(--rule-strong);
  padding:18px 22px;margin-bottom:10px;
  background:linear-gradient(180deg, rgba(232,222,196,.04), rgba(232,222,196,.01));
  transition:border-color .3s, background .3s;
}
.faq-section details[open]{border-color:var(--gold);background:linear-gradient(180deg, rgba(200,169,104,.07), rgba(200,169,104,.02))}
.faq-section summary{
  cursor:pointer;list-style:none;
  font-family:"Fraunces","Noto Serif SC",serif;font-weight:500;font-size:18px;color:var(--paper);
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.faq-section summary::-webkit-details-marker{display:none}
.faq-section summary::after{
  content:"+";font-family:"JetBrains Mono",monospace;font-size:24px;color:var(--gold);font-weight:300;
  transition:transform .3s;
}
.faq-section details[open] summary::after{content:"−"}
.faq-section details > div{margin-top:14px;font-size:16px;line-height:1.8;color:var(--paper-soft);font-family:"Spectral",serif}
.faq-section details > div p{margin-bottom:12px}

/* ── Reserve CTA ──────────── */
.reserve-cta{
  margin-top:72px;padding:42px 36px;
  border:1px solid var(--gold-deep);
  background:radial-gradient(800px 240px at 50% 0%, rgba(200,169,104,.10), transparent 70%), var(--ink-2);
  position:relative;
}
.reserve-cta::before,.reserve-cta::after{
  content:"";position:absolute;width:24px;height:24px;border:1px solid var(--gold);
}
.reserve-cta::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.reserve-cta::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.reserve-cta .kicker{
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px;
}
.reserve-cta h3{
  font-family:"Fraunces","Noto Serif SC",serif;font-weight:300;
  font-size:clamp(28px,3.6vw,38px);line-height:1.15;letter-spacing:-.005em;color:var(--paper);
  font-variation-settings:"opsz" 96;
}
.reserve-cta h3 em{font-style:italic;color:var(--gold-leaf)}
.reserve-cta p{margin-top:12px;font-family:"Spectral",serif;font-style:italic;color:var(--paper-soft);font-size:15px;line-height:1.7}
.inline-form{
  margin-top:24px;display:grid;grid-template-columns:1fr auto 1fr auto;gap:12px;align-items:end;
}
.inline-form input{
  background:transparent;border:0;border-bottom:1px solid var(--rule-strong);
  color:var(--paper);font-family:"Fraunces",serif;font-size:17px;padding:10px 4px 10px;outline:0;
  transition:border-color .3s;width:100%;
}
.inline-form input::placeholder{color:rgba(232,222,196,.32);font-style:italic}
.inline-form input:focus{border-color:var(--gold-leaf)}
.inline-form .sep{font-family:"Fraunces",serif;font-style:italic;color:var(--gold);font-size:14px;align-self:center;padding-bottom:6px}
.inline-form button{
  background:transparent;border:1px solid var(--gold);color:var(--gold-leaf);
  padding:13px 22px;cursor:pointer;
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  transition:background .3s, color .3s;white-space:nowrap;
}
.inline-form button:hover{background:var(--gold);color:var(--ink)}
.form-msg{margin-top:14px;font-family:"Spectral",serif;font-style:italic;font-size:14px;color:var(--paper-soft);text-align:center;min-height:1em}
.form-msg.err{color:var(--ember-glow)}
.form-msg.ok{color:var(--gold-leaf)}

/* ── Related ─────────────── */
.related{margin-top:64px;padding-top:32px;border-top:1px solid var(--rule)}
.related h2{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.32em;color:var(--gold);text-transform:uppercase;font-weight:500;margin-bottom:18px;border:0;padding:0}
.related ul{list-style:none;margin:0}
.related li{border-bottom:1px solid var(--rule);padding:14px 0}
.related li:last-child{border:0}
.related li a{
  font-family:"Fraunces","Noto Serif SC",serif;font-size:19px;color:var(--paper);text-decoration:none;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  transition:color .3s,padding-left .3s;
}
.related li a:hover{color:var(--gold-leaf);padding-left:8px}
.related li a::after{content:"→";font-family:"JetBrains Mono",monospace;color:var(--gold);font-size:14px}
.related li .ko{display:block;font-family:"Spectral",serif;font-style:italic;font-size:13px;color:var(--paper-mute);margin-top:3px;font-weight:300}

/* ── Footer ──────────────── */
.site-foot{
  position:relative;z-index:2;
  padding:40px 24px;border-top:1px solid var(--rule-strong);
  text-align:center;
  font-family:"Spectral",serif;font-style:italic;font-size:14px;color:var(--paper-soft);line-height:1.8;
}
.site-foot a{color:var(--gold-leaf);text-decoration:none;font-family:"JetBrains Mono",monospace;font-style:normal;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.site-foot a:hover{color:var(--gold)}
.site-foot .small{display:block;margin-top:8px;font-family:"JetBrains Mono",monospace;font-style:normal;font-size:11px;letter-spacing:.24em;color:var(--gold-deep);text-transform:uppercase}

/* ── Hub-specific ──────── */
.hub-head{margin-bottom:40px}
.hub-head .kicker{font-family:"JetBrains Mono",monospace;font-size:13px;letter-spacing:.32em;color:var(--gold);text-transform:uppercase;margin-bottom:14px}
.hub-head h1{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(42px,6vw,68px);line-height:1.05;letter-spacing:-.015em;color:var(--paper);font-variation-settings:"opsz" 144}
.hub-head h1 em{font-style:italic;color:var(--gold-leaf);font-weight:400}
.hub-head .dek{margin-top:18px;font-size:18px;line-height:1.7;color:var(--paper-soft);font-family:"Spectral",serif;max-width:600px}

.hub-section{margin-top:56px}
.hub-section .hsec-head{display:flex;align-items:end;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--rule);margin-bottom:18px}
.hub-section .hsec-head h2{font-family:"Fraunces",serif;font-weight:400;font-size:28px;color:var(--paper);font-variation-settings:"opsz" 72;border:0;padding:0;margin:0}
.hub-section .hsec-head h2 em{font-style:italic;color:var(--gold-leaf)}
.hub-section .hsec-head .pill{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.28em;color:var(--paper-soft);text-transform:uppercase}
.hub-list{list-style:none}
.hub-list li{padding:18px 0;border-bottom:1px solid var(--rule)}
.hub-list li a{display:flex;justify-content:space-between;gap:18px;text-decoration:none;color:var(--paper);transition:padding-left .3s,color .3s}
.hub-list li a:hover{padding-left:6px;color:var(--gold-leaf)}
.hub-list .title{font-family:"Fraunces","Noto Serif SC",serif;font-size:21px;font-weight:500;line-height:1.3}
.hub-list .title small{display:block;font-family:"Spectral",serif;font-style:italic;font-weight:300;font-size:14px;color:var(--paper-mute);margin-top:4px}
.hub-list .read{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;white-space:nowrap;align-self:center}

/* ── Responsive ────────── */
@media (max-width:720px){
  .site-bar{padding:14px 18px}
  .bar-nav{gap:14px}
  .bar-nav a:not(.free-pill){display:none}
  main{padding:32px 18px 64px}
  .toc ol{grid-template-columns:1fr}
  .inline-form{grid-template-columns:1fr;gap:8px}
  .inline-form .sep{display:none}
  .reserve-cta{padding:32px 22px}
  .post h2{font-size:24px}
  .post h3{font-size:19px}
  .post p,.post ul,.post ol{font-size:16px}
}
