/* drippath.com — 站点共享样式
   模板代号 TPL-CAT-EDITORIAL-01
   设计语言：编辑部路线。宋体标题 + 系统黑体正文，深青主色，浅暖底。
   本文件是全站唯一的设计系统来源，页面内不再重复定义这些规则。 */

/* ---------- tokens ---------- */
:root{
  --bg:#f7f4ee; --surface:#fff; --surface-2:#efeae0;
  --ink:#12151a; --ink-2:#39404a; --muted:#6a7078;
  --line:#ddd6c8; --line-2:#c6bdaa;
  --accent:#0b5f52; --accent-ink:#0a5347; --accent-soft:#dfece8;
  --on-accent:#fff;
  --panel:#0f201c;              /* 数据面板底色，与图表 SVG 同色 */
  --shadow-sm:0 1px 2px rgba(30,24,12,.05), 0 2px 8px rgba(30,24,12,.05);
  --shadow-md:0 2px 4px rgba(30,24,12,.06), 0 10px 24px rgba(30,24,12,.09);
  --radius:12px;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0d0f12; --surface:#16191e; --surface-2:#1d2127;
    --ink:#ecebe6; --ink-2:#c7cbd2; --muted:#949aa4;
    --line:#2b3038; --line-2:#3b424d;
    --accent:#4fd1b8; --accent-ink:#5fd6bc; --accent-soft:#14302b;
    --on-accent:#0d0f12;
    --panel:#0f201c;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);
    --shadow-md:0 2px 4px rgba(0,0,0,.45), 0 12px 28px rgba(0,0,0,.4);
  }
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:100;background:var(--surface);padding:10px 16px;border-radius:8px;border:1px solid var(--accent)}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
}
.site-head .wrap{display:flex;align-items:center;gap:32px;height:64px}
.brand{font-family:var(--serif);font-size:19px;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.brand em{font-style:normal;color:var(--accent-ink)}
.nav{display:flex;gap:26px;font-size:14.5px;color:var(--ink-2);margin-left:auto}
.nav a{padding:4px 0;border-bottom:1.5px solid transparent}
.nav a:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.nav a[aria-current]{color:var(--ink);border-bottom-color:var(--accent-ink);font-weight:600}

/* ---------- breadcrumb ---------- */
.crumb{font-size:13px;color:var(--muted);padding:22px 0 0}
.crumb a:hover{color:var(--accent-ink)}
.crumb i{font-style:normal;margin:0 8px;opacity:.5}

/* ---------- page / category header ---------- */
.eyebrow{
  display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-ink);font-weight:700;margin-bottom:10px;
}
.cat-head{padding:14px 0 30px;border-bottom:1px solid var(--line)}
.cat-head h1,.page-head h1{
  font-family:var(--serif);font-size:clamp(30px,5vw,44px);line-height:1.25;
  margin:0 0 14px;letter-spacing:-.01em;font-weight:700;
}
.cat-desc,.page-lede{margin:0;max-width:62ch;color:var(--ink-2);font-size:16.5px}
.page-head{padding:14px 0 26px;border-bottom:1px solid var(--line)}
.cat-meta,.page-meta{
  display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px;
  font-size:13.5px;color:var(--muted);
}
.cat-meta b,.page-meta b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}

