/* LUNA VIP Tables v0.5.0 — visual layer, no game-state mutations. */
:root{--vip050-gold:#e7c883;--vip050-amber:#ffdf97;--vip050-ink:#07150f;--vip050-lining:#8f672d}
body:has(.vip050-stage){background:radial-gradient(circle at 56% 32%,#143226 0%,#07170f 50%,#06100b 100%)}
body:has(.vip050-stage) .game-heading h1{color:#f1e7c9;letter-spacing:-.7px}
body:has(.vip050-stage) .game-heading h1 em{color:var(--vip050-gold)}
.vip050-badge{font:600 9px/1.1 var(--sans);color:#d4bf85;border:1px solid #c0a5673c;border-radius:100px;padding:7px 10px;letter-spacing:1.1px;background:linear-gradient(120deg,#26371a88,#0a2117)}
.vip050-stage{isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#1b3a2f 0%,#0a1b15 54%,#050d09 100%);border:1px solid #a5803d85;box-shadow:0 0 0 1px #1e231c,inset 0 0 0 2px #161a10,0 16px 60px #0009;}
.vip050-stage:before{position:absolute;inset:0;content:"";pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% -21%,#e1bc6937,transparent 49%),radial-gradient(ellipse at 50% 112%,#e4c47415,transparent 56%),linear-gradient(90deg,#070f0d78,transparent 17%,transparent 83%,#070f0d78)}
.vip050-stage .felt{background:repeating-linear-gradient(17deg,#ffffff06 0 1px,transparent 1px 4px),radial-gradient(ellipse at 50% 13%,#216144 0%,#0c4430 52%,#062e21 83%,#062016 100%);border:14px solid #1d1914;box-shadow:inset 0 0 0 2px #e0ba63a6,inset 0 0 0 13px #12241955,inset 0 0 60px #00110bbb,0 0 0 2px #cc9d49,0 4px 0 5px #5b421f,0 9px 0 8px #1e1b15,0 21px 17px #0009;filter:drop-shadow(0 2px 7px #100f0f)}
.vip050-stage .felt:after{border:1px solid #e9c7783f;inset:18px;box-shadow:inset 0 0 0 1px #08261d66}
.vip050-ambient{position:absolute;inset:-5px;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 5%,#ffd88e17,transparent 30%),radial-gradient(circle at 10% 90%,#d09a4422,transparent 27%),radial-gradient(circle at 92% 92%,#d09a4422,transparent 27%)}
.vip050-side-lights{position:absolute;pointer-events:none;left:10%;width:80%;height:12%;top:16%;border-radius:50%;background:radial-gradient(ellipse,#e9bb5230,transparent 69%);filter:blur(23px);opacity:.65;z-index:1}
.vip050-surface-logo{position:absolute;pointer-events:none;z-index:2;top:49%;left:50%;transform:translate(-50%,-50%);color:#dfc07729;text-shadow:0 1px 1px #0006;text-align:center;letter-spacing:9px;font:700 clamp(16px,2vw,31px) / 1.2 var(--serif);white-space:nowrap}
.vip050-surface-logo span{display:block;font:600 6px/1.8 var(--sans);letter-spacing:4px;color:#cbbd7d32}
.vip050-stage .felt-inner{opacity:.14}
.vip050-stage .stage-label{z-index:7;top:17px}
.vip050-stage .stage-round b{color:#fae5b5}
.vip050-stage .table-deck{z-index:6;opacity:1;width:43px;height:62px;top:23%;left:69%;border-radius:5px;border:2px solid #b68f46;box-shadow:2px 2px 0 #e6c98888,4px 4px 0 #122219,6px 6px 0 #b78d43,11px 12px 22px #0009;background:linear-gradient(145deg,#193b29,#0b2018)}
.vip050-stage .table-deck:after{content:"";position:absolute;inset:5px;border:1px solid #daba72;border-radius:2px;background:repeating-linear-gradient(45deg,#ccad5a13 0 2px,transparent 2px 7px)}
.vip050-stage .table-deck img{width:30px;opacity:.9;z-index:2;filter:drop-shadow(0 0 5px #d7ad5785)}
.vip050-stage .card:not(.back){background:linear-gradient(115deg,#fffdfa 4%,#f6f1e7 65%,#e6decb 100%);border:1px solid #d1c1a5;border-radius:6px;box-shadow:0 3px 0 #d1c4ae,0 7px 15px #0009,inset 0 0 0 1px #fff;color:#15241c}
.vip050-stage .card.red{color:#bb2534}
.vip050-stage .card.back{background:#132b1e url('/assets/luna-v050-card-back.svg') center / cover no-repeat;border:1px solid #e2b96e;box-shadow:0 3px 0 #98713b,0 7px 16px #000a,inset 0 0 0 1px #e6ce8e}
.vip050-stage .card.back .back-moon{opacity:0}
.vip050-stage .dealer-hand{z-index:7}
.vip050-stage .dealer-hand .tiny-label{color:#d8c18b;letter-spacing:2px;text-shadow:0 1px 5px #000}
.vip050-stage .dealer-hand .card{width:52px;height:75px}
.vip050-stage .dealer-hand>b{color:#efd6a3;text-shadow:0 2px 6px #000}
.vip050-stage .seat{z-index:7}
.vip050-stage .seat-info{background:linear-gradient(150deg,#243429f7,#0d1f18f7);border:1px solid #ad8d52aa;box-shadow:0 6px 20px #0009,inset 0 1px 0 #ffffff12;backdrop-filter:blur(7px)}
.vip050-stage .seat.you .seat-info{background:linear-gradient(150deg,#2b4133,#101e16);border-color:#edcd80c9}
.vip050-stage .seat.acting .seat-info{border-color:#f5d78b;box-shadow:0 0 0 1px #f0ce8055,0 0 20px #f6d77850,0 9px 26px #000a}
.vip050-stage .seat-winner .seat-info{border-color:#d9e7a5;box-shadow:0 0 24px #b6e89250}
.vip050-stage .community{z-index:8;top:32%}
.vip050-stage .pot-number{color:#ffdf9c;text-shadow:0 0 22px #e2b04a44,0 2px 4px #000;font-size:39px;margin-bottom:8px}
.vip050-stage .pot-label{color:#ebdba9;font-size:9px}
.vip050-stage .community .card,.vip050-stage .community .card-slot{width:61px;height:88px}
.vip050-stage .street-name{color:#f4d291;letter-spacing:2px;text-shadow:0 0 5px #19140b}
.vip050-pot-stack{display:flex;justify-content:center;align-items:end;gap:0;height:17px;margin:0 auto 10px;pointer-events:none}
.vip050-pot-stack i,.vip050-hand-chip i{display:block;width:23px;height:11px;border-radius:50%;border:3px dashed #e8c480;background:linear-gradient(#305b43,#133624);box-shadow:0 3px 0 #91713e,0 7px 9px #000a}
.vip050-pot-stack i:nth-child(2){transform:translate(-4px,-3px);background:linear-gradient(#bd423f,#4f1620)}
.vip050-pot-stack i:nth-child(3){transform:translate(-8px,1px);background:linear-gradient(#244c83,#101f47)}
.vip050-stage .bj-player-hands{z-index:7;gap:11px;top:55%}
.vip050-stage .bj-hand{background:linear-gradient(150deg,#183328b3,#091b15c2);border:1px solid #d4b77c66;border-radius:11px;box-shadow:0 10px 24px #0007,inset 0 1px 0 #e4cf9323;position:relative}
.vip050-stage .bj-hand.current{border-color:#ffe29b;box-shadow:0 0 20px #f1d28e48,0 10px 24px #000b}
.vip050-stage .bj-hand .card{width:47px;height:68px}
.vip050-stage .bj-hand>b{color:#f6e3b4}
.vip050-stage .bj-hand>small{color:#dbc398}
.vip050-stage .vip050-hand-chip{position:absolute;bottom:-14px;left:50%;display:flex;transform:translateX(-50%);pointer-events:none}
.vip050-stage .vip050-hand-chip i{width:16px;height:9px;border-width:2px;margin-left:-5px}
.vip050-stage .bj-hand.current .vip050-hand-chip i{filter:drop-shadow(0 0 4px #ffe4a6)}
.vip050-stage .bj-hand[data-outcome*="win"]{border-color:#d7e59e}
.vip050-stage .bj-hand[data-outcome*="lose"]{opacity:.8}
.vip050-stage .seat-action{color:#d2c5a1}
.vip050-action-dock{border:1px solid #bba05e77;background:linear-gradient(145deg,#22372c,#0c1c15);box-shadow:inset 0 1px 0 #d3b77728,0 8px 20px #0007;border-radius:14px}
.vip050-action-dock .dock-status b{font-size:15px;color:#f6e3b5}
.vip050-action-dock .dock-buttons .button,.vip050-action-dock .bj-bet-input .button{border-radius:11px;font-weight:600;box-shadow:inset 0 1px 0 #ffffff16,0 4px 12px #0006;transition:background-color .15s,box-shadow .15s,transform .15s}
.vip050-action-dock .dock-buttons .button:not(:disabled):hover,.vip050-action-dock .bj-bet-input .button:not(:disabled):hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #ffffff24,0 9px 16px #0009}
.vip050-action-dock .dock-buttons .gold,.vip050-action-dock .bj-bet-input .gold{background:linear-gradient(135deg,#f7dfa2,#d8ab5d);color:#24190c}
.vip050-action-dock .chip{background:radial-gradient(circle,#1a593f 0%,#103321 58%,#041911 63%);border-color:#e9c78e;box-shadow:inset 0 0 0 2px #123e2b,0 6px 11px #0008}
.vip050-action-dock .chip.selected{box-shadow:0 0 0 2px #e6cd81,0 0 22px #f0d48f60}
.vip050-action-dock .raise-controls input[type=range]{accent-color:#ebc475}
.vip050-action-dock.your-turn{border-color:#eac775d4;box-shadow:0 0 18px #d7ba6133,inset 0 1px 0 #e1ca8855}
.vip050-stage .clock-urgent{filter:drop-shadow(0 0 4px #fc785b)}
.vip050-result{position:absolute;z-index:45;left:50%;top:31%;transform:translate(-50%,-50%);padding:14px 26px 13px;color:#ffdda0;border:1px solid #eac579b0;border-radius:12px;background:linear-gradient(140deg,#133924eb,#081711f5);box-shadow:0 0 40px #e2bc7137,0 15px 40px #000c;pointer-events:none;text-align:center;font:600 18px/1.2 var(--serif);letter-spacing:2px;white-space:nowrap}
.vip050-result small{display:block;margin-top:6px;color:#e2d5b3;font:500 10px/1.2 var(--sans);letter-spacing:1px}
.vip050-result[data-result="loss"]{color:#d4a1a1;border-color:#955658}
.vip050-result[data-result="push"]{color:#e8d2b8;border-color:#ac9078}
.vip050-spark{position:fixed;z-index:20000;pointer-events:none;width:5px;height:10px;border-radius:1px;background:#ffe4a2;box-shadow:0 0 7px #ffe2a5;transform:translate(-50%,-50%)}
.vip050-phase-glow{position:absolute;pointer-events:none;z-index:6;left:28%;right:28%;top:34%;height:32%;border-radius:30%;background:radial-gradient(ellipse,#eac7782e,transparent 68%);filter:blur(14px)}
.vip050-stage .bj-hand.vip050-active{animation:vip050-hand-glow 1.7s ease-in-out infinite alternate}
@keyframes vip050-hand-glow{from{box-shadow:0 0 6px #ffc95830,0 12px 22px #0007}to{box-shadow:0 0 20px #ffdf866e,0 12px 25px #0008}}
/* Compact laptop: never overlay decisions or seat labels. */
@media(min-width:761px) and (max-height:850px){.vip050-stage .felt{top:19%;height:60%}.vip050-stage .bj-player-hands{top:52%}.vip050-stage .dealer-hand{top:24%}}
@media(max-width:1180px){.vip050-stage .community .card,.vip050-stage .community .card-slot{width:51px;height:75px}.vip050-stage .pot-number{font-size:29px}}
@media(max-width:760px){.vip050-badge{display:none}.vip050-stage .felt{top:20%;height:62%;left:4%;width:92%;border-width:10px}.vip050-stage .community{top:37%}.vip050-stage .community .card,.vip050-stage .community .card-slot{width:32px;height:48px}.vip050-stage .pot-number{font-size:25px}.vip050-pot-stack{display:none}.vip050-stage .table-deck{width:29px;height:42px;left:69%}.vip050-stage .table-deck img{width:18px}.vip050-stage .dealer-hand .card{width:36px;height:51px}.vip050-stage .bj-player-hands{top:53%;gap:5px}.vip050-stage .bj-hand .card{width:30px;height:45px}.vip050-stage .bj-hand{padding:7px 5px}.vip050-stage .vip050-hand-chip{display:none}.vip050-surface-logo{letter-spacing:4px;font-size:17px}.vip050-stage .seat-info{backdrop-filter:none}.vip050-action-dock .dock-buttons .button{box-shadow:none}}
@media(max-width:370px){.vip050-stage .felt{left:3%;width:94%}.vip050-stage .community .card,.vip050-stage .community .card-slot{width:29px;height:43px}.vip050-stage .community{top:40%}.vip050-stage .dealer-hand .card{width:32px;height:47px}}
@media(prefers-reduced-motion:reduce){.vip050-stage *,.vip050-action-dock *{animation:none!important;transition:none!important}.vip050-spark,.vip050-phase-glow{display:none!important}}
html.club-motion-off .vip050-stage *,html.club-motion-off .vip050-action-dock *{animation:none!important;transition:none!important}

/* Table tiers: Velvet emerald, Noir midnight teal, Royal champagne gold. */
.vip050-stage.slate{--vip050-gold:#cdd8d3;--vip050-lining:#7c9fa8;background:radial-gradient(ellipse at 50% 35%,#1b3439,#08171b 65%,#030a0d)}
.vip050-stage.slate .felt{background:repeating-linear-gradient(17deg,#ffffff05 0 1px,transparent 1px 4px),radial-gradient(ellipse at 50% 11%,#2b5860,#133d43 55%,#09282d)}
.vip050-stage.slate .felt,.vip050-stage.slate .seat-info{border-color:#9caeb286}
.vip050-stage.slate .vip050-surface-logo{color:#c2d4ce30}
.vip050-stage.gold{--vip050-gold:#f1da98;--vip050-lining:#ba8e3a;background:radial-gradient(ellipse at 50% 36%,#273223,#151611 65%,#0b0b08)}
.vip050-stage.gold .felt{background:repeating-linear-gradient(19deg,#ffffff06 0 1px,transparent 1px 4px),radial-gradient(ellipse at 50% 12%,#466545,#27472e 54%,#132b1c)}
.vip050-stage.gold .seat.acting .seat-info{box-shadow:0 0 0 1px #f7d98970,0 0 28px #ffc76e6c,0 8px 24px #000a}
.vip050-stage.gold .stage-round b{color:#ffe2a1}

/* Server-derived win state; multi-hand Blackjack and poker showdown. */
.vip050-stage .bj-hand[data-win="1"]{border-color:#e2d48e;box-shadow:0 0 21px #dfc46e55,inset 0 0 7px #ba993e38}
.vip050-stage .poker-stage .seat-winner .card,.vip050-stage.poker-stage .seat-winner .card{box-shadow:0 0 0 1px #f0d48d,0 4px 17px #e2bc7460}

/* LUNA 0.5.1 CRITICAL FIX: motion elements live in <body>, NOT inside the stage.
   Original 0.5.0 lacked both of these classes entirely. */
.luna-motion-card{position:fixed!important;display:block!important;margin:0!important;padding:0!important;z-index:2147481000!important;pointer-events:none!important;will-change:transform,opacity;transform-origin:50% 50%;overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important;contain:layout style}
.luna-motion-card>.card{display:flex!important;box-sizing:border-box;width:100%!important;height:100%!important;position:relative!important;margin:0!important;border-radius:7px!important;background:linear-gradient(125deg,#fffdf5,#eee4ce)!important;color:#10271c!important;border:2px solid #d1bc8c!important;box-shadow:0 6px 15px #000b,0 2px 0 #9c7b48!important}
.luna-motion-card>.card.red{color:#c62d3b!important}
.luna-motion-card>.card.back{background:#0c2b23 url('/assets/luna-v050-card-back.svg') center / cover!important;border-color:#efc77e!important}
.luna-motion-card>.card .back-moon{opacity:0}
.luna-motion-chip{position:fixed!important;display:block!important;width:29px!important;height:29px!important;box-sizing:border-box!important;z-index:2147481001!important;pointer-events:none!important;border-radius:50%!important;border:5px dashed #f4dda2!important;background:radial-gradient(circle at 38% 30%,#2f946c,#0d4734 64%,#063124)!important;box-shadow:0 0 0 2px #402819,0 3px 3px #000b,inset 0 0 0 2px #e4c87c,0 0 15px #ffe4a65e!important;will-change:transform,opacity}
.luna-motion-chip.luna-motion-award{background:radial-gradient(circle at 38% 30%,#e4c76f,#9b612b 65%,#57310d)!important;border-color:#fff4c7!important;box-shadow:0 0 0 2px #513720,0 4px 4px #000b,0 0 20px #ffd36a90!important}
/* Bring the approved VIP lounge composition into the actual interface. */
@media(min-width:1181px){
 body:has(.vip050-stage) .main-game{max-width:1580px!important;width:calc(100% - 110px)!important;margin-left:calc(65px + max(0px,(100vw - 1580px)/2))!important;padding-right:24px!important}
 body:has(.vip050-stage) .game-layout{grid-template-columns:minmax(0,1fr) 272px;gap:23px}
 body:has(.vip050-stage) .game-stage{height:clamp(575px,68vh,740px)!important}
}
.vip050-stage{background:linear-gradient(180deg,#09090810 0%,#110e0c7a 34%,#090b098a 75%),url('/assets/luna-v051-vip-room.webp') center center / cover no-repeat!important;border:1px solid #b98a4d!important;box-shadow:inset 0 0 0 1px #ead3953d,0 22px 65px #000c!important}
.vip050-stage:before{background:radial-gradient(ellipse at 50% -15%,#ffcc7240,transparent 44%),linear-gradient(90deg,#0e0b0bd1,transparent 20%,transparent 80%,#0e0b0bd1)!important;z-index:0}
.vip050-stage .felt{top:19%!important;left:4.8%!important;width:90.4%!important;height:65%!important;border:19px solid #281911!important;background:repeating-linear-gradient(117deg,#ffffff06 0 1px,transparent 1px 4px),radial-gradient(ellipse at 50% 4%,#2f835b,#13513a 42%,#073d2a 78%,#092a20 100%)!important;box-shadow:inset 0 0 0 2px #e8c47880,inset 0 0 0 15px #092b2090,inset 0 0 66px #000c,0 0 0 2px #f6d385,0 5px 0 6px #7c532b,0 12px 0 10px #38221b,0 21px 0 12px #0d0b0b,0 32px 45px #000d!important}
.vip050-stage .felt:after{inset:23px;border-color:#f2d08a69!important;box-shadow:0 0 0 1px #071f1499,inset 0 0 24px #e7bf6325}
.vip050-stage .vip050-ambient{background:radial-gradient(ellipse at 50% 0%,#ffe1a528,transparent 25%),radial-gradient(ellipse at 12% 18%,#db91372a,transparent 21%),radial-gradient(ellipse at 89% 18%,#db91372a,transparent 22%);z-index:2}
.vip050-stage .vip050-side-lights{top:12%;opacity:1}
.vip050-stage .stage-label,.vip050-stage .stage-round{font-size:11px;text-shadow:0 2px 8px #000}
.vip050-stage .community{top:33%!important}
.vip050-stage .pot-label{font-size:10px;letter-spacing:2.8px;color:#f4dcab!important}
.vip050-stage .pot-number{font-size:42px!important;text-shadow:0 0 20px #f2c66787,0 3px 5px #000c!important}
.vip050-stage .vip050-pot-stack{height:31px;margin-bottom:12px}
.vip050-stage .vip050-pot-stack i{width:30px;height:18px;border-width:4px;box-shadow:0 3px 0 #ba9754,0 7px 0 #3c2a17,0 11px 8px #0009}
.vip050-stage .vip050-pot-stack i:nth-child(2){transform:translate(-8px,-6px)}
.vip050-stage .vip050-pot-stack i:nth-child(3){transform:translate(-15px,2px)}
.vip050-stage .community .card,.vip050-stage .community .card-slot{width:68px;height:97px}
.vip050-stage .dealer-hand{top:22%;gap:9px}
.vip050-stage .dealer-hand .card{width:66px;height:94px}
.vip050-stage .bj-player-hands{top:55%;gap:17px}
.vip050-stage .bj-hand{padding:13px 15px;background:linear-gradient(145deg,#0b241c38,#061a1354);border-color:#e0ba7840}
.vip050-stage .bj-hand .card{width:59px;height:84px}
.vip050-stage .bj-hand>b{font-size:23px}
.vip050-stage .seat-info{border:1px solid #d4a55bcb!important;border-radius:13px!important;background:linear-gradient(145deg,#2f2b21f5,#0a1912f4)!important;box-shadow:0 2px 0 #e6bc6538,0 11px 26px #000b,inset 0 1px 0 #f9e4b024!important}
.vip050-stage .seat-info .avatar{border:2px solid #d7b26d;box-shadow:0 0 0 2px #102018,0 2px 8px #0008;background:radial-gradient(circle at 36% 25%,#c9aa82,#77553b 47%,#261914 95%);color:#ffe4bd}
.vip050-stage .seat.you .seat-info{border-color:#ffe39b!important;box-shadow:0 0 28px #ffdc8452,0 12px 28px #000a!important}
.vip050-stage .seat.acting .seat-info{border-color:#ffe6a4!important;box-shadow:0 0 0 1px #f8cb72ad,0 0 30px #ffc85d9e,0 11px 27px #000a!important}
.vip050-stage .table-deck{top:21%;left:73%;width:56px;height:79px;transform:rotate(20deg)}
.vip050-stage .vip050-surface-logo{top:52%;font-size:36px;letter-spacing:12px;opacity:.75;color:#e6c4755b}
.vip050-stage .vip050-surface-logo span{font-size:8px;color:#ddc38b7c}
.vip050-stage .seat-wager{font-size:12px;background:#0e2316e0;border:1px solid #bd985866;border-radius:16px;padding:4px 8px;box-shadow:0 4px 12px #000a}
.vip050-action-dock{background:linear-gradient(105deg,#183529,#0c1914 66%,#2b281b)!important;border:1px solid #dbb37593!important;box-shadow:0 1px 0 #ffdf9b3f,0 14px 34px #0009!important}
.vip050-action-dock .dock-buttons .button,.vip050-action-dock .bj-bet-input .button{min-height:49px;font-size:13px;border-radius:30px}
.vip050-action-dock.your-turn{box-shadow:0 0 28px #d2af5760,0 11px 29px #0008!important}
@media (min-width:1181px) and (max-height:770px){body:has(.vip050-stage) .game-stage{height:545px!important}}
@media (max-width:1180px){.vip050-stage .felt{border-width:12px!important}.vip050-stage .community .card,.vip050-stage .community .card-slot{width:52px;height:75px}.vip050-stage .bj-hand .card{width:46px;height:66px}.vip050-stage .dealer-hand .card{width:49px;height:70px}.vip050-stage .pot-number{font-size:33px!important}}
@media (max-width:760px){.vip050-stage .felt{top:21%!important;left:6%!important;width:88%!important;height:60%!important;border-width:10px!important}.vip050-stage .community{top:39%!important}.vip050-stage .community .card,.vip050-stage .community .card-slot{width:34px;height:50px}.vip050-stage .dealer-hand{top:28%}.vip050-stage .dealer-hand .card{width:35px;height:51px}.vip050-stage .bj-player-hands{top:52%;gap:4px}.vip050-stage .bj-hand{padding:7px 5px}.vip050-stage .bj-hand .card{width:30px;height:44px}.vip050-stage .table-deck{top:26%;left:70%;width:27px;height:39px}.vip050-stage .vip050-surface-logo{font-size:18px;letter-spacing:4px}.vip050-stage .pot-number{font-size:27px!important}.vip050-action-dock .dock-buttons .button{font-size:11px;min-height:39px}}
