/* UTTER — 言出 · core stylesheet */

:root{
  /* ground */
  --paper:#0a0e14;
  --panel:#121a24;
  --panel-2:#18222e;
  --line:#212c3a;
  --line-2:#2c3a4b;

  /* ink */
  --ink:#edf2f8;
  --ink-2:#9dabbd;
  --ink-3:#66738a;
  --inv:#0a0e14;

  /* signal — BNB gold is the house accent */
  --gold:#f0b90b;
  --gold-hi:#ffd83d;
  --gold-deep:#c99806;
  --gold-soft:#2b2209;

  /* market */
  --up:#2fd47a;
  --up-soft:#0e2f1f;
  --down:#ff5c4d;
  --down-soft:#331512;

  /* brand seal — used sparingly, and in the 中文 assets */
  --cinnabar:#d93a35;

  --hover:#ffffff0a;
  --shadow:0 1px 0 #ffffff08 inset, 0 10px 30px -18px #000;

  --r-card:12px;
  --r-btn:10px;
  --r-tile:10px;

  --font-display:"Space Grotesk","IBM Plex Sans SC",system-ui,sans-serif;
  --font-body:"IBM Plex Sans","IBM Plex Sans SC",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 15px/1.5 var(--font-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
/* 中文 drops the Latin tracking and opens the leading */
html[data-lang="zh"] body{line-height:1.68;letter-spacing:0}
html[data-lang="zh"] h1,html[data-lang="zh"] h2,html[data-lang="zh"] h3{letter-spacing:-.01em}

a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--gold);color:var(--inv)}

.wrap{max-width:1360px;margin:0 auto;padding:22px 24px 60px}
.grow{flex:1}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
.hide{}

/* ───────── header ───────── */
header{
  position:sticky;top:0;z-index:50;height:58px;
  display:flex;align-items:center;gap:14px;
  padding:0 24px;
  background:color-mix(in srgb,var(--paper) 85%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;font:700 18px/1 var(--font-display);letter-spacing:-.04em;flex:none}
.brand .mark{width:26px;height:26px;color:var(--gold);flex:none}
.brand .mark svg{width:100%;height:100%;display:block}
.brand .zh{font-size:13px;color:var(--ink-3);font-weight:500;letter-spacing:.06em;margin-left:2px}

.nav{display:flex;gap:2px}
.nav a{padding:7px 12px;border-radius:8px;color:var(--ink-2);font-weight:500;transition:.15s}
.nav a:hover{background:var(--hover);color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);background:var(--panel)}

/* language toggle */
.lang{display:flex;align-items:center;padding:3px;gap:2px;flex:none;background:var(--panel);border:1px solid var(--line);border-radius:999px}
.lang button{
  border:0;background:transparent;color:var(--ink-3);cursor:pointer;
  padding:4px 11px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:.02em;
  transition:.15s;line-height:1.4;
}
.lang button:hover{color:var(--ink-2)}
.lang button[aria-pressed="true"]{background:var(--gold);color:var(--inv)}

/* buttons */
.btn-p,.btn-s,.btn-g{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:var(--r-btn);font-weight:600;cursor:pointer;
  padding:12px 18px;border:1px solid transparent;transition:.16s;white-space:nowrap;
}
.btn-p{background:var(--gold);color:var(--inv);border-color:var(--gold)}
.btn-p:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn-s{background:var(--panel);color:var(--ink);border-color:var(--line)}
.btn-s:hover{background:var(--panel-2);border-color:var(--line-2)}
.btn-g{background:transparent;color:var(--ink-2);border-color:transparent}
.btn-g:hover{background:var(--hover);color:var(--ink)}
header .btn-p,header .btn-s{padding:8px 15px;font-size:14.5px;border-radius:9px}
.btn-p svg,.btn-s svg{width:14px;height:14px;flex:none}

/* mobile menu */
.mmenu-wrap{display:none;position:relative}
.mmenu-btn{width:36px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--panel);border:1px solid var(--line);border-radius:9px;cursor:pointer}
.mmenu{position:absolute;right:0;top:42px;min-width:190px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r-card);padding:6px;box-shadow:var(--shadow)}
.mmenu[hidden]{display:none}
.mmenu a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink-2);font-weight:500}
.mmenu a:hover{background:var(--hover);color:var(--ink)}

