/* Agent ID 专属挖矿 · r6 重新设计。首页（index.html）与规则页（rules.html）共用。
 * 视觉与主站 site/index.html 统一：同一套令牌、顶栏、按钮、卡片、金线接缝和页脚（这些规则从主站原样移植，改主站时同步这里）。
 * 挖矿页自己的设计语言只有一条：$LOOT 是「余烬」（暖橙），BNB 与钻石是「冰霜」（冰蓝）——首屏两个奖池、领取区、出块墙都按这个区分。
 * 只有暗色主题，手机优先；动效只用在实时事件（出块、存入奖池、开奖倒计时），减少动态时关闭。 */
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/cinzel-latin.woff2") format("woff2"); }
@font-face { font-family: "Cinzel Fallback"; src: local("Georgia"); size-adjust: 108%; ascent-override: 90%; descent-override: 34%; line-gap-override: 0%; }

/* ============ 令牌（与主站相同，另加冰霜与各矿池色） ============ */
:root {
  color-scheme: dark;
  --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .85 0 0 0 0 .6 0 0 0 .045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --bg: #0c0907; --bg-2: #120d0a; --surface: #1a130f; --surface-2: #211813;
  --line: rgba(217, 168, 91, .16); --line-2: rgba(217, 168, 91, .30); --line-3: rgba(217, 168, 91, .55);
  --gold: #d9a85b; --gold-hi: #f4d08a; --gold-lo: #8c6631;
  --ember: #f0712a; --ember-hi: #ffa356;
  --frost: #8fd0ff; --frost-hi: #d6f0ff; --frost-lo: #3f7fae;
  --text: #f0e4cb; --text-2: #cbbc9f; --text-3: #a3927a;
  --tg: #1b74b0; --tg-2: #145d8f;
  --ok: #8ad3a3; --warn: #ffb37a; --err: #ff8a7a;
  /* 三个矿池 + 暴击奖池；四大类 */
  --c-newbie: #8ad3a3; --c-invite: #c3a6ff; --c-premium: #8fd0ff; --c-crit: #ff9a55;
  --c-mining: #f2c46d; --c-game: #e0785a; --c-team: #9da5b4; --c-marketing: #c99a7d;
  --radius: 16px; --hdr: 60px; --sub: 0px;
  --sec: clamp(56px, 7vw, 96px);
  --gutter: clamp(16px, 4vw, 40px);
  --gl: max(var(--gutter), env(safe-area-inset-left, 0px));
  --gr: max(var(--gutter), env(safe-area-inset-right, 0px));
  --f-display: "Cinzel", "Cinzel Fallback", Georgia, "Times New Roman", serif;
  --f-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  --f-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  --shadow: 0 24px 48px -24px rgba(0, 0, 0, .85);
  --ease: cubic-bezier(.2, .7, .2, 1);
}
:root:lang(zh) { --f-display: "Cinzel", "Cinzel Fallback", "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Noto Serif CJK SC", serif; }
@media (min-width: 1024px) { :root { --hdr: 68px; --sub: 44px; } }

/* ============ 基础 ============ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--hdr) + var(--sub) + 14px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; overflow-x: hidden; background-color: var(--bg); background-image: var(--noise); color: var(--text); font: 400 16px/1.6 var(--f-body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
picture { display: contents; }
a { color: var(--gold-hi); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #fff1d0; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-display); font-weight: 700; line-height: 1.15; letter-spacing: .01em; overflow-wrap: break-word; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol, dl, dd { margin: 0; padding: 0; list-style: none; }
button, input { font: inherit; color: inherit; }
small { font-size: .62em; font-weight: 600; letter-spacing: .02em; color: var(--text-3); }
/* 中文：标题、按钮与短句按词断行；长正文保持正常断行 */
:root:lang(zh) :is(h1, h2, h3, h4, .lead, .btn, .eyebrow, .hero-sub, .way-what, .way-now, .pt-lines li, .tk-s, .rc-gifts li, .perks li, .how p, .jp-lead, .help, .me-empty-lead) { word-break: keep-all; overflow-wrap: anywhere; }
:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 3px; border-radius: 6px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 12px 16px; background: var(--gold-hi); color: #1a0d05; border-radius: 10px; font-weight: 700; text-decoration: none; }
.skip:focus { top: 12px; }
svg.i { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
svg.i.f { fill: currentColor; stroke: none; }
.mono { font-family: var(--f-mono); font-size: 12.5px; overflow-wrap: anywhere; word-break: break-all; }
.small { font-size: 13px; color: var(--text-2); }
.muted { color: var(--text-3); }
.warn { color: var(--warn) !important; }
.ok { color: var(--ok) !important; }
[hidden] { display: none !important; }

.wrap { width: 100%; max-width: calc(1200px + 80px); margin-inline: auto; padding-left: var(--gl); padding-right: var(--gr); }
.sec { position: relative; padding-block: var(--sec); }
/* 区块之间的金线接缝：居中细线 + 菱形（主站同款） */
[data-seam]::before { content: ""; position: absolute; top: 0; left: 50%; width: min(760px, 84%); height: 1px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, var(--line-3) 30%, var(--line-3) 70%, transparent); }
[data-seam]::after { content: ""; position: absolute; top: -5px; left: 50%; width: 10px; height: 10px; transform: translateX(-50%) rotate(45deg); background: var(--bg); border: 1px solid var(--gold); box-shadow: 0 0 12px rgba(240, 113, 42, .45); }

