/* 多人派对玩法（modes-party.js）。只用 style.css 的变量，类名都以 pt- 开头 */

/* ---------- 传手机 / 秘密 ---------- */
.pt-pass { min-height: 58vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; }
.pt-step { margin: 0; font: 600 13px/1 var(--latin, serif); letter-spacing: .3em; color: var(--gold); }
.pt-phone { font-size: 54px; animation: pt-float 3s ease-in-out infinite; filter: drop-shadow(0 10px 22px #0009); }
.pt-pass-name { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; font: 700 30px/1.3 var(--serif, serif); letter-spacing: .12em; color: var(--gold2, var(--gold)); }
.pt-pass .primary { margin-top: 18px; }
.pt-secret { min-height: 46vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: 28px 22px;
  border-radius: 24px; border: 1px solid var(--gold); background: radial-gradient(120% 80% at 50% 0%, var(--card2, var(--card)), var(--bg));
  box-shadow: 0 0 0 6px var(--bg), 0 0 0 7px var(--line), 0 0 60px -10px var(--gold); animation: pop .35s ease; }
.pt-secret .big { font: 600 22px/1.6 var(--serif, serif); margin: 8px 0; }
.pt-secret .tag { font-size: 12px; letter-spacing: .24em; color: var(--gold); }
.pt-num { font: 700 120px/1 var(--latin, serif); color: var(--gold); text-shadow: 0 0 40px var(--gold); margin: 6px 0; }
.pt-big { font-size: 84px; line-height: 1; filter: drop-shadow(0 0 24px var(--gold)); }
.pt-word { font: 700 44px/1.25 var(--serif, serif); letter-spacing: .12em; color: var(--gold2, var(--gold)); margin: 10px 0; word-break: break-all; }
.pt-who { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--gold); }
@keyframes pt-float { 50% { transform: translateY(-8px) rotate(-4deg); } }

/* ---------- 通用 ---------- */
.pt-intro .pt-crown, .pt-kingis .pt-crown { font-size: 46px; line-height: 1; filter: drop-shadow(0 0 18px var(--gold)); }
.pt-intro .big { margin-bottom: 4px; }
.pt-opts { display: flex; flex-direction: column; gap: 8px; }
.pt-tog { text-align: left; padding-left: 44px; position: relative; color: var(--mute); }
.pt-tog::before { content: ""; position: absolute; left: 16px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 5px; border: 1.5px solid var(--line); }
.pt-tog.on { color: var(--text); border-color: var(--gold); }
.pt-tog.on::before { background: var(--gold); border-color: var(--gold); box-shadow: 0 0 10px var(--gold); }
.pt-done { opacity: .45; }
.pt-reveal { border-color: var(--gold); }
.pt-reveal.spy { border-color: var(--accent); box-shadow: 0 0 40px -8px var(--accent); }

/* ---------- 国王游戏 ---------- */
.pt-kingis { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 0; text-align: center; }
.pt-kingis b { display: flex; align-items: center; gap: 8px; font: 700 26px/1.3 var(--serif, serif); letter-spacing: .1em; color: var(--gold); }
.pt-kingis small { color: var(--mute); letter-spacing: .2em; font-size: 12px; }
.pt-kingis.sm { flex-direction: row; justify-content: center; font: 600 15px var(--serif, serif); color: var(--gold); letter-spacing: .12em; padding: 0; }
.pt-n { display: inline-block; padding: 0 8px; margin: 0 2px; border-radius: 8px; color: var(--gold); border: 1px solid var(--gold); font-weight: 700; white-space: nowrap; }
.pt-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.pt-nums div { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); animation: pop .4s ease both; }
.pt-nums b { font: 700 26px/1 var(--latin, serif); color: var(--gold); min-width: 26px; }
.pt-nums div:nth-child(2) { animation-delay: .12s; } .pt-nums div:nth-child(3) { animation-delay: .24s; }