/* ───────── hero ───────── */
.hero h1{
  margin:0;font:700 50px/1.02 var(--font-display);letter-spacing:-.042em;
  max-width:17ch;
}
.hero h1 .say{
  background:linear-gradient(96deg,var(--gold-hi),var(--gold) 46%,#e08c14);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .lede{margin:16px 0 0;max-width:58ch;font-size:17px;line-height:1.62;color:var(--ink-2)}
.hero-cta{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}

.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px}
.hero-stats>div{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);
  padding:14px 16px;box-shadow:var(--shadow);
}
.hero-stats b{
  display:block;font:700 23px/1.28 var(--font-display);letter-spacing:-.03em;
  background:linear-gradient(180deg,var(--ink),#b9c6d6);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-variant-numeric:tabular-nums;
}
.hero-stats span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:3px}

/* ───────── toolbar ───────── */
.toolbar{display:flex;align-items:center;gap:8px;margin:34px 0 10px;flex-wrap:wrap}
.chip{
  padding:5px 12px;border-radius:999px;font-size:13px;cursor:pointer;
  background:var(--panel);border:1px solid var(--line);color:var(--ink-2);transition:.15s;
}
.chip:hover{border-color:var(--line-2);color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--inv);font-weight:600}
.sort{font-size:13px;color:var(--ink-3)}
.search{
  background:var(--panel);border:1px solid var(--line);border-radius:999px;
  padding:5px 13px;color:var(--ink);font-size:13px;width:210px;outline:0;transition:.15s;
}
.search::placeholder{color:var(--ink-3)}
.search:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}

/* ───────── board ───────── */
/* overflow:clip, not hidden — hidden would make .board the sticky containing block
   and shove the column header 58px down over the first row. */
.board{border:1px solid var(--line);border-radius:var(--r-card);overflow:clip;background:#0d131b}
.row{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 124px 96px 132px 112px 36px;
  gap:16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);
}
.row:last-child{border-bottom:0}
.row.head{
  padding:9px 16px;font-size:12px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;
  background:var(--panel);position:sticky;top:58px;z-index:5;
}
a.row{transition:background .14s}
a.row:hover{background:var(--hover)}
a.row:hover .arrow{color:var(--gold);transform:translateX(2px)}

.row .logo{width:46px;height:46px;border-radius:var(--r-tile);background:var(--panel-2);
  display:grid;place-items:center;overflow:hidden;font:700 15px/1 var(--font-display);color:var(--ink-2);flex:none}
.row .logo img{width:100%;height:100%;object-fit:cover}
.tok{min-width:0}
.tok .nm{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0}
.tok .nm .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tok .sym{color:var(--ink-3);font-weight:500;flex:none}
.chain{
  display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ink-2);
  background:var(--gold-soft);border:1px solid #453611;padding:1px 7px;border-radius:999px;flex:none;
}
.chain i{width:6px;height:6px;border-radius:50%;background:var(--gold);display:block}
.tok .post{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);margin-top:3px;min-width:0}
.tok .post svg{width:13px;height:13px;flex:none;color:var(--ink-3)}
.tok .post span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tok .post .at{color:var(--gold);font-weight:500;flex:none}

.cell small{display:block;font-size:12px;color:var(--ink-3);margin-top:1px}
.pct{font-weight:600}
.pct.up{color:var(--up)}
.pct.down{color:var(--down)}
.pair{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--ink-2)}
.pair i{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--inv);flex:none}
.arrow{color:var(--ink-3);transition:.16s}
.arrow svg{width:16px;height:16px}
.empty{padding:48px 16px;text-align:center;color:var(--ink-3);font-size:14px}

