/* ════════════════════════════════════════════════════════════════════════
   pages3-a.css — 1019 两端美化定稿:注册 / 登录(.rg2)· 三步开始使用(.ul2)· 联盟月卡(.prw)
   来源:样机 v3 register2 / unlock2 / pricing2 + web2.css 的 .rg2- / .ul2- / 月卡段;底座 static/ev3.css(颜色 / 材质 / 按钮 / 手感)。
   只改样子:模板里老类名(rg-* / lg-* / ul-* / pr-*)和 data-* 都还在(测试锁着),这里在 .ev2.W 里把它们画成新样子;
   深色是默认,浅色写 :where(:root[data-theme="light"]) .ev2.W …(和 ev3.css 同一个写法);断点 760px;减弱动态效果一律直接到位。
   ════════════════════════════════════════════════════════════════════════ */

/* ═══ 注册 / 登录 ═══ */
.W.rg2 { min-height: 100%; }
.W.rg2 .rg2-main { position: relative; z-index: 1; display: flex; justify-content: center; padding: 44px 16px 96px; min-height: 640px; overflow: clip; }
.W.rg2 .rg2-pit { position: absolute; z-index: 0; right: max(-90px, calc(50% - 700px)); top: 70px; width: 520px; height: 520px; perspective: 1400px; pointer-events: none; opacity: .55; }
.W.rg2 .rg2-plate { position: absolute; inset: 0; transform: rotateX(56deg) rotateZ(-10deg) scale(.92); transform-style: preserve-3d; animation: pg3Float calc(var(--ts, 1) * 9s) var(--e-io) infinite alternate; }
.W.rg2 .rg2-plate img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 30px; filter: saturate(1.1);
  -webkit-mask: radial-gradient(closest-side, #000 62%, transparent); mask: radial-gradient(closest-side, #000 62%, transparent); }
.W.rg2 .rg2-plate::after { content: ""; position: absolute; left: 6%; right: 6%; bottom: -16%; height: 30%; border-radius: 50%; transform: translateZ(-40px);
  background: radial-gradient(closest-side, rgba(90,168,255,.42), transparent); filter: blur(6px); }
@keyframes pg3Float { from { translate: 0 -8px; } to { translate: 0 10px; } }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-pit { opacity: .4; }
.W.rg2 .rg2-col, .W.rg2 .rg-wrap, .W.rg2 .lg-wrap { position: relative; z-index: 2; width: min(480px, 100%); max-width: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; align-items: center; gap: 12px; }
.W.rg2 .rg2-pill { display: inline-flex; align-items: center; gap: 9px; margin: 0; padding: 7px 14px 7px 11px; border-radius: 999px; font-size: 13px; font-weight: 800; letter-spacing: .06em; color: var(--ink);
  background: linear-gradient(160deg, rgba(255,255,255,.16), rgba(255,255,255,.04)); box-shadow: inset 0 0 0 1px var(--hair-2), inset 0 1px 0 rgba(255,255,255,.2); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-pill { background: linear-gradient(160deg, rgba(255,255,255,.9), rgba(255,255,255,.55)); box-shadow: inset 0 0 0 1px rgba(90,100,220,.2), 0 8px 18px -12px rgba(90,80,220,.4); }
.W.rg2 .rg2-pill i { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg, #ffb347, #ff5e57); box-shadow: 0 0 0 3px rgba(255,120,80,.18), 0 0 10px rgba(255,120,80,.8);
  animation: pg3Dot calc(var(--ts, 1) * 2.4s) ease-in-out infinite; }
@keyframes pg3Dot { 50% { box-shadow: 0 0 0 6px rgba(255,120,80,0), 0 0 14px rgba(255,120,80,.9); } }
.W.rg2 .rg-hd, .W.rg2 .lg-hd { text-align: center; padding: 0; }
.W.rg2 .rg-hd h1, .W.rg2 .lg-hd h1 { margin: 2px 0 8px; font-size: 54px; line-height: 1.1; letter-spacing: .08em; color: var(--ink); font-weight: 900; }
/* 微信内:盟友不用注册的那张绿卡 */
.W.rg2 .rg2-note { width: 100%; padding: 14px 16px; border-radius: 20px; border: 0; font-size: 13.5px; line-height: 1.8; color: var(--ink-2); }
.W.rg2 .rg2-note > .lg-card, .W.rg2 .rg2-note > .rg-card { margin: 0; padding: 0; border: 0 !important; border-radius: 0; background: none !important; box-shadow: none; }
.W.rg2 .rg2-note-t { font-size: 14.5px; font-weight: 800; color: var(--ok); margin-bottom: 4px; }
.W.rg2 .rg2-note-s b { color: var(--ink); font-weight: 800; }
.W.rg2 .rg2-note-s span { color: var(--ink-3); }
/* 主卡 */
.W.rg2 .rg2-card { width: 100%; padding: 22px; border-radius: 28px; display: flex; flex-direction: column; gap: 18px; }
.W.rg2 .rg2-more > summary { cursor: pointer; list-style: none; font-size: 14px; font-weight: 800; color: var(--ink); text-align: center; padding: 4px 0; }
.W.rg2 .rg2-more > summary::-webkit-details-marker { display: none; }
.W.rg2 .rg2-more[open] > summary { margin-bottom: 16px; color: var(--ink-3); }
.W.rg2 .rg2-more-in { display: flex; flex-direction: column; gap: 18px; }
.W.rg2 .rg2-wx { width: 100%; height: 48px; border-radius: 16px; font-size: 15px; gap: 10px; display: inline-flex; padding: 0 16px; color: var(--ink); text-align: center;
  background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,.04) 62%), linear-gradient(135deg, rgba(60,220,140,.26), rgba(40,190,160,.18) 60%, rgba(90,170,255,.14)); }
