/* =========================================================
   A7验证 · 首页改版
   方向：清新柑橘 · 精准（Fresh Citrus / Precision）
   ========================================================= */
:root{
  /* 画布与墨色 */
  --paper:        #FBFAF6;   /* 暖白纸感 */
  --paper-2:      #F4F2E9;   /* 交替区块 */
  --paper-3:      #EFEDE2;   /* 卡片底 */
  --ink:          #16201B;   /* 近黑墨绿（正文）*/
  --ink-soft:     #4C564F;   /* 次级文字 */
  --ink-faint:    #8A938C;   /* 辅助/占位 */
  --line:         #E3E0D4;   /* 描边 */
  --line-strong:  #D2CEBE;

  /* 品牌：柠檬 / 青柠 */
  --lime:         #84CC16;   /* 主色 */
  --lime-deep:    #4D7C0F;   /* 主色深（文字/描边）*/
  --lime-bright:  #A3E635;   /* 高亮 */
  --lemon:        #FDE047;   /* 柔和柠檬黄（强调底）*/
  --lemon-soft:   #FEF9C3;

  /* 深色面板（API / 代码）*/
  --panel:        #0F1B16;
  --panel-2:      #16271F;
  --panel-line:   #243a2f;

  /* 语义 */
  --ok:           #16A34A;
  --warn:         #D97706;
  --err:          #DC2626;
  --info:         #0E7490;

  /* 字体 */
  --f-display: "Space Grotesk","Noto Sans SC",system-ui,sans-serif;
  --f-body:    "Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:    "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* 间距（8pt 体系）*/
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s20:80px; --s24:96px;

  /* 圆角 */
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px;

  /* 阴影 */
  --sh-1: 0 1px 2px rgba(22,32,27,.06);
  --sh-2: 0 6px 18px -6px rgba(22,32,27,.12);
  --sh-3: 0 18px 40px -16px rgba(22,32,27,.20);
  --sh-lime: 0 12px 28px -10px rgba(132,204,22,.45);

  /* 动效 */
  --ease: cubic-bezier(.22,1,.36,1);     /* ease-out-quart */
  --t-fast: .18s var(--ease);
  --t:     .32s var(--ease);
}

*{box-sizing:border-box;margin:0;padding:0}
html{font-size:18px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--f-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--s5)}
.eyebrow{
  font-family:var(--f-mono);font-size:.76rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--lime-deep);
  display:inline-flex;align-items:center;gap:var(--s2);
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--lime);border-radius:2px}
h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.section{padding:var(--s24) 0}
.section--alt{background:var(--paper-2)}
.lede{color:var(--ink-soft);font-size:1.15rem;max-width:60ch}
.section-head{max-width:62ch;margin-bottom:var(--s12)}
.section-head h2{font-size:clamp(1.9rem,4vw,2.8rem);margin:var(--s3) 0 var(--s4)}
.center{text-align:center;margin-left:auto;margin-right:auto}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  font-family:var(--f-body);font-weight:700;font-size:1rem;
  padding:var(--s3) var(--s6);border-radius:999px;border:1.5px solid transparent;
  cursor:pointer;transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),color var(--t-fast);
  white-space:nowrap;
}
.btn:focus-visible{outline:2px solid var(--lime-deep);outline-offset:3px}
.btn--primary{background:var(--lime);color:#10240a;box-shadow:var(--sh-lime)}
.btn--primary:hover{background:var(--lime-bright);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--lime-deep);color:var(--lime-deep);transform:translateY(-2px)}
.btn--dark{background:var(--ink);color:#F4F2E9}
.btn--dark:hover{background:#22302a;transform:translateY(-2px)}

/* ---------- 顶栏 ---------- */
.a7p-nav{position:sticky;top:0;z-index:50;background:rgba(251,250,246,.82);
  backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;
  transition:border-color var(--t),box-shadow var(--t)}
.a7p-nav.scrolled{border-color:var(--line);box-shadow:var(--sh-1)}
.a7p-nav__in{display:flex;align-items:center;gap:var(--s6);height:68px}
.a7p-brand{display:flex;align-items:center;gap:var(--s3);font-family:var(--f-display);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;color:var(--ink)}
.a7p-brand__mark{width:34px;height:34px;flex:none}
.a7p-brand__logo{width:200px;height:60px;flex:none}
.a7p-nav__links{display:flex;gap:var(--s2);margin-left:var(--s4);align-items:center}
.a7p-nav__links>a{font-size:1rem;color:var(--ink-soft);padding:var(--s2) var(--s3);border-radius:999px;transition:color var(--t-fast),background var(--t-fast)}
.a7p-nav__links>a:hover{color:var(--ink);background:var(--paper-3)}
.a7p-nav__links>a[aria-current="page"]{color:var(--lime-deep);background:var(--lemon-soft)}
.a7p-nav-drop{position:relative}
.a7p-nav-drop>a{display:inline-flex;align-items:center;gap:5px;font-size:1rem;color:var(--ink-soft);padding:var(--s2) var(--s3);border-radius:999px;cursor:pointer}
.a7p-nav-drop>a:hover{color:var(--ink);background:var(--paper-3)}
.a7p-nav-drop .caret{width:14px;height:14px;transition:transform var(--t-fast)}
.a7p-nav-drop:hover .caret,.a7p-nav-drop:focus-within .caret{transform:rotate(180deg)}
.a7p-nav-menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(8px);
  min-width:222px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--sh-3);padding:var(--s2);opacity:0;visibility:hidden;transition:opacity var(--t-fast),transform var(--t-fast),visibility var(--t-fast);z-index:60}
