/* 鱼缸小镇 · 看她们玩: the visual stage (stage2.js) of the games without a table view.  Blue / white, phone first (390 px), no images:
   avatars, cards, meters and the round table are CSS + inline SVG.  Animations are one-shot (class .go) and off for reduced motion. */
.s2i{width:20px;height:20px;flex:none;display:inline-block;vertical-align:middle}
body.s2on .plain{gap:10px}
body.wp.s2on[data-view=plain]{overflow:visible}
body.s2on #pBody{gap:4px}

/* ---- avatars ---- */
.s2av{--c:#2a5bd7;flex:none;position:relative;width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font:800 15px/1 var(--font);
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.38),rgba(255,255,255,0) 46%),var(--c);box-shadow:0 0 0 2px #fff,0 2px 6px -1px rgba(28,63,154,.35)}
.s2av.xs{width:18px;height:18px;font-size:10px;box-shadow:0 0 0 1.5px #fff}
.s2av.sm{width:26px;height:26px;font-size:12px}
.s2av.lg{width:44px;height:44px;font-size:19px;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 4px 12px -3px rgba(16,30,80,.45)}
.s2av.host{background:linear-gradient(145deg,#f0b058,#d58a1e)}
.s2av.host .s2i{width:60%;height:60%;color:#fff}
.s2av.txt{background:#c5cfe4}
.s2av.crown::before{content:"";position:absolute;left:50%;top:-9px;width:16px;height:11px;transform:translateX(-50%);
  background:linear-gradient(#f5c443,#e09a12);clip-path:polygon(0 100%,0 20%,25% 60%,50% 0,75% 60%,100% 20%,100% 100%)}
.s2av.lg.crown::before{width:20px;height:13px;top:-12px}

/* ---- the hero (the head card) ---- */
body.s2on .phead{padding:14px;background:linear-gradient(135deg,#fff 55%,#e9f0ff);display:grid;gap:10px}
.s2hero{display:flex;gap:12px;align-items:center;min-width:0}
.s2hero .emb{flex:none;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#4f7df0,#2a5bd7);box-shadow:var(--shadow-sm)}
.s2hero .emb .s2i{width:28px;height:28px}
.s2hero.k-wodi .emb{background:linear-gradient(145deg,#e86f9a,#c2406f)}.s2hero.k-liar .emb{background:linear-gradient(145deg,#b48a5a,#7f5a32)}
.s2hero.k-gold .emb{background:linear-gradient(145deg,#f2c14e,#d39a12)}.s2hero.k-spy .emb{background:linear-gradient(145deg,#5d6b86,#36415a)}
.s2hero.k-candy .emb{background:linear-gradient(145deg,#f08fb4,#d55d8c)}.s2hero.k-avalon .emb{background:linear-gradient(145deg,#6b6fe6,#3d3fb8)}
.s2hero.k-quip .emb{background:linear-gradient(145deg,#3fb5d9,#1d86b3)}.s2hero.k-keeper .emb{background:linear-gradient(145deg,#4b6584,#2c3e57)}
.s2hero.k-debate .emb{background:linear-gradient(145deg,#4f7df0,#e8963a)}.s2hero.k-island .emb{background:linear-gradient(145deg,#2fb39b,#1f8f7b)}
.s2hero.k-traitors .emb{background:linear-gradient(145deg,#3b4a8a,#1b2552)}.s2hero.k-coup .emb{background:linear-gradient(145deg,#8b63cf,#5a3fa0)}
.s2hero.k-decode .emb{background:linear-gradient(145deg,#e0705c 50%,#2a5bd7 50%)}.s2hero.k-crew .emb{background:linear-gradient(145deg,#3f8ff0,#0f6fb5)}
.s2hero .ht{min-width:0}
.s2hero h1{margin:0;font-size:19px;line-height:1.25}
.s2hero p{margin:3px 0 0;color:var(--muted);font-size:12.5px}
.s2house{display:flex;flex-wrap:wrap;gap:6px}
.s2house i{font-style:normal;font-size:12px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);border-radius:999px;padding:3px 10px}
.s2rules{font-size:13px;color:var(--text-2)}
.s2rules summary{cursor:pointer;color:var(--accent);font-weight:700;font-size:12.5px;list-style:none;display:inline-flex;align-items:center;gap:4px}
.s2rules summary::-webkit-details-marker{display:none}
.s2rules summary::after{content:"▾";font-size:11px}
.s2rules[open] summary::after{content:"▴"}
.s2rules p{margin:6px 0 0;padding:9px 11px;border-radius:12px;background:#f4f7fe;line-height:1.55}
.s2result{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:14px;background:linear-gradient(90deg,#fff3d1,#fffaf0);border:1px solid #f1dfae;color:#8a5a00}
.s2result .s2i{color:#d39a12}
.s2result b{font-size:14px}

/* ---- the board ---- */
.s2board{position:sticky;top:calc(var(--wbar) + env(safe-area-inset-top) + 6px);z-index:20;background:#fff;border:1px solid var(--line);border-radius:20px;
  box-shadow:0 14px 30px -18px rgba(28,63,154,.55),0 2px 6px -2px rgba(28,63,154,.18);padding:8px 10px 10px;min-width:0}
.s2bt{display:flex;align-items:center;gap:8px;min-width:0}
.s2bt .ph{min-width:0;padding:3px 11px;border-radius:999px;background:linear-gradient(90deg,var(--accent),#3f8ff0);color:#fff;font-size:12.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s2bt .s2cnt{color:var(--muted);font-size:11.5px;white-space:nowrap}
.s2fold{margin-left:auto;flex:none;border:0;background:var(--accent-soft);color:var(--accent-deep);font:700 11.5px/1 var(--font);padding:6px 10px;border-radius:999px;cursor:pointer}
.s2board.folded .s2bd{display:none}
.s2bd{display:grid;gap:7px;margin-top:7px}
.s2w{min-width:0}

/* seat strip */
.s2seats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}
.s2seat{position:relative;display:grid;justify-items:center;align-content:start;gap:2px;min-width:0;padding:4px 1px 3px;border-radius:12px;transition:background .3s}
.s2seat b{font-size:11px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.s2seats.many .s2seat b{font-size:10px}
.s2seat.out .s2av{filter:grayscale(1);opacity:.42}
.s2seat.out b{color:var(--muted)}
.s2x{position:absolute;top:1px;left:calc(50% + 7px);width:15px;height:15px;border-radius:50%;background:#5d6b86;color:#fff;font:800 11px/15px var(--font);text-align:center;font-style:normal;box-shadow:0 0 0 1.5px #fff}
.s2seat.win{background:linear-gradient(180deg,#fff6d8,#fff)}
.s2seat.win .s2av{box-shadow:0 0 0 2px #f5c443,0 2px 8px -1px rgba(211,154,18,.6)}
.s2tag{font-style:normal;font-size:9.5px;font-weight:800;line-height:1;padding:2.5px 5px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.s2tag.bad{background:#ffe9e4;color:#c0392b}
.s2tag.god{background:#f3eefe;color:#5a3fa0;box-shadow:inset 0 0 0 1px #c9b6f2}
.s2tag.god.bad{color:#a3305f}
.s2sub{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1px 3px;font-size:10px;color:var(--text-2);max-width:100%}
.s2sub small{font-size:10px;white-space:nowrap}
.s2sub .up{color:#1f6fd1;font-weight:700}.s2sub .dn{color:#c0392b;font-weight:700}
.s2sub em.god{font-style:normal;font-size:9.5px;color:#5a3fa0;background:#f3eefe;border-radius:6px;padding:1px 4px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.s2sub .cnd{display:inline-flex;align-items:center;gap:1px;font-weight:800;color:#c2406f}.s2sub .cnd .s2i{width:11px;height:11px}
.s2sub .pt{font-weight:800;color:var(--accent-deep)}.s2sub .pt.top{color:#b07800}
.s2sub .lead{display:inline-flex;align-items:center;color:#b07800;font-weight:800}.s2sub .lead .s2i{width:11px;height:11px}
.s2sub .onteam{color:#fff;background:var(--accent);border-radius:6px;padding:0 4px}
.s2sub .coin{color:#8a6a1a;font-weight:700}

/* small shared widgets */
.s2line{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);min-width:0}
.s2line .s2i{color:var(--accent)}
.s2line b{color:var(--accent-deep)}
.s2line.sm{font-size:12px}
.s2line.big>span{display:grid;gap:1px}.s2line.big small{color:var(--muted);font-size:11.5px}
.s2meter{display:block;position:relative;height:8px;border-radius:99px;background:#e7edf9;overflow:hidden}
.s2meter i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#3f8ff0,var(--accent));transition:width .5s ease}
.s2meter.hot i{background:linear-gradient(90deg,#f5c443,#e8763a)}
.s2meter.sm{height:5px;width:70px;flex:none}
.s2dots{display:inline-flex;gap:3px;vertical-align:middle}
.s2dots i{width:7px;height:7px;border-radius:50%;background:#dbe3f3}
.s2dots i.on{background:var(--accent)}
.s2dots.miss i.on{background:#c0392b}.s2dots.got i.on{background:#1f9a7e}
.s2dots.ppl i{background:var(--accent)}

/* ---- the feed ---- */
.s2sec{display:grid;gap:7px;grid-template-columns:minmax(0,1fr);padding:2px 0 8px}
.s2rib{margin:10px 0 2px;display:grid;justify-items:center;gap:3px;text-align:center}
.s2rib b{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--accent-deep);padding:4px 14px;border-radius:999px;background:#fff;box-shadow:var(--shadow-sm);border:1px solid var(--line)}
.s2rib>span{color:var(--text-2);font-size:12px;max-width:92%}
.s2it{min-width:0}
.s2it.now{outline:2px solid var(--accent);outline-offset:3px;border-radius:14px}
.s2it.new{animation:s2in .5s ease-out}
.s2empty{text-align:center;color:var(--muted);padding:26px 0}

/* chat bubbles */
.s2msg{--c:#2a5bd7;display:flex;gap:8px;align-items:flex-start;min-width:0}
.s2msg.r{flex-direction:row-reverse}
.s2bw{display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:calc(100% - 46px)}
.s2msg.r .s2bw{align-items:flex-end}
.s2who{display:flex;align-items:center;flex-wrap:wrap;gap:3px 6px;font-size:12px;margin:0 4px 3px;min-width:0}
.s2msg.r .s2who{flex-direction:row-reverse}
.s2nm{color:var(--c);font-weight:800}
.s2nm.host{color:#b06a12}
.s2bb{margin:0;padding:8px 12px;background:#fff;background:color-mix(in srgb,var(--c) 6%,#fff);border:1px solid #e1e8f6;border-radius:4px 16px 16px 16px;box-shadow:0 2px 6px -3px rgba(28,63,154,.25);
  font-size:14.5px;line-height:1.5;color:var(--text);overflow-wrap:anywhere}
.s2msg.r .s2bb{border-radius:16px 4px 16px 16px}
.s2msg.cont{margin-top:-3px}
.s2msg.cont>.s2av{visibility:hidden;height:0}
.s2msg.cont .s2who{display:none}
.s2msg.small .s2bb{font-size:13px;padding:6px 10px}
.s2msg.do .s2bb{font-style:italic;color:var(--text-2)}
.s2msg.burst .s2bb{border:2px solid #e8763a;background:#fff8f2;font-weight:700}
.s2msg.hid .s2bb{background:#f8f4ff;border:1px dashed #b9a2ee;color:#4a3394}
.s2msg.pro .s2bb{background:#eef4ff;border-color:#c9d8fb}
.s2msg.con .s2bb{background:#fff5ea;border-color:#f6d6ae}
.s2bb .mute{color:var(--muted);font-style:italic}
.s2chip{font-style:normal;font-size:10.5px;font-weight:700;line-height:1;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);white-space:nowrap}
.s2chip.hot{background:#e8763a;color:#fff}
.s2chip.ask{background:#e8f4ff;color:#1d6fb8}.s2chip.ans{background:#eef2f7;color:#46506a}
.s2chip.claim{background:#fff3d1;color:#8a5a00}
.s2chip.split{background:#e3f5ee;color:#1f7a5f}.s2chip.grab{background:#ffe9e4;color:#c0392b}
.s2chip.pro{background:var(--accent);color:#fff}.s2chip.con{background:#e8963a;color:#fff}
.s2deal{margin-top:4px;font-size:11.5px;color:#5a3fa0;background:#f3eefe;border-radius:8px;padding:2px 8px}

/* 心里想 and the secret lines (上帝视角 only) */
.s2think{--c:#7a5bd0;display:flex;gap:6px;align-items:flex-start;margin:-2px 0 0 26px}
.s2think p{margin:0;display:flex;gap:6px;align-items:flex-start;padding:6px 10px;border-radius:14px;background:#f8f4ff;border:1px dashed #c4b0f0;color:#4a3394;font-size:12.5px;line-height:1.5;min-width:0}
.s2think p .s2i{width:16px;height:16px;color:#9a7ee0;margin-top:1px}
.s2think b{color:var(--c)}
.s2think em{font-style:normal;color:#7a5bd0;font-weight:700}
.s2secret{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:6px 10px;border-radius:12px;background:#f6f1fd;border-left:3px solid #a98be6;color:#4a3394;font-size:12.5px;line-height:1.5}
.s2secret .s2i{width:16px;height:16px;color:#a98be6}
.s2secret b.bad,.s2secret .bad{color:#c0392b}
.s2secret .wd{font-style:normal;background:#fff;border-radius:6px;padding:0 5px;margin:0 2px}
.s2secret .code{font-family:ui-monospace,Menlo,monospace;letter-spacing:1px}

/* captions */
.s2cap{justify-self:center;display:flex;align-items:center;gap:6px;max-width:94%;text-align:center;font-size:12.5px;color:var(--text-2);background:rgba(255,255,255,.72);border:1px solid #e1e8f6;border-radius:12px;padding:5px 12px;line-height:1.45}
.s2cap.hl{background:var(--accent-soft);color:var(--accent-deep);font-weight:700;border-color:var(--line-strong)}
.s2cap.sm{font-size:11.5px;padding:3px 8px;margin-top:4px}
.s2cap.prog .s2i{width:16px;height:16px;color:var(--accent)}
.s2cap.tm b{font-weight:800}.s2cap.tm.red b:first-child{color:#c94f3b}.s2cap.tm.blue b:first-child{color:var(--accent)}

/* moments */
.s2mo{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:20px;color:#fff;
  background:linear-gradient(135deg,#3f8ff0,#1c3f9a);box-shadow:0 12px 26px -14px rgba(28,63,154,.7)}
.s2mo .s2av.lg{box-shadow:0 0 0 3px rgba(255,255,255,.85)}
.s2mo-ic{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18)}
.s2mo-ic .s2i{width:26px;height:26px}
.s2mo-t{display:grid;gap:2px;min-width:0;padding-right:44px}
.s2mo-t b{font-size:15px;line-height:1.4}
.s2mo-t span{font-size:12.5px;opacity:.85}
.s2mo.mo-out{background:linear-gradient(135deg,#6e7c98,#3b465e)}
.s2mo.mo-bad{background:linear-gradient(135deg,#7a6cf0,#3d3fb8)}
.s2mo.mo-win{background:linear-gradient(135deg,#4f9bf5,#1c3f9a)}
.s2mo.mo-win .s2mo-ic{background:rgba(245,196,67,.25);color:#ffd766}
.s2mo.mo-night{background:linear-gradient(160deg,#283a7a,#0f1834)}
.s2mo.mo-night .s2mo-ic,.s2mo.mo-night::before{color:#ffe08a}
.s2mo.mo-info{background:#fff;color:var(--text);border:1px solid var(--line-strong);box-shadow:var(--shadow-sm)}
.s2mo.mo-info .s2mo-ic{background:var(--accent-soft);color:var(--accent)}
.s2stamp{position:absolute;right:12px;top:50%;font-style:normal;font-size:14px;font-weight:900;letter-spacing:1px;padding:3px 9px;border:2.5px solid currentColor;border-radius:8px;
  transform:translateY(-50%) rotate(-12deg);color:rgba(255,255,255,.92);white-space:nowrap}
.s2mo.mo-info .s2stamp{color:var(--accent)}

/* the vote card */
.s2vote{background:#fff;border:1px solid var(--line);border-radius:18px;padding:11px 12px;box-shadow:var(--shadow-sm)}
.s2vote h4,.s2swap h4,.s2ballot h4{margin:0 0 8px;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--accent-deep)}
.s2vote h4 .s2i,.s2swap h4 .s2i,.s2ballot h4 .s2i{width:17px;height:17px;color:var(--accent)}
.s2vote h4 em{font-style:normal;margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:600}
.s2vote ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.s2vote li{display:grid;grid-template-columns:26px minmax(0,62px) minmax(0,1fr) auto;align-items:center;gap:7px;padding:3px 4px;border-radius:12px}
.s2vote li.hit{background:#fff1ee}
.s2vote .vn{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s2vote .vbar{position:relative;height:16px;border-radius:8px;background:#eef2fb;overflow:hidden}
.s2vote .vbar i{display:block;height:100%;border-radius:8px;background:var(--c,var(--accent));opacity:.85;transform-origin:left}
.s2vote li.hit .vbar i{background:#e0705c;opacity:1}
.s2vote li.abst .vbar i{background:#c5cfe4}
.s2vote .vbar b{position:absolute;right:6px;top:0;font-size:11px;line-height:16px;color:var(--text)}
.s2vote .vfrom{display:flex;justify-content:flex-end;max-width:96px;flex-wrap:wrap;row-gap:2px}
.s2vote .vfrom .s2av{margin-left:-4px}
.vfoot{margin:8px 0 0;text-align:center;font-size:12.5px;font-weight:700;color:var(--text-2)}
.vfoot.out{color:#c0392b}

/* the end card */
.s2end{position:relative;overflow:hidden;display:grid;gap:10px;justify-items:center;padding:16px 14px;border-radius:22px;background:linear-gradient(160deg,#fff7df,#fff 60%);border:1px solid #f1dfae;box-shadow:0 14px 30px -18px rgba(170,120,0,.55)}
.s2end-top{display:flex;align-items:center;gap:8px;color:#8a5a00;font-size:15px}
.s2end-top .s2i{width:26px;height:26px;color:#d39a12}
.s2pod{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 16px;padding-top:6px}
.s2pod .w{display:grid;justify-items:center;gap:4px}
.s2pod .w i{font-style:normal;font-size:12px;font-weight:700}
.s2pts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.s2pts>span{display:inline-flex;align-items:center;gap:3px;padding:2px 7px 2px 3px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:11.5px}
.s2pts b{color:var(--muted)}.s2pts b.up{color:#1f6fd1}
.s2ptsn{margin:0;font-size:11px;color:var(--muted)}

/* animations: one-shot, the first time in view */
.a.go{animation:s2pop .55s cubic-bezier(.2,1.3,.4,1) both}
.s2mo.a.go::after,.s2end.a.go::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.4) 50%,transparent 65%);transform:translateX(-110%);animation:s2shine 1.1s .25s ease-out forwards;pointer-events:none}
.a.go .s2stamp{animation:s2stamp .45s .3s cubic-bezier(.2,1.6,.4,1) both}
.a.go .vbar i{animation:s2grow .8s .1s ease-out both}
.a.go .s2pc.face,.a.go .gb,.a.go .code i,.a.go .mc{animation:s2flip .55s var(--d,0ms) ease-out both}
@keyframes s2pop{from{opacity:.25;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}
@keyframes s2shine{to{transform:translateX(110%)}}
@keyframes s2stamp{from{opacity:0;transform:translateY(-50%) rotate(-12deg) scale(2.2)}to{opacity:1;transform:translateY(-50%) rotate(-12deg) scale(1)}}
@keyframes s2grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes s2flip{from{transform:rotateY(90deg);opacity:.2}to{transform:none;opacity:1}}
@keyframes s2in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes s2pulse{50%{box-shadow:0 0 0 5px rgba(42,91,215,.15)}}
@media (prefers-reduced-motion:reduce){.a.go,.a.go *,.s2it.new{animation:none!important}.a.go::after{display:none}}

/* ---- 谁是卧底 ---- */
.s2words{display:flex;align-items:center;justify-content:center;gap:10px}
.s2words .wd{display:grid;justify-items:center;gap:2px;min-width:96px;padding:8px 12px;border-radius:14px;background:var(--accent-soft);border:1px solid var(--line-strong)}
.s2words .wd.bad{background:#ffeef0;border-color:#f3c9cb}
.s2words small{font-size:11px;color:var(--muted)}.s2words b{font-size:18px;color:var(--accent-deep)}.s2words .wd.bad b{color:#c2406f}
.s2words .vs,.s2gold .vs,.s2duel .vs,.s2goldrev .vs{font-style:normal;font-weight:900;font-size:13px;color:var(--muted)}

/* ---- 间谍酒馆 ---- */
.s2spy{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}
.s2spy .loc{display:grid;justify-items:center;gap:1px;width:78px;padding:7px 4px;border-radius:14px;color:#fff;background:linear-gradient(145deg,#5d6b86,#36415a);text-align:center}
.s2spy .loc.known{background:linear-gradient(145deg,#3f8ff0,#1c3f9a)}
.s2spy .loc .s2i{width:18px;height:18px;opacity:.8}.s2spy .loc small{font-size:10px;opacity:.8}.s2spy .loc b{font-size:15px;line-height:1.2}
.s2spy .s2qa{display:grid;gap:4px;font-size:11.5px;color:var(--text-2)}

/* ---- 骗子酒馆 ---- */
.s2pc{flex:none;display:inline-grid;place-items:center;width:28px;height:40px;border-radius:5px;background:#fff;border:1.5px solid #c9d3ea;color:var(--accent-deep);font:800 15px/1 var(--font);box-shadow:0 2px 4px -2px rgba(28,63,154,.35)}
.s2pc.tgt{width:34px;height:46px;font-size:20px;border:2px solid #e3b23c;color:#8a5a00;background:linear-gradient(160deg,#fffaf0,#fff1c9)}
.s2pc.back{background:repeating-linear-gradient(45deg,#2a5bd7 0 4px,#3f6fe0 4px 8px);border-color:#fff;box-shadow:0 0 0 1px #2a5bd7,0 2px 4px -2px rgba(28,63,154,.5)}
.s2pc.mini{width:18px;height:26px;font-size:11px;border-width:1px;margin:0 1px;vertical-align:middle}
.s2pc.face.fav{width:auto;padding:0 8px;font-size:14px;color:#5a3fa0;border-color:#c9b6f2}
.s2fan{display:flex;align-items:center;margin-top:6px;padding-left:4px}
.s2fan .s2pc+.s2pc{margin-left:-16px}
.s2fan small{margin-left:8px;font-size:11.5px;color:var(--muted)}
.s2wh{display:inline-flex;gap:2px;align-items:center}
.s2wh i{width:7px;height:3px;border-radius:2px;background:#dbe2f0}
.s2wh i.on{background:#3a4560}
.s2flip{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.s2flip .s2cards{display:flex;gap:4px;perspective:400px}
.s2flip b{font-size:13.5px;padding-right:46px;color:var(--text)}
.s2flip .s2stamp{color:#1f9a7e}.s2flip.no .s2stamp{color:#c0392b}
.s2flip.no{background:#fff7f5;border-color:#f3cfc8}

/* ---- 金球 ---- */
.s2gold{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}
.s2gold .gs{display:grid;justify-items:center;gap:3px;min-width:0}
.s2gold .gs>b{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.s2gold .st{display:flex;gap:3px}
.s2gold .st i{font-style:normal;font-size:10.5px;font-weight:700;padding:1px 5px;border-radius:6px;background:#eef2f7;color:#5b6b80}
.s2gold .st i.split{background:#e3f5ee;color:#1f7a5f}.s2gold .st i.grab{background:#ffe9e4;color:#c0392b}
.s2gold .pick{font-size:13px;font-weight:900;padding:2px 10px;border-radius:999px;background:#e3f5ee;color:#1f7a5f}
.s2gold .pick.grab{background:#ffe9e4;color:#c0392b}.s2gold .pick.god{box-shadow:inset 0 0 0 1px #c9b6f2}
.s2gold .got{font-size:11px;font-weight:800;color:#8a5a00}
.s2gold .pot{display:grid;justify-items:center;width:76px;height:76px;align-content:center;border-radius:50%;color:#7a4f00;
  background:radial-gradient(circle at 35% 30%,#fff6c8,#f5c443 55%,#d39a12);box-shadow:0 6px 16px -6px rgba(211,154,18,.8),inset 0 -4px 8px rgba(160,100,0,.25)}
.s2gold .pot .s2i{width:16px;height:16px;opacity:.6}.s2gold .pot b{font-size:20px;line-height:1}.s2gold .pot small{font-size:9.5px}
.s2goldrev{display:grid;justify-items:center;gap:8px;padding:14px;border-radius:20px;background:linear-gradient(160deg,#fff7df,#fff);border:1px solid #f1dfae}
.s2goldrev .balls{display:flex;align-items:center;gap:12px;perspective:500px}
.s2goldrev .gb{display:grid;justify-items:center;gap:4px;width:74px;padding:8px 0;border-radius:18px;background:#e3f5ee;color:#1f7a5f}
.s2goldrev .gb.grab{background:#ffe9e4;color:#c0392b}
.s2goldrev .gb b{font-size:20px}
.s2goldrev>b{font-size:13.5px;color:#8a5a00;text-align:center}

/* ---- 结盟抢糖 ---- */
.s2bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;height:34px;align-items:end}
.s2bars>span{display:flex;justify-content:center;align-items:flex-end;height:100%}
.s2bars i{width:62%;height:var(--h);min-height:3px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 70%,#fff),var(--c));background-color:var(--c);transition:height .5s ease}
.s2swap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:11px 12px;box-shadow:var(--shadow-sm)}
.s2swap ol{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.s2swap li{display:grid;grid-template-columns:26px 1fr 1fr 30px 24px;align-items:center;gap:6px;padding:3px 4px;border-radius:10px;font-size:12px;color:var(--text-2)}
.s2swap li.ally{background:#fff3d1}
.s2swap .ga,.s2swap .ta{display:inline-flex;align-items:center;gap:4px}
.s2swap li b{text-align:right;font-weight:800;color:var(--muted)}.s2swap li b.up{color:#1f6fd1}.s2swap li b.dn{color:#c0392b}
.s2swap li small{text-align:right;color:var(--muted)}
.s2swap p.ally{margin:8px 0 0;display:flex;align-items:center;gap:4px;font-size:12.5px;color:#8a5a00;background:#fff8e6;border-radius:10px;padding:6px 8px}

/* ---- 阿瓦隆 ---- */
.s2quests{display:flex;align-items:center;justify-content:center;gap:0}
.s2quests .q{display:grid;justify-items:center;gap:2px}
.s2quests .q b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:900;color:var(--accent-deep);background:#fff;border:2px dashed #b9c8ea}
.s2quests .q.cur b{border:2px solid var(--accent);animation:s2pulse 1.6s infinite}
.s2quests .q.ok b{background:var(--accent);color:#fff;border:0}
.s2quests .q.fail b{background:#e0705c;color:#fff;border:0}
.s2quests .q small{font-size:10px;color:var(--muted)}
.s2quests .ln{width:22px;height:2px;background:#dbe3f3;margin-bottom:14px}
.s2quests .tries{display:grid;justify-items:center;gap:4px;margin-left:16px;padding-left:12px;border-left:1px solid var(--line)}
.s2quests .tries small{font-size:10px;color:var(--muted)}
.s2team{--c:#2a5bd7;display:grid;gap:8px;padding:11px 12px;border-radius:18px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--c);box-shadow:var(--shadow-sm)}
.s2team .hd{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2)}
.s2team .mem{display:flex;gap:12px;flex-wrap:wrap}
.s2team .mem>span{display:grid;justify-items:center;gap:2px}.s2team .mem i{font-style:normal;font-size:11px;font-weight:700}
.s2team .s2bb{font-size:13.5px}
.s2ballot{background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px 12px;box-shadow:var(--shadow-sm)}
.s2ballot h4 b{margin-left:auto;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--accent);color:#fff}
.s2ballot.no h4 b{background:#6e7c98}
.s2ballot .g{display:flex;flex-wrap:wrap;gap:8px}
.s2ballot .g>span{display:grid;justify-items:center;gap:2px}
.s2ballot .g i{font-style:normal;font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:6px;background:#e3f5ee;color:#1f7a5f}
.s2ballot .g .n i{background:#ffe9e4;color:#c0392b}
.s2quest{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:20px;background:linear-gradient(135deg,#eaf1ff,#fff);border:1px solid var(--line-strong)}
.s2quest.no{background:linear-gradient(135deg,#fff0ec,#fff);border-color:#f3cfc8}
.s2quest .ring{flex:none;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;align-content:center;color:#fff;background:var(--accent);box-shadow:0 0 0 4px #fff,0 0 0 6px var(--accent)}
.s2quest.no .ring{background:#e0705c;box-shadow:0 0 0 4px #fff,0 0 0 6px #e0705c}
.s2quest .ring b{font-size:16px}.s2quest .ring small{font-size:10px;opacity:.9}
.s2quest .mcs{display:flex;gap:5px;perspective:400px}
.s2quest .mc{width:26px;height:36px;border-radius:5px;display:grid;place-items:center;font-size:12px;font-weight:800;background:#fff;border:1.5px solid #c9d3ea;color:var(--accent-deep)}
.s2quest .mc.f{background:#3b465e;border-color:#3b465e;color:#fff}
.s2quest p{margin:6px 0 0;display:flex;align-items:center;gap:2px;font-size:12px;color:var(--text-2)}
.s2quest p>span{margin-left:6px}

/* ---- 神回复对决 ---- */
.s2prompt{display:flex;align-items:flex-start;gap:7px;padding:8px 10px;border-radius:12px;background:#f4f7fe;font-size:13px;font-weight:700;color:var(--accent-deep);line-height:1.45}
.s2prompt .s2i{width:17px;height:17px;color:var(--accent);margin-top:1px}
.s2duel,.s2final{display:grid;gap:10px;padding:12px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.s2duel .pr,.s2final .pr{display:block;font-size:15px;font-weight:800;line-height:1.45;color:var(--text);text-align:center;padding:4px 6px}
.s2final .pr small{display:block;font-size:11px;color:var(--accent);font-weight:800}
.s2duel u,.s2final u,.s2prompt u{text-decoration:none;border-bottom:2px solid var(--accent);display:inline-block;min-width:2.5em}
.s2duel .two{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:stretch}
.s2duel .s2qa{--c:#2a5bd7;position:relative;display:grid;justify-items:center;align-content:start;gap:4px;padding:10px 8px;border-radius:14px;background:#f6f9ff;background:color-mix(in srgb,var(--c) 7%,#fff);border:1px solid #e1e8f6;text-align:center}
.s2duel .s2qa .lab{position:absolute;left:8px;top:6px;font-style:normal;font-size:11px;font-weight:900;color:var(--c)}
.s2duel .s2qa b{font-size:11.5px;color:var(--c)}
.s2duel .s2qa p{margin:0;font-size:13.5px;line-height:1.45;font-weight:600}
.s2duel .vs{align-self:center}
.s2res{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) 26px;align-items:center;gap:8px;padding:10px 12px;border-radius:16px;background:#fff;border:1px solid var(--line)}
.s2res .s2rbar{position:relative;display:flex;height:18px;border-radius:9px;overflow:hidden;background:#eef2fb}
.s2res .s2rbar i{display:block;height:100%;background:var(--c);transform-origin:left}
.s2res .s2rbar i+i{opacity:.55}
.s2res .s2rbar b{position:absolute;inset:0;text-align:center;font-size:11.5px;line-height:18px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.s2res p{grid-column:1/-1;margin:0;text-align:center;font-size:12.5px;font-weight:700;color:var(--accent-deep)}
.s2res.ippon{background:linear-gradient(135deg,#fff6d8,#fff);border-color:#f1dfae}
.s2res .s2stamp{color:#d39a12;top:auto;bottom:6px;transform:rotate(-12deg)}
.a.go.s2res .s2stamp,.s2res.a.go .s2stamp{animation-name:s2stamp2}
@keyframes s2stamp2{from{opacity:0;transform:rotate(-12deg) scale(2.2)}to{opacity:1;transform:rotate(-12deg) scale(1)}}
.s2final ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.s2final li{--c:#2a5bd7;display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:12px;background:#f6f9ff;background:color-mix(in srgb,var(--c) 6%,#fff)}
.s2final li p{margin:0;font-size:13.5px;line-height:1.45}.s2final li b{color:var(--c);font-size:12px;margin-right:4px}

/* ---- 守秘人 ---- */
.s2locks{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.s2locks .lk{--c:#2a5bd7;position:relative;display:grid;justify-items:center;gap:2px;padding:7px 4px 6px;border-radius:14px;background:#f4f7fe;border:1px solid var(--line);min-width:0;text-align:center}
.s2locks .lk>b{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.s2locks .li{position:absolute;right:6px;top:6px;color:#4b6584}.s2locks .li .s2i{width:16px;height:16px}
.s2locks .lk small{font-size:10px;color:var(--muted)}
.s2locks .lk em{font-style:normal;font-size:12.5px;font-weight:800;color:var(--accent-deep)}
.s2locks .lk em.god{color:#5a3fa0}
.s2locks .lk.open{background:#fff4ef;border-color:#f3cfc8}.s2locks .lk.open .li{color:#c0392b}.s2locks .lk.open em{color:#c0392b}
.s2locks .lk .by{color:#c0392b;font-weight:700}
.s2dart{position:relative;display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.s2dart .arrow{color:#e8963a}.s2dart .arrow .s2i{width:16px;height:16px}
.s2dart p{margin:0 50px 0 4px;font-size:13px;line-height:1.45}
.s2dart .s2stamp{color:#1f9a7e}.s2dart.no .s2stamp{color:#8a94a8}
.s2dart.ok{background:linear-gradient(135deg,#eafaf4,#fff);border-color:#bfe6d6}

/* ---- 奇葩说辩论 ---- */
.s2deb{display:grid;gap:7px}
.s2deb .topic{margin:0;display:flex;gap:6px;align-items:flex-start;font-size:13.5px;font-weight:800;line-height:1.4;color:var(--text)}
.s2deb .topic .s2i{width:18px;height:18px;color:var(--accent);margin-top:1px}
.s2deb .sides{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.s2deb .sides>div{display:grid;gap:2px;padding:5px 8px;border-radius:12px;min-width:0}
.s2deb .pro{background:#eef4ff;border:1px solid #c9d8fb}.s2deb .con{background:#fff5ea;border:1px solid #f6d6ae;text-align:right}
.s2deb .sides b{font-size:12px}.s2deb .pro b{color:var(--accent)}.s2deb .con b{color:#c7701a}
.s2deb .sides small{font-size:11px;color:var(--text-2);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s2deb .sides>div>span{display:flex;gap:3px}.s2deb .con>span{justify-content:flex-end}
.s2deb .sides .win{box-shadow:0 0 0 2px #f5c443}
.s2deb .mrow{display:flex;align-items:center;gap:6px}.s2deb .mrow>small{flex:none;font-size:10.5px;color:var(--text-2);font-weight:700}.s2deb .aud{flex:none;display:flex}.s2deb .aud .s2av{margin-left:-4px}
.s2deb .meter{flex:1;position:relative;display:flex;height:20px;border-radius:10px;overflow:hidden;background:#eef2fb}
.s2deb .meter i.p{background:linear-gradient(90deg,#3f8ff0,var(--accent));transition:width .5s}.s2deb .meter i.c{margin-left:auto;background:linear-gradient(90deg,#f0b058,#e8963a);transition:width .5s}
.s2deb .meter b{position:absolute;top:0;font-size:12px;line-height:20px;color:#fff;font-weight:900}.s2deb .meter .pl{left:8px}.s2deb .meter .cl{right:8px}
.s2deb .meter small{position:absolute;left:50%;top:0;transform:translateX(-50%);display:flex;align-items:center;gap:3px;font-size:10.5px;line-height:20px;color:#fff;font-weight:700;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.s2deb .steps{display:flex;gap:4px}
.s2deb .steps i{flex:1;font-style:normal;text-align:center;font-size:11px;font-weight:700;padding:3px 0;border-radius:8px;background:#f4f7fe;color:var(--muted)}
.s2deb .steps i.done{background:var(--accent-soft);color:var(--accent-deep)}.s2deb .steps i.on{background:var(--accent);color:#fff}
.s2stand{display:grid;gap:8px;padding:11px 12px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.s2stand h4{margin:0;text-align:center;font-size:12.5px;color:var(--text-2)}
.s2stand>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.s2stand>div>span{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:6px 8px;border-radius:12px}
.s2stand>div>.pro{background:#eef4ff}.s2stand>div>.con{background:#fff5ea;justify-content:flex-end}
.s2stand .pro b{color:var(--accent);font-size:13px;margin-right:4px}.s2stand .con b{color:#c7701a;font-size:13px;margin-right:4px}

/* ---- 荒岛求生 ---- */
.s2isle{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:8px 10px;align-items:center}
.s2isle .fire{display:flex;align-items:center;gap:8px;min-width:0}
.s2isle .fl{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(180deg,#fff3e2,#ffe0bf);color:#e8763a}
.s2isle .fl .s2i{width:calc(14px + var(--p) * .2px);height:calc(14px + var(--p) * .2px)}
.s2isle .fire.won .fl{background:linear-gradient(180deg,#fff2c4,#ffd57a)}
.s2isle .fire>div{display:grid;gap:2px;flex:1;min-width:0}
.s2isle .fire small{font-size:10.5px;color:var(--muted)}
.s2isle .fire b{font-size:17px;line-height:1;color:#c7581a}.s2isle .fire b i{font-style:normal;font-size:11px;color:var(--muted)}
.s2isle .rsc{display:flex;justify-content:space-around;gap:4px}
.s2isle .rsc>span{display:grid;justify-items:center;gap:0}
.s2isle .rsc .s2i{width:16px;height:16px;color:var(--accent)}
.s2isle .rsc>span:nth-child(1) .s2i{color:#1f9a7e}.s2isle .rsc>span:nth-child(3) .s2i{color:#9a6a3a}
.s2isle .rsc b{font-size:14px;line-height:1.1}.s2isle .rsc small{font-size:9.5px;color:var(--muted)}
.s2isle .day{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-2)}
.s2isle .day .s2dots i{width:16px;height:5px;border-radius:3px}
.s2hp{display:inline-flex;gap:0}
.s2hp i{color:#d9dfec;line-height:0}.s2hp i.on{color:#e0607a}
.s2hp .s2i{width:10px;height:10px}
.s2wx{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:linear-gradient(135deg,#e6f6ff,#fff);border:1px solid #cbe6f6}
.s2wx>.s2i{width:30px;height:30px;color:#2b8fd9}
.s2wx p{margin:0;display:grid;gap:1px}.s2wx b{font-size:14px;color:#1d6fb8}.s2wx p>span{font-size:12.5px;color:var(--text-2)}
.s2job{--c:#2a5bd7;justify-self:start;display:inline-flex;align-items:center;gap:6px;margin-left:42px;margin-top:-3px;padding:4px 10px 4px 5px;border-radius:999px;background:#fff;border:1px solid #e1e8f6;font-size:12px;color:var(--text-2)}
.s2job .j{display:inline-flex;align-items:center;gap:3px;font-weight:800;color:var(--c)}
.s2job .j .s2i{width:15px;height:15px}
.s2job b{color:#1f7a5f}
.s2job.bad b{color:#c0392b}
.s2night{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;color:#e8eeff;background:linear-gradient(160deg,#283a7a,#16214a)}
.s2night .s2i{width:24px;height:24px;color:#ffe08a}
.s2night p{margin:0;display:grid;gap:1px}.s2night b{font-size:13px}.s2night p>span{font-size:12.5px;opacity:.85}

/* ---- 叛徒: the round table ---- */
.s2round{position:relative;height:150px;margin:2px 4px 0}
.s2round .tbl{position:absolute;left:14%;right:14%;top:24%;bottom:24%;border-radius:50%;display:grid;place-items:center;align-content:center;gap:0;
  background:radial-gradient(ellipse at 50% 35%,#f4f8ff,#dbe6fb);border:2px solid #c3d3f3;box-shadow:inset 0 -6px 14px rgba(28,63,154,.12)}
.s2round .tbl b{font-size:20px;line-height:1;color:#3d3fb8}.s2round .tbl small{font-size:10px;color:var(--text-2)}
.s2round .rt{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:1px;width:56px}
.s2round .rt b{font-size:9.5px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(255,255,255,.85);border-radius:4px;padding:0 2px}
.s2round .rt.out .s2av{filter:grayscale(1);opacity:.45}
.s2round .rt .mk{position:absolute;top:-3px;left:calc(50% + 6px);width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;color:#fff;background:#283a7a;box-shadow:0 0 0 1.5px #fff}
.s2round .rt .mk .s2i{width:10px;height:10px;color:#ffe08a}
.s2round .rt .mk.x{background:#5d6b86}
.s2round .s2tag{font-size:8.5px;padding:2px 4px}

/* ---- 宫斗·政变 ---- */
.s2fav{display:inline-flex;gap:2px}
.s2fav .fc{font-style:normal;width:17px;height:23px;border-radius:3px;display:inline-grid;place-items:center;font-size:7.5px;line-height:1.05;font-weight:800;writing-mode:vertical-rl;letter-spacing:-.5px}
.s2fav .fc.back{background:repeating-linear-gradient(45deg,#8b63cf 0 3px,#a07ce0 3px 6px);box-shadow:0 0 0 1px #6c49b0}
.s2fav .fc.up{background:#fff;color:#8a94a8;box-shadow:inset 0 0 0 1px #d0d7e6;text-decoration:line-through}
.s2fav .fc.god{background:#f3eefe;color:#5a3fa0;box-shadow:inset 0 0 0 1px #c9b6f2}
.s2secret .fc{font-style:normal;display:inline-block;padding:0 6px;margin:0 2px;border-radius:5px;background:#fff;color:#5a3fa0;box-shadow:inset 0 0 0 1px #c9b6f2}
.s2act{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:5px;padding:4px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:800}
.s2act .s2i{width:14px;height:14px}
.s2act small{font-size:11px;opacity:.9;margin-left:2px}
.s2act.hot{background:linear-gradient(90deg,#e8763a,#c94f3b)}
.s2act.block{background:#1f9a7e}

/* ---- 截码战 ---- */
.s2dec{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.s2dec .tm{display:grid;gap:5px;padding:7px;border-radius:14px;min-width:0}
.s2dec .tm.red{background:#fff3f0;border:1px solid #f4d0c8}.s2dec .tm.blue{background:#eef4ff;border:1px solid #c9d8fb}
.s2dec .hd{display:flex;align-items:center;justify-content:space-between;gap:4px}
.s2dec .hd b{font-size:12.5px}.s2dec .red .hd b{color:#c94f3b}.s2dec .blue .hd b{color:var(--accent)}
.s2dec .hd>span{display:flex}.s2dec .hd .s2av{margin-left:-3px}
.s2dec .tk{display:flex;gap:8px;font-size:10px;color:var(--text-2)}
.s2dec .cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
.s2dec .col{display:grid;align-content:start;gap:2px;min-height:44px;padding:3px 2px;border-radius:8px;background:#fff;min-width:0;text-align:center}
.s2dec .col i{font-style:normal;font-size:10px;font-weight:900;color:var(--muted)}
.s2dec .col em{font-style:normal;font-size:10px;font-weight:800;color:var(--accent-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s2dec .col em.god{color:#5a3fa0}
.s2dec .col small{font-size:9px;line-height:1.2;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.s2clue{display:grid;gap:8px;padding:10px 12px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.s2clue.red{border-top:3px solid #e0705c}.s2clue.blue{border-top:3px solid var(--accent)}
.s2clue .hd{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.s2clue .hd b{color:var(--text);font-size:12.5px}
.s2clue .cl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.s2clue .cl>span{display:grid;justify-items:center;gap:3px;padding:7px 4px;border-radius:12px;background:#f4f7fe;font-size:12.5px;font-weight:700;text-align:center;line-height:1.35;overflow-wrap:anywhere}
.s2clue .cl i{font-style:normal;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:900;color:#fff;background:#b9c4dc}
.s2guess{--c:#2a5bd7;justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 5px;border-radius:999px;background:#fff;border:1px solid #e1e8f6;font-size:12px;color:var(--text-2)}
.s2guess b{color:var(--c)}
.code{display:inline-flex;gap:3px;perspective:300px}
.code i{font-style:normal;width:18px;height:20px;border-radius:5px;display:inline-grid;place-items:center;background:var(--accent-soft);color:var(--accent-deep);font-weight:900;font-size:12px}
.s2code{display:grid;justify-items:center;gap:6px;padding:12px;border-radius:18px;background:linear-gradient(135deg,#eef4ff,#fff);border:1px solid #c9d8fb}
.s2code.red{background:linear-gradient(135deg,#fff3f0,#fff);border-color:#f4d0c8}
.s2code .lab{font-size:12px;font-weight:800;color:var(--text-2)}
.s2code .code i{width:32px;height:38px;font-size:20px;border-radius:9px;background:var(--accent);color:#fff}
.s2code.red .code i{background:#e0705c}
.s2code p{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:5px}
.s2code p>span{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:#e3f5ee;color:#1f7a5f}
.s2code p>span.bad{background:#ffe9e4;color:#c0392b}

/* ---- 内鬼任务队 ---- */
.s2crew{display:grid;gap:7px}
.s2crew .prog{display:flex;align-items:center;gap:8px}
.s2crew .prog>.s2i{width:30px;height:30px;padding:5px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}
.s2crew .prog>div{flex:1;display:grid;gap:2px}
.s2crew .prog small{font-size:10.5px;color:var(--muted)}
.s2crew .prog b{font-size:16px;line-height:1;color:var(--accent-deep)}.s2crew .prog b i{font-style:normal;font-size:11px;color:var(--muted)}
.s2crew .rooms,.s2map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.s2crew .rm,.s2map>span{display:grid;justify-items:center;gap:3px;padding:5px 2px;border-radius:10px;background:#f4f7fe;border:1px solid var(--line);min-width:0}
.s2crew .rm b,.s2map b{font-size:11px;color:var(--text-2)}
.s2crew .rm small,.s2map small{font-size:10px;color:var(--muted)}
.s2crew .rm>span{display:flex;flex-wrap:wrap;justify-content:center}
.s2crew .rm.broken{background:#fff1ee;border-color:#f3cfc8}.s2crew .rm.broken b{color:#c0392b}
.s2crew .rm.broken b::after{content:" 坏了";font-size:9.5px}
.s2map{padding:8px;border-radius:14px;background:#fff;border:1px solid var(--line)}

/* ---- 鱼写的游戏 / 小活动 ---- */
.s2dice{--c:#2a5bd7;justify-self:start;display:inline-flex;align-items:center;gap:7px;margin-left:42px;padding:4px 12px 4px 5px;border-radius:999px;background:#fff;border:1px solid #e1e8f6;font-size:12px;color:var(--text-2)}
.s2dice .die{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#fff;border:2px solid var(--c);color:var(--c);font-weight:900}
.s2dice.ok b{color:#1f7a5f}
.s2score{justify-self:center;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:6px 10px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:12px}
.s2score .s2i{width:16px;height:16px;color:#d39a12}
.s2score>span{display:inline-flex;align-items:center;gap:3px}
.s2score b{color:var(--accent-deep)}

/* ---- 赛后奖杯 (restyled) ---- */
body.s2on #awards{background:linear-gradient(160deg,#fff7df,#fff 55%);border-color:#f1dfae}
body.s2on .awl li{background:#fff;border-color:#f1dfae;box-shadow:0 2px 8px -4px rgba(170,120,0,.4)}
body.s2on .awt{background:linear-gradient(135deg,#ffe28a,#f5c443);color:#7a4f00}
.s2it>.s2words{padding:12px;background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow-sm)}

.s2line .clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.s2line.big{gap:10px}.s2line.big b{font-size:14px}
.s2clue .cl i.on{background:var(--accent)}.s2clue.red .cl i.on{background:#e0705c}
.s2flip>.s2cards{flex:none}
.s2secret>span{flex:1;min-width:0}

/* ---- the beach tables ---- */
.s2volley{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.s2volley span{display:grid;justify-items:center;min-width:76px;padding:6px 10px;border-radius:14px;color:#fff}
.s2volley .A{background:linear-gradient(145deg,#3f8ff0,#2a5bd7)}.s2volley .B{background:linear-gradient(145deg,#f0a04f,#e0782f)}
.s2volley small{font-size:10.5px;opacity:.9}.s2volley b{font-size:26px;line-height:1}.s2volley>i{font-style:normal;font-weight:900;color:var(--muted)}
.s2volley em{font-style:normal;font-size:11px;color:var(--muted)}
.s2sub .vt{font-weight:800}.s2sub .vt.A{color:#2a5bd7}.s2sub .vt.B{color:#e0782f}
.s2rally>.s2av{flex:none}
.s2rally{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:12.5px}
.s2rally.A{border-left:4px solid #2a5bd7}.s2rally.B{border-left:4px solid #e0782f}
.s2rally>span{flex:1;min-width:0}.s2rally i{font-style:normal;font-size:11px;color:var(--muted)}.s2rally .sc{font-size:14px;color:var(--accent-deep)}
.s2castle{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:18px;background:linear-gradient(160deg,#fff7e6,#fff);border:1px solid #f1dfae}
.s2castle .cs{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#f6e3b8;color:#a87a2a}
.s2castle .cs .s2i{width:26px;height:26px}.s2castle p{margin:0;font-size:14px;line-height:1.5}
.s2find{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 5px;border-radius:999px;background:#fff;border:1.5px solid #dbe3f3;font-size:12.5px}
.s2find img{width:28px;height:28px}.s2find.r-rare{border-color:#a98be6}.s2find.r-legend{border-color:#e3b23c;background:#fff8e3}
.s2msg.fire .s2bb{background:#fff4ea;border-color:#f6d6ae}
.s2sky{display:grid;place-items:center;min-height:56px;border-radius:16px;color:#fff;font-size:14px;background:linear-gradient(180deg,#ffd27a,#f5a14a)}
.s2sky.red{background:linear-gradient(180deg,#ff9a6b,#d9485f)}.s2sky.dusk{background:linear-gradient(180deg,#6a5be0,#283a7a)}
.s2hero.k-volley .emb,.s2hero.k-castle .emb,.s2hero.k-shells .emb{background:linear-gradient(145deg,#f0c27a,#d9963a)}
.s2hero.k-bonfire .emb{background:linear-gradient(145deg,#f08a4f,#c94f3b)}.s2hero.k-sunset .emb{background:linear-gradient(145deg,#ff9a6b,#6a5be0)}

.s2teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:8px 10px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.s2teams .tm{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.s2teams .tm.B{justify-content:flex-end}
.s2teams .tm b{font-size:12px}.s2teams .tm.A b{color:#2a5bd7}.s2teams .tm.B b{color:#e0782f}
.s2teams>i{font-style:normal;font-weight:900;color:var(--muted);font-size:12px}
.s2teams p{grid-column:1/-1;margin:0;font-size:12.5px;color:var(--text-2);text-align:center}
.s2find.none{color:var(--muted);background:#f5f6f8}