/* ============ 文字 ============ */
.eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0; font: 600 12px/1.3 var(--f-body); letter-spacing: .26em; text-transform: uppercase; color: var(--ember-hi); }
.eyebrow::before, .eyebrow::after { content: ""; width: 28px; height: 1px; flex: none; background: linear-gradient(90deg, transparent, var(--ember)); }
.eyebrow::after { transform: scaleX(-1); }
:root:lang(zh) .eyebrow { letter-spacing: .16em; }
.h1 { font-size: clamp(32px, 7vw, 56px); line-height: 1.08; color: #fff1d6; text-shadow: 0 2px 18px rgba(0, 0, 0, .8); }
.h2 { font-size: clamp(28px, 5.6vw, 48px); color: var(--gold-hi); background: linear-gradient(180deg, #fff3d6 0%, #f0cf8c 45%, #c08f4a 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .55)); padding-bottom: .04em; }
.h4 { font-size: 16.5px; color: var(--text); letter-spacing: .02em; display: flex; align-items: center; gap: 8px; }
.h4 small { font-family: var(--f-body); font-size: 12px; }
.lead { color: var(--text-2); font-size: clamp(15px, 1.5vw, 17px); max-width: 62ch; }
.sec-head { display: grid; gap: 12px; justify-items: center; text-align: center; max-width: 820px; margin: 0 auto clamp(26px, 4vw, 44px); }
.sec-foot { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 6px 12px; margin-top: 18px; text-align: center; font-size: 13px; color: var(--text-3); }
.rules-link { display: inline-flex; align-items: center; gap: 4px; font-size: 13.5px; font-weight: 600; color: var(--gold-hi); text-decoration: none; white-space: nowrap; }
.rules-link:hover { text-decoration: underline; }
.more { display: flex; justify-content: center; margin-top: 14px; }

/* ============ 按钮（主站同款，另加冰霜） ============ */
.btn { --h: 48px; position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: var(--h); padding: 6px 20px; border-radius: 12px; border: 1px solid transparent; cursor: pointer; text-decoration: none; text-align: center; font: 600 15px/1.15 var(--f-body); letter-spacing: .01em; transition: transform .18s var(--ease), box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.btn:active:not(:disabled) { transform: translateY(1px) scale(.985); }
.btn:disabled, .btn[aria-disabled="true"] { cursor: not-allowed; opacity: .45; filter: saturate(.4); }
.btn img { flex: none; width: 22px; height: 22px; }
.btn-primary { color: #1d0e04; font-family: var(--f-display); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; background: linear-gradient(180deg, #ffb062 0%, #f57a2c 52%, #cf4d12 100%); border-color: #ffc386; box-shadow: inset 0 1px 0 rgba(255, 238, 205, .6), inset 0 -2px 0 rgba(120, 35, 0, .35), 0 0 0 1px rgba(0, 0, 0, .55), 0 10px 28px -8px rgba(240, 113, 42, .55); }
.btn-primary:hover { color: #1d0e04; }
:root:lang(zh) .btn-primary, :root:lang(zh) .btn-frost { letter-spacing: .04em; }
.btn-frost { color: #04121c; font-family: var(--f-display); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: linear-gradient(180deg, #e2f4ff 0%, #9fd8ff 50%, #4f9fd6 100%); border-color: #cdeaff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65), inset 0 -2px 0 rgba(10, 50, 90, .35), 0 0 0 1px rgba(0, 0, 0, .55), 0 10px 28px -8px rgba(110, 190, 255, .45); }
.btn-frost:hover { color: #04121c; }
.btn-ghost { color: var(--text); background: rgba(18, 13, 10, .55); border-color: var(--line-3); }
.btn-ice { color: var(--frost-hi); background: rgba(8, 16, 24, .6); border-color: rgba(143, 208, 255, .55); }
.btn-ice:hover { color: #fff; }
.btn-tg { color: #fff; background: linear-gradient(180deg, var(--tg) 0%, var(--tg-2) 100%); border-color: #2c8ccc; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 10px 24px -10px rgba(27, 116, 176, .7); }
@media (hover: hover) {
  .btn-primary:hover:not(:disabled) { transform: translateY(-1px); background: linear-gradient(180deg, #ffbb73 0%, #ff8636 52%, #d9561a 100%); box-shadow: inset 0 1px 0 rgba(255, 238, 205, .7), inset 0 -2px 0 rgba(120, 35, 0, .35), 0 0 0 1px rgba(0, 0, 0, .55), 0 14px 36px -6px rgba(255, 140, 60, .8); }
  .btn-frost:hover:not(:disabled) { transform: translateY(-1px); background: linear-gradient(180deg, #f0f9ff 0%, #b3e1ff 50%, #5fb0e6 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 -2px 0 rgba(10, 50, 90, .35), 0 0 0 1px rgba(0, 0, 0, .55), 0 14px 36px -6px rgba(130, 200, 255, .65); }
  .btn-ghost:hover:not(:disabled) { color: #fff3d6; border-color: var(--gold-hi); background: rgba(40, 28, 20, .72); }
  .btn-ice:hover:not(:disabled) { border-color: var(--frost-hi); background: rgba(16, 32, 46, .72); }
  .btn-tg:hover { color: #fff; background: linear-gradient(180deg, #1f7fc0 0%, #176aa3 100%); }
}
.btn:focus-visible { outline: 2px solid #fff1d0; outline-offset: 3px; border-radius: 12px; }
.btn-lg { --h: 54px; font-size: 15.5px; padding: 8px 24px; border-radius: 14px; }
.btn-block { width: 100%; }
.btn-sm { --h: 40px; padding: 4px 14px; font-size: 13.5px; border-radius: 10px; }
.btn .i { width: 19px; height: 19px; }
.icon-btn { display: inline-grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 10px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .3); color: var(--text-2); cursor: pointer; }
.icon-btn:hover { color: var(--gold-hi); border-color: var(--line-3); }

/* ============ 顶栏（主站同款） ============ */
.hdr { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 60; background: rgba(12, 9, 7, .8); backdrop-filter: saturate(140%) blur(14px); -webkit-backdrop-filter: saturate(140%) blur(14px); border-bottom: 1px solid var(--line); transition: background-color .25s ease, box-shadow .25s ease; }
.hdr.scrolled { background: rgba(12, 9, 7, .92); box-shadow: 0 12px 30px -18px #000; }
.hdr::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: env(safe-area-inset-top, 0px); background: var(--bg); }
.hdr::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: linear-gradient(90deg, transparent, rgba(240, 113, 42, .55), transparent); opacity: .7; }
.hdr-in { display: flex; align-items: center; gap: 10px; height: var(--hdr); }
.brand { display: inline-flex; align-items: center; flex: none; border-radius: 8px; }
.brand img { height: 40px; width: auto; filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .8)); }
.nav { display: none; }
.nav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; color: var(--text-2); text-decoration: none; font: 700 13px/1 var(--f-display); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; border-radius: 8px; transition: color .2s ease; }
:root:lang(zh) .nav a { letter-spacing: .08em; font-size: 14px; }
.nav a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 7px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, var(--ember), transparent); transform: scaleX(0); transition: transform .3s var(--ease); }
.nav a:hover, .nav a[aria-current] { color: var(--gold-hi); }
.nav a[aria-current]::after { transform: scaleX(1); }
.nav a .cur-sign { color: var(--gold); }
.hdr-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; min-width: 0; }
.hdr .btn { white-space: nowrap; }
.hdr .btn-play { display: none; --h: 44px; padding: 0 16px; font-size: 13px; }
.btn-wallet { --h: 44px; padding: 0 14px; font-size: 14px; min-width: 0; max-width: 52vw; }
.btn-wallet span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btn-wallet.is-on { border-color: rgba(138, 211, 163, .55); }
.btn-wallet.is-on .i { color: var(--ok); }
.btn-wallet .mini { font-style: normal; font-size: 11px; padding: 2px 6px; border-radius: 999px; background: rgba(217, 168, 91, .16); color: var(--gold-hi); margin-left: 4px; }
.menu-btn { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .3); cursor: pointer; color: var(--text); transition: border-color .2s ease, background-color .2s ease; }
.menu-btn[aria-expanded="true"] { border-color: var(--line-3); background: rgba(60, 42, 28, .6); }
.menu-btn .i { width: 22px; height: 22px; }
.lang-dd { position: relative; display: none; }
.lang-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 10px 0 12px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .35); color: var(--text-2); font: 600 12.5px/1 var(--f-body); letter-spacing: .06em; white-space: nowrap; cursor: pointer; transition: border-color .2s ease, color .2s ease; }
.lang-btn:hover, .lang-btn[aria-expanded="true"] { color: var(--gold-hi); border-color: var(--line-3); }
.lang-btn .i { width: 17px; height: 17px; }
.lang-btn .chev { width: 14px; height: 14px; transition: transform .2s ease; }
.lang-btn[aria-expanded="true"] .chev { transform: rotate(180deg); }
.lang-pop { position: absolute; right: 0; top: calc(100% + 8px); z-index: 70; display: grid; gap: 2px; min-width: 188px; padding: 6px; border-radius: 14px; border: 1px solid var(--line-2); background: rgba(20, 14, 11, .98); box-shadow: 0 24px 50px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 220, 170, .06); transform-origin: top right; animation: popIn .18s var(--ease); }
.lang-pop button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: transparent; color: var(--text-2); font: 500 15px/1 var(--f-body); text-align: left; cursor: pointer; }
.lang-pop button:hover, .lang-pop button:focus-visible { background: rgba(217, 168, 91, .1); color: var(--text); }
.lang-pop button .i { width: 16px; height: 16px; color: var(--ember-hi); opacity: 0; }
.lang-pop button[aria-pressed="true"] { color: var(--gold-hi); }
.lang-pop button[aria-pressed="true"] .i { opacity: 1; }
@keyframes popIn { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips button { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .3); color: var(--text-3); font: 500 13.5px/1 var(--f-body); cursor: pointer; transition: border-color .2s ease, color .2s ease, background-color .2s ease; }
.chips button:hover { color: var(--text); border-color: var(--line-3); }
.chips button[aria-pressed="true"] { background: linear-gradient(180deg, #3a2a1c, #2a1e15); color: var(--gold-hi); border-color: var(--line-3); }

/* 挖矿区的本页导航（≥1024px） */
.subnav { display: none; border-top: 1px solid var(--line); }
.subnav-in { display: flex; align-items: center; gap: 2px; height: var(--sub); overflow: hidden; }
.subnav a { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 12px; border-radius: 8px; color: var(--text-2); font: 600 13.5px/1 var(--f-body); text-decoration: none; white-space: nowrap; }
.subnav a:hover { color: var(--gold-hi); }
.subnav a[aria-current] { color: var(--gold-hi); background: rgba(217, 168, 91, .1); }
.subnav .subnav-title { margin-right: 10px; padding-left: 0; color: var(--ember-hi); font-weight: 700; }
.subnav .subnav-title .i { width: 17px; height: 17px; }
@media (max-width: 1099.98px) { :root:lang(ru) .subnav a { padding: 0 8px; } :root:lang(ru) .subnav .subnav-title { margin-right: 4px; } }

/* 手机抽屉（主站同款，另加挖矿区的本页链接） */
.msheet { position: fixed; z-index: 59; left: 0; right: 0; top: calc(env(safe-area-inset-top, 0px) + var(--hdr)); max-height: calc(100vh - var(--hdr)); max-height: calc(100dvh - var(--hdr) - env(safe-area-inset-top, 0px)); overflow-y: auto; overscroll-behavior: contain; background: rgba(13, 9, 7, .985); border-bottom: 1px solid var(--line-2); box-shadow: 0 30px 60px rgba(0, 0, 0, .7); padding: 8px var(--gr) calc(24px + env(safe-area-inset-bottom, 0px)) var(--gl); opacity: 0; transform: translateY(-10px); transition: opacity .22s ease, transform .26s var(--ease); }
.msheet.open { opacity: 1; transform: none; }
.mscrim { position: fixed; inset: 0; z-index: 58; background: rgba(6, 4, 3, .6); opacity: 0; transition: opacity .22s ease; }
.mscrim.open { opacity: 1; }
.msheet nav > a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; border-bottom: 1px solid var(--line); color: var(--text); text-decoration: none; font: 700 18px/1.2 var(--f-display); letter-spacing: .08em; }
.msheet nav > a[aria-current] { color: var(--gold-hi); }
.msheet nav > a .i { color: var(--gold); }
.msheet-sub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 10px; padding: 8px 0 12px 12px; border-bottom: 1px solid var(--line); border-left: 2px solid rgba(240, 113, 42, .55); margin: 6px 0 0; }
.msheet-sub a { display: flex; align-items: center; min-height: 40px; color: var(--text-2); text-decoration: none; font-size: 15px; }
.msheet-foot { display: grid; gap: 12px; margin-top: 20px; }
.msheet-lang { display: grid; gap: 8px; color: var(--text-3); font-size: 13px; }
@media (min-width: 480px) { .lang-dd { display: block; } .msheet-lang { display: none; } }
@media (min-width: 600px) { .hdr .btn-play { display: inline-flex; } }
@media (min-width: 1024px) {
  .brand img { height: 46px; }
  .nav { display: flex; gap: 2px; margin-left: 28px; }
  .subnav { display: block; }
  .hdr .btn-play { padding: 0 20px; }
  .menu-btn, .msheet, .mscrim { display: none !important; }
  .hdr-actions { gap: 12px; }
}
@media (min-width: 1024px) and (max-width: 1279.98px) { .nav { margin-left: 12px; } .nav a { padding: 0 10px; } .nav a::after { left: 10px; right: 10px; } .hdr .btn-play { padding: 0 14px; } .btn-wallet { max-width: 200px; } }

/* ============ 卡片（主站同款） ============ */
.card { position: relative; background: linear-gradient(180deg, rgba(255, 236, 200, .04), rgba(255, 236, 200, 0) 42%), var(--surface); border: 1px solid var(--line); border-top-color: rgba(244, 208, 138, .26); border-radius: var(--radius); box-shadow: inset 0 1px 0 rgba(255, 230, 190, .06), var(--shadow); }
.k-newbie { --k: var(--c-newbie); } .k-invite { --k: var(--c-invite); } .k-premium { --k: var(--c-premium); } .k-crit { --k: var(--c-crit); }
.k-mining { --k: var(--c-mining); } .k-game { --k: var(--c-game); } .k-team { --k: var(--c-team); } .k-marketing { --k: var(--c-marketing); }

/* ============ 首屏 ============ */
.hero { position: relative; isolation: isolate; overflow: hidden; padding: 12px 0 28px; }
.hero-media { position: absolute; inset: 0; z-index: -2; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 14%; opacity: .34; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: var(--noise), linear-gradient(180deg, rgba(12, 9, 7, .5) 0%, rgba(12, 9, 7, .82) 34%, rgba(12, 9, 7, .94) 62%, var(--bg) 100%); }
.hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 60%; z-index: -1; background: radial-gradient(50% 40% at 25% 70%, rgba(240, 113, 42, .12), transparent 100%), radial-gradient(45% 40% at 80% 72%, rgba(143, 208, 255, .08), transparent 100%); pointer-events: none; }
.hero-in { display: grid; gap: 16px; }
.hero-copy { display: grid; gap: 11px; align-content: start; justify-items: start; min-width: 0; container-type: inline-size; }
.hero-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.kicker-name { font: 600 12.5px/1.3 var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--ember-hi); }
:root:lang(zh) .kicker-name { letter-spacing: .12em; }
.mode-pill { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; min-height: 28px; padding: 3px 11px 3px 9px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .5); font: 600 12px/1.25 var(--f-body); color: var(--text-2); }
.mode-pill .dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--text-3); }
.mode-pill.is-live { border-color: rgba(95, 224, 138, .4); color: #c9f3d6; }
.mode-pill.is-live .dot { background: #5fe08a; }
.mode-pill.is-demo .dot { background: var(--gold); }
.mode-pill.is-svcDown, .mode-pill.is-badChain { border-color: rgba(255, 179, 122, .55); color: var(--warn); }
.mode-pill.is-svcDown .dot, .mode-pill.is-badChain .dot { background: var(--warn); }
.mode-note { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(255, 179, 122, .45); background: rgba(60, 30, 12, .55); color: var(--warn); font-size: 13.5px; }
.mode-note .i { width: 16px; height: 16px; }

/* 字标：GameFi ⚔ Agent ID —— 交叉双剑取自主站标志 */
/* 字号按所在栏的宽度算（cqi = 栏宽的 1%）：一行「GameFi ⚔ Agent ID」约 10.4 个字号宽，取 9.2cqi 留余量；
   不支持容器单位的旧浏览器退回 vw；万一字体比预期宽，允许换行，绝不溢出到右侧奖池卡上 */
.lockup { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .2em; max-width: 100%; margin: 2px 0 0; font: 800 clamp(29px, 8.3vw, 70px)/1.02 var(--f-display); font-size: clamp(28px, 9.2cqi, 70px); letter-spacing: .015em; color: #fff1d6; }
.lk-word { white-space: nowrap; background: linear-gradient(180deg, #fff7e0 0%, #f4d08a 46%, #c48a3e 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 2px 14px rgba(0, 0, 0, .75)); padding-bottom: .05em; }
.lk-x { flex: none; display: inline-grid; place-items: center; width: 1.04em; height: 1.04em; margin-top: -.06em; }
.lk-x svg { width: 100%; height: 100%; fill: none; stroke: url(#g-ember); stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 10px rgba(255, 140, 60, .6)) drop-shadow(0 1px 0 rgba(0, 0, 0, .9)); }
.hero-sub { max-width: 46ch; color: var(--text); font-size: 15px; line-height: 1.5; text-shadow: 0 1px 10px rgba(0, 0, 0, .9); }
.hero-sub b { color: var(--gold-hi); font-weight: 700; white-space: nowrap; }
.hero-cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; max-width: 520px; margin-top: 2px; }
.hero-cta .btn { --h: 52px; padding-inline: 10px; gap: 7px; font-size: 14px; letter-spacing: .05em; }
.hero-cta .btn img { width: 20px; height: 20px; }
@media (max-width: 400px) { .hero-cta .btn, .dock .btn { font-size: 13px; letter-spacing: .03em; gap: 6px; padding-inline: 8px; } .hero-cta .btn img, .dock .btn img { width: 18px; height: 18px; } }
@media (max-width: 370px) { .hero-cta .btn img, .dock .btn img { display: none; } }
.hero-links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; font-size: 14px; }
.hero-links a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; text-decoration: none; }
.hero-links a:not(.rules-link) { color: var(--c-invite); }
.hero-links a:hover { text-decoration: underline; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; color: var(--text-2); font-size: 12.5px; line-height: 1.45; }
.hero-meta li { display: inline-flex; align-items: flex-start; gap: 6px; max-width: 100%; }
.hero-meta .i { width: 15px; height: 15px; margin-top: 2px; color: var(--gold); }

/* 两个特色奖池：手机为左环右文的横卡，≥640 并排，≥1100 在首屏右栏 */
.portals { display: grid; gap: 12px; min-width: 0; }
.portal { --c: var(--ember-hi); --c-hi: #ffd8ad; --glow: rgba(240, 113, 42, .55); position: relative; isolation: isolate; display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 8px 14px; align-items: center; padding: 13px 14px 12px; border-radius: 18px; border: 1px solid; overflow: hidden; box-shadow: 0 30px 60px -34px #000, inset 0 1px 0 rgba(255, 255, 255, .06); }
.portal.is-fire { border-color: rgba(255, 154, 85, .45); background: radial-gradient(120% 90% at 0% 0%, rgba(240, 113, 42, .24), transparent 58%), linear-gradient(180deg, rgba(38, 20, 12, .94), rgba(22, 13, 9, .96)); }
.portal.is-frost { --c: var(--frost); --c-hi: var(--frost-hi); --glow: rgba(110, 190, 255, .5); border-color: rgba(143, 208, 255, .42); background: radial-gradient(120% 90% at 0% 0%, rgba(110, 180, 240, .2), transparent 58%), linear-gradient(180deg, rgba(14, 26, 36, .94), rgba(10, 17, 24, .96)); }
.portal::before { content: ""; position: absolute; left: 14%; right: 14%; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, var(--c), transparent); box-shadow: 0 0 12px var(--glow); }
.pt-ring { position: relative; align-self: center; width: 78px; aspect-ratio: 1; }
.pt-ring img { position: absolute; inset: 9%; width: 82%; height: 82%; border-radius: 50%; object-fit: cover; opacity: .5; filter: saturate(1.15) brightness(.9); }
.pt-ring > svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.pt-track { fill: none; stroke: rgba(255, 255, 255, .09); stroke-width: 4; }
.pt-arc { fill: none; stroke: var(--c); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; filter: drop-shadow(0 0 5px var(--glow)); }
.pt-cd { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; text-align: center; gap: 1px; }
.pt-cd b { font: 700 12.5px/1.1 var(--f-body); font-variant-numeric: tabular-nums; color: #fff; text-shadow: 0 1px 6px #000, 0 0 2px #000; }
.pt-cd small { font: 600 10px/1.1 var(--f-body); color: var(--c-hi); text-shadow: 0 1px 4px #000; letter-spacing: .02em; }
.pt-body { display: grid; gap: 4px; min-width: 0; align-content: start; }
.pt-title { font: 700 15px/1.2 var(--f-display); letter-spacing: .04em; }
.pt-title a { display: inline-flex; align-items: center; gap: 7px; color: var(--c-hi); text-decoration: none; }
.pt-title a:hover { color: #fff; text-decoration: underline; }
.pt-title .i { width: 17px; height: 17px; color: var(--c); }
.pt-bal { position: relative; display: grid; gap: 1px; }
.pt-l { font-size: 12px; color: var(--text-3); }
.pt-v { font: 800 clamp(24px, 6.6vw, 34px)/1.05 var(--f-display); color: #fff; letter-spacing: .01em; overflow-wrap: anywhere; }
.portal.is-fire .pt-v > span { background: linear-gradient(180deg, #fff6dc 0%, #ffcf8a 50%, #f08a3a 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.portal.is-frost .pt-v > span { background: linear-gradient(180deg, #ffffff 0%, #cdeeff 50%, #7cc2f2 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.pt-v small { font: 700 13px/1 var(--f-body); color: var(--c-hi); letter-spacing: .04em; }
.pt-dep { position: absolute; right: 0; top: 0; font: 800 14px/1 var(--f-body); color: var(--c-hi); text-shadow: 0 0 10px var(--glow); opacity: 0; pointer-events: none; }
.pt-dep.go { animation: dep 1.5s var(--ease) forwards; }
@keyframes dep { 0% { opacity: 0; transform: translateY(14px); } 18% { opacity: 1; } 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(-14px); } }
.pt-v.bump { animation: bump .9s ease; }
.pt-lines { grid-column: 1 / -1; display: grid; gap: 2px; font-size: 12.5px; color: var(--text-2); line-height: 1.4; }
.pt-lines li { padding-left: 14px; position: relative; }
.pt-lines li::before { content: ""; position: absolute; left: 2px; top: .58em; width: 5px; height: 5px; transform: rotate(45deg); border: 1px solid var(--c); }
.pt-lines .pt-at { color: var(--text-3); }
.pt-split { grid-column: 1 / -1; display: grid; gap: 5px; }
.split3-cap { font-size: 12px; font-weight: 600; color: var(--frost); }
.split3 { display: flex; height: 8px; gap: 2px; border-radius: 99px; overflow: hidden; }
.split3 i { display: block; height: 100%; }
.split3 .s-project, .split3-leg .s-project { background: rgba(203, 188, 159, .38); }
.split3 .s-holders, .split3-leg .s-holders { background: var(--frost); }
.split3 .s-jackpot, .split3-leg .s-jackpot { background: #4f9fd6; box-shadow: inset 0 0 0 1px rgba(214, 240, 255, .6); }
.split3-leg { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12px; color: var(--text-3); }
.split3-leg span { display: inline-flex; align-items: center; gap: 5px; }
.split3-leg i { width: 8px; height: 8px; border-radius: 2px; }
.split3-leg b { color: var(--text); font-weight: 700; }
.pt-link { display: none; grid-column: 1 / -1; justify-self: start; margin-top: 2px; font-size: 13.5px; font-weight: 600; color: var(--c-hi); text-decoration: none; }
.pt-link:hover { text-decoration: underline; color: #fff; }

/* 全网实况 */
.ticker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 22px; background: var(--line); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.ticker > div { min-width: 0; padding: 12px 14px; background: radial-gradient(80% 90% at 50% 0%, rgba(217, 168, 91, .06), transparent 70%), var(--bg-2); }
.ticker dt { display: flex; align-items: center; gap: 6px; font: 600 12px/1.3 var(--f-body); color: var(--text-3); }
.ticker dt .i { width: 15px; height: 15px; color: var(--gold); }
.ticker dd { margin-top: 5px; font: 800 20px/1.1 var(--f-display); color: var(--gold-hi); overflow-wrap: anywhere; }
.ticker dd small { font-family: var(--f-body); font-size: 12px; }
.ticker .tk-s { display: block; margin-top: 3px; font: 500 12.5px/1.35 var(--f-body); color: var(--text-2); }
/* 副行是第二个 dd（无障碍：dl 的分组只含 dt / dd），压过上面 dd 的大字号 */
.ticker dd.tk-s, .ticker.is-static dd.tk-s { margin-top: 3px; font: 500 12.5px/1.35 var(--f-body); color: var(--text-2); }
.ticker .cd { font-variant-numeric: tabular-nums; }
.ticker dd.flip { animation: flip .7s var(--ease); }
@keyframes flip { 0% { opacity: .2; transform: translateY(6px); } 100% { opacity: 1; transform: none; } }
.mini-bar { display: flex; height: 5px; margin-top: 7px; border-radius: 99px; overflow: hidden; gap: 1px; }
.mini-bar i { display: block; height: 100%; }
.mini-bar .k-mining { background: var(--c-mining); } .mini-bar .k-game { background: var(--c-game); } .mini-bar .k-team { background: var(--c-team); } .mini-bar .k-marketing { background: var(--c-marketing); }

@media (min-width: 640px) {
  .portals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal { grid-template-columns: minmax(0, 1fr); justify-items: start; align-content: start; gap: 8px; padding: 18px; }
  .pt-ring { width: 116px; justify-self: center; margin-bottom: 4px; }
  .pt-cd b { font-size: 16px; }
  .pt-cd small { font-size: 11px; }
  .pt-lines, .pt-split, .pt-link { grid-column: auto; }
  .pt-body, .pt-lines, .pt-split { width: 100%; }
  .pt-lines { font-size: 13px; gap: 3px; }
  .pt-link { display: inline-block; margin-top: auto; padding-top: 6px; }
  .portal { display: flex; flex-direction: column; align-items: flex-start; }
  .pt-ring { align-self: center; }
}
@media (min-width: 760px) { .ticker { grid-template-columns: repeat(4, minmax(0, 1fr)); } .hero { padding-top: 26px; } }
@media (min-width: 900px) {
  .hero-media img { object-position: 100% 30%; opacity: .5; }
  .hero-media::after { background: var(--noise), linear-gradient(90deg, var(--bg) 0%, rgba(12, 9, 7, .88) 34%, rgba(12, 9, 7, .55) 64%, rgba(12, 9, 7, .72) 100%), linear-gradient(180deg, rgba(12, 9, 7, .4) 0%, transparent 26%, rgba(12, 9, 7, .78) 82%, var(--bg) 100%); }
}
@media (min-width: 1100px) {
  .hero { padding: 40px 0 34px; }
  .hero-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 40px; align-items: center; }
  .hero-copy { gap: 16px; }
  .hero-sub { font-size: 17px; }
  .hero-cta .btn { --h: 54px; font-size: 15px; padding-inline: 18px; }
  .pt-ring { width: 128px; }
}
@media (min-width: 1100px) and (max-height: 820px) { .hero { padding-top: 26px; } .pt-ring { width: 108px; } }

/* ============ 三种挖矿方式 ============ */
.ways { display: grid; gap: 14px; align-items: start; }
.way { display: grid; gap: 12px; align-content: start; padding: 18px 16px 16px; border-top: 3px solid var(--k); min-width: 0; }
.way-pool { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font: 600 12.5px/1.3 var(--f-body); color: var(--k); }
.way-pool b { margin-left: auto; font-weight: 700; color: var(--text-2); }
.pool-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--k); box-shadow: 0 0 10px var(--k); }
.way-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: clamp(23px, 3.2vw, 28px); color: #fff1d6; }
.tag-bnb { font: 700 11.5px/1 var(--f-body); letter-spacing: .04em; padding: 5px 9px; border-radius: 999px; color: #04121c; background: linear-gradient(180deg, #dff3ff, #8fd0ff); }
.way-what { font-size: 15px; color: var(--text); }
.way-now { font-size: 13px; color: var(--text-3); }
.my-state { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-height: 22px; font-size: 13.5px; color: var(--text-2); }
.my-state:empty { display: none; }
.my-state .ms-l { color: var(--text-3); }
.my-state.is-hint { color: var(--text-3); }
.my-state .i { width: 16px; height: 16px; color: var(--gold); }
.chip { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 9px; border-radius: 999px; font: 700 11.5px/1.2 var(--f-body); letter-spacing: .03em; white-space: nowrap; border: 1px solid; }
.chip.st-active { color: #bff0cf; border-color: rgba(138, 211, 163, .5); background: rgba(138, 211, 163, .1); }
.chip.st-pending { color: #ffe0a6; border-color: rgba(244, 208, 138, .55); background: rgba(244, 208, 138, .1); }
.chip.st-expired, .chip.st-none { color: var(--text-3); border-color: rgba(163, 146, 122, .4); background: rgba(163, 146, 122, .08); }
.field { display: grid; gap: 6px; }
.field label { font-size: 13px; font-weight: 600; color: var(--text-2); }
.opt { font-style: normal; font-weight: 500; color: var(--text-3); }
.field input, .lookup input, .copy-row input { width: 100%; min-height: 46px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .35); color: var(--text); font-size: 15px; }
.field input:focus, .lookup input:focus, .copy-row input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(217, 168, 91, .2); }
.help { font-size: 12.5px; color: var(--text-3); }
.help.ok { color: var(--ok); } .help.warn { color: var(--warn); }
.estimate { display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; background: rgba(0, 0, 0, .3); border: 1px solid var(--line); }
.est-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px; }
.est-l { font-size: 12.5px; color: var(--text-3); }
.est-v { font: 800 20px/1.2 var(--f-display); color: var(--gold-hi); }
.est-v small { font-family: var(--f-body); font-size: 12px; }
.est-line { display: flex; align-items: flex-start; gap: 6px; font-size: 13px; color: var(--text-2); }
.est-line .i { width: 15px; height: 15px; margin-top: 2px; color: var(--gold); }
.est-line.is-bnb .i { color: var(--frost); }
.way-act { display: grid; gap: 8px; }
.way-via { font-size: 12.5px; color: var(--text-3); text-align: center; }
.agent-pre summary { cursor: pointer; font-size: 12.5px; color: var(--text-3); text-align: center; list-style: none; }
.agent-pre summary::-webkit-details-marker { display: none; }
.agent-pre summary::after { content: " ▾"; }
.agent-pre[open] summary::after { content: " ▴"; }
.agent-pre pre { margin: 8px 0 0; max-height: 260px; overflow: auto; padding: 12px; border-radius: 10px; background: #0a0806; border: 1px solid var(--line); color: var(--text-2); font: 12px/1.55 var(--f-mono); white-space: pre-wrap; word-break: break-word; }

/* 钻石礼包：收据式写清「买的是钻石，赠送什么」 */
.receipt { border: 1px solid rgba(143, 208, 255, .3); border-radius: 14px; background: linear-gradient(180deg, rgba(14, 28, 40, .6), rgba(8, 14, 20, .5)); padding: 2px 14px; }
.rc-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 12px; padding: 12px 0; border-bottom: 1px dashed rgba(143, 208, 255, .25); }
.rc-l { grid-column: 1 / -1; font-size: 12px; font-weight: 600; color: var(--frost); }
.rc-item { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rc-item img { width: 30px; height: 30px; flex: none; filter: drop-shadow(0 0 10px rgba(143, 208, 255, .45)); }
.rc-item b { display: block; font: 700 17px/1.2 var(--f-display); color: #fff; }
.rc-item small { display: block; margin-top: 2px; font: 500 12px/1.35 var(--f-body); color: var(--text-3); letter-spacing: 0; }
.rc-price { font: 800 16px/1.2 var(--f-body); color: var(--frost-hi); white-space: nowrap; }
.rc-free { grid-template-columns: minmax(0, 1fr); }
.rc-gifts { display: grid; gap: 6px; }
.rc-gifts li { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: var(--text); }
.rc-gifts .i { width: 16px; height: 16px; margin-top: 3px; color: var(--frost); }
.rc-note { display: flex; align-items: flex-start; gap: 8px; padding: 11px 0 12px; font-size: 13px; color: var(--frost-hi); }
.rc-note .i { width: 16px; height: 16px; margin-top: 2px; color: var(--frost); }
.qty-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.qty-row label { font-size: 13px; font-weight: 600; color: var(--text-2); }
.stepper { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; background: rgba(0, 0, 0, .3); }
.stepper button { display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; color: var(--text); cursor: pointer; }
.stepper button:hover { background: rgba(217, 168, 91, .1); }
.stepper input { width: 52px; height: 44px; border: 0; border-inline: 1px solid var(--line); background: transparent; text-align: center; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.stepper input::-webkit-inner-spin-button, .stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.qty-total { margin-left: auto; font-size: 13px; color: var(--text-3); text-align: right; }
.qty-total b { display: block; font-size: 15px; color: var(--frost-hi); }
.pack-cap { display: grid; gap: 6px; font-size: 13.5px; color: var(--text-2); }
.pack-cap .pc-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
.pack-cap b { color: var(--text); }
.pack-cap .why { color: var(--text-3); font-size: 12.5px; }
.pack-cap.is-full .pc-top b { color: var(--warn); }
.cap-pips { display: flex; flex-wrap: wrap; gap: 3px; }
.cap-pips i { width: 10px; height: 10px; border-radius: 3px; background: rgba(143, 208, 255, .1); border: 1px solid rgba(143, 208, 255, .32); }
.cap-pips i.on { background: var(--frost); border-color: var(--frost); }
.cap-pips i.inv { border-color: rgba(195, 166, 255, .75); }
.cap-pips i.inv.on { background: var(--c-invite); border-color: var(--c-invite); }

/* 邀请：两项权益 */
.perks { display: grid; gap: 10px; }
.perks li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 14.5px; color: var(--text); }
.perk-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; color: var(--k); background: rgba(255, 255, 255, .04); border: 1px solid var(--k); }
.perk-ic .i { width: 17px; height: 17px; }
.inv-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.inv-stats > div { padding: 10px 10px 9px; background: var(--bg-2); min-width: 0; }
.inv-stats dt { font-size: 11.5px; color: var(--text-3); line-height: 1.3; }
.inv-stats dd { margin-top: 3px; font: 800 17px/1.1 var(--f-display); color: var(--text); overflow-wrap: anywhere; }
.inv-stats dd.cap { color: var(--frost-hi); }
.inv-link { display: grid; gap: 6px; }
.inv-link .lbl { font-size: 13px; font-weight: 600; color: var(--text-2); }
.inv-link .small { display: flex; gap: 6px; align-items: flex-start; }
.inv-link .small .i { width: 15px; height: 15px; margin-top: 2px; color: var(--c-invite); }
.copy-row { display: flex; gap: 8px; }
.copy-row input { min-width: 0; flex: 1; font: 12.5px var(--f-mono); }
.copy-row .btn { flex: none; }
.inv-valid { font-size: 12px; }

.howto { display: grid; gap: 10px; margin-top: 16px; }
.how { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 14px 16px; border-radius: 14px; border: 1px dashed var(--line-2); background: rgba(0, 0, 0, .22); }
.how-ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--gold-hi); background: rgba(217, 168, 91, .1); border: 1px solid var(--line-2); align-self: start; }
.how-t { font: 700 15px/1.3 var(--f-display); color: var(--text); letter-spacing: .02em; }
.how p { font-size: 13.5px; color: var(--text-2); margin-top: 2px; }
.how .btn { grid-column: 2; justify-self: start; margin-top: 6px; }
@media (min-width: 760px) {
  .ways { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .way.k-invite { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
  .way.k-invite > :is(.way-pool, .way-title, .way-what, .perks) { grid-column: 1; }
  .way.k-invite > :is(.way-now, .inv-stats, .inv-link, .inv-valid) { grid-column: 2; }
  .way.k-invite > .way-now { grid-row: 1; }
  .howto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .ways { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .way.k-invite { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
  .way.k-invite > * { grid-column: auto !important; grid-row: auto !important; }
}

/* ============ 交易进度（钱包确认 → 已广播 → 已确认），出错时给人话 + 重试 ============ */
.txbox { display: grid; gap: 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .34); }
.txbox.is-err { border-color: rgba(255, 138, 122, .5); background: rgba(50, 14, 10, .45); }
.txbox.is-ok { border-color: rgba(138, 211, 163, .5); background: rgba(14, 40, 24, .4); }
.tx-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.tx-steps li { position: relative; padding-top: 9px; font-size: 11.5px; line-height: 1.3; color: var(--text-3); }
.tx-steps li::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .1); }
.tx-steps li.done { color: var(--ok); }
.tx-steps li.done::before { background: var(--ok); }
.tx-steps li.now { color: var(--gold-hi); }
.tx-steps li.now::before { background: linear-gradient(90deg, var(--gold-hi), rgba(244, 208, 138, .2), var(--gold-hi)); animation: shimmer 1.4s ease-in-out infinite; }
.tx-steps li.fail { color: var(--err); }
.tx-steps li.fail::before { background: var(--err); }
@keyframes shimmer { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
.tx-msg { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: var(--text); }
.tx-msg .i { width: 18px; height: 18px; margin-top: 1px; }
.txbox.is-err .tx-msg .i { color: var(--err); }
.txbox.is-ok .tx-msg .i { color: var(--ok); }
.tx-hash { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12.5px; color: var(--text-3); }
.tx-act { display: flex; flex-wrap: wrap; gap: 8px; }
.tx-raw summary { cursor: pointer; font-size: 12px; color: var(--text-3); }
.tx-raw code { display: block; margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: #0a0806; color: var(--text-3); font: 11.5px/1.5 var(--f-mono); white-space: pre-wrap; word-break: break-word; }
.spin { display: inline-block; flex: none; width: 16px; height: 16px; margin-top: 2px; border-radius: 50%; border: 2px solid rgba(244, 208, 138, .25); border-top-color: var(--gold-hi); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ============ 我的挖矿 ============ */
.me-bar { display: grid; gap: 10px; max-width: 760px; margin: 0 auto 18px; }
.me-empty-lead { text-align: center; color: var(--text-2); font-size: 15px; }
.lookup { display: flex; gap: 8px; }
.lookup input { flex: 1; min-width: 0; }
.lookup .btn { flex: none; }
.me-msg { padding: 16px 18px; text-align: center; color: var(--text-2); max-width: 760px; margin: 0 auto; }
.me-msg.is-warn { color: var(--warn); }
.me-msg .btn { margin-top: 12px; }
.me-dash { display: grid; gap: 14px; }
.me-id { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.me-name { display: inline-flex; align-items: center; gap: 8px; font: 700 22px/1.2 var(--f-display); color: #fff1d6; }
.pill { font: 700 11px/1 var(--f-body); padding: 4px 8px; border-radius: 999px; background: rgba(240, 113, 42, .18); color: var(--ember-hi); letter-spacing: .04em; }
.me-meta { font-size: 13px; color: var(--text-3); }
.me-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tile { display: grid; gap: 4px; align-content: start; min-width: 0; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--bg-2); }
.tile .t-l { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-3); }
.tile .t-l img { width: 18px; height: 18px; }
.tile .t-v { font: 800 clamp(19px, 5.2vw, 26px)/1.1 var(--f-display); color: var(--gold-hi); overflow-wrap: anywhere; }
.tile .t-v small { font-family: var(--f-body); font-size: 12px; }
.tile .t-s { font-size: 12.5px; color: var(--text-3); line-height: 1.4; }
.tile.is-loot { grid-column: 1 / -1; border-color: rgba(255, 154, 85, .35); background: radial-gradient(100% 80% at 0% 0%, rgba(240, 113, 42, .12), transparent 60%), var(--bg-2); }
.tile.is-bonus { grid-column: 1 / -1; border-color: rgba(244, 208, 138, .3); }
.tile.is-bnb { border-color: rgba(143, 208, 255, .35); background: radial-gradient(100% 80% at 0% 0%, rgba(110, 180, 240, .12), transparent 60%), var(--bg-2); }
.tile.is-bnb .t-v, .tile.is-dia .t-v { color: var(--frost-hi); }
.acc-bar { display: flex; height: 7px; margin-top: 6px; border-radius: 99px; overflow: hidden; background: rgba(255, 255, 255, .06); gap: 1px; }
.acc-bar i { display: block; height: 100%; background: var(--k); }
.acc-list { display: flex; flex-wrap: wrap; gap: 2px 14px; margin-top: 4px; font-size: 12px; color: var(--text-3); }
.acc-list li { display: inline-flex; align-items: center; gap: 5px; }
.acc-list li::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--k); }
.acc-list b { color: var(--text-2); font-weight: 600; }
.me-claims { display: grid; gap: 12px; }
.claim { display: grid; gap: 12px; align-content: start; padding: 16px; }
.claim.is-loot { border-top: 3px solid var(--ember); }
.claim.is-bnb { border-top: 3px solid var(--frost); }
.claim-t { display: flex; align-items: center; gap: 8px; font-size: 18px; color: #fff1d6; }
.claim-body { display: grid; gap: 10px; }
.claim-nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.claim-nums > div { padding: 10px 12px; border-radius: 10px; background: rgba(0, 0, 0, .28); border: 1px solid var(--line); min-width: 0; }
.claim-nums span { display: block; font-size: 12px; color: var(--text-3); }
.claim-nums b { display: block; margin-top: 2px; font: 800 17px/1.15 var(--f-display); color: var(--text); overflow-wrap: anywhere; }
.claim-nums .hl { border-color: var(--line-3); }
.claim-nums .hl b { color: var(--gold-hi); }
.claim.is-bnb .claim-nums .hl { border-color: rgba(143, 208, 255, .55); }
.claim.is-bnb .claim-nums .hl b { color: var(--frost-hi); }
.claim-lock { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 13.5px; color: var(--text-2); }
.claim-lock .i { width: 16px; height: 16px; color: var(--gold); }
.claim-lock b { color: var(--gold-hi); font-variant-numeric: tabular-nums; }
.claim-lock.is-open .i { color: var(--ok); }
.claim-foot { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12.5px; color: var(--text-3); }
.claim-foot:empty { display: none; }
.adv summary { cursor: pointer; font-size: 13px; color: var(--frost); }
.adv[open] { display: grid; gap: 8px; }
.me-lower { display: grid; gap: 12px; }
.me-shares, .me-inv { padding: 16px; display: grid; gap: 12px; align-content: start; }
.sh-list { display: grid; gap: 8px; }
.sh { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; align-items: center; padding: 10px 12px; border-radius: 12px; background: rgba(0, 0, 0, .25); border: 1px solid var(--line); border-left: 3px solid var(--k); }
.sh.is-expired { opacity: .62; }
.sh-l b { display: block; font-size: 14px; color: var(--text); overflow-wrap: anywhere; }
.sh-l span { font-size: 12px; color: var(--text-3); }
.sh-life { grid-column: 1 / -1; display: grid; gap: 4px; }
.sh-life .bar { display: block; height: 4px; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.sh-life .bar i { display: block; height: 100%; background: var(--k); }
.sh-life .small { font-size: 12px; color: var(--text-3); }
@media (min-width: 640px) { .me-bar { grid-template-columns: minmax(0, 1fr) auto; } .me-empty-lead { grid-column: 1 / -1; } }
@media (min-width: 760px) {
  .me-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tile.is-bonus { grid-column: auto; }
  .me-claims { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .me-tiles { grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)); }
  .tile.is-loot { grid-column: auto; }
}
@media (min-width: 1024px) { .me-lower { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; } }

/* ============ 奖池（开奖记录） ============ */
.jp-cols { display: grid; gap: 14px; align-items: start; }
.jp-col { padding: 18px 16px; display: grid; gap: 12px; align-content: start; }
.jp-col.is-fire { border-top: 3px solid var(--ember); background: radial-gradient(90% 50% at 0% 0%, rgba(240, 113, 42, .1), transparent 70%), var(--surface); }
.jp-col.is-frost { border-top: 3px solid var(--frost); background: radial-gradient(90% 50% at 0% 0%, rgba(110, 180, 240, .1), transparent 70%), var(--surface); }
.jp-h { display: flex; align-items: center; gap: 8px; font-size: 21px; color: #fff1d6; }
.jp-col.is-fire .jp-h .i { color: var(--ember-hi); }
.jp-col.is-frost .jp-h .i { color: var(--frost); }
.jp-lead { font-size: 14.5px; color: var(--text-2); }
.jp-sub { font: 600 13px/1.3 var(--f-body); color: var(--text-3); }
.jp-foot { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; font-size: 13px; color: var(--text-3); }
.odds { display: grid; gap: 6px; }
.odds-l { font-size: 12.5px; color: var(--text-3); }
.odds ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.odds li { display: grid; gap: 2px; padding: 9px 10px; border-radius: 10px; background: rgba(0, 0, 0, .28); border: 1px solid var(--line); border-top: 2px solid var(--k); min-width: 0; }
.odds li span { font-size: 12px; color: var(--text-3); }
.odds li b { font: 800 15px/1.2 var(--f-display); color: var(--text); }
.draw-list, .bnb-list { display: grid; gap: 8px; }
.draw { padding: 12px; border-radius: 12px; background: rgba(0, 0, 0, .26); border: 1px solid var(--line); display: grid; gap: 8px; }
.draw-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 10px; }
.draw-head b { font: 700 15px/1.2 var(--f-display); color: var(--text); }
.winners { display: grid; gap: 6px; }
.winners li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; font-size: 13px; }
.chip-pool { color: var(--k); border-color: var(--k); background: rgba(255, 255, 255, .03); }
.wn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.wn i { font-style: normal; color: var(--text-3); margin-left: 6px; font-size: 12px; }
.wv { text-align: right; white-space: nowrap; }
.wv b { color: var(--ember-hi); }
.wv i { font-style: normal; display: block; font-size: 11.5px; color: var(--text-3); }
.draw-meta { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12px; color: var(--text-3); }
.draw-empty { padding: 14px; text-align: center; color: var(--text-3); font-size: 13.5px; }
.bnb-net { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgba(143, 208, 255, .18); border: 1px solid rgba(143, 208, 255, .2); border-radius: 12px; overflow: hidden; }
.bnb-net > div { padding: 10px; background: #0d151c; min-width: 0; }
.bnb-net dt { font-size: 11.5px; color: var(--text-3); line-height: 1.3; }
.bnb-net dd { margin-top: 3px; font: 800 16px/1.15 var(--f-display); color: var(--frost-hi); overflow-wrap: anywhere; }
.bnb-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; background: rgba(0, 0, 0, .26); border: 1px solid rgba(143, 208, 255, .16); font-size: 13.5px; }
.bnb-list .bd-id { font-weight: 700; color: var(--text-3); }
.bnb-list .bd-w { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bnb-list .bd-v { text-align: right; white-space: nowrap; }
.bnb-list .bd-v b { color: var(--frost-hi); }
.bnb-list .bd-v i { font-style: normal; display: block; font-size: 11.5px; color: var(--text-3); }
.bnb-list .bd-empty { display: block; text-align: center; color: var(--text-3); }
@media (min-width: 1024px) { .jp-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ============ 出块墙 ============ */
.wall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.blk { position: relative; display: grid; gap: 8px; align-content: start; min-width: 0; padding: 12px; border-radius: 14px; border: 1px solid var(--line); background: var(--bg-2); }
.blk.next { border-style: dashed; border-color: var(--line-3); background: repeating-linear-gradient(135deg, rgba(217, 168, 91, .05) 0 10px, transparent 10px 20px), var(--bg-2); }
.blk.has-draw { border-color: rgba(255, 154, 85, .5); }
.b-top { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; }
.b-h { font: 800 15px/1.1 var(--f-display); color: var(--gold-hi); }
.b-t, .b-k { font-size: 11.5px; color: var(--text-3); }
.b-k { color: var(--ember-hi); font-weight: 700; }
.b-sum { display: flex; align-items: baseline; gap: 6px; }
.b-r { font: 800 19px/1.1 var(--f-display); color: var(--text); }
.b-sum small { font-size: 11px; }
.b-cd { font-size: 12px; color: var(--text-2); font-variant-numeric: tabular-nums; }
.b-draw { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: var(--ember-hi); text-decoration: none; }
.b-draw .i { width: 14px; height: 14px; }
.cat-bar { display: flex; height: 5px; border-radius: 99px; overflow: hidden; gap: 1px; }
.cat-bar i { display: block; height: 100%; background: var(--k); }
.b-alloc { display: grid; gap: 4px; font-size: 12px; }
.b-alloc > li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 6px; color: var(--text-3); }
.b-alloc > li > span::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 2px; margin-right: 5px; background: var(--k); }
.b-alloc b { color: var(--text-2); }
.b-alloc em { flex-basis: 100%; font-style: normal; font-size: 11.5px; color: var(--text-3); padding-left: 12px; }
.b-pools { display: block !important; padding-left: 12px; }
.b-pools table { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.b-pools th { text-align: left; font-weight: 600; padding: 1px 0; }
.b-pools td { text-align: right; color: var(--text-2); }
.b-pools td.w { color: var(--text-3); width: 3.2em; }
.b-pools .r-newbie th { color: var(--c-newbie); } .b-pools .r-invite th { color: var(--c-invite); } .b-pools .r-premium th { color: var(--c-premium); }
.b-crit { display: flex; align-items: center; gap: 4px; margin-top: 2px; font-size: 11.5px; color: var(--c-crit); }
.b-crit .i { width: 13px; height: 13px; }
.b-bnb { display: flex; align-items: flex-start; gap: 5px; font-size: 11.5px; color: var(--frost); }
.b-bnb img { width: 12px; height: 12px; margin-top: 2px; }
.b-joins { display: grid; gap: 3px; font-size: 12px; }
.b-joins li { display: flex; justify-content: space-between; gap: 6px; }
.b-joins .jn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); }
.b-joins .jw { flex: none; color: var(--text-3); }
.b-joins .dia .jw { color: var(--frost); }
.b-joins .more { color: var(--text-3); }
.b-none { font-size: 12px; color: var(--text-3); }
.wall-empty { grid-column: 1 / -1; padding: 16px; text-align: center; color: var(--text-3); }
.ledger { font-size: 12.5px; }
@media (min-width: 640px) { .wall { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .wall { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1240px) { .wall { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* ============ 代币经济 ============ */
.tok-top { display: grid; gap: 14px; }
.tok-donut, .tok-split, .tok-ladder, .tok-game { padding: 18px 16px; }
.donut-wrap { display: grid; gap: 16px; justify-items: center; }
.donut-wrap svg { width: min(220px, 70vw); height: auto; }
.donut-wrap path { fill: var(--k); }
.d-big { font: 800 24px var(--f-display); fill: var(--gold-hi); }
.d-small { font: 600 11px var(--f-body); fill: var(--text-3); }
.donut-legend { display: grid; gap: 6px; width: 100%; }
.donut-legend li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto auto; gap: 8px; align-items: center; font-size: 13.5px; color: var(--text-2); }
.donut-legend li::before { content: ""; width: 12px; height: 12px; border-radius: 3px; background: var(--k); }
.donut-legend b { color: var(--text); }
.donut-legend i { font-style: normal; color: var(--text-3); font-size: 12.5px; min-width: 4.5em; text-align: right; }
.split-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 10px; margin-bottom: 10px; }
.split-head .s-l { font-size: 13px; color: var(--text-3); }
.split-total { font: 800 24px/1.1 var(--f-display); color: var(--gold-hi); }
.split-total small { font-family: var(--f-body); font-size: 12px; }
.split-bar { display: flex; height: 14px; border-radius: 99px; overflow: hidden; gap: 2px; }
.split-bar i { display: block; height: 100%; background: var(--k); }
.split-legend { display: grid; gap: 4px; margin: 10px 0 0; }
.split-legend li { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--text-2); }
.split-legend li span::before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 7px; background: var(--k); }
.split-legend b { color: var(--text); }
.split-sub { margin-top: 14px; padding: 12px 0 0 12px; border-left: 2px solid var(--c-mining); }
.split-arrow { display: block; margin-bottom: 8px; font-size: 13px; color: var(--c-mining); }
.split-bar.pools { height: 10px; }
.tok-rel { display: grid; gap: 12px; margin-top: 14px; }
.rel { padding: 16px; display: grid; gap: 10px; align-content: start; border-top: 3px solid var(--k); }
.rel header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.rel-tag { font: 700 15px/1.2 var(--f-display); color: var(--k); }
.rel header b { font: 800 22px/1 var(--f-display); color: var(--text); }
.rel-how { display: flex; gap: 6px; align-items: flex-start; font-size: 13.5px; color: var(--text-2); }
.rel-how .i { width: 15px; height: 15px; margin-top: 3px; color: var(--gold); }
.rel-v { display: grid; gap: 4px; }
.rel-v > div { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; }
.rel-v dt { color: var(--text-3); }
.rel-v dd { color: var(--text); font-weight: 600; text-align: right; }
.vest { width: 100%; height: auto; }
.v-lock { fill: rgba(157, 165, 180, .1); }
.v-grid { stroke: rgba(255, 255, 255, .08); }
.v-area { fill: rgba(157, 165, 180, .18); }
.v-line { fill: none; stroke: var(--c-team); stroke-width: 1.6; }
.v-ax, .v-lbl { font: 600 9px var(--f-body); fill: var(--text-3); }
.v-now { stroke: var(--ember-hi); stroke-width: 1.4; stroke-dasharray: 3 2; }
.tok-bottom { display: grid; gap: 14px; margin-top: 14px; }
.tok-ladder .h4, .tok-game .h4 { margin-bottom: 6px; }
.ladder-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 8px 0 6px; font-size: 12px; color: var(--text-3); }
.ladder-legend span::before { content: ""; display: inline-block; width: 14px; height: 3px; margin-right: 6px; vertical-align: middle; border-radius: 2px; }
.lg-base::before { background: var(--gold); } .lg-cum::before { background: var(--ember-hi); }
.ladder-chart { width: 100%; overflow: hidden; }
.ladder-chart svg { display: block; width: 100%; height: auto; }
.ladder-chart .grid { stroke: rgba(255, 255, 255, .07); }
.ladder-chart .ax { font: 600 10px var(--f-body); fill: var(--text-3); }
.ladder-chart .ax.cum { fill: var(--ember-hi); }
.ladder-chart .lbl { font: 700 10px var(--f-body); fill: var(--gold-hi); }
.ladder-chart .step-line { fill: none; stroke: var(--gold); stroke-width: 1.8; }
.ladder-chart .cum-line { fill: none; stroke: var(--ember-hi); stroke-width: 1.6; stroke-dasharray: 4 3; }
.ladder-note { margin-top: 6px; }
.uses { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.uses li { padding: 6px 11px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(217, 168, 91, .06); font-size: 13px; color: var(--text-2); }
.uses.launch li { display: inline-flex; align-items: center; gap: 6px; color: var(--text); border-color: rgba(138, 211, 163, .4); background: rgba(138, 211, 163, .07); }
.uses.launch .i { width: 15px; height: 15px; color: var(--ok); }
.tok-produced { display: grid; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.tok-produced .bar { display: block; height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.tok-produced .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--ember-hi)); }
.tok-produced p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; font-size: 13px; color: var(--text-3); }
.tok-produced b { color: var(--text); }
@media (min-width: 760px) {
  .tok-top { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: stretch; }
  .donut-wrap { grid-template-columns: auto minmax(0, 1fr); align-items: center; justify-items: start; }
  .donut-wrap svg { width: 190px; }
  .tok-rel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) { .tok-rel { grid-template-columns: repeat(4, minmax(0, 1fr)); } .tok-bottom { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; } }

/* ============ 排行榜 ============ */
/* 首发活动 */
.camp-when { margin: 0; font-size: 14px; color: var(--text-2); }
.camp-state { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px; margin: 0; font-size: 14px; color: var(--text-2); }
.camp-state b { color: var(--gold-hi); font-variant-numeric: tabular-nums; }
.camp-grid { display: grid; gap: 14px; align-items: start; }
.camp-side { display: grid; gap: 14px; min-width: 0; }
.camp-card { display: grid; gap: 12px; min-width: 0; padding: 16px; }
.camp-h { font-size: 18px; color: #fff1d6; }
.camp-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; color: var(--text-2); font-size: 14px; }
.camp-list li { position: relative; padding-left: 16px; overflow-wrap: anywhere; }
.camp-list li::before { content: ""; position: absolute; left: 2px; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--k, var(--gold)); }
.camp-tiers { display: grid; gap: 4px; margin: 0; }
.camp-tiers > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; padding: 8px 12px; border-radius: 10px; background: rgba(0, 0, 0, .22); }
.camp-tiers dt { min-width: 0; color: var(--text-2); font-size: 14px; }
.camp-tiers dd { margin: 0; color: var(--gold-hi); font-weight: 700; font-size: 14px; }
.camp-note { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 13px; color: var(--text-2); overflow-wrap: anywhere; }
.camp-note .i { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--gold); }
.camp-rows .rv { display: grid; justify-items: end; gap: 2px; }
.camp-rows .rv small { color: var(--text-3); font-size: 12px; white-space: nowrap; }
.camp-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.camp-tile { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border-radius: 10px; background: rgba(0, 0, 0, .22); }
.camp-tile span { font-size: 12.5px; color: var(--text-3); overflow-wrap: anywhere; }
.camp-tile b { color: var(--gold-hi); font-size: 16px; overflow-wrap: anywhere; }
.camp-bars { display: grid; gap: 10px; }
.camp-bars:empty { display: none; }
.camp-prog { display: grid; gap: 6px; }
.camp-prog p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 10px; margin: 0; font-size: 13.5px; color: var(--text-2); }
.camp-prog b { color: var(--gold-hi); font-variant-numeric: tabular-nums; }
.camp-prog .bar { display: block; height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.camp-prog .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--ember-hi)); }
.r-camp { display: grid; gap: 8px; margin: 12px 0 0; }
.r-camp dt { color: var(--text); font-weight: 700; }
.r-camp dd { margin: 2px 0 0; color: var(--text-2); }
@media (min-width: 1024px) { .camp-grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } }
.ranks-card { max-width: 760px; margin: 0 auto; padding: 16px; display: grid; gap: 12px; }
.tabs { display: inline-flex; padding: 4px; gap: 4px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(0, 0, 0, .3); justify-self: center; }
.tabs button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 9px; background: transparent; color: var(--text-3); font-size: 14px; font-weight: 600; cursor: pointer; }
.tabs button[aria-selected="true"] { background: linear-gradient(180deg, #3a2a1c, #2a1e15); color: var(--gold-hi); box-shadow: inset 0 0 0 1px var(--line-3); }
.rank-list { display: grid; gap: 4px; }
.rank-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; background: rgba(0, 0, 0, .22); }
.rank-row .rk { font: 800 15px/1 var(--f-display); color: var(--text-3); text-align: center; }
.rank-row.top1 .rk { color: #ffd76a; } .rank-row.top2 .rk { color: #d9dde4; } .rank-row.top3 .rk { color: #e3a26b; }
.rank-row .rn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.rank-row .rv b { color: var(--gold-hi); font-size: 14px; }
.rank-row.is-me { box-shadow: inset 0 0 0 1px var(--ember); }
.rank-empty { padding: 14px; text-align: center; color: var(--text-3); }
.rank-foot { text-align: center; font-size: 13px; color: var(--text-3); }
.rank-foot:empty { display: none; }

/* ============ 页脚（主站同款，另加「挖矿」一栏） ============ */
.foot { border-top: 1px solid var(--line); background: #090706; padding-top: 48px; padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)); }
.foot-grid { display: grid; gap: 32px; }
.foot-brand { display: grid; gap: 14px; justify-items: start; }
.foot-brand img { width: 150px; }
.foot-brand p { font-size: 14px; color: var(--text-3); max-width: 38ch; }
.foot-social { display: flex; gap: 8px; }
.foot-social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line-2); color: var(--text-2); background: rgba(255, 255, 255, .02); transition: color .2s ease, border-color .2s ease; }
.foot-social a:hover { color: var(--gold-hi); border-color: var(--line-3); }
.foot-social .i { width: 20px; height: 20px; }
.foot-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.foot-cols > div { min-width: 0; }
.foot .fh { font: 700 12px/1.3 var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--text-3); margin-bottom: 8px; }
:root:lang(zh) .foot .fh { letter-spacing: .1em; }
.foot-cols a { display: flex; align-items: center; min-height: 40px; color: var(--text-2); text-decoration: none; font-size: 14.5px; overflow-wrap: break-word; }
.foot-cols a:hover { color: var(--gold-hi); }
.foot-bottom { display: grid; gap: 8px; margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--text-3); line-height: 1.6; }
@media (min-width: 760px) { .foot-bottom { grid-template-columns: auto 1fr; gap: 24px; } .foot-bottom p:last-child { text-align: right; } }
@media (min-width: 900px) { .foot-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .foot-grid { grid-template-columns: 1fr 2.2fr; } }