/* ───────── article / legal / docs ───────── */
.legal{max-width:720px;margin:8px auto 0}
.eyebrow{margin:0;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
html[data-lang="zh"] .eyebrow{letter-spacing:.1em}
.legal h1{margin:12px 0 0;font:700 38px/1.1 var(--font-display);letter-spacing:-.038em}
.grad{background:linear-gradient(96deg,var(--ink),#a9b8ca);-webkit-background-clip:text;background-clip:text;color:transparent}
.legal .meta{margin:14px 0 0;font-size:16px;line-height:1.62;color:var(--ink-2)}
.legal h2{margin:38px 0 12px;font:600 21px/1.3 var(--font-display);letter-spacing:-.02em}
.legal p{color:var(--ink-2);line-height:1.68}
.legal ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.legal ul li{padding-left:20px;position:relative;color:var(--ink-2);line-height:1.62}
.legal ul li::before{content:"";position:absolute;left:4px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.legal a.ln{color:var(--gold);border-bottom:1px solid #f0b90b40}
.legal a.ln:hover{border-bottom-color:var(--gold)}

.howsteps{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:2px}
.howsteps li{display:grid;grid-template-columns:32px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.howsteps li:last-child{border-bottom:1px solid var(--line)}
.howsteps .n{
  width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:var(--gold-soft);border:1px solid #453611;color:var(--gold);
  font:600 13px/1 var(--font-mono);
}
.howsteps b{display:block;font-size:16px;margin-bottom:5px}
.howsteps p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.62}

.cmdbox{margin:26px 0 0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:15px 16px}
.cmd-l{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:9px}
.cmd{font:400 14.5px/1.7 var(--font-mono);color:var(--ink);word-break:break-word}
.cmd b{color:var(--gold);font-weight:500}
.cmd em{font-style:normal;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line);
  padding:1px 6px;border-radius:5px;margin:0 1px;display:inline-block}
.cmd-opts{margin-top:9px;font:400 13.5px/1.9 var(--font-mono);color:var(--ink-3)}
.cmd-opts em{font-style:normal;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line);
  padding:1px 6px;border-radius:5px;margin-right:6px;display:inline-block}

.callout{
  margin:22px 0 0;display:flex;gap:12px;padding:14px 16px;border-radius:var(--r-card);
  background:var(--gold-soft);border:1px solid #453611;
}
.callout svg{width:16px;height:16px;flex:none;color:var(--gold);margin-top:2px}
.callout p{margin:0;font-size:14px;color:#e4d5a8;line-height:1.6}
.callout b{color:var(--gold-hi)}

.two{display:grid;grid-template-columns:auto 1fr;gap:8px;margin-top:30px}
.two .btn-p,.two .btn-s{width:100%}

table.spec{width:100%;border-collapse:collapse;margin-top:14px;font-size:14.5px}
table.spec th,table.spec td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
table.spec th{color:var(--ink-3);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
table.spec td{color:var(--ink-2)}
table.spec td:first-child{color:var(--ink);font-family:var(--font-mono);white-space:nowrap}

/* ───────── sign-in card ───────── */
.lf{max-width:720px;display:grid;place-items:center;min-height:56vh}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:32px;text-align:center;width:100%;box-shadow:var(--shadow);
}
.card .mark{width:44px;height:44px;color:var(--gold);margin:0 auto 18px}
.card h1{margin:0;font:700 30px/1.14 var(--font-display);letter-spacing:-.035em}
.card .sub{margin:12px auto 22px;max-width:44ch;color:var(--ink-2);font-size:15px;line-height:1.6}
.card .fine{margin:16px 0 0;font-size:12.5px;color:var(--ink-3)}

/* ───────── token page ───────── */
.back{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink-3);margin-bottom:16px}
.back:hover{color:var(--ink)}
.back svg{width:14px;height:14px}
.tp{display:grid;grid-template-columns:minmax(0,1fr) 356px;gap:20px;align-items:start}

.thead{display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:16px;align-items:start}
.thead .logo{width:66px;height:66px;border-radius:14px;background:var(--panel-2);overflow:hidden;
  display:grid;place-items:center;font:700 21px/1 var(--font-display);color:var(--ink-2)}
.thead .logo img{width:100%;height:100%;object-fit:cover}
.l1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.l1 h1{margin:0;font:700 29px/1.16 var(--font-display);letter-spacing:-.035em}
.l1 .sym{color:var(--ink-3);font-weight:500}
.l2{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:9px}
.addr{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-3)}
.addr b{color:var(--ink-2);font-weight:500;font-family:var(--font-mono)}
.addr a{color:var(--gold)}
.addr svg{width:12px;height:12px;opacity:.7}
.about{margin-top:14px;max-width:72ch}
.about p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.66;white-space:pre-line}
.about .links{display:flex;gap:14px;margin-top:10px;font-size:13.5px}
.about .links a{color:var(--gold);display:inline-flex;align-items:center;gap:5px}
.tstats{display:flex;gap:26px;flex-wrap:wrap}
.tstats .k{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.tstats .v{font:700 19px/1.4 var(--font-display);letter-spacing:-.025em;font-variant-numeric:tabular-nums}

.genesis{
  margin-top:20px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;
}
.genesis .av{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--panel-2);
  display:grid;place-items:center;color:var(--ink-3);font-weight:700}
.who{display:flex;align-items:center;gap:7px;font-size:14px;flex-wrap:wrap}
.who b{font-weight:600}
.who span{color:var(--ink-3);font-size:13px}
.who svg{width:13px;height:13px;color:var(--ink-3)}
.genesis .body{margin-top:6px;font-size:14.5px;line-height:1.6;color:var(--ink);white-space:pre-line}
.genesis .gmeta{margin-top:9px;font-size:13px}
.genesis .gmeta a{color:var(--gold);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.genesis .side{text-align:right;font-size:12.5px;color:var(--ink-3);display:grid;gap:3px;justify-items:end}
.genesis .side b{color:var(--ink-2);font-weight:500;font-family:var(--font-mono);font-size:12px}
.genesis .ok{display:inline-flex;align-items:center;gap:5px;color:var(--up)}
.genesis .ok svg{width:12px;height:12px}

.chartbox{margin-top:20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.ch{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ch .price{font:700 25px/1.2 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.tf{display:flex;gap:2px;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:3px}
.tf button{border:0;background:transparent;color:var(--ink-3);padding:4px 10px;border-radius:6px;
  font-size:12.5px;font-weight:600;cursor:pointer;transition:.14s;font-family:var(--font-mono)}
.tf button:hover{color:var(--ink-2)}
.tf button.on{background:var(--panel-2);color:var(--ink)}
.chart{height:264px;padding:8px 6px 0}
.chart svg{width:100%;height:100%;display:block;overflow:visible}

.tabs{display:flex;gap:2px;margin-top:20px;border-bottom:1px solid var(--line)}
.tabs button{
  border:0;background:transparent;color:var(--ink-3);padding:11px 14px;cursor:pointer;
  font-size:14px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.14s;
}
.tabs button:hover{color:var(--ink-2)}
.tabs button.on{color:var(--ink);border-bottom-color:var(--gold)}
.tabs i{font-style:normal;color:var(--ink-3);font-size:12px;margin-left:6px;font-family:var(--font-mono)}

.pane{margin-top:2px}
.tr{display:grid;grid-template-columns:88px 66px 1fr 1fr 116px;gap:12px;align-items:center;
  padding:11px 12px;border-bottom:1px solid var(--line);font-size:13.5px}
.tr:first-child{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.tr.holders{grid-template-columns:36px 1fr 130px 100px}
.side-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600}
.side-tag.b{background:var(--up-soft);color:var(--up)}
.side-tag.s{background:var(--down-soft);color:var(--down)}
.bar{height:5px;border-radius:999px;background:var(--panel-2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--gold);border-radius:999px}

/* swap panel */
aside.side-col{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;position:sticky;top:74px}
.swap,.card2{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:14px;min-width:0}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--paper);border:1px solid var(--line);
  border-radius:10px;padding:3px;margin-bottom:12px}
.seg button{border:0;background:transparent;color:var(--ink-3);padding:8px;border-radius:7px;
  font-weight:600;font-size:14px;cursor:pointer;transition:.14s}
.seg button.buy.on{background:var(--up-soft);color:var(--up)}
.seg button.sell.on{background:var(--down-soft);color:var(--down)}
.field{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-bottom:8px}
.field .l{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3);margin-bottom:7px}
.field .in{display:flex;align-items:center;gap:10px;min-width:0}
.field input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);
  font:600 21px/1.2 var(--font-display);font-variant-numeric:tabular-nums}