.a7p-nav-drop:hover .a7p-nav-menu,.a7p-nav-drop:focus-within .a7p-nav-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.a7p-nav-menu a{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-sm);color:var(--ink-soft);font-size:1rem;font-weight:600;transition:background var(--t-fast),color var(--t-fast)}
.a7p-nav-menu a:hover{background:var(--paper-3);color:var(--ink)}
.a7p-nav-menu .d-ico{width:30px;height:30px;border-radius:9px;background:var(--lemon-soft);color:var(--lime-deep);display:flex;align-items:center;justify-content:center;flex:none}
.a7p-nav-menu .d-text{display:flex;flex-direction:column;line-height:1.3}
.a7p-nav-menu .d-name{font-weight:600;color:var(--ink)}
.a7p-nav-menu .d-sub{font-size:.8rem;color:var(--ink-faint);font-weight:400}
.a7p-nav__cta{margin-left:auto;display:flex;align-items:center}

/* ---------- Hero ---------- */
.hero{position:relative;padding:var(--s20) 0 var(--s16);overflow:hidden}
.hero__glow{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero__glow::before,.hero__glow::after{content:"";position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}
.hero__glow::before{width:520px;height:520px;background:radial-gradient(circle,rgba(163,230,53,.55),transparent 70%);top:-160px;right:-120px}
.hero__glow::after{width:420px;height:420px;background:radial-gradient(circle,rgba(253,224,71,.35),transparent 70%);bottom:-180px;left:-120px}
.hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s12);align-items:center}
.hero h1{font-size:clamp(2.4rem,5.4vw,4rem);margin:var(--s5) 0 var(--s5)}
.hero h1 .hl{color:var(--lime-deep);position:relative;white-space:nowrap}
.hero h1 .hl::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.34em;background:var(--lemon-soft);z-index:-1;border-radius:4px}
.hero__sub{font-size:1.12rem;color:var(--ink-soft);max-width:46ch;margin-bottom:var(--s8)}
.hero__actions{display:flex;gap:var(--s3);flex-wrap:wrap}
.hero__note{margin-top:var(--s6);font-size:.85rem;color:var(--ink-faint);display:flex;align-items:center;gap:var(--s2)}
.hero__note svg{flex:none}
.hero__login{margin-top:var(--s4);font-size:.92rem;display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.hero__login .lbl{color:var(--ink-faint)}
.hero__login a{display:inline-flex;align-items:center;gap:.35rem;color:var(--lime-deep);font-weight:600;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}
.hero__login a:hover{border-color:var(--lime-deep)}
.hero__login .sep{color:var(--ink-faint)}

/* 授权卡 mock */
.authcard{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-3);padding:var(--s6);position:relative;
}
.authcard__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s5)}
.authcard__app{display:flex;align-items:center;gap:var(--s3)}
.authcard__icon{width:42px;height:42px;border-radius:12px;background:var(--lemon-soft);display:flex;align-items:center;justify-content:center}
.authcard__name{font-weight:700;font-size:.98rem}
.authcard__meta{font-size:.78rem;color:var(--ink-faint);font-family:var(--f-mono)}
.badge-ok{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--ok);background:#e7f6ec;padding:5px 10px;border-radius:999px}
.badge-ok .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(22,163,74,.5);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.5)}70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.authcard__rows{display:grid;gap:var(--s3);margin:var(--s2) 0 var(--s5)}
.arow{display:flex;align-items:center;justify-content:space-between;font-size:.9rem;padding-bottom:var(--s3);border-bottom:1px dashed var(--line)}
.arow span:first-child{color:var(--ink-soft)}
.arow span:last-child{font-family:var(--f-mono);font-weight:500}
.heart{display:flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.82rem;color:var(--ink-soft)}
.heart svg{width:16px;height:16px}
.heart .beat{color:var(--lime-deep);animation:beat 1.1s var(--ease) infinite}
@keyframes beat{0%,100%{transform:scale(1)}30%{transform:scale(1.35)}}
.authcard__bars{display:flex;align-items:flex-end;gap:6px;height:46px;margin-top:var(--s4)}
.authcard__bars i{flex:1;background:linear-gradient(var(--lime-bright),var(--lime));border-radius:4px 4px 2px 2px;opacity:.85;animation:grow 1.4s var(--ease) both}
.authcard__bars i:nth-child(1){height:40%}
.authcard__bars i:nth-child(2){height:65%}
.authcard__bars i:nth-child(3){height:50%}
.authcard__bars i:nth-child(4){height:85%}
.authcard__bars i:nth-child(5){height:70%}
.authcard__bars i:nth-child(6){height:100%}
.authcard__bars i:nth-child(7){height:60%}
@keyframes grow{from{transform:scaleY(0);transform-origin:bottom}to{transform:scaleY(1)}}