/* 底部悬浮按钮（主站同款） */
.dock { position: fixed; z-index: 55; left: 0; right: 0; bottom: 0; display: flex; gap: 10px; padding: 10px var(--gr) calc(10px + env(safe-area-inset-bottom, 0px)) var(--gl); background: linear-gradient(180deg, rgba(12, 9, 7, 0), rgba(12, 9, 7, .9) 34%, rgba(12, 9, 7, .97)); transform: translateY(110%); visibility: hidden; transition: transform .32s var(--ease), visibility 0s linear .32s; pointer-events: none; }
.dock.show { transform: none; visibility: visible; transition: transform .32s var(--ease), visibility 0s; pointer-events: auto; }
.dock .btn { --h: 50px; flex: 1; font-size: 13.5px; letter-spacing: .04em; gap: 7px; padding: 0 10px; min-width: 0; }
.dock .btn img { width: 19px; height: 19px; }
.dock .btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (min-width: 1024px) { .dock { display: none; } }

/* 提示 */
.toast { position: fixed; z-index: 90; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); width: max-content; max-width: min(92vw, 460px); padding: 12px 16px; border-radius: 12px; background: rgba(28, 20, 15, .97); border: 1px solid var(--line-3); color: var(--text); font-size: 14px; box-shadow: 0 20px 40px rgba(0, 0, 0, .6); transform: translate(-50%, 10px); opacity: 0; transition: opacity .2s ease, transform .2s ease; pointer-events: none; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ============ 规则页 ============ */
.rules-hero { position: relative; padding: clamp(28px, 5vw, 56px) 0 clamp(18px, 3vw, 30px); }
.rules-hero .wrap { display: grid; gap: 12px; justify-items: start; }
.rules-hero .eyebrow::after { display: none; }
.rules-layout { display: grid; gap: 18px; padding-bottom: var(--sec); }
.toc { padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line); background: var(--bg-2); }
.toc-h { font: 600 12px/1.3 var(--f-body); color: var(--text-3); margin-bottom: 8px; }
.toc ol { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.toc a { display: inline-flex; min-height: 34px; align-items: center; padding: 0 10px; border-radius: 8px; border: 1px solid var(--line); color: var(--text-2); text-decoration: none; font-size: 13px; }
.toc a:hover { color: var(--gold-hi); border-color: var(--line-3); }
.rules-body { display: grid; gap: 14px; min-width: 0; }
.rules-body:focus { outline: none; }
.r-sec { padding: 18px 16px; display: grid; gap: 12px; }
.r-h { font-size: clamp(20px, 3vw, 25px); color: #fff1d6; }
.r-sub { margin-top: 4px; }
.r-list { display: grid; gap: 8px; }
.r-list li { position: relative; padding-left: 18px; font-size: 15px; color: var(--text-2); }
.r-list li::before { content: ""; position: absolute; left: 3px; top: .62em; width: 6px; height: 6px; transform: rotate(45deg); border: 1px solid var(--gold); }
.r-note { font-size: 13px; color: var(--warn); }
.r-states { display: grid; gap: 8px; }
.r-states > div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 14px; color: var(--text-2); }
.r-alloc { width: 100%; border-collapse: collapse; font-size: 14px; }
.r-alloc th, .r-alloc td { padding: 7px 4px; border-bottom: 1px solid var(--line); text-align: left; }
.r-alloc td { text-align: right; color: var(--text); }
.r-alloc th { color: var(--text-2); font-weight: 600; }
.r-alloc th i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 8px; background: var(--k); }
.r-alloc tr.sub th { padding-left: 22px; font-weight: 500; }
.r-steps { display: grid; gap: 8px; counter-reset: st; }
.r-steps li { counter-increment: st; position: relative; padding-left: 30px; font-size: 15px; color: var(--text-2); }
.r-steps li::before { content: counter(st); position: absolute; left: 0; top: 1px; display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; border: 1px solid var(--line-3); color: var(--gold-hi); font: 700 12px/1 var(--f-body); }
.tbl-wrap { overflow-x: auto; border-radius: 10px; border: 1px solid var(--line); }
.r-table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 13px; }
.r-table th, .r-table td { padding: 8px 10px; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
.r-table th { color: var(--text-3); font-weight: 600; background: rgba(0, 0, 0, .25); }
.r-table td:first-child, .r-table th:first-child { text-align: left; }
.r-gloss { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.r-gloss > div { display: grid; gap: 4px; padding: 10px 12px; background: var(--bg-2); }
.r-gloss dt { font: 700 14.5px/1.3 var(--f-display); color: var(--gold-hi); }
.r-gloss dd { font-size: 14px; color: var(--text-2); }
.r-addrs { display: grid; gap: 10px; }
.r-addrs li { display: grid; gap: 4px; }
.r-addrs .addr { display: flex; align-items: center; gap: 8px; min-width: 0; }
.r-addrs .addr a, .r-addrs .addr > .mono { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.r-addrs .addr .i { width: 14px; height: 14px; }
.r-addrs .pending { color: var(--text-3); font-size: 13px; }
.r-safe { display: flex; gap: 8px; align-items: flex-start; color: var(--ok); }
.r-safe .i { width: 16px; height: 16px; margin-top: 2px; }
.r-calm { color: var(--text-3); }
.risk-box { padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255, 179, 122, .35); background: rgba(60, 30, 12, .3); }
.r-risks { display: grid; gap: 8px; }
.r-risks li { position: relative; padding-left: 18px; font-size: 14.5px; color: var(--text-2); }
.r-risks li::before { content: "!"; position: absolute; left: 0; top: 0; font-weight: 800; color: var(--warn); }
@media (min-width: 640px) { .r-gloss > div { grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); gap: 14px; align-items: baseline; } }
@media (min-width: 1024px) {
  .rules-layout { grid-template-columns: 250px minmax(0, 1fr); gap: 28px; align-items: start; }
  .toc { position: sticky; top: calc(var(--hdr) + var(--sub) + 16px); }
  .toc ol { display: grid; gap: 2px; }
  .toc a { border: 0; min-height: 32px; }
  .r-sec { padding: 22px 24px; }
}

/* ============ 上线状态：live（实时）/ upcoming（即将开始） ============ */
.phase-upcoming .live-only { display: none !important; }
.phase-live .up-only { display: none !important; }
/* 即将开始：没有钱包按钮，手机顶栏也显示「立即游戏」 */
.phase-upcoming .hdr .btn-play { display: inline-flex; }
.mode-pill.is-upcoming { border-color: rgba(244, 208, 138, .5); color: var(--gold-hi); }
.mode-pill.is-upcoming .dot { background: var(--ember-hi); box-shadow: 0 0 8px rgba(255, 163, 86, .7); }
/* 奖池卡：金额位置换成「开挖后开始累积」，圆环中间显示开奖周期 */
.pt-v.is-pending > span { font: 700 clamp(16px, 4.4vw, 20px)/1.25 var(--f-body); letter-spacing: 0; -webkit-text-fill-color: currentColor; background: none; color: var(--c-hi); }
.pt-v.is-pending small { display: none; }
.pt-ring.is-static .pt-arc { stroke-dasharray: 3 5; stroke-dashoffset: 0; opacity: .55; }
.pt-lines .pt-any { color: var(--frost-hi); }
/* 即将开始：静态参数条、参与按钮、我的挖矿说明卡、开奖记录占位 */
.ticker.is-static dd { font-size: 19px; }
.me-up { max-width: 760px; margin: 0 auto; padding: 18px; display: grid; gap: 12px; }
.me-up .up-lead { color: var(--text-2); }
.me-up h3 { font-size: 17px; color: #fff1d6; }
.me-up ul { display: grid; gap: 8px; }
.me-up li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; align-items: start; font-size: 14.5px; color: var(--text); }
.me-up li img, .me-up li .i { width: 20px; height: 20px; margin-top: 1px; }
.me-up .btn { justify-self: start; }
.jp-up { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 12px; border: 1px dashed var(--line-2); color: var(--text-3); font-size: 13.5px; }
.jp-up .i { width: 16px; height: 16px; color: var(--gold); }
@media (max-width: 479.98px) { .phase-upcoming .hero-cta { grid-template-columns: minmax(0, 1fr); } }
.phase-upcoming .howto { grid-template-columns: minmax(0, 1fr); }
/* 代币经济：正式上线（开放领取）的初定时间 */
.tok-game .launch-date { margin: -2px 0 10px; font: 700 14px/1.4 var(--f-body); color: var(--gold-hi); }

/* ============ 语言（与主站同样五种）：字典加载期间隐藏正文；抽屉与窄屏页脚的语言芯片排成三列 ============ */
html.am-wait body { visibility: hidden; }
.msheet-lang .chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.msheet-lang .chips button { padding: 0 6px; }
@media (max-width: 479.98px) { .foot-brand .chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; } .foot-brand .chips button { padding: 0 6px; } }

