/* 墨线分镜 · 黑市 + 抽卡 + 包裹（W3-A 负责）
 * 规格：docs/superpowers/specs/2026-10-13-ink-panels-ui-design.md S13。类名一律 ink-bm（黑市）/ ink-bmp（包裹）前缀。 */

/* ---------- 黑市：墨黑底配红 ---------- */
.ink-bm__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.ink-bm__rays {
  position: absolute; left: 50%; top: 38%; width: 230%; aspect-ratio: 1; transform: translate(-50%, -50%);
  background: repeating-conic-gradient(from 0deg at 50% 50%, rgba(232, 64, 47, .34) 0 2.2deg, transparent 2.2deg 10deg);
  -webkit-mask: radial-gradient(circle, #000 0, transparent 40%);
  mask: radial-gradient(circle, #000 0, transparent 40%);
}
.ink-bm__mark {
  position: absolute; left: -16px; bottom: 150px; transform: rotate(-8deg);
  font-size: 104px; line-height: 1; white-space: nowrap;
  color: transparent; -webkit-text-stroke: 2px #2e2e2e;
}
.ink-bm .ink-topbar { padding-bottom: 2px; }
.ink-bm__sub {
  position: relative; z-index: 2; flex: none;
  display: flex; align-items: center; gap: 8px;
  padding: 6px 16px 6px 14px;
}
.ink-bm__gap { flex: 1; }
.ink-bm .ink-tape--black { background: var(--ink-2); color: var(--white); border-color: rgba(255, 255, 255, .4); }
.ink-bm__scroll { position: relative; z-index: 1; padding: 6px 16px 22px 14px; }

/* 本期 UP 大格：斜切纸面格 + 红色硬投影（clip-path 没法带 box-shadow，投影用错位的红色同形层）。
 * 高屏时整格撑满中部，图标随屏高放大；一把 UP 一列、两把 UP（近战 + 远程都能用的角色）并排两列 */
.ink-bm__scroll { display: flex; flex-direction: column; }
.ink-bm-up { position: relative; flex: 1 0 auto; display: flex; flex-direction: column; margin: 10px 6px 8px 0; }
.ink-bm-up__shade,
.ink-bm-up__slab { clip-path: polygon(0 0, 100% 16px, 100% 100%, 0 calc(100% - 16px)); }
.ink-bm-up__shade { position: absolute; inset: 0; background: var(--red); transform: translate(7px, 7px); }
.ink-bm-up__slab {
  position: relative; flex: 1; display: flex; flex-direction: column;
  padding: 26px 16px 34px 30px;
  background: var(--paper); color: var(--ink);
}
.ink-bm-up__slab::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 17px;
  background: repeating-linear-gradient(-45deg, var(--r5) 0 5px, var(--ink) 5px 7px);
  border-right: 3px solid var(--ink);
}
.ink-bm-up__head { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ink-bm-up__label b {
  display: inline-block; font-size: 22px; font-weight: 900; letter-spacing: .04em; white-space: nowrap;
  transform: skewX(-8deg);
}
.ink-bm-up__tools { flex: none; display: flex; gap: 8px; }
.ink-bm-pill { min-height: 44px; min-width: 56px; justify-content: center; font-size: 14px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ink-bm-pill:active { transform: skewX(-10deg) translate(2px, 2px); box-shadow: 1px 1px 0 var(--ink); }

.ink-bm-up__list { flex: 1; display: grid; grid-template-columns: repeat(var(--n, 1), minmax(0, 1fr)); align-content: center; gap: 12px; margin-top: 14px; }
.ink-bm-up__item { display: flex; flex-direction: column; align-items: center; gap: 16px; min-width: 0; text-align: center; }
.ink-bm-up__plate { position: relative; flex: none; transform: rotate(-4deg); }
.ink-bm-up__plate .ink-icon { width: 124px; height: 124px; border: 4px solid var(--ink); box-shadow: 5px 5px 0 var(--r5); }
.ink-bm-up__burst { position: absolute; left: -18px; top: -18px; z-index: 2; pointer-events: none; display: block; }
.ink-bm-up__burst .ink-burst { font-size: 15px; }
.ink-bm-up__info { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ink-bm-up__name { font-weight: 900; font-size: 28px; line-height: 1.1; overflow-wrap: anywhere; }
.ink-bm-up__special {
  margin: 0; font-weight: 700; font-size: 12px; line-height: 1.45; color: #333;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.ink-bm-up.is-duo .ink-bm-up__plate .ink-icon { width: 84px; height: 84px; }
.ink-bm-up.is-duo .ink-bm-up__name { font-size: 17px; }
.ink-bm-up.is-duo .ink-bm-up__special { display: none; }

/* 最近抽取 */
.ink-bm-last { margin: 20px 4px 0 0; }
.ink-bm-last__row { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 4px; margin-top: 10px; }
.ink-bm-tile { position: relative; display: block; aspect-ratio: 1 / 1; background: #000; border: 2px solid var(--white); }
.ink-bm-tile .ink-icon { width: 100%; height: 100%; border: 0; }
.ink-bm-tile::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--r); }

/* 底部：抽卡两枚 + 见好就收 */
.ink-bm__foot {
  position: relative; z-index: 3; flex: none;
  display: flex; flex-direction: column; gap: 12px;
  padding: 8px 20px calc(14px + var(--safe-bottom)) 14px;
}
.ink-bm__pulls { display: flex; gap: 14px; }
.ink-bm .ink-bm-pull {
  flex: 1 1 0; min-width: 0; flex-direction: column; gap: 3px;
  min-height: 68px; padding: 6px 10px; font-size: 19px;
  box-shadow: 5px 5px 0 var(--red);
}
.ink-bm .ink-bm-pull:active { box-shadow: 1px 1px 0 var(--red); }
.ink-bm .ink-bm-pull[disabled] { box-shadow: none; }
.ink-bm-pull.is-ten { flex-grow: 1.25; }
.ink-bm-price { display: inline-flex; align-items: center; gap: 5px; }
.ink-bm-price b { font-weight: 400; font-size: 17px; letter-spacing: .04em; }
.ink-bm__done { min-height: 50px; }

/* ---------- 概率弹层 ---------- */
.ink-bm-odds { display: flex; flex-direction: column; gap: 8px; padding-right: 4px; }
.ink-bm-odds__row {
  display: flex; align-items: center; gap: 10px; padding: 6px 10px 6px 0;
  background: var(--white); border: 2.5px solid var(--ink);
}
.ink-bm-odds__band {
  align-self: stretch; flex: none; width: 12px;
  background: repeating-linear-gradient(-45deg, var(--r) 0 5px, var(--ink) 5px 7px);
  border-right: 3px solid var(--ink);
}
.ink-bm-odds__txt { flex: 1; min-width: 0; }
.ink-bm-odds__txt b { font-weight: 900; font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.ink-bm-odds__txt small { display: block; margin-top: 2px; font-weight: 700; font-size: 11px; line-height: 1.4; color: #555; }
.ink-bm-odds__pct { flex: none; font-size: 22px; line-height: 1; }
.ink-bm-odds__prog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.ink-bm-odds__prog .ink-cell__v { font-size: 16px; }
.ink-bm-odds__rules { margin: 6px 0 0; padding-left: 18px; font-weight: 700; font-size: 11.5px; line-height: 1.55; color: #444; }

/* 「装备」整屏弹层（复用商店的详情组件，只读） */
.ink-bm-det { padding: 0; align-items: stretch; justify-content: stretch; background: var(--paper); }
.ink-bm-det .ink-det { padding-top: var(--safe-top); animation: ink-rise .28s var(--ease-out) both; }
/* 黑市是墨黑底屏，组件库给页签配的是白线白字；这块详情是纸面，页签要改回墨线墨字 */
.ink-bm-det .ink-tab { border-color: var(--ink); background: var(--white); color: var(--ink); }

/* ---------- 抽卡揭示层 ---------- */
.ink-bm-gacha {
  position: absolute; inset: 0; z-index: 30; overflow: hidden;
  display: flex; flex-direction: column;
  background: var(--ink);
  --bm-ic: 56px;
  animation: ink-bm-gacha-in .22s var(--ease-out) both;
}
@keyframes ink-bm-gacha-in { from { opacity: 0; } }
.ink-bm-gacha__rays {
  position: absolute; left: 50%; top: 46%; width: 230%; aspect-ratio: 1; transform: translate(-50%, -50%);
  opacity: .5; pointer-events: none;
  background: repeating-conic-gradient(from 0deg at 50% 50%, rgba(255, 255, 255, .14) 0 2deg, transparent 2deg 9deg);
  -webkit-mask: radial-gradient(circle, #000 0, transparent 42%);
  mask: radial-gradient(circle, #000 0, transparent 42%);
}
.ink-bm-gacha.is-charging .ink-bm-gacha__rays { animation: ink-bm-spin 6s linear infinite; }
.ink-bm-gacha.is-bang .ink-bm-gacha__rays {
  opacity: .95;
  background: repeating-conic-gradient(from 0deg at 50% 50%, rgba(255, 90, 60, .55) 0 2.4deg, transparent 2.4deg 9deg);
}
@keyframes ink-bm-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }

.ink-bm-gacha__head { position: relative; z-index: 2; flex: none; padding: calc(var(--safe-top) + 6px) 16px 4px; text-align: center; }
.ink-bm-gacha__hint {
  display: inline-block; padding: 4px 16px;
  border: 2.5px solid var(--best, var(--white)); background: var(--ink);
  font-weight: 900; font-size: 20px; letter-spacing: .08em; color: var(--white);
  transform: skewX(-10deg);
}
.ink-bm-gacha__hint.is-legend { color: var(--r5); }

.ink-bm-gacha__stage { position: relative; z-index: 1; flex: 1 1 0; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 8px 18px 8px 14px; }
.ink-bm-gacha__stage.is-shake { animation: ink-shake .4s both; }
.ink-bm-gacha__grid { display: grid; width: 100%; height: 100%; }
.ink-bm-gacha.is-ten .ink-bm-gacha__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: 10px 14px; max-height: 620px;
}
.ink-bm-gacha.is-single .ink-bm-gacha__grid { grid-template-columns: minmax(0, 1fr); width: min(100%, 250px); height: min(100%, 340px); }

.ink-bm-card { position: relative; min-width: 0; min-height: 0; }
.ink-bm-gacha.is-charging .ink-bm-card { animation: ink-bm-charge .24s linear infinite; animation-delay: calc(var(--i, 0) * -41ms); }
@keyframes ink-bm-charge {
  25% { transform: translate(2px, -1px) rotate(.5deg); }
  75% { transform: translate(-2px, 1px) rotate(-.5deg); }
}
.ink-bm-gacha.is-single.is-charging .ink-bm-card { animation-name: ink-bm-charge-big; }
@keyframes ink-bm-charge-big {
  25% { transform: translate(4px, -2px) rotate(1deg); }
  75% { transform: translate(-4px, 2px) rotate(-1deg); }
}
.ink-bm-card__face {
  position: absolute; inset: 0; overflow: hidden;
  border: 3px solid var(--white);
}
.ink-bm-card__back {
  display: grid; place-items: center;
  background: repeating-linear-gradient(-45deg, #1d1d1d 0 9px, #2b2b2b 9px 18px);
  box-shadow: 4px 4px 0 var(--red);
}
.ink-bm-gacha.is-charging .ink-bm-card__back { border-color: var(--best, var(--white)); }
.ink-bm-card__back b { font-size: 42px; line-height: 1; color: var(--yellow); -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; }
.ink-bm-gacha.is-single .ink-bm-card__back b { font-size: 120px; }

.ink-bm-card__front {
  display: flex; align-items: center; gap: 7px; padding: 6px 8px 6px 20px;
  background: var(--white); color: var(--ink);
  box-shadow: 4px 4px 0 var(--r);
  transform: scaleX(0);
}
.ink-bm-card.t4 .ink-bm-card__front { background: #efe6fb; }
.ink-bm-card.t5 .ink-bm-card__front { background: var(--yellow); }
.ink-bm-card__band {
  position: absolute; left: 0; top: 0; bottom: 0; width: 13px;
  background: repeating-linear-gradient(-45deg, var(--r) 0 5px, var(--ink) 5px 7px);
  border-right: 3px solid var(--ink);
}
.ink-bm-gacha.is-ten .ink-bm-card .ink-icon { width: var(--bm-ic); height: var(--bm-ic); }
/* 传说结果角上的爆炸贴：翻开后才弹出，避免提前剧透 */
.ink-bm-card__up { position: absolute; right: -12px; top: -16px; z-index: 3; display: none; pointer-events: none; }
.ink-bm-card__up .ink-burst { font-size: 14px; }
.ink-bm-card.is-revealed .ink-bm-card__up { display: block; animation: ink-pop .32s var(--ease-pop) .4s both; }
.ink-bm-card.is-skipped .ink-bm-card__up { animation: none; }
.ink-bm-gacha.is-single .ink-bm-card__up { right: -14px; top: -20px; }
.ink-bm-gacha.is-single .ink-bm-card__up .ink-burst { font-size: 20px; }
.ink-bm-card__txt { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.ink-bm-card__name {
  font-weight: 900; font-size: 14px; line-height: 1.15; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.ink-bm-card__tag {
  padding: 0 5px; border: 2px solid var(--ink); background: var(--r); color: var(--white);
  font-weight: 900; font-size: 10px; line-height: 1.5; white-space: nowrap;
  text-shadow: 1px 1px 0 rgba(17, 17, 17, .7);
}
.ink-bm-card.t1 .ink-bm-card__tag { color: var(--ink); text-shadow: none; }
.ink-bm-gacha.is-single .ink-bm-card__front { flex-direction: column; justify-content: center; gap: 12px; padding: 18px 12px 14px 28px; text-align: center; }
.ink-bm-gacha.is-single .ink-bm-card__txt { align-items: center; }
.ink-bm-gacha.is-single .ink-bm-card__name { font-size: 24px; }
.ink-bm-gacha.is-single .ink-bm-card__tag { font-size: 13px; padding: 1px 9px; }

/* 翻面：背面折叠消失，正面折叠展开（用 scaleX，避开 3D 与 clip 的兼容坑） */
.ink-bm-card.is-revealed .ink-bm-card__back { animation: ink-bm-fold-out .14s ease-in both; }
.ink-bm-card.is-revealed .ink-bm-card__front { animation: ink-bm-fold-in .3s var(--ease-pop) .12s both; }
@keyframes ink-bm-fold-out { to { transform: scaleX(0); } }
@keyframes ink-bm-fold-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.ink-bm-card.is-skipped .ink-bm-card__back { display: none; }
.ink-bm-card.is-skipped .ink-bm-card__front { transform: none; animation: none; }

/* 稀有度揭示效果：良 / 稀 / 史诗＝涟漪（史诗另有整屏紫闪）；传说＝红框脉冲 + 爆炸贴 + 速度线 + 拟声字 */
.ink-bm-card::after { content: ""; position: absolute; inset: -4px; border: 4px solid var(--r); opacity: 0; pointer-events: none; }
.ink-bm-card.fx-good::after,
.ink-bm-card.fx-rare::after,
.ink-bm-card.fx-epic::after { animation: ink-bm-ring .55s ease-out .1s both; }
.ink-bm-card.fx-legend::after { border-color: var(--red); opacity: 1; animation: ink-bm-pulse .6s ease-in-out infinite alternate; }
.ink-bm-card.is-skipped::after { animation: none; opacity: 0; }
.ink-bm-card.fx-legend.is-skipped::after { opacity: 1; }
@keyframes ink-bm-ring { 0% { transform: scale(.92); opacity: 1; } 100% { transform: scale(1.3); opacity: 0; } }
@keyframes ink-bm-pulse { to { transform: scale(1.05); } }

.ink-bm-flash { position: absolute; inset: 0; z-index: 5; opacity: 0; pointer-events: none; }
.ink-bm-flash.is-epic { background: var(--r4); animation: ink-bm-flash-epic .38s ease-out both; }
.ink-bm-flash.is-legend { background: var(--white); animation: ink-bm-flash-legend .5s ease-out both; }
@keyframes ink-bm-flash-epic { 0% { opacity: 0; } 25% { opacity: .6; } 100% { opacity: 0; } }
@keyframes ink-bm-flash-legend { 0% { opacity: 0; } 14% { opacity: .92; } 45% { opacity: .6; background: var(--red); } 100% { opacity: 0; background: var(--red); } }

.ink-bm-bang { position: absolute; inset: 0; z-index: 4; display: grid; place-items: center; pointer-events: none; }
.ink-bm-bang > * { grid-area: 1 / 1; }
.ink-bm-bang .ink-burst-wrap { animation: ink-bm-bang-burst 1.1s var(--ease-pop) both; }
.ink-bm-bang .ink-sfx { animation: ink-bm-bang-sfx 1.1s var(--ease-pop) both; }
@keyframes ink-bm-bang-burst {
  0% { transform: scale(.2) rotate(-20deg); opacity: 0; }
  25% { transform: scale(1.12) rotate(4deg); opacity: 1; }
  70% { transform: scale(1) rotate(0); opacity: 1; }
  100% { transform: scale(1.15); opacity: 0; }
}
@keyframes ink-bm-bang-sfx {
  0% { transform: skewX(-10deg) rotate(-4deg) scale(2.6); opacity: 0; }
  25% { transform: skewX(-10deg) rotate(-4deg) scale(.94); opacity: 1; }
  40% { transform: skewX(-10deg) rotate(-4deg) scale(1); }
  75% { transform: skewX(-10deg) rotate(-4deg) scale(1); opacity: 1; }
  100% { transform: skewX(-10deg) rotate(-4deg) scale(1.1); opacity: 0; }
}

.ink-bm-gacha__foot {
  position: relative; z-index: 3; flex: none;
  display: flex; flex-direction: column; gap: 10px;
  padding: 8px 20px calc(16px + var(--safe-bottom)) 14px;
}
.ink-bm-gacha__sum { visibility: hidden; text-align: center; font-weight: 800; font-size: 12px; color: rgba(255, 255, 255, .75); }
.ink-bm-gacha__sum.is-on { visibility: visible; }

/* ---------- 包裹页：纸面 ---------- */
.ink-bmp__deco { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ink-bmp__deco i { position: absolute; right: -70px; top: 110px; width: 300px; height: 300px; clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); opacity: .1; }
.ink-bmp .ink-topbar { padding-bottom: 2px; }
.ink-bmp__sub {
  position: relative; z-index: 2; flex: none;
  display: flex; align-items: center; gap: 10px;
  padding: 4px 16px 8px 12px;
}
.ink-bmp__gap { flex: 1; }
.ink-bmp__scroll { position: relative; z-index: 1; padding: 0 16px 22px 14px; }
.ink-bmp-sec { margin-top: 16px; }
.ink-bmp-sec:first-child { margin-top: 6px; }
.ink-bmp-sec__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; }
.ink-bmp-sec__head small { font-weight: 800; font-size: 11px; color: #555; text-align: right; }
.ink-bmp-sec--parcel .ink-bmp-sec__head { margin-bottom: 4px; }

.ink-bmp-slots { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 10px; padding-right: 2px; }
.ink-bmp-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); gap: 8px; margin-top: 10px; padding-right: 2px; }
.ink-bmp-tile {
  position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; padding: 0;
  background: #000; border: 3px solid var(--ink); overflow: visible;
}
.ink-bmp-tile.is-empty { background: var(--paper-2); border: 3px dashed #9a927d; }
.ink-bmp-tile .ink-icon { width: 100%; height: 100%; }
.ink-bmp-tile::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--r, var(--paper-3)); }
.ink-bmp-tile.is-empty::after { display: none; }
.ink-bmp-tile > em {
  position: absolute; right: 3px; bottom: 7px; z-index: 1;
  font-style: normal; font-size: 11px; line-height: 1; color: var(--white);
  -webkit-text-stroke: 2.5px var(--ink); paint-order: stroke fill;
}
.ink-bmp-tile__merge {
  position: absolute; top: -10px; right: -8px; z-index: 2;
  background: var(--yellow); border: 2px solid var(--ink);
  font-weight: 900; font-size: 10px; line-height: 1; padding: 2px 3px;
  transform: rotate(12deg); pointer-events: none;
}
.ink-bmp-none { grid-column: 1 / -1; margin: 4px 0 0; font-weight: 800; font-size: 13px; color: #666; }

.ink-bmp-list { padding-top: 6px; }
.ink-bmp-empty { margin: 14px 0; text-align: center; font-weight: 900; font-size: 14px; color: #555; }
.ink-bmp-row {
  position: relative; display: flex; align-items: center; gap: 8px;
  min-height: 72px; margin: 0 4px 14px 0; padding: 6px 8px 6px 0;
  background: var(--white); border: var(--line) solid var(--ink); box-shadow: var(--shadow);
  cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.ink-bmp-row:active { transform: scale(.985); }
.ink-bmp-row__band {
  align-self: stretch; flex: none; width: 13px; margin: -6px 0;
  background: repeating-linear-gradient(-45deg, var(--r) 0 5px, var(--ink) 5px 7px);
  border-right: 3px solid var(--ink);
}
.ink-bmp-row__id { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.ink-bmp-row__name { font-weight: 900; font-size: 15px; line-height: 1.15; overflow-wrap: anywhere; }
.ink-bmp-row__tag { font-weight: 800; font-size: 10.5px; color: #555; }
.ink-bmp-row__btns { flex: none; display: flex; gap: 8px; padding-right: 4px; }
.ink-bmp-row__btns .ink-btn { padding: 0 11px; gap: 4px; }

.ink-bmp__foot { position: relative; z-index: 2; flex: none; padding: 8px 20px calc(16px + var(--safe-bottom)) 14px; }
.ink-bmp__note { display: flex; justify-content: center; margin-bottom: 10px; }

/* ---------- 战利品 / 武器 / 道具详情弹层 ---------- */
.ink-bm-zoom { width: min(100%, 330px); }
.ink-bm-zoom .ink-modal__head { padding: 12px 14px; }
.ink-bm-zoom__head { min-width: 0; display: flex; align-items: center; gap: 12px; }
.ink-bm-zoom__id { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ink-bm-zoom__name {
  font-weight: 900; font-size: 24px; line-height: 1.05; color: var(--white);
  -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; overflow-wrap: anywhere;
}
.ink-bm-zoom__kind { margin: 0 0 8px; font-weight: 900; font-size: 12px; color: #555; }
.ink-bm-zoom__cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-bottom: 10px; }
.ink-bm-zoom__cells .ink-cell.is-cjk .ink-cell__v { font-family: var(--font-cjk); font-weight: 900; font-size: 16px; line-height: 1.5; }
.ink-bm-zoom__desc { margin: 0; font-weight: 800; font-size: 14px; line-height: 1.5; }
.ink-bm-zoom__price { margin: 10px 0 0; font-weight: 800; font-size: 12px; color: #444; }
.ink-bm-zoom__price b { font-size: 15px; color: var(--ink); }
.ink-bm-zoom .fx-pos { color: var(--gain); font-weight: 900; }
.ink-bm-zoom .fx-neg { color: var(--loss); font-weight: 900; }

/* ---------- 矮屏（360x640 一档）：压紧间距，保证抽卡按钮与见好就收同屏 ---------- */
@media (max-height: 700px) {
  .ink-bm-up__slab { padding: 22px 14px 26px 28px; }
  .ink-bm-up__list { margin-top: 10px; gap: 10px; }
  .ink-bm-up__item { gap: 10px; }
  .ink-bm-up__plate .ink-icon { width: 100px; height: 100px; }
  .ink-bm-up__name { font-size: 24px; }
  .ink-bm-up.is-duo .ink-bm-up__plate .ink-icon { width: 72px; height: 72px; }
  .ink-bm-up.is-duo .ink-bm-up__name { font-size: 17px; }
  .ink-bm-last { margin-top: 14px; }
  .ink-bm__foot { gap: 10px; padding-top: 6px; }
  .ink-bm .ink-bm-pull { min-height: 60px; font-size: 17px; }
  .ink-bm__done { min-height: 46px; }
  .ink-bm-gacha.is-ten { --bm-ic: 46px; }
  .ink-bm-gacha.is-ten .ink-bm-gacha__grid { gap: 8px 12px; }
  .ink-bm-card__name { font-size: 13px; }
  .ink-bm-gacha.is-single .ink-bm-card .ink-icon { width: 96px; height: 96px; }
  .ink-bmp-sec { margin-top: 12px; }
  .ink-bmp-row { min-height: 66px; margin-bottom: 12px; }
}
@media (min-height: 780px) {
  .ink-bm-up__plate .ink-icon { width: 156px; height: 156px; }
  .ink-bm-up__name { font-size: 32px; }
  .ink-bm-up.is-duo .ink-bm-up__plate .ink-icon { width: 112px; height: 112px; }
  .ink-bm-up.is-duo .ink-bm-up__name { font-size: 20px; }
  .ink-bm-gacha.is-ten { --bm-ic: 60px; }
}