.field input::placeholder{color:var(--ink-3)}
.asset{display:inline-flex;align-items:center;gap:7px;background:var(--panel-2);border:1px solid var(--line);
  border-radius:999px;padding:5px 11px 5px 5px;font-size:13.5px;font-weight:600;flex:none}
.asset .c{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  font-size:10px;font-weight:700;color:var(--inv)}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}
.quick button{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:6px;
  font-size:12.5px;color:var(--ink-2);cursor:pointer;font-family:var(--font-mono);transition:.14s}
.quick button:hover{border-color:var(--gold);color:var(--gold)}
.kv{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  padding:8px 2px;font-size:13px;color:var(--ink-3);border-top:1px solid var(--line)}
.kv b{color:var(--ink-2);font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere}
.slip{display:flex;gap:3px}
.slip button{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:2px 8px;
  font-size:12px;color:var(--ink-3);cursor:pointer;font-family:var(--font-mono)}
.slip button.on{background:var(--gold-soft);border-color:#453611;color:var(--gold)}
.swap .btn-p{width:100%;margin-top:12px}
.note{display:flex;gap:9px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line);
  font-size:12px;color:var(--ink-3);line-height:1.55}
.note span{min-width:0;overflow-wrap:anywhere}
.note svg{width:13px;height:13px;flex:none;margin-top:2px;color:var(--gold)}
.card2 h3{margin:0 0 4px;font:600 15px/1.4 var(--font-display);letter-spacing:-.01em}
.card2 .kv:first-of-type{border-top:0}

