:root {
  --felt:#1b4d30; --felt2:#163d26; --felt3:#0e2718;
  --gold:#c9a84c; --gold2:#e8c96a; --gold3:#7a5c1e;
  --cream:#f5ead6; --red:#c0392b;
  --chip1:#777; --chip5:#c0392b; --chip25:#1e8449; --chip100:#2471a3; --chip500:#7d3c98;
}
*{margin:0;padding:0;box-sizing:border-box;}
 
body {
  background:radial-gradient(ellipse at 50% 25%,#0e3020 0%,#050f08 100%);
  min-height:100vh; font-family:'Cinzel',serif; color:var(--cream);
  display:flex; flex-direction:column; align-items:center;
  padding:16px 10px 50px; overflow-x:hidden;
}
 
/* ── TABLE ── */
.table-wrap{position:relative;width:100%;max-width:960px;}
 
.table {
  background:radial-gradient(ellipse 88% 78% at 50% 42%,#24673e 0%,var(--felt) 52%,var(--felt2) 78%,var(--felt3) 100%);
  border-radius:50%/16%;
  border:11px solid var(--gold3);
  outline:4px solid #3e2808;
  box-shadow:0 0 0 7px #2a1a04, 0 24px 90px rgba(0,0,0,.95), inset 0 0 120px rgba(0,0,0,.35);
  padding:56px 80px 40px;
  position:relative; z-index:1; min-height:680px;
}
 
.table-arc {
  position:absolute; top:24px; left:50%; transform:translateX(-50%);
  font-size:10px; letter-spacing:4px; color:var(--gold); opacity:.6;
  white-space:nowrap; pointer-events:none;
}
 
/* ── DECK SHOE ── */
.deck-shoe {
  position:absolute; right:18px; top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; align-items:center; gap:5px; z-index:20;
}
.shoe-body {
  width:60px;
  background:linear-gradient(170deg,#2e1e06,#180e02);
  border:2px solid var(--gold3); border-radius:7px 7px 5px 5px;
  padding:7px 6px 10px;
  box-shadow:4px 5px 14px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.08);
  position:relative;
}
.shoe-body::after {
  content:'BEE'; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
  font-size:7px; letter-spacing:2px; color:var(--gold3); opacity:.7;
}
.shoe-card-stack {
  display:flex; flex-direction:column; align-items:center; gap:0;
}
.s-card {
  width:44px; height:5px;
  background:linear-gradient(90deg,#1a237e 0%,#1e2d9e 40%,#1a237e 100%);
  border:1px solid #0f185a; border-radius:2px 2px 0 0;
  margin-bottom:-2px;
  box-shadow:0 1px 2px rgba(0,0,0,.4);
}
.s-card:last-child{border-radius:2px;margin-bottom:0;}
.shoe-label{font-size:9px;letter-spacing:1px;color:rgba(201,168,76,.5);text-align:center;}
#deck-count{font-size:12px;color:var(--gold2);}
 
/* ── TITLE ── */
h1 {
  text-align:center; font-family:'Playfair Display',serif; font-size:2.3rem;
  color:var(--gold); letter-spacing:5px; margin:4px 0 14px;
  text-shadow:0 0 30px rgba(201,168,76,.45),2px 3px 8px rgba(0,0,0,.9);
}
 
/* ── BANKROLL BAR ── */
.bankroll-bar {
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(0,0,0,.48); border:1px solid rgba(201,168,76,.28);
  border-radius:9px; padding:10px 18px; margin-bottom:14px;
}
.br-col{display:flex;flex-direction:column;gap:2px;}
.br-lbl{font-size:9px;letter-spacing:2px;color:rgba(201,168,76,.5);}
.br-val{font-family:'Playfair Display',serif;font-size:21px;color:var(--gold2);}
 
/* ── ZONES ── */
.zone{display:flex;flex-direction:column;align-items:center;gap:7px;margin:7px 0;}
.zone-lbl{font-size:10px;letter-spacing:3px;color:rgba(201,168,76,.5);}
.score-bub {
  background:rgba(0,0,0,.58); border:1px solid rgba(201,168,76,.32);
  border-radius:20px; padding:3px 14px; font-size:12px;
  color:var(--gold2); letter-spacing:1px; transition:border-color .3s,color .3s;
}
.score-bub.bust{border-color:rgba(192,57,43,.7);color:#e05555;}
.score-bub.bj  {border-color:rgba(93,222,110,.7);color:#5dde6e;}
 
/* ── HAND CONTAINER ── */
.hands-row {
  display:flex; gap:22px; justify-content:center; align-items:flex-start;
  min-height:150px; flex-wrap:wrap;
}
 
/* ── HAND SLOT ── */
.hand-slot {
  display:flex; flex-direction:column; align-items:center; gap:6px;
  position:relative; transition:transform .25s, filter .25s;
  border-radius:14px; padding:8px 10px 6px;
}
.hand-slot.active::before {
  content:''; position:absolute; inset:-4px; border-radius:14px;
  border:2px solid rgba(201,168,76,.6);
  box-shadow:0 0 18px rgba(201,168,76,.3); pointer-events:none;
  animation:ring-pulse 1.8s ease-in-out infinite;
}
@keyframes ring-pulse{
  0%,100%{box-shadow:0 0 12px rgba(201,168,76,.25);}
  50%{box-shadow:0 0 28px rgba(201,168,76,.55);}
}
.hand-slot.dim{filter:brightness(.45);}
.hand-slot.selectable{cursor:pointer;}
.hand-slot.selectable:hover{transform:translateY(-3px);filter:brightness(.85);}
 
.hand-cards{display:flex;justify-content:center;align-items:flex-end;min-height:120px;}
 
.hand-lbl{font-size:10px;letter-spacing:2px;color:rgba(201,168,76,.65);
  background:rgba(0,0,0,.4);padding:2px 10px;border-radius:10px;}
 
.hand-bet-tag{font-size:11px;color:var(--gold2);background:rgba(0,0,0,.5);
  border:1px solid rgba(201,168,76,.28);border-radius:11px;padding:1px 10px;letter-spacing:1px;}
 
/* ── CARD WRAP ── */
.card-wrap {
  display:inline-block; position:relative;
  margin-left:-16px; transition:transform .18s; z-index:1;
}
.card-wrap:first-child{margin-left:0;}
.card-wrap:hover{transform:translateY(-10px) scale(1.04)!important;z-index:30;}
 
.card-wrap.deal-anim{animation:card-fly .42s cubic-bezier(.18,1,.28,1) both;}
@keyframes card-fly{
  from{opacity:0;transform:translate(180px,-120px) rotate(20deg) scale(.65);}
  to  {opacity:1;transform:translate(0,0) rotate(0) scale(1);}
}
 
.card-wrap.split-anim{animation:split-pop .38s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes split-pop{
  from{opacity:0;transform:translateY(-50px) scale(.6) rotate(-8deg);}
  to  {opacity:1;transform:translateY(0) scale(1) rotate(0);}
}
 
.card-wrap.flip-anim{animation:card-flip .5s ease both;}
@keyframes card-flip{
  0%  {transform:rotateY(0);}
  50% {transform:rotateY(90deg);}
  100%{transform:rotateY(0);}
}
 
/* ── RESULT BADGE ── */
.hand-result{
  font-size:12px;letter-spacing:1px;padding:2px 12px;border-radius:12px;
  font-family:'Cinzel',serif;font-weight:600;display:none;
}
.hand-result.on{display:inline-block;}
.hr-win {background:rgba(93,222,110,.2);border:1px solid rgba(93,222,110,.55);color:#5dde6e;}
.hr-lose{background:rgba(224,85,85,.2); border:1px solid rgba(224,85,85,.55); color:#e05555;}
.hr-push{background:rgba(201,168,76,.2);border:1px solid rgba(201,168,76,.55);color:var(--gold2);}
.hr-bj  {background:rgba(93,222,110,.3);border:1px solid rgba(93,222,110,.8); color:#7fffaa;}
 
/* ── DIVIDER ── */
.divider{width:74%;height:1px;margin:6px auto;
  background:linear-gradient(90deg,transparent,var(--gold3),transparent);opacity:.5;}
 
/* ── MESSAGE ── */
.msg{
  text-align:center;font-family:'Playfair Display',serif;font-size:20px;
  color:var(--gold2);letter-spacing:2px;min-height:34px;
  text-shadow:0 0 14px rgba(201,168,76,.45);transition:color .3s;
}
.msg.win {color:#5dde6e;text-shadow:0 0 22px rgba(93,222,110,.7);}
.msg.lose{color:#e05555;text-shadow:0 0 22px rgba(224,85,85,.7);}
.msg.push{color:var(--gold2);}
 
/* ── BET AREA ── */
.bet-area{display:flex;flex-direction:column;align-items:center;gap:6px;}
.bet-chips-vis{display:flex;align-items:flex-end;min-height:34px;gap:0;}
.mc{width:34px;height:34px;border-radius:50%;border:2.5px dashed rgba(255,255,255,.33);
  margin-left:-9px;box-shadow:0 2px 7px rgba(0,0,0,.5);flex-shrink:0;}
.mc:first-child{margin-left:0;}
.mc1  {background:radial-gradient(circle at 35% 35%,#bbb,var(--chip1));}
.mc5  {background:radial-gradient(circle at 35% 35%,#e07070,var(--chip5));}
.mc25 {background:radial-gradient(circle at 35% 35%,#40aa40,var(--chip25));}
.mc100{background:radial-gradient(circle at 35% 35%,#4a90d0,var(--chip100));}
.mc500{background:radial-gradient(circle at 35% 35%,#a060c0,var(--chip500));}
 
/* ── CHIPS ── */
.chips-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin:8px 0;}
.chip{
  width:60px;height:60px;border-radius:50%;
  border:4px dashed rgba(255,255,255,.36);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;cursor:pointer;position:relative;
  color:#fff;font-family:'Cinzel',serif;
  box-shadow:0 5px 14px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.18);
  user-select:none;transition:transform .15s,box-shadow .15s;
  text-shadow:0 1px 3px rgba(0,0,0,.9);
}
.chip::before{content:'';position:absolute;inset:4px;border-radius:50%;border:2px solid rgba(255,255,255,.15);}
.chip:hover{transform:translateY(-6px) scale(1.14);box-shadow:0 12px 22px rgba(0,0,0,.65);}
.chip:active{transform:scale(.93);}
.chip.off{opacity:.28;pointer-events:none;}
.c1  {background:radial-gradient(circle at 35% 35%,#ccc,var(--chip1));}
.c5  {background:radial-gradient(circle at 35% 35%,#e07070,var(--chip5));}
.c25 {background:radial-gradient(circle at 35% 35%,#40aa40,var(--chip25));}
.c100{background:radial-gradient(circle at 35% 35%,#4a90d0,var(--chip100));}
.c500{background:radial-gradient(circle at 35% 35%,#a060c0,var(--chip500));}
 
/* ── BUTTONS ── */
.btn-row{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:8px 0;}
.btn{
  padding:11px 22px;border:2px solid var(--gold3);border-radius:7px;
  background:linear-gradient(160deg,#1e1e1e,#2a2a2a);
  color:var(--gold);font-family:'Cinzel',serif;font-size:12px;
  letter-spacing:2px;cursor:pointer;transition:all .2s;text-transform:uppercase;
  box-shadow:0 4px 10px rgba(0,0,0,.4);
}
.btn:hover:not(:disabled){
  background:linear-gradient(160deg,#2a2a2a,#383838);
  border-color:var(--gold);box-shadow:0 0 16px rgba(201,168,76,.3);transform:translateY(-1px);
}
.btn:active:not(:disabled){transform:scale(.97);}
.btn:disabled{opacity:.26;cursor:not-allowed;}
.btn-deal{background:linear-gradient(160deg,#1c5c2e,#287840);border-color:#3aaa50;color:#fff;font-size:14px;padding:13px 40px;}
.btn-deal:hover:not(:disabled){background:linear-gradient(160deg,#28783c,#349e50);border-color:#60cc74;box-shadow:0 0 22px rgba(60,180,80,.4);}
.btn-add{background:linear-gradient(160deg,#5c3a00,#8a5a00);border-color:var(--gold);color:var(--gold2);}
.btn-add:hover:not(:disabled){background:linear-gradient(160deg,#7a4e00,#aa7200);}
.btn-clr{border-color:#555;color:#999;}
 
/* ── INSURANCE ── */
.ins-bar{
  background:rgba(0,0,0,.62);border:1px solid var(--gold3);border-radius:10px;
  padding:10px 20px;text-align:center;font-size:13px;color:var(--gold2);letter-spacing:1px;
  display:none;
}
.ins-bar.on{display:block;}
 
/* ── MODAL ── */
.modal-bg{
  position:fixed;inset:0;background:rgba(0,0,0,.84);z-index:200;
  display:none;align-items:center;justify-content:center;backdrop-filter:blur(7px);
}
.modal-bg.on{display:flex;}
.modal{
  background:linear-gradient(160deg,#1a1a1a,#0d0d0d);
  border:2px solid var(--gold3);border-radius:16px;padding:36px;
  width:340px;box-shadow:0 0 60px rgba(201,168,76,.22);
}
.modal h2{font-family:'Playfair Display',serif;color:var(--gold);text-align:center;margin-bottom:22px;}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.mbtn{
  padding:13px;border:1px solid var(--gold3);border-radius:8px;
  background:rgba(201,168,76,.1);color:var(--gold2);font-family:'Cinzel',serif;
  font-size:13px;cursor:pointer;transition:all .2s;text-align:center;
}
.mbtn:hover{background:rgba(201,168,76,.26);border-color:var(--gold);transform:scale(1.04);}
.cust-row{display:flex;gap:8px;margin-bottom:12px;}
.cust-in{flex:1;padding:9px 13px;background:#111;border:1px solid #444;border-radius:6px;
  color:var(--gold2);font-family:'Cinzel',serif;font-size:13px;outline:none;}
.cust-in:focus{border-color:var(--gold3);}
.cadd{padding:9px 14px;background:rgba(201,168,76,.18);border:1px solid var(--gold3);
  border-radius:6px;color:var(--gold);font-family:'Cinzel',serif;cursor:pointer;transition:all .2s;}
.cadd:hover{background:rgba(201,168,76,.34);}
.mclose{width:100%;padding:11px;border:1px solid #444;border-radius:8px;
  background:#1e1e1e;color:#888;font-family:'Cinzel',serif;font-size:11px;
  letter-spacing:2px;cursor:pointer;transition:all .2s;}
.mclose:hover{background:#2a2a2a;color:#aaa;}
 
.rules{margin-top:16px;font-size:10px;letter-spacing:1px;
  color:rgba(201,168,76,.28);text-align:center;line-height:1.9;z-index:1;}

/* ════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE + IPAD
════════════════════════════════════════════════════════ */

@media (max-width: 1024px){
  .table{padding:50px 34px 34px;min-height:auto;border-radius:28px;}
  h1{font-size:2rem;letter-spacing:3px;}
  .deck-shoe{right:10px;top:16px;transform:none;scale:.9;}
  .hands-row{gap:14px;}
  .card-wrap{margin-left:-12px;}
  .playing-card{width:62px;height:93px;}
  .btn-row{gap:8px;}
  .btn{padding:10px 18px;font-size:11px;letter-spacing:1px;}
  .btn-deal{padding:12px 30px;font-size:13px;}
  .chip{width:54px;height:54px;font-size:10px;}
  .bankroll-bar{gap:10px;flex-wrap:wrap;}
  .br-val{font-size:18px;}
  .msg{font-size:18px;padding:0 8px;}
  .modal{width:min(92vw,420px);}
}

@media (max-width: 768px){
  body{padding:8px 6px 30px;}
  .table-wrap{width:100%;}
  .table{padding:54px 14px 24px;border-width:7px;outline-width:2px;border-radius:22px;}
  .table-arc{font-size:7px;letter-spacing:2px;top:14px;}
  h1{font-size:1.45rem;letter-spacing:2px;margin-bottom:10px;}
  .deck-shoe{scale:.72;right:-2px;top:8px;}
  .bankroll-bar{padding:10px;gap:8px;justify-content:center;}
  .br-col{align-items:center;text-align:center !important;}
  .br-val{font-size:16px;}
  .zone{gap:4px;}
  .zone-lbl{font-size:8px;letter-spacing:2px;}
  .hands-row{gap:8px;min-height:auto;}
  .hand-slot{padding:4px;}
  .hand-cards{min-height:88px;}
  .card-wrap{margin-left:-18px;}
  .card-wrap:first-child{margin-left:0;}
  .playing-card{width:48px;height:72px;}
  .score-bub{font-size:10px;padding:2px 10px;}
  .hand-lbl, .hand-bet-tag, .hand-result{font-size:9px;}
  .msg{font-size:14px;line-height:1.4;min-height:42px;}
  .chips-row{gap:8px;margin-top:4px;}
  .chip{width:46px;height:46px;border-width:3px;font-size:9px;}
  .btn-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;}
  .btn{width:100%;padding:11px 8px;font-size:10px;}
  .btn-deal{grid-column:1 / -1;}
  .bet-chips-vis{min-height:26px;}
  .mc{width:26px;height:26px;margin-left:-7px;}
  .divider{width:90%;}
  .rules{font-size:8px;line-height:1.6;padding:0 8px;}
  .ins-bar{font-size:11px;padding:10px;}
  .modal{width:94vw;padding:22px;border-radius:12px;}
  .modal h2{font-size:1.3rem;}
  .mgrid{grid-template-columns:1fr 1fr;gap:8px;}
  .mbtn{padding:11px 6px;font-size:11px;}
  .cust-row{flex-direction:column;}
  .cust-in, .cadd{width:100%;}
}

@media (max-width: 420px){
  .playing-card{width:42px;height:63px;}
  .card-wrap{margin-left:-20px;}
  .chip{width:42px;height:42px;font-size:8px;}
  .btn{font-size:9px;letter-spacing:.5px;padding:10px 6px;}
  h1{font-size:1.2rem;}
  .msg{font-size:12px;}
  .br-val{font-size:14px;}
}