.W.rg2 .rg2-wx::before { background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(90,230,150,.85) 32%, rgba(40,200,140,.7) 70%, rgba(120,210,255,.6)) !important; }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-wx { color: #10301f; background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.5) 62%), linear-gradient(135deg, rgba(120,235,175,.6), rgba(150,225,215,.45) 60%, rgba(180,215,255,.4)); }
.W.rg2 .rg2-wxi { width: 22px; height: 22px; flex: none; background: linear-gradient(135deg, #5be39a, #23b36b);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 4C5.2 4 2 6.6 2 9.9c0 1.9 1.1 3.6 2.8 4.7L4.2 17l2.6-1.4c.8.2 1.6.3 2.4.3h.4a5.6 5.6 0 0 1-.2-1.5c0-3.3 3.1-5.9 7-5.9h.4C16.2 5.8 13 4 9.2 4zm-2.4 3.5a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8zm4.9 0a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8zM16.4 10c-3.3 0-5.9 2.1-5.9 4.8s2.6 4.8 5.9 4.8c.6 0 1.3-.1 1.9-.3l2.1 1.1-.5-1.9c1.4-.9 2.3-2.2 2.3-3.7 0-2.7-2.6-4.8-5.8-4.8zm-2 2.8a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6zm4 0a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 4C5.2 4 2 6.6 2 9.9c0 1.9 1.1 3.6 2.8 4.7L4.2 17l2.6-1.4c.8.2 1.6.3 2.4.3h.4a5.6 5.6 0 0 1-.2-1.5c0-3.3 3.1-5.9 7-5.9h.4C16.2 5.8 13 4 9.2 4zm-2.4 3.5a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8zm4.9 0a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8zM16.4 10c-3.3 0-5.9 2.1-5.9 4.8s2.6 4.8 5.9 4.8c.6 0 1.3-.1 1.9-.3l2.1 1.1-.5-1.9c1.4-.9 2.3-2.2 2.3-3.7 0-2.7-2.6-4.8-5.8-4.8zm-2 2.8a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6zm4 0a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6z'/%3E%3C/svg%3E") center / contain no-repeat; }
.W.rg2 .rg2-or { height: 1px; margin: -2px 6px; background: linear-gradient(90deg, transparent, var(--hair-2) 20%, var(--hair-2) 80%, transparent); }
/* 表单(rg-form / lg-form 老布局归零,画成新样子) */
.W.rg2 .rg-form, .W.rg2 .lg-form { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; background: none; border: 0; box-shadow: none; }
.W.rg2 .lg-form { gap: 14px; }
.W.rg2 .rg2-sec { display: flex; flex-direction: column; gap: 10px; }
.W.rg2 .rg-sec { margin: 0 2px; }
.W.rg2 .rg-fields { display: flex; flex-direction: column; gap: 12px; }
.W.rg2 .rg2-f, .W.rg2 .rg-fields label.rg2-f, .W.rg2 .lg-form label.rg2-f { display: flex; flex-direction: column; gap: 7px; font-size: inherit; font-weight: inherit; color: inherit; }
.W.rg2 .rg2-k { margin: 0 2px; font-size: 13px; font-weight: 700; color: var(--ink-2); }
.W.rg2 .rg2-k em, .W.rg2 .rg-req { font-style: normal; font-weight: 800; color: var(--em-ink); margin-left: 4px; }
.W.rg2 .rg2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.W.rg2 .rg2-in { display: flex; align-items: center; gap: 10px; height: 50px; padding: 0 16px; border-radius: 15px; cursor: text;
  background: var(--glass-2); box-shadow: inset 0 1px 2px rgba(0,0,0,.2), inset 0 0 0 1px var(--hair-2);
  transition: box-shadow calc(var(--ts, 1) * 260ms) var(--e-out), background calc(var(--ts, 1) * 260ms); }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-in { background: rgba(255,255,255,.66); box-shadow: inset 0 1px 2px rgba(40,50,120,.08), inset 0 0 0 1px rgba(60,70,140,.16); }
.W.rg2 .rg2-in .fz-ico { width: 18px; height: 18px; flex: none; color: var(--ink-4); transition: color calc(var(--ts, 1) * 260ms), transform calc(var(--ts, 1) * 420ms) var(--e-spring); }
.W.rg2 .rg2-in input { flex: 1; min-width: 0; height: 100%; margin: 0; border: 0; outline: 0; background: none; box-shadow: none; padding: 0; border-radius: 0;
  font: inherit; font-size: 16px; font-weight: 600; color: var(--ink); caret-color: var(--au-ice); font-variant-numeric: tabular-nums; }
.W.rg2 .rg2-in input::placeholder { color: var(--ink-4); font-weight: 500; }
.W.rg2 .rg2-in input:-webkit-autofill { -webkit-text-fill-color: var(--ink); transition: background-color 9999s ease-out 0s; box-shadow: 0 0 0 40px transparent inset; }
.W.rg2 .rg2-in:focus-within { background: linear-gradient(180deg, rgba(90,168,255,.1), rgba(138,108,255,.06)), var(--glass-2);
  box-shadow: inset 0 0 0 1.5px var(--au-ice), 0 0 0 4px rgba(90,168,255,.18), 0 10px 26px -10px var(--glow-ice); }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-in:focus-within { background: #fff; box-shadow: inset 0 0 0 1.5px var(--au-ice), 0 0 0 4px rgba(61,142,240,.16), 0 10px 22px -12px var(--glow-ice); }
.W.rg2 .rg2-in:focus-within .fz-ico { color: var(--au-ice); transform: scale(1.12); }
/* 游戏:几款就几张卡,单数时最后一张占满一行;选中块滑过去(pages3-a.js 挂 EV3.slider) */
.W.rg2 .rg-games.rg2-games { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; flex-direction: initial; }
.W.rg2 .rg-games .rg-game.rg2-g { position: relative; display: flex; flex: initial; flex-direction: row; align-items: center; gap: 10px; height: 54px; padding: 0 14px; border: 0; border-radius: 16px; cursor: pointer; min-width: 0;
  font-size: inherit; color: var(--ink-2); background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); box-shadow: inset 0 0 0 1px var(--hair-2);
  --sc: 1; transform: scale(var(--sc)); transition: color calc(var(--ts, 1) * 220ms), transform var(--d-out) var(--e-press); }
.W.rg2 .rg-games .rg-game.rg2-g.is-press { --sc: .97; transition-duration: var(--d-in); }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg-games .rg-game.rg2-g { background: rgba(255,255,255,.6); box-shadow: inset 0 0 0 1px rgba(60,70,140,.14); }
.W.rg2 .rg2-g:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; }
.W.rg2 .rg2-g input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; pointer-events: none; }
.W.rg2 .rg2-g:has(input:focus-visible) { outline: 2px solid var(--au-ice); outline-offset: 2px; }
.W.rg2 .rg2-g b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14.5px; font-weight: 800; }
.W.rg2 .rg2-gi { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 11px; font-style: normal; font-size: 17px; line-height: 1;
  background: linear-gradient(160deg, rgba(255,255,255,.22), rgba(255,255,255,.05)); box-shadow: inset 0 1px 0 rgba(255,255,255,.3); }
