:root{--ink:#0c0507;--wine:#4a0e1c;--wine2:#240910;--crim:#8c1c2f;--gold:#c9a24b;--gold2:#e8d08a;--cream:#f3e9d2;--mut:#b7a58a;--ok:#7fd49a;--bad:#e5766f;--r:14px;
--serif:'Cormorant Garamond',Georgia,serif;--sans:'Karla',system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;color:var(--cream);font:16px/1.5 var(--sans);background:radial-gradient(1200px 700px at 50% -10%,#5c1226 0%,transparent 60%),radial-gradient(900px 600px at 100% 100%,#2b0a14 0%,transparent 60%),var(--ink);background-attachment:fixed;overflow-x:hidden}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:.02em}h2{font-size:30px}h3{font-size:22px;color:var(--gold2)}p{margin:.4em 0}small,.mut{color:var(--mut)}
a{color:var(--gold2)}:focus-visible{outline:2px solid var(--gold2);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* shell */
header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid #c9a24b26;background:#0c0507cc;backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.brand{font:600 20px var(--serif);letter-spacing:.22em;color:var(--gold2);text-decoration:none;white-space:nowrap}
.chip{display:flex;align-items:center;gap:10px;font-weight:700}.bal{font-variant-numeric:tabular-nums;color:var(--gold2);padding:4px 12px;border:1px solid #c9a24b44;border-radius:99px;background:#1a0a0f;transition:background .4s,box-shadow .4s}
.bal.up{box-shadow:0 0 0 3px #7fd49a33;background:#17251b}.bal.down{box-shadow:0 0 0 3px #e5766f2b}
nav.top{display:flex;gap:4px;padding:8px 20px;overflow-x:auto;border-bottom:1px solid #c9a24b14}
nav a{color:var(--mut);text-decoration:none;padding:7px 14px;border-radius:99px;transition:color .2s,background .25s;white-space:nowrap}
nav a:hover{color:var(--cream)}nav a[aria-current=page]{color:#1a0d05;background:linear-gradient(180deg,var(--gold2),var(--gold))}
nav.bottom{display:none}
main{max-width:1060px;margin:0 auto;padding:22px 16px 90px;animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
footer{text-align:center;color:var(--mut);font-size:12px;padding:0 16px 90px}
/* surfaces */
.pane{background:linear-gradient(160deg,#2e0f19d9,#16070cee);border:1px solid #c9a24b30;border-radius:var(--r);padding:18px;margin:14px 0;box-shadow:0 18px 40px -22px #000,inset 0 1px 0 #ffffff0d}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0}.spread{justify-content:space-between}
.num{font:600 44px/1 var(--serif);color:var(--gold2);font-variant-numeric:tabular-nums}
/* controls */
button,input,select{font:inherit;color:inherit}
input,select{background:#12060a;border:1px solid #c9a24b40;border-radius:10px;padding:10px 12px;min-height:44px;max-width:100%}input:focus,select:focus{border-color:var(--gold2)}
label{display:block;font-size:13px;color:var(--mut);margin-bottom:4px}
.btn{min-height:44px;padding:10px 22px;border-radius:10px;border:1px solid #f3d98c66;cursor:pointer;font-weight:700;color:#1a0d05;background:linear-gradient(180deg,#ecd592,#c9a24b);box-shadow:0 6px 16px -8px #c9a24b,inset 0 1px 0 #fff6;transition:transform .15s,box-shadow .2s,filter .2s}
.btn:hover{transform:translateY(-2px);filter:brightness(1.07)}.btn:active{transform:translateY(1px) scale(.98)}
.btn.ghost{background:transparent;color:var(--cream);border-color:#c9a24b66;box-shadow:none}.btn.ghost:hover{background:#c9a24b1a}
.btn.red{background:linear-gradient(180deg,#b3283f,#7d1626);color:#fff;border-color:#e5766f55}.btn.sm{min-height:36px;padding:6px 14px}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;filter:none}body.busy .btn{pointer-events:none;opacity:.6}
.presets{display:flex;gap:6px}.presets button{background:#1a0a0f;border:1px solid #c9a24b40;border-radius:99px;padding:6px 12px;cursor:pointer;min-height:36px}.presets button:hover{border-color:var(--gold2)}
/* toast / states */
#toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:60;display:grid;gap:8px;width:min(92vw,420px)}
.toast{padding:12px 16px;border-radius:12px;background:#1d0b11;border:1px solid #c9a24b55;box-shadow:0 12px 30px #000a;animation:rise .35s both}.toast.bad{border-color:#e5766f88}.toast.good{border-color:#7fd49a88}
.splash{min-height:70vh;display:grid;place-content:center;text-align:center;gap:10px}.splash h1{font-size:clamp(26px,6vw,44px);letter-spacing:.3em;color:var(--gold2)}
.bar{width:180px;height:2px;margin:10px auto;background:#c9a24b22;overflow:hidden}.bar i{display:block;height:100%;width:40%;background:var(--gold2);animation:slide 1.2s ease-in-out infinite}
.empty{text-align:center;color:var(--mut);padding:28px 10px}
/* landing */
.hero{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px;position:relative;overflow:hidden}
.hero .in{position:relative;z-index:2;width:min(100%,420px)}
.logo{font:600 clamp(54px,15vw,104px)/.92 var(--serif);letter-spacing:.14em;color:var(--gold2);text-shadow:0 0 40px #c9a24b44,0 2px 0 #7a5a1a;animation:logo 1s cubic-bezier(.2,.7,.2,1) both}
.tag{letter-spacing:.35em;font-size:12px;color:var(--mut);margin:18px 0 26px}
.float{position:absolute;color:#c9a24b;opacity:.1;font-size:42px;animation:drift linear infinite;pointer-events:none;z-index:1}
.fnote{position:absolute;width:210px;opacity:.07;border-radius:6px;animation:drift linear infinite;z-index:1;pointer-events:none}
.auth{text-align:left;margin-top:20px;display:grid;gap:12px}.auth input{width:100%}
/* lobby */
.welcome{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}
.games{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.game{position:relative;overflow:hidden;min-height:190px;padding:18px;border-radius:var(--r);border:1px solid #c9a24b30;text-decoration:none;color:var(--cream);display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(160deg,var(--wine),var(--wine2));transition:transform .3s,border-color .3s,box-shadow .3s;animation:rise .6s both;animation-delay:calc(var(--i)*70ms)}
.game:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 22px 40px -20px #c9a24b66}
.game .art{position:absolute;right:-10px;top:-24px;font:700 150px/1 var(--serif);color:#c9a24b;opacity:.12;transition:transform .5s,opacity .3s}.game:hover .art{transform:rotate(-8deg) scale(1.08);opacity:.2}
.game .ic{font-size:28px}.game b{font:600 24px var(--serif);color:var(--gold2)}.game small{display:block;min-height:40px}.game .go{margin-top:8px;font-weight:700;color:var(--gold2)}
/* notes */
.stack{position:relative;width:150px;height:84px;flex:none}.stack img{position:absolute;left:0;bottom:calc(var(--i)*7px);width:140px;border-radius:5px;box-shadow:0 3px 8px #0009;transform:rotate(calc((var(--i) - 2)*1.6deg)) translateX(calc(var(--i)*3px));animation:land .5s both;animation-delay:calc(var(--i)*60ms)}
.stack.sm{width:96px;height:62px}.stack.sm img{width:88px}
.bills{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bill{background:none;border:2px solid transparent;border-radius:10px;padding:4px;cursor:pointer;transition:transform .25s,border-color .2s}.bill:hover{transform:translateY(-3px) rotate(-1deg)}.bill[aria-pressed=true]{border-color:var(--gold2);box-shadow:0 0 22px -6px var(--gold)}
.bill img{width:100%;display:block;border-radius:6px}.bill span{display:block;font-weight:700;color:var(--gold2);margin-top:4px}
.fly{position:fixed;left:50%;bottom:20%;width:120px;z-index:70;border-radius:5px;pointer-events:none;animation:fly 1.5s cubic-bezier(.2,.7,.3,1) forwards;box-shadow:0 6px 16px #000a}
.tx{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #c9a24b1c}.tx b{font-variant-numeric:tabular-nums}.pos{color:var(--ok)}.neg{color:var(--bad)}
/* tables */
.table{position:relative;border-radius:200px/120px;padding:34px 20px;margin:12px 0;text-align:center;background:radial-gradient(ellipse at 50% 40%,#6a1730,#3a0c19 65%,#220810);border:8px solid #2a0a12;outline:2px solid var(--gold);box-shadow:inset 0 0 60px #000a,0 24px 50px -24px #000}
.felt-label{font:600 14px var(--serif);letter-spacing:.3em;color:#c9a24b88}
.cards{display:flex;gap:8px;justify-content:center;min-height:92px;flex-wrap:wrap;margin:8px 0}
.cd{width:66px;height:96px;border-radius:9px;background:linear-gradient(160deg,#fff,#f1e8d3);color:#16161a;position:relative;box-shadow:0 8px 16px #000a,inset 0 0 0 1px #00000014}.cd.r{color:#c0222f}
.cd .c1,.cd .c2{position:absolute;font:700 20px/1 var(--serif);text-align:center}.cd .c1{left:6px;top:5px}.cd .c2{right:6px;bottom:5px;transform:rotate(180deg)}.cd .c1 i,.cd .c2 i{display:block;font-style:normal;font-size:15px;margin-top:1px}
.cd u{position:absolute;inset:0;display:grid;place-items:center;text-decoration:none;font-size:40px;opacity:.92}
.cd.back{background:repeating-linear-gradient(45deg,#6b1630 0 6px,#430d1d 6px 12px);border:3px solid #e8d08a;color:transparent;box-shadow:inset 0 0 0 3px #2a0711,0 8px 16px #000a}
.cd.new{animation:deal .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--k,0)*110ms)}.cd.flip{animation:flip .5s both}
.pot{display:inline-flex;gap:12px;align-items:center;padding:8px 16px;border-radius:99px;background:#0c0507aa;border:1px solid #c9a24b55;font-weight:700}
.banner{font:600 34px var(--serif);color:var(--gold2);text-align:center;min-height:44px;animation:logo .6s both}.banner.lose{color:var(--mut);font-size:28px}.glow{animation:glow 1.6s ease-in-out 2}
.seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.seat{text-align:center;padding:12px 6px;border-radius:12px;border:1px solid #c9a24b26;background:#14070bb0;transition:box-shadow .4s,border-color .3s}.seat.act{border-color:var(--gold2)}.seat.w{border-color:var(--gold2);box-shadow:0 0 28px -4px var(--gold)}
.av{width:54px;height:54px;border-radius:50%;margin:0 auto 6px;display:grid;place-items:center;font:700 22px var(--serif);background:linear-gradient(160deg,var(--crim),var(--wine));border:2px solid var(--gold);overflow:hidden}.av img{width:100%;height:100%;object-fit:cover}
.seat .cd{width:40px;height:58px}.seat .cd .c1,.seat .cd .c2{font-size:12px;left:3px;top:2px}.seat .cd .c2{left:auto;right:3px;top:auto;bottom:2px}.seat .cd i{font-size:10px}.seat .cd u{font-size:22px}.seat .cards{min-height:60px;gap:4px}
.reels{display:flex;gap:10px;justify-content:center;padding:16px;border-radius:16px;background:#0c0507;border:3px solid var(--gold);box-shadow:inset 0 0 40px #000}
.reel{width:min(26vw,110px);height:min(30vw,120px);display:grid;place-items:center;font-size:min(14vw,60px);border-radius:10px;background:linear-gradient(#f6ecd6,#dfd0aa 50%,#f6ecd6);box-shadow:inset 0 8px 14px #0006,inset 0 -8px 14px #0006;overflow:hidden}.reel.spin span{filter:blur(2px);animation:shake .09s infinite}.reel.stop span{animation:land .35s both}
.wheelbox{position:relative;width:min(82vw,340px);aspect-ratio:1;margin:0 auto}.wheel,.ballring{position:absolute;inset:0;transition:transform 4.2s cubic-bezier(.12,.7,.1,1)}.ballring i{position:absolute;top:5%;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:radial-gradient(#fff,#bbb);box-shadow:0 0 6px #fff}
.pointer{position:absolute;left:50%;top:-8px;transform:translateX(-50%);width:0;height:0;border:10px solid transparent;border-top:16px solid var(--gold2);z-index:3}
.board{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;margin-top:12px}.board button,.out button{min-height:38px;border:1px solid #ffffff22;border-radius:6px;color:#fff;font-weight:700;cursor:pointer;padding:0}
.n-red{background:#9a1c2c}.n-black{background:#171012}.n-green{background:#1d6b45;grid-column:1/-1}.board .on,.out .on{outline:2px solid var(--gold2);transform:scale(1.06)}.board .hit{animation:glow 1s 3}
.out{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}.out button{background:#2a0e16;min-height:44px}
.hist{display:flex;gap:6px;flex-wrap:wrap}.hist span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700}
/* admin */
.tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:6px}.scroll{overflow-x:auto;max-width:100%}
table{width:100%;border-collapse:collapse;min-width:560px}th,td{padding:10px 8px;border-bottom:1px solid #c9a24b1c;text-align:left;font-size:14px}th{color:var(--mut);font-weight:600}
.pill{padding:2px 10px;border-radius:99px;font-size:12px;border:1px solid #c9a24b55}.pill.s{color:var(--bad);border-color:#e5766f66}
dialog{background:#1a0a0f;color:var(--cream);border:1px solid var(--gold);border-radius:var(--r);padding:20px;width:min(92vw,420px)}dialog::backdrop{background:#000a}dialog form{display:grid;gap:12px}
/* motion */
@keyframes rise{from{opacity:0;transform:translateY(14px)}}@keyframes logo{from{opacity:0;transform:scale(.94)}}
@keyframes deal{from{opacity:0;transform:translate(-80px,-60px) rotate(-14deg)}}@keyframes flip{from{transform:rotateY(90deg)}}
@keyframes land{from{opacity:0;transform:translateY(-14px)}}@keyframes shake{50%{transform:translateY(5px)}}
@keyframes fly{0%{opacity:0;transform:translate(0,40px) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-55vh) rotate(18deg)}}
@keyframes glow{50%{box-shadow:0 0 34px 2px #c9a24b88}}@keyframes slide{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
@keyframes drift{from{transform:translateY(110vh) rotate(0)}to{transform:translateY(-30vh) rotate(40deg)}}
@media(max-width:760px){nav.top{display:none}header.top{padding:10px 14px}.brand{font-size:15px;letter-spacing:.14em}
 nav.bottom{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#0c0507f2;border-top:1px solid #c9a24b33;padding:4px 2px calc(4px + env(safe-area-inset-bottom))}
 nav.bottom a{flex:1;min-width:0;display:grid;justify-items:center;padding:6px 0;border-radius:8px;font-size:10px;gap:0}nav.bottom a b{font-size:18px;line-height:1.2}
 .welcome{grid-template-columns:1fr}.num{font-size:36px}.cd{width:54px;height:78px}.cd u{font-size:30px}.cd .c1,.cd .c2{font-size:16px}.cd .c1 i,.cd .c2 i{font-size:12px}.dock{padding:8px}.pchip{width:48px;height:48px;font-size:13px}.table{border-radius:90px/60px;padding:24px 10px}.board{grid-template-columns:repeat(6,1fr)}h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.float,.fnote{display:none}}

/* ===== premium tables (Teen Patti, Blackjack) ===== */
body[data-p=teenpatti],body[data-p=blackjack],body.prem{background:radial-gradient(900px 520px at 50% 24%,#1d4a31aa,transparent 65%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'%3E%3Cg fill='none' stroke='%23c9a24b' stroke-opacity='.11'%3E%3Cpath d='M0 40a40 40 0 0 1 80 0M10 40a30 30 0 0 1 60 0M20 40a20 20 0 0 1 40 0M30 40a10 10 0 0 1 20 0'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(1200px 700px at 50% -10%,#2b0d16 0%,transparent 60%),#070908;background-attachment:fixed}
.premium{background:linear-gradient(180deg,#15110d,#0a0806);border-color:#c9a24b55;padding:14px}
.felt{position:relative;border-radius:28px;padding:20px 14px 16px;margin:10px 0;text-align:center;background:radial-gradient(ellipse at 50% 15%,#25864d 0%,#18623b 45%,#0d3d24 100%);border:11px solid #2d180b;box-shadow:0 0 0 2px #c9a24b99,inset 0 0 80px #000c,inset 0 2px 0 #ffffff1f,0 26px 50px -24px #000}
.felt::before{content:"";position:absolute;inset:8px;border:2px solid #ffffff48;border-radius:18px;pointer-events:none}
.felt>*{position:relative}
.felt-title{font:italic 700 clamp(18px,4.2vw,30px)/1 var(--serif);letter-spacing:.2em;color:#ffffffc4;text-transform:uppercase;margin:2px 0 10px;text-shadow:0 2px 0 #0007}
.felt .felt-label{color:#ffffffcc;font-style:italic;letter-spacing:.22em;margin:6px 0}
.felt .tbl{min-height:120px}
.felt .seats{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}
.felt .seat{background:none;border:0;box-shadow:none;padding:6px 2px}
.felt .seat .av{width:58px;height:58px;border:3px solid #e8d08a;box-shadow:0 4px 12px #000a}
.felt .seat.act .av{box-shadow:0 0 0 4px #e8d08a55,0 0 26px 5px #e8d08aaa;animation:glow 1.4s ease-in-out infinite}
.felt .seat.w .av{box-shadow:0 0 34px 8px #f6d36b}
.felt .seat>b{display:inline-block;background:#08100cdd;border:1px solid #c9a24b88;border-radius:99px;padding:1px 12px;font:700 13px var(--sans);margin-top:2px;color:#fff}
.felt .seat small{color:#e4f3e8}
.felt .pot{background:#07100bcc;border-color:#e8d08a88;color:#fff}
.felt .banner{color:#f6e3a0;text-shadow:0 2px 8px #000a}.felt .banner.lose{color:#dfe9e2}
.actions{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;margin:14px 0 6px;min-height:48px}
.btn.round{width:92px;height:92px;border-radius:50%;padding:0;font:700 14px/1.1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#eafff0;border:4px solid #0a2415;background:radial-gradient(circle at 50% 30%,#35a15f,#0f4f2c 72%);box-shadow:0 0 0 3px #7fd49aa0,0 0 0 7px #0a2415,0 12px 24px -6px #000,inset 0 2px 8px #ffffff55}
.btn.round:hover{filter:brightness(1.12);transform:translateY(-2px) scale(1.03)}.btn.round:disabled{filter:grayscale(.8)}
.dock{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-top:8px;border-radius:20px;background:linear-gradient(180deg,#1d1c1b,#0c0b0b);border:1px solid #c9a24b44;box-shadow:inset 0 1px 0 #ffffff14,0 10px 24px -14px #000}
.dk{display:flex;gap:8px}.chips{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;flex:1}
.ib{width:42px;height:42px;border-radius:50%;border:2px solid #4b4a46;background:radial-gradient(circle at 50% 30%,#3b3b39,#161615);color:#ddd6c4;font:700 12px var(--sans);cursor:pointer;display:grid;place-items:center;padding:0;box-shadow:0 3px 8px #000a;transition:transform .15s,border-color .2s}
.ib:hover{border-color:var(--gold2);transform:translateY(-2px)}.chip .ib{width:34px;height:34px;font-size:15px}
.pchip{--c:#2f8be6;width:56px;height:56px;border-radius:50%;border:0;padding:0;cursor:pointer;color:#fff;font:700 15px var(--sans);text-shadow:0 1px 2px #000;background:radial-gradient(circle,#15161a 0 56%,transparent 57%),conic-gradient(var(--c) 0 12.5%,#f3f3f3 0 25%,var(--c) 0 37.5%,#f3f3f3 0 50%,var(--c) 0 62.5%,#f3f3f3 0 75%,var(--c) 0 87.5%,#f3f3f3 0);box-shadow:0 0 0 3px var(--c),0 6px 12px #000b;transition:transform .18s}
.pchip:hover{transform:translateY(-4px) rotate(8deg)}.pchip:active{transform:scale(.92)}
.meter{display:flex;justify-content:center;align-items:center;gap:clamp(12px,4vw,38px);flex-wrap:wrap;padding:10px 8px 2px;font-size:13px;color:#cfc8b6}.meter b{color:#fff;font-variant-numeric:tabular-nums}
.betin{width:96px;min-height:32px;padding:2px 8px;text-align:center;background:#0b0b0b;border:1px solid #c9a24b66;border-radius:8px;color:#fff;font-weight:700}.inl{display:inline;margin:0 6px 0 0;font-size:13px}

.bal{white-space:nowrap}

/* ===== teen patti house rules ===== */
.rules{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:10px;padding:10px 12px;border:1px dashed #c9a24b66;border-radius:12px}
.chk{display:flex;gap:8px;align-items:center;color:var(--cream,#f3ead2);font-size:14px;margin:0;flex-wrap:wrap}.chk input[type=checkbox]{min-height:0;width:18px;height:18px;accent-color:#c9a24b}.chk small{color:#bdb29a}
.peek{border:1px dashed #e8d08a99;border-radius:12px;padding:8px;margin:10px auto;max-width:460px;background:#0007}.peek>b{font:italic 700 12px var(--sans);letter-spacing:.15em;color:#f6e3a0}
.jokerbox{margin:6px auto 2px}.jokerbox .felt-label{color:#f6e3a0}
.sst{width:auto;min-height:44px;max-width:160px}
.cd.jk{color:#6d2fb0;background:linear-gradient(160deg,#fff,#efe3ff)}.cd.jk u{font-size:46px;color:#b8860b}.cd.jk .c1 i,.cd.jk .c2 i{font-size:8px;letter-spacing:.04em}
.cd.wild{box-shadow:0 0 0 3px #f6d36b,0 0 22px 4px #f6d36baa,0 8px 16px #000a}.cd.wild::after{content:"WILD";position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);background:#f6d36b;color:#3a2a00;font:700 9px var(--sans);letter-spacing:.1em;padding:1px 6px;border-radius:99px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.rules{max-width:100%;overflow:hidden}.rules label,.rules .chk{min-width:0;max-width:100%}.rules select{width:100%;max-width:100%}
@media (max-width:480px){header .brand,.brand{font-size:13px;letter-spacing:.12em}.chip{gap:6px}.chip .ib{width:30px;height:30px;font-size:13px}.bal{font-size:13px;padding:5px 10px}}

/* ===== bills instead of chips ===== */
.chips{gap:8px}
.bill{padding:0;border:0;background:none;cursor:pointer;width:96px;border-radius:5px;line-height:0;box-shadow:0 5px 12px #000b,0 0 0 1px #00000066;transition:transform .18s,box-shadow .18s}
.bill img{width:100%;height:auto;aspect-ratio:725/307;border-radius:5px;display:block;pointer-events:none;-webkit-user-drag:none}
.bill:hover{transform:translateY(-5px) rotate(-2deg);box-shadow:0 12px 20px -6px #000c,0 0 0 2px var(--gold2)}.bill:active{transform:scale(.94)}
.bill:focus-visible{outline:3px solid var(--gold2);outline-offset:3px}
@media(max-width:600px){.bill{width:calc(25% - 8px);min-width:68px}}

.dock .chips{order:3;flex:1 1 100%;gap:10px 8px;margin:4px 0 12px}
.bill{position:relative;width:min(126px,calc((100% - 48px)/7))}
.bv{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);background:#0c0a08;color:var(--gold2);border:1px solid #c9a24b99;border-radius:99px;font:700 12px/1.3 var(--sans);padding:0 9px;line-height:1.35}
@media(max-width:600px){.bill{width:calc(25% - 8px);min-width:0}.dock .chips{margin-bottom:14px}}

/* ===== Rooms: no site ribbon ===== */
body.inroom nav.top,body.inroom nav.bottom{display:none!important}
body.inroom main{padding-bottom:22px}

/* ===== Teen Patti full-screen game table ===== */
body.tpfs{overflow:hidden;height:100vh;height:100dvh;background:#050504}
body.tpfs header.top,body.tpfs nav,body.tpfs footer{display:none!important}
body.tpfs main{max-width:none;padding:0;margin:0;animation:none;height:100vh;height:100dvh}
.tpg{--ch:clamp(54px,min(23vh,30vw),140px);--av:clamp(32px,min(9.5vh,13vw),60px);--fs:clamp(10px,min(2.7vh,3.2vw),14px);position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden;color:#f3e9d2;background:radial-gradient(900px 500px at 50% 35%,#164a2e88,transparent 70%),linear-gradient(180deg,#0d0a07,#050403);padding:0 min(env(safe-area-inset-right),28px) env(safe-area-inset-bottom) min(env(safe-area-inset-left),28px)}
.tpg-top{flex:none;display:flex;align-items:center;gap:6px;padding:4px 8px;min-height:42px;border-bottom:1px solid #e8c15a44;background:linear-gradient(180deg,#17120c,#0a0806);position:relative;z-index:5}
.tpg-top .tt{flex:1;text-align:center;min-width:0}
.tpg-top .tt b{display:block;font:700 clamp(14px,3.4vh,20px)/1.1 var(--serif);letter-spacing:.22em;background:linear-gradient(180deg,#fff3c4,#e8c15a 60%,#9a6b1c);-webkit-background-clip:text;background-clip:text;color:transparent}
.tpg-top .tt small{display:block;font-size:10px;letter-spacing:.18em;color:#cdbf9f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb,.tpg-top .ib{flex:none;width:34px;height:34px;border-radius:50%;border:1.5px solid #e8c15a77;background:radial-gradient(circle at 50% 30%,#2d2a26,#0d0c0b);color:#f6e3a0;font:700 16px/1 var(--sans);display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:0 2px 6px #000a}
.tb:hover{border-color:#fff0b8}
.cashp{flex:none;font:700 12px var(--sans);padding:5px 11px;border:1px solid #e8c15a77;border-radius:99px;background:#0a0806;color:#cfc8b6;white-space:nowrap}.cashp b{color:#fff}
.tpg-table{position:relative;flex:1;min-height:0}
.tpg-felt{position:absolute;inset:6% 2.5% 11%;border-radius:50%/46%;background:radial-gradient(ellipse at 50% 38%,#1d7a45 0%,#125a33 48%,#093b21 100%);border:clamp(6px,1.4vh,14px) solid #1b1109;box-shadow:0 0 0 2px #e8c15a,0 0 0 5px #0b0704,0 0 0 6px #c9a24b99,0 24px 50px -20px #000,inset 0 0 70px #000d}
.tpg-felt::before{content:"";position:absolute;inset:6%;border:2px solid #e8c15a55;border-radius:50%/46%}
.tpg-felt::after{content:"♠";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:400 min(34vh,200px)/1 var(--serif);color:#fff;opacity:.04}
/* seats */
.tps{position:absolute;left:var(--lx);top:var(--ly);transform:translateX(-50%);width:max(104px,calc(var(--av)*2.8));text-align:center;z-index:3;font-size:var(--fs)}
.tps.me{top:auto;bottom:1%}
.tps .av{width:var(--av);height:var(--av);margin:0 auto 2px;font-size:calc(var(--av)*.48);color:#ffeccf;background:radial-gradient(circle at 35% 28%,#c42535,#6e0d18 70%);border:2px solid #f0cf72;box-shadow:0 0 0 2px #3a2208,0 4px 10px #000b}
.tps.act .av{animation:glow 1.4s ease-in-out infinite;box-shadow:0 0 0 2px #3a2208,0 0 0 4px #7fe3a0aa,0 0 22px 4px #7fe3a099}
.tps.w .av{box-shadow:0 0 0 2px #3a2208,0 0 26px 8px #f6d36b}
.tps.fold{opacity:.5;filter:saturate(.4)}
.tps .pl b{display:flex;align-items:center;justify-content:center;gap:4px;max-width:100%;padding:1px 8px;border-radius:99px;background:#090705ee;border:1px solid #e8c15a99;font:700 1em var(--sans);color:#fff;box-shadow:0 3px 8px #000a}
.tps .un{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tps .crown{color:#f0cf72}
.tps .dot{flex:none;width:7px;height:7px;border-radius:50%;background:#7a6a4a}.tps .dot.on{background:#35e07a;box-shadow:0 0 6px #35e07a}.tps .dot.off{background:#e2394a}
.tps .pl small{display:block;margin-top:2px;font-size:.88em;font-weight:700;color:#f6efe0;text-shadow:0 1px 3px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tps .fan{position:absolute;top:calc(var(--av)*.18);width:calc(var(--av)*.9);height:calc(var(--av)*.8)}
.tps.sl .fan{left:calc(50% + var(--av)*.45)}.tps.sr2 .fan{right:calc(50% + var(--av)*.45)}
.fan i{position:absolute;bottom:0;left:calc(var(--n,0)*28%);width:42%;height:78%;border-radius:3px;background:repeating-linear-gradient(45deg,#0f4a2c 0 3px,#0a3320 3px 6px);border:1.5px solid #e8c15a;box-shadow:0 3px 6px #000a;transform-origin:50% 100%}
.fan i:nth-child(1){--n:0;transform:rotate(-14deg)}.fan i:nth-child(2){--n:1}.fan i:nth-child(3){--n:2;transform:rotate(14deg)}
/* centre */
.tpg-center{position:absolute;left:var(--cl,24%);right:var(--cl,24%);top:26%;bottom:13%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;overflow:auto;text-align:center;scrollbar-width:none;z-index:2}
.tpg-center::-webkit-scrollbar{display:none}
.tpg-center>*{flex:none}
.tpg-center>:first-child{margin-top:auto}.tpg-center>:last-child{margin-bottom:auto}
.tpg-center .pot{position:relative;display:inline-flex;align-items:center;gap:8px;padding:calc(var(--fs)*1.1) calc(var(--fs)*1.4) calc(var(--fs)*.5);border-radius:16px;background:linear-gradient(180deg,#0e0b08,#050403);border:1.5px solid #e8c15a;box-shadow:0 0 14px #e8c15a55;color:#fff;max-width:100%}
.tpg-center .pot .stack{display:none}
.tpg-center .pot::before{content:"";flex:none;width:calc(var(--fs)*1.8);height:calc(var(--fs)*1.8);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff0b8,#e8b34a 55%,#8a5a12);border:2px solid #7a5412;box-shadow:0 2px 4px #000a}
.tpg-center .pcap{position:absolute;top:2px;left:0;right:0;font:700 calc(var(--fs)*.7) var(--sans);letter-spacing:.3em;color:#e8c15a}
.tpg-center .ptx{margin-top:calc(var(--fs)*.5);font:700 var(--fs) var(--sans)}
.tpg-center .felt-label{color:#fff;font:700 calc(var(--fs)*1.05) var(--serif);letter-spacing:.2em;margin:2px 0;text-shadow:0 2px 5px #000}
.tpg-center .felt-label.turn.mine{color:#f6e3a0}
.tpg-center .cards{gap:calc(var(--ch)*.1);margin:2px 0;min-height:0;flex-wrap:nowrap}
.tpg-center .cd{width:calc(var(--ch)*.7);height:var(--ch);border-radius:calc(var(--ch)*.08);background:linear-gradient(160deg,#fffdf6,#efe3c6);border:2px solid #e8c15a;box-shadow:0 8px 16px #000b}
.tpg-center .cd .c1,.tpg-center .cd .c2{font-size:calc(var(--ch)*.2)}.tpg-center .cd .c1{left:calc(var(--ch)*.05);top:calc(var(--ch)*.04)}.tpg-center .cd .c2{right:calc(var(--ch)*.05);bottom:calc(var(--ch)*.04)}
.tpg-center .cd .c1 i,.tpg-center .cd .c2 i{font-size:calc(var(--ch)*.16)}.tpg-center .cd u{font-size:calc(var(--ch)*.48)}
.tpg-center .cd.back{background:repeating-linear-gradient(45deg,#0f4a2c 0 6px,#0a3320 6px 12px);border:2px solid #e8c15a}
.tpg-center .banner{font:700 calc(var(--fs)*2) var(--serif);color:#f6e3a0;min-height:0;margin:2px 0;line-height:1.1}
.tpg-center .seats{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:2px 0}
.tpg-center .seats .seat{flex:0 1 auto;min-width:0;background:#0a0a08b0;border:1px solid #e8c15a55;border-radius:10px;padding:4px 6px;font-size:var(--fs)}.tpg-center .seats .seat.w{border-color:#f6d36b;box-shadow:0 0 16px -2px #f6d36b}
.tpg-center .seats .cards{gap:3px;flex-wrap:nowrap;min-height:0}.tpg-center .seats .cd{width:calc(var(--ch)*.3);height:calc(var(--ch)*.43);border-width:1px}
.tpg-center .seats .cd .c1,.tpg-center .seats .cd .c2{font-size:calc(var(--ch)*.1)}.tpg-center .seats .cd .c1 i,.tpg-center .seats .cd .c2 i{font-size:calc(var(--ch)*.08)}.tpg-center .seats .cd u{font-size:calc(var(--ch)*.22)}
.tpg-center .jokerbox .cd{width:calc(var(--ch)*.35);height:calc(var(--ch)*.5)}.tpg-center .peek{max-width:100%}
/* bottom action bar */
.tpg-bar{position:relative;flex:none;padding:6px 8px;border-top:1px solid #e8c15a55;background:linear-gradient(180deg,#14110e,#070605);z-index:5}
.tpg-act{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;min-height:40px}
.tpg-act .btn{min-height:40px;padding:6px 14px;border-radius:10px;font:700 14px var(--sans);white-space:nowrap}
.tpg-act .btn.round{width:auto;height:auto;border-radius:10px;padding:6px 20px;letter-spacing:.03em;text-transform:none;color:#eafff0;background:linear-gradient(180deg,#3bd16f,#0f7a38);border:2px solid #7fe3a0;box-shadow:0 0 14px #2fe07a66,inset 0 2px 0 #ffffff55}
.tpg-act .btn[data-do=show],.tpg-act .btn[data-do=side]{color:#2a1a04;background:linear-gradient(180deg,#f7e3a0,#d9a93a 55%,#b8821f);border:1px solid #fff0b8}
.tpg-act .btn.red{color:#fff;background:linear-gradient(180deg,#d02a44,#8a1226);border:1.5px solid #ff5a73}
.tpg-act .btn.ghost{background:#0b0907e6;color:#f6e3a0;border:1px solid #e8c15a99}
.tpg-act .sst{min-height:40px;background:#0b0907;color:#fff;border-color:#e8c15a99;max-width:110px}
.tpg-act [data-do=pack]{order:1}.tpg-act [data-do=see]{order:2}.tpg-act .sst,.tpg-act [data-do=side]{order:3}.tpg-act .stp{order:4}.tpg-act [data-do=chaal],.tpg-act [data-do=start]{order:5}.tpg-act [data-do=show]{order:6}
.stp{display:flex;align-items:center;gap:6px}
.stp .sb{flex:none;width:38px;height:38px;border-radius:9px;border:1.5px solid #fff0b8;background:linear-gradient(180deg,#f7e3a0,#c9a24b);color:#2a1a04;font:700 20px/1 var(--sans);padding:0;cursor:pointer}
.stp .sb.ch{background:radial-gradient(circle at 50% 30%,#2d2a26,#0d0c0b);border-color:#e8c15a99;font-size:17px}
.stp .sv{display:flex;align-items:center;gap:6px;background:#050403;border:1.5px solid #e8c15a99;border-radius:10px;padding:0 8px;min-height:38px}
.stp .sv label{margin:0;font-size:11px;color:#cdbf9f}.stp .betin{width:72px;border:0;background:transparent;min-height:34px;padding:0;font-size:16px;text-align:center;color:#fff}
.tpg-tray{position:absolute;left:8px;right:8px;bottom:100%;margin-bottom:6px;z-index:6}.tpg-tray[hidden]{display:none}
.tpg-tray .dock{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:0;padding:8px 8px 14px;border-radius:14px;background:#0d0b09f5;border:1.5px solid #e8c15a99;box-shadow:0 -10px 30px #000c}
.tpg-tray .dk{flex:none;display:flex;gap:5px}.tpg-tray .ib{width:32px;height:32px;font-size:12px;border:1.5px solid #e8c15a66;color:#f3e9d2}.tpg-tray .ib[data-x2],.tpg-tray .ib[data-min]{width:auto;padding:0 8px;border-radius:99px}
.tpg-tray .chips{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding-bottom:12px;justify-content:flex-start}
.tpg-tray .bill{position:relative;flex:0 0 clamp(70px,11vw,110px);padding:2px;border:1.5px solid #e8c15a66;background:#0b0a08;border-radius:7px}
.tpg-tray .bill .bv{position:absolute;left:50%;bottom:-11px;transform:translateX(-50%);margin:0;min-width:40px;padding:0 8px;border-radius:99px;background:#0a0806;border:1.5px solid #e8c15a;color:#fff;font:700 12px var(--sans);text-align:center}
/* slide-out menu + settings overlay */
.tpbd,.tpbd2{position:absolute;inset:0;background:#000b;opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.menu-open .tpbd,.set-open .tpbd2{opacity:1;pointer-events:auto}
.tpmenu{position:absolute;top:0;bottom:0;left:0;width:min(430px,92vw);z-index:21;overflow:auto;padding:12px 14px;background:linear-gradient(180deg,#17120c,#0a0806);border-right:1.5px solid #e8c15a88;transform:translateX(-100%);visibility:hidden;transition:transform .25s,visibility 0s .25s}
.menu-open .tpmenu{transform:none;visibility:visible;transition:transform .25s}
.tpset{position:absolute;left:50%;top:50%;z-index:22;width:min(560px,94vw);max-height:92%;overflow:auto;padding:12px 16px 16px;border-radius:16px;background:linear-gradient(180deg,#17120c,#0a0806);border:1.5px solid #e8c15a;box-shadow:0 30px 80px #000;transform:translate(-50%,-46%) scale(.97);opacity:0;visibility:hidden;transition:transform .2s,opacity .2s,visibility 0s .2s}
.set-open .tpset{transform:translate(-50%,-50%);opacity:1;visibility:visible;transition:transform .2s,opacity .2s}
.mh{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.mh b{font:700 18px var(--serif);letter-spacing:.08em;color:#f6e3a0}
.tpmenu .plist{margin-top:12px}.tpmenu .pr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #e8c15a22}
.tpmenu h2{font-size:22px}
/* portrait */
@media (max-aspect-ratio:1/1){
 .tps{left:var(--px);top:var(--py)}.tps.me{top:auto;bottom:1%;left:50%}
 .tpg-felt{inset:3% 1% 9%;border-radius:42%/22%}
 .tpg-center{--cl:4%;top:calc(var(--rows,1)*17% + 6%);bottom:20%}
 .tpg-act .stp{order:0;flex-basis:100%;justify-content:center}
 .tpg-act .btn{padding:6px 12px}
 .tpg-felt::after{font-size:min(40vw,180px)}
 .tps.sl .fan,.tps.sr2 .fan{display:none}
}
@media (max-height:420px){.tpg-top{min-height:36px;padding:2px 8px}.tb,.tpg-top .ib{width:30px;height:30px}.tpg-act .btn,.stp .sb{min-height:36px;height:36px}.stp .sv{min-height:36px}.tpg-bar{padding:4px 8px}}
@media(prefers-reduced-motion:reduce){.tps.act .av{animation:none}}
@media (max-aspect-ratio:1/1){.tps{width:90px}.tpg-top .tt b{display:none}.tpg-top .tt small{font-size:11px;letter-spacing:.12em}}
@media (max-aspect-ratio:1/1){.tps{width:98px}.tps .pl small{font-size:.8em}.tpg-top .tt{display:none}.tpg-top .cashp{margin-left:auto}}
/* side show reveal overlay */
.tppk{position:absolute;left:5%;right:5%;top:4%;bottom:4%;z-index:9;display:flex;align-items:center;justify-content:center;padding:10px;border-radius:18px;background:linear-gradient(180deg,#0e0b08f2,#050403f2);border:1.5px solid #e8c15a;box-shadow:0 0 0 3px #000a,0 20px 50px #000;overflow:auto}
.tppk>.tb{position:absolute;right:8px;top:8px;z-index:2}
.tppk .peek{border:0;background:none;margin:0;max-width:none;padding:0;width:100%}
.tppk .peek>b{display:block;margin:0 34px 8px;font:700 calc(var(--fs)*1.05) var(--serif);letter-spacing:.14em;color:#f6e3a0;font-style:normal;text-transform:uppercase}
.tppk .seats{display:flex;justify-content:center;gap:clamp(8px,3vw,28px);flex-wrap:wrap}
.tppk .seat{background:#0a0a08b0;border:1px solid #e8c15a66;border-radius:12px;padding:6px 10px;min-width:0}.tppk .seat>b{display:block;font:700 var(--fs) var(--sans);color:#fff}
.tppk .cards{gap:calc(var(--ch)*.08);flex-wrap:nowrap;min-height:0;margin:4px 0}
.tppk .cd{width:calc(var(--ch)*.5);height:calc(var(--ch)*.72);border-radius:6px;border:1.5px solid #e8c15a;background:linear-gradient(160deg,#fffdf6,#efe3c6)}
.tppk .cd .c1,.tppk .cd .c2{font-size:calc(var(--ch)*.15)}.tppk .cd .c1 i,.tppk .cd .c2 i{font-size:calc(var(--ch)*.12)}.tppk .cd u{font-size:calc(var(--ch)*.34)}
.tppk .felt-label{font-size:calc(var(--fs)*.8);margin:2px 0}.tppk small{color:#e8dfc6;font-size:calc(var(--fs)*.95)}

/* ===== six-card hands: best 3 + other 3 side by side, sized to always fit ===== */
.tpg.c6{--ch:clamp(46px,min(19vh,17vw),112px)}
.six{display:flex;justify-content:center;align-items:flex-start;gap:calc(var(--ch)*.28);flex-wrap:nowrap;max-width:100%}
.six .grp{min-width:0}.six .grp>.felt-label{font-size:calc(var(--fs)*.78)!important;letter-spacing:.14em!important;margin:0 0 2px!important}
.six .grp.best .cd{border-color:#fff0b8!important;box-shadow:0 0 12px #e8c15aaa,0 6px 12px #000a!important}
.tpg-center .six .cd{width:calc(var(--ch)*.62);height:calc(var(--ch)*.88)}
.tpg-center .six .cd .c1,.tpg-center .six .cd .c2{font-size:calc(var(--ch)*.17)}.tpg-center .six .cd .c1 i,.tpg-center .six .cd .c2 i{font-size:calc(var(--ch)*.13)}.tpg-center .six .cd u{font-size:calc(var(--ch)*.4)}
.tpg-center .seats .six{gap:6px}.tpg-center .seats .six .grp>.felt-label{display:none}
.tpg-center .seats .six .cd{width:calc(var(--ch)*.24);height:calc(var(--ch)*.34)}.tpg-center .seats .six .cd .c1,.tpg-center .seats .six .cd .c2{font-size:calc(var(--ch)*.08)}.tpg-center .seats .six .cd .c1 i,.tpg-center .seats .six .cd .c2 i{font-size:calc(var(--ch)*.06)}.tpg-center .seats .six .cd u{font-size:calc(var(--ch)*.16)}
.tppk .six{gap:10px}.tppk .six .grp>.felt-label{display:none}.tppk .six .cd{width:calc(var(--ch)*.3);height:calc(var(--ch)*.43)}
@media (max-aspect-ratio:1/1){
 .tpg.c6{--ch:clamp(46px,min(15vh,17vw),100px)}
 .six{flex-wrap:wrap;gap:6px}.six .grp{flex:0 0 100%}
 .tpg-center .six .cd{width:calc(min(15vh,27vw)*.7);height:min(15vh,27vw)}
 .tpg-center .six .cd .c1,.tpg-center .six .cd .c2{font-size:calc(min(15vh,27vw)*.2)}.tpg-center .six .cd .c1 i,.tpg-center .six .cd .c2 i{font-size:calc(min(15vh,27vw)*.15)}.tpg-center .six .cd u{font-size:calc(min(15vh,27vw)*.46)}
}
.tpg-center .felt-label.warn,.felt-label.warn{color:#ffd37a;font-size:calc(var(--fs)*.85);letter-spacing:.1em}
.cbadge{color:#ffd37a;font-weight:700}
/* custom deal picker (host settings) */
.cdeal{margin-top:12px;padding:10px;border:1px dashed #e8c15a88;border-radius:12px;background:#0a0806aa}.cdeal>b{display:block;font:700 15px var(--sans);color:#f6e3a0;margin-bottom:2px}.cdeal>small{display:block;color:#cdbf9f;margin-bottom:8px;line-height:1.35}
.cdp{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chipb{min-height:34px;padding:4px 12px;border-radius:99px;border:1.5px solid #e8c15a66;background:#0b0907;color:#f3e9d2;font:700 13px var(--sans);cursor:pointer}.chipb i{font-style:normal;color:#cdbf9f;margin-left:4px}.chipb.on{background:linear-gradient(180deg,#f7e3a0,#c9a24b);color:#2a1a04;border-color:#fff0b8}.chipb.on i{color:#4a3208}
.cgrid{display:grid;gap:4px}.crow{display:grid;grid-template-columns:repeat(13,1fr);gap:3px}
.cc{min-width:0;min-height:34px;padding:0;border-radius:6px;border:1px solid #bfae80;background:linear-gradient(160deg,#fffdf6,#efe3c6);color:#16110a;font:700 clamp(10px,2.6vw,14px) var(--sans);cursor:pointer}.cc.red{color:#c0192e}.cc.on{outline:3px solid #35e07a;outline-offset:-1px;background:#e6ffe9}.cc:disabled{opacity:.28;cursor:not-allowed}

/* you */
.tps.me .av{border-color:#fff0b8;box-shadow:0 0 0 2px #3a2208,0 0 0 4px #e8c15a,0 4px 10px #000b}
/* compact joker row: label + mini card on one line */
.tpg-center .jokerbox{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;max-width:100%}
.tpg-center .jokerbox .felt-label{margin:0;font-size:calc(var(--fs)*.8);letter-spacing:.1em;white-space:nowrap}
.tpg-center .jokerbox .cards{margin:0}.tpg-center .jokerbox .cd{width:calc(var(--ch)*.3);height:calc(var(--ch)*.43);border-width:1.5px}
.tpg-center .jokerbox .cd .c1,.tpg-center .jokerbox .cd .c2{font-size:calc(var(--ch)*.12)}.tpg-center .jokerbox .cd .c1 i,.tpg-center .jokerbox .cd .c2 i{font-size:calc(var(--ch)*.09)}.tpg-center .jokerbox .cd u{font-size:calc(var(--ch)*.22)}
/* short landscape phones: horizontal seats (avatar + text side by side), tighter centre */
@media (min-aspect-ratio:101/100) and (max-height:520px){
 .tpg{--ch:clamp(48px,min(19.5vh,22vw),120px);--av:clamp(28px,min(9vh,8vw),44px)}
 .tpg.c6{--ch:clamp(44px,min(16vh,14vw),96px)}
 .tps{display:flex;align-items:center;gap:6px;width:auto;max-width:34%;text-align:left}
 .tps .av{margin:0;flex:none}.tps .pl{min-width:0}.tps .pl b{justify-content:flex-start;max-width:132px;padding:1px 7px}
 .tps .pl small{margin-top:1px}.tps .fan{display:none}
 .tps.me{bottom:2%}
 .tpg-center{top:calc(var(--av) + 8px);bottom:12%;left:22%;right:22%}
 .tpg-center .pot{padding:calc(var(--fs)*.95) calc(var(--fs)*1.1) calc(var(--fs)*.35)}
 .tpg-center .felt-label.turn,.tpg-center .felt-label{margin:0}
 .tpg-felt{inset:4% 2% 10%}
}
/* ---- PWA install card + update prompt ---- */
.pwa:empty{display:none}.pwa{margin:10px 0}.pwai{padding:8px 12px;border:1px solid #e8c15a66;border-radius:10px;background:#0b0907cc;font-size:14px}.pwai summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-weight:700;color:#f6e3a0}.pwai ol{margin:6px 0 4px;padding-left:20px;color:#e8dfc6}
#upd{position:fixed;z-index:80;left:50%;top:8px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:6px 8px 6px 14px;border-radius:99px;background:#14110ef5;border:1px solid #e8c15a;color:#f6e3a0;font:700 13px var(--sans);box-shadow:0 6px 20px #000c}#upd .btn{min-height:36px}
/* ---- table animations: tokens live in a fixed layer outside the table so repaints never destroy them ---- */
#anl{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}
#anl .anf,#anl .anp,#anl .anr{position:fixed;left:0;top:0;will-change:transform,opacity}
.anf.cdb{border-radius:3px;border:1.5px solid #e8c15a;background:repeating-linear-gradient(45deg,#0f4a2c 0 4px,#0a3320 4px 8px);box-shadow:0 2px 5px #000a}
.anf.chp,.anp{border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3c4,#e8c15a 55%,#9a6b1c);border:1.5px solid #fff0b8;box-shadow:0 2px 4px #000a}.anp{border-width:1px}
.anr{border-radius:50%;border:3px solid #f6d36b;box-shadow:0 0 18px 4px #f6d36baa}
.anfl{position:fixed;background:radial-gradient(circle at 50% 50%,#fff3c4,#e8c15a55 60%,transparent 80%)}
/* ---- showdown ---- */
@keyframes sddim{from{opacity:0}to{opacity:.55}}
.tpg.sd .tpg-table::before{content:"";position:absolute;inset:0;z-index:4;background:#000;opacity:.55;pointer-events:none;animation:sddim .35s both;animation-delay:calc(var(--sdt,0)*-1s)}
.tpg.sd .tpg-center{z-index:5}.tpg.sd.sdw .tps.w{z-index:6}
.tpg.sd:not(.sdw) .tpg-center .banner,.tpg.sd:not(.sdw) .tpg-center .felt-label.warn{opacity:0}
.tpg.sd:not(.sdw) .tps.w .av{box-shadow:0 0 0 2px #3a2208}
.tpg.sd:not(.sdw) .tpg-center .seats .seat.w{border-color:#e8c15a55;box-shadow:none}
.sdbk{position:absolute;inset:0;z-index:3;border-radius:inherit;border:2px solid #e8c15a;background:repeating-linear-gradient(45deg,#0f4a2c 0 6px,#0a3320 6px 12px);pointer-events:none}
.tpg-act .btn.sdwait{opacity:.65;filter:saturate(.5)}
.anset{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px}.anset select{min-height:38px;max-width:150px}
.bkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0}
.bkt{min-height:64px;padding:10px;border-radius:12px;border:1px solid #c9a24b55;background:#1d0a10;color:var(--cream);cursor:pointer;text-align:center;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;font:inherit}
.bkt b{color:var(--gold2);font-size:18px}.bkt small{color:var(--mut)}
.bkt[aria-pressed=true]{border-color:var(--gold2);box-shadow:0 0 18px -6px var(--gold)}.bkt:disabled{opacity:.45;cursor:not-allowed}.bkt:focus-visible{outline:3px solid var(--gold2);outline-offset:2px}
.bkterms{border:1px dashed #c9a24b66;border-radius:12px;padding:12px;margin:10px 0}.bkloan.late{border-color:#e5766f66}

/* Phase 3: weekly leaderboard */
.lbme{margin-top:10px;padding:10px 12px;border:1px dashed #c9a24b66;border-radius:12px;background:#1d0a10}.lbtabs .btn{min-height:40px;white-space:nowrap;flex:0 0 auto}.lbtabs{padding-bottom:6px}
.lbl{list-style:none;margin:6px 0;padding:0}.lbl li{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 8px;border-bottom:1px solid #c9a24b1c}.lbl li.me{background:#e8c15a14;border-radius:8px}
.lbl .rk{width:34px;text-align:center;font:600 20px var(--serif);color:var(--gold2)}.lbl .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lbl b{font-variant-numeric:tabular-nums;color:var(--gold2)}
