/* VOKRIN — 讲义 / 值班板 皮
   纸底 + 粗黑细线 + 荧光记号笔标注。交易所官方色只出现在转化区。 */

:root{
  --paper:#f7f5ef;
  --paper-2:#efece2;
  --paper-3:#e5e1d4;
  --ink:#171613;
  --ink-2:#4d4941;
  --ink-3:#656152;
  --rule:#171613;
  --rule-soft:#cec8b7;
  --mark:#d9f24b;
  --mark-deep:#b9d223;
  --alarm:#b3122b;
  --alarm-soft:#f8e6e8;
  --steady:#1f5d4a;
  --steady-soft:#e2ede8;
  --gold:#f0b90b;
  --gold-deep:#c99a08;
  --gold-ink:#12161c;
  --sans:"Space Grotesk","PingFang SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  --wrap:1140px;
  --gap:clamp(1rem,2.6vw,2rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.78;
  font-feature-settings:"tnum" 0;
}
img{max-width:100%;height:auto}
a{color:var(--ink);text-underline-offset:.22em;text-decoration-thickness:1.5px}
a:hover{text-decoration-color:var(--mark-deep)}
hr{border:0;border-top:1.5px solid var(--rule);margin:2.4rem 0}

.wrap{width:min(var(--wrap),100% - 2.4rem);margin-inline:auto}
.skip-link{position:absolute;inset-inline-start:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.5rem .9rem;z-index:99}
.skip-link:focus{inset-inline-start:0}

/* ---------- 顶部常驻提示条 ---------- */
.alertbar{
  background:var(--alarm-soft);
  border-bottom:1.5px solid var(--alarm);
  font-size:.82rem;
  color:#6d1120;
}
.alertbar .wrap{display:flex;gap:.6rem;align-items:baseline;padding:.5rem 0}
.alertbar b{font-weight:700;letter-spacing:.02em;white-space:nowrap}
.alertbar span{line-height:1.5}

/* ---------- 头部 ---------- */
.masthead{border-bottom:2.5px solid var(--rule);background:var(--paper)}
.masthead .wrap{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1.2rem;
  padding:.85rem 0;
}
.wordmark{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}
.wordmark svg{display:block}
.wordmark-text{font-weight:700;font-size:1.32rem;letter-spacing:.12em;line-height:1}
.wordmark-sub{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:var(--ink-3);margin-top:.18rem}

.mainnav{display:flex;flex-wrap:wrap;gap:.15rem 1.35rem;justify-self:start}
.mainnav a{
  font-size:.93rem;font-weight:600;text-decoration:none;padding:.15rem 0;
  border-bottom:2.5px solid transparent;
}
.mainnav a:hover,.mainnav a[aria-current="page"]{border-bottom-color:var(--mark-deep)}

.langbox{position:relative}
.langbtn{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;
  background:var(--paper);border:1.5px solid var(--rule);color:var(--ink);
  padding:.32rem .6rem;cursor:pointer;text-transform:uppercase;
}
.langbtn:hover{background:var(--mark)}
.langlist{
  position:absolute;inset-inline-end:0;top:calc(100% + .4rem);
  background:var(--paper);border:1.5px solid var(--rule);
  min-width:9.5rem;padding:.3rem 0;z-index:40;display:none;
}
.langbox.open .langlist{display:block}
.langlist a{display:block;padding:.34rem .8rem;font-size:.86rem;text-decoration:none;min-height:44px;display:flex;align-items:center}
.langlist a:hover{background:var(--mark)}
.langlist a[aria-current="true"]{font-weight:700}

.navtoggle{display:none;font-family:var(--mono);font-size:.75rem;background:var(--paper);border:1.5px solid var(--rule);padding:.32rem .6rem;cursor:pointer}

/* ---------- 首屏 ---------- */
.hero{padding:2.6rem 0 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:clamp(1.4rem,3.4vw,3rem);align-items:start}
.hero-kicker{font-family:var(--mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .7rem}
.hero h1{
  font-size:clamp(1.85rem,4.4vw,2.85rem);
  line-height:1.2;letter-spacing:-.015em;margin:0 0 .9rem;font-weight:700;
}
.hero h1 em{font-style:normal;background:linear-gradient(transparent 58%,var(--mark) 58%);padding:0 .12em}
.hero-lede{font-size:1.03rem;color:var(--ink-2);margin:0 0 1.5rem;max-width:36em}

/* 编号路线（首屏左栏的行式列表，非卡片网格） */
.route{border-top:2.5px solid var(--rule);margin:0;padding:0;list-style:none}
.route li{border-bottom:1.5px solid var(--rule-soft)}
.route a{
  display:grid;grid-template-columns:3.1rem 1fr;gap:.9rem;align-items:baseline;
  padding:.72rem .2rem;text-decoration:none;
}
.route a:hover{background:var(--paper-2)}
.route .no{font-family:var(--mono);font-size:.82rem;color:var(--ink-3);letter-spacing:.06em}
.route .rt{font-weight:600;font-size:1rem;line-height:1.45}
.route .rd{display:block;font-weight:400;font-size:.86rem;color:var(--ink-3);margin-top:.14rem}

/* 转化卡（币安官方色块） */
.offer{border:2.5px solid var(--rule);background:var(--gold);color:var(--gold-ink);position:sticky;top:1rem}
.offer-head{padding:1.1rem 1.15rem .5rem}
.exchange-lockup{display:flex;align-items:center;gap:.6rem}
.exchange-wordmark{
  font-weight:700;font-size:2.05rem;line-height:1;letter-spacing:.03em;color:var(--gold-ink);
}
.exchange-note{font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:#4a3c05;margin-top:.45rem}
.offer-benefit{padding:.2rem 1.15rem .8rem;font-size:1.02rem;font-weight:600;line-height:1.45}
.offer-code{
  margin:0 1.15rem;background:var(--gold-ink);color:var(--gold);
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:.6rem;padding:.62rem .5rem .62rem .85rem;
}
.offer-code .lbl{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:#b9a75f;display:block}
.offer-code .val{font-family:var(--mono);font-size:1.45rem;font-weight:600;letter-spacing:.1em;line-height:1.15}
.copybtn{
  font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  background:var(--gold);color:var(--gold-ink);border:0;padding:.5rem .7rem;cursor:pointer;font-weight:600;
}
.copybtn:hover{background:#fff}
.copybtn[data-done="1"]{background:#fff}
.offer-foot{padding:.7rem 1.15rem 1.05rem;font-size:.73rem;line-height:1.55;color:#4a3c05}
.offer-foot p{margin:.35rem 0 0}
.offer-foot p:first-child{margin-top:0}

/* ---------- 通用分节 ---------- */
.band{padding:3rem 0}
.band-rule{border-top:2.5px solid var(--rule)}
.band-tint{background:var(--paper-2)}
.sechead{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;margin:0 0 1.4rem}
.sechead h2,.sechead h1{font-size:clamp(1.25rem,2.4vw,1.6rem);margin:0;font-weight:700;letter-spacing:-.01em}
.sechead h1{font-size:clamp(1.5rem,3.2vw,2.1rem);line-height:1.24}
.sechead .cnt{font-family:var(--mono);font-size:.76rem;color:var(--ink-3);letter-spacing:.06em}
.sechead p{margin:0;font-size:.9rem;color:var(--ink-3);flex-basis:100%;max-width:44em}

/* 索引条目：黑线分隔的行，不是等宽卡片 */
.entries{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--rule)}
.entries li{border-bottom:1.5px solid var(--rule-soft)}
.entries a{display:block;padding:.85rem .2rem;text-decoration:none}
.entries a:hover{background:var(--paper-3)}
.entries .et{font-weight:600;font-size:1.02rem;line-height:1.45;display:block}
.entries .ed{font-size:.87rem;color:var(--ink-2);margin-top:.22rem;display:block;max-width:52em}
.entries .em{font-family:var(--mono);font-size:.7rem;letter-spacing:.07em;color:var(--ink-3);margin-top:.3rem;display:block;text-transform:uppercase}

/* 工具索引：两栏带边框块 */
.toolgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:0;border-top:1.5px solid var(--rule)}
.toolgrid a{
  display:block;padding:1rem .95rem;text-decoration:none;
  border-bottom:1.5px solid var(--rule-soft);border-inline-end:1.5px solid var(--rule-soft);
}
.toolgrid a:hover{background:var(--mark)}
.toolgrid .tk{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:.3rem}
.toolgrid .tt{font-weight:600;font-size:1rem;display:block;line-height:1.4}
.toolgrid .td{font-size:.85rem;color:var(--ink-2);margin-top:.28rem;display:block}

/* 首页编辑推荐位（唯一一处指向注册教程的显眼入口） */
.pick{border:2.5px solid var(--rule);background:var(--paper);padding:1.1rem 1.15rem;display:grid;gap:.45rem}
.pick .pk{font-family:var(--mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3)}
.pick a{font-weight:700;font-size:1.1rem;line-height:1.4}
.pick p{margin:0;font-size:.9rem;color:var(--ink-2)}

/* ---------- 文章 ---------- */
.article{padding:2.2rem 0 0}
.artgrid{display:grid;grid-template-columns:minmax(0,13.5rem) minmax(0,1fr);gap:clamp(1.2rem,3vw,3rem);align-items:start}
.crumb{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-3);margin:0 0 1.1rem}
.crumb a{color:var(--ink-3)}
.arthead{margin:0 0 1.6rem}
.arthead h1{font-size:clamp(1.6rem,3.6vw,2.35rem);line-height:1.22;letter-spacing:-.015em;margin:0 0 .7rem;font-weight:700}
.deck{font-size:1.02rem;color:var(--ink-2);margin:0 0 1rem;max-width:38em}
.byline{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;color:var(--ink-3);border-top:1.5px solid var(--rule-soft);border-bottom:1.5px solid var(--rule-soft);padding:.45rem 0;display:flex;flex-wrap:wrap;gap:.3rem 1.1rem}

.toc{position:sticky;top:1rem;font-size:.86rem}
.toc h2{font-family:var(--mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .55rem;font-weight:600}
.toc ol{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--rule-soft)}
.toc li{border-bottom:1.5px solid var(--rule-soft)}
.toc a{display:block;padding:.42rem 0;text-decoration:none;color:var(--ink-2);line-height:1.4}
@media (pointer:coarse){.toc a{min-height:44px;display:flex;align-items:center}}
.toc a:hover{color:var(--ink);background:var(--paper-2)}

.prose{max-width:40em}
.prose h2{
  font-size:clamp(1.2rem,2.4vw,1.5rem);line-height:1.32;margin:2.6rem 0 .85rem;font-weight:700;letter-spacing:-.01em;
  padding-top:1.1rem;border-top:2.5px solid var(--rule);
}
.prose h3{font-size:1.06rem;margin:1.9rem 0 .6rem;font-weight:700}
.prose p{margin:0 0 1.05rem}
.prose ul,.prose ol{margin:0 0 1.15rem;padding-inline-start:1.35rem}
.prose li{margin:.34rem 0}
.prose strong{font-weight:700}
.prose em.mk{font-style:normal;background:linear-gradient(transparent 60%,var(--mark) 60%);padding:0 .1em}
.prose blockquote{margin:1.3rem 0;padding:.2rem 0 .2rem 1rem;border-inline-start:3px solid var(--mark-deep);color:var(--ink-2)}

.answer{border:1.5px solid var(--rule);border-inline-start-width:6px;background:var(--paper-2);padding:.85rem 1rem;margin:0 0 1.3rem}
.answer p{margin:0}
.answer .al{font-family:var(--mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:.3rem}

.warnbox{border:1.5px solid var(--alarm);background:var(--alarm-soft);padding:.85rem 1rem;margin:1.4rem 0;color:#6d1120}
.warnbox p{margin:0 0 .5rem}
.warnbox p:last-child{margin-bottom:0}
.warnbox .wl{font-weight:700;font-size:.86rem;letter-spacing:.02em;display:block;margin-bottom:.35rem}

.notebox{border:1.5px solid var(--rule-soft);background:var(--paper-2);padding:.85rem 1rem;margin:1.4rem 0;font-size:.95rem}
.notebox p{margin:0 0 .5rem}
.notebox p:last-child{margin-bottom:0}
.notebox .nl{font-family:var(--mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:.35rem}

.steps{list-style:none;counter-reset:st;margin:1.3rem 0;padding:0;border-top:1.5px solid var(--rule)}
.steps li{counter-increment:st;border-bottom:1.5px solid var(--rule-soft);padding:.8rem 0 .8rem 3rem;position:relative}
.steps li::before{
  content:counter(st,decimal-leading-zero);position:absolute;inset-inline-start:0;top:.85rem;
  font-family:var(--mono);font-size:.8rem;color:var(--ink-3);letter-spacing:.05em;
}
.steps b{display:block;margin-bottom:.2rem}

.tablewrap{overflow-x:auto;margin:1.4rem 0;border:1.5px solid var(--rule)}
table{border-collapse:collapse;width:100%;font-size:.9rem;background:var(--paper)}
th,td{text-align:start;padding:.55rem .7rem;border-bottom:1px solid var(--rule-soft);vertical-align:top}
thead th{background:var(--ink);color:var(--paper);font-weight:600;font-size:.82rem;letter-spacing:.03em}
tbody tr:last-child td{border-bottom:0}
td.num,th.num{font-family:var(--mono);white-space:nowrap}

figure{margin:1.6rem 0}
figure img{display:block;border:1.5px solid var(--rule);width:100%}
figcaption{font-size:.8rem;color:var(--ink-3);margin-top:.45rem;line-height:1.5}
.article-cover{margin:0 0 1.6rem}

.faq{margin:1.6rem 0 0}
.faq h3{font-size:1rem;margin:1.3rem 0 .4rem;font-weight:700}
.faq p{margin:0 0 .8rem}

.artfoot{border-top:2.5px solid var(--rule);margin-top:2.6rem;padding-top:1.2rem;font-size:.88rem;color:var(--ink-2)}
.artfoot .disc{border:1.5px solid var(--rule-soft);background:var(--paper-2);padding:.7rem .85rem;font-size:.82rem;color:var(--ink-2)}
.related{list-style:none;margin:1.2rem 0 0;padding:0;border-top:1.5px solid var(--rule-soft)}
.related li{border-bottom:1.5px solid var(--rule-soft)}
.related a{display:block;padding:.6rem .2rem;text-decoration:none;font-weight:600;font-size:.95rem}
.related a:hover{background:var(--paper-2)}

/* 正文里的「品牌 + 码」块（0 链接） */
.codeblock{border:2.5px solid var(--rule);background:var(--gold);color:var(--gold-ink);padding:.95rem 1rem;margin:1.7rem 0}
.codeblock .cbx{font-weight:700;font-size:1.5rem;letter-spacing:.03em;line-height:1;margin-bottom:.5rem;display:block}
.codeblock .cbrow{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin:.5rem 0}
.codeblock .cbcode{font-family:var(--mono);font-size:1.2rem;font-weight:600;letter-spacing:.1em;background:var(--gold-ink);color:var(--gold);padding:.32rem .6rem}
.codeblock .cbnote{font-size:.76rem;color:#4a3c05;margin:.5rem 0 0;line-height:1.55}

/* 转化直链按钮（仅转化页） */
.gobtn{
  display:inline-block;background:var(--gold-ink);color:var(--gold);
  font-weight:700;font-size:1rem;padding:.72rem 1.15rem;text-decoration:none;border:2.5px solid var(--rule);
}
.gobtn:hover{background:#000}
.golead{font-size:.78rem;color:var(--ink-3);margin:.5rem 0 0;line-height:1.55}

/* ---------- 工具页 ---------- */
.toolhead{padding:2.2rem 0 1.4rem;border-bottom:2.5px solid var(--rule)}
.toolhead h1{font-size:clamp(1.5rem,3.2vw,2.1rem);margin:0 0 .6rem;line-height:1.24;font-weight:700}
.toolhead .deck{margin-bottom:0}
.toolwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,20rem);gap:clamp(1.2rem,3vw,2.4rem);align-items:start;padding:1.8rem 0 0}
.panel{border:2.5px solid var(--rule);background:var(--paper);padding:1.1rem}
.panel h2{font-size:1.05rem;margin:0 0 .8rem;font-weight:700}
.panel legend{font-weight:700;font-size:.95rem;padding:0}
fieldset{border:0;border-top:1.5px solid var(--rule-soft);margin:1.1rem 0 0;padding:.9rem 0 0}
fieldset:first-of-type{border-top:0;margin-top:0;padding-top:0}

.checkrow{display:flex;gap:.6rem;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--rule-soft);cursor:pointer}
.checkrow:last-child{border-bottom:0}
.checkrow input{margin:.35rem 0 0;width:1.05rem;height:1.05rem;accent-color:var(--ink);flex:none}
.checkrow span{font-size:.93rem;line-height:1.55}
.checkrow small{display:block;color:var(--ink-3);font-size:.8rem;margin-top:.15rem}

.field{margin:.75rem 0}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.3rem}
.field select,.field input[type=text],.field input[type=number]{
  width:100%;font:inherit;font-size:.95rem;padding:.5rem .6rem;
  border:1.5px solid var(--rule);background:var(--paper);color:var(--ink);
}
.field select:focus,.field input:focus{outline:2.5px solid var(--mark-deep);outline-offset:1px}

.btnrow{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.btn{font:inherit;font-size:.92rem;font-weight:600;padding:.55rem 1rem;border:1.5px solid var(--rule);background:var(--ink);color:var(--paper);cursor:pointer}
.btn:hover{background:#000}
.btn-ghost{background:var(--paper);color:var(--ink)}
.btn-ghost:hover{background:var(--mark)}

.result{border:2.5px solid var(--rule);background:var(--ink);color:var(--paper);padding:1.1rem;position:sticky;top:1rem}
.result .rl{font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:#a9a396;display:block;margin-bottom:.5rem}
.result .rbig{font-size:1.9rem;font-weight:700;line-height:1.15;letter-spacing:-.01em;display:block;margin-bottom:.4rem}
.result .rsub{font-size:.9rem;color:#ddd8cb;line-height:1.6;margin:0 0 .7rem}
.result ul{margin:.6rem 0 0;padding-inline-start:1.1rem;font-size:.86rem;color:#ddd8cb}
.result li{margin:.3rem 0}
.result .rflag{display:inline-block;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:.22rem .5rem;margin-bottom:.6rem}
.rflag.lv-high{background:var(--alarm);color:#fff}
.rflag.lv-mid{background:var(--gold);color:var(--gold-ink)}
.rflag.lv-low{background:var(--mark);color:var(--ink)}

.meter{height:.65rem;background:#3a372f;margin:.55rem 0 .3rem;position:relative;overflow:hidden}
.meter i{display:block;height:100%;background:var(--mark);width:0;transition:width .25s ease}

.datagrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:1px;background:var(--rule-soft);border:1.5px solid var(--rule);margin:1rem 0}
.datagrid div{background:var(--paper);padding:.7rem .8rem}
.datagrid dt{font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .25rem}
.datagrid dd{margin:0;font-family:var(--mono);font-size:1.15rem;font-weight:600;line-height:1.2}
.datagrid dd small{display:block;font-family:var(--sans);font-size:.74rem;font-weight:400;color:var(--ink-3);margin-top:.2rem;letter-spacing:0}

.bars{list-style:none;margin:1rem 0 0;padding:0}
.bars li{display:grid;grid-template-columns:5.5rem 1fr auto;gap:.6rem;align-items:center;padding:.35rem 0;font-family:var(--mono);font-size:.8rem}
.bars .bw{height:.7rem;background:var(--paper-3);position:relative}
.bars .bw i{display:block;height:100%;background:var(--ink)}

.flow{list-style:none;margin:1rem 0 0;padding:0}
.flow li{border:1.5px solid var(--rule-soft);padding:.7rem .85rem;margin-bottom:.5rem;background:var(--paper)}
.flow li.on{border-color:var(--rule);border-width:2.5px;background:var(--mark)}
.flow b{display:block;font-size:.95rem}
.flow small{display:block;color:var(--ink-3);font-size:.82rem;margin-top:.2rem}

.chiprow{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0}
.chip{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;border:1.5px solid var(--rule);padding:.25rem .55rem;background:var(--paper)}
.chip.on{background:var(--mark)}

.guide{margin:2.4rem 0 0;border-top:2.5px solid var(--rule);padding-top:1rem}
.guide>summary{font-weight:700;font-size:1.02rem;cursor:pointer;list-style:none;padding:.3rem 0}
.guide>summary::-webkit-details-marker{display:none}
.guide>summary::before{content:"＋ ";font-family:var(--mono);color:var(--ink-3)}
.guide[open]>summary::before{content:"− "}
.guide h3{font-size:1rem;margin:1.4rem 0 .5rem;font-weight:700}
.guide p,.guide li{font-size:.94rem}
.guide ul{padding-inline-start:1.3rem}

/* ---------- 页脚 ---------- */
.sitefoot{border-top:2.5px solid var(--rule);background:var(--paper-2);margin-top:3.2rem;padding:2.2rem 0 2.6rem;font-size:.87rem}
.footgrid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(auto-fit,minmax(9rem,1fr));gap:1.6rem}
.footabout{margin:.7rem 0 0;color:var(--ink-2);font-size:.84rem;max-width:26em;line-height:1.6}
.footgrid h2{font-family:var(--mono);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .55rem;font-weight:600}
.footgrid ul{list-style:none;margin:0;padding:0}
.footgrid li{margin:.28rem 0}
.footgrid a{text-decoration:none}
.footgrid a:hover{text-decoration:underline}
.footnote{border-top:1.5px solid var(--rule-soft);margin-top:1.7rem;padding-top:1rem;color:var(--ink-2);font-size:.8rem;line-height:1.65}
.footnote p{margin:0 0 .5rem;max-width:60em}
.footnote p:last-child{margin-bottom:0}
.footmeta{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink-3);margin-top:.9rem}

/* ---------- 404 ---------- */
.err{padding:4rem 0;text-align:start}
.err h1{font-family:var(--mono);font-size:clamp(3rem,12vw,6rem);margin:0;line-height:1;letter-spacing:.02em}
.err p{font-size:1.05rem;max-width:34em}

/* ---------- 响应式 ---------- */
@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr}
  .offer{position:static;order:-1}
  .artgrid{grid-template-columns:1fr}
  .toc{position:static;border:1.5px solid var(--rule-soft);padding:.8rem .9rem;background:var(--paper-2)}
  .toolwrap{grid-template-columns:1fr}
  .result{position:static}
}
@media (max-width:760px){
  body{font-size:16px}
  .masthead .wrap{grid-template-columns:1fr auto auto;gap:.6rem}
  .navtoggle{display:inline-block}
  .mainnav{display:none;grid-column:1/-1;flex-direction:column;gap:0;border-top:1.5px solid var(--rule-soft);margin-top:.6rem;padding-top:.3rem}
  .mainnav.open{display:flex}
  .mainnav a{padding:.6rem 0;min-height:44px;display:flex;align-items:center;border-bottom:1px solid var(--rule-soft)}
  .mainnav a:hover,.mainnav a[aria-current="page"]{border-bottom-color:var(--rule-soft);background:var(--paper-2)}
  .copybtn,.btn,.langbtn,.navtoggle{min-height:44px}
  .route a{grid-template-columns:2.5rem 1fr;gap:.6rem;min-height:44px}
  .footgrid{grid-template-columns:1fr 1fr}
  .bars li{grid-template-columns:4.4rem 1fr auto;font-size:.74rem}
}
@media (max-width:380px){
  .hero h1{font-size:1.55rem}
  .exchange-wordmark{font-size:1.7rem}
  .offer-code .val{font-size:1.25rem}
  .footgrid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
}