/* 信任条 */
.trust{position:relative;z-index:1;margin-top:var(--s14);display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);justify-content:center;align-items:center}
.chip{display:inline-flex;align-items:center;gap:var(--s2);font-size:.86rem;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);padding:var(--s2) var(--s4);border-radius:999px}
.chip svg{flex:none;color:var(--lime-deep)}

/* ---------- 功能 Bento ---------- */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s4)}
.bento .card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s6);transition:transform var(--t),box-shadow var(--t),border-color var(--t);position:relative;overflow:hidden}
.bento .card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--line-strong)}
.bento .card .ico{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--lemon-soft);color:var(--lime-deep);margin-bottom:var(--s4)}
.bento .card h3{font-size:1.18rem;margin-bottom:var(--s2)}
.bento .card p{color:var(--ink-soft);font-size:.94rem}
.bento .card .tag{position:absolute;top:var(--s5);right:var(--s5);font-family:var(--f-mono);font-size:.7rem;color:var(--ink-faint)}
.span3{grid-column:span 3}.span2{grid-column:span 2}.span4{grid-column:span 4}.span6{grid-column:span 6}
.card--feature{background:linear-gradient(155deg,var(--ink),#1d2c24);border-color:transparent;color:#F4F2E9}
.card--feature .ico{background:rgba(163,230,53,.16);color:var(--lime-bright)}
.card--feature h3{color:#fff}
.card--feature p{color:#c7d0c9}
.card--feature .hl-num{font-family:var(--f-display);font-weight:700;font-size:2.6rem;color:var(--lime-bright);line-height:1;margin:var(--s2) 0 var(--s3)}
.card--feature .sub{font-size:.86rem;color:#9fae9f;font-family:var(--f-mono)}

/* ---------- 接入流程 ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6) var(--s10);counter-reset:step;margin-top:var(--s8)}
.step{position:relative;padding:var(--s5) var(--s4) var(--s6);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow var(--t),transform var(--t)}
.step:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.step__head{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.step__no{flex:none;width:40px;height:40px;border-radius:50%;background:var(--lemon-soft);color:var(--lime-deep);display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:700;font-size:1.1rem;line-height:1}
.step::before{display:none}
.step h3{font-size:1.15rem;margin-bottom:var(--s2);color:var(--ink)}
.step p{color:var(--ink-soft);font-size:.92rem;line-height:1.65}
.step::after{display:none}
.step__num{width:54px;height:54px;border-radius:50%;background:var(--lime);color:#10240a;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:700;font-size:1.3rem;margin-bottom:var(--s5);position:relative;z-index:1;box-shadow:var(--sh-lime)}

.step code{font-family:var(--f-mono);font-size:.82rem;background:var(--paper-3);padding:2px 7px;border-radius:6px;color:var(--lime-deep)}

/* ---------- API 预览 ---------- */
.api{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--s12);align-items:center}
.api__copy h2{font-size:clamp(1.9rem,3.6vw,2.6rem);margin:var(--s3) 0 var(--s4)}
.api__points{list-style:none;margin-top:var(--s6);display:grid;gap:var(--s4)}
.api__points li{display:flex;gap:var(--s3);align-items:flex-start;font-size:.96rem;color:var(--ink-soft)}
.api__points svg{flex:none;color:var(--lime-deep);margin-top:3px}
.code{background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-3)}
.code__bar{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--panel-line)}
.code__dot{width:11px;height:11px;border-radius:50%}
.code__dot.r{background:#ff5f56}.code__dot.y{background:#fde047}.code__dot.g{background:#27c93f}
.code__file{margin-left:var(--s3);font-family:var(--f-mono);font-size:.8rem;color:#8aa294}
.code__tabs{display:flex;gap:2px;margin-left:auto}
.code__tab{font-family:var(--f-mono);font-size:.76rem;color:#8aa294;background:transparent;border:1px solid transparent;padding:4px 10px;border-radius:8px;cursor:pointer;transition:all var(--t-fast)}
.code__tab[aria-selected="true"]{color:#0F1B16;background:var(--lime-bright)}
.code__body{padding:var(--s5) var(--s5) var(--s6);overflow-x:auto}
.code__body pre{font-family:var(--f-mono);font-size:.84rem;line-height:1.75;color:#d7e2da;white-space:pre}
.tok-k{color:#A3E635}.tok-s{color:#9be8a0}.tok-n{color:#fde047}.tok-c{color:#5f7a6b}.tok-f{color:#82aaff}
.copy-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:.76rem;color:#8aa294;background:var(--panel-2);border:1px solid var(--panel-line);padding:5px 11px;border-radius:8px;cursor:pointer;transition:all var(--t-fast)}
.copy-btn:hover{color:#fff;border-color:#3a5a47}
.copy-btn.done{color:var(--lime-bright);border-color:var(--lime-deep)}

/* ---------- 深度解析 ---------- */
.deep{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5)}
.dcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s6);transition:box-shadow var(--t),transform var(--t)}
.dcard:hover{box-shadow:var(--sh-2);transform:translateY(-3px)}
.dcard__idx{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;color:var(--lime-deep);margin-bottom:var(--s3)}
.dcard h3{font-size:1.22rem;margin-bottom:var(--s3);line-height:1.3}
.dcard p{color:var(--ink-soft);font-size:.94rem}
.dcard strong{color:var(--ink);font-weight:700}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--ink),#1b2a22);border-radius:var(--r-xl);padding:var(--s16) var(--s12);text-align:center;color:#F4F2E9;box-shadow:var(--sh-3)}
.cta::before{content:"";position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(163,230,53,.35),transparent 70%);top:-140px;right:-80px;filter:blur(40px)}
.cta h2{color:#fff;font-size:clamp(1.9rem,4vw,2.8rem);position:relative}
.cta p{color:#c7d0c9;max-width:48ch;margin:var(--s4) auto var(--s8);position:relative}
.cta .hero__actions{justify-content:center;position:relative}

/* ---------- 页脚 ---------- */
.footer{background:var(--paper-2);border-top:1px solid var(--line);padding:var(--s16) 0 var(--s8)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s8)}
.footer__brand p{color:var(--ink-soft);font-size:.9rem;max-width:34ch;margin-top:var(--s4)}
.footer h4{font-family:var(--f-display);font-size:.86rem;letter-spacing:.04em;margin-bottom:var(--s4)}
.footer ul{list-style:none;display:grid;gap:var(--s3)}
.footer ul a{color:var(--ink-soft);font-size:.9rem;transition:color var(--t-fast)}
.footer ul a:hover{color:var(--lime-deep)}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s12);padding-top:var(--s6);border-top:1px solid var(--line)}
.footer__bottom small{color:var(--ink-faint);font-size:.82rem}

/* ---------- 揭示动画 ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- 响应式 ---------- */
@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr;gap:var(--s10)}
  .authcard{max-width:440px}
  .api{grid-template-columns:1fr;gap:var(--s8)}
  .bento{grid-template-columns:repeat(2,1fr)}
  .span3,.span4,.span2,.span6{grid-column:span 1}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .a7p-nav__links{display:none}
  .a7p-nav__burger{display:block}
  .a7p-nav.open .a7p-nav__links{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--line);padding:var(--s4) var(--s5);gap:var(--s1);box-shadow:var(--sh-2);margin-left:0}
  .a7p-nav.open .a7p-nav__links a{padding:var(--s3)}
  .a7p-nav.open .a7p-nav-drop{position:static}
  .a7p-nav.open .a7p-nav-menu{position:static;transform:none;border:none;box-shadow:none;background:transparent;opacity:1;visibility:visible;padding:0 0 0 var(--s4);min-width:0}
  .a7p-nav.open .a7p-nav-menu a{padding:var(--s3) var(--s2)}
  .a7p-nav-drop>a{width:100%}
}
@media (max-width:720px){
  .steps{grid-template-columns:1fr;gap:var(--s8)}
  .step::after{display:none}
  .deep{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr}
  .span3,.span4,.span2,.span6{grid-column:span 1}
  .section{padding:var(--s16) 0}
  .cta{padding:var(--s12) var(--s6)}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:460px){
  .footer__grid{grid-template-columns:1fr}
  .hero__actions .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- 内页通用（栏目页 / 博客） ---------- */
.page-hero{position:relative;padding:var(--s20) 0 var(--s10);background:var(--paper-2);border-bottom:1px solid var(--line);overflow:hidden}
.page-hero__glow{position:absolute;inset:0;pointer-events:none}
.page-hero__glow::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(163,230,53,.4),transparent 70%);top:-160px;right:-100px;filter:blur(80px)}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-size:clamp(2rem,4.4vw,3.2rem);margin:var(--s5) 0 var(--s4)}
.page-hero .lede{font-size:1.12rem;max-width:62ch}
.breadcrumb{display:flex;align-items:center;gap:var(--s2);font-size:.86rem;color:var(--ink-faint);margin-bottom:var(--s4)}
.breadcrumb a{color:var(--ink-soft);transition:color var(--t-fast)}
.breadcrumb a:hover{color:var(--lime-deep)}
.breadcrumb svg{flex:none}

