:root{
  --gold:#f2c14e;--gold-l:#fff3c4;--gold-d:#a8761c;
  --txt:#f3eee4;--mut:#9aa3ad;--red:#e5484d;--blue:#3b82f6;--green:#2fbf71;
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#050608;color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;overflow:hidden;-webkit-user-select:none;user-select:none;overscroll-behavior:none}
input,select{font:inherit;-webkit-user-select:text;user-select:text}
button{font:inherit;cursor:pointer;-webkit-touch-callout:none;color:inherit}
.hidden{display:none!important}
.screen{position:fixed;inset:0}

/* ================= LOBBY ================= */
#lobby{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow:auto;
  background:var(--noise),radial-gradient(ellipse 130% 80% at 50% 0%,#1f6b45 0%,#0d3322 40%,#06100b 72%,#030504 100%)}
.hero{width:150px;height:150px;flex:none;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab;filter:drop-shadow(0 22px 22px rgba(0,0,0,.75))}
.title{margin:14px 0 0;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(34px,10vw,54px);letter-spacing:4px;line-height:1;
  background:linear-gradient(180deg,#fff7d6 0%,#f2c14e 50%,#a8761c 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 3px 0 #4a3206) drop-shadow(0 10px 18px rgba(0,0,0,.7))}
.sub{color:#cfdcd3;opacity:.7;margin:8px 0 18px;font-size:14px;letter-spacing:.4px;text-align:center}
.foot{color:#8fa197;opacity:.6;font-size:12px;margin:14px 0 0;text-align:center}
.box{width:100%;max-width:380px;background:rgba(14,18,22,.74);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:18px 18px 16px;box-shadow:0 22px 50px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06)}
label{display:block;font-size:11px;color:var(--mut);margin:10px 0 5px;text-transform:uppercase;letter-spacing:.8px;font-weight:600}
.in{width:100%;padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.45);color:var(--txt);font-size:16px;box-shadow:inset 0 2px 4px rgba(0,0,0,.4)}
.in:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(242,193,78,.18)}
select.in{-webkit-appearance:none;appearance:none}
.tabs{display:flex;gap:4px;margin:16px 0 4px;background:rgba(0,0,0,.45);padding:4px;border-radius:14px}
.tabs button{flex:1;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--mut);font-weight:700}
.tabs button.on{background:linear-gradient(#2b333d,#1c222a);color:var(--txt);box-shadow:0 2px 6px rgba(0,0,0,.4)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.big{width:100%;margin-top:16px;padding:15px;border:0;border-radius:14px;font-weight:900;font-size:16px;letter-spacing:.5px;color:#2a1c00;
  background:linear-gradient(180deg,#ffe28a 0%,#f2c14e 45%,#d39a26 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 4px 0 #8a5d10,0 8px 18px rgba(0,0,0,.5);transition:transform .08s}
.big:active{transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 0 #8a5d10}
.big:disabled{opacity:.5}
.big.ghost{background:linear-gradient(#2b333d,#1c222a);color:var(--txt);box-shadow:0 4px 0 #0b0e12,0 8px 18px rgba(0,0,0,.4)}
.msg{min-height:20px;text-align:center;color:var(--gold);font-size:14px;margin:12px 0 0}
#codeIn{text-transform:uppercase;letter-spacing:8px;text-align:center;font-weight:800;font-size:24px}

/* ================= GAME LAYOUT ================= */
#game{display:flex;flex-direction:column;background:#050608}
header{display:flex;align-items:center;gap:7px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));background:linear-gradient(#111418,#0a0c0f);border-bottom:1px solid rgba(255,255,255,.06);font-size:14px;position:relative;z-index:20}
.pill{background:rgba(0,0,0,.5);border:1px solid rgba(242,193,78,.35);border-radius:999px;padding:6px 11px;color:var(--gold);font-weight:800;letter-spacing:3px;font-size:14px}
.hbtn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:6px 12px;color:var(--txt);font-size:13px}
.hbtn.icon{padding:6px 9px;min-width:34px}
.dot{width:9px;height:9px;border-radius:50%;background:#3ccf6e;box-shadow:0 0 8px #3ccf6e;flex:none}
.dot.bad{background:var(--red);box-shadow:0 0 8px var(--red)}
.grow{flex:1}
#handNo{color:var(--mut);font-size:12px;white-space:nowrap}

#stage{position:relative;flex:1;min-height:300px;overflow:hidden;touch-action:manipulation;
  background:var(--noise),radial-gradient(ellipse 75% 65% at 50% 46%,#3b2a1b 0%,#1d140c 50%,#0a0705 80%,#050403 100%)}
#stage::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(ellipse 52% 42% at 50% 44%,rgba(255,238,200,.13),transparent 70%)}
.table{position:absolute;left:4.5%;right:4.5%;top:4%;bottom:4%;filter:drop-shadow(0 26px 34px rgba(0,0,0,.85))}
.rail{position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(ellipse 80% 40% at 50% 12%,rgba(255,255,255,.22),transparent 60%),
    repeating-linear-gradient(97deg,rgba(0,0,0,.14) 0 2px,transparent 2px 6px,rgba(255,255,255,.04) 6px 7px,transparent 7px 11px),
    linear-gradient(165deg,#8a5428 0%,#5a3216 45%,#341b0a 100%);
  box-shadow:inset 0 2px 2px rgba(255,255,255,.3),inset 0 -5px 10px rgba(0,0,0,.65)}
.leather{position:absolute;inset:2.4%;border-radius:50%;
  background:radial-gradient(ellipse 70% 35% at 50% 10%,rgba(255,255,255,.14),transparent 70%),radial-gradient(ellipse at 50% 50%,#3a2620 0%,#24160f 60%,#120a06 100%);
  box-shadow:inset 0 3px 5px rgba(255,255,255,.12),inset 0 -8px 14px rgba(0,0,0,.8),0 0 0 1px rgba(0,0,0,.7)}
.leather::after{content:'';position:absolute;inset:2.6%;border-radius:50%;border:1.5px dashed rgba(214,180,120,.32)}
.felt{position:absolute;inset:8%;border-radius:50%;overflow:hidden;
  background:var(--noise),radial-gradient(ellipse at 50% 42%,#38ad72 0%,#22874f 36%,#15663b 68%,#0b4425 100%);
  box-shadow:inset 0 0 34px 8px rgba(0,0,0,.6),inset 0 0 0 3px rgba(0,0,0,.4),0 0 0 2px rgba(0,0,0,.5)}
.feltline{position:absolute;inset:10%;border-radius:50%;border:2px solid rgba(255,226,150,.15)}
.logo{position:absolute;left:50%;top:71%;transform:translate(-50%,-50%);font-family:Georgia,serif;font-weight:900;font-size:clamp(13px,4vw,22px);letter-spacing:.32em;color:rgba(0,0,0,.18);text-shadow:0 1px 0 rgba(255,255,255,.07);white-space:nowrap;text-align:center}
.logo small{display:block;font-size:.5em;letter-spacing:.5em;margin-top:2px}
#ticker{position:absolute;top:56.5%;left:0;right:0;z-index:15;text-align:center;font-size:11px;color:rgba(255,255,255,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 12px;pointer-events:none}

/* ================= CARDS ================= */
.cw{position:relative;width:var(--cw);height:calc(var(--cw)*1.4);perspective:700px;flex:none}
.c3{position:absolute;inset:0;transform:rotate(var(--tilt,0deg));transition:transform .35s}
.ci{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(180deg);transition:transform .55s cubic-bezier(.3,.7,.25,1.15)}
.cw.up .ci{transform:rotateY(0)}
.covered .cw .ci{transform:rotateY(180deg)!important}
.cf{position:absolute;inset:0;border-radius:calc(var(--cw)*.09);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;
  box-shadow:0 2px 3px rgba(0,0,0,.45),0 6px 12px rgba(0,0,0,.25),0 0 0 .5px rgba(0,0,0,.45)}
.cfront{background:linear-gradient(150deg,#ffffff 0%,#f6f2e8 55%,#e7e0cf 100%);color:#16161a}
.cfront.red{color:#c8102e}
.cfront::after{content:'';position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.55) 0%,transparent 35%,transparent 70%,rgba(0,0,0,.05) 100%);pointer-events:none}
.cback{transform:rotateY(180deg);background:#fbfaf6}
.cback::before{content:'';position:absolute;inset:calc(var(--cw)*.065);border-radius:calc(var(--cw)*.05);
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.22) 0 15%,transparent 16%),
    repeating-linear-gradient(45deg,rgba(255,255,255,.17) 0 1.4px,transparent 1.4px 5.5px),
    repeating-linear-gradient(-45deg,rgba(255,255,255,.17) 0 1.4px,transparent 1.4px 5.5px),
    linear-gradient(160deg,#c21b33,#7d0c1d);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.cback::after{content:'♠';position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);color:rgba(255,255,255,.85);font-size:calc(var(--cw)*.3);text-shadow:0 1px 2px rgba(0,0,0,.4)}
.ix{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:.92;font-weight:800}
.ix b{font-size:calc(var(--cw)*.29);font-family:Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.ix i{font-style:normal;font-size:calc(var(--cw)*.22)}
.tl{left:7%;top:5%}
.br{right:7%;bottom:5%;transform:rotate(180deg)}
.pip{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);font-size:calc(var(--cw)*.56);line-height:1}
.pip.ace{font-size:calc(var(--cw)*.7)}
.pip.court{width:50%;height:56%;border-radius:calc(var(--cw)*.05);border:1.5px solid currentColor;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(160deg,rgba(242,193,78,.45),rgba(242,193,78,.1));box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.pip.court .cl{font-family:Georgia,serif;font-weight:900;font-size:calc(var(--cw)*.34);line-height:1}
.pip.court .cs{font-size:calc(var(--cw)*.2);line-height:1}
.cw.sm .br,.cw.sm .pip.court{display:none}
.cw.sm .ix b{font-size:calc(var(--cw)*.42)}
.cw.sm .ix i{font-size:calc(var(--cw)*.36)}
.cw.sm .pip{font-size:calc(var(--cw)*.5);left:auto;right:7%;top:auto;bottom:6%;transform:none}
.cw.win{z-index:3}
.cw.win .c3{transform:rotate(var(--tilt,0deg)) translateY(-14%) scale(1.06)}
.cw.win .cf{box-shadow:0 0 0 2px var(--gold),0 0 18px 4px rgba(242,193,78,.8)}
.cw.dim .cfront{filter:brightness(.5) saturate(.6)}

/* ================= BOARD / POT ================= */
#board{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);display:flex;gap:clamp(3px,1vw,7px);z-index:5;--cw:clamp(36px,10.6vw,64px)}
.slot{position:relative;width:var(--cw);height:calc(var(--cw)*1.4);border-radius:calc(var(--cw)*.1);border:1.5px solid rgba(255,235,180,.13);background:rgba(0,0,0,.07)}
.slot>.cw{position:absolute;inset:-1.5px}
#potArea{position:absolute;left:50%;top:31%;transform:translate(-50%,-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none}
#potStack{min-height:10px}
#potLbl{font-weight:800;font-size:13px;color:#fff;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:2px 11px;opacity:0;transition:opacity .3s}
#potLbl.on{opacity:1}
#centerInfo{position:absolute;left:50%;top:64%;transform:translate(-50%,-50%);z-index:12;text-align:center;width:min(80%,360px)}
#centerInfo:empty{display:none}
#centerInfo.lobby{top:46%;width:min(66%,300px)}
.wait{background:rgba(6,10,8,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:14px;box-shadow:0 14px 30px rgba(0,0,0,.6)}
.wait h3{margin:0 0 4px;font-family:Georgia,serif;font-size:18px;color:var(--gold)}
.subtle{font-size:13px;color:#d9e6dd;opacity:.85;margin-top:4px;text-shadow:0 1px 3px #000}
.code-big{font-size:28px;font-weight:900;letter-spacing:6px;color:#fff;margin:6px 0}
.cbtn{margin-top:10px;padding:11px 18px;border:0;border-radius:12px;font-weight:900;font-size:14px;color:#2a1c00;background:linear-gradient(180deg,#ffe28a,#f2c14e 45%,#d39a26);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 3px 0 #8a5d10,0 6px 14px rgba(0,0,0,.5)}
.cbtn:active{transform:translateY(2px);box-shadow:0 1px 0 #8a5d10}
.cbtn:disabled{opacity:.45}

/* ================= CHIPS ================= */
.stk{position:relative;display:block}
.sc{position:absolute;width:var(--w);height:var(--h);border-radius:50%;
  background:radial-gradient(ellipse at 50% 50%,var(--c) 0 36%,var(--s) 36% 41%,var(--c) 41% 58%,transparent 59%),
    repeating-conic-gradient(from 8deg,var(--c) 0 30deg,var(--s) 30deg 45deg);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.28)}
.sc::before{content:'';position:absolute;left:0;right:0;top:50%;height:calc(50% + var(--th));z-index:-1;
  border-radius:0 0 50% 50% / 0 0 calc(var(--h) / 2) calc(var(--h) / 2);
  background:repeating-linear-gradient(90deg,var(--c) 0 calc(var(--w) * .13),var(--s) calc(var(--w) * .13) calc(var(--w) * .2));
  filter:brightness(.72);box-shadow:0 1px 2px rgba(0,0,0,.7)}
.sc::after{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(160deg,rgba(255,255,255,.35),transparent 50%)}
.fchip{position:fixed;width:20px;height:20px;border-radius:50%;z-index:60;pointer-events:none;
  background:radial-gradient(circle,var(--c) 0 34%,var(--s) 34% 40%,var(--c) 40% 56%,transparent 57%),repeating-conic-gradient(from 8deg,var(--c) 0 30deg,var(--s) 30deg 45deg);
  box-shadow:0 3px 5px rgba(0,0,0,.6),inset 0 0 0 1px rgba(0,0,0,.3)}
#fly{position:fixed;inset:0;pointer-events:none;z-index:60}

/* 3D chip */
.chip3d{position:relative;perspective:700px;touch-action:none;flex:none}
.c3b{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(18deg) rotateY(-25deg)}
.c3b .edge{position:absolute;left:50%;top:50%;background-image:linear-gradient(90deg,rgba(0,0,0,.28),rgba(255,255,255,.14) 50%,rgba(0,0,0,.28))}
.c3f{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,var(--c) 0 34%,var(--s) 34% 37%,var(--c) 37% 60%,rgba(0,0,0,.3) 60% 61.5%,transparent 62%),
    repeating-conic-gradient(from 6deg,var(--c) 0 25.7deg,var(--s) 25.7deg 38.6deg);
  box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.3)}
.c3f::before{content:'';position:absolute;inset:23%;border-radius:50%;border:2px dashed var(--s);opacity:.55}
.c3f::after{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.4),transparent 45%,rgba(0,0,0,.22))}
.c3f b{position:relative;z-index:1;font-family:Georgia,serif;font-weight:900;color:var(--s);font-size:var(--fs);text-shadow:0 1px 1px rgba(0,0,0,.5)}

/* ================= SEATS ================= */
.seat{position:absolute;transform:translate(-50%,-50%);width:84px;display:flex;flex-direction:column;align-items:center;z-index:8;transition:left .6s cubic-bezier(.4,0,.2,1),top .6s cubic-bezier(.4,0,.2,1)}
.hole{display:flex;justify-content:center;--cw:clamp(26px,7.2vw,36px);height:calc(var(--cw)*1.4);margin-bottom:-15px;position:relative;z-index:1}
.hole .cw{margin:0 -4px}
.hole.mucked{visibility:hidden}
.ava{position:relative;width:44px;height:44px;z-index:2;flex:none}
.ring{position:absolute;inset:-4px;border-radius:50%;background:rgba(0,0,0,.5);box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.seat.turn .ring{background:conic-gradient(var(--gold) var(--p,100%),rgba(255,255,255,.1) 0);box-shadow:0 0 18px rgba(242,193,78,.75)}
.seat.turn.hurry .ring{background:conic-gradient(#ff4d4f var(--p,100%),rgba(255,255,255,.1) 0);box-shadow:0 0 18px rgba(255,77,79,.8)}
.seat.winner .ring{background:conic-gradient(#fff3c4,#f2c14e,#a8761c,#f2c14e,#fff3c4);animation:spin 1.4s linear infinite;box-shadow:0 0 24px 4px rgba(242,193,78,.85)}
.face{position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;color:#fff;
  background:radial-gradient(circle at 35% 28%,hsl(var(--hue) 75% 66%),hsl(var(--hue) 55% 34%) 72%);
  box-shadow:inset 0 -4px 7px rgba(0,0,0,.45),inset 0 2px 3px rgba(255,255,255,.35),0 4px 9px rgba(0,0,0,.6);border:2px solid rgba(255,255,255,.28);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.crown{position:absolute;left:50%;top:-20px;transform:translateX(-50%) scale(0);font-size:20px;z-index:4;transition:transform .4s cubic-bezier(.3,1.6,.5,1);filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.seat.winner .crown{transform:translateX(-50%) scale(1)}
.seat.winner .ava{animation:bounce .7s ease 2}
.plate{margin-top:-7px;position:relative;z-index:3;width:84px;background:linear-gradient(#1c2128,#0c0f13);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:7px 5px 3px;text-align:center;box-shadow:0 5px 12px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.06)}
.plate .nm{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e8e2d6}
.plate .ch{font-size:12.5px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}
.seat.me .plate{border-color:rgba(91,141,239,.6)}
.seat.turn .plate{border-color:rgba(242,193,78,.8)}
.seat.winner .plate{border-color:var(--gold);box-shadow:0 0 18px rgba(242,193,78,.6)}
.seat.folded .ava,.seat.folded .plate,.seat.out .ava,.seat.out .plate{opacity:.42;filter:grayscale(.75)}
.seat.off .face::after{content:'⚡';position:absolute;right:-6px;bottom:-4px;font-size:14px}
.seat.off .nm{color:var(--red)}
.bubble{margin-top:3px;height:17px;line-height:17px;padding:0 8px;border-radius:999px;font-size:10.5px;font-weight:800;white-space:nowrap;max-width:132px;overflow:hidden;text-overflow:ellipsis;visibility:hidden;background:#2a3340;color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.5)}
.bubble.on{visibility:visible}
.b-fold{background:#3a3f46;color:#c9ced4}
.b-check{background:#2c5a8c}
.b-call{background:#22804f}
.b-raise{background:linear-gradient(#ffd770,#e0a52c);color:#2a1c00}
.b-allin{background:linear-gradient(#ff5d62,#b3141b);color:#fff;box-shadow:0 0 12px rgba(229,72,77,.8)}
.b-blind{background:#4b4f58}
.b-hand{background:linear-gradient(#fff3c4,#f2c14e);color:#3a2600}
.b-info{background:#2a3340;color:#bbb}

.bet{position:absolute;transform:translate(-50%,-50%);z-index:6;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.bet .amt{margin-top:3px;font-size:11px;font-weight:900;color:#fff;background:rgba(0,0,0,.6);border-radius:999px;padding:1px 7px;white-space:nowrap}
.dealer{position:absolute;width:26px;height:26px;border-radius:50%;transform:translate(-50%,-50%);z-index:7;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px;color:#222;font-family:Georgia,serif;
  background:radial-gradient(circle at 35% 30%,#ffffff,#e9e6de 55%,#b9b4a8);box-shadow:0 3px 0 #8d887d,0 6px 9px rgba(0,0,0,.6),inset 0 0 0 3px rgba(0,0,0,.08);
  transition:left .8s cubic-bezier(.5,0,.2,1),top .8s cubic-bezier(.5,0,.2,1)}

/* ================= BANNER / FX ================= */
#banner{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);z-index:40;pointer-events:none;text-align:center;opacity:0;perspective:600px;width:96%}
#banner.show{animation:bannerIn 3.6s cubic-bezier(.2,.9,.3,1) forwards}
.bt{font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(28px,9.5vw,58px);letter-spacing:2px;line-height:1.05;white-space:nowrap;
  background:linear-gradient(100deg,#a8761c 0%,#fff3c4 18%,#f2c14e 36%,#a8761c 54%,#fff3c4 72%,#f2c14e 90%);background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 1.8s linear infinite;
  filter:drop-shadow(0 3px 0 #5a3c08) drop-shadow(0 10px 18px rgba(0,0,0,.85))}
.bt.big{font-size:clamp(32px,11vw,68px)}
.bs{margin-top:8px;font-weight:800;font-size:clamp(13px,3.8vw,18px);color:#fff;text-shadow:0 2px 6px #000;background:rgba(0,0,0,.55);display:inline-block;padding:5px 14px;border-radius:999px;border:1px solid rgba(242,193,78,.35)}
#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:70}
.ripple{position:fixed;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:3px solid rgba(255,255,255,.7);pointer-events:none;z-index:65}
.flash{position:absolute;inset:0;z-index:30;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,rgba(255,60,60,.35),transparent 70%)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bounce{0%,100%{transform:translateY(0)}40%{transform:translateY(-9px) scale(1.06)}70%{transform:translateY(2px)}}
@keyframes shine{to{background-position:-200% center}}
@keyframes bannerIn{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotateX(75deg)}
  12%{opacity:1;transform:translate(-50%,-50%) scale(1.14) rotateX(0)}
  20%{transform:translate(-50%,-50%) scale(1)}
  85%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-62%) scale(1.04)}}
@keyframes pulseTurn{0%,100%{box-shadow:0 -6px 26px rgba(242,193,78,.18)}50%{box-shadow:0 -6px 34px rgba(242,193,78,.42)}}

/* ================= PANEL ================= */
#panel{position:relative;z-index:25;background:var(--noise),linear-gradient(#13171c,#090b0e);border-top:1px solid rgba(255,255,255,.07);padding:8px 10px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px rgba(0,0,0,.6)}
#panel.myturn{border-top-color:rgba(242,193,78,.55);animation:pulseTurn 1.6s ease-in-out infinite}
#handRow{display:flex;align-items:center;gap:14px;margin-bottom:8px;min-height:calc(clamp(50px,14.5vw,70px)*1.4 - 6px)}
#myCards{display:flex;--cw:clamp(50px,14.5vw,70px);padding:0 2px 0 6px;cursor:pointer;flex:none;min-width:calc(var(--cw)*1.75)}
#myCards .cw+.cw{margin-left:calc(var(--cw)*-.25)}
#myCards.foldedme{opacity:.35;filter:grayscale(.8)}
#myInfo{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
#miName{font-size:13px;color:var(--mut);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi-chips{display:flex;align-items:center;gap:8px}
#miChips{font-size:22px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums;text-shadow:0 2px 6px rgba(0,0,0,.6)}
#miHand{font-size:13px;color:#9fe0b8;font-weight:700;min-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row{display:flex;gap:7px}
.row+.row{margin-top:7px}
.btn{flex:1;padding:14px 6px;border:0;border-radius:13px;font-weight:900;font-size:15px;color:#fff;letter-spacing:.2px;
  background:linear-gradient(#2c3642,#1b222b);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 4px 0 #0a0d11,0 7px 12px rgba(0,0,0,.5);transition:transform .07s}
.btn:active{transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 1px 0 #0a0d11}
.btn.fold{background:linear-gradient(#9a2e35,#5f1a1f);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 4px 0 #3a0e12,0 7px 12px rgba(0,0,0,.5)}
.btn.call{background:linear-gradient(#4a8ef8,#1d4fbf);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 4px 0 #11306f,0 7px 12px rgba(0,0,0,.5)}
.btn.raise{color:#2a1c00;background:linear-gradient(#ffe28a,#f2c14e 45%,#d39a26);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 4px 0 #8a5d10,0 7px 12px rgba(0,0,0,.5)}
.btn.sm{padding:9px 4px;font-size:13px;font-weight:800;border-radius:10px}
.btn.allin{background:linear-gradient(#ff5d62,#b3141b);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 3px 0 #5e0a0e}
.btn:disabled{opacity:.4}
.rpanel{position:absolute;left:8px;right:8px;bottom:calc(100% + 8px);background:rgba(12,15,19,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(242,193,78,.25);border-radius:18px;padding:10px;box-shadow:0 -6px 30px rgba(0,0,0,.6);animation:rpIn .22s ease-out}
@keyframes rpIn{from{opacity:0;transform:translateY(12px)}}
.tray{align-items:center;justify-content:space-between}
.tchip{width:48px;height:48px;border-radius:50%;border:0;flex:none;position:relative;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,var(--c) 0 34%,var(--s) 34% 38%,var(--c) 38% 58%,rgba(0,0,0,.3) 58% 60%,transparent 61%),repeating-conic-gradient(from 6deg,var(--c) 0 30deg,var(--s) 30deg 45deg);
  box-shadow:0 4px 0 rgba(0,0,0,.55),0 6px 10px rgba(0,0,0,.5),inset 0 0 0 1.5px rgba(0,0,0,.3);transition:transform .08s}
.tchip:active{transform:translateY(3px) scale(.96);box-shadow:0 1px 0 rgba(0,0,0,.55)}
.tchip span{font-family:Georgia,serif;font-weight:900;font-size:13px;color:var(--s);text-shadow:0 1px 1px rgba(0,0,0,.5)}
.tchip::after{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.4),transparent 50%)}
input[type=range]{flex:1;accent-color:var(--gold);height:28px}
.rv{min-width:78px;text-align:right;font-weight:900;font-size:17px;color:var(--gold)}
.xbtn{width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;font-size:15px;flex:none}
.status{text-align:center;color:var(--mut);padding:13px 0;font-size:14px}
.hint{text-align:center;color:rgba(255,255,255,.35);font-size:11px;margin-top:7px}

#toast{position:fixed;left:50%;bottom:32%;transform:translateX(-50%);background:rgba(0,0,0,.88);color:#fff;padding:11px 18px;border-radius:14px;font-size:14px;z-index:99;opacity:0;transition:opacity .25s;pointer-events:none;max-width:90%;text-align:center;border:1px solid rgba(255,255,255,.1)}
#toast.on{opacity:1}
#lost{position:fixed;inset:0;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;z-index:90;padding:20px}

@media (min-width:700px){
  .seat{width:104px}.plate{width:104px}.ava{width:52px;height:52px}.face{font-size:19px}
  .plate .nm{font-size:12.5px}.plate .ch{font-size:14px}.bubble{font-size:12px;height:19px;line-height:19px}
  #panel{max-width:760px;margin:0 auto;width:100%;border-radius:18px 18px 0 0}
}
