:root{
  --bg:#f3f4f6;--surf:#fff;--surf2:#f7f8fa;--text:#14171c;--sub:#868d99;--line:rgba(18,24,38,.08);
  --acc:#10b76b;--acc2:#0b8f52;--accsoft:rgba(16,183,107,.12);--glow:0 0 14px rgba(16,183,107,.55),0 0 34px rgba(16,183,107,.25);
  --me:#a5ec8a;--me-t:#10210b;--them:#fff;--them-t:#14171c;--danger:#ef4a5b;--warn:#ffb020;
  --shadow:0 8px 30px rgba(15,20,35,.10);--r:16px;--nav:#f7f8fa;--pb:#eceef2;
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);
  color-scheme:light;
}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0d11;--surf:#14181f;--surf2:#1a1f28;--text:#eceef3;--sub:#7f8795;--line:rgba(255,255,255,.07);--accsoft:rgba(31,212,138,.14);--me:#1f9d5e;--me-t:#fff;--them:#222833;--them-t:#eceef3;--shadow:0 8px 30px rgba(0,0,0,.45);--nav:#10141a;--pb:#10141a;color-scheme:dark}}
:root[data-theme=dark]{--bg:#0b0d11;--surf:#14181f;--surf2:#1a1f28;--text:#eceef3;--sub:#7f8795;--line:rgba(255,255,255,.07);--accsoft:rgba(31,212,138,.14);--me:#1f9d5e;--me-t:#fff;--them:#222833;--them-t:#eceef3;--shadow:0 8px 30px rgba(0,0,0,.45);--nav:#10141a;--pb:#10141a;color-scheme:dark}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0}
body{font:15px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--text);overflow:hidden;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button,input,textarea{font:inherit;color:inherit;border:0;outline:0;background:none}
button{cursor:pointer}
h1,h2,h3,p{margin:0}
.ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dim{color:var(--sub)}
::-webkit-scrollbar{width:0;height:0}

#app{position:fixed;inset:0;background:var(--bg);overflow:hidden;overflow:clip}
@media(min-width:760px){
  body{background:radial-gradient(1200px 700px at 20% 10%,#1d2b3a 0,transparent 60%),radial-gradient(900px 600px at 90% 90%,#2c1f3d 0,transparent 55%),#0a0c10}
  #app{inset:auto;left:50%;top:50%;width:440px;height:min(880px,calc(100vh - 40px));transform:translate(-50%,-50%);border-radius:34px;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 40px 120px rgba(0,0,0,.6)}
}
.screen,.view{position:absolute;inset:0;display:none;flex-direction:column;background:var(--bg)}
.screen.show{display:flex}
.view{display:flex;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);z-index:20;visibility:hidden}
.view.show{transform:none;visibility:visible}

/* ===== 通用组件 ===== */
.btn{padding:10px 20px;border-radius:999px;background:var(--acc);color:#fff;font-weight:600;transition:.2s;white-space:nowrap}
.btn:active{transform:scale(.96)}
.btn.ghost{background:var(--surf2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.btn.sm{padding:7px 14px;font-size:13px}
.btn.wide{width:100%;padding:13px;margin-top:12px}
.btn.glow{background:linear-gradient(135deg,#1fd48a,#0fa86a);box-shadow:var(--glow)}
.link{color:var(--acc);font-size:13px;padding:6px}
.avatar{--s:42px;width:var(--s);height:var(--s);border-radius:calc(var(--s)*.28);display:grid;place-items:center;font-size:calc(var(--s)*.56);flex:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 2px 8px rgba(0,0,0,.12);line-height:1}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.chips button{padding:6px 12px;border-radius:999px;background:var(--surf2);font-size:12.5px;box-shadow:inset 0 0 0 1px var(--line)}
.chips button.on{background:var(--accsoft);color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.seg{display:inline-flex;background:var(--surf2);border-radius:10px;padding:3px;gap:2px}
.seg button{padding:5px 12px;border-radius:8px;font-size:13px;color:var(--sub)}
.seg button.on{background:var(--surf);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.seg.big{display:flex}.seg.big button{flex:1;padding:11px;font-size:16px;font-weight:600}
.switch{width:50px;height:30px;border-radius:15px;background:var(--line);position:relative;transition:.25s;flex:none}
.switch i{position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.25);transition:.25s}
.switch.on{background:var(--acc);box-shadow:var(--glow)}.switch.on i{left:23px}
.card{background:var(--surf);border-radius:var(--r);margin:12px 14px;box-shadow:0 1px 0 var(--line);overflow:hidden}
.sec{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.sec small{color:var(--sub);font-size:12px}

#toasts{position:fixed;left:0;right:0;top:calc(var(--safe-t) + 14px);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:9000;pointer-events:none}
.toast{background:rgba(20,22,28,.92);color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;max-width:86vw;opacity:0;transform:translateY(-14px) scale(.96);transition:.3s;backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.3)}
.toast.in{opacity:1;transform:none}
.banner{pointer-events:auto;display:flex;gap:10px;align-items:center;background:var(--surf);color:var(--text);padding:10px 14px;border-radius:18px;width:min(92vw,400px);box-shadow:var(--shadow),0 0 0 1px var(--line);opacity:0;transform:translateY(-30px);transition:.35s cubic-bezier(.2,.9,.3,1.2);cursor:pointer}
.banner.in{opacity:1;transform:none}.banner b{font-size:13px}.banner p{font-size:14px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70vw}
.banner.fun{box-shadow:var(--shadow),0 0 0 1.5px var(--danger),0 0 24px rgba(239,74,91,.35)}

#modals{position:fixed;inset:0;z-index:8000;pointer-events:none}
.modal-back{position:absolute;inset:0;background:rgba(5,8,14,.5);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:.25s;pointer-events:auto}
.modal-back.in{opacity:1}
.modal{background:var(--surf);width:min(100%,460px);border-radius:26px 26px 0 0;padding:20px 18px calc(18px + var(--safe-b));max-height:88vh;overflow:auto;transform:translateY(40px);transition:.3s cubic-bezier(.2,.9,.3,1);box-shadow:0 -10px 50px rgba(0,0,0,.3)}
.modal-back.in .modal{transform:none}
.modal.tall{min-height:50vh}
@media(min-width:760px){.modal-back{align-items:center}.modal{border-radius:26px;width:420px}}
.sheet h3{font-size:18px;margin-bottom:4px}.sheet .sub{color:var(--sub);font-size:13px;margin-bottom:12px}
.sheet input,.sheet textarea,.cinp input{width:100%;background:var(--surf2);border-radius:12px;padding:12px 14px;margin:6px 0;box-shadow:inset 0 0 0 1px var(--line)}
.confirm{text-align:center;padding:6px 0}.confirm h3{font-size:18px}.confirm p{color:var(--sub);margin-top:8px;font-size:14px}
.confirm .btns{display:flex;gap:10px;margin-top:20px}.confirm .btns .btn{flex:1}
.ginvite .gi{font-size:56px}
.ctx{position:fixed;z-index:8500;background:rgba(28,30,36,.96);border-radius:12px;display:flex;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.4);backdrop-filter:blur(10px)}
.ctx button{color:#fff;padding:10px 16px;font-size:14px}.ctx button+button{border-left:1px solid rgba(255,255,255,.1)}

/* ===== 能量条 ===== */
.energy{display:flex;align-items:center;gap:10px}
.energy .bolt{filter:drop-shadow(0 0 6px #ffd23d)}
.energy .segs{display:flex;gap:4px;flex:1}
.energy .segs i{flex:1;height:10px;border-radius:4px;background:var(--line);transition:.4s}
.energy .segs i.on{background:linear-gradient(180deg,#7dffc8,#14d68a);box-shadow:0 0 8px rgba(30,230,150,.9),0 0 18px rgba(30,230,150,.45)}
.energy.low .segs i.on{background:linear-gradient(180deg,#ffd27a,#ff8a2b);box-shadow:0 0 8px rgba(255,160,40,.9),0 0 18px rgba(255,160,40,.4)}
.energy .num{font-variant-numeric:tabular-nums;font-weight:700;min-width:36px;text-align:right;text-shadow:0 0 10px rgba(30,230,150,.6)}
.energy.big .segs i{height:16px;border-radius:5px}
.energy.big .bolt{font-size:20px}

/* ===== 页面 ===== */
#pages{flex:1;position:relative;overflow:hidden}
.page{position:absolute;inset:0;display:none;flex-direction:column;overflow-y:auto;padding-bottom:20px}
.page.show{display:flex}
.top{padding:calc(var(--safe-t) + 14px) 20px 10px;position:sticky;top:0;z-index:5;background:linear-gradient(var(--bg) 70%,transparent)}
.top h1{font-size:26px;font-weight:800;letter-spacing:.5px}
#tabbar{display:flex;background:var(--nav);border-top:1px solid var(--line);padding:6px 6px calc(6px + var(--safe-b));flex:none}
#tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--sub);font-size:11px;padding:4px;position:relative;transition:.2s}
#tabbar button.on{color:var(--acc)}
#tabbar button.on .ic{filter:drop-shadow(0 0 6px rgba(16,183,107,.6))}
.tdot{position:absolute;top:0;left:calc(50% + 6px);min-width:18px;height:18px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-style:normal;display:grid;place-items:center;padding:0 5px;font-weight:600}
.crow{display:flex;gap:14px;padding:14px 20px;background:var(--surf);margin:4px 14px;border-radius:20px;box-shadow:0 1px 0 var(--line);cursor:pointer;transition:.2s}
.crow:active{transform:scale(.985)}
.crow .av{position:relative}
.presence{position:absolute;right:-2px;bottom:-2px;width:14px;height:14px;border-radius:50%;background:#9aa3b2;border:2.5px solid var(--surf)}
.presence.on{background:#1fd48a;box-shadow:0 0 10px #1fd48a}
.badge{position:absolute;right:-6px;top:-6px;min-width:20px;height:20px;border-radius:10px;background:var(--danger);color:#fff;font-size:12px;display:grid;place-items:center;padding:0 5px;font-weight:600;box-shadow:0 0 0 2px var(--surf)}
.crow .cm{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}
.r1,.r2{display:flex;justify-content:space-between;align-items:center;gap:8px}
.r1 b{font-size:16px}.r1 time{font-size:12px;color:var(--sub)}
.r2 span{color:var(--sub);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.r2 em{font-style:normal;font-size:11px;color:var(--sub)}.r2 em.on{color:var(--acc)}
.tip{margin:20px 28px;color:var(--sub);font-size:12.5px;text-align:center;line-height:1.7}.tip b{display:block;color:var(--text);margin-bottom:4px}

/* 游戏 */
.gamelist{padding:4px 14px;display:flex;flex-direction:column;gap:14px}
.gcard{border-radius:24px;padding:20px;display:flex;gap:16px;align-items:center;color:#fff;position:relative;overflow:hidden;min-height:150px;box-shadow:var(--shadow)}
.gcard.liar{background:radial-gradient(circle at 85% 20%,#b4642f 0,transparent 50%),linear-gradient(135deg,#2a140c,#4a2412 60%,#1c0d08)}
.gcard.uno{background:radial-gradient(circle at 85% 20%,#ff5b5b 0,transparent 45%),linear-gradient(135deg,#1a1d2e,#2b3a8c 70%,#16213f)}
.gcard.mines{background:radial-gradient(circle at 85% 20%,#2fd4a0 0,transparent 45%),linear-gradient(135deg,#0d2a2a,#14564f 70%,#0b1f24)}
.gart{font-size:64px;filter:drop-shadow(0 6px 18px rgba(0,0,0,.45));animation:float 4s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px) rotate(4deg)}}
.gtxt{flex:1}.gtxt h3{font-size:22px;margin:4px 0}.gtxt p{opacity:.8;font-size:13px;margin-bottom:10px}
.gtxt .tag{font-size:11px;background:rgba(255,255,255,.18);padding:2px 9px;border-radius:99px;backdrop-filter:blur(4px)}
.gcard .chips button{background:rgba(255,255,255,.14);color:#fff;box-shadow:none}.gcard .chips button.on{background:#fff;color:#0b3a38}

/* 发现 */
.dwrap{padding:4px 14px;display:flex;flex-direction:column;gap:14px}
.hero{border-radius:26px;padding:26px 22px;color:#f7e6c4;text-align:center;position:relative;overflow:hidden;background:radial-gradient(circle at 15% 0,rgba(255,255,255,.14) 0,transparent 50%),linear-gradient(135deg,#1b212d,#0b0e14);box-shadow:var(--shadow),inset 0 0 0 1px rgba(247,230,196,.18)}
.hero small{opacity:.75;letter-spacing:1px}.hero .days{font-size:20px;margin:6px 0}.hero .days b{font-size:68px;font-weight:700;line-height:1;margin-right:4px;background:linear-gradient(135deg,#f7e6c4,#d6a07a);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{opacity:.8}
.qa{background:var(--surf);border-radius:22px;padding:18px;box-shadow:0 1px 0 var(--line)}
.qa .q{font-size:17px;font-weight:700;margin:6px 0 10px;line-height:1.5}
.qa textarea{width:100%;background:var(--surf2);border-radius:12px;padding:12px;box-shadow:inset 0 0 0 1px var(--line);resize:none}
.ans{border-radius:14px;padding:10px 14px;margin-top:8px}.ans small{color:var(--sub);font-size:12px}.ans.me{background:var(--accsoft)}.ans.them{background:rgba(255,95,147,.12)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{background:var(--surf);border-radius:20px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 0 var(--line);transition:.2s}
.tile:active{transform:scale(.97)}.ti{font-size:30px;margin-bottom:6px}.tile small{color:var(--sub);font-size:12px}
.lab{background:var(--surf);border-radius:22px;padding:16px}
.labgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.labgrid button{background:var(--surf2);border-radius:14px;padding:10px 4px;font-size:12.5px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:inset 0 0 0 1px var(--line)}
.labgrid span{font-size:26px}.labgrid em{font-style:normal;font-size:11px;color:var(--warn)}

/* 我 */
.profile{display:flex;align-items:center;gap:14px;background:var(--surf);margin:4px 14px;padding:18px;border-radius:22px}
.profile>div:nth-child(2){flex:1}.profile b{font-size:18px;display:block}.profile small{color:var(--sub)}
.energy-card{padding:16px 18px}
.costs{display:flex;justify-content:space-between;color:var(--sub);font-size:12px;margin-top:10px}
.srow{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;cursor:pointer}.srow+.srow{border-top:1px solid var(--line)}
.foot{text-align:center;color:var(--sub);font-size:12px;margin:18px}

/* 登录 */
#login{align-items:center;justify-content:center;background:radial-gradient(700px 500px at 10% 0,rgba(31,212,138,.25),transparent 60%),radial-gradient(600px 500px at 100% 100%,rgba(255,95,147,.22),transparent 60%),var(--bg);overflow:auto}
.login-card{width:min(92%,380px);padding:30px 24px;margin:auto}
.logo{display:block;width:84px;height:84px;margin:0 auto;border-radius:22px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.login-card h1{text-align:center;font-size:28px;margin-top:6px}.login-card .sub{text-align:center;color:var(--sub);margin-bottom:16px}
.login-card label{display:block;font-size:12px;color:var(--sub);margin:14px 0 6px;letter-spacing:1px}
.login-card input{width:100%;background:var(--surf);border-radius:14px;padding:14px;box-shadow:inset 0 0 0 1px var(--line)}
.login-card input.code{font-size:24px;letter-spacing:6px;text-align:center;font-weight:700;box-shadow:inset 0 0 0 1.5px var(--acc),var(--glow)}
.avgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.avgrid button{font-size:22px;padding:6px 0;border-radius:12px;background:var(--surf)}.avgrid button.on{box-shadow:inset 0 0 0 2px var(--acc);background:var(--accsoft)}
.fine{text-align:center;color:var(--sub);font-size:12px;margin-top:14px}

/* ===== 聊天 ===== */
.nav{display:flex;align-items:center;gap:6px;padding:calc(var(--safe-t) + 8px) 8px 8px;background:var(--nav);border-bottom:1px solid var(--line);flex:none}
.nav .back{display:flex;align-items:center;padding:6px;position:relative}.bdg{font-size:12px}
.nav .ttl{flex:1;text-align:center}.nm{font-weight:700;font-size:17px}
.st{font-size:11.5px;color:var(--sub);display:flex;align-items:center;justify-content:center;gap:5px;min-height:16px}
.st.typing{color:var(--acc)}
.dot{width:7px;height:7px;border-radius:50%;background:#9aa3b2;display:inline-block}.dot.on{background:#1fd48a;box-shadow:0 0 8px #1fd48a}
.ib{padding:6px;display:grid;place-items:center;border-radius:50%;transition:.2s}.ib.act{color:var(--acc)}
.offline-bar{display:none;background:rgba(255,176,32,.14);color:#c47d00;font-size:12px;text-align:center;padding:5px}
.offline-bar.show{display:block}
.msgs{flex:1;overflow-y:auto;padding:10px 12px 16px;background:var(--bg);background-image:radial-gradient(circle at 20% 10%,var(--accsoft),transparent 40%);overscroll-behavior:contain;scroll-behavior:auto}
.more-hint{text-align:center;color:var(--sub);font-size:12px;padding:6px}
.item{margin:2px 0}.item.flash .bubble,.item.flash .row{animation:flash 1.5s}
@keyframes flash{0%,60%{filter:drop-shadow(0 0 10px var(--acc))}}
.time{text-align:center;color:var(--sub);font-size:12px;margin:14px 0 8px}
.sys{text-align:center;color:var(--sub);font-size:12px;margin:8px 20px;background:var(--line);width:fit-content;max-width:86%;padding:3px 12px;border-radius:99px;margin-left:auto;margin-right:auto}
.row{display:flex;gap:9px;margin:8px 0;align-items:flex-start;animation:pop .28s cubic-bezier(.2,.9,.3,1.2)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.96)}}
.row.me{flex-direction:row-reverse}
.row .avatar{--s:40px}
.col{display:flex;flex-direction:column;max-width:72%;min-width:0}.row.me .col{align-items:flex-end}
.bubble{padding:10px 13px;border-radius:6px 16px 16px 16px;background:var(--them);color:var(--them-t);white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 2px rgba(0,0,0,.06);position:relative;font-size:16px;line-height:1.45;user-select:text;-webkit-touch-callout:none}
.row.me .bubble{background:var(--me);color:var(--me-t);border-radius:16px 6px 16px 16px}
.bubble.bigemo{font-size:42px;background:none!important;box-shadow:none;padding:0 4px}
.bubble.burn{background:linear-gradient(135deg,#ff7a3d,#e0392b)!important;color:#fff!important;cursor:pointer;box-shadow:0 0 18px rgba(255,90,40,.5)}
.quote{background:rgba(0,0,0,.07);border-left:3px solid var(--acc);padding:4px 8px;border-radius:6px;margin-bottom:6px;font-size:12.5px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px;cursor:pointer}
.sticker{font-size:76px;line-height:1.1;animation:pop .4s}
.picwrap{border-radius:14px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.15);line-height:0}.pic{max-width:min(240px,60vw);max-height:300px;display:block;cursor:zoom-in}
.bubble.voice{display:flex;align-items:center;gap:8px;cursor:pointer}.row.me .bubble.voice{flex-direction:row-reverse}
.bubble.voice .ic{width:22px;height:22px}.bubble.voice.playing .ic{animation:wav .8s infinite}
@keyframes wav{50%{opacity:.3}}
.mstat{font-size:11px;color:var(--sub);margin-top:3px}.mstat.read{color:var(--acc)}
.imgview{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:8800;display:grid;place-items:center}.imgview img{max-width:96vw;max-height:94vh;border-radius:6px}
.prankcard{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;color:#fff;min-width:230px;position:relative;overflow:hidden}
.prankcard.c1{background:linear-gradient(135deg,#3b82f6,#6366f1)}.prankcard.c2{background:linear-gradient(135deg,#a855f7,#ec4899)}.prankcard.c3{background:linear-gradient(135deg,#ef4444,#f97316);box-shadow:0 0 22px rgba(239,68,68,.45)}
.pi{font-size:34px;filter:drop-shadow(0 3px 8px rgba(0,0,0,.3))}.pt{flex:1;display:flex;flex-direction:column}.pt small{opacity:.8;font-size:11.5px}.pc{font-size:11px;letter-spacing:-2px}
.prankcard button{background:rgba(255,255,255,.22);padding:5px 10px;border-radius:99px;font-size:12px}
.coupon{display:flex;background:linear-gradient(135deg,#ffefd5,#ffd9a8);color:#6b3b00;border-radius:14px;overflow:hidden;min-width:230px;position:relative;box-shadow:0 3px 14px rgba(255,170,60,.3)}
.coupon .cl{width:64px;display:grid;place-items:center;font-size:30px;background:rgba(255,120,0,.14);border-right:2px dashed rgba(107,59,0,.35)}
.coupon .cm{flex:1;padding:10px 12px;display:flex;flex-direction:column}.coupon .cm b{font-size:17px}.coupon .cm small{opacity:.7;font-size:11px}
.coupon button{align-self:center;margin-right:10px;background:#ff7a1a;color:#fff;padding:6px 14px;border-radius:99px;font-weight:600}
.coupon.used{filter:grayscale(1) opacity(.6)}
.capsule{background:linear-gradient(135deg,#1f2a44,#3b2a5e);color:#fff;border-radius:16px;padding:12px 14px;min-width:220px;box-shadow:0 0 22px rgba(120,100,255,.35)}
.capsule .ch{font-weight:700}.capsule .cb{margin:8px 0;white-space:pre-wrap}.capsule .cb.lock{opacity:.85;font-size:13px}.capsule small{opacity:.6;font-size:11px}
.capsule.open{background:linear-gradient(135deg,#ff9a6b,#ff5f93)}
.diecard,.wheelcard{background:var(--them);border-radius:16px;padding:12px 16px;text-align:center;display:flex;flex-direction:column;gap:2px;min-width:140px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.die{font-size:60px;line-height:1}.coin{font-size:54px}.roll{animation:roll .9s cubic-bezier(.2,.8,.3,1)}
@keyframes roll{from{transform:rotate(-720deg) scale(.3);opacity:0}}
.diecard small{color:var(--sub)}
.wheelcard .wt{font-size:12px;color:var(--sub)}.wheelcard .wr{font-size:22px;font-weight:800;color:var(--acc)}
.wheelcard .wo{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:4px}.wheelcard .wo span{font-size:11px;background:var(--surf2);padding:2px 8px;border-radius:99px;color:var(--sub)}.wheelcard .wo .hit{background:var(--accsoft);color:var(--acc)}
.replybar{display:none;align-items:center;justify-content:space-between;gap:10px;padding:7px 14px;background:var(--nav);border-top:1px solid var(--line);font-size:13px;color:var(--sub)}
.replybar.show{display:flex}.replybar div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inputbar{display:flex;align-items:flex-end;gap:6px;padding:8px 8px calc(8px + var(--safe-b));background:var(--nav);border-top:1px solid var(--line);flex:none}
.inputbar .ib{width:42px;height:42px}.inputbar .ib .ic{width:30px;height:30px;stroke-width:1.4}
.inwrap{flex:1;position:relative;min-height:42px;background:var(--surf);border-radius:12px;display:flex;align-items:center;box-shadow:inset 0 0 0 1px var(--line)}
.inwrap textarea{width:100%;resize:none;padding:10px 12px;max-height:120px;line-height:1.4;font-size:16px;display:block}
.inwrap .hold{display:none;width:100%;height:42px;font-weight:600;color:var(--text);border-radius:12px;user-select:none;touch-action:none}
.inwrap.voice textarea{display:none}.inwrap.voice .hold{display:block}.hold.rec{background:var(--acc);color:#fff;box-shadow:var(--glow)}
.sendbtn{height:42px;padding:0 16px;border-radius:12px;background:var(--acc);color:#fff;font-weight:600;box-shadow:var(--glow)}
#chat.burnmode .inwrap{box-shadow:inset 0 0 0 1.5px #ff6a3d,0 0 16px rgba(255,100,40,.4)}
.panel{height:0;overflow:hidden;background:var(--pb);transition:height .26s cubic-bezier(.2,.8,.2,1);flex:none}
.panel.open{height:min(410px,54vh);padding-bottom:var(--safe-b)}
.pane{display:none;height:100%;flex-direction:column}.pane.show{display:flex}
.ptabs{display:flex;gap:6px;padding:8px 12px}.ptabs button{padding:6px 14px;border-radius:99px;font-size:13px;color:var(--sub)}.ptabs button.on{background:var(--surf);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.1)}
.pbody{flex:1;overflow-y:auto;padding:0 8px 8px}
.egrid{display:grid;grid-template-columns:repeat(8,1fr)}.egrid button{font-size:26px;padding:7px 0;border-radius:10px}.egrid button:active{background:var(--line)}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.sgrid button{font-size:46px;padding:8px 0;border-radius:14px}.sgrid button:active{background:var(--line);transform:scale(1.1)}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 6px;padding:16px 14px;overflow-y:auto}
.mgrid button{display:flex;flex-direction:column;align-items:center;gap:6px}.mi{width:58px;height:58px;border-radius:18px;background:var(--surf);display:grid;place-items:center;font-size:28px;box-shadow:0 1px 0 var(--line);transition:.2s}
.mgrid button:active .mi{transform:scale(.92)}.mgrid small{font-size:12px;color:var(--sub)}.burnbtn.act .mi{background:linear-gradient(135deg,#ff7a3d,#e0392b);box-shadow:0 0 18px rgba(255,90,40,.6)}

/* 整蛊面板 */
.prank-panel{padding:4px 4px 0}
.phead{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#0f1f1a,#12302a);color:#d8fff0;border-radius:16px;padding:10px 14px;margin-bottom:8px;box-shadow:0 0 22px rgba(30,230,150,.18),inset 0 0 0 1px rgba(30,230,150,.25)}
.phead>div:first-child{display:flex;flex-direction:column;flex:none}.phead small{opacity:.6;font-size:10.5px}.phead .energy{flex:1}
.phead .energy .num{color:#9fffd5}.phead .energy .segs i{background:rgba(255,255,255,.12)}.phead .energy .segs i.on{background:linear-gradient(180deg,#7dffc8,#14d68a)}.phead .energy.low .segs i.on{background:linear-gradient(180deg,#ffd27a,#ff8a2b)}
.tier{display:flex;justify-content:space-between;font-size:12px;color:var(--sub);margin:8px 4px 4px}.tier em{font-style:normal;color:var(--warn)}
.t3 span{color:var(--danger);font-weight:700}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pk{background:var(--surf);border-radius:14px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12.5px;box-shadow:0 1px 0 var(--line);transition:.2s}
.pk .pic2{font-size:25px}.pk.sel{box-shadow:0 0 0 2px var(--acc),var(--glow);transform:translateY(-2px)}
.pinfo{position:sticky;bottom:0;background:var(--pb);padding:10px 4px 6px;margin-top:8px;display:flex;gap:10px;align-items:center;border-top:1px solid var(--line)}
.pdesc{flex:1;font-size:12.5px;color:var(--sub);line-height:1.5}.pdesc b{color:var(--text)}.pbtns{display:flex;gap:6px}
.recov{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);width:170px;padding:20px;border-radius:20px;background:rgba(20,22,28,.88);color:#fff;text-align:center;z-index:8200;backdrop-filter:blur(10px)}
.recov.cancel{background:rgba(239,74,91,.92)}.recov b{display:block;font-size:26px;margin:8px 0}.recov small{opacity:.8}
.bars{display:flex;gap:4px;height:44px;align-items:center;justify-content:center}.bars i{width:4px;background:#3ee79b;border-radius:2px;animation:bar .6s infinite ease-in-out}
.bars i:nth-child(odd){animation-delay:-.3s}@keyframes bar{0%,100%{height:8px}50%{height:40px}}
.search{display:flex;flex-direction:column;gap:10px}.search input{background:var(--surf2);border-radius:12px;padding:12px 14px;box-shadow:inset 0 0 0 1px var(--line)}
.sr{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.sr b{font-size:13px}.sr small{color:var(--sub);margin-left:8px;font-weight:400}.sr p{font-size:14px}.empty{text-align:center;color:var(--sub);padding:30px}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.cgrid button{background:var(--surf2);border-radius:14px;padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;box-shadow:inset 0 0 0 1px var(--line)}.cgrid span{font-size:26px}
.cinp{display:flex;gap:8px;align-items:center}.cinp input{flex:1}
.burnview{text-align:center}.burnview .bh{font-weight:700;color:#ff6a3d;margin-bottom:10px}.burntext{font-size:20px;padding:20px;background:var(--surf2);border-radius:16px;white-space:pre-wrap;margin-bottom:12px}.burnimg{max-width:100%;max-height:50vh;border-radius:12px}
.bbar{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin:12px 0}.bbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff7a3d,#e0392b);box-shadow:0 0 10px #ff6a3d}
.wheel .wwrap{position:relative;width:min(280px,76vw);margin:10px auto}.wheelcv{width:100%;display:block;filter:drop-shadow(0 10px 24px rgba(0,0,0,.25))}
.wptr{position:absolute;top:-8px;left:50%;margin-left:-11px;border:11px solid transparent;border-top:22px solid #ff3b6b;z-index:2;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}
.wout{text-align:center;font-size:17px;margin:6px 0}.wout b{color:var(--acc);font-size:22px}
.doodle{position:absolute;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column}
.dh{display:flex;align-items:center;gap:10px;padding:calc(var(--safe-t) + 10px) 14px 10px;background:var(--nav);border-bottom:1px solid var(--line)}.dh b{flex:1}.dh .sub{font-size:12px;color:var(--sub)}.dh button{font-size:18px;padding:4px 8px}
.dcv{flex:1;display:grid;place-items:center;padding:10px;min-height:0}
.paper{aspect-ratio:3/4;max-height:100%;max-width:100%;height:100%;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.paper canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}
.dtools{padding:10px 14px calc(12px + var(--safe-b));background:var(--nav);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.swatches{display:flex;gap:8px;align-items:center}.sw{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(0,0,0,.12)}.sw.on{box-shadow:0 0 0 3px var(--acc)}.tool{font-size:22px;margin-left:auto;padding:2px 8px;border-radius:10px}.tool.on{background:var(--accsoft)}
.dtools input[type=range]{width:100%;accent-color:var(--acc)}.dbtn{display:flex;gap:8px;justify-content:flex-end}

/* ===== 整蛊特效层 ===== */
#fx{position:fixed;inset:0;z-index:9999;display:none;overflow:hidden;touch-action:none}
#fx.on{display:block}
.scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px);mix-blend-mode:multiply;animation:scan .2s steps(2) infinite}
@keyframes scan{to{transform:translateY(3px)}}
.hack-term{position:absolute;left:6vw;top:10vh;margin:0;color:#3dff7a;font:12px/1.7 ui-monospace,Menlo,Consolas,monospace;overflow:hidden;white-space:pre;text-shadow:0 0 8px #1aff5a;background:rgba(0,0,0,.6);padding:14px;border:1px solid #1aff5a;max-width:88vw;min-width:60vw}
.hack-big{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,.6);color:#3dff7a;text-align:center;gap:14px}
.hack-big.in{display:flex}.hack-big b{font:900 clamp(32px,10vw,64px)/1 ui-monospace,Menlo,monospace;text-shadow:0 0 20px #1aff5a,3px 0 #f0f,-3px 0 #0ff;animation:glitch .3s infinite}
.hack-big span{font-size:22px;color:#fff;text-shadow:0 0 14px #1aff5a}
@keyframes glitch{20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-2px,-3px)}80%{transform:translate(3px,3px)}}
.frost-hint{position:absolute;left:0;right:0;top:44%;text-align:center;font-size:22px;color:#4a6e8c;font-weight:600;pointer-events:none;transition:opacity .5s;text-shadow:0 1px 8px rgba(255,255,255,.9)}
.bsod{position:absolute;inset:0;background:#0078d7;color:#fff;font-family:"Segoe UI","Segoe UI Variable",Frutiger,"Helvetica Neue",Arial,sans-serif;padding:0 8vw;display:flex;flex-direction:column;justify-content:center;cursor:none}
.bsod .sad{font-size:clamp(90px,28vw,200px);line-height:1;margin-bottom:.1em;font-weight:200}
.bsod .l1{font-size:clamp(18px,4.6vw,30px);line-height:1.35;max-width:900px;margin-bottom:.9em}
.bsod .l2{font-size:clamp(18px,4.6vw,30px);margin-bottom:1.6em}
.qrrow{display:flex;gap:18px;align-items:flex-start}.qrrow canvas{width:clamp(80px,22vw,116px);height:auto;flex:none}.qrtxt p{font-size:clamp(11px,2.8vw,14px);line-height:1.5;margin:0 0 .6em;max-width:560px}
.wipe{position:absolute;left:50%;top:50%;width:min(88vw,420px);transform:translate(-50%,-50%);background:#f3f3f3;color:#111;border-radius:6px;box-shadow:0 20px 80px rgba(255,0,0,.55),0 0 0 1px #c00;font-family:"Segoe UI",system-ui,sans-serif;padding:0 0 16px}
.wipe>*:not(.wipe-h){margin-left:18px;margin-right:18px}
.wipe-h{background:#c50f1f;color:#fff;padding:9px 14px;font-weight:700;display:flex;gap:8px;border-radius:6px 6px 0 0;margin-bottom:14px}
.wipe-msg{font-size:14px;line-height:1.5;margin-bottom:14px!important}
.wipe-bar{height:16px;background:#ddd;border:1px solid #aaa;overflow:hidden}.wipe-bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(45deg,#e81123 0 10px,#ff4d5a 10px 20px)}
.wipe-row{display:flex;justify-content:space-between;font-size:13px;margin-top:6px!important}.wipe-row em{font-style:normal;font-weight:700}
.wipe code{display:block;font:12px ui-monospace,Menlo,monospace;color:#c50f1f;margin-top:8px!important;min-height:18px;overflow:hidden;white-space:nowrap}
.wipe button{float:right;margin-top:10px;padding:6px 20px;border:1px solid #888;background:#e6e6e6;border-radius:3px;font-size:13px}.wipe button.shake{animation:glitch .3s 2}
.wipe-ok{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;gap:6px;animation:pop .6s}.wipe-ok div{font-size:90px}.wipe-ok h2{font-size:34px}.wipe-ok p{font-size:17px;opacity:.95}

/* ===== 游戏 ===== */
#games-layer{position:absolute;inset:0;z-index:50;pointer-events:none}
.game{position:absolute;inset:0;pointer-events:auto;display:flex;flex-direction:column;color:#fff;overflow:hidden;padding-top:var(--safe-t)}
.gtop{display:flex;align-items:center;gap:10px;padding:10px 14px;position:relative;z-index:6}.gtop b{flex:1;text-align:center;font-size:17px}.gq{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.14);font-size:15px;color:#fff}.gscore{min-width:34px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;opacity:.9}
.veil{position:absolute;inset:0;z-index:30;background:rgba(5,8,14,.78);backdrop-filter:blur(6px);display:grid;place-items:center;text-align:center}
.spin{display:block;width:34px;height:34px;margin:0 auto 12px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;animation:rot 1s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}
.u-ov{position:absolute;inset:0;z-index:20;background:rgba(5,8,14,.72);backdrop-filter:blur(8px);display:grid;place-items:center}
.u-res{text-align:center;padding:30px 36px;border-radius:28px;background:rgba(20,24,34,.92);box-shadow:0 20px 80px rgba(0,0,0,.6);animation:pop .5s cubic-bezier(.2,.9,.3,1.3)}
.u-res.win{box-shadow:0 0 0 2px #ffd23d,0 0 60px rgba(255,210,61,.45)}.u-res .big{font-size:76px}.u-res h2{font-size:26px;margin:6px 0}.u-res p{opacity:.7}.u-res .btns{display:flex;gap:10px;margin-top:20px;justify-content:center}
/* UNO */
.g-uno{background:radial-gradient(900px 500px at 50% 40%,#1d6b4a 0,#0e3b2c 60%,#071f17 100%)}
.u-opp{padding:0 14px;display:flex;flex-direction:column;align-items:center;gap:6px}
.u-who{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border-radius:99px;background:rgba(0,0,0,.28);font-size:14px;transition:.3s}.u-who span{opacity:.7;font-size:12px}.u-who.turn{box-shadow:0 0 0 2px #ffd23d,0 0 22px rgba(255,210,61,.6)}
.u-fan{display:flex;justify-content:center;height:70px;margin-top:2px}.u-fan .uc{width:44px;height:66px;margin-left:-26px;transform:rotate(calc((var(--i) - var(--n)/2)*5deg));transform-origin:50% 120%}.u-fan .uc:first-child{margin-left:0}
.u-center{flex:1;display:flex;align-items:center;justify-content:center;gap:28px;position:relative}
.u-pile{display:flex;flex-direction:column;align-items:center;gap:6px}.u-pile small{opacity:.75;font-size:12px}.u-pile.can .uc{animation:bob 1s infinite;box-shadow:0 0 0 2px #ffd23d,0 0 24px rgba(255,210,61,.6)}
@keyframes bob{50%{transform:translateY(-6px)}}
.u-disc{padding:10px;border-radius:50%;transition:.4s;box-shadow:0 0 0 4px transparent}
.u-disc.ring-R{box-shadow:0 0 60px 8px rgba(229,57,53,.7)}.u-disc.ring-Y{box-shadow:0 0 60px 8px rgba(251,192,45,.7)}.u-disc.ring-G{box-shadow:0 0 60px 8px rgba(67,160,71,.8)}.u-disc.ring-B{box-shadow:0 0 60px 8px rgba(30,136,229,.8)}
.u-col{position:absolute;bottom:4px;font-size:12px;padding:2px 12px;border-radius:99px;background:rgba(0,0,0,.35)}
.u-log{text-align:center;font-size:14px;padding:6px 14px;min-height:30px;opacity:.95}
.u-ctl{display:flex;justify-content:center;gap:12px;align-items:center;min-height:50px}
.u-uno{display:none;padding:10px 26px;border-radius:99px;background:#e53935;font-weight:900;font-size:18px;letter-spacing:1px;box-shadow:0 0 0 3px rgba(255,255,255,.3);transition:.2s}.u-uno.on{background:#ffd23d;color:#a60000;box-shadow:0 0 0 3px #fff,0 0 30px #ffd23d;transform:scale(1.1)}
.u-hand{display:flex;overflow-x:auto;padding:22px 20px calc(18px + var(--safe-b));min-height:150px;align-items:flex-end}
.u-hand .uc{flex:none;margin-left:-28px;transition:transform .2s}.u-hand .uc:first-child{margin-left:0}
.u-hand .uc.ok{transform:translateY(-14px);box-shadow:0 0 0 2px #fff,0 0 18px rgba(255,255,255,.55);cursor:pointer}.u-hand .uc.ok:hover{transform:translateY(-24px)}
.u-hand .uc.no{filter:brightness(.62)}.uc.nope{animation:glitch .3s}
.uc{--cc:#e53935;width:68px;height:100px;border-radius:10px;background:var(--cc);border:3px solid #fff;position:relative;color:#fff;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.4);flex:none;user-select:none}
.uc.c-R{--cc:#e53935}.uc.c-Y{--cc:#f6b900}.uc.c-G{--cc:#2e9e4a}.uc.c-B{--cc:#1e7ae0}.uc.c-W{--cc:#17191f}
.uc .tl,.uc .br{position:absolute;font-style:normal;font-size:13px}.uc .tl{left:5px;top:3px}.uc .br{right:5px;bottom:3px;transform:rotate(180deg)}
.uc .ov{position:absolute;inset:14px 6px;background:#fff;border-radius:50%;transform:rotate(-26deg);display:grid;place-items:center;overflow:hidden}.uc .ov b{transform:rotate(26deg);font-size:34px;color:var(--cc);font-style:italic;text-shadow:1px 1px 0 rgba(0,0,0,.2)}
.uc.c-W .ov{background:conic-gradient(#e53935 0 25%,#f6b900 0 50%,#2e9e4a 0 75%,#1e7ae0 0)}.uc.c-W .ov b{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.6)}
.uc.back{background:#14161c;border-color:#fff;display:grid;place-items:center}.uc.back b{background:#e53935;transform:rotate(-24deg);padding:4px 7px;border-radius:50%/60%;font-size:13px;font-style:italic;border:2px solid #ffd23d}
.uc.drop{animation:drop .45s cubic-bezier(.2,.9,.3,1.3)}@keyframes drop{from{transform:translateY(120px) scale(.7) rotate(18deg);opacity:0}}
.colorpick .cpg{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.cp{height:70px;border-radius:18px;background:var(--cc)}.cp.c-R{--cc:#e53935}.cp.c-Y{--cc:#f6b900}.cp.c-G{--cc:#2e9e4a}.cp.c-B{--cc:#1e7ae0}
/* 扫雷 */
.g-mines{background:radial-gradient(800px 500px at 50% 0,#14564f 0,#0a2227 70%)}
.m-bar{display:flex;flex-direction:column;gap:8px;padding:0 16px}.m-me,.m-opp{display:flex;align-items:center;gap:8px}
.prog{flex:1;height:10px;border-radius:5px;background:rgba(255,255,255,.12);overflow:hidden}.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1fd48a,#7dffc8);box-shadow:0 0 10px #1fd48a;transition:width .4s}.prog.opp i{background:linear-gradient(90deg,#ff7aa8,#ffb0c8);box-shadow:0 0 10px #ff7aa8}
.m-mini{width:36px;height:auto;border-radius:3px;image-rendering:pixelated}
.m-info{display:flex;justify-content:space-between;align-items:center;padding:10px 18px}.m-time{font-size:24px;font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(30,230,150,.7)}
.m-mode{padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.12);font-size:13px;color:#fff}.m-mode.on{background:#ff4d79;box-shadow:0 0 14px rgba(255,77,121,.7)}
.m-board{flex:1;display:grid;place-items:center;padding:0 10px calc(14px + var(--safe-b));overflow:auto}
.m-grid{--cs:clamp(20px,calc((min(100vw,440px) - 52px)/var(--cols)),40px);display:grid;grid-template-columns:repeat(var(--cols),var(--cs));gap:2px;padding:6px;border-radius:14px;background:rgba(0,0,0,.35);touch-action:manipulation;user-select:none}
.mc{width:var(--cs);height:var(--cs);border-radius:6px;background:linear-gradient(145deg,#3b8f86,#1f5f5b);display:grid;place-items:center;font-weight:800;font-size:calc(var(--cs)*.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.4);cursor:pointer}
.mc.o{background:#0e2b30;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);cursor:default}.mc.f{background:linear-gradient(145deg,#c24467,#7a213c)}.mc.x{background:#7a1520;animation:glitch .3s}
.n1{color:#5ec8ff}.n2{color:#5ee19b}.n3{color:#ff7a7a}.n4{color:#9d8bff}.n5{color:#ffb35e}.n6{color:#4fe0d6}.n7{color:#ddd}.n8{color:#999}
.m-count{position:absolute;inset:0;display:grid;place-items:center;font-size:120px;font-weight:900;z-index:15;pointer-events:none;text-shadow:0 0 40px rgba(30,230,150,.9);background:rgba(5,15,20,.5)}.m-count.pop{animation:cnt .8s}@keyframes cnt{from{transform:scale(2.2);opacity:0}}
.m-lock{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);background:rgba(160,20,30,.92);padding:14px 24px;border-radius:16px;font-weight:700;z-index:16;box-shadow:0 0 40px rgba(255,40,60,.6);pointer-events:none}
/* 骗子酒馆 */
.g-liar{background:radial-gradient(800px 600px at 50% 30%,#4a2a14 0,#241208 55%,#100804 100%)}
.l-smoke{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.l-seats{padding:0 14px}.seat{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:18px;background:rgba(0,0,0,.35);box-shadow:inset 0 0 0 1px rgba(255,200,120,.15);transition:.3s}.seat.turn{box-shadow:0 0 0 2px #ffc857,0 0 24px rgba(255,200,87,.45)}
.seat .si{flex:1;min-width:0}.seat .si b{font-size:14px;display:block}.seat .cards{display:flex;margin-top:4px;min-height:34px}
.lc{--c:#ffc857;width:64px;height:92px;border-radius:9px;background:linear-gradient(160deg,#f6eed9,#e2d3ac);color:#2a1a0c;border:2px solid var(--c);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:0 5px 14px rgba(0,0,0,.5),inset 0 0 0 3px rgba(60,30,10,.08);flex:none;user-select:none}
.lc .tl,.lc .br{position:absolute;font-style:normal;font-weight:800;font-size:14px}.lc .tl{left:5px;top:3px}.lc .br{right:5px;bottom:3px;transform:rotate(180deg)}
.lc .sym{font-size:34px;line-height:1;color:var(--c);filter:drop-shadow(0 1px 0 rgba(0,0,0,.35))}.lc small{font-size:10px;opacity:.7}
.lc.back{background:linear-gradient(145deg,#7a1018,#3d070c);border-color:#d4a24a}.lc .pat{position:absolute;inset:6px;border:1.5px solid rgba(212,162,74,.7);border-radius:5px;background:repeating-linear-gradient(45deg,rgba(212,162,74,.25) 0 3px,transparent 3px 8px)}
.lc.mini{width:24px;height:34px;margin-right:-8px;border-radius:5px}.lc.mini .pat{inset:3px}
.lc.stk{width:50px;height:72px;margin-left:-34px}.lc.stk:first-child{margin-left:0}
.lc.big{width:84px;height:122px;margin-top:4px}.lc.big .sym{font-size:46px}
.lc.mine{cursor:pointer;transition:transform .18s}.l-hand .lc+.lc{margin-left:-14px}.lc.mine.sel{transform:translateY(-22px);box-shadow:0 0 0 2px #ffc857,0 0 24px rgba(255,200,87,.8)}
.l-rev{display:flex;gap:4px;align-items:center;flex-direction:column}.l-rev i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#3a2a1c;box-shadow:inset 0 0 0 1.5px #c9964a}.l-rev i.used{background:#c9964a}.l-rev{flex-direction:row;flex-wrap:wrap;width:92px;justify-content:flex-end}.l-rev small{width:100%;text-align:right;font-size:10.5px;color:#e8b878;opacity:.9}
.l-table{flex:1;margin:10px 14px;border-radius:26px;background:radial-gradient(ellipse at 50% 40%,#2f6b4a 0,#1b4430 60%,#10291c 100%);box-shadow:inset 0 0 0 6px #5a3a1e,inset 0 0 40px rgba(0,0,0,.6),0 10px 40px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:space-around;position:relative;z-index:2;min-height:0}
.l-target{display:flex;flex-direction:column;align-items:center;gap:4px}.l-target small{font-size:11px;letter-spacing:1px;opacity:.85}
.l-pile{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:120px}.l-pile small{font-size:12px;opacity:.85}.l-stack{display:flex;padding-left:34px}
.l-rev-cards{display:flex;gap:6px}.lc.flip{animation:flip .7s both}@keyframes flip{from{transform:rotateY(90deg) scale(.8);opacity:0}}
.lc.flip.ok{box-shadow:0 0 22px rgba(60,255,150,.8)}.lc.flip.bad{box-shadow:0 0 22px rgba(255,60,80,.9)}
.l-verdict{font-weight:800;font-size:16px;padding:4px 14px;border-radius:99px;animation:pop .5s .8s both}.l-verdict.liar{background:#c0172b;box-shadow:0 0 20px rgba(255,40,60,.7)}.l-verdict.honest{background:#1b8f55}
.l-hint{text-align:center;font-size:14px;padding:4px 14px;min-height:28px;color:#f3d9ad;position:relative;z-index:2}
.l-hand{display:flex;justify-content:center;padding:26px 14px 6px;position:relative;z-index:2;min-height:130px}
.l-act{display:flex;gap:10px;justify-content:center;padding:6px 14px calc(14px + var(--safe-b));min-height:64px;align-items:center;position:relative;z-index:2}.l-wait{color:#e8b878;opacity:.8}
.lb{padding:13px 22px;border-radius:14px;font-weight:800;font-size:16px;color:#2a1608;background:linear-gradient(180deg,#f3cf84,#c9964a);box-shadow:0 4px 0 #7a5420,0 8px 20px rgba(0,0,0,.4);transition:.15s}
.lb:active{transform:translateY(3px);box-shadow:0 1px 0 #7a5420}.lb:disabled{filter:grayscale(.8) brightness(.7)}
.lb.call{color:#fff;background:linear-gradient(180deg,#e0384b,#a3101f);box-shadow:0 4px 0 #5a0710,0 0 26px rgba(255,40,60,.5);flex:1}.lb.play{flex:1.3}
.lb.trig{color:#fff;background:linear-gradient(180deg,#e0384b,#a3101f);box-shadow:0 4px 0 #5a0710,0 0 30px rgba(255,40,60,.7);padding:16px 40px;font-size:19px;animation:pulse 1s infinite}@keyframes pulse{50%{box-shadow:0 4px 0 #5a0710,0 0 50px rgba(255,40,60,.95)}}
.l-stage{position:absolute;inset:0;z-index:12;display:none;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,rgba(0,0,0,.65),rgba(0,0,0,.94));backdrop-filter:blur(3px)}
.l-stage.on{display:flex}.l-stage.flashred{background:#c0101f}
.l-trig{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px}.l-trig h3{font-size:20px;color:#f3d9ad}.l-trig p{opacity:.8;font-size:13px}.l-trig h2{font-size:44px;letter-spacing:4px}
.l-trig.dead h2{color:#ff2e43;text-shadow:0 0 30px #ff2e43;animation:glitch .3s 3}.l-trig.safe h2{color:#8dffc4}.flashred .l-trig.dead h2{color:#fff}
.cylwrap{width:200px}.cyl{width:100%;filter:drop-shadow(0 10px 30px rgba(0,0,0,.7))}.cyl .body{fill:url(#none);fill:#4a4f5a;stroke:#9aa1ad;stroke-width:2}.cyl .rim{fill:#2b2f38}.cyl .h{fill:#0a0b0e;stroke:#6c727f;stroke-width:1.5}.cyl .h.used{fill:#b98a3a;stroke:#e8c27a}.cyl .axle{fill:#8b909c}
.cyl.spin{animation:cylspin 1.2s cubic-bezier(.1,.6,.2,1)}@keyframes cylspin{to{transform:rotate(1080deg)}}
.l-blood{position:absolute;inset:0;pointer-events:none;animation:fadein .2s}@keyframes fadein{from{opacity:0}}
.l-res{position:relative;z-index:3}

.avatar.photo{background:#222;overflow:hidden}.avatar.photo img{width:100%;height:100%;object-fit:cover;display:block}
.avwrap{position:relative;cursor:pointer}.avwrap .cam{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border-radius:50%;background:var(--acc);color:#fff;font-style:normal;font-size:12px;display:grid;place-items:center;box-shadow:0 0 0 2px var(--surf)}
.avprev{display:grid;place-items:center;margin:4px 0 10px}.avup{text-align:center;margin-top:10px}
.avgrid.pick{margin-top:14px}
.msgs.hasbg{background-size:cover;background-position:center}
.msgs.hasbg .time,.msgs.hasbg .sys{background:rgba(0,0,0,.38);color:#fff}
.confirm p{white-space:pre-line}
.stabs{display:flex;background:var(--surf2);border-radius:12px;padding:3px;margin:10px 0}.stabs button{flex:1;padding:8px;border-radius:10px;font-size:14px;color:var(--sub)}.stabs button.on{background:var(--surf);color:var(--text);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.search h3{font-size:18px}.sbody input{width:100%;background:var(--surf2);border-radius:12px;padding:12px 14px;margin-bottom:8px;box-shadow:inset 0 0 0 1px var(--line)}
.cal .ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cal .ch button{font-size:22px;padding:2px 14px;color:var(--acc)}
.cw,.cg{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.cw span{font-size:12px;color:var(--sub);padding:4px 0}
.cg button,.cg i{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;font-size:15px;color:var(--sub);position:relative}
.cg button.has{color:var(--text);font-weight:600}.cg button.has em{font-style:normal;font-size:9px;color:var(--acc);line-height:1}.cg button.sel{background:var(--acc);color:#fff}.cg button.sel em{color:#fff}
.dlist{margin-top:10px}.dlist .dt{font-size:13px;color:var(--sub);margin-bottom:4px}
.msgs.hasbg .time{width:fit-content;margin:12px auto 8px;padding:2px 12px;border-radius:99px}