/* 正文排版（博客 / 解析） */
.prose{max-width:72ch;color:var(--ink-soft);font-size:1.05rem;line-height:1.85}
.prose h2{font-family:var(--f-display);font-size:clamp(1.5rem,3vw,2rem);margin:var(--s12) 0 var(--s4);color:var(--ink);line-height:1.2}
.prose h3{font-family:var(--f-display);font-size:1.25rem;margin:var(--s8) 0 var(--s3);color:var(--ink)}
.prose p{margin-bottom:var(--s5)}
.prose ul,.prose ol{margin:0 0 var(--s5) var(--s5);color:var(--ink-soft)}
.prose li{margin-bottom:var(--s2)}
.prose strong{color:var(--ink);font-weight:700}
.prose a{color:var(--lime-deep);text-decoration:underline;text-underline-offset:3px}
.prose code{font-family:var(--f-mono);font-size:.9em;background:var(--paper-3);padding:2px 6px;border-radius:6px;color:var(--lime-deep)}
.prose .lead{font-size:1.18rem;color:var(--ink);font-weight:500}

/* 博客列表 */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.post-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s6);transition:transform var(--t),box-shadow var(--t),border-color var(--t);display:flex;flex-direction:column;gap:var(--s3);text-decoration:none;color:inherit}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--line-strong)}
.post-card .cat{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lime-deep)}
.post-card h3{font-size:1.22rem;line-height:1.3;font-family:var(--f-display);font-weight:700;color:var(--ink)}
.post-card p{color:var(--ink-soft);font-size:.92rem}
.post-card .meta{font-size:.8rem;color:var(--ink-faint);margin-top:auto;padding-top:var(--s3);display:flex;gap:var(--s3);flex-wrap:wrap}
.tag{display:inline-block;font-family:var(--f-mono);font-size:.72rem;color:var(--lime-deep);background:var(--lemon-soft);padding:3px 10px;border-radius:999px}
.post-hero{position:relative;padding:var(--s20) 0 var(--s10);background:var(--paper-2);border-bottom:1px solid var(--line)}
.post-hero .meta{display:flex;gap:var(--s4);flex-wrap:wrap;font-size:.86rem;color:var(--ink-faint);margin-top:var(--s4);align-items:center}
.post-hero .meta .cat{color:var(--lime-deep)}
@media (max-width:860px){
  .blog-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .blog-grid{grid-template-columns:1fr}
}