/* ============ FX（sitecool，与主站同一套动效语言，见 js/fx.js）============
 * 档位 <html data-fx>：off / lite 只留静态质感；循环动画只动 transform 与 opacity；页面隐藏时全部暂停（html.fx-paused）。
 * 挖矿页自己的两种材质：$LOOT 暴击奖池是熔炉火焰（余烬、火冠、热浪），BNB 大奖是冰霜水晶（冰晶光环、星芒、寒光）。 */
html.fx-paused *, html.fx-paused *::before, html.fx-paused *::after { animation-play-state: paused !important; }
.hero-cv, .pt-cv { position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.hero-fog { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.hero-fog i { position: absolute; left: -30%; width: 160%; height: 40%; bottom: 8%; border-radius: 50%; background: radial-gradient(50% 50% at 50% 50%, rgba(206, 168, 136, .08), rgba(206, 168, 136, 0) 70%); animation: fog 36s ease-in-out infinite alternate; }
.hero-fog i + i { bottom: 34%; height: 30%; background: radial-gradient(50% 50% at 50% 50%, rgba(150, 196, 230, .06), rgba(150, 196, 230, 0) 70%); animation-duration: 48s; animation-delay: -20s; animation-direction: alternate-reverse; }
@keyframes fog { from { transform: translate3d(-9%, 0, 0) scaleY(.9); } to { transform: translate3d(9%, -5%, 0) scaleY(1.12); } }
:root:is([data-fx="off"], [data-fx="lite"]) .hero-fog { display: none; }
:root:is([data-fx="off"], [data-fx="lite"]) .glare { display: none; }
:root:is([data-fx="mid"], [data-fx="high"]) .hero-media { scale: 1.05; }
.hero.fx-off .hero-fog i, .hero.fx-off .portal *, .hero.fx-off .portal::after { animation-play-state: paused; }

/* 首屏进场编排：状态与字标 → 一句话 → 按钮 → 要点；两个奖池随后从下方浮起（等字典就绪才开始） */
@media (prefers-reduced-motion: no-preference) {
  html.js:not(.am-wait) .hero-kicker { animation: rise-in .8s var(--ease) .05s backwards; }
  html.js:not(.am-wait) .lockup { animation: logo-in 1.1s var(--ease) .12s backwards; }
  html.js:not(.am-wait) .hero-sub { animation: rise-in .9s var(--ease) .3s backwards; }
  html.js:not(.am-wait) .hero-cta { animation: rise-in .9s var(--ease) .4s backwards; }
  html.js:not(.am-wait) .hero-links, html.js:not(.am-wait) .hero-meta { animation: rise-in .9s var(--ease) .5s backwards; }
  html.js:not(.am-wait) .portal { animation: rise-in 1s var(--ease) .45s backwards; }
  html.js:not(.am-wait) .portal + .portal { animation-delay: .6s; }
}
@keyframes rise-in { from { opacity: 0; transform: translateY(18px); } }
@keyframes logo-in { from { opacity: 0; transform: translateY(10px) scale(.94); } }
/* 字标中的交叉双剑：余烬光晕呼吸 */
.lk-x { position: relative; }
.lk-x::after { content: ""; position: absolute; inset: -18%; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 140, 50, .5), rgba(255, 110, 30, 0)); opacity: .55; }
:root:is([data-fx="mid"], [data-fx="high"]) .lk-x::after { animation: breathe-o 3.4s ease-in-out infinite; }
@keyframes breathe-o { 50% { opacity: 1; } }
/* 状态标记的圆点：只动光圈的缩放与透明度 */
.mode-pill .dot { position: relative; }
.mode-pill.is-live .dot { animation: none; box-shadow: 0 0 8px rgba(95, 224, 138, .8); }
.mode-pill.is-live .dot::after, .mode-pill.is-upcoming .dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: currentColor; color: rgba(95, 224, 138, .7); animation: ping 2s ease-out infinite; }
.mode-pill.is-upcoming .dot::after { color: rgba(255, 163, 86, .75); animation-duration: 2.6s; }
@keyframes ping { 0% { transform: scale(1); opacity: .75; } 80%, 100% { transform: scale(2.7); opacity: 0; } }

