[hidden]{display:none!important}
@font-face{font-family:Khmer;src:url('/static/Khmer.ttf')}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 0,#371333,transparent 60%),#08121d;color:#e7efee;font-family:system-ui,Khmer,sans-serif;min-height:100dvh;padding:env(safe-area-inset-top) 10px max(12px,env(safe-area-inset-bottom));overflow-x:hidden}header{display:flex;align-items:center;gap:7px;height:65px}header div{flex:1;min-width:0}small{font-size:9px;letter-spacing:2px;color:#e4b77d}h1{font-size:18px;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button,select{font:inherit;color:inherit;border:1px solid #335a60;background:#17313c;border-radius:10px;padding:10px;min-height:42px;touch-action:manipulation}button:active{transform:scale(.96)}button:disabled{opacity:.4}select{max-width:70px;font-size:12px}.icon{background:transparent}#connection{font-size:10px;color:#6cdcc6;text-align:center;min-height:19px;letter-spacing:1px}.felt{position:relative;width:100%;height:340px;margin:3px auto 12px;background:radial-gradient(ellipse,#11705b,#064335 70%);border:9px solid #3e302f;border-radius:47%;box-shadow:inset 0 0 0 2px #ad8c5c,inset 0 0 30px #001c19,0 0 23px #b43a6d42,0 8px 25px #0009}.felt:before{content:'';position:absolute;inset:9px;border:1px dashed #b09b6b77;border-radius:48%;pointer-events:none}#stage{position:absolute;top:24%;left:20%;width:60%;text-align:center;font-size:11px;color:#b1d5c6}#pot{position:absolute;top:34%;left:22%;width:56%;text-align:center;color:#ffdb8e;font-weight:700;font-size:19px;text-shadow:0 0 10px #e0b76188}#board{position:absolute;top:47%;left:18%;width:64%;display:flex;flex-wrap:wrap;gap:5px;justify-content:center;align-items:center}.boardrow{display:flex;gap:3px;align-items:center}.boardrow label{font-size:10px;position:absolute;transform:translateY(-35px)}.card{width:58px;height:83px;padding:0;border:0;border-radius:6px;box-shadow:0 3px 6px #0009;background:#f3efdc;flex-shrink:0;transition:transform .17s,filter .17s;overflow:hidden;position:relative;animation:none}.card img{width:100%;height:100%;object-fit:fill;pointer-events:none}.card.selected{transform:translateY(-17px);outline:2px solid #66ffe0;filter:drop-shadow(0 0 6px #5dfed8)}.dealing .card{animation:deal .35s both}#board .card{width:34px;height:49px;min-height:0;animation:flip .45s both}.seat{position:absolute;width:76px;min-height:58px;transform:translate(-50%,-50%);text-align:center;border-radius:12px;border:1px solid #627276;background:#111e2ef5;padding:5px 3px;box-shadow:0 4px 9px #0007;z-index:3}.avatar{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#dcc08c;color:#142229;font-size:12px;float:left;margin:0 3px 3px 0}.seat.bot .avatar{background:#6cddc8}.seat b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat small{display:block;font-size:8px;letter-spacing:0;color:#bed4d1;clear:both}.seat em{font-size:9px;font-style:normal;color:#e7bc76}.seat.current{outline:2px solid #66ffe0;box-shadow:0 0 14px #3cffc966}.seat.winner{border-color:#ffdc69;animation:winner 1s infinite alternate}#timer{position:absolute;left:50%;top:68%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:conic-gradient(#66ffe0 var(--progress,100%),#193c38 0);display:grid;place-items:center;z-index:2}#timer span{background:#0b2c2b;border-radius:50%;width:27px;height:27px;text-align:center;line-height:27px;font-size:11px}#hand{border-top:1px solid #26454d;padding-top:9px;min-height:125px}#handtitle{font-size:11px;color:#b6d4d0;padding:0 3px 18px}#cards{display:flex;justify-content:center;padding:5px 0 8px;min-height:84px}#cards .card+.card{margin-left:var(--overlap,-29px)}#rows{display:flex;gap:5px;margin-bottom:12px}.row{flex:1;min-width:0;border:1px solid #375253;background:#112b2b;border-radius:9px;padding:7px 2px;font-size:10px;text-align:center;min-height:83px}.row.active{border-color:#6effd3;background:#17493f}.row .rowcards{display:flex;justify-content:center;margin-top:6px}.row .card{width:29px;height:42px;min-height:0;margin-left:-7px}.row .card:first-child{margin-left:0}#actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}#actions button{font-size:12px;min-width:0;background:linear-gradient(#214852,#18343d)}#actions button.primary{background:linear-gradient(#ba8c48,#765729);border-color:#e7bf79}#actions button.danger{border-color:#b7677e}#chips{margin-top:8px;padding:10px;border:1px solid #49664f;border-radius:12px;background:#122b30}#chips label{font-size:12px;display:block}input[type=range]{width:66%;accent-color:#75e2c2;vertical-align:middle}#chipapply{float:right;font-size:12px;padding:7px}#notice{min-height:20px;text-align:center;font-size:11px;color:#f1bd9e;margin:9px 0}footer{font-size:9px;color:#829d9c;text-align:center;line-height:1.7}dialog{max-width:94%;max-height:85vh;color:#dcebea;background:#112330;border:1px solid #638e89;border-radius:18px}dialog p{white-space:pre-wrap;font-size:13px;line-height:1.65}dialog::backdrop{background:#000a}#wheel{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:88px;height:88px;border:6px solid #c9a164;border-radius:50%;background:repeating-conic-gradient(#a6324b 0deg 9deg,#172a2c 9deg 18deg);display:grid;place-items:center;color:#fff0ab;text-shadow:0 1px 4px black;font-size:31px;font-weight:bold;box-shadow:0 0 20px #061d16}#wheel.spin{animation:spin 3s linear infinite}#celebrate{pointer-events:none;position:absolute;inset:-7px;border-radius:47%}.finished #celebrate{border:3px solid #f9d777;box-shadow:0 0 23px #ffc67688;animation:winner .8s infinite alternate}.finished #stage{color:#ffe6a3}#main.hub .felt,#main.hub #hand{display:none}.hub #actions{grid-template-columns:1fr}@keyframes deal{from{opacity:0;translate:0 -25px;rotate:-6deg}to{opacity:1;translate:0 0;rotate:0}}@keyframes flip{from{transform:rotateY(90deg)}to{transform:rotateY(0)}}@keyframes winner{to{box-shadow:0 0 19px #f5c15d99}}@keyframes spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:500px){body{max-width:460px;margin:auto}.felt{height:380px}}