/* ---------- 病毒规则 ---------- */
.pt-v { min-height: 300px; display: flex; flex-direction: column; justify-content: center; cursor: pointer; border-width: 1.5px; }
.pt-v .pt-vk { font-size: 12px; letter-spacing: .3em; color: var(--gold); text-transform: uppercase; }
.pt-v .pt-tap { margin-top: 14px; font-size: 11px; letter-spacing: .2em; color: var(--mute); opacity: .7; }
.pt-v-r { border-color: var(--accent); box-shadow: 0 0 50px -12px var(--accent), inset 0 0 60px -30px var(--accent); }
.pt-v-r .pt-vk { color: var(--accent); }
.pt-v-cure { border-color: var(--gold); box-shadow: 0 0 50px -14px var(--gold); }
.pt-v-v .pt-vk::after, .pt-v-d .pt-vk::after { content: ""; }
.pt-v-start { border-color: var(--line); }
.pt-live { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 16px; border: 1px dashed var(--accent); background: var(--card); font-size: 14px; }
.pt-live small { color: var(--mute); letter-spacing: .2em; font-size: 11px; }
.pt-live div { display: flex; gap: 8px; align-items: flex-start; }
.pt-live div span { flex: 1; }
.pt-live em { margin-left: auto; font-style: normal; font: 700 13px var(--latin, serif); color: var(--accent); min-width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--accent); display: flex; align-items: center; justify-content: center; flex: none; }

/* ---------- 小姐牌 ---------- */
.pt-deck { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 0 4px; cursor: pointer; text-align: center; }
.pt-deck b { font: 600 16px var(--serif, serif); letter-spacing: .2em; color: var(--gold); }
.pt-deck small { color: var(--mute); font-size: 12px; letter-spacing: .1em; }
.pt-back { width: 150px; height: 214px; border-radius: 14px; position: relative; display: flex; align-items: center; justify-content: center;
  background: repeating-linear-gradient(45deg, var(--accent2, var(--l5)) 0 6px, var(--wine, var(--card)) 6px 12px);
  border: 6px solid var(--card); outline: 1px solid var(--gold); box-shadow: 6px 6px 0 -1px var(--card), 6px 6px 0 0 var(--line), 12px 12px 0 -1px var(--card), 12px 12px 0 0 var(--line), 0 20px 40px -10px #000; transition: transform .2s; }
.pt-back span { font: 700 34px var(--serif, serif); color: var(--gold); width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--gold); background: var(--card); display: flex; align-items: center; justify-content: center; }
.pt-deck:active .pt-back { transform: translateY(-6px) rotate(-2deg); }
.pt-card { width: 150px; height: 214px; margin: 6px auto 0; border-radius: 14px; position: relative; background: var(--text); color: var(--bg);
  display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px var(--gold), 0 24px 50px -14px #000; animation: pt-flip .55s var(--ease, ease) both; }
.pt-card.red { color: var(--l5); }
.pt-card > span { font-size: 64px; line-height: 1; }
.pt-card b { position: absolute; top: 10px; left: 12px; display: flex; flex-direction: column; align-items: center; font: 700 26px/1 var(--latin, serif); }
.pt-card b i { font-style: normal; font-size: 18px; }
.pt-card b.rot { top: auto; left: auto; bottom: 10px; right: 12px; transform: rotate(180deg); }
@keyframes pt-flip { from { transform: rotateY(90deg) scale(.9); opacity: 0; } to { transform: none; opacity: 1; } }
.pt-badges { display: flex; flex-direction: column; gap: 6px; padding: 12px; border-radius: 16px; border: 1px solid var(--line); background: var(--card); }
.pt-badges div { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 14px; }
.pt-badges b { margin-right: 4px; }
.pt-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--gold); color: var(--gold); background: none; }
button.pt-badge { cursor: pointer; }
.pt-kcup { display: flex; justify-content: center; gap: 10px; }
.pt-kcup i { width: 26px; height: 34px; border-radius: 4px 4px 10px 10px; border: 1.5px solid var(--gold); }
.pt-kcup i.on { background: linear-gradient(to top, var(--l5) 70%, transparent 70%); box-shadow: 0 0 12px var(--accent); }

/* ---------- 悄悄话 ---------- */
.pt-q { text-align: left; font: 500 16px/1.55 var(--serif, serif); padding: 14px 16px; border-left: 3px solid var(--lc, var(--gold)); }
.pt-coin { font-size: 72px; text-align: center; animation: pt-coin 1s var(--ease, ease); }
.pt-c { text-align: center; font: 700 24px var(--serif, serif); color: var(--gold); margin: 0; }
@keyframes pt-coin { from { transform: rotateY(1440deg) translateY(-40px); } }

/* ---------- 炸弹 ---------- */
.pt-bombwrap { display: flex; justify-content: center; padding: 18px 0 6px; }
.pt-bomb { font-size: 110px; line-height: 1; animation: pt-tick .7s ease-in-out infinite; filter: drop-shadow(0 0 30px var(--accent)); }
.pt-bomb.fast { animation-duration: .3s; filter: drop-shadow(0 0 46px var(--accent)) saturate(1.4); }
.pt-bomb.idle { font-size: 54px; animation-duration: 2.2s; }
@keyframes pt-tick { 50% { transform: scale(1.08) rotate(-4deg); } }
.pt-holder { text-align: center; font: 600 18px var(--serif, serif); letter-spacing: .06em; color: var(--mute); }
.pt-holder .pt-who { font-size: 22px; }
.pt-flash { animation: pop .3s ease; }
.pt-passbtn { min-height: 92px; font-size: 22px; }
.pt-boom { animation: pt-boom .5s ease; }
@keyframes pt-boom { 0% { transform: scale(2.4); opacity: 0; } 60% { transform: scale(.9); } }

