/* GamePartner v011 — 游戏 Logo 卡片 + 介绍图弹窗 */

/* ---------- 游戏卡片：同图模糊背景 + 圆角 Logo（圆角裁掉 Logo 自带的黑色边角） ---------- */
.landing .gpGames .gameImg{position:relative;display:grid;place-items:center;aspect-ratio:1/1;width:100%;padding:0;margin:0;border:0;overflow:hidden;background:#101a2d;color:inherit;font:inherit;text-align:inherit;-webkit-tap-highlight-color:transparent}
.landing .gpGames button.gameImg{cursor:zoom-in}
.landing .gpGames button.gameImg:focus-visible{outline:3px solid var(--gp-lime);outline-offset:-3px}
.landing .gpGames .gameImg .gameGlow{position:absolute;inset:-14%;width:128%;height:128%;max-width:none;object-fit:cover;filter:blur(24px) saturate(1.4);opacity:.62;border-radius:0;box-shadow:none;pointer-events:none}
.landing .gpGames .gameImg::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,transparent 34%,rgba(8,14,27,.6) 100%);pointer-events:none}
.landing .gpGames .gameLogo{position:relative;z-index:1;width:74%;aspect-ratio:1/1;border-radius:29%;overflow:hidden;background:#0b1424;box-shadow:0 16px 34px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.16);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.landing .gpGames .gameImg .gameLogo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;box-shadow:none;transform:scale(1.015);transition:none}
.landing .gpGames>.game:hover .gameImg img{transform:none}
.landing .gpGames>.game:hover .gameImg .gameLogo img{transform:scale(1.015)}
.landing .gpGames>.game:hover .gameLogo{transform:translateY(-4px) scale(1.045);box-shadow:0 24px 44px rgba(0,0,0,.6),0 0 0 1px rgba(186,255,67,.45)}
.landing .gpGames .gameImg .coverLabel{z-index:2}
.landing .gpGames .gameImg .fallbackIcon{position:relative;z-index:1;font-size:56px}
.landing .gameZoom{position:absolute;z-index:2;top:10px;right:10px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(6,21,38,.72);border:1px solid rgba(186,255,67,.45);color:var(--gp-lime);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background-color .2s,color .2s,transform .2s}
.landing .gameZoom svg{display:block;width:15px;height:15px}
.landing .gpGames>.game:hover .gameZoom,.landing .gpGames button.gameImg:focus-visible .gameZoom{background:var(--gp-lime);color:#0c1510;transform:scale(1.08)}
.landing .gameMore span svg{display:block;width:15px;height:15px}
.landing .gpIntroHint{display:block;margin-top:8px;color:var(--gp-lime);font-weight:700;font-size:.92em}

/* 首屏右下角的小图标同样使用圆角 Logo */
.landing .gpHeroMiniCards div{border-radius:29%}
.landing .gpHeroMiniCards img{transform:scale(1.015)}

/* ---------- 介绍图弹窗 ---------- */
html.gpNoScroll,html.gpNoScroll body{overflow:hidden}
.gpIntro{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:12px;overscroll-behavior:contain}
.gpIntroBackdrop{position:absolute;inset:0;background:rgba(3,7,16,.84);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .22s;touch-action:none}
.gpIntro.is-open .gpIntroBackdrop{opacity:1}
.gpIntroBox{position:relative;display:flex;flex-direction:column;max-width:100%;border-radius:18px;overflow:hidden;background:#0d1729;border:1px solid rgba(186,255,67,.32);box-shadow:0 30px 90px rgba(0,0,0,.72);opacity:0;transform:translateY(14px) scale(.97);transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s}
.gpIntro.is-open .gpIntroBox{opacity:1;transform:none}
.gpIntroMedia{position:relative;width:100%;background:#0a1322;overflow:hidden}
.gpIntroMedia picture{display:block;width:100%;height:100%}
.gpIntroMedia img{display:block;width:100%;height:100%;object-fit:contain;transition:opacity .25s}
.gpIntro.is-loading .gpIntroMedia img{opacity:0}
.gpIntroSpinner{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:3px solid rgba(186,255,67,.2);border-top-color:var(--gp-lime);opacity:0;transition:opacity .2s;animation:gpIntroSpin .8s linear infinite}
.gpIntro.is-loading .gpIntroSpinner{opacity:1}
@keyframes gpIntroSpin{to{transform:rotate(360deg)}}
.gpIntroClose{position:absolute;z-index:2;top:10px;right:10px;width:42px;height:42px;padding:0;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);background:rgba(6,12,24,.72);color:#fff;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background-color .2s,color .2s,border-color .2s}
.gpIntroClose:hover,.gpIntroClose:focus-visible{background:var(--gp-lime);border-color:var(--gp-lime);color:#0c1510;outline:none}
.gpIntroBar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 12px 12px 18px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,#0f1c31,#0d1729)}
.gpIntroInfo{min-width:0;display:flex;flex-direction:column;gap:3px}
.gpIntroKicker{font-size:10px;letter-spacing:1.6px;font-weight:900;color:var(--gp-lime)}
.gpIntroInfo strong{font-size:16px;line-height:1.3;font-weight:900;color:#f3f8ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gpIntroCta{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:10px;background:var(--gp-lime);color:#0c1510;font-weight:900;font-size:13px;letter-spacing:.6px;padding:11px 18px;cursor:pointer;box-shadow:0 10px 26px rgba(186,255,67,.18);transition:background-color .2s,transform .2s}
.gpIntroCta:hover{background:#d2ff82;transform:translateY(-1px)}
.gpIntroCta:focus-visible{outline:3px solid #fff;outline-offset:2px}
.gpIntroCta:disabled{opacity:.7;cursor:wait}
@media (max-width:560px){
  .gpIntroBox{border-radius:14px}
  .gpIntroBar{flex-direction:column;align-items:stretch;gap:9px;padding:11px}
  .gpIntroInfo{flex-direction:row;align-items:baseline;gap:8px}
  .gpIntroInfo strong{font-size:14.5px}
  .gpIntroCta{width:100%;font-size:12.5px}
  .gpIntroClose{top:8px;right:8px;width:40px;height:40px}
  .landing .gameZoom{top:8px;right:8px;width:30px;height:30px}
  .landing .gpIntroHint{font-size:12.5px}
  .landing .gpGames .gameMore.gameIntroOpen{white-space:nowrap;gap:6px;padding:9px 9px;letter-spacing:.2px;font-size:10.5px}
  .landing .gpGames .gameMore.gameIntroOpen span svg{width:13px;height:13px}
}
@media (max-width:359px){
  .landing .gpGames .gameMore.gameIntroOpen{justify-content:center}
  .landing .gpGames .gameMore.gameIntroOpen span{display:none}
}
@media (prefers-reduced-motion:reduce){
  .gpIntroBox,.gpIntroBackdrop,.landing .gpGames .gameLogo{transition:none}
  .gpIntroSpinner{animation-duration:2s}
}