.revealhand{border-top:1px solid #41615e;padding:10px 0}.revealrow{display:flex;gap:4px;margin-top:5px;justify-content:center}.revealrow .card{width:35px;height:50px;min-height:0}.seat .actionstate{font-size:8px;letter-spacing:0;color:#ffd384}

#handdetail{text-align:center;color:#f3ce94;font-size:12px;min-height:18px}.felt[data-game=holdem] .seat{font-size:8px}

#entryinfo{font-size:12px;text-align:center;color:#f1d19a}#actions button.chosen{outline:2px solid #6effd3}.revealrow .card{animation:flip .45s both}

#chips{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}#chips label{grid-column:1/-1}#chiprange{width:100%}#chipapply{float:none;min-width:60px}footer{position:sticky;bottom:0;background:#08121df2;padding:5px 3px;z-index:10}

.boardrow{position:relative}.boardrow label{left:50%;top:-14px;transform:translateX(-50%);white-space:nowrap}#table[data-game=baccarat] #board{top:51%;left:13%;width:74%;gap:9px}
/* Party adapters keep engine timing/turns authoritative. No fabricated countdown. */
.partytable{height:350px}.partytable #stage{top:25%;left:20%;width:60%;font-size:10px}.partytable .seat{width:72px}.partytable.manyseats{height:430px}.partytable.manyseats .seat{width:48px;min-height:55px;padding:3px 1px}.partytable.manyseats .avatar{display:none}.partytable.manyseats .seat b{font-size:8px}.partytable.manyseats .seat small,.partytable.manyseats .seat em{font-size:7px}.partytable.manyseats #stage{top:26%}#partycore{position:absolute;left:24%;width:52%;top:34%;height:34%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px}.partyhero{font-size:60px;line-height:1.15;filter:drop-shadow(0 0 14px #71e1ca66);animation:party-pop .35s both}.party-subtitle{color:#ffe3a0;font-size:12px;text-align:center;max-width:180px;white-space:normal;overflow-wrap:anywhere}.die{width:43px;height:43px;min-width:43px;background:linear-gradient(135deg,#fffbed,#d1cbbb);border:2px solid #f5edcb;border-radius:9px;box-shadow:4px 5px 0 #8c897b,5px 8px 10px #0008,inset 0 0 9px #ffffff;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px;padding:6px;color:#334043;font-size:24px;text-align:center;align-items:center;justify-items:center;animation:dice-land .5s both}.pip{display:block;border-radius:50%;width:7px;height:7px;background:#233134;box-shadow:inset 1px 1px 2px #000b}.pip:first-child{background:#ad243f}.empty{visibility:hidden}.dice-hero{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;font-size:12px}.roll-item{display:flex;align-items:center;gap:3px;flex-direction:column}.roll-item small{max-width:50px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:8px;letter-spacing:0}.private-cup,.dice-row{display:flex;justify-content:center;gap:10px}.private-cup{padding:2px 0 10px}.private-cup .die{width:43px;min-width:43px}.cup-reveal{padding:8px 0;border-bottom:1px solid #446b61}.cup-reveal b{display:block;font-size:12px;margin-bottom:12px}#partycontent{padding:0 4px;text-align:center;max-width:100%}.partyhint{font-size:10px;line-height:1.7;color:#8fada5}.prompt-card{border:1px solid #9b7958;border-radius:14px;background:linear-gradient(135deg,#24463f,#162b39);box-shadow:0 0 15px #92d0aa12;padding:12px 13px;animation:flip .35s both}.prompt-card p,.result-card{white-space:pre-line;font-size:13px;line-height:1.7;text-align:left;margin:0;overflow-wrap:anywhere}.result-card{border-color:#dbc47c}.secret-word{width:100%;min-height:85px;max-width:320px;border:1px solid #9e83b4;background:repeating-linear-gradient(45deg,#243348 0 6px,#1c293c 6px 12px);font-size:14px}.secret-word.revealed{background:linear-gradient(135deg,#fff4d6,#c2d2bf);color:#153d36;font-size:25px;font-weight:bold;animation:flip .35s both}.own-gesture{font-size:40px;letter-spacing:10px}.gesture-button span{display:block;font-size:30px}.gesture-duel{display:flex;font-size:43px;gap:15px}.gesture{display:flex;align-items:center;flex-direction:column}.gesture small{font-size:9px;letter-spacing:0;max-width:65px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.frog-rhyme{border-radius:18px;background:radial-gradient(ellipse,#245b46,#153b35);border:1px solid #76a76b;padding:12px;display:flex;flex-direction:column;gap:8px;color:#ecf0d7;font-size:20px;animation:party-pop .4s both}.number-strip{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.number-ticket{width:48px;padding:5px 2px;background:#efe0bd;color:#263c33;border-radius:7px;display:flex;flex-direction:column;animation:flip .4s both}.number-ticket b{font-size:24px}.number-ticket small{font-size:8px;max-width:44px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#384a45;letter-spacing:0}.spy-result{display:flex;flex-direction:column;gap:6px;padding:10px;color:#efd28f}.partytable~#hand #cards{min-height:0}.partytable~#hand{min-height:50px}.partytable~#hand #handtitle{padding-bottom:7px}.partytable~#actions{grid-template-columns:repeat(3,minmax(0,1fr))}@keyframes dice-land{0%{transform:translateY(-13px) rotate(-15deg)}45%{transform:translateY(2px) rotate(8deg)}100%{transform:translateY(0) rotate(0)}}@keyframes party-pop{from{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
.all-rolls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding:8px 0 14px}
#actions.liars-actions{grid-template-columns:repeat(24,minmax(0,1fr));gap:5px}#actions.liars-actions button{grid-column:span 8;padding:5px 2px;min-height:40px;font-size:11px}#actions.liars-actions .bid-quantity{grid-column:span 3;font-size:16px}#actions.liars-actions .bid-face{grid-column:span 4;display:grid;place-items:center}#actions.liars-actions .die{width:28px;height:28px;min-width:28px;border-radius:6px;padding:3px;gap:2px;box-shadow:2px 2px 0 #8c897b;animation:none}#actions.liars-actions .die .pip{width:4px;height:4px}

