/* =========================================================
   predict.css — 갈라예측 아케이드 재설계 (파리뮤추얼)
   galla-predict.css 위에 얹는 신규 레이어. 다크+네온/골드.
========================================================= */
:root{
  --pm-gold:#ffcf3f; --pm-gold2:#ff9d2e; --pm-yes:#4a7bff; --pm-no:#ff3c5a;
  --pm-panel:#12141c; --pm-line:#242838; --pm-ink:#eef1f7; --pm-dim:#8a93a6;
}

/* ===== 상단 몰입 배너들 ===== */
.pm-lobby{ padding: 6px 14px 26px; }

/* 연승 콤보 배너 */
.pm-combo{
  display:flex; align-items:center; gap:10px; margin:8px 0 12px;
  padding:11px 14px; border-radius:14px; position:relative; overflow:hidden;
  background:linear-gradient(100deg,#241a08,#1a1206); border:1px solid #3a2c0f;
}
.pm-combo.hot{ border-color:var(--pm-gold2); box-shadow:0 0 22px rgba(255,157,46,.18) inset; }
.pm-combo-fire{ font-size:24px; filter:drop-shadow(0 0 6px rgba(255,140,40,.6)); }
.pm-combo-txt{ flex:1; min-width:0; }
.pm-combo-n{ font-size:15px; font-weight:900; color:var(--pm-gold); }
.pm-combo-sub{ font-size:11.5px; color:#c8b992; margin-top:1px; }
.pm-combo-mult{ font-size:19px; font-weight:900; color:var(--pm-gold);
  text-shadow:0 0 12px rgba(255,207,63,.4); flex:0 0 auto; }
@keyframes pmFlick{0%,100%{opacity:1}50%{opacity:.7}}
.pm-combo.hot .pm-combo-fire{ animation:pmFlick 1.1s ease-in-out infinite; }

/* 데일리 무료 코인 */
.pm-daily{
  display:flex; align-items:center; gap:12px; margin-bottom:14px;
  padding:13px 15px; border-radius:14px; cursor:pointer;
  background:linear-gradient(100deg,#0f1a14,#0c130f); border:1px solid #1c3a2a;
  transition:transform .12s ease;
}
.pm-daily:active{ transform:scale(.98); }
.pm-daily.done{ opacity:.6; cursor:default; }
.pm-daily-ic{ font-size:26px; }
.pm-daily-m{ flex:1; }
.pm-daily-t{ font-size:14px; font-weight:800; color:var(--pm-ink); }
.pm-daily-s{ font-size:11.5px; color:#7fb89a; margin-top:1px; }
.pm-daily-go{ font-size:13px; font-weight:900; color:#38d27a; }

/* ===== 오늘의 대박 보너스 히어로 ===== */
.pm-jackpot{
  position:relative; overflow:hidden; margin-bottom:18px;
  border-radius:20px; padding:18px 16px 16px;
  background:radial-gradient(120% 90% at 50% 0%, #3a2a05 0%, #17130a 55%, #0e0c08 100%);
  border:1px solid #4a380f;
  box-shadow:0 10px 34px rgba(0,0,0,.5), 0 0 30px rgba(255,180,40,.1) inset;
}
.pm-jackpot::before{ content:""; position:absolute; inset:-40% -10% auto -10%; height:80%;
  background:radial-gradient(60% 100% at 50% 0%, rgba(255,207,63,.18), transparent 70%);
  pointer-events:none; }
.pm-jp-top{ display:flex; align-items:center; justify-content:space-between; position:relative; }
.pm-jp-badge{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:900;
  color:#1a1206; background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2));
  padding:4px 11px; border-radius:999px; letter-spacing:.02em; }
.pm-jp-timer{ font-size:12px; font-weight:800; color:var(--pm-gold); }
.pm-jp-q{ font-size:19px; font-weight:900; line-height:1.3; color:#fff; margin:12px 0 4px; position:relative;
  text-shadow:0 2px 12px rgba(0,0,0,.5); }
.pm-jp-pool{ position:relative; margin:10px 0 4px; }
.pm-jp-pool-lbl{ font-size:11.5px; color:#c8b992; font-weight:700; }
.pm-jp-pool-n{ font-size:32px; font-weight:900; letter-spacing:-.01em; line-height:1.1;
  color:var(--pm-gold); text-shadow:0 0 20px rgba(255,207,63,.35); }
.pm-jp-pool-n small{ font-size:16px; }
.pm-jp-go{ position:relative; display:block; width:100%; margin-top:12px; padding:13px;
  border:none; border-radius:13px; cursor:pointer; font-size:15px; font-weight:900; color:#1a1206;
  background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2));
  box-shadow:0 6px 18px rgba(255,157,46,.3); }
.pm-jp-go:active{ transform:scale(.98); }

/* ===== 오즈 바 (예 vs 아니오, 진영형) ===== */
.pm-odds{ margin:10px 0 2px; }
.pm-odds-bar{ position:relative; height:34px; border-radius:9px; overflow:hidden; display:flex;
  background:#0c0e14; border:1px solid var(--pm-line); }
.pm-odds-side{ position:relative; display:flex; align-items:center; height:100%;
  min-width:16%; transition:width .6s cubic-bezier(.2,.7,.2,1); overflow:hidden; }
.pm-odds-side.yes{ background:linear-gradient(90deg,rgba(74,123,255,.35),rgba(74,123,255,.15)); justify-content:flex-start; }
.pm-odds-side.no{ background:linear-gradient(270deg,rgba(255,60,90,.35),rgba(255,60,90,.15)); justify-content:flex-end; }
.pm-odds-side .lab{ font-size:12px; font-weight:900; padding:0 10px; white-space:nowrap; color:#fff; }
.pm-odds-side.yes .lab{ color:#a9c2ff; }
.pm-odds-side.no .lab{ color:#ffb3c1; }
.pm-odds-mult{ display:flex; justify-content:space-between; margin-top:6px; }
.pm-odds-mult span{ font-size:12px; font-weight:800; }
.pm-odds-mult .y{ color:var(--pm-yes); } .pm-odds-mult .n{ color:var(--pm-no); }
.pm-odds-mult b{ font-size:13.5px; }

/* ===== 마켓 카드 ===== */
.market-list{ display:flex; flex-direction:column; gap:12px; }
.pm-card{
  background:var(--pm-panel); border:1px solid var(--pm-line); border-radius:16px;
  padding:13px 14px; cursor:pointer; transition:transform .12s ease, border-color .2s ease;
}
.pm-card:active{ transform:scale(.99); }
.pm-card.resolved{ opacity:.72; }
.pm-card-top{ display:flex; gap:11px; }
.pm-card-thumb{ width:46px; height:46px; border-radius:12px; flex:0 0 auto; display:flex;
  align-items:center; justify-content:center; font-size:22px;
  background:linear-gradient(135deg,#1b1f2b,#141824); border:1px solid var(--pm-line); overflow:hidden; }
.pm-card-thumb img{ width:100%; height:100%; object-fit:cover; }
.pm-card-h{ flex:1; min-width:0; }
.pm-card-q{ font-size:14.5px; font-weight:800; line-height:1.32; color:var(--pm-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pm-card-meta{ font-size:11.5px; color:var(--pm-dim); margin-top:3px; }
.pm-card-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:11px; }
.pm-card-stats{ display:flex; align-items:center; gap:12px; font-size:12px; color:var(--pm-dim); }
.pm-card-stats b{ color:#b9c2d4; }
.pm-card-act{ display:flex; align-items:center; gap:4px; background:none; border:none; cursor:pointer;
  color:var(--pm-dim); font-size:12px; padding:2px; }
.pm-card-act svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.pm-card-act.on{ color:var(--pm-gold); }
.pm-card-act.on svg{ fill:currentColor; }
.pm-badge-win{ font-size:11px; font-weight:900; color:#1a1206; background:var(--pm-gold);
  padding:2px 8px; border-radius:999px; }
.pm-badge-live{ display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:900; color:var(--pm-no); }
.pm-badge-live i{ width:6px; height:6px; border-radius:50%; background:var(--pm-no);
  animation:pmLive 1.5s ease-out infinite; }
@keyframes pmLive{0%{box-shadow:0 0 0 0 rgba(255,60,90,.5)}70%{box-shadow:0 0 0 6px rgba(255,60,90,0)}100%{box-shadow:0 0 0 0 rgba(255,60,90,0)}}

@media (prefers-reduced-motion: reduce){
  .pm-combo.hot .pm-combo-fire, .pm-badge-live i{ animation:none; }
  .pm-odds-side{ transition:none; }
}

/* ===== 상세(참여) 페이지 ===== */
.pb-wrap{ padding:8px 14px 40px; }
.pb-cat{ font-size:12px; color:var(--pm-dim); font-weight:700; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pb-q{ font-size:20px; font-weight:900; line-height:1.32; color:#fff; margin:6px 0 4px; }
.pb-desc{ font-size:13px; color:#9aa3b8; line-height:1.55; margin:6px 0 2px; }
.pb-hero{ position:relative; border-radius:18px; padding:15px 15px 13px; margin-top:8px;
  background:var(--pm-panel); border:1px solid var(--pm-line); overflow:hidden; }
.pb-hero.jackpot{ background:radial-gradient(130% 100% at 50% 0%, #33250a 0%, #16120a 60%, #0e0c08 100%); border-color:#4a380f; }
.pb-pool-row{ display:flex; align-items:flex-end; justify-content:space-between; margin-top:10px; }
.pb-pool-lbl{ font-size:11.5px; color:var(--pm-dim); font-weight:700; }
.pb-pool-n{ font-size:27px; font-weight:900; color:var(--pm-gold); line-height:1.1; text-shadow:0 0 16px rgba(255,207,63,.3); }
.pb-pool-n small{ font-size:14px; }
.pb-ppl{ font-size:12px; color:var(--pm-dim); font-weight:700; }
.pb-ppl b{ color:#c8d0e2; }

/* 결과 선택 (참여 대상) */
.pb-outs{ display:flex; gap:9px; margin-top:14px; }
.pb-out{ flex:1; position:relative; border-radius:14px; padding:13px 10px; cursor:pointer; text-align:center;
  background:#171a24; border:1.5px solid var(--pm-line); transition:all .15s ease; }
.pb-out .lb{ display:block; font-size:15px; font-weight:900; color:#dfe5f1; }
.pb-out .od{ display:block; margin-top:3px; font-size:18px; font-weight:900; }
.pb-out .pool{ display:block; margin-top:2px; font-size:11px; color:var(--pm-dim); }
.pb-out.yes .od{ color:var(--pm-yes); } .pb-out.no .od{ color:var(--pm-no); }
.pb-out.sel.yes{ border-color:var(--pm-yes); background:rgba(74,123,255,.12); box-shadow:0 0 18px rgba(74,123,255,.18); }
.pb-out.sel.no{ border-color:var(--pm-no); background:rgba(255,60,90,.10); box-shadow:0 0 18px rgba(255,60,90,.16); }
.pb-out:active{ transform:scale(.97); }
.pb-out .win{ position:absolute; top:-9px; right:-4px; font-size:16px; }

/* 칩 참여 */
.pb-panel{ margin-top:14px; background:var(--pm-panel); border:1px solid var(--pm-line); border-radius:16px; padding:14px; }
.pb-panel-h{ display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:var(--pm-dim); font-weight:700; }
.pb-panel-h b{ color:#d7deec; }
.pb-chips{ display:flex; gap:8px; margin:12px 0 4px; }
.pb-chip{ flex:1; position:relative; padding:11px 0 9px; border-radius:999px; cursor:pointer; text-align:center;
  font-size:13px; font-weight:900; color:#e8d9a8;
  background:radial-gradient(100% 100% at 50% 0%, #2c2410, #191408);
  border:1.5px dashed #6e5a1e; transition:transform .1s ease; }
.pb-chip:active{ transform:scale(.92) rotate(-4deg); }
.pb-chip.allin{ color:#ffb3c1; border-color:#7e2837; background:radial-gradient(100% 100% at 50% 0%, #33121b, #1c0a0f); }
.pb-custom{ display:flex; gap:8px; margin-top:10px; }
.pb-custom input{ flex:1; background:#0d0f16; border:1px solid var(--pm-line); border-radius:11px; color:#fff;
  font-size:15px; font-weight:800; padding:11px 13px; }
.pb-custom input:focus{ outline:none; border-color:#3a4160; }
.pb-est{ margin-top:10px; font-size:12.5px; color:var(--pm-dim); display:flex; justify-content:space-between; }
.pb-est b{ color:var(--pm-gold); font-size:14px; }
.pb-bet{ width:100%; margin-top:12px; padding:14px; border:none; border-radius:13px; cursor:pointer;
  font-size:15.5px; font-weight:900; color:#1a1206;
  background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); box-shadow:0 6px 18px rgba(255,157,46,.25); }
.pb-bet:disabled{ opacity:.45; box-shadow:none; }
.pb-bet:active{ transform:scale(.98); }
.pb-bet.no-side{ background:#242838; color:#8a93a6; }

/* 내 참여 */
.pb-mine{ margin-top:12px; padding:12px 14px; border-radius:14px; font-size:13px; font-weight:700;
  background:rgba(255,207,63,.07); border:1px solid rgba(255,207,63,.25); color:#e8d9a8; }
.pb-mine b{ color:var(--pm-gold); }

/* 결과·정산 */
.pb-resolved{ margin-top:12px; padding:16px; border-radius:16px; text-align:center;
  background:radial-gradient(120% 100% at 50% 0%, #2b2208, #14100a); border:1px solid #4a380f; }
.pb-resolved .t{ font-size:15px; font-weight:900; color:var(--pm-gold); }
.pb-resolved .s{ font-size:12.5px; color:#c8b992; margin-top:4px; }
.pb-win-banner{ margin-top:10px; font-size:22px; font-weight:900; color:var(--pm-gold);
  text-shadow:0 0 18px rgba(255,207,63,.45); }
.pb-admin{ margin-top:14px; padding:13px 14px; border-radius:14px; background:#151824; border:1px dashed #303650; }
.pb-admin .h{ font-size:12px; color:var(--pm-dim); font-weight:800; margin-bottom:9px; }
.pb-admin-btns{ display:flex; gap:8px; }
.pb-admin-btn{ flex:1; padding:11px; border-radius:11px; border:1px solid var(--pm-line); background:#1b1f2c;
  color:#dfe5f1; font-size:13.5px; font-weight:800; cursor:pointer; }
.pb-admin-btn.yes{ border-color:rgba(74,123,255,.5); color:#a9c2ff; }
.pb-admin-btn.no{ border-color:rgba(255,60,90,.5); color:#ffb3c1; }

/* 라이브 참여 피드 */
.pb-live{ margin-top:16px; }
.pb-live-h{ display:flex; align-items:center; gap:7px; font-size:13.5px; font-weight:900; color:#dfe5f1; margin-bottom:9px; }
.pb-feed-row{ display:flex; align-items:center; gap:9px; padding:8px 2px; border-bottom:1px solid #171a24; font-size:12.5px; }
.pb-feed-side{ flex:0 0 auto; font-weight:900; font-size:11.5px; padding:2px 9px; border-radius:999px; }
.pb-feed-side.yes{ color:#a9c2ff; background:rgba(74,123,255,.14); }
.pb-feed-side.no{ color:#ffb3c1; background:rgba(255,60,90,.12); }
.pb-feed-txt{ flex:1; color:#aeb6c8; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pb-feed-txt b{ color:#e6ebf5; }
.pb-feed-time{ flex:0 0 auto; color:#5c6479; font-size:11px; }
@keyframes pbIn{ from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none} }
.pb-feed-row.new{ animation:pbIn .4s ease; }

/* 액션바(저장·공유) + 탭 */
.pb-actions{ display:flex; gap:14px; margin-top:12px; }
.pb-act{ display:flex; align-items:center; gap:5px; background:none; border:none; color:var(--pm-dim);
  font-size:12.5px; font-weight:700; cursor:pointer; padding:2px; }
.pb-act svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.pb-act.on{ color:var(--pm-gold); } .pb-act.on svg{ fill:currentColor; }
.pmd-tabs{ display:flex; gap:4px; margin-top:18px; border-bottom:1px solid var(--pm-line); }
.pmd-tab{ background:none; border:none; padding:10px 13px; color:var(--pm-dim); font-size:13.5px; font-weight:800; cursor:pointer;
  border-bottom:2px solid transparent; }
.pmd-tab.active{ color:#fff; border-bottom-color:var(--pm-gold); }

/* 정산 축하 오버레이 */
.pb-cele{ position:fixed; inset:0; z-index:9000; display:flex; align-items:center; justify-content:center;
  background:rgba(4,4,8,.82); backdrop-filter:blur(4px); }
.pb-cele-card{ text-align:center; padding:34px 30px; border-radius:24px; max-width:320px;
  background:radial-gradient(130% 110% at 50% 0%, #38290a, #16110a); border:1px solid #57420f;
  box-shadow:0 20px 60px rgba(0,0,0,.6), 0 0 40px rgba(255,190,60,.15); animation:pbIn .5s ease; }
.pb-cele-emo{ font-size:52px; }
.pb-cele-t{ font-size:20px; font-weight:900; color:#fff; margin-top:10px; }
.pb-cele-n{ font-size:34px; font-weight:900; color:var(--pm-gold); margin-top:6px; text-shadow:0 0 22px rgba(255,207,63,.5); }
.pb-cele-sub{ font-size:12.5px; color:#c8b992; margin-top:8px; }
.pb-cele-close{ margin-top:18px; padding:11px 30px; border:none; border-radius:999px; cursor:pointer;
  font-size:14px; font-weight:900; color:#1a1206; background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); }

/* 자랑하기 (승리 공유) */
.pb-cele-share{ display:block; width:100%; margin-top:18px; padding:12px; border:none; border-radius:999px; cursor:pointer;
  font-size:14px; font-weight:900; color:#1a1206; background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); }
.pb-cele-close{ margin-top:9px; background:none; border:1px solid #57420f; color:#c8b992; }

/* 상세 → 원본 이슈 백링크 */
.pb-issue-link{ display:inline-flex; align-items:center; gap:6px; margin-top:8px;
  font-size:12.5px; font-weight:800; color:#a9c2ff; text-decoration:none;
  background:rgba(74,123,255,.1); border:1px solid rgba(74,123,255,.35);
  padding:7px 12px; border-radius:999px; }
.pb-issue-link:active{ transform:scale(.97); }

/* ===== 놀이 안내 가이드 (어떻게 돌아가요?) ===== */
.pg{ margin:8px 0 12px; border-radius:16px; overflow:hidden;
  background:linear-gradient(150deg,#151a2b,#101321); border:1px solid #262c44; }
.pg-head{ display:flex; align-items:center; gap:10px; width:100%; padding:13px 15px;
  background:none; border:none; cursor:pointer; text-align:left; }
.pg-head-ic{ font-size:22px; }
.pg-head-t{ flex:1; font-size:14px; font-weight:900; color:#dfe5f1; }
.pg-head-arrow{ color:#6b7488; font-size:13px; }
.pg-body{ max-height:0; overflow:hidden; transition:max-height .5s cubic-bezier(.2,.7,.2,1); }
.pg.open .pg-body{ max-height:1600px; }
.pg-steps{ padding:4px 15px 0; }

.pg-step{ position:relative; border-radius:14px; padding:14px 14px 13px 15px; margin-bottom:2px;
  background:#12141f; border:1px solid #232838; }
.pg-step.win{ background:radial-gradient(130% 100% at 50% 0%, #2b2208, #14100a); border-color:#4a380f; }
.pg-n{ position:absolute; top:-8px; left:-6px; width:24px; height:24px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); color:#1a1206;
  font-size:12.5px; font-weight:900; box-shadow:0 3px 8px rgba(0,0,0,.4); }
.pg-t{ font-size:14px; font-weight:900; color:#fff; margin-top:2px; }
.pg-s{ font-size:12.5px; color:#9aa3b8; line-height:1.6; margin-top:5px; }
.pg-s b{ color:#e8d9a8; }
.pg-step.win .pg-s b{ color:var(--pm-gold); }
.pg-arrow{ text-align:center; color:#3d4560; font-size:13px; padding:5px 0; }

/* 이모지 그림: 메인 장면 + 양옆 진영/떠다니는 코인 */
.pg-art{ position:relative; float:right; width:64px; height:52px; margin:-2px -2px 4px 10px; }
.pg-art-main{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); font-size:32px;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.4)); }
.pg-art-side{ position:absolute; top:0; font-size:16px; }
.pg-art-side.l{ left:0; } .pg-art-side.r{ right:0; }
.pg-coin{ position:absolute; font-size:13px; animation:pgCoin 2.2s ease-in-out infinite; }
.pg-coin.c1{ left:2px; top:2px; }
.pg-coin.c2{ right:2px; top:6px; animation-delay:.5s; }
.pg-coin.c3{ left:22px; top:-6px; animation-delay:1.1s; }
@keyframes pgCoin{ 0%,100%{ transform:translateY(0); opacity:.9 } 50%{ transform:translateY(-6px); opacity:1 } }

.pg-bonus{ margin:10px 15px 0; padding:11px 13px; border-radius:12px;
  background:rgba(255,207,63,.06); border:1px dashed rgba(255,207,63,.3); }
.pg-bonus-row{ font-size:12.5px; color:#c8b992; line-height:1.7; }
.pg-bonus-row b{ color:var(--pm-gold); }
.pg-ex{ margin:10px 15px 15px; padding:11px 13px; border-radius:12px; font-size:12px; line-height:1.7;
  color:#8fa1c4; background:rgba(74,123,255,.07); border:1px solid rgba(74,123,255,.22); }
.pg-ex b{ color:#a9c2ff; }
@media (prefers-reduced-motion: reduce){ .pg-coin{ animation:none; } .pg-body{ transition:none; } }

/* ===== 상세 페이지 라이브 연출 (타임스퀘어) ===== */
/* 리턴바 빛 스윕 — 네온 사인이 계속 훑고 지나간다 */
.pm-odds-side.shine{ position:relative; }
.pm-odds-side.shine::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
  background-size:220% 100%; animation:pbSweep 2.6s ease-in-out infinite;
}
.pm-odds-side.no.shine::after{ animation-delay:1.3s; }
@keyframes pbSweep{ 0%{background-position:180% 0} 100%{background-position:-80% 0} }

/* 상금풀 골드 글로우 맥동 */
.pb-pool-n.glow{ animation:pbGlow 2.8s ease-in-out infinite; }
@keyframes pbGlow{ 0%,100%{ text-shadow:0 0 12px rgba(255,207,63,.25) } 50%{ text-shadow:0 0 26px rgba(255,207,63,.6), 0 0 44px rgba(255,157,46,.25) } }

/* 대박 보너스 히어로 반짝이 */
.pb-spark{ position:absolute; pointer-events:none; z-index:1; font-size:14px; opacity:0; animation:pbSpark 3.4s ease-in-out infinite; }
.pb-spark.s1{ top:12%; left:8%; }
.pb-spark.s2{ top:20%; right:12%; animation-delay:.9s; }
.pb-spark.s3{ bottom:30%; left:16%; animation-delay:1.7s; font-size:12px; }
.pb-spark.s4{ bottom:22%; right:7%; animation-delay:2.4s; font-size:13px; }
@keyframes pbSpark{ 0%,100%{ opacity:0; transform:translateY(4px) scale(.7) } 50%{ opacity:1; transform:translateY(-6px) scale(1.15) } }

/* 리턴 변동 틱 — 오르면 골드 팝, 내리면 레드 딤 (주식 시세판) */
@keyframes pbTickUp{ 0%{ color:var(--pm-gold); transform:scale(1.3); text-shadow:0 0 14px rgba(255,207,63,.7) } 100%{ transform:scale(1) } }
@keyframes pbTickDown{ 0%{ color:#ff7a90; transform:scale(.85) } 100%{ transform:scale(1) } }
.pb-out .od.tick-up{ animation:pbTickUp .9s ease; }
.pb-out .od.tick-down{ animation:pbTickDown .9s ease; }

/* 칩이 살아 숨쉰다 — 유휴 미세 흔들림(시차) + MAX는 심장박동 */
@keyframes pbChipIdle{ 0%,100%{ transform:rotate(0) } 25%{ transform:rotate(-2.5deg) } 75%{ transform:rotate(2.5deg) } }
.pb-chip{ animation:pbChipIdle 3.6s ease-in-out infinite; }
.pb-chip:nth-child(2){ animation-delay:.4s; } .pb-chip:nth-child(3){ animation-delay:.8s; }
.pb-chip:nth-child(4){ animation-delay:1.2s; }
@keyframes pbAllin{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,60,90,.4) } 50%{ box-shadow:0 0 16px 3px rgba(255,60,90,.25) } }
.pb-chip.allin{ animation:pbChipIdle 3.6s ease-in-out infinite 1.6s, pbAllin 2s ease-in-out infinite; }

/* 참여하기 버튼 shimmer — 골드 위를 빛줄기가 지나간다 */
.pb-bet{ position:relative; overflow:hidden; }
.pb-bet::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 35%, rgba(255,255,255,.45) 50%, transparent 65%);
  background-size:250% 100%; animation:pbSweep 3.2s ease-in-out infinite;
}
.pb-bet:disabled::after{ display:none; }

/* 결과 선택 시 펄스 링 */
@keyframes pbSelRing{ 0%{ box-shadow:0 0 0 0 rgba(255,255,255,.35) } 100%{ box-shadow:0 0 0 14px rgba(255,255,255,0) } }
.pb-out.sel{ animation:pbSelRing .55s ease-out; }

/* 라이브 피드 순차 등장 + 🐋 하이롤러 골드 하이라이트 */
.pb-feed-row.in{ opacity:0; animation:pbIn .45s ease forwards; animation-delay:calc(var(--i,0)*60ms); }
.pb-feed-row.whale{ background:linear-gradient(90deg, rgba(255,207,63,.08), transparent 70%);
  border-radius:8px; border-bottom-color:rgba(255,207,63,.2); }
.pb-feed-row.whale .pb-feed-txt b{ color:var(--pm-gold); }

@media (prefers-reduced-motion: reduce){
  .pm-odds-side.shine::after, .pb-bet::after{ animation:none; display:none; }
  .pb-pool-n.glow, .pb-spark, .pb-chip, .pb-chip.allin, .pb-out.sel,
  .pb-out .od.tick-up, .pb-out .od.tick-down{ animation:none; }
  .pb-feed-row.in{ opacity:1; animation:none; }
}

/* ===== GP 지갑 통합 내역 (gp-history) ===== */
.gh-main{ max-width:480px; margin:0 auto; padding:10px 14px 90px; }
.gh-hero{ text-align:center; padding:22px 0 16px; border-radius:18px; margin-bottom:14px;
  background:radial-gradient(120% 100% at 50% 0%, #2b2208, #14100a); border:1px solid #4a380f; }
.gh-hero-lbl{ font-size:12px; color:#c8b992; font-weight:700; }
.gh-hero-n{ font-size:34px; font-weight:900; color:var(--pm-gold); margin-top:4px;
  text-shadow:0 0 18px rgba(255,207,63,.35); }
.gh-hero-n small{ font-size:16px; }
.gh-hero-sub{ font-size:12px; color:#9aa3b8; margin-top:7px; }
.gh-hero-sub b{ color:#dfe5f1; }
.gh-hero-sub .up{ color:#38d27a; } .gh-hero-sub .down{ color:#ff7a90; }

.gh-tabs{ display:flex; gap:6px; margin-bottom:12px; }
.gh-tab{ flex:1; padding:11px; border-radius:12px; border:1px solid var(--pm-line);
  background:#14161f; color:#8a93a6; font-size:13.5px; font-weight:800; cursor:pointer; }
.gh-tab.active{ background:#1d2130; color:#fff; border-color:#3a4160; }

/* 예측 내역 카드 */
.gh-bet{ display:block; text-decoration:none; background:var(--pm-panel);
  border:1px solid var(--pm-line); border-radius:14px; padding:12px 14px; margin-bottom:9px;
  transition:transform .12s ease; }
.gh-bet:active{ transform:scale(.98); }
.gh-bet-top{ display:flex; justify-content:space-between; align-items:center; }
.gh-badge{ font-size:11px; font-weight:900; padding:3px 9px; border-radius:999px; }
.gh-badge.live{ color:var(--pm-no); background:rgba(255,60,90,.1); display:inline-flex; align-items:center; gap:5px; }
.gh-badge.live i{ width:5px; height:5px; border-radius:50%; background:var(--pm-no); animation:pmLive 1.5s ease-out infinite; }
.gh-badge.win{ color:#1a1206; background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); }
.gh-badge.lose{ color:#8a93a6; background:#1d2130; }
.gh-badge.refund{ color:#a9c2ff; background:rgba(74,123,255,.12); }
.gh-time{ font-size:11px; color:#5c6479; }
.gh-bet-q{ font-size:13.5px; font-weight:800; color:#e6ebf5; line-height:1.35; margin:7px 0 8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gh-bet-foot{ display:flex; justify-content:space-between; align-items:center; }
.gh-pick{ font-size:12px; color:#9aa3b8; font-weight:700; }
.gh-r{ font-size:13.5px; font-weight:900; color:#c8d0e2; }
.gh-r.up{ color:var(--pm-gold); } .gh-r.down{ color:#ff7a90; }

/* GP 원장 */
.gh-day{ font-size:11.5px; color:#5c6479; font-weight:800; margin:14px 2px 7px; }
.gh-l{ display:flex; align-items:center; gap:11px; padding:10px 4px;
  border-bottom:1px solid #171a24; text-decoration:none; }
.gh-l-ic{ font-size:19px; flex:0 0 auto; }
.gh-l-m{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.gh-l-t{ font-size:13px; font-weight:700; color:#dfe5f1; }
.gh-l-d{ font-size:14px; font-weight:900; flex:0 0 auto; }
.gh-l-d.up{ color:#38d27a; } .gh-l-d.down{ color:#ff7a90; }

.gh-empty{ text-align:center; color:#8a93a6; font-size:13.5px; padding:44px 0; line-height:2; }
.gh-empty-go{ display:inline-block; margin-top:8px; padding:10px 20px; border-radius:999px;
  text-decoration:none; font-size:13.5px; font-weight:900; color:#1a1206;
  background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); }

/* 갈라코인 탭 (gp-history) */
.gh-gc-head{ text-align:center; padding:16px 0 12px; border-radius:14px; margin-bottom:12px;
  background:rgba(255,79,120,.06); border:1px solid rgba(255,79,120,.22); }
.gh-gc-bal{ font-size:18px; font-weight:900; color:#eef1f7; }
.gh-gc-bal b{ color:#ff7a9c; }
.gh-gc-note{ font-size:11px; color:#8a93a6; margin-top:5px; }

/* ===== 내 지갑 (wallet.html) ===== */
.wl-main{ max-width:480px; margin:0 auto; padding:12px 16px 100px; }
.wl-h1{ font-size:21px; font-weight:900; color:#fff; margin:6px 0 2px; }
.wl-sub{ font-size:12.5px; color:var(--pm-dim); margin:0 0 16px; }
.wl-card{ border-radius:18px; padding:16px; margin-bottom:13px; border:1px solid var(--pm-line);
  background:var(--pm-panel); }
.wl-card.gp{ background:radial-gradient(130% 110% at 50% 0%, #2b2208, #14100a); border-color:#4a380f; }
.wl-card.gc{ background:radial-gradient(130% 110% at 50% 0%, #2b0f1a, #150a10); border-color:#4a1e30; }
.wl-card.earn{ background:radial-gradient(130% 110% at 50% 0%, #0f2b1a, #0a150f); border-color:#1e4a30; }
.wl-card-h{ display:flex; align-items:center; gap:7px; font-size:14px; font-weight:900; color:#eef1f7; }
.wl-ic{ font-size:18px; }
.wl-tag{ font-size:10.5px; font-weight:900; padding:2px 8px; border-radius:999px;
  color:#1a1206; background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); }
.wl-tag.pink{ background:linear-gradient(100deg,#ff7a9c,#ff4d67); color:#fff; }
.wl-tag.green{ background:linear-gradient(100deg,#38d27a,#1fa85c); color:#08160e; }
.wl-big{ font-size:30px; font-weight:900; color:var(--pm-gold); margin:8px 0 2px;
  text-shadow:0 0 16px rgba(255,207,63,.25); }
.wl-big small{ font-size:14px; }
.wl-big.pink{ color:#ff7a9c; text-shadow:0 0 16px rgba(255,122,156,.25); }
.wl-big.green{ color:#38d27a; text-shadow:0 0 16px rgba(56,210,122,.25); }
.wl-split{ display:flex; flex-wrap:wrap; gap:6px 14px; font-size:12px; color:#9aa3b8; margin:4px 0 2px; }
.wl-split b{ color:#dfe5f1; }
.wl-desc{ font-size:12px; color:#9aa3b8; line-height:1.6; margin:8px 0 12px; }
.wl-btns{ display:flex; gap:8px; flex-wrap:wrap; }
.wl-btn{ flex:1; min-width:90px; text-align:center; padding:11px 8px; border-radius:11px; cursor:pointer;
  font-size:13px; font-weight:800; text-decoration:none;
  background:#1b1f2c; border:1px solid var(--pm-line); color:#dfe5f1; }
.wl-btn.gold{ background:linear-gradient(100deg,var(--pm-gold),var(--pm-gold2)); border:none; color:#1a1206; }
.wl-btn.green{ background:linear-gradient(100deg,#38d27a,#1fa85c); border:none; color:#08160e; }
.wl-btn:active{ transform:scale(.97); }
.wl-policy{ margin-top:4px; padding:13px 15px; border-radius:14px;
  background:#12141c; border:1px dashed #2c3145; }
.wl-policy-h{ font-size:12.5px; font-weight:900; color:#cfd6e6; margin-bottom:7px; }
.wl-policy ul{ margin:0; padding-left:16px; }
.wl-policy li{ font-size:11.5px; color:#8a93a6; line-height:1.8; }
.wl-policy b{ color:#b9c2d4; }

/* 지갑 고도화: 카드 내 최근 내역 미리보기 */
.wl-mini{ margin:2px 0 12px; padding:10px 12px; border-radius:12px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.06); }
.wl-mini-h{ font-size:10.5px; font-weight:900; color:#6b7488; margin-bottom:6px; letter-spacing:.03em; }
.wl-mini-row{ display:flex; justify-content:space-between; align-items:center;
  font-size:12px; color:#aeb6c8; padding:4px 0; }
.wl-mini-r{ display:flex; align-items:center; gap:8px; }
.wl-mini-r b.up{ color:#38d27a; } .wl-mini-r b.down{ color:#ff7a90; }
.wl-mini-r small{ color:#5c6479; font-size:10.5px; }

/* 결제 대기 배지 */
.wl-pend{ display:inline-flex; align-items:center; margin-left:2px;
  font-size:10.5px; font-weight:900; color:#ffb03c; background:rgba(255,176,60,.1);
  border:1px solid rgba(255,176,60,.35); border-radius:999px; padding:4px 9px; }

/* GC 충전 바텀시트 */
.wl-dim{ position:fixed; inset:0; z-index:9998; background:rgba(0,0,0,.6);
  opacity:0; pointer-events:none; transition:opacity .25s ease; }
.wl-dim.open{ opacity:1; pointer-events:auto; }
.wl-sheet{ position:fixed; left:0; right:0; bottom:0; z-index:9999; max-width:480px; margin:0 auto;
  background:#15161b; border-radius:20px 20px 0 0; padding:10px 18px calc(20px + env(safe-area-inset-bottom));
  transform:translateY(100%); transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.wl-sheet.open{ transform:translateY(0); }
.wl-grip{ width:38px; height:4px; border-radius:999px; background:#33363f; margin:6px auto 12px; }
.wl-sheet-t{ font-size:16px; font-weight:900; color:#fff; }
.wl-sheet-s{ font-size:11.5px; color:#8a93a6; margin:4px 0 14px; }
.wl-loading{ color:#8a93a6; font-size:13px; text-align:center; padding:20px 0; }
.wl-pkgs{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.wl-pkg{ padding:13px 6px; border-radius:13px; cursor:pointer; text-align:center;
  background:#1c1d24; border:1.5px solid #2a2e3c; transition:transform .12s ease; }
.wl-pkg:active{ transform:scale(.95); }
.wl-pkg-k{ display:block; font-size:13.5px; font-weight:900; color:#eef1f7; }
.wl-pkg-g{ display:block; margin-top:4px; font-size:11.5px; font-weight:800; color:#ff7a9c; }
.wl-sheet-note{ font-size:10.5px; color:#6c7280; text-align:center; margin-top:14px; line-height:1.6; }
.wl-sheet-fee{ font-size:11.5px; color:#e8d9a8; background:rgba(255,207,63,.08); border:1px solid rgba(255,207,63,.28); border-radius:10px; padding:9px 12px; margin-top:12px; text-align:center; line-height:1.5; }
.wl-sheet-done{ text-align:center; padding:18px 0 14px; }
.wl-sheet-done .ic{ font-size:42px; }
.wl-sheet-done h4{ font-size:16px; font-weight:900; color:#fff; margin:10px 0 8px; }
.wl-sheet-done p{ font-size:12.5px; color:#9aa3b8; line-height:1.7; margin:0 0 14px; }
.wl-sheet-done b{ color:#ff7a9c; }

/* 목록 카드 예언자(작성자) 줄 */
.pm-card-by{ display:flex; align-items:center; gap:6px; margin-top:6px; }
.pm-by-tag{ font-size:9.5px; font-weight:900; color:#c9a2ff; background:rgba(150,90,255,.14);
  border:1px solid rgba(170,120,255,.35); padding:1px 6px; border-radius:99px; }

/* 상세 히어로 썸네일 */
.pb-img{ width:100%; border-radius:16px; overflow:hidden; margin:2px 0 12px;
  border:1px solid rgba(255,255,255,.08); background:#15161c; }
.pb-img img{ width:100%; max-height:300px; object-fit:cover; display:block; }