/* ---------- 代码块（博客） ---------- */
.codeblock{background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--r-md);overflow:hidden;margin:var(--s5) 0}
.codeblock__bar{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--panel-line)}
.codeblock__bar .dot{width:11px;height:11px;border-radius:50%;background:#2c4636}
.codeblock__bar .dot:nth-child(2){background:#3a5a44}
.codeblock__bar .dot:nth-child(3){background:#4a7058}
.codeblock__bar .fname{font-family:var(--f-mono);font-size:.78rem;color:#7fa98c;margin-left:var(--s2)}
.codeblock pre{margin:0;padding:var(--s5);overflow:auto;font-family:var(--f-mono);font-size:.86rem;line-height:1.7;color:#cfe8d4}
.codeblock pre .tok-c{color:#6f9c7a}
.codeblock pre .tok-s{color:#a3e635}
.codeblock pre .tok-k{color:#84cc16;font-weight:600}
.codeblock pre .tok-n{color:#fde047}

/* ---------- CTA 带 ---------- */
.cta-band{background:linear-gradient(135deg,var(--lime) 0%,var(--lime-bright) 100%);border-radius:var(--r-lg);padding:var(--s12) var(--s8);text-align:center;margin:var(--s16) 0}
.cta-band h2{font-family:var(--f-display);font-size:clamp(1.6rem,3.4vw,2.4rem);color:#10240a;margin-bottom:var(--s4)}
.cta-band p{color:#1d3a12;max-width:54ch;margin:0 auto var(--s6);font-size:1.05rem}
.cta-band .btn--dark{background:#10240a;color:#F4F2E9}
.cta-band .btn--dark:hover{background:#1d3a12}
.cta-band .btn{background:#10240a;color:#F4F2E9}
.cta-band .btn:hover{background:#1d3a12}

/* 3列均等网格（栏目页等奇数卡片场景） */
.bento--3col{grid-template-columns:repeat(3,1fr);justify-items:stretch}

@media (max-width:980px){.bento--3col{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.bento--3col{grid-template-columns:1fr}}


.a7p-footer__bottom a{color:var(--ink-soft);transition:color var(--t-fast)}
.a7p-footer__bottom a:hover{color:var(--lime-deep)}