.W.rg2 .rg2-rd { flex: none; margin-left: auto; width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--hair-2); transition: box-shadow calc(var(--ts, 1) * 300ms) var(--e-spring), background calc(var(--ts, 1) * 200ms); }
.W.rg2 .rg2-games.has-sl > .fx-sl { border-radius: 16px; box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 12px 24px -12px var(--glow-ice); }
.W.rg2 .rg2-games.has-sl > .rg2-g:not(.on) { background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)) !important; }
:where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-games.has-sl > .rg2-g:not(.on) { background: rgba(255,255,255,.6) !important; }
.W.rg2 .rg-games.has-sl > .rg-game.rg2-g.on { color: #fff; }   /* 要压过上面 .rg-games .rg-game.rg2-g 的 color */
.W.rg2 .rg2-games.has-sl > .rg2-g.on .rg2-rd, .W.rg2 .rg2-games:not(.has-sl) .rg2-g input:checked ~ .rg2-rd { background: #fff; box-shadow: inset 0 0 0 5px rgba(20,40,120,.45), 0 0 0 3px rgba(255,255,255,.25); }
.W.rg2 .rg2-games.has-sl > .rg2-g.on .rg2-gi { background: rgba(255,255,255,.22); }
/* 脚本没跑起来时:选中那张直接画成选中底(认 :has 的浏览器);不认 :has 的至少单选圆点跟着走(上一条兄弟选择器) */
.W.rg2 .rg2-games:not(.has-sl) .rg2-g:has(input:checked) { color: #fff; background: linear-gradient(180deg, rgba(255,255,255,.3), transparent 56%), var(--sel); }
@supports not selector(:has(a)) {   /* 浅色玻璃卡上白圆点看不见,换蓝点 */
  :where(:root[data-theme="light"]) .ev2.W.rg2 .rg2-games:not(.has-sl) .rg2-g input:checked ~ .rg2-rd { background: var(--au-ice); box-shadow: inset 0 0 0 4px #fff, 0 0 0 1.5px var(--au-ice); }
}
.W.rg2 .rg2-acts { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.W.rg2 .rg2-go { width: 100%; }
.W.rg2 .rg2-login { width: 100%; height: 46px; }
/* 登录页多出来的几块 */
.W.rg2 .lg-card { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.W.rg2 .lg-card.is-line { padding: 12px 14px; border-radius: 16px; background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--hair); }
.W.rg2 .lg2-line { font-size: 12.5px; line-height: 1.7; color: var(--ink-3); }
.W.rg2 .lg2-line b { color: var(--ink); font-weight: 800; }
.W.rg2 .lg2-qr { padding: 6px 0 2px; }
.W.rg2 .lg2-qr-t { font-size: 13.5px; font-weight: 800; margin-bottom: 10px; color: var(--ink); }
.W.rg2 .lg2-qr img { display: block; width: 156px; height: 156px; margin: 0 auto; border-radius: 16px; background: #fff; padding: 7px; box-shadow: 0 14px 30px -14px var(--shade), 0 0 0 1px var(--hair-2); }
.W.rg2 .lg-hint { margin: 10px 0 0; font-size: 12px; line-height: 1.6; color: var(--ink-3); text-align: center; }
.W.rg2 .lg-hint a, .W.rg2 .lg-forgot a { color: var(--au-ice); font-weight: 700; }
:where(:root[data-theme="light"]) .ev2.W.rg2 .lg-hint a, :where(:root[data-theme="light"]) .ev2.W.rg2 .lg-forgot a { color: #1f5fc4; }
.W.rg2 .lg-alt { width: 100%; display: flex; flex-direction: column; gap: 10px; }
.W.rg2 .lg-forgot { margin: 0; text-align: center; font-size: 13px; }
/* 还没登录:手机上不出底栏(复查第 1 条,之前压住「注册」按钮) */
body.rg3-page .tabbar { display: none !important; }
@media (max-width: 860px) { body.rg3-page .theme-fab { bottom: calc(16px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .W.rg2 .rg2-plate, .W.rg2 .rg2-pill i { animation: none !important; } }
@media (max-width: 760px) {
  .W.rg2 .rg2-main { padding: 20px 16px 72px; min-height: 0; }
  .W.rg2 .rg2-pit { width: 260px; height: 260px; right: -120px; top: -30px; opacity: .32; }
  .W.rg2 .rg2-col, .W.rg2 .rg-wrap, .W.rg2 .lg-wrap { gap: 10px; }
  .W.rg2 .rg2-pill { font-size: 11.5px; padding: 5px 11px 5px 9px; }
  .W.rg2 .rg-hd h1, .W.rg2 .lg-hd h1 { font-size: 40px; margin: 0 0 4px; }
  .W.rg2 .rg2-card { padding: 16px; border-radius: 24px; gap: 16px; }
  .W.rg2 .rg-games .rg-game.rg2-g { height: 50px; padding: 0 12px; gap: 8px; } .W.rg2 .rg2-g b { font-size: 13.5px; } .W.rg2 .rg2-gi { width: 28px; height: 28px; font-size: 15px; }
}

/* ═══ 三步开始使用 ═══ */
.W.ul2 { min-height: 100%; }
.W.ul2 .ul-wrap.ul2-main { position: relative; z-index: 1; width: min(620px, calc(100% - 32px)); max-width: none; margin: 0 auto; padding: 42px 0 96px; display: flex; flex-direction: column; gap: 16px; }
.W.ul2 .ul-hd { text-align: center; padding: 0; }
.W.ul2 .ul-hd h1 { margin: 0 0 4px; font-size: 46px; line-height: 1.12; letter-spacing: .06em; font-weight: 900; color: var(--ink); }
.W.ul2 .ul2-note { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: 20px; font-size: 13.5px; line-height: 1.8; color: var(--ink-2); }
.W.ul2 .ul2-note p { margin: 0; min-width: 0; } .W.ul2 .ul2-note b { font-weight: 800; color: var(--ink); }
.W.ul2 .ul2-note .ul2-note-s { color: var(--ink-3); }
/* 三步 + 竖向进度线(pages3-a.js 量出 --rh / --fill) */
.W.ul2 .ul2-steps { position: relative; display: flex; flex-direction: column; gap: 14px; margin: 4px 0 0; }
.W.ul2 .ul2-rail { position: absolute; left: 21px; top: var(--rt, 22px); width: 3px; height: var(--rh, 0px); border-radius: 2px; background: var(--glass-3); box-shadow: inset 0 0 0 1px var(--hair); pointer-events: none; }
.W.ul2 .ul2-rail > i { position: absolute; left: 0; right: 0; top: 0; height: var(--fill, 0px); border-radius: inherit; background: linear-gradient(180deg, var(--au-mint), var(--au-ice) 70%, var(--au-vio));
  box-shadow: 0 0 12px var(--glow-ice); transition: height calc(var(--ts, 1) * 760ms) var(--e-out); }
.W.ul2 .ul-step { position: relative; display: flex; align-items: flex-start; gap: 14px; padding: 0; margin: 0; border: 0; border-radius: 0; background: none; box-shadow: none; opacity: 1; color: inherit; }
.W.ul2 .ul-num { position: relative; z-index: 1; flex: none; display: grid; place-items: center; width: 45px; height: 45px; border: 0; border-radius: 50%;
  font: 800 16px/1 var(--f-num); color: var(--ink-3); background: var(--glass); box-shadow: inset 0 0 0 1.5px var(--hair-2), 0 8px 18px -10px var(--shade);
  transition: background calc(var(--ts, 1) * 300ms), color calc(var(--ts, 1) * 300ms), box-shadow calc(var(--ts, 1) * 300ms); }
:where(:root[data-theme="light"]) .ev2.W.ul2 .ul-num { background: rgba(255,255,255,.8); }
.W.ul2 .ul-step.is-done .ul-num { color: #fff; font-family: var(--f-ui); font-size: 19px; background: linear-gradient(160deg, rgba(255,255,255,.3), transparent 55%), linear-gradient(135deg, var(--okd-1), var(--okd-2));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 10px 22px -10px rgba(30,190,140,.75); animation: pg3Pop calc(var(--ts, 1) * 520ms) var(--e-spring) backwards; }
@keyframes pg3Pop { 0% { transform: scale(.7); } 60% { transform: scale(1.12); } 100% { transform: none; } }
.W.ul2 .ul-step.is-on .ul-num { color: #fff; background: linear-gradient(160deg, rgba(255,255,255,.32), transparent 55%), linear-gradient(135deg, #d8452a, #b0361a);
  animation: pg3Br calc(var(--ts, 1) * 2.2s) ease-out infinite; }
@keyframes pg3Br { 0% { box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 0 rgba(255,110,70,.5); } 70% { box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 12px rgba(255,110,70,0); } 100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 0 rgba(255,110,70,0); } }
/* 等待中:沙漏换成一个转圈 */
.W.ul2 .ul-spin { display: inline-block; width: 18px; height: 18px; font-size: 0; border-radius: 50%; border: 2.5px solid #fff; border-right-color: transparent; animation: pg3Spin calc(var(--ts, 1) * 900ms) linear infinite; }
@keyframes pg3Spin { to { transform: rotate(360deg); } }
.W.ul2 .ul-main { flex: 1; min-width: 0; padding: 13px 16px; border-radius: 20px; }
.W.ul2 .ul-step:not(.is-on):not(.is-done) .ul-main { opacity: .8; }
.W.ul2 .ul-t { display: flex; align-items: center; gap: 10px; min-height: 19px; font-size: 16px; font-weight: 800; color: var(--ink); }
.W.ul2 .ul-s { margin-top: 4px; font-size: 12.5px; line-height: 1.6; color: var(--ink-3); }
.W.ul2 .ul-step.is-done .ul-main > .ul-s { color: var(--ok); font-weight: 800; }
.W.ul2 .ul-form { margin-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.W.ul2 .ul-main > .ul-form:first-child { margin-top: 0; }
/* 主按钮(class="ul-btn" 被测试锁着,这里画成主按钮 A) */
.W.ul2 .ul-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; padding: 0 22px; border: 0; border-radius: 999px; overflow: hidden; isolation: isolate;
  cursor: pointer; font: inherit; font-size: 16px; font-weight: 800; letter-spacing: .02em; color: #fff; text-decoration: none; text-align: center; text-shadow: 0 1px 1px rgba(90,20,0,.3);
  background: linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.06) 50%, transparent 56%), linear-gradient(105deg, var(--a-1) 0%, var(--a-2) 55%, var(--a-3) 100%);
  box-shadow: inset 0 1px 0 rgba(255,236,210,.55), inset 0 0 0 1px rgba(246,220,174,.42), inset 0 -2px 5px rgba(90,20,0,.28), 0 14px 30px -12px var(--glow-em);
  --sc: 1; transform: scale(var(--sc)); transition: transform var(--d-out) var(--e-press), box-shadow calc(var(--ts, 1) * 320ms), filter calc(var(--ts, 1) * 200ms); }
.W.ul2 .ul-btn:hover { color: #fff; filter: brightness(1.05); }
.W.ul2 .ul-btn.is-press { --sc: .96; transition-duration: var(--d-in); filter: brightness(.94) saturate(1.1); }
.W.ul2 .ul-btn[disabled] { opacity: 1; cursor: progress; }
.W.ul2 .ul-btn.ul2-alt { color: var(--ink); text-shadow: none; min-height: 46px;
  background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,.04) 62%), linear-gradient(135deg, rgba(90,170,255,.24), rgba(150,110,255,.2) 60%, rgba(255,130,190,.17));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 0 0 1px rgba(150,190,255,.45), 0 8px 18px -10px rgba(110,100,255,.6); }
:where(:root[data-theme="light"]) .ev2.W.ul2 .ul-btn.ul2-alt { color: #151d45; background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.6) 70%), linear-gradient(135deg, rgba(150,215,255,.7), rgba(200,185,255,.6) 60%, rgba(255,200,225,.55)); box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px rgba(90,100,220,.28), 0 8px 18px -10px rgba(90,80,220,.42); }
.W.ul2 .ul-btn.is-up { filter: saturate(.85); }
/* 上传区:渐变玻璃 + 渐变虚线框;选了图出缩略图,拖图进来框亮起、虚线流动;识别中光扫过 */
.W.ul2 .ul2-drop { position: relative; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; gap: 14px; text-align: left; color: var(--ink-2); min-height: 96px; padding: 14px; border-radius: 18px; cursor: pointer; overflow: hidden;
  background: linear-gradient(135deg, rgba(90,170,255,.13), rgba(150,110,255,.1) 60%, rgba(255,130,190,.1));
  --sc: 1; transform: scale(var(--sc)); transition: background calc(var(--ts, 1) * 260ms), transform var(--d-out) var(--e-press); }
:where(:root[data-theme="light"]) .ev2.W.ul2 .ul2-drop { background: linear-gradient(135deg, rgba(170,215,255,.5), rgba(210,195,255,.42) 60%, rgba(255,205,225,.4)); }
.W.ul2 .ul2-ants { position: absolute; left: 1px; top: 1px; width: calc(100% - 2px); height: calc(100% - 2px); pointer-events: none; overflow: visible; }
.W.ul2 .ul2-ants rect { fill: none; stroke: url(#ul2g); stroke-width: 1.6; stroke-dasharray: 7 6; opacity: .75; transition: opacity calc(var(--ts, 1) * 200ms), stroke-width calc(var(--ts, 1) * 200ms); }
.W.ul2 .ul2-drop:hover .ul2-ants rect, .W.ul2 .ul2-drop:focus-within .ul2-ants rect { opacity: 1; }
.W.ul2 .ul2-drop.is-over { background: linear-gradient(135deg, rgba(90,170,255,.26), rgba(150,110,255,.2) 60%, rgba(255,130,190,.18)); --sc: 1.012; }
.W.ul2 .ul2-drop.is-over .ul2-ants rect { opacity: 1; stroke-width: 2.4; animation: pg3Ants calc(var(--ts, 1) * 700ms) linear infinite; filter: drop-shadow(0 0 6px rgba(120,200,255,.8)); }
@keyframes pg3Ants { to { stroke-dashoffset: -26; } }
.W.ul2 .ul2-drop:focus-within { box-shadow: 0 0 0 2px var(--au-ice); }
.W.ul2 .ul2-file { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; font-size: 0; }
.W.ul2 .ul2-dz { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; }
.W.ul2 .ul2-dz .gem { flex: none; width: 46px; height: 46px; border-radius: 15px; } .W.ul2 .ul2-dz .gem .fz-ico { width: 22px; height: 22px; }
.W.ul2 .ul2-dzt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.W.ul2 .ul2-dzt .ul-s { margin: 0; font-size: 13px; color: var(--ink-2); }
.W.ul2 .ul2-dzt .ul-s b { font-size: 15px; font-weight: 800; color: var(--ink); }
.W.ul2 .ul2-dzt a { position: relative; z-index: 2; font-weight: 700; }
.W.ul2 .ul2-fn { font-size: 12px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.W.ul2 .ul2-fn:empty { display: none; }
.W.ul2 .ul2-th { display: none; position: relative; order: -1; flex: none; width: 58px; height: 104px; border-radius: 11px; overflow: hidden; box-shadow: 0 10px 22px -10px var(--shade), 0 0 0 1px var(--hair-2); }
.W.ul2 .ul2-drop.has-img .ul2-th { display: block; animation: pg3In calc(var(--ts, 1) * 460ms) var(--e-spring); }
@keyframes pg3In { from { opacity: 0; transform: translateY(12px) scale(.86) rotate(-4deg); } }
.W.ul2 .ul2-th img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.W.ul2 .ul2-sweep { position: absolute; left: 0; right: 0; top: -40%; height: 40%; opacity: 0; background: linear-gradient(180deg, transparent, rgba(140,210,255,.7), transparent); }
.W.ul2 .ul2-drop.is-run .ul2-sweep { opacity: 1; animation: pg3Sw calc(var(--ts, 1) * 1.1s) linear infinite; }
@keyframes pg3Sw { to { top: 100%; } }
.W.ul2 .ul2-drop.is-run::after, .W.ul2 .ev-ocr[data-status="processing"]::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 36%; transform: skewX(-18deg); pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(150,215,255,.32), transparent); animation: pg3Bar calc(var(--ts, 1) * 1.4s) var(--e-io) infinite; }
@keyframes pg3Bar { to { left: 120%; } }
/* 其余几处原生选图(改选游戏后重传 / 换一张领主档案):原生框按钮画成小胶囊 */
.W.ul2 .ul-form input[type=file]:not(.ul2-file) { width: 100%; padding: 10px 12px; border-radius: 14px; font-size: 13px; color: var(--ink-3); background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--hair-2); }
.W.ul2 .ul-form input[type=file]:not(.ul2-file)::file-selector-button { margin-right: 10px; padding: 6px 12px; border: 0; border-radius: 999px; font: inherit; font-weight: 800; color: var(--ink); cursor: pointer;
  background: linear-gradient(135deg, rgba(90,170,255,.3), rgba(150,110,255,.26)); }
/* 识别进度卡(与「我的」页同款,类名不动):缩略图换成玻璃小卡,识别中扫过一道光 */
.W.ul2 .ev-ocr { position: relative; overflow: hidden; margin-top: 12px; padding: 12px; border-radius: 16px; background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--hair); }
.W.ul2 .ev-ocr .eo-th { width: 64px; height: 114px; border-radius: 11px; border: 0; background: var(--glass-3); box-shadow: 0 10px 22px -10px var(--shade), 0 0 0 1px var(--hair-2); }
.W.ul2 .ev-ocr .eo-th.is-run::before { content: ""; position: absolute; left: 0; right: 0; top: -40%; height: 40%; z-index: 1; background: linear-gradient(180deg, transparent, rgba(140,210,255,.7), transparent); animation: pg3Sw calc(var(--ts, 1) * 1.1s) linear infinite; }
.W.ul2 .ev-ocr .eo-lab { background: rgba(8,12,40,.66); color: #fff; }
.W.ul2 .ev-ocr .eo-th.is-bad { box-shadow: 0 0 0 2px var(--bad); }
.W.ul2 .ev-ocr .eo-th.is-bad .eo-lab { background: linear-gradient(100deg, var(--mine-1), var(--mine-2)); }
.W.ul2 .ev-ocr .eo-fail { border: 0; border-radius: 14px; background: linear-gradient(150deg, rgba(255,90,120,.16), rgba(255,140,120,.08)); box-shadow: inset 0 0 0 1px rgba(255,120,140,.35); }
.W.ul2 .ev-ocr .eo-ft { color: var(--ink-2); } .W.ul2 .ev-ocr .eo-ft b { color: var(--bad); } .W.ul2 .ev-ocr .eo-ft small { color: var(--ink-3); }
.W.ul2 .ev-ocr .eo-sample { border-color: var(--ok); border-radius: 9px; }
.W.ul2 .ev-ocr .ul-link { color: var(--au-ice); }
.W.ul2 .ul-conflict details summary { color: var(--au-ice) !important; }
/* 完成后「钉在桌面」那一行 */
.W.ul2 .ul2-pin { text-decoration: none; }
.W.ul2 .ul2-pin .ul-num { font-family: var(--f-ui); font-size: 18px; color: inherit; }
.W.ul2 .ul2-pin .ul-main { display: flex; align-items: center; min-height: 45px; padding: 0 16px; }
.W.ul2 .ul-trust { margin: 2px 0 0; text-align: center; font-size: 12.5px; line-height: 1.95; color: var(--ink-3); }
.W.ul2 .ul-trust b { color: var(--ink-2); font-weight: 800; }
:where(:root[data-theme="light"]) .ev2.W.ul2 .ul-trust a, :where(:root[data-theme="light"]) .ev2.W.ul2 .ul-main a:not(.ul-btn), :where(:root[data-theme="light"]) .ev2.W.ul2 .ul2-dzt a { color: #1f5fc4 !important; }
@media (prefers-reduced-motion: reduce) {
  .W.ul2 .ul-step.is-on .ul-num, .W.ul2 .ul-step.is-done .ul-num, .W.ul2 .ul2-drop.is-run .ul2-sweep, .W.ul2 .ul2-drop.is-run::after, .W.ul2 .ul2-drop.is-over .ul2-ants rect,
  .W.ul2 .ev-ocr .eo-th.is-run::before, .W.ul2 .ev-ocr[data-status="processing"]::after { animation: none !important; }
  .W.ul2 .ul2-rail > i { transition: none; }
}
@media (max-width: 760px) {
  .W.ul2 .ul-wrap.ul2-main { padding: 22px 0 110px; gap: 14px; }
  .W.ul2 .ul-hd h1 { font-size: 34px; }
  .W.ul2 .ul2-note { font-size: 12.5px; padding: 12px 14px; }
  .W.ul2 .ul-step { gap: 10px; } .W.ul2 .ul-num { width: 38px; height: 38px; font-size: 14px; } .W.ul2 .ul2-rail { left: 17.5px; }
  .W.ul2 .ul-main { padding: 12px 13px; border-radius: 18px; }
  .W.ul2 .ul2-drop { min-height: 86px; padding: 12px; gap: 12px; } .W.ul2 .ul2-dz .gem { width: 40px; height: 40px; border-radius: 13px; }
  .W.ul2 .ul2-th { width: 50px; height: 90px; }
}

/* ═══ 联盟月卡 ═══ */
.W.prw .pr-wrap { position: relative; z-index: 1; max-width: 980px; margin: 0 auto; padding: 0 40px 120px; display: flex; flex-direction: column; gap: 18px; }
.W.prw .pr-hd { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 40px 0 10px; flex-wrap: wrap; }
.W.prw .pr-hd h1 { margin: 0; font-size: 64px; line-height: 1.1; letter-spacing: .06em; font-weight: 900; }
.W.prw .pr-chip { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border: 0; border-radius: 8px; font-size: 12px; font-weight: 800; color: #fff;
  background: linear-gradient(100deg, var(--a-1), var(--a-2)); box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 6px 14px -8px var(--glow-em); }
/* 卡片:玻璃卡照 ev3;不是玻璃的分区(包含 / 开通方式 / 规则)只当容器 */
.W.prw .pr-card { margin: 0; border: 0; border-radius: 28px; color: var(--ink-2); }
.W.prw .pr-card.glass { padding: 24px 26px 22px; }
.W.prw .pr-card.pr2-sec, .W.prw .pr-card.pr2-col { padding: 0; background: none; box-shadow: none; }
.W.prw .pr-card h2 { margin: 36px 0 18px; display: flex; align-items: center; gap: 10px; font-family: var(--f-disp); font-size: 32px; font-weight: 900; letter-spacing: .04em; line-height: 1.15; color: var(--ink); }
.W.prw #pr-plans > h2, .W.prw .pr2-mine > h2, .W.prw #pr-qr h2 { margin: 0 0 4px; font-family: var(--f-ui); font-size: 11.5px; font-weight: 800; letter-spacing: .2em; color: var(--ink-3); }
.W.prw .pr-card p, .W.prw .pr-card li { color: var(--ink-2); }
.W.prw .pr-card a:not(.btn):not(.btn-ghost):not(.go) { color: var(--au-ice); font-weight: 700; }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-card a:not(.btn):not(.btn-ghost):not(.go) { color: #1f5fc4; }
.W.prw .pr-dim { color: var(--ink-3); font-size: 13px; }
/* 页顶小程序码 */
.W.prw .pr-qr { display: flex; align-items: center; gap: 18px; }
.W.prw .pr-qr img { flex: none; width: 112px; height: 112px; border: 0; border-radius: 16px; background: #fff; padding: 6px; box-shadow: 0 14px 30px -14px var(--shade); }
.W.prw .pr-qr .kv { font-size: 13px; color: var(--ink-3); line-height: 1.8; }
.W.prw .pr-qr .kv b { color: var(--ink); }
/* 档位:四张一行;选中光环从上一张滑到新卡(pages3-a.js 的 .pr2-ring);年卡金边扫光 */
.W.prw .pr2-rg { position: relative; }
.W.prw .pr-grp { margin-top: 18px; } .W.prw .pr-grp + .pr-grp { margin-top: 20px; }
.W.prw .pr-gh { margin: 0 0 14px; font-size: 13px; font-weight: 800; color: var(--ink-3); letter-spacing: .14em; }
.W.prw .pr-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.W.prw .pr-tier { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px 16px 16px; border: 0; border-radius: 20px; cursor: pointer; min-width: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.1), transparent 50%), linear-gradient(150deg, rgba(80,150,255,.14), rgba(255,255,255,.03) 55%, rgba(150,105,255,.12));
  box-shadow: inset 0 0 0 1px rgba(150,180,255,.22), inset 0 1px 0 rgba(255,255,255,.14), 0 14px 28px -20px var(--m-cshadow);
  transition: transform calc(var(--ts, 1) * 600ms) var(--e-out), background calc(var(--ts, 1) * 260ms), box-shadow calc(var(--ts, 1) * 260ms); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-tier { background: linear-gradient(180deg, #fff, rgba(255,255,255,.55) 60%), linear-gradient(150deg, rgba(170,215,255,.6), rgba(205,190,255,.5)); box-shadow: inset 0 0 0 1px rgba(100,120,230,.2), 0 14px 28px -20px var(--m-cshadow); }
@media (hover: hover) { .W.prw .pr-tier:hover { --lift: -3px; } }
.W.prw .pr-tier input { position: absolute; opacity: 0; pointer-events: none; }
.W.prw .pr-tier .nm { display: block; padding-right: 24px; font-size: 14px; font-weight: 800; color: var(--ink-2); }
.W.prw .pr-tier .num { display: block; margin-top: 4px; font-family: var(--f-num); font-size: 38px; line-height: 1.05; font-weight: 700; letter-spacing: -.01em; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.W.prw .pr-tier .num small { display: inline; font-family: var(--f-num); font-size: .5em; font-weight: 700; margin: 0 2px 0 0; opacity: .8; }
.W.prw .pr-tier .num s { margin-left: 6px; font-family: var(--f-ui); font-size: 13px; font-weight: 500; color: var(--ink-3); }
.W.prw .pr-tier .cap { display: block; margin-top: 2px; font-size: 12px; line-height: 1.5; color: var(--ink-3); }
.W.prw .pr-tier .cap .nw { white-space: nowrap; }
.W.prw .pr-tier .add { display: block; margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--hair); font-size: 12px; font-weight: 700; color: var(--em-ink); }
.W.prw .pr-tier .add s { color: var(--ink-3); font-weight: 400; margin-right: 4px; }
.W.prw .pr-tier .add .avp { margin-left: 4px; color: var(--bad); font-weight: 800; }
.W.prw .pr-tier .rd { position: absolute; top: 16px; right: 14px; width: 18px; height: 18px; border: 0; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--hair-2); transition: background calc(var(--ts, 1) * 200ms), box-shadow calc(var(--ts, 1) * 300ms) var(--e-spring); }
.W.prw .pr-tier .vp { position: absolute; z-index: 3; left: -2px; top: -10px; height: 22px; padding: 0 9px; border-radius: 8px 8px 8px 2px; display: inline-flex; align-items: center;
  font-family: var(--f-num); font-size: 12px; font-weight: 800; line-height: 1; color: #fff; background: linear-gradient(180deg, #d43a32, #b8281c); box-shadow: 0 6px 14px -6px rgba(229,72,59,.7); }
.W.prw .pr-tier.is-on { background: linear-gradient(180deg, rgba(255,255,255,.14), transparent 50%), linear-gradient(160deg, rgba(90,168,255,.3), rgba(138,108,255,.18) 60%, rgba(255,111,177,.1));
  box-shadow: inset 0 0 0 2px rgba(130,205,255,.95), 0 0 0 4px rgba(90,168,255,.16), 0 18px 36px -18px var(--glow-ice); }
.W.prw .pr-tier.is-on.is-gold { box-shadow: inset 0 0 0 2px #f3c27a, 0 0 0 4px rgba(243,183,107,.18), 0 18px 36px -16px var(--glow-gd); }
.W.prw .pr-tier.tilting { transition: transform calc(var(--ts, 1) * 140ms) linear, background calc(var(--ts, 1) * 260ms), box-shadow calc(var(--ts, 1) * 260ms); }
/* 光环飞行中:新卡自己的光环先不亮,飞到了再亮(pages3-a.js 加 / 去 .is-fly) */
.W.prw .pr2-rg.is-fly .pr-tier.is-on { box-shadow: 0 18px 36px -18px var(--glow-ice); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-tier.is-on { background: linear-gradient(180deg, #fff, rgba(255,255,255,.5) 60%), linear-gradient(160deg, rgba(120,190,255,.7), rgba(170,150,255,.55)); box-shadow: inset 0 0 0 2px rgba(40,150,240,.9), 0 0 0 4px rgba(61,142,240,.14), 0 16px 30px -18px var(--glow-ice); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-tier.is-on.is-gold { box-shadow: inset 0 0 0 2px #d9a54a, 0 0 0 4px rgba(201,147,47,.16), 0 16px 30px -16px var(--glow-gd); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr2-rg.is-fly .pr-tier.is-on { box-shadow: 0 16px 30px -18px var(--glow-ice); }
.W.prw .pr-tier.is-on .rd { background: var(--sel); box-shadow: inset 0 0 0 4px var(--g1); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-tier.is-on .rd { box-shadow: inset 0 0 0 4px #fff; }
.W.prw .pr-tier.is-gold { background: linear-gradient(180deg, rgba(255,255,255,.1), transparent 50%), linear-gradient(160deg, rgba(255,233,176,.2), rgba(233,140,180,.1) 70%); box-shadow: inset 0 0 0 1px rgba(243,183,107,.6), 0 14px 30px -18px var(--glow-gd); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-tier.is-gold { background: linear-gradient(180deg, #fff, rgba(255,255,255,.5) 60%), linear-gradient(160deg, rgba(255,225,170,.8), rgba(240,190,215,.6)); box-shadow: inset 0 0 0 1px rgba(201,147,47,.6); }
.W.prw .pr-tier.is-gold .nm { color: var(--gd-ink); }
.W.prw .pr-tier .gsw { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; z-index: 1; }
.W.prw .pr-tier .gsw::before { content: ""; position: absolute; top: -30%; bottom: -30%; width: 40%; left: -60%; transform: skewX(-20deg);
  background: linear-gradient(90deg, transparent, rgba(255,236,190,.38), transparent); animation: pg3Gsw calc(var(--ts, 1) * 5.5s) ease-in-out infinite; }
@keyframes pg3Gsw { 0%, 64% { left: -60%; } 100% { left: 140%; } }
/* 鼠标点选不出描边(选中有光环),键盘切换时才出 */
.W.prw .pr-tier:focus-within { outline: 0; }
.W.prw .pr-tier:has(input:focus-visible) { outline: 2px solid var(--au-ice); outline-offset: 3px; }
.W.prw .pr-tier.is-press { --sc: .975; }
.W.prw .pr2-ring { position: absolute; z-index: 4; left: 0; top: 0; width: 0; height: 0; border-radius: 20px; pointer-events: none; opacity: 0; transition: opacity calc(var(--ts, 1) * 260ms);
  box-shadow: inset 0 0 0 2px rgba(130,205,255,.95), 0 0 0 4px rgba(90,168,255,.16), 0 0 24px -4px rgba(90,168,255,.45); }
.W.prw .pr2-ring.is-gold { box-shadow: inset 0 0 0 2px #f3c27a, 0 0 0 4px rgba(243,183,107,.18), 0 0 24px -4px rgba(243,183,107,.5); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr2-ring { box-shadow: inset 0 0 0 2px rgba(40,150,240,.9), 0 0 0 4px rgba(61,142,240,.14); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr2-ring.is-gold { box-shadow: inset 0 0 0 2px #d9a54a, 0 0 0 4px rgba(201,147,47,.16), 0 0 20px -4px rgba(201,147,47,.45); }
.W.prw .pr2-ring.on { opacity: 1; }
.W.prw .pr-gline { margin: 14px 0 0; font-size: 13px; color: var(--ink-3); }
/* 吸底合计条 */
.W.prw .pr-bar { position: sticky; bottom: 16px; z-index: 12; display: flex; align-items: center; gap: 22px; margin: 22px 0 0; padding: 14px 14px 14px 20px; border: 0; border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.12), transparent 45%), linear-gradient(150deg, rgba(96,84,220,.96), rgba(38,44,138,.96) 52%, rgba(110,64,180,.96)); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-bar { background: linear-gradient(180deg, #fff, rgba(255,255,255,.6) 60%), linear-gradient(150deg, rgba(214,206,255,.98), rgba(236,232,255,.98) 52%, rgba(250,222,240,.98)); }
.W.prw .pr-bar .sel { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 22px; font-size: 13px; color: var(--ink-3); line-height: 1.4; }
.W.prw .pr-bar .sel b { color: var(--ink); font-size: 15px; }
.W.prw .pr-bar .sel .l { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.W.prw .pr-bar .sel .l:last-child { margin-left: auto; }
.W.prw .pr-bar .sel .tot { margin-left: 6px; font-family: var(--f-num); font-size: 32px; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.W.prw .pr-bar .pr-go { flex: none; min-width: 0; color: #fff !important; }
.W.prw .pr-bar.bump { animation: pg3Bump calc(var(--ts, 1) * 520ms) var(--e-press); }
@keyframes pg3Bump { 30% { transform: scale(1.012); box-shadow: inset 0 1px 0 var(--m-hi), 0 0 0 1px rgba(140,190,255,.5), 0 22px 44px -18px var(--glow-ice); } }
.W.prw #pr-plans > .pr-dim { margin: 12px 2px 0 !important; }
/* 联盟月卡包含 */
.W.prw .pr2-inc { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; }
.W.prw .pr-incl, .W.prw .pr-free { margin: 0; padding: 20px 22px; border: 0; border-radius: 24px; }
.W.prw .pr-incl .pe, .W.prw .pr-free .pe { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; font-size: 16px; font-weight: 800; color: var(--ink); letter-spacing: 0; }
.W.prw .pr-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.W.prw .pr-tags span { padding: 6px 12px; border: 0; border-radius: 10px; font-size: 13px; font-weight: 700; color: var(--ink); background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--hair-2); }
.W.prw .pr-incl .pr-tags span { box-shadow: inset 0 0 0 1px rgba(255,150,100,.3); }
.W.prw .pr-free .pr-tags span { box-shadow: inset 0 0 0 1px rgba(111,240,176,.25); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-incl .pr-tags span { box-shadow: inset 0 0 0 1px rgba(226,98,29,.25); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-free .pr-tags span { box-shadow: inset 0 0 0 1px rgba(11,122,75,.25); }
.W.prw .pr2-more { margin-top: 16px; }
.W.prw .pr2-more .go { margin-left: 0; }
/* 我管理的盟 */
.W.prw .pr2-mine { padding: 22px 24px; border-radius: 26px; }
.W.prw .pr-mine { margin-top: 14px; padding: 0 0 14px; border: 0; border-radius: 0; box-shadow: inset 0 -1px 0 var(--hair); display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--ink-2); font-size: 14px; }
.W.prw .pr-mine:last-child { box-shadow: none; padding-bottom: 0; }
.W.prw .pr-mine strong { font-family: var(--f-num); font-size: 18px; font-weight: 800; color: var(--ink); }
.W.prw .pr-mine code, .W.prw .pr-remark code, .W.prw .pr2-way code { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 7px; font-family: var(--f-num); font-size: 12.5px; font-weight: 700; color: var(--ink);
  background: rgba(90,168,255,.16); box-shadow: inset 0 0 0 1px rgba(90,168,255,.32); user-select: all; }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-mine code, :where(:root[data-theme="light"]) .ev2.W.prw .pr-remark code, :where(:root[data-theme="light"]) .ev2.W.prw .pr2-way code { color: #163c86; }
.W.prw .pr-ok { color: var(--ok); font-weight: 800; } .W.prw .pr-no { color: var(--ink-3); }
.W.prw .pr-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 7px; font-size: 11.5px; font-weight: 800; color: #3a2400; background: linear-gradient(100deg, var(--gd-a), var(--gd-b)); vertical-align: 2px; }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-badge { color: #2c1a00; }
.W.prw .pr-mine .pr-chip { margin-left: 6px; }
.W.prw .pr-bill { flex-basis: 100%; margin-top: 6px; padding-top: 10px; border-top: 0; box-shadow: inset 0 1px 0 var(--hair); }
.W.prw .pr-bill-hd { margin-bottom: 10px; font-size: 13px; color: var(--ink-3); }
.W.prw .pr-bill-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; font-size: 13px; }
.W.prw .pr-bill-grid span { display: flex; align-items: baseline; gap: 8px; padding: 14px 16px; border-radius: 16px; color: var(--ink-2); background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--hair); }
.W.prw .pr-bill-grid b { margin-right: 0; font-family: var(--f-num); font-size: 34px; line-height: 1; font-weight: 700;
  background: linear-gradient(100deg, var(--au-cyan), var(--au-ice) 45%, var(--au-vio)); -webkit-background-clip: text; background-clip: text; color: transparent; }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-bill-grid b { background-image: linear-gradient(100deg, #1f5fd6, #5b3fd8); }
.W.prw .pr-bill-ft { margin-top: 8px; font-size: 13px; line-height: 1.6; color: var(--ink-3); }
/* 开通方式 */
.W.prw .pr2-how { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.W.prw .pr2-way { padding: 20px 22px; border-radius: 24px; }
.W.prw .pr2-wh { display: flex; align-items: center; gap: 12px; margin: 0 0 14px !important; font-size: 16px; color: var(--ink); }
.W.prw .pr2-wh strong { font-weight: 800; color: var(--ink); }
.W.prw .pr-afd-go { margin: 0 0 4px; height: 40px; }
.W.prw .pr-afd-go.btn-ghost { color: var(--ink) !important; border: 0; }
.W.prw .pr-remark { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; font-size: 13px; color: var(--ink-3); line-height: 1.6; }
.W.prw .pr-copy { display: inline-flex; align-items: center; height: 24px; margin: 0; padding: 0 9px; border: 0; border-radius: 7px; font: inherit; font-size: 11.5px; font-weight: 800; cursor: pointer;
  color: var(--ink-3); background: var(--glass-2); box-shadow: inset 0 0 0 1px var(--hair-2); transition: transform var(--d-out) var(--e-press), color .2s, background .2s; }
.W.prw .pr-copy:active { transform: scale(.94); transition-duration: var(--d-in); }
.W.prw .pr2-way ol { margin: 14px 0 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; line-height: 1.6; color: var(--ink-2); }
.W.prw .pr2-way li { font-size: 13.5px; line-height: 1.6; }
.W.prw .pr2-way li::marker { color: var(--em-ink); font-family: var(--f-num); font-weight: 700; }
.W.prw .pr2-way strong { color: var(--ink); }
.W.prw .pr2-who { margin: 14px 4px 0 !important; }
/* 规则 / 常见问题:两列玻璃 */
.W.prw .pr2-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.W.prw .pr2-qa { margin: 0; padding: 8px 22px; border-radius: 24px; list-style: none; }
.W.prw .pr2-qa li { margin: 0; padding: 12px 0; font-size: 13.5px; line-height: 1.65; color: var(--ink-2); box-shadow: inset 0 -1px 0 var(--hair); }
.W.prw .pr2-qa li:last-child { box-shadow: none; }
.W.prw .pr2-qa strong { color: var(--ink); }
.W.prw .pr-foot { margin: 22px 0 0; text-align: center; font-size: 13px; color: var(--ink-3); }
.W.prw .pr-foot a { color: var(--au-ice); }
:where(:root[data-theme="light"]) .ev2.W.prw .pr-foot a { color: #1f5fc4; }
@media (prefers-reduced-motion: reduce) { .W.prw .pr-tier .gsw::before, .W.prw .pr-bar.bump { animation: none !important; } }
@media (max-width: 860px) {
  .W.prw .pr-bar { bottom: var(--dock-gap); margin-right: var(--dock-fab); }
}
@media (max-width: 760px) {
  .W.prw .pr-wrap { padding: 0 16px 120px; gap: 14px; }
  .W.prw .pr-hd { padding: 22px 0 6px; } .W.prw .pr-hd h1 { font-size: 40px; }
  .W.prw .pr-card.glass { padding: 18px 14px; border-radius: 24px; }
  .W.prw .pr-card h2 { font-size: 26px; margin: 26px 0 14px; }
  .W.prw .pr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; }
  .W.prw .pr-tier { padding: 18px 12px 13px; } .W.prw .pr-tier .num { font-size: 30px; }
  .W.prw .pr-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 10px 10px 16px; border-radius: 20px; margin-right: 52px; }
  .W.prw .pr-bar .sel { display: flex; flex-direction: column; align-items: flex-start; gap: 0; font-size: 12px; }
  .W.prw .pr-bar .sel .l:last-child { margin-left: 0; }
  .W.prw .pr-bar .sel .tot { font-size: 24px; }
  .W.prw .pr-bar .pr-go { height: 48px; padding: 0 22px; font-size: 16px; }
  .W.prw .pr2-inc, .W.prw .pr2-how, .W.prw .pr2-faq { grid-template-columns: minmax(0, 1fr); }
  .W.prw .pr-bill-grid { grid-template-columns: minmax(0, 1fr); }
  .W.prw .pr-qr { gap: 14px; } .W.prw .pr-qr img { width: 96px; height: 96px; }
}
@media (max-width: 360px) { .W.prw .pr-tier .num { font-size: 26px; } .W.prw .pr-bar { gap: 8px; padding-left: 12px; } }