/* Inline SVG in prose has no intrinsic size — pin it or it renders at 300×150. */
.gmeta a svg,.about .links a svg,.addr svg,.who svg,.note svg,.callout svg,.back svg{width:13px;height:13px;flex:none}
.addr svg{width:12px;height:12px}

/* ───────── footer ───────── */
footer{border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 55%,transparent);margin-top:20px}
.footer-in{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px;padding:36px 24px 26px;max-width:1360px;margin:0 auto}
.footer-brand .brand{margin-bottom:12px}
.footer-brand p{margin:0;font-size:13.5px;color:var(--ink-3);line-height:1.6;max-width:38ch}
.footer-brand .soc{display:flex;gap:10px;margin-top:14px}
.footer-brand .soc a{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;
  background:var(--panel);border:1px solid var(--line);color:var(--ink-2);transition:.14s}
.footer-brand .soc a:hover{border-color:var(--gold);color:var(--gold)}
.footer-brand .soc svg{width:15px;height:15px}
.footer-col{display:grid;gap:9px;align-content:start}
.footer-col .h{font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}
.footer-col a{font-size:14px;color:var(--ink-2)}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{display:flex;gap:16px;flex-wrap:wrap;padding:16px 24px 30px;max-width:1360px;margin:0 auto;
  font-size:12.5px;color:var(--ink-3);border-top:1px solid var(--line)}

/* ───────── responsive ───────── */
@media(max-width:1120px){
  /* minmax(0,1fr), not 1fr — a bare 1fr track has an auto minimum, so any child
     with a wide min-content grows the track and scrolls the whole page sideways. */
  .tp{grid-template-columns:minmax(0,1fr)}
  aside.side-col{position:static}
}
@media(max-width:980px){
  .row{grid-template-columns:44px minmax(0,1fr) 116px 88px 32px}
  .row .hide{display:none}
  .hero-stats{grid-template-columns:1fr 1fr}
  .footer-in{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  header{padding:0 14px;gap:8px}
  .nav{display:none}
  .mmenu-wrap{display:block}
  /* The header is a flex row and flex items refuse to shrink past min-content, so a
     full-width Connect button silently sets a ~450px floor for the whole document —
     every other section then inherits that width and the page scrolls sideways.
     Icon-only here; the label lives in the menu. */
  header .btn-p span{display:none}
  header .btn-p{padding:8px 11px}
  .lang button{padding:4px 9px;font-size:12px}
  .brand{font-size:17px}
  .wrap{padding:18px 16px 48px}
  .toolbar{gap:6px}
  .search{width:auto;flex:1 1 100%;order:9}
  .sort{order:10;flex:1 1 100%}
  .hero h1{font-size:34px;letter-spacing:-.035em}
  .hero .lede{font-size:15.5px}
  .row{grid-template-columns:36px minmax(0,1fr) 92px 66px;gap:10px;padding:12px 12px}
  .tok .post{font-size:12px}
  .cell.num{font-size:13.5px}
  .row .arrow{display:none}
  .row .logo{width:40px;height:40px}
  .thead{grid-template-columns:52px minmax(0,1fr)}
  .thead .tstats{grid-column:1/-1;margin-top:4px}
  .thead .logo{width:52px;height:52px}
  .l1 h1{font-size:23px}
  .genesis{grid-template-columns:36px minmax(0,1fr)}
  .genesis .av{width:36px;height:36px}
  .genesis .side{grid-column:1/-1;text-align:left;justify-items:start}
  .tr{grid-template-columns:70px 56px 1fr 1fr;font-size:12.5px;gap:8px}
  .tr .wcol{display:none}
  .two{grid-template-columns:1fr}
  .footer-in{grid-template-columns:1fr;gap:24px}
  .legal h1{font-size:29px}
  .card{padding:24px 20px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