/* 按钮：主按钮熔岩（光斑缓慢流动），冰霜按钮是冰晶（冷光斜向掠过），次按钮拉丝金属 */
.btn-primary, .btn-frost { overflow: hidden; }
.btn-primary::before, .btn-frost::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 200%; z-index: -1; pointer-events: none; background-size: 50% 100%; background-repeat: repeat-x; }
.btn-primary::before { opacity: .8; background-image: radial-gradient(24% 62% at 12% 118%, rgba(255, 234, 176, .6), transparent 70%), radial-gradient(18% 56% at 38% -12%, rgba(255, 92, 18, .5), transparent 70%), radial-gradient(20% 70% at 62% 112%, rgba(255, 214, 134, .5), transparent 70%), radial-gradient(16% 52% at 86% -8%, rgba(255, 118, 36, .45), transparent 70%); }
.btn-frost::before { opacity: .7; background-image: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .55) 40%, transparent 46%), radial-gradient(20% 60% at 72% 110%, rgba(255, 255, 255, .45), transparent 70%), radial-gradient(16% 50% at 22% -10%, rgba(200, 236, 255, .6), transparent 70%); }
:root:is([data-fx="mid"], [data-fx="high"]) .btn-primary::before { animation: lava 7s linear infinite; }
:root:is([data-fx="mid"], [data-fx="high"]) .btn-frost::before { animation: lava 9s linear infinite reverse; }
@keyframes lava { to { transform: translateX(-50%); } }
.btn-ghost, .btn-ice { background-image: linear-gradient(180deg, rgba(255, 236, 200, .09), rgba(255, 236, 200, 0) 46%, rgba(0, 0, 0, .2)); box-shadow: inset 0 1px 0 rgba(255, 236, 200, .13), inset 0 -1px 0 rgba(0, 0, 0, .5), 0 8px 22px -14px #000; }
.btn-ice { background-image: linear-gradient(180deg, rgba(214, 240, 255, .12), rgba(214, 240, 255, 0) 46%, rgba(0, 0, 0, .2)); box-shadow: inset 0 1px 0 rgba(214, 240, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .5), 0 8px 22px -14px #000; }

/* 卡片（fx.js 注入 .glare，只在桌面 high 档）：跟随指针的内发光 + 沿描边转动的光；奖池卡描边流光常亮，颜色随材质 */
.gh { position: relative; isolation: isolate; }
.glare { --r1: rgba(255, 190, 110, .9); --r2: rgba(255, 246, 220, 1); --sp: rgba(255, 168, 88, .17); position: absolute; inset: 0; z-index: -1; border-radius: inherit; overflow: hidden; pointer-events: none; opacity: 0; transition: opacity .4s ease; }
.is-frost > .glare, .k-premium > .glare { --r1: rgba(150, 210, 255, .9); --r2: rgba(240, 250, 255, 1); --sp: rgba(140, 200, 255, .16); }
.k-newbie > .glare { --r1: rgba(138, 211, 163, .85); --r2: rgba(226, 255, 236, 1); --sp: rgba(138, 211, 163, .14); }
.k-invite > .glare { --r1: rgba(195, 166, 255, .85); --r2: rgba(240, 232, 255, 1); --sp: rgba(195, 166, 255, .14); }
.glare::before { content: ""; position: absolute; left: 0; top: 0; width: 440px; height: 440px; margin: -220px 0 0 -220px; border-radius: 50%; background: radial-gradient(closest-side, var(--sp), transparent); transform: translate(var(--gx, -999px), var(--gy, -999px)); transition: opacity .4s ease; }
.glare i { position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.glare i::before { content: ""; position: absolute; left: 50%; top: 50%; width: var(--d, 200%); height: var(--d, 200%); background: conic-gradient(transparent 0 60%, transparent 64%, var(--r1) 75%, var(--r2) 78%, transparent 88%, transparent); transform: translate(-50%, -50%) rotate(0deg); animation: ring 3.6s linear infinite paused; }
@keyframes ring { to { transform: translate(-50%, -50%) rotate(360deg); } }
.gh.hot > .glare { opacity: 1; }
.gh.hot > .glare i::before, .glare.amb.run i::before { animation-play-state: running; }
.glare.amb { opacity: .8; }
.glare.amb::before { opacity: 0; }
.gh.hot > .glare.amb::before { opacity: 1; }
.glare.amb i::before { animation-duration: 8s; }
.is-frost > .glare.amb i::before { animation-direction: reverse; animation-duration: 11s; }
.tilt.hot { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-3px); transition: transform .14s linear; }

/* 分区过渡：区块淡入上移、卡片组子项依次进场、区块金线从中间展开（fx.js 的 FX.reveal） */
.fx .fxr:not(.in) { opacity: 0; transform: translateY(16px); }
.fx .fxr.in:not(.done) { transition: opacity .7s ease, transform .7s var(--ease); }
.fx .fxr.stg:not(.in) { opacity: 1; transform: none; }
.fx .fxr.stg:not(.in) > * { opacity: 0; translate: 0 22px; }
.fx .fxr.stg.in:not(.done) > * { transition: opacity .7s ease, translate .8s var(--ease); transition-delay: var(--rv-delay, 0s); }
.fx [data-seam]:not(.seen)::before { transform: translateX(-50%) scaleX(0); }
.fx [data-seam]:not(.seen)::after { transform: translateX(-50%) rotate(45deg) scale(0); opacity: 0; }
.fx [data-seam]::before { transition: transform 1.3s var(--ease); }
.fx [data-seam]::after { transition: transform .6s var(--ease) .6s, opacity .4s ease .6s; }

/* ---- $LOOT 暴击奖池：熔炉火焰 ---- */
.pt-ring::before, .pt-ring::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
/* 火冠：一圈锥形渐变的火焰带，遮成环形后缓慢旋转；内圈热光明灭 */
.portal.is-fire .pt-ring::before { inset: -9%; background: conic-gradient(from 0deg, rgba(255, 110, 30, 0) 0deg, rgba(255, 140, 50, .75) 40deg, rgba(255, 226, 160, .95) 62deg, rgba(255, 110, 30, .1) 110deg, rgba(255, 150, 60, .7) 170deg, rgba(255, 90, 20, 0) 215deg, rgba(255, 170, 80, .8) 268deg, rgba(255, 236, 190, .9) 290deg, rgba(255, 110, 30, 0) 340deg); -webkit-mask: radial-gradient(closest-side, transparent 80%, #000 86%, #000 93%, transparent 100%); mask: radial-gradient(closest-side, transparent 80%, #000 86%, #000 93%, transparent 100%); opacity: .85; }
.portal.is-fire .pt-ring::after { inset: 6%; z-index: -1; background: radial-gradient(closest-side, rgba(255, 130, 40, .55), rgba(255, 90, 20, 0)); opacity: .7; }
:root:is([data-fx="mid"], [data-fx="high"]) .portal.is-fire .pt-ring::before { animation: spin-r 9s linear infinite; }
:root:is([data-fx="mid"], [data-fx="high"]) .portal.is-fire .pt-ring::after { animation: flicker 4.2s ease-in-out infinite; }
/* 热浪：卡片底部的火光起伏 */
.portal.is-fire::after { content: ""; position: absolute; left: -10%; right: -10%; bottom: -30%; height: 75%; z-index: -1; pointer-events: none; background: radial-gradient(50% 60% at 50% 100%, rgba(255, 110, 30, .26), rgba(255, 110, 30, 0) 70%); }
:root:is([data-fx="mid"], [data-fx="high"]) .portal.is-fire::after { animation: flicker 5.5s ease-in-out infinite; }
@keyframes spin-r { to { transform: rotate(360deg); } }
@keyframes flicker { 0%, 100% { opacity: .78; } 9% { opacity: 1; } 15% { opacity: .66; } 27% { opacity: .95; } 41% { opacity: .74; } 55% { opacity: 1; } 64% { opacity: .7; } 78% { opacity: .92; } 89% { opacity: .68; } }

/* ---- BNB 大奖：冰霜水晶 ---- */
/* 冰晶光环：重复锥形渐变做出一圈冰棱，遮成环形后反向慢转；内圈寒光呼吸 */
.portal.is-frost .pt-ring::before { inset: -9%; background: repeating-conic-gradient(from 0deg, rgba(214, 240, 255, .85) 0deg 1.6deg, rgba(143, 208, 255, .12) 1.6deg 9deg, rgba(214, 240, 255, .45) 9deg 10deg, rgba(143, 208, 255, 0) 10deg 15deg); -webkit-mask: radial-gradient(closest-side, transparent 80%, #000 85%, #000 92%, transparent 100%); mask: radial-gradient(closest-side, transparent 80%, #000 85%, #000 92%, transparent 100%); opacity: .75; }
.portal.is-frost .pt-ring::after { inset: 4%; z-index: -1; background: radial-gradient(closest-side, rgba(120, 196, 255, .5), rgba(80, 160, 240, 0)); opacity: .6; }
:root:is([data-fx="mid"], [data-fx="high"]) .portal.is-frost .pt-ring::before { animation: spin-r 26s linear infinite reverse; }
:root:is([data-fx="mid"], [data-fx="high"]) .portal.is-frost .pt-ring::after { animation: breathe-o 4.8s ease-in-out infinite; }
/* 冰面：卡片顶角的霜与一道缓慢掠过的冷光 */
.portal.is-frost::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 60%; z-index: -1; pointer-events: none; background: linear-gradient(105deg, rgba(214, 240, 255, 0) 30%, rgba(214, 240, 255, .07) 48%, rgba(214, 240, 255, 0) 64%); transform: translateX(-100%); }
:root:is([data-fx="mid"], [data-fx="high"]) .portal.is-frost::after { animation: glint 7.5s ease-in-out 1.2s infinite; }
@keyframes glint { 0% { transform: translateX(-100%); } 45%, 100% { transform: translateX(190%); } }

/* 出块时：余额数字弹一下并发光、圆环受击、飘字「+40」放大浮起；Canvas 同时从余额处迸发余烬或冰晶（app.js） */
.pt-v { transform-origin: 0 60%; }
.pt-v.bump { animation: bump .8s var(--ease); }
@keyframes bump { 0% { transform: none; } 22% { transform: scale(1.08); } 100% { transform: none; } }
.pt-dep { z-index: 2; font-size: 16px; }
.pt-dep.go { animation: dep 1.7s var(--ease) forwards; }
@keyframes dep { 0% { opacity: 0; transform: translateY(16px) scale(.6); } 14% { opacity: 1; transform: translateY(0) scale(1.28); } 28% { transform: translateY(-3px) scale(1); } 72% { opacity: 1; } 100% { opacity: 0; transform: translateY(-24px) scale(.96); } }
.pt-ring .pt-hit { position: absolute; inset: -4%; border-radius: 50%; border: 2px solid var(--c-hi); box-shadow: 0 0 18px var(--glow), inset 0 0 12px var(--glow); opacity: 0; pointer-events: none; }
.portal.dep .pt-ring .pt-hit { animation: hit .9s var(--ease); }
@keyframes hit { 0% { opacity: .95; transform: scale(.86); } 100% { opacity: 0; transform: scale(1.22); } }

/* ---- 即将开始：奖池封印中 ---- */
/* 主图压暗去色，圆环换成两道反向缓转的符文环，虚线进度环像指针一样慢慢走，中心封印呼吸 */
.pt-ring.is-static img { filter: grayscale(.55) brightness(.62); }
.pt-ring.is-static::before { inset: -8%; background: none; border: 1px dashed rgba(244, 208, 138, .5); box-shadow: inset 0 0 0 4px rgba(12, 9, 7, .5), inset 0 0 0 5px rgba(244, 208, 138, .22); -webkit-mask: none; mask: none; opacity: .9; }
.is-frost .pt-ring.is-static::before { border-color: rgba(214, 240, 255, .5); box-shadow: inset 0 0 0 4px rgba(12, 9, 7, .5), inset 0 0 0 5px rgba(214, 240, 255, .2); }
.pt-ring.is-static::after { inset: 18%; z-index: 0; background: radial-gradient(closest-side, var(--glow), transparent); opacity: .35; }
:root:is([data-fx="mid"], [data-fx="high"]) .pt-ring.is-static::before { animation: spin-r 40s linear infinite; }
:root:is([data-fx="mid"], [data-fx="high"]) .pt-ring.is-static::after { animation: seal 3.6s ease-in-out infinite; }
:root:is([data-fx="mid"], [data-fx="high"]) .pt-ring.is-static > svg { animation: tick 24s linear infinite; }
@keyframes seal { 50% { opacity: .75; } }
@keyframes tick { from { transform: rotate(-90deg); } to { transform: rotate(270deg); } }
.pt-seal { position: absolute; left: 50%; bottom: -7px; z-index: 2; display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px 2px 6px; border-radius: 999px; transform: translateX(-50%); white-space: nowrap; border: 1px solid var(--c); background: rgba(12, 9, 7, .92); color: var(--c-hi); font: 700 9.5px/1.45 var(--f-body); letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 0 12px -2px var(--glow); }
.pt-seal .i { width: 10px; height: 10px; }
:root:lang(zh) .pt-seal { letter-spacing: .06em; font-size: 10px; }
@media (min-width: 640px) { .pt-seal { bottom: -9px; font-size: 10.5px; } .pt-seal .i { width: 11px; height: 11px; } }

/* ---- 即将开始：开挖封印倒计时（首屏、规则页顶部）----
 * 与奖池「封印中」同一套语言：虚线符文环慢转、内圈一道余烬弧反向转、中心封印光呼吸；到点后（正在开启）环转快、光更亮，锁打开。
 * 数字用正文字体的等宽数字，每秒刷新时不跳宽；文案按 1.6 倍长度留了换行余地。 */
.seal-cd { --glow: rgba(240, 113, 42, .55); position: relative; isolation: isolate; display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px 14px; align-items: center; width: 100%; max-width: 520px; padding: 12px 16px 12px 12px; border-radius: 16px; border: 1px solid rgba(244, 208, 138, .36); overflow: hidden; background: radial-gradient(120% 150% at 0% 50%, rgba(240, 113, 42, .17), transparent 62%), linear-gradient(180deg, rgba(32, 20, 13, .94), rgba(18, 12, 9, .95)); box-shadow: inset 0 1px 0 rgba(255, 236, 200, .08), 0 18px 40px -26px #000; }
.seal-cd[hidden] { display: none; }
.seal-cd::before { content: ""; position: absolute; left: 12%; right: 12%; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, var(--ember-hi), transparent); box-shadow: 0 0 12px var(--glow); }
.sc-ring { position: relative; display: grid; place-items: center; width: 52px; aspect-ratio: 1; color: var(--gold-hi); }
.sc-ring::before, .sc-ring::after, .sc-ring i { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.sc-ring::before { inset: 0; border: 1px dashed rgba(244, 208, 138, .55); box-shadow: inset 0 0 0 4px rgba(12, 9, 7, .55), inset 0 0 0 5px rgba(244, 208, 138, .2); }
.sc-ring i { inset: 7px; border: 1.5px solid transparent; border-top-color: rgba(255, 163, 86, .8); border-right-color: rgba(255, 163, 86, .22); }
.sc-ring::after { inset: 10px; z-index: -1; background: radial-gradient(closest-side, var(--glow), transparent); opacity: .4; }
.sc-ring .i { position: relative; width: 20px; height: 20px; filter: drop-shadow(0 0 6px rgba(255, 140, 50, .7)); }
.sc-body { display: grid; gap: 3px; justify-items: start; min-width: 0; }
.sc-l { font: 700 11px/1.3 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--ember-hi); }
:root:lang(zh) .sc-l { letter-spacing: .1em; font-size: 12px; }
.sc-v { font: 800 clamp(24px, 7.2vw, 32px)/1.08 var(--f-body); font-variant-numeric: tabular-nums; letter-spacing: .01em; color: #fff1d6; background: linear-gradient(180deg, #fff7e0 0%, #f4d08a 52%, #d08a3e 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .7)); overflow-wrap: anywhere; }
.sc-at { font-size: 12.5px; line-height: 1.45; color: var(--text-2); overflow-wrap: anywhere; }
.seal-cd .btn { margin-top: 5px; }
.seal-cd:is(.is-opening, .is-stale) { border-color: rgba(255, 163, 86, .55); }
.seal-cd:is(.is-opening, .is-stale) .sc-v { font-size: clamp(20px, 5.6vw, 26px); }
.seal-cd.is-stale .sc-ring { color: #c9f3d6; }
:root:is([data-fx="mid"], [data-fx="high"]) .sc-ring::before { animation: spin-r 40s linear infinite; }
:root:is([data-fx="mid"], [data-fx="high"]) .sc-ring i { animation: spin-r 9s linear infinite reverse; }
:root:is([data-fx="mid"], [data-fx="high"]) .sc-ring::after { animation: seal 3.6s ease-in-out infinite; }
:root:is([data-fx="mid"], [data-fx="high"]) .seal-cd.is-opening .sc-ring::before { animation-duration: 7s; }
:root:is([data-fx="mid"], [data-fx="high"]) .seal-cd.is-opening .sc-ring i { animation-duration: 2.4s; }
:root:is([data-fx="mid"], [data-fx="high"]) .seal-cd.is-opening .sc-ring::after { animation: breathe-o 1.4s ease-in-out infinite; }
.mode-pill.is-opening .dot::after { animation-duration: 1.3s; }
@media (prefers-reduced-motion: no-preference) { html.js:not(.am-wait) .seal-cd { animation: rise-in .9s var(--ease) .36s backwards; } }
@media (min-width: 640px) { .seal-cd { grid-template-columns: 60px minmax(0, 1fr); padding: 14px 20px 14px 14px; } .sc-ring { width: 60px; } .sc-ring .i { width: 22px; height: 22px; } .sc-at { font-size: 13px; } }

/* ---- 出块墙：新块锻造落位、生成中的块显示本块进度 ---- */
.blk.fresh { animation: forge 1.1s var(--ease); }
@keyframes forge { 0% { opacity: 0; transform: translateY(-16px) scale(.92); } 55% { opacity: 1; transform: translateY(2px) scale(1.015); } 100% { transform: none; } }
.blk::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px var(--gold-hi), inset 0 0 28px rgba(244, 208, 138, .3), inset 0 10px 30px -12px rgba(255, 236, 200, .35); opacity: 0; }
.blk.fresh::before { animation: rim 1.8s ease-out; }
@keyframes rim { 0%, 30% { opacity: 1; } 100% { opacity: 0; } }
.blk.fresh { overflow: hidden; }
.blk.fresh::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 55%; pointer-events: none; background: linear-gradient(100deg, rgba(255, 236, 200, 0), rgba(255, 236, 200, .16) 50%, rgba(255, 236, 200, 0)); transform: translateX(-110%); animation: blk-sweep 1.2s var(--ease) .25s; }
@keyframes blk-sweep { to { transform: translateX(200%); } }
.blk.next { --p: 0; }
.blk.next::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; pointer-events: none; background: linear-gradient(90deg, var(--ember), var(--gold-hi)); box-shadow: 0 0 8px rgba(255, 163, 86, .7); transform-origin: 0 50%; transform: scaleX(var(--p)); transition: transform 1s linear; }
.blk.next .b-h { position: relative; }

/* 减少动态：关掉非必要的动效（粒子、视差、光效全部不渲染，内容完整） */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .pt-dep, .hero-cv, .pt-cv, .hero-fog, .glare { display: none; }
  .fx .fxr:not(.in), .fx .fxr.stg:not(.in) > * { opacity: 1; transform: none; translate: none; }
  .hero-media, .hero-fog { translate: none !important; }
}

/* 点首屏按钮跳到对应卡片时短暂高亮（用户操作触发） */
.way { position: relative; }
.way.is-target::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: 0 0 0 2px var(--k), 0 0 36px -4px var(--k); opacity: 0; pointer-events: none; animation: target 1.6s var(--ease); }
@keyframes target { 0%, 40% { opacity: 1; } 100% { opacity: 0; } }

/* ============ v8 全链上（page8）：开奖按钮、链上领取的滚动数额、合约与权限 ============ */
/* 开奖时间已到：状态 + 「开奖 / 结算」按钮 + 提示（任何人可点，自付 gas） */
.draw-now { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; border: 1px dashed var(--line-3); background: rgba(0, 0, 0, .3); }
.draw-now[hidden] { display: none; }
.jp-col.is-frost .draw-now { border-color: rgba(143, 208, 255, .5); }
.dn-state { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: var(--text); }
.dn-state .i { width: 18px; height: 18px; flex: none; margin-top: 1px; color: var(--gold-hi); }
.draw-now.is-settle .dn-state .i { color: var(--ok); }
.dn-act { display: flex; flex-wrap: wrap; gap: 8px; }
/* f2：随机数候选的公示倒计时（无按钮） */
.dn-grace b { font-variant-numeric: tabular-nums; color: var(--gold-hi); }
/* $LOOT 每秒累计的滚动数字：等宽数字，避免跳动 */
.roll { font-variant-numeric: tabular-nums; }
.claim-rate, .claim-part { display: flex; align-items: flex-start; gap: 6px; font-size: 12.5px; color: var(--text-2); }
.claim-rate .i, .claim-part .i { width: 15px; height: 15px; flex: none; margin-top: 1px; color: var(--gold); }
.claim-part { color: var(--warn); }
.claim-acc b, .claim-acc .roll { color: var(--gold-hi); font-weight: 700; }
.claim-nums b .roll { display: inline; margin: 0; font: inherit; color: inherit; }
.claim-nums b small { display: inline; font-size: .62em; }
/* 给 agent 的提示：Agentic Wallet 开发者模式、llms.txt / skill.md */
.how-dev { display: flex; align-items: flex-start; gap: 6px; }
.how-dev .i { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--gold); }
.how-docs a { color: var(--gold-hi); }
/* 规则页「合约与权限」 */
.r-list.r-no li::before { border-color: var(--err); transform: none; width: 8px; height: 2px; top: .7em; border-width: 1px 0 0; }
.r-gov { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.r-gov-c, .r-gov-c p { overflow-wrap: anywhere; }
.r-gov-c { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: rgba(0, 0, 0, .22); min-width: 0; }
.r-gov-c > b { font: 700 14px/1.3 var(--f-display); color: var(--text); letter-spacing: .02em; }
.r-src { display: grid; gap: 8px; }
.r-src li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.r-src .chip { white-space: normal; text-align: left; }
.r-gov-up { display: flex; align-items: flex-start; gap: 6px; }
.r-gov-up .i, .r-sec .small.warn .i, .r-sec p.muted > .i { width: 15px; height: 15px; flex: none; margin-top: 2px; }
.r-sec p.small:has(> .i) { display: flex; align-items: flex-start; gap: 6px; }
.r-sec p.small:has(> .i) > span { min-width: 0; }
@media (min-width: 900px) { .r-gov { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ============ 顶栏钱包菜单 ============ */
.wallet-dd { position: relative; display: inline-flex; min-width: 0; }
.wallet-pop { min-width: 200px; }
.wallet-hint { max-width: 240px; margin: 4px 8px 6px; font-size: 13px; line-height: 1.45; color: var(--text-2); }