/* ---------- prose ---------- */
.prose{padding:34px 0 10px;font-size:16.5px;color:var(--ink-2)}
.prose h2{
  font-family:var(--serif);font-size:24px;line-height:1.4;font-weight:700;
  color:var(--ink);margin:40px 0 14px;
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-family:var(--serif);font-size:19px;line-height:1.5;font-weight:700;
  color:var(--ink);margin:30px 0 10px;
}
.prose p{margin:0 0 16px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:1.4em}
.prose li{margin:0 0 8px}
.prose li::marker{color:var(--accent-ink)}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px}
.prose hr{border:0;border-top:1px solid var(--line);margin:36px 0}
.prose code{
  font-size:.9em;padding:.12em .4em;border-radius:4px;
  background:var(--surface-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.prose table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:15px}
.prose th,.prose td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{color:var(--ink);font-weight:600;background:var(--surface-2)}
.prose dl{margin:0 0 18px}
.prose dt{color:var(--ink);font-weight:600;margin:18px 0 4px}
.prose dt:first-child{margin-top:0}
.prose dd{margin:0 0 10px}

/* ---------- callout ---------- */
.callout{
  background:var(--surface);border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;
  padding:20px 22px;margin:0 0 24px;font-size:15px;
}
.callout p:last-child{margin-bottom:0}
.callout .k{
  display:block;font-size:12px;letter-spacing:.1em;font-weight:700;
  color:var(--accent-ink);margin-bottom:8px;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 20px;border-radius:9px;font-size:15px;font-weight:600;
  background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);
  transition:opacity .15s;
}
.btn:hover{opacity:.88}
.btn-ghost{background:transparent;color:var(--accent-ink)}

