/* banxian.ai — 朱墨新符（唯一真源: brand/final/VISUAL-SPEC.md） */
:root {
  --paper:#F4EDDF; --surface:#FAF6EC; --ink:#1C1A17; --ink-soft:#6B6459;
  --vermilion:#C93A2E; --bamboo:#4A7C59; --azurite:#2F5D7C; --hairline:#D6CEBF;
}
@media (prefers-color-scheme: dark) {
  :root { --paper:#1C1A17; --surface:#262320; --ink:#F4EDDF; --ink-soft:#A89F90;
    --vermilion:#D9503F; --bamboo:#5C906B; --azurite:#4A7DA0; --hairline:#3A362F; }
}
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  line-height:1.75; }
h1,h2,h3,.seal,.bigseal,.name,.fk { font-family:"Songti SC","STSong","SimSun",serif; }
a { color:var(--azurite); text-decoration:none; }
a:hover { text-decoration:underline; }
a:focus-visible { outline:2px solid var(--vermilion); outline-offset:2px; }
.muted { color:var(--ink-soft); font-size:13px; }

/* nav */
.nav { display:flex; justify-content:space-between; align-items:center;
  max-width:960px; margin:0 auto; padding:18px 20px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); }
.brand:hover { text-decoration:none; }
.seal { display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; background:var(--vermilion); color:#F4EDDF;
  font-size:21px; font-weight:900; border-radius:8px; }
.seal.sm { width:28px; height:28px; font-size:15px; border-radius:6px;
  vertical-align:-7px; margin-right:8px; }
.name { font-weight:900; font-size:19px; }
.name small { color:var(--ink-soft); font-weight:400; font-size:12px;
  letter-spacing:.12em; margin-left:2px; }
.links a { color:var(--ink-soft); margin-left:18px; font-size:14px; }

/* hero */
.hero { text-align:center; padding:64px 20px 48px; }
.bigseal { width:96px; height:96px; margin:0 auto 20px; background:var(--vermilion);
  color:#F4EDDF; font-size:58px; font-weight:900; border-radius:20px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 40px color-mix(in srgb, var(--vermilion) 30%, transparent);
  transform:rotate(-3deg); }
.hero h1 { font-size:52px; font-weight:900; margin:0 0 4px; letter-spacing:.06em; }
.tagline { font-family:"Songti SC",serif; font-size:20px; color:var(--vermilion);
  margin:0 0 14px; letter-spacing:.2em; }
.sub { color:var(--ink-soft); font-size:15.5px; max-width:34em; margin:0 auto; }
.sub .en { font-size:12.5px; letter-spacing:.03em; }
.cta { margin-top:28px; }
.badge { display:inline-flex; flex-direction:column; gap:1px; align-items:center;
  border:1.5px solid var(--ink); border-radius:14px; padding:10px 26px;
  font-weight:700; font-size:16px; }
.badge small { font-weight:400; font-size:11px; color:var(--ink-soft);
  letter-spacing:.08em; }

/* features */
.feats { max-width:960px; margin:24px auto 0; padding:0 20px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.feat { background:var(--surface); border:1px solid var(--hairline);
  border-radius:16px; padding:22px 22px 18px; }
.fk { display:inline-block; color:#F4EDDF; background:var(--vermilion);
  font-weight:900; font-size:13px; padding:3px 10px; border-radius:7px;
  letter-spacing:.3em; text-indent:.3em; margin-bottom:12px; }
.feat h2 { font-size:19px; margin:0 0 8px; }
.feat p { margin:0; font-size:14px; color:var(--ink-soft); }

/* honesty strip */
.honest { max-width:960px; margin:36px auto 8px; padding:0 20px; }
.honest p { border-left:4px solid var(--vermilion); background:var(--surface);
  border-radius:0 14px 14px 0; padding:16px 20px; font-size:14px;
  color:var(--ink-soft); margin:0; }

/* doc pages (legal/support) */
.doc { max-width:760px; margin:12px auto 40px; padding:0 20px; }
.doc h1 { font-size:30px; text-wrap:balance; }
.doc h2 { font-size:20px; margin-top:36px; border-left:4px solid var(--vermilion);
  padding-left:12px; }
.doc h3 { font-size:16px; margin-top:24px; }
.doc blockquote { margin:16px 0; padding:12px 18px; background:var(--surface);
  border-left:4px solid var(--bamboo); border-radius:0 12px 12px 0;
  color:var(--ink-soft); font-size:14px; }
.doc table { border-collapse:collapse; width:100%; font-size:13.5px;
  display:block; overflow-x:auto; }
.doc th,.doc td { border:1px solid var(--hairline); padding:8px 12px;
  text-align:left; vertical-align:top; }
.doc th { background:var(--surface); }
.doc hr { border:none; border-top:1px solid var(--hairline); margin:28px 0; }
.langswitch { text-align:right; font-size:13px; margin-top:8px; }

/* footer */
.foot { border-top:1px solid var(--hairline); margin-top:56px; padding:26px 20px 40px; }
.footin { max-width:960px; margin:0 auto; display:flex; gap:24px;
  justify-content:space-between; flex-wrap:wrap; font-size:14px; }
.footin a { color:var(--ink-soft); }

@media (max-width:720px) {
  .feats { grid-template-columns:1fr; }
  .hero h1 { font-size:40px; }
  .footin { flex-direction:column; }
}