#enterdialog{width:min(360px,94vw);padding:22px 18px 16px;text-align:center;border-color:#c9a164}#enterdialog h2{margin:0 0 10px;color:#ffd879;letter-spacing:1px}#enterdialog p{margin:0 0 16px;text-align:left}#enterok{width:100%;background:linear-gradient(#ba8c48,#765729);border-color:#e7bf79}

.felt[data-game=sicbo] #board{top:44%;gap:12px}.felt[data-game=sicbo] .die{width:47px;height:47px;min-width:47px}.die.rolling{animation:dice-land .35s infinite alternate}.felt[data-game=zjh] #pot{font-size:24px}.felt[data-game=blackjack] #board .card{width:48px;height:69px}.felt[data-game=pdk] #board{width:68%;left:16%}.felt[data-game=pdk] #board .card{margin-left:-9px}.felt[data-game=pdk] #board .card:first-child{margin-left:0}

.felt[data-game=pdk] #board,.felt[data-game=blackjack] #board{flex-wrap:nowrap;top:42%}.felt[data-game=pdk] #board .card+.card,.felt[data-game=blackjack] #board .card+.card{margin-left:var(--board-overlap,0px)}.felt[data-game=blackjack] #timer{top:70%}

.felt[data-game=sicbo]~#hand{min-height:48px}.felt[data-game=sicbo]~#hand #cards{min-height:0;padding:0}