/* ---------- filter chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:22px 0 4px}
.chip{
  font:inherit;font-size:13.5px;cursor:pointer;
  padding:6px 14px;border-radius:999px;
  border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);
  transition:background .15s,color .15s,border-color .15s;
}
.chip:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* ---------- featured ---------- */
.featured{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:0;margin:26px 0 8px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-md);
}
.featured .shot{position:relative;background:var(--panel)}
.featured .shot img{width:100%;height:100%;object-fit:cover;object-position:left top;aspect-ratio:16/11;display:block}
.featured .body{padding:32px 34px}
.featured h2{
  font-family:var(--serif);font-size:clamp(21px,2.4vw,27px);line-height:1.4;
  margin:0 0 12px;font-weight:700;
}
.featured h2 a:hover{color:var(--accent-ink)}
.featured p{margin:0 0 18px;color:var(--ink-2);font-size:15px}
.badge{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11.5px;font-weight:700;letter-spacing:.08em;
  color:var(--accent-ink);background:var(--accent-soft);
  padding:4px 10px;border-radius:5px;margin-bottom:14px;
}
.byline{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.avatar{
  width:28px;height:28px;border-radius:50%;background:var(--accent-soft);
  color:var(--accent-ink);font-size:12px;font-weight:700;
  display:grid;place-items:center;font-family:var(--serif);
}
.dot{opacity:.45}

/* ---------- card grid ---------- */
.grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 24px;
  padding:34px 0 8px;list-style:none;margin:0;
}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:var(--shadow-sm);
  transition:border-color .18s,transform .18s,box-shadow .18s;
}
.card:hover{border-color:var(--line-2);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.card .thumb{aspect-ratio:16/10;background:var(--panel);overflow:hidden;position:relative}
.card .thumb::after{
  content:"";position:absolute;inset:auto 0 0 0;height:1px;
  background:linear-gradient(90deg,var(--accent),transparent 70%);opacity:.85;
}
.card .thumb img{width:100%;height:100%;object-fit:cover;object-position:left top;display:block}
/* 兜底：万一某张图缺失，也不会退回到「一个词浮在浅色块上」那种半成品观感 */
.thumb.glyph{display:grid;place-items:center;background:var(--panel)}
.thumb.glyph span{
  font-family:var(--serif);font-size:38px;font-weight:700;
  color:#5fd6bc;opacity:.75;letter-spacing:.08em;
}
.card .body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.tag{
  display:inline-block;align-self:flex-start;
  font-size:11px;font-weight:700;letter-spacing:.09em;
  color:var(--accent-ink);background:var(--accent-soft);
  padding:4px 9px;border-radius:4px;margin-bottom:11px;
}
.card h3{
  font-family:var(--serif);font-size:18.5px;line-height:1.48;margin:0 0 10px;font-weight:700;
  color:var(--ink);letter-spacing:-.005em;
}
.card h3 a:hover{color:var(--accent-ink)}
.card p{margin:0 0 16px;font-size:14px;color:var(--ink-2);flex:1}
.card .meta{
  font-size:12.5px;color:var(--muted);
  display:flex;gap:9px;align-items:center;
  padding-top:12px;border-top:1px solid var(--line);
  font-variant-numeric:tabular-nums;
}

/* ---------- tools strip ---------- */
.tools{
  margin:44px 0 0;padding:28px 30px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
}
.tools h2{font-family:var(--serif);font-size:20px;margin:0 0 6px;font-weight:700;color:var(--ink)}
.tools > p{margin:0 0 18px;font-size:14px;color:var(--muted)}
.tool-list{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;list-style:none;margin:0;padding:0;
}
.tool-list a,.tool-list .off{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;border:1px solid var(--line);border-radius:9px;
  font-size:14px;background:var(--bg);
  transition:border-color .15s,color .15s;
}
.tool-list a:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.tool-list .off{color:var(--muted);opacity:.75}
.tool-list .k{
  width:24px;height:24px;flex:none;border-radius:6px;
  background:var(--accent-soft);color:var(--accent-ink);
  display:grid;place-items:center;font-size:12px;font-weight:700;
}

/* ---------- pagination ---------- */
.pager{display:flex;justify-content:center;align-items:center;gap:6px;padding:44px 0 8px}
.pager a,.pager span{
  min-width:38px;height:38px;padding:0 12px;
  display:grid;place-items:center;border-radius:8px;
  font-size:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);
  font-variant-numeric:tabular-nums;
}
.pager a:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.pager .cur{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.pager .gap{border:0;background:none;color:var(--muted)}

/* ---------- footer ---------- */
.site-foot{
  margin-top:60px;padding:34px 0 46px;
  border-top:1px solid var(--line);background:var(--surface);
  font-size:13.5px;color:var(--muted);
}
.foot-grid{display:flex;flex-wrap:wrap;gap:26px 48px;justify-content:space-between}
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.foot-nav a:hover{color:var(--accent-ink)}
.disclose{max-width:62ch;margin:20px 0 0;line-height:1.65}
.disclose a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .wrap,.wrap-narrow{padding:0 18px}
  .site-head .wrap{gap:16px}
  .nav{gap:16px;font-size:13.5px}
  .featured{grid-template-columns:1fr}
  .featured .shot img{aspect-ratio:16/9}
  .featured .body{padding:24px 22px}
  .grid{grid-template-columns:1fr;gap:20px}
  .tools{padding:22px 20px}
  .prose table{font-size:14px}
  .prose th,.prose td{padding:9px 8px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- article page ---------- */
.art-head{padding:14px 0 28px;border-bottom:1px solid var(--line)}
.art-head h1{
  font-family:var(--serif);font-size:clamp(27px,4.4vw,40px);line-height:1.32;
  margin:0 0 16px;letter-spacing:-.01em;font-weight:700;
}
.art-lede{margin:0 0 22px;font-size:17.5px;color:var(--ink-2);max-width:60ch}
.art-byline{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--muted);flex-wrap:wrap}

.toc{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 24px;margin:32px 0 4px;
}
.toc .k{
  display:block;font-size:12px;letter-spacing:.1em;font-weight:700;
  color:var(--accent-ink);margin-bottom:10px;
}
.toc ol{margin:0;padding-left:1.3em;font-size:14.5px}
.toc li{margin:5px 0}
.toc a{color:var(--ink-2)}
.toc a:hover{color:var(--accent-ink)}

.prose figure{margin:0 0 26px}
.prose figure img{
  border:1px solid var(--line);border-radius:9px;background:var(--surface-2);
}
.prose figcaption{margin-top:9px;font-size:13px;color:var(--muted);line-height:1.6}

.callout.warn{border-left-color:#b4562a}
.callout.warn .k{color:#b4562a}
@media (prefers-color-scheme:dark){
  .callout.warn{border-left-color:#e08a5c}
  .callout.warn .k{color:#e08a5c}
}

.srcnote{
  font-size:13px;color:var(--muted);line-height:1.65;
  border-top:1px solid var(--line);padding-top:16px;margin:30px 0 0;
}
.srcnote b{color:var(--ink-2);font-weight:600}

.related{margin:52px 0 0;padding-top:30px;border-top:1px solid var(--line)}
.related h2{font-family:var(--serif);font-size:20px;margin:0 0 16px;font-weight:700}
.related ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.related a{
  display:block;padding:14px 16px;background:var(--surface);
  border:1px solid var(--line);border-radius:9px;font-size:15px;
  transition:border-color .15s;
}
.related a:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.related .t{font-size:12px;color:var(--muted);display:block;margin-bottom:3px}

.prose td.num,.prose th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.prose tr.bad td{background:color-mix(in srgb,#b4562a 8%,transparent)}

/* .prose a 的下划线/配色会盖过 .btn（选择器权重更高），按钮需显式复位 */
.prose a.btn{color:var(--on-accent);text-decoration:none}
.prose a.btn.btn-ghost{color:var(--accent-ink)}
.prose .btn-wrap{margin:26px 0 6px}

/* ---------- 文章首图（数据面板）与图表配图 ---------- */
.lead{
  margin:26px 0 0;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;background:var(--panel);box-shadow:var(--shadow-md);
}
.lead img{width:100%;height:auto;display:block;aspect-ratio:16/10;object-fit:cover}
.lead figcaption{
  padding:12px 18px;font-size:13px;color:var(--muted);line-height:1.6;
  background:var(--surface);border-top:1px solid var(--line);
}
.prose figure.chart img{background:var(--panel);border-color:var(--line)}

/* ---------- 区块标题的强调标记 ---------- */
.cat-head,.page-head,.art-head{position:relative}
.eyebrow{
  padding-left:16px;position:relative;
}
.eyebrow::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:8px;height:8px;border-radius:2px;background:var(--accent);
}

/* ---------- 让 callout / tools / toc 有实体感 ---------- */
.callout{box-shadow:var(--shadow-sm)}
.tools{box-shadow:var(--shadow-sm)}
.toc{box-shadow:var(--shadow-sm)}
.related a{box-shadow:var(--shadow-sm)}
.path{box-shadow:var(--shadow-sm)}

/* ---------- 表格：斑马纹 + 更清晰的表头 ---------- */
.prose tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.prose th{border-bottom:2px solid var(--line-2)}

/* ---------- 语言切换 ---------- */
.nav .lang{
  margin-left:6px;padding:3px 11px;border-radius:999px;
  border:1px solid var(--line-2);border-bottom-color:var(--line-2);
  font-size:13px;color:var(--ink-2);
}
.nav .lang:hover{
  border-color:var(--accent-ink);border-bottom-color:var(--accent-ink);
  color:var(--accent-ink);background:var(--accent-soft);
}
@media (max-width:760px){.nav .lang{margin-left:2px;padding:2px 9px;font-size:12.5px}}

/* ---------- 首屏转化区（形态 A：去链留码 · 0 交易所直链） ---------- */
.invite{
  margin:0 0 22px;padding:16px 18px;
  background:var(--surface);border:1px solid var(--line-2);
  border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;
  box-shadow:var(--shadow-sm);
}
.invite-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.invite-k{font-size:12.5px;letter-spacing:.1em;font-weight:700;color:var(--accent-ink)}
.invite-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:24px;font-weight:700;letter-spacing:.08em;color:var(--ink);
  background:var(--surface-2);padding:4px 12px;border-radius:7px;
  user-select:all;
}
.invite-copy{
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;
  padding:7px 15px;border-radius:8px;
  background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);
  transition:opacity .15s;
}
.invite-copy:hover{opacity:.88}
.invite-copy[data-done="1"]{background:var(--surface);color:var(--accent-ink)}
.invite-benefit{margin:12px 0 0;font-size:14px;color:var(--ink-2);line-height:1.6}
.invite-note{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.6}
@media (max-width:760px){
  .invite{padding:14px 15px;margin-bottom:18px}
  .invite-code{font-size:21px}
  .invite-copy{padding:6px 13px}
}