/* ---------- 七分钟天堂 ---------- */
.pt-pair { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; font-size: 22px; padding: 8px 0; }
.pt-pair > span { color: var(--accent); animation: pt-beat 1.2s ease-in-out infinite; }
.pt-pair.sm { font-size: 16px; padding: 0; }
@keyframes pt-beat { 30% { transform: scale(1.25); } }
.pt-mins { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.pt-mins button { padding: 10px 0; font: 600 16px var(--latin, serif); }
.pt-mins button.on { border-color: var(--gold); color: var(--gold); box-shadow: 0 0 14px -4px var(--gold); }
.pt-ring { position: relative; width: 250px; height: 250px; margin: 6px auto; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pt-ring svg { position: absolute; inset: 0; transform: rotate(-90deg); filter: drop-shadow(0 0 6px var(--gold)); }
.pt-ring circle { fill: none; stroke-width: 5; }
.pt-ring .bg { stroke: var(--line); }
.pt-ring .fg { stroke: var(--gold); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; transition: stroke-dashoffset 1s linear; }
.pt-ring b { font: 600 62px/1 var(--latin, serif); letter-spacing: .04em; color: var(--text); font-variant-numeric: tabular-nums; }
.pt-ring small { color: var(--mute); letter-spacing: .3em; font-size: 12px; margin-top: 8px; }

/* ---------- 转瓶子 ---------- */
.pt-table { position: relative; width: 300px; height: 300px; max-width: 100%; margin: 4px auto; border-radius: 50%;
  background: radial-gradient(circle, var(--card2, var(--card)) 0%, var(--bg) 70%); border: 1px solid var(--line); box-shadow: inset 0 0 60px #000a; }
.pt-table.ring { border-color: var(--gold); }
.pt-bottle { position: absolute; left: 50%; top: 50%; width: 46px; height: 154px; margin: -77px 0 0 -23px; transition: transform 4s cubic-bezier(.12, .7, .16, 1); filter: drop-shadow(0 8px 10px #000b); }
.pt-bottle svg { width: 100%; height: 100%; display: block; }
.pt-acts span { position: absolute; left: 50%; top: 50%; font: 600 12.5px var(--serif, serif); white-space: nowrap; color: var(--gold); padding: 3px 8px; border-radius: 999px; background: var(--bg); border: 1px solid var(--line); }
.pt-pick { text-align: center; font: 700 26px var(--serif, serif); letter-spacing: .14em; color: var(--gold); animation: pop .35s ease; }

/* ---------- 谁是卧底 ---------- */
.pt-alive { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pt-alive span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--line); font-size: 14px; }
.pt-alive span.out { text-decoration: line-through; opacity: .4; }

/* ---------- 我从来没有 ---------- */
.pt-nv { display: flex; flex-direction: column; gap: 8px; }
.pt-nv button { display: flex; align-items: center; gap: 10px; text-align: left; padding: 12px 14px; }
.pt-nv button b { min-width: 64px; font-weight: 600; }
.pt-nv button.on { border-color: var(--gold); background: var(--card2, var(--card)); box-shadow: 0 0 18px -6px var(--gold); }
.pt-nv button.on b::after { content: " ✋"; }
.pt-bar { flex: 1; height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.pt-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--l2), var(--l5)); border-radius: 3px; }
.pt-nv em { font: 700 18px var(--latin, serif); font-style: normal; color: var(--gold); min-width: 18px; text-align: right; }

/* ---------- 你比我猜 ---------- */
.pt-score { display: flex; align-items: center; justify-content: center; gap: 10px; }
.pt-score > div { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 10px; border-radius: 16px; border: 1px solid var(--line); background: var(--card); }
.pt-score > div.on { border-color: var(--gold); box-shadow: 0 0 20px -8px var(--gold); }
.pt-score small { color: var(--mute); letter-spacing: .2em; font-size: 12px; }
.pt-score b { font: 700 36px/1.1 var(--latin, serif); color: var(--gold); }
.pt-score span { display: flex; gap: 4px; }
.pt-score em { font: 700 24px var(--latin, serif); color: var(--mute); font-style: normal; }
.pt-clk { text-align: center; font: 600 64px/1 var(--latin, serif); color: var(--text); font-variant-numeric: tabular-nums; }
.pt-clk.hot { color: var(--accent); animation: pt-tick .5s ease-in-out infinite; }
.pt-wordcard { min-height: 220px; display: flex; align-items: center; justify-content: center; border-color: var(--gold); }
.pt-wordcard .pt-word { font-size: 48px; }
.pt-in { animation: pop .3s ease; }
.pt-hbtn button { min-height: 76px; font-size: 20px; }
.pt-wl { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 10px; }
.pt-wl span { font-size: 13px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--line); color: var(--mute); }
.pt-wl span.ok { border-color: var(--gold); color: var(--gold); }

/* ================= POLISH：经典 + 派对新增（pl-*） ================= */
.pl-tip { font-size: 12px; opacity: .8; }
.pl-toss { text-align: center; border-color: var(--gold); }
.pl-tossed { text-align: center; font: 700 18px/1.4 var(--serif, serif); letter-spacing: .08em; color: var(--gold2, var(--gold)); animation: pop .35s ease; }
/* 欲望轮盘特殊格 */
.wheel span.pl-wsp { color: var(--gold2, #f3dcaa); font-weight: 700; text-shadow: 0 0 8px #000, 0 0 14px #d9b26f88; }
.pl-sp-bar { text-align: center; font: 600 14px var(--serif, serif); letter-spacing: .12em; color: var(--gold); padding: 8px 12px; border-radius: 999px; border: 1px solid var(--gold); background: #d9b26f12; }
.pl-spcard { text-align: center; border-color: var(--gold); box-shadow: 0 0 40px -12px var(--gold); }
.pl-sp { font: 700 28px/1.3 var(--serif, serif); letter-spacing: .2em; color: var(--gold2, var(--gold)); animation: pop .4s ease; }
.pl-x2 { color: var(--gold); font-weight: 700; letter-spacing: .2em; }
/* 心跳左轮 */
.pl-rev button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 8px; }
.pl-rev small { font-size: 11px; color: var(--mute); }
.pl-rev button:disabled { opacity: .4; }
/* 骰子滚动 */
.pl-rolling .die { animation: plShake .14s linear infinite; }
@keyframes plShake { 25% { transform: rotate(-6deg) translateY(-2px); } 75% { transform: rotate(6deg) translateY(2px); } }
/* 谁最可能：辩护 */
.pl-defend { text-align: center; border-color: var(--accent); }
/* 国王揭晓 */
.pt-slot { min-width: 3.2em; text-align: center; transition: color .1s; }
.pt-slot.spin { color: var(--mute); border-style: dashed; }
.pt-slot.land { animation: plLand .45s var(--ease, ease); background: #d9b26f22; box-shadow: 0 0 16px -2px var(--gold); }
@keyframes plLand { 0% { transform: scale(1.6); } 60% { transform: scale(.92); } }
/* 悄悄话：选人 */
.pl-to { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pl-to button { padding: 7px 12px; border-radius: 999px; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
/* 炸弹：手持引线 */
.pl-fuse { height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.pl-fuse i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold), var(--accent)); transition: width .1s linear; }
.pl-fuse i.hot { background: var(--accent); box-shadow: 0 0 10px var(--accent); }
/* 七分钟天堂：下注 */
.pl-bets { display: flex; flex-direction: column; gap: 8px; }
.pl-bet { display: flex; align-items: center; gap: 8px; }
.pl-bet span { flex: 1; display: flex; align-items: center; gap: 6px; font-weight: 600; min-width: 0; }
.pl-bet button { padding: 8px 10px; font-size: 13px; }
.pl-bet button.cp-on { background: #d9b26f1c; }
/* 谁是卧底：平民核对 */
.pl-peek { text-align: center; color: var(--mute); font-size: 13px; }
.pl-peek summary { cursor: pointer; }
.pl-peek .big { color: var(--gold); margin: 6px 0 0; }
/* 我猜你做过 */
.pl-score { display: flex; justify-content: center; gap: 16px; font-size: 13px; color: var(--mute); }
.pl-score span { display: inline-flex; align-items: center; gap: 6px; }
.pl-score b { color: var(--gold); font: 700 18px var(--latin, serif); }
/* 你比我猜：犯规 */
.pl-foul { width: 100%; border-color: var(--accent); color: var(--accent); font-size: 14px; padding: 12px; background: #d93a5e10; }
.pt-wl span.pl-f { border-color: var(--accent); color: var(--accent); }