.party-spin{animation:spin 1.1s linear infinite}
.bingo-card{display:flex;flex-direction:column;gap:6px;align-items:center;padding:6px 0 10px}
.bingo-row{display:flex;gap:6px}
.bingo-cell{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;background:#17343c;border:1px solid #3e6a6f;font-size:16px}
.bingo-cell.marked{background:linear-gradient(#ba8c48,#765729);border-color:#e7bf79;color:#fff8e4}
.idiom-input{width:min(280px,92%);margin:8px auto;display:block;background:#122b30;color:#e7efee;border:1px solid #49664f;border-radius:10px;padding:10px;font:inherit}
.tap-strip{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:8px 0}

.partytable.boardgame{height:450px}
.partytable.boardgame #partycore{left:6%;width:88%;top:12%;height:76%;gap:4px}
.partytable.boardgame .seat{width:58px;min-height:50px}
.go-wrap,.xq-wrap,.cc-wrap,.jq-wrap,.ds-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;filter:none;font-size:12px}
.go-board{display:grid;grid-template-columns:repeat(15,1fr);width:min(300px,100%);aspect-ratio:1;background:#d7b56c;border:2px solid #6a4520;box-shadow:inset 0 0 0 1px #c4a056;padding:3px}
.go-cell{min-height:0;padding:0;border:0;border-radius:0;background:transparent;position:relative}
.go-cell:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#5c3b16;transform:translateX(-50%)}
.go-cell:after{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:#5c3b16;transform:translateY(-50%)}
.go-cell .stone{position:relative;z-index:1;width:76%;height:76%;border-radius:50%;display:block;margin:auto;box-shadow:1px 1px 2px #0006}
.go-cell.black .stone{background:radial-gradient(circle at 35% 30%,#555,#111)}
.go-cell.white .stone{background:radial-gradient(circle at 35% 30%,#fff,#d8d2c4)}
.go-cell.last{outline:1px solid #c0392b;outline-offset:-1px}
.xq-board{display:flex;flex-direction:column;width:min(300px,100%);aspect-ratio:9/10;background:#f3d6a2;border:2px solid #8a3b28}
.xq-row{display:grid;grid-template-columns:repeat(9,1fr);flex:1}
.xq-row.river{border-bottom:6px solid #e7c68a}
.xq-cell{min-height:0;padding:0;border:1px solid #8a4a2a33;border-radius:0;background:transparent;font-size:12px}
.xq-piece{display:grid;place-items:center;width:86%;height:86%;margin:auto;border-radius:50%;border:1px solid currentColor;background:#fbf3dd;font-weight:700;line-height:1}
.xq-piece.red{color:#b42323}
.xq-piece.blk{color:#1c2430}
.xq-cell.selected{background:#f0c45a55}
.xq-cell.legal{box-shadow:inset 0 0 0 2px #1f8a5b}
.xq-cell.last{background:#e0704028}
.partytable.fishtable{height:min(70dvh,560px);background:linear-gradient(#0a4a62,#03141c);border:2px solid #1b5364;border-radius:18px;box-shadow:inset 0 0 42px #02141c,0 10px 28px #0008}
.partytable.fishtable:before{display:none}
.partytable.fishtable #partycore{inset:0;left:0;width:100%;top:0;height:100%;gap:0}
.partytable.fishtable #stage,.partytable.fishtable #pot,.partytable.fishtable #board,.partytable.fishtable #timer{display:none}
.partytable.fishtable .seat{display:none}
.partytable.fishtable #celebrate{border-radius:18px}
.fish-wrap{width:100%;height:100%;position:relative;display:flex;align-items:stretch;justify-content:center;filter:none;animation:none;font-size:0}
#fishtank{width:100%;height:100%;border-radius:16px;display:block;touch-action:none;background:#041c28;box-shadow:inset 0 0 28px #021016}
.fish-hud{position:absolute;left:8px;right:8px;bottom:8px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:5;gap:8px}
.fish-hud .cluster{pointer-events:auto;display:flex;gap:6px;align-items:center;background:#0c2430d8;border:1px solid #3a7482;border-radius:12px;padding:4px}
.fish-hud button{min-height:36px;min-width:36px;padding:6px 10px;border-radius:10px;background:#143844;border:1px solid #4a8a96;color:#e8f7ff;font-size:13px}
.fish-hud button.on{background:linear-gradient(#ba8c48,#765729);border-color:#e7bf79;color:#fff8e4}
.fish-hud .level{color:#ffe08a;font-weight:700;min-width:36px;text-align:center;font-size:14px}
.partytable.fishtable~#hand{min-height:42px}
.fish-rank{text-align:left;max-width:320px;margin:8px auto;font-size:13px;line-height:1.7}
@media(min-width:500px){.partytable.fishtable{height:min(70dvh,580px)}}
.partytable.fishtable::after,.partytable.fishtable.fx-settled::after{border-radius:16px!important;opacity:.18}
.partytable.fishtable.fx-settled::after{border-color:#7ad7e0;opacity:.28}
.partytable.fishtable .fx-particles{border-radius:16px}
.partytable.drawtable{height:430px}
.partytable.drawtable #partycore{left:8%;width:84%;top:16%;height:70%;gap:4px}
.partytable.drawtable .seat{width:62px;min-height:52px}
.draw-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
#drawpad{width:100%;height:100%;border-radius:16px;display:block;touch-action:none;background:#f4efe2;box-shadow:inset 0 0 0 1px #c9b89a}
.hilo-hero{font-size:72px;font-weight:700;color:#ffe3a0;text-shadow:0 0 18px #e7c56a66}
.guess-input{width:min(280px,92%);margin:8px auto;display:block;background:#122b30;color:#e7efee;border:1px solid #49664f;border-radius:10px;padding:10px;font:inherit}
.guess-list{font-size:12px;line-height:1.6;color:#c9ddd6;text-align:left;max-width:320px;margin:8px auto}

.seat.dead{opacity:.42;filter:grayscale(.75)}
.quest-track{display:flex;gap:7px;justify-content:center;align-items:center}
.quest-pip{width:22px;height:22px;border-radius:50%;border:2px solid #c9a164;background:#17313c;color:#ffe3a0;font-size:10px;display:grid;place-items:center}
.quest-pip.ok{background:#2f8a5b;border-color:#7ee0a8}
.quest-pip.fail{background:#8a2f44;border-color:#e07e8a}
.quest-pip.now{box-shadow:0 0 10px #66ffe0}
.deduce-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0}
.pick-chip{min-width:64px}
.pick-chip.chosen{outline:2px solid #66ffe0;background:linear-gradient(#214852,#1a5a4a)}

.ktv-title{font-size:20px;font-weight:700;color:#ffe3a0;margin:0 0 6px}
.queue-list{font-size:12px;line-height:1.7;color:#c9ddd6;text-align:left;max-width:320px;margin:8px auto}
.rate-row{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:8px 0}
.felt[data-game=mahjong]{background:radial-gradient(ellipse at 50% 42%,#1a8d6a,#0a5340 58%,#06352b);border:10px solid #6b4528;box-shadow:inset 0 0 0 3px #d4b07a,inset 0 0 38px #01241e,0 0 22px #b43a6d50,0 10px 28px #000a}
.felt[data-game=mahjong]:before{border-color:#e0c38866}
.mj-hero{min-height:92px;display:flex;align-items:center;justify-content:center;gap:6px}
.mj-tile{--mj-w:46px;--mj-h:64px;width:var(--mj-w);height:var(--mj-h);min-width:var(--mj-w);min-height:0;padding:0;border:0;background:transparent;display:inline-block;position:relative;vertical-align:bottom;border-radius:0;line-height:0;font-size:0;color:inherit;filter:drop-shadow(1.5px 3px 2.6px #00000070);transition:transform .16s ease,filter .16s ease;user-select:none;-webkit-user-select:none}
.mj-shell{display:block;width:100%;height:100%;background:linear-gradient(145deg,#4ec98a,#1a7a52 42%,#0c4a35 78%,#083528);border-radius:8px;padding:1.5px 3.5px 6px 1.5px;box-shadow:inset -1px -2px 0 #05261c,inset 1px 1px 0 #5ed49a55}
.mj-face{display:block;width:100%;height:100%;background:linear-gradient(180deg,rgba(255,255,255,.62) 0 10%,transparent 24%),repeating-linear-gradient(115deg,transparent 0 9px,rgba(150,128,90,.03) 9px 10px),linear-gradient(165deg,#fffef6 0%,#f4ead6 58%,#e6d7bb 100%);border-radius:5px;border:1px solid #cfc3a6;box-shadow:inset 0 1.6px 0 #fffef8,inset 0 -1.6px 1px #cbb996aa,inset 1px 0 0 #fff7,inset -1px 0 1px #d4c7a655;overflow:hidden}
.mj-face svg{width:100%;height:100%;display:block;shape-rendering:geometricPrecision}
.mj-tile.back .mj-face{background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 38%),repeating-linear-gradient(135deg,rgba(255,220,150,.08) 0 2px,transparent 2px 6px),radial-gradient(ellipse at 35% 28%,#1d7a58,#0c4a36 72%);border-color:#0a3d2c;box-shadow:inset 0 1.5px 0 #7fd9ae55,inset 0 -2px 2px #031a14}
button.mj-tile{cursor:pointer}
.mj-tile.mj-wall{--mj-w:62px;--mj-h:86px}.mj-tile.last{--mj-w:64px;--mj-h:88px;filter:drop-shadow(0 0 8px #66ffe0aa) drop-shadow(1.5px 4px 4px #0008)}
.mj-tile.last .mj-shell{box-shadow:inset -1px -2px 0 #05261c,inset 1px 1px 0 #5ed49a55,0 0 0 2px #66ffe0}
.mj-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 2px;padding:12px 0 18px;max-width:390px;margin:0 auto}
.mj-hand .mj-tile{--mj-w:50px;--mj-h:70px}.mj-hand .mj-shell{padding:2px 4px 6.5px 1.5px}
.mj-hand .mj-tile.drawn{margin-left:10px;transform:translateY(-14px);z-index:2;filter:drop-shadow(0 8px 8px #0007) drop-shadow(0 0 8px #7dffd6cc)}
.mj-hand .mj-tile:focus-visible,.mj-hand .mj-tile.selected,.mj-hand .mj-tile:active{transform:translateY(-14px);z-index:2;filter:drop-shadow(0 8px 8px #0007) drop-shadow(0 0 8px #7dffd6cc)}
.mj-rivers{max-width:100%;margin:6px auto;text-align:left}
.mj-river{display:flex;flex-wrap:wrap;gap:3px;align-items:center;margin:6px 0}
.mj-river small{width:64px;color:#9bb8b2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.mj-river .mj-tile,.mj-meld .mj-tile{--mj-w:24px;--mj-h:33px;filter:drop-shadow(1px 2px 1.5px #0005)}
.mj-river .mj-shell,.mj-meld .mj-shell{padding:1px 2px 3.5px 1px;border-radius:4px}
.mj-river .mj-face,.mj-meld .mj-face{border-radius:3px}
.mj-meld{display:inline-flex;gap:2px;margin-left:6px;padding-left:6px;border-left:1px solid #49664f}
.mj-rack{display:inline-flex;align-items:flex-end;margin:0 4px 0 0}
.mj-rack .mj-tile{--mj-w:20px;--mj-h:28px;margin-right:-11px;filter:drop-shadow(.5px 1px 1.2px #0006)}
.mj-rack .mj-shell{padding:1px 1.5px 3px .5px;border-radius:3px}
.mj-sheet{display:flex;flex-direction:column;gap:14px;padding:12px;background:#06352b}
.mj-sheet-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.mj-sheet-item{display:flex;flex-direction:column;align-items:center;gap:4px;width:78px}
.mj-sheet-item .mj-tile{--mj-w:68px;--mj-h:94px}
.mj-sheet-item small{color:#d5e8df;font-size:11px;letter-spacing:0}

#promo{margin:6px 0 8px;padding:8px 10px;border-radius:10px;border:1px solid #c9a164;background:linear-gradient(135deg,#3a2a16,#1c2a24);color:#ffe3a0;font-size:12px;text-align:center;line-height:1.5;letter-spacing:.2px}

/* Shared mobile tap polish: Telegram WebView paints a grey highlight on buttons,
   and disabling the hand while a pick is in-flight applied button:disabled{opacity:.4}
   plus filter:drop-shadow on top of box-shadow — that stack looked like a buggy shadow. */
html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
button,a,.card,.mj-tile{-webkit-tap-highlight-color:transparent}
#hand,#cards,#rows{overflow:visible}
button.card:active{transform:none}
button.card.selected:active,.card.selected{transform:translateY(-17px);outline:2px solid #66ffe0;filter:none;box-shadow:0 10px 16px #0005,0 0 0 1px #66ffe099,0 0 12px #5dfed84d;z-index:3}
button.card:disabled,#cards button:disabled,#rows button.card:disabled{opacity:1}

#fronts{position:absolute;inset:0;pointer-events:none;z-index:4}
.play-front{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;max-width:46%;z-index:4}
.play-front .front-row{display:flex;justify-content:center;align-items:flex-end}
.play-front .card{width:26px;height:37px;min-height:0;margin-left:-9px;box-shadow:0 2px 4px #0007}
.play-front .card:first-child{margin-left:0}
.play-front.to-beat{z-index:5}
.play-front.to-beat .card{outline:2px solid #ffdc69;box-shadow:0 0 10px #ffdc6977}
.play-front .pass-label{background:#12282cf2;border:1px solid #7aa8a0;color:#d5efe8;border-radius:8px;padding:3px 8px;font-size:10px;letter-spacing:1px;white-space:nowrap}
.play-front.fresh .card,.play-front.fresh .pass-label{animation:fly-in .38s ease-out both}
@keyframes fly-in{from{transform:translate(var(--from-x,0),var(--from-y,-16px)) scale(.86);opacity:.15}to{transform:none;opacity:1}}
.felt.has-fronts #timer{left:16%;top:50%}
.felt[data-game=ddz] #board{top:34%}
.felt[data-game=holdem] #board{top:40%}
.felt[data-game=blackjack] #board{top:16%;left:28%;width:44%}
.felt[data-game=pdk] #board:empty{display:none}

.mj-rivers.on-felt{position:absolute;inset:0;pointer-events:none;margin:0;max-width:none;text-align:center}
.mj-rivers.on-felt .mj-river{position:absolute;transform:translate(-50%,-50%);max-width:46%;justify-content:center;background:#06352bcc;border-radius:8px;padding:3px 5px;pointer-events:none}
.mj-rivers.on-felt .mj-river>small{display:none}
@media(prefers-reduced-motion:reduce){.play-front.fresh .card,.play-front.fresh .pass-label{animation:none}}

.card-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:0;--overlap:-18px}
.card-hand .card{width:42px;height:60px;margin-left:var(--overlap);box-shadow:0 2px 5px #0006}
.card-hand .card:first-child{margin-left:0}
.card-hand .card.selected{transform:translateY(-12px);outline:2px solid #66ffe0;z-index:2}
.aero-board{display:grid;grid-template-columns:repeat(13,1fr);gap:2px;width:min(100%,320px);aspect-ratio:1;margin:0 auto;background:#0b3d32;padding:6px;border-radius:12px;box-shadow:inset 0 0 0 2px #1a6b58}
.aero-cell{position:relative;background:#124f42;border-radius:3px;min-height:0}
.aero-cell.start-R{background:#7a3030}.aero-cell.start-Y{background:#7a6a20}.aero-cell.start-B{background:#204a7a}.aero-cell.start-G{background:#2a6a30}
.aero-plane{position:absolute;inset:12%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;color:#fff;box-shadow:0 0 0 1px #0006}
.aero-plane.R{background:#d95b5b}.aero-plane.Y{background:#d6b23a}.aero-plane.B{background:#4c86d6}.aero-plane.G{background:#4caf58}
.aero-hangars{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}
.aero-hangar{background:#0e2f29cc;border-radius:8px;padding:4px 6px;min-width:72px;text-align:center}
.aero-hangar small{display:block;color:#b7ddd4}
.turtle-log{max-height:160px;overflow:auto;text-align:left;font-size:13px;line-height:1.45}
.turtle-log div{padding:3px 0;border-bottom:1px solid #ffffff14}

.partytable.aerotable{height:450px}
.partytable.aerotable #partycore{left:8%;width:84%;top:14%;height:72%;gap:6px}
.partytable.aerotable .seat{width:64px;min-height:52px}
.partyhero.aero-wrap{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;filter:none;font-size:12px}
.aero-board{background:transparent;box-shadow:none;padding:2px}
.aero-cell{background:#3d9d82;border:1px solid #1e5c4d}
.aero-cell.empty{background:transparent;border:0}
.aero-cell.start-R{background:#d95b5b;border-color:#8a3030}
.aero-cell.start-Y{background:#e0c04a;border-color:#8a6a20}
.aero-cell.start-B{background:#4c86d6;border-color:#204a7a}
.aero-cell.start-G{background:#4caf58;border-color:#2a6a30}

.mj-rack.revealed{opacity:1}
.dingque-actions button{min-width:4.5rem;font-size:1.1rem}

.partytable.cctable{height:460px}
.partytable.cctable #partycore{left:6%;width:88%;top:10%;height:80%;gap:4px}
.cc-board{position:relative;width:min(320px,96%);min-width:240px;aspect-ratio:1;margin:auto}
.cc-hole{position:absolute;width:4.8%;height:auto;aspect-ratio:1;min-width:0;min-height:0;margin:0;padding:0;line-height:0;border-radius:50%;border:1px solid #6a4520;background:#c9a35a;transform:translate(-50%,-50%);box-shadow:inset 0 1px 2px #0004}
.cc-hole .stone{display:block;width:78%;height:78%;margin:auto;border-radius:50%;box-shadow:1px 1px 2px #0005}
.cc-hole.legal{outline:2px solid #e7bf79;outline-offset:1px}
.cc-hole.selected{outline:2px solid #fff;outline-offset:1px}
.cc-hole.last{outline:2px solid #c0392b}
.wq-board{display:grid;width:min(300px,100%);aspect-ratio:1;background:#d7b56c;border:2px solid #6a4520;padding:3px}
.wq-board.wq-9{grid-template-columns:repeat(9,1fr)}
.wq-board.wq-13{grid-template-columns:repeat(13,1fr)}
.wq-board.wq-19{grid-template-columns:repeat(19,1fr)}
.wq-cell.marked:after{content:'';position:absolute;inset:28%;border:2px solid #c0392b;border-radius:50%;z-index:2}
.jq-board{display:flex;flex-direction:column;width:min(280px,96%);min-width:220px;gap:3px}
.jq-row{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.jq-cell{min-height:28px;border-radius:6px;background:#17343c;border:1px solid #3e6a6f;padding:0;font-size:11px}
.jq-cell.back{background:#2a241c;border-color:#6a5a3a}
.jq-cell.side-R{background:#7a3030;border-color:#e7a0a0;color:#fff}
.jq-cell.side-B{background:#2a4a7a;border-color:#a0c0e7;color:#fff}
.jq-cell.legal{outline:2px solid #e7bf79}
.jq-cell.selected{outline:2px solid #fff}
.ds-board{display:flex;flex-direction:column;width:min(300px,96%);min-width:240px;aspect-ratio:7/9;background:#c5a36a;border:2px solid #6a4520}
.ds-row{display:grid;grid-template-columns:repeat(7,1fr);flex:1}
.ds-cell{min-height:0;padding:0;border:0;border-radius:0;background:transparent;position:relative}
.ds-cell.river{background:#6aa8c8}
.ds-cell.trap{background:#c48a4a}
.ds-cell.den{background:#3d2a18}
.ds-piece{display:grid;place-items:center;width:82%;height:82%;margin:auto;border-radius:50%;font-size:12px;font-weight:700}
.ds-piece.red{background:#c0392b;color:#fff}
.ds-piece.blk{background:#2c3e50;color:#fff}
.ds-cell.legal{outline:2px solid #e7bf79;outline-offset:-2px}
.ds-cell.selected{outline:2px solid #fff;outline-offset:-2px}
.ds-cell.last{outline:2px solid #8e2b2b;outline-offset:-2px}

.chromatable .chroma-wrap{display:flex;align-items:center;justify-content:center;min-height:140px}
.chroma-card{width:44px;height:64px;border-radius:8px;border:2px solid #f6f0e4;color:#fff;font-weight:700;font-size:16px;display:inline-flex;align-items:center;justify-content:center;margin:2px;box-shadow:0 1px 0 #0003}
.chroma-card.top{width:72px;height:104px;font-size:32px}
.chroma-card.R,.chroma-pick.R{background:#c43c3c}
.chroma-card.Y,.chroma-pick.Y{background:#d4a017;color:#222}
.chroma-card.B,.chroma-pick.B{background:#2f6fbf}
.chroma-card.G,.chroma-pick.G{background:#2f9a4a}
.chroma-card.wild{background:linear-gradient(135deg,#c43c3c,#d4a017,#2f6fbf,#2f9a4a)}
.chroma-card.tint-R{box-shadow:0 0 0 3px #c43c3c}
.chroma-card.tint-Y{box-shadow:0 0 0 3px #d4a017}
.chroma-card.tint-B{box-shadow:0 0 0 3px #2f6fbf}
.chroma-card.tint-G{box-shadow:0 0 0 3px #2f9a4a}
.chroma-card.playable{outline:2px solid #e7bf79;outline-offset:1px}
.chroma-card.chosen{outline:2px solid #fff;outline-offset:1px}
.chroma-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}
.chroma-pick{min-width:56px;border:0;color:#fff;border-radius:8px;padding:8px 10px}
.tycoontable .ty-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}
.ty-board{display:flex;flex-direction:column;gap:2px;width:100%;aspect-ratio:1}
.ty-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;flex:1}
.ty-cell{position:relative;min-height:0;border-radius:5px;background:#2b4a3e;color:#f2efe6;font-size:9px;line-height:1.15;padding:3px 2px;overflow:hidden}
.ty-cell.empty{background:transparent}
.ty-cell.start{background:#3d6b52}
.ty-cell.chance{background:#6b5a3d}
.ty-cell.toll{background:#6b3d3d}
.ty-label{display:block;max-height:100%;overflow:hidden}
.ty-token{width:9px;height:9px;border-radius:50%;display:inline-block;border:1px solid #fff;margin-right:2px}
.ty-dice{font-size:18px}

/* Batch 0 shared presentation kit */
.felt{background:radial-gradient(ellipse at 50% 30%,#1a8a6f 0%,#11705b 38%,#064335 78%),repeating-linear-gradient(115deg,transparent 0 7px,rgba(255,255,255,.025) 7px 8px)}
.layout-felt{border-radius:47%}
.layout-board{height:470px;border-radius:22px;background:radial-gradient(ellipse at 50% 40%,#24543c,#0c241c 72%)}
.layout-board:before{border-radius:16px;inset:10px}
.layout-board #partycore{left:8%;width:84%;top:10%;height:78%}
.layout-path{height:470px;border-radius:24px}
.layout-canvas{height:450px;border-radius:20px}
.layout-stage{border-radius:28px;background:radial-gradient(ellipse at 50% 40%,#17384a,#08141f 76%)}
.layout-stage:before{border-radius:20px}

.seat{width:88px;min-height:62px;padding:6px 5px 8px;background:linear-gradient(180deg,#182636f5,#101820f2);border:1px solid #7a8f8666}
.seat b{font-size:11px}
.seat .bot-badge{display:block;font-size:7px;letter-spacing:0;line-height:1.25;white-space:normal;color:#c8f3e4;background:#14352fcc;border:1px solid #4e8f7e99;border-radius:6px;padding:2px 3px;margin:2px 0 1px}
.seat-marker{position:absolute;top:-7px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;font-size:9px;font-style:normal;font-weight:700;display:grid;place-items:center;background:#d4a04e;color:#1a1408;box-shadow:0 1px 3px #0008;z-index:4}
.seat-marker.hat{background:linear-gradient(#f0d27a,#b8872f);min-width:28px}
.seat-marker.sb{background:#6aa4d8;color:#071018}
.seat-marker.bb{background:#d86a6a;color:#180808}
.seat-marker.dealer{background:#efe6c8}
.seat-marker.banker{background:#e7c56a}
.seat.landlord{outline:2px solid #e7bf79}
.seat-clock{position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:conic-gradient(#66ffe0 100%,#193c38 0);display:grid;place-items:center;z-index:5}
.seat-clock span{background:#0b2c2b;border-radius:50%;width:22px;height:22px;text-align:center;line-height:22px;font-size:10px}
.seat-que{position:absolute;left:-4px;top:-4px;width:12px;height:12px;border-radius:50%;border:1px solid #fff8;box-shadow:0 0 4px #0008}
.seat-que.que-万,.seat-que.que-m{background:#c43c3c}
.seat-que.que-筒,.seat-que.que-p{background:#2f6fbf}
.seat-que.que-条,.seat-que.que-s{background:#2f9a4a}
.niu-badge{display:inline-block;margin-top:3px;padding:1px 5px;border-radius:7px;background:#ba8c48;color:#fff8e4;font-size:9px}

.chip-stack{position:relative;display:inline-flex;align-items:flex-end;justify-content:center;min-height:28px;padding:0 4px 2px}
.chip-stack b{position:relative;z-index:2;font-size:13px;color:#ffe3a0;text-shadow:0 1px 4px #000a}
.chip{position:absolute;width:22px;height:22px;border-radius:50%;border:2px dashed #ffe7a8cc;box-shadow:0 1px 2px #0008,inset 0 0 0 3px #0003}
.chip.c0{background:#c43c3c;transform:translate(-8px,-2px)}
.chip.c1{background:#2f6fbf;transform:translate(8px,-4px)}
.chip.c2{background:#2f9a4a;transform:translate(0,-8px)}
.chip.c3{background:#111;border-color:#d4a04e;transform:translate(-2px,-12px)}
.chip-stack.compact{min-height:18px}
.chip-stack.compact .chip{width:14px;height:14px}
.chip-stack.compact b{font-size:10px}
.mult-badge{display:inline-block;padding:3px 10px;border-radius:999px;background:linear-gradient(#d4a04e,#8a5f28);color:#fff8e4;font-weight:800;letter-spacing:1px;box-shadow:0 0 10px #e7c56a55}
#pot{display:flex;flex-direction:column;align-items:center;gap:4px}

#actions button{min-height:46px;font-size:13px}
#actions button.primary{background:linear-gradient(#d4a04e,#8a5f28);border-color:#f0d08a;font-weight:700;font-size:15px;min-height:50px;letter-spacing:.4px}
#actions button:not(.primary):not(.danger){background:linear-gradient(#1c3a44,#142830)}
#actions button.danger{background:linear-gradient(#4a2430,#2a1820)}

.felt[data-game=ddz] #board{top:18%;left:22%;width:56%;gap:4px}
.felt[data-game=ddz] #board .card{width:30px;height:43px}
.felt[data-game=ddz].has-fronts #board:after{content:'底牌';position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:10px;color:#e7c56a;letter-spacing:2px}
.felt[data-game=holdem] #board{top:42%;gap:6px}
.felt[data-game=holdem] #board .card{width:38px;height:54px;box-shadow:0 4px 8px #0008}
.community-slot{width:38px;height:54px;border-radius:6px;border:1px dashed #e7c56a55;background:#0c3a3222}
.play-front .combo-tag{background:#12282cf2;border:1px solid #e7bf79;color:#ffe3a0;border-radius:8px;padding:2px 7px;font-size:10px;letter-spacing:1px;margin-top:2px}
.fx-combo{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:9;pointer-events:none;font-size:28px;font-weight:800;color:#ffe3a0;text-shadow:0 0 16px #e7c56acc,0 2px 0 #0008;animation:combo-pop .7s ease-out both}
@keyframes combo-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:0;transform:translate(-50%,-70%) scale(1)}}
.fx-flychip{position:absolute;width:16px;height:16px;border-radius:50%;background:#c43c3c;border:2px dashed #ffe7a8;z-index:8;pointer-events:none;animation:chip-fly .7s ease-out forwards}
@keyframes chip-fly{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx,0),var(--dy,-40px)) scale(.6)}}

#settlelayer{margin:8px 0 4px;padding:10px 12px;border-radius:14px;border:1px solid #c9a16499;background:linear-gradient(180deg,#1c302af2,#101820ee);box-shadow:0 8px 20px #0006}
#settlelayer[hidden]{display:none!important}
#settletitle{margin:0 0 8px;font-size:15px;color:#ffe3a0;letter-spacing:1px}
#settlelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
#settlelist li{display:flex;align-items:center;gap:8px;font-size:12px}
#settlelist li b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#settlelist li span{color:#9bb8b2}
#settlelist li em.up{color:#8de7b0;font-style:normal}
#settlelist li em.down{color:#f0a0a8;font-style:normal}
#settlelist li em.flat{color:#c9ddd6;font-style:normal}
#settlelist li.win b{color:#ffe3a0}
#settlenote{margin:8px 0 0;font-size:10px;color:#9bb8b2}

#playhint{margin:6px 0 4px;padding:10px 12px;border-radius:12px;border:1px solid #66ffe055;background:#122b30ee;display:flex;gap:8px;align-items:flex-start}
#playhint[hidden]{display:none!important}
#playhinttext{margin:0;flex:1;font-size:12px;line-height:1.55;color:#d5efe8}
#playhintok{flex-shrink:0;min-height:36px;padding:6px 10px}

.mj-rivers.on-felt .mj-river{max-width:42%}
.mj-rivers.on-felt .mj-river.dir-self{max-width:70%}
.mj-rivers.on-felt .mj-river.dir-across{max-width:58%}
.mj-wall-count{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:10px;color:#e7c56a;background:#06352bcc;border:1px solid #c9a16466;border-radius:8px;padding:2px 7px;letter-spacing:1px;z-index:2}
.mj-callout{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);font-size:26px;font-weight:800;color:#ffe3a0;text-shadow:0 0 14px #e7c56a99;pointer-events:none;z-index:6;animation:combo-pop .8s ease-out both}
.felt[data-game=mahjong] #partycore,.felt[data-game=xuezhan] #partycore,.felt[data-game=guangdong] #partycore{top:34%}
@media(prefers-reduced-motion:reduce){.fx-combo,.fx-flychip,.mj-callout{animation:none!important}}

.felt:has(.seat-clock)>#timer{visibility:hidden}

.partytable.fishtable.layout-felt,.partytable.fishtable.layout-canvas{border-radius:18px;background:linear-gradient(#0a4a62,#03141c)}
.partytable.fishtable::after,.partytable.fishtable.fx-settled::after{border-radius:16px!important;opacity:.18}
.partytable.fishtable.fx-settled::after{border-color:#7ad7e0;opacity:.28}
.partytable.fishtable .fx-particles{border-radius:16px}

/* Batch 0/1 visual density */
.felt{border:11px solid #4a3528;box-shadow:inset 0 0 0 2px #d4b16a,inset 0 22px 42px #ffffff14,inset 0 0 36px #001c19,0 0 23px #b43a6d42,0 10px 28px #0009}
.partytable .seat{width:88px;min-height:62px}
.partytable.manyseats .seat{width:48px;min-height:55px;padding:3px 1px}
.seat-clock{background:conic-gradient(#66ffe0 var(--progress,100%),#193c38 0)}
#actions button.secondary{background:transparent;border:1px solid #7aa8a0;color:#d5efe8}
.felt[data-game=ddz] #board{top:15%;left:24%;width:52%;gap:4px;background:#04282066;border:1px solid #c9a16455;border-radius:10px;padding:16px 8px 6px;min-height:56px;box-sizing:border-box}
.felt[data-game=ddz].has-fronts #board:after{top:2px}
.felt[data-game=holdem] #pot{top:26%}
.felt[data-game=holdem] .play-front .card{width:30px;height:43px}
.felt[data-game=niuniu] .play-front,.felt[data-game=sss] .play-front{background:#04282088;border:1px solid #c9a16444;border-radius:8px;padding:4px 6px}
.felt[data-game=niuniu] .play-front .card,.felt[data-game=sss] .play-front .card{width:28px;height:40px}
.mj-hero{position:relative}
.mj-hero .mj-wall-count{position:absolute;left:50%;top:auto;bottom:-2px;transform:translateX(-50%)}
.mj-rivers.on-felt .mj-river.dir-left,.mj-rivers.on-felt .mj-river.dir-right{max-width:36%}
.seat .avatar{float:none;display:inline-grid;margin:0 auto 3px}
.seat{width:92px}
.partytable .seat{width:92px}
.felt[data-game=ddz] #board{top:14%;background:#031c18aa;border:1px solid #e7c56a77;box-shadow:inset 0 0 10px #0005}
.felt[data-game=ddz] #board:after{content:'底牌';position:absolute;top:2px;left:50%;transform:translateX(-50%);font-size:10px;color:#e7c56a;letter-spacing:2px}
.partytable .seat{width:80px}
.felt.has-fronts.finished #stage{visibility:hidden}
.felt[data-game=holdem] #stage{top:16%}
.felt[data-game=holdem] #pot{top:28%}
.felt[data-game=holdem] #board{top:48%}
.felt[data-game=sss] .play-front .card{width:22px;height:31px;margin-left:-8px}
#pot .chip-stack{min-height:34px}
#pot .chip{width:24px;height:24px}

.partytable .seat{width:86px}
.mj-rivers.on-felt{z-index:4}
.mj-rivers.on-felt .mj-river{z-index:4}
