/* 拆穿我呀 v2: party stage (speaker half-screen tile, topic card, Guilt-o-meter, vote, stamp slam, crooked crown, penalty cards, roast) */
.inp{width:100%;border:2px solid #e6ebf2;border-radius:16px;padding:12px 14px;font-size:16px;background:#fbfcfe;margin:6px 0 10px}.inp:focus{outline:0;border-color:var(--pink)}
.fld{margin:6px 0 10px}.fld>span{display:block;font-size:12px;font-weight:800;color:var(--ink2);margin:0 0 6px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg button{background:var(--soft);border-radius:14px;padding:10px;font-weight:800}.seg button.on{background:var(--pink);color:#fff}
.avpick{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.avpick button{aspect-ratio:1;border-radius:50%;background:var(--avc);font-size:20px;line-height:1;border:3px solid transparent;transition:transform .2s var(--spring)}
.avpick button.on{border-color:var(--navy);transform:scale(1.12)}
.tog{display:flex;gap:10px;align-items:flex-start;background:#f7f4ff;border-radius:16px;padding:10px 12px;margin:8px 0;cursor:pointer}.tog input{width:20px;height:20px;margin-top:2px;accent-color:var(--pink);flex:0 0 auto}
.tog b{display:block;font-size:14px}.tog small{display:block;color:var(--ink2);font-size:12px;line-height:1.35}
.codebox{border:0;margin-top:6px}.coderow{display:flex;gap:8px;align-items:center}.coderow .inp{margin:0}
.av{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--avc);flex:0 0 auto;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.av i{font-style:normal;font-size:24px;line-height:1}.av.sm{width:34px;height:34px}.av.sm i{font-size:18px}.av.xl{width:96px;height:96px}.av.xl i{font-size:54px}
.jav{margin:4px 0 6px}.inviter{margin:0;font-size:15px}.ttlg{font-size:34px;color:var(--navy)}.jplayers{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin:4px 0 10px}
.pstat{display:inline-flex;align-items:center;gap:6px;background:var(--soft);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700;color:var(--ink2);margin:4px 0 8px}.pstat i{width:8px;height:8px;border-radius:50%;background:#2ecc71;box-shadow:0 0 0 3px rgba(46,204,113,.2)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#c8d0dc;margin-right:5px;vertical-align:1px}.dot.on{background:#2ecc71}.dot.off{background:#c8d0dc}
.qrbox{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px 0 10px}.qrbox canvas{width:148px;height:148px;border-radius:16px;box-shadow:var(--sh)}
.qrbox div{display:flex;flex-direction:column;align-items:flex-start}.qrbox span{font-size:12px;color:var(--ink2);font-weight:700}.qrbox b{font:800 32px "TP Round",var(--fb);letter-spacing:3px;color:var(--navy)}
.invbox input{width:100%;border:2px dashed #dbe2ec;border-radius:14px;padding:9px 12px;font-size:13px;background:#fbfcfe;color:var(--ink2)}
.plist{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:8px}.plist li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;background:var(--soft);border-radius:16px;padding:8px 12px}
.plist li .av{grid-row:span 2}.plist li b{font-size:15px}.plist li em{font-style:normal;color:var(--pink);font-size:12px}.plist li small{color:var(--ink2);font-size:12px}.plist li.me{background:#FFF0F5}
.cnt{font:700 13px var(--fb);color:var(--ink2)}.waith{text-align:center;font-weight:800;color:var(--ink2);margin:10px 0}.btn.dim{opacity:.55}
/* ---------- stage ---------- */
body.s-stage .wrap{padding:10px 12px 24px}
.stage{display:flex;flex-direction:column;gap:10px}
.sbar{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;color:var(--navy)}
.sbar .rnd,.sbar .set{background:rgba(255,255,255,.75);border-radius:999px;padding:4px 10px}.sbar .dots{display:flex;gap:4px}.sbar .dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.7)}.sbar .dots i.d{background:var(--navy)}.sbar .dots i.c{background:var(--pink);transform:scale(1.4)}
.spk{position:relative;height:min(46vh,400px);min-height:280px;border-radius:28px;background:radial-gradient(circle at 50% 42%,#fff 0,var(--avc) 62%);box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:hidden;border:4px solid #fff;display:flex;align-items:center;justify-content:center}
.spk .vslot{position:absolute;inset:0;z-index:2}.spk .vslot:empty{display:none}.spk .vslot .tv-vid{width:100%;height:100%;border-radius:0}.spk .vslot video{width:100%;height:100%;object-fit:cover}
.bigav{position:relative;width:min(52vw,210px);aspect-ratio:1;border-radius:50%;background:var(--avc);border:6px solid #fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.15);margin-top:-14px;animation:breathe 2.6s ease-in-out infinite}
.bigav i{font-style:normal;font-size:min(30vw,120px);line-height:1}
@keyframes breathe{50%{transform:scale(1.04)}}
.bigav.tv-speaking{box-shadow:0 0 0 8px rgba(46,204,113,.45),0 10px 30px rgba(0,0,0,.15);animation:talk .35s ease-in-out infinite alternate}@keyframes talk{to{transform:scale(1.06) rotate(-2deg)}}
.spname{position:absolute;left:0;right:0;bottom:34px;text-align:center;z-index:3}.spname b{display:inline-block;background:var(--navy);color:#fff;font:800 17px var(--fh);border-radius:999px;padding:5px 14px}
.spname em{display:block;font-style:normal;font:800 14px var(--fh);color:var(--pinkD);margin-top:4px;text-shadow:0 1px 0 #fff}
.meter{position:absolute;left:10px;top:10px;z-index:4;width:118px;background:rgba(255,255,255,.88);border-radius:16px;padding:6px 6px 5px;text-align:center;box-shadow:0 3px 10px rgba(0,0,0,.08)}
.meter svg{width:100%;height:auto;display:block}.meter b{display:block;font:800 12px var(--fh);color:var(--navy);margin-top:-2px}.meter span{display:block;font-size:11px;font-weight:800;color:#2E9E6A;min-height:15px}.meter span.hot{color:#E8364F;animation:blink .4s steps(2) infinite}
.meter small{display:block;font-size:8.5px;color:var(--ink2);line-height:1.2}@keyframes blink{50%{opacity:.4}}
.timer{position:absolute;right:10px;top:10px;z-index:4;width:54px;height:54px}.timer svg{width:100%;height:100%;transform:rotate(-90deg)}.timer circle{fill:rgba(255,255,255,.9);stroke:#e7ecf3;stroke-width:4}
.timer #tArc{fill:none;stroke:var(--pink);stroke-width:4;stroke-linecap:round;stroke-dasharray:106.8;stroke-dashoffset:0}.timer b{position:absolute;inset:0;display:grid;place-items:center;font:800 18px "TP Round",var(--fb);color:var(--navy)}
.timer.hot #tArc{stroke:#E8364F}.timer.hot b{color:#E8364F;animation:pulse .5s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.25)}}
.ovl{position:absolute;inset:0;z-index:6;pointer-events:none}
.topic{background:#FFF4D6;border-radius:20px;padding:10px 14px;text-align:center;box-shadow:0 4px 0 #F2D68E;margin-top:-30px;position:relative;z-index:5;margin-left:14px;margin-right:14px}
.topic small{display:block;font-size:11px;font-weight:800;color:#C27C00}.topic b{display:block;font:400 19px var(--fh);color:var(--navy);line-height:1.3}.lang-en .topic b{font-weight:800;font-size:17px}
.topic p{margin:4px 0 0;font-size:12px;color:var(--ink2)}.mich{color:var(--pinkD);font-weight:800}
.topic.flip{animation:flipin .6s var(--spring)}@keyframes flipin{from{transform:rotateX(90deg) scale(.8);opacity:0}}
.others{list-style:none;margin:0;padding:0;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.others li{position:relative;display:flex;flex-direction:column;align-items:center;width:58px}.others li b{font-size:11px;font-weight:800;color:var(--navy);margin-top:2px;white-space:nowrap}
.others li.offl{opacity:.45}.others li.me .av{border-color:var(--pink)}
.others .vb{position:absolute;top:-4px;right:2px;font-style:normal;font-size:12px;background:#fff;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;box-shadow:0 2px 4px rgba(0,0,0,.15);font-weight:800}
.others .vb.ok{color:#2E9E6A}.others .vb.wait{color:#aab4c3}.others .vb.no{background:#FFE1E6}
.others li.right .av{box-shadow:0 0 0 3px #5ED39A}.others li.wrong .av{box-shadow:0 0 0 3px #FF4D6D;animation:wob .5s 2}@keyframes wob{25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}
.others .pc{position:absolute;left:-2px;top:-4px;font-style:normal;font-size:14px}
.act{background:#fff;border-radius:24px;padding:14px;box-shadow:var(--sh);min-height:110px}
.act .tf{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.secret .sh{margin:0 0 8px;text-align:center;font-weight:800;font-size:13px;color:var(--ink2)}
.btn.pk{background:#E6F7F4;color:#1c7f6a;box-shadow:0 4px 0 #b9e8de;font-size:16px}.btn.pk.l{background:#FFE8EE;color:var(--pinkD);box-shadow:0 4px 0 #ffc5d4}
.btn.pk.on{background:#2E9E6A;color:#fff;box-shadow:0 4px 0 #1f7a50}.btn.pk.l.on{background:#E8364F;box-shadow:0 4px 0 #b4243a}
.watch{text-align:center}.watch p{margin:4px 0}.vote .vh{text-align:center;font:400 22px var(--fh);margin:0 0 10px;color:var(--navy)}.lang-en .vote .vh{font-weight:800}
.btn.vt{font-size:20px;padding:18px 10px;background:#2E9E6A;box-shadow:0 5px 0 #1f7a50}.btn.vt.l{background:#E8364F;box-shadow:0 5px 0 #b4243a}.btn.vt:disabled{opacity:.5}.btn.vt.on{opacity:1;transform:scale(1.04)}
.drum{display:flex;align-items:center;justify-content:center;gap:10px;min-height:90px;font:400 24px var(--fh);color:var(--navy)}.lang-en .drum{font-weight:800}.drum span{font-size:38px;animation:drum .12s infinite alternate}@keyframes drum{to{transform:translateY(-4px) rotate(8deg)}}
.spk.drumming .bigav{animation:jit .08s infinite alternate}@keyframes jit{to{transform:translate(2px,-1px) rotate(1deg)}}
.verdict{text-align:center;margin:0 0 8px}.verdict b{display:block;font:400 30px var(--fh);animation:pop .5s var(--spring)}.lang-en .verdict b{font-weight:900;font-size:28px}.verdict.t b{color:#2E9E6A}.verdict.l b{color:#E8364F}.verdict span{font-weight:800;color:var(--ink2);font-size:14px}
@keyframes pop{from{transform:scale(.3);opacity:0}}
.roast{background:var(--navy);color:#fff;border-radius:18px;padding:10px 14px;margin:8px 0;position:relative}.roast small{font-size:11px;font-weight:800;color:#FFD447}
.rq{margin:2px 0 0;font-size:15.5px;font-weight:700;line-height:1.45}.rq.wait{color:#aebbd0;font-weight:600}.rq.wait i{font-style:normal;animation:blink 1s infinite}.rq.wait i:nth-child(2){animation-delay:.2s}.rq.wait i:nth-child(3){animation-delay:.4s}
.rq.type{animation:typein .5s ease-out}@keyframes typein{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.pen.mine{perspective:600px;margin:8px 0}.pen .pin{background:linear-gradient(135deg,#FFE8A3,#FFD6E6);border-radius:18px;padding:12px 14px;text-align:center;box-shadow:0 4px 0 #f0c48a;animation:cardflip .8s .9s both var(--spring)}
.pen .pin small{display:block;font-size:12px;font-weight:800;color:#a05a00}.pen .pin b{display:block;font:400 20px var(--fh);color:var(--navy)}.lang-en .pen .pin b{font-weight:800;font-size:17px}
@keyframes cardflip{from{transform:rotateY(180deg) scale(.6);opacity:0}}
.pens small{font-size:12px;font-weight:800;color:var(--ink2)}.pens ul{list-style:none;margin:4px 0;padding:0;display:grid;gap:6px}.pens li{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;background:var(--soft);border-radius:14px;padding:6px 10px;font-size:13px}.pens li span{color:var(--ink2)}
/* stamp slam + crooked crown */
.stampx{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%) rotate(-14deg)}
.stampx b{display:block;font:400 64px var(--fh);color:#E8364F;border:7px solid #E8364F;border-radius:16px;padding:2px 22px;background:rgba(255,255,255,.55);letter-spacing:4px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.6),0 0 0 3px rgba(232,54,79,.25);white-space:nowrap;
  -webkit-mask:radial-gradient(circle at 30% 40%,#000 60%,rgba(0,0,0,.82) 61%) ;mask:radial-gradient(circle at 30% 40%,#000 60%,rgba(0,0,0,.82) 61%)}
.lang-en .stampx b{font-weight:900;font-size:46px;letter-spacing:2px}
.stampx.honest b{color:#2E9E6A;border-color:#2E9E6A}.stampx.partial b{color:#7B4FE0;border-color:#7B4FE0;font-size:46px}.lang-en .stampx.partial b{font-size:36px}
.stampx.slam{animation:slam .45s cubic-bezier(.2,1.6,.4,1) both}@keyframes slam{0%{transform:translate(-50%,-50%) rotate(-30deg) scale(3.4);opacity:0}60%{opacity:1}100%{transform:translate(-50%,-50%) rotate(-14deg) scale(1)}}
.spk.shake{animation:shake .5s .1s}@keyframes shake{10%,90%{transform:translateX(-3px)}20%,80%{transform:translateX(6px)}30%,50%,70%{transform:translateX(-10px) rotate(-1deg)}40%,60%{transform:translateX(10px) rotate(1deg)}}
.crown{position:absolute;left:50%;top:6%;width:min(40vw,170px);transform:translateX(-38%) rotate(-19deg);text-align:center}.crown svg{width:100%;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}
.crown b{display:block;font:400 26px var(--fh);color:#B8860B;background:#FFF8D6;border-radius:999px;padding:2px 12px;margin:-4px auto 0;width:max-content;transform:rotate(8deg);box-shadow:0 3px 0 #E8C55A}.lang-en .crown b{font-weight:900;font-size:18px}
.crown.drop{animation:cdrop .9s cubic-bezier(.3,1.5,.5,1) both}@keyframes cdrop{0%{transform:translate(-38%,-160%) rotate(20deg)}70%{transform:translate(-38%,6%) rotate(-24deg)}100%{transform:translateX(-38%) rotate(-19deg)}}
.spark{position:absolute;font-size:26px;animation:spk 1.2s ease-out both}.spark.s1{left:22%;top:18%}.spark.s2{right:20%;top:12%;animation-delay:.2s}.spark.s3{left:58%;top:40%;animation-delay:.4s}
@keyframes spk{0%{transform:scale(0) rotate(0);opacity:0}40%{transform:scale(1.4) rotate(40deg);opacity:1}100%{transform:scale(1) rotate(90deg);opacity:.9}}
/* reactions */
.rbar{display:flex;justify-content:space-between;gap:4px;background:rgba(255,255,255,.75);border-radius:999px;padding:5px 8px}.rbar button{font-size:22px;padding:2px 4px;border-radius:50%;transition:transform .2s var(--spring)}.rbar button.pop{animation:rpop .35s var(--spring)}@keyframes rpop{50%{transform:scale(1.5)}}
#fx{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.fly{position:absolute;bottom:90px;font-size:38px;display:flex;flex-direction:column;align-items:center;animation:fly 2.6s ease-out forwards}
.fly small{font-size:10px;font-weight:800;background:rgba(26,43,74,.8);color:#fff;border-radius:999px;padding:0 6px}@keyframes fly{0%{transform:translate(0,0) scale(.4);opacity:0}15%{opacity:1;transform:translate(0,-40px) scale(1.2)}100%{transform:translate(var(--dx),-420px) scale(1);opacity:0}}
/* end */
.endc .names{font-weight:800;color:var(--ink2);margin:0}.ttlcard{background:linear-gradient(180deg,#FFE3EE,#fff);border-radius:24px;padding:14px 10px;margin:8px 0}
.ttlcard small{font-size:12px;font-weight:800;color:var(--ink2)}.ttlcard .te{display:block;font-size:64px;line-height:1.1;animation:pop .6s var(--spring)}.ttlcard h1{font-size:36px;color:var(--navy);margin:2px 0}.ttlcard p{margin:0 0 6px;color:#3d4b66}
.endlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.endlist li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--soft);border-radius:16px;padding:8px 12px}.endlist li.me{background:#FFF0F5}
.endlist li small{display:block;color:var(--pinkD);font-weight:800}.endlist .st{font-size:12px;font-weight:800;color:var(--ink2)}
.recap{list-style:none;margin:0;padding:0;display:grid;gap:10px}.recap li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;border-bottom:1px solid #eef1f5;padding-bottom:10px}
.recap p{margin:2px 0;font-size:13px;color:var(--ink2)}.recap q{display:block;font-size:13px;font-weight:700;color:var(--navy);quotes:none}.recap .sv{font-size:22px;background:var(--soft);border-radius:12px;padding:6px 8px}
.schip{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:1px 8px;background:#FFE1E6;color:#E8364F}.schip.crown{background:#FFF3C4;color:#B8860B}.schip.honest{background:#DDF5EA;color:#2E9E6A}.schip.partial{background:#EEE6FF;color:#7B4FE0}
.cardimg{width:100%;max-height:62vh;object-fit:contain;border-radius:16px;display:block;margin:6px auto}
/* shell bits shared with v1 */
#toast{position:fixed;left:50%;top:76px;bottom:auto;height:auto;width:max-content;transform:translate(-50%,-20px);background:var(--navy);color:#fff;border-radius:999px;padding:9px 18px;font-weight:700;font-size:14px;opacity:0;transition:.3s;z-index:90;pointer-events:none;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}
.modal{position:fixed;inset:0;background:rgba(10,20,40,.55);z-index:80;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:.25s}.modal.on{opacity:1}
.modal .sheet{background:#fff;border-radius:26px 26px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));width:100%;max-width:520px;max-height:92vh;overflow:auto}
.c{text-align:center}
