/* LUNA Grand Tables 0.5.2 — physical game scene, not a palette skin.
   Gameplay DOM events, money, card values & actions remain in the original engine.
   Local assets only. Separate #app rendering from flight layers. */
:root{--v52-light:#fee1a1;--v52-brass:#c79448;--v52-velvet:#053a2a;--v52-wood:#2d170f}
body:has(.vip050-stage){background:radial-gradient(ellipse at 60% 19%,#1a3023,#07170f 58%,#050d0a 100%)!important}
body:has(.vip050-stage) .main-game{max-width:1740px!important;width:calc(100% - 112px)!important;margin:0 auto 0 max(76px,calc((100vw - 1700px)/2 + 45px))!important;padding:15px 25px 35px!important}
body:has(.vip050-stage) .game-heading{margin:0 0 10px!important}
body:has(.vip050-stage) .game-heading h1{font-size:43px!important;letter-spacing:-1.5px}
body:has(.vip050-stage) .table-topline{margin:0 0 10px!important}
body:has(.vip050-stage) .game-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 285px!important;gap:17px!important}
body:has(.vip050-stage) .game-aside{padding:8px 15px 12px!important;min-width:0;background:linear-gradient(145deg,#12241cdb,#091912f2);border:1px solid #b7894844;border-radius:13px;box-shadow:0 20px 40px #0005}
body:has(.vip050-stage) .aside-heading h2{font-size:30px!important}
body:has(.vip050-stage) .game-stage{height:clamp(635px,72vh,760px)!important;overflow:hidden;border-radius:17px!important;border:2px solid #a47a3f!important;isolation:isolate;box-shadow:inset 0 0 0 2px #050f0b,inset 0 0 26px #0009,0 16px 80px #000e!important}
.vip050-stage{background-image:linear-gradient(180deg,#100a0794 0%,#0f14108c 30%,#100e0b82 82%),url('/assets/luna-v052-private-room.webp')!important;background-size:cover!important;background-position:center!important}
.vip050-stage:before{content:""!important;position:absolute;inset:0;z-index:0!important;pointer-events:none;background:radial-gradient(ellipse at 50% 11%,#fff2c744,transparent 36%),linear-gradient(90deg,#0008,transparent 25% 75%,#0008),linear-gradient(180deg,transparent 67%,#0b0806dd)!important}
.vip050-stage:after{content:"";position:absolute;left:0;right:0;bottom:0;height:11%;pointer-events:none;z-index:0;background:linear-gradient(#ffffff00,#170f0fc2)}
.vip052-architecture{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.vip052-architectural-lights{position:absolute;display:flex;justify-content:space-around;top:6%;left:2%;width:96%;height:21%;opacity:.95}
.vip052-architectural-lights i{position:relative;display:block;width:30px;height:59px;border-radius:12px 12px 19px 19px;border:2px solid #f8d292bb;background:linear-gradient(90deg,#9c5e2a,#ffe3a1 49%,#7b461c);box-shadow:0 0 25px #ffbd5680,0 0 85px 22px #ffc36033,0 75px 55px 28px #ffc66b1a}
.vip052-architectural-lights i:before{content:"";position:absolute;top:-18px;left:12px;height:18px;width:2px;background:#bb8e52}
.vip052-chair-strip{position:absolute;display:flex;gap:4%;left:15%;right:15%;top:15%;height:30%;justify-content:space-between;opacity:.73}
.vip052-chair-strip i{display:block;width:17%;border:8px ridge #5d3e23;border-radius:42% 42% 15% 15%;background:linear-gradient(100deg,#2b1414 0%,#5f3021 27%,#341818 60%,#090907 92%);box-shadow:inset 9px 0 12px #be835020,inset -7px 0 22px #000b,0 11px 13px #000c}
.vip052-top-rail{position:absolute;top:19%;left:1%;width:98%;height:20%;border-radius:50% 50% 0 0;border-top:5px solid #f2c571;box-shadow:0 -2px 16px #dfad5d80,0 7px 0 #362114,0 10px 0 #b18852;opacity:.8}
.vip052-floor-light{position:absolute;left:0;right:0;bottom:0;height:32%;background:radial-gradient(ellipse at 50% 9%,#dcaa562b,transparent 67%)}
.vip052-chip-rack{position:absolute;display:flex;gap:3px;left:50%;top:12%;transform:translateX(-50%);height:27px;padding:8px 10px 4px;background:linear-gradient(#080909,#64472d 70%,#180e0c);border:2px solid #c09a5e;border-radius:6px;box-shadow:0 0 12px #000d,0 7px 24px #000a}
.vip052-chip-rack i{width:17px;height:16px;border-radius:50%;background:radial-gradient(circle,#173b2c 30%,#dfc78f 34% 42%,#10402b 43% 60%,#f2c775 63%);border:2px dashed #efe1be;box-shadow:0 3px 0 #1b251f}
.vip052-chip-rack i:nth-child(3n){background:radial-gradient(circle,#5a1820 28%,#f8d5af 33% 40%,#8f202e 43% 60%,#f4ddbd 64%)}
.vip052-chip-rack i:nth-child(4n){background:radial-gradient(circle,#162e57 28%,#f8d5af 33% 40%,#263c77 43% 60%,#f4ddbd 64%)}
/* Physically rebuilt table body, not the skinny oval of 0.5.1. */
.vip050-stage .felt{z-index:3!important;left:3.5%!important;top:24%!important;width:93%!important;height:66%!important;overflow:visible;border:25px solid #29150f!important;border-radius:50% / 48%!important;background:radial-gradient(ellipse at 49% 15%,#227456 0%,#0b5940 34%,#06402e 72%,#042a1e 100%)!important;box-shadow:inset 0 0 0 2px #e2b96bb3,inset 0 0 0 16px #0b392bbe,inset 0 0 66px #001710dd,0 0 0 2px #f5d68d,0 6px 0 5px #ad7c3f,0 15px 0 9px #3a2215,0 23px 0 13px #140d0b,0 32px 0 16px #694225,0 44px 30px 15px #000e!important;filter:drop-shadow(0 9px 13px #0008)!important}
.vip050-stage .felt:after{inset:24px!important;border:2px solid #efca7963!important;border-radius:50%!important;box-shadow:0 0 0 3px #062b21b6,inset 0 0 34px #d8ad4527!important}
.vip050-stage .felt-inner{opacity:.22!important;top:49%}
.vip050-stage .felt-inner img{height:62px;width:62px;opacity:.8}
.vip050-stage .felt-inner>span{font:42px/1.1 Georgia,serif;letter-spacing:16px}
.vip050-stage .felt-inner>small{font-size:9px}
.vip050-stage .vip050-surface-logo{opacity:.15!important;top:52%!important;font-size:41px!important}
.vip050-stage .vip050-ambient{z-index:4!important;background:radial-gradient(ellipse at 49% 39%,#ffdf8130,transparent 38%),radial-gradient(ellipse at 50% 5%,#ffe7a42b,transparent 25%)}
.vip050-stage .stage-label{z-index:12!important;top:17px!important;left:23px!important;right:23px!important;color:#fae1ab!important;text-shadow:0 3px 9px #000;font-weight:600}
.vip050-stage .stage-label>span:last-child{color:#ffdb99}
.vip050-stage .table-deck{z-index:15!important;top:30%!important;left:77%!important;width:69px!important;height:98px!important;transform:rotate(16deg)!important;background:linear-gradient(125deg,#62482f,#1c241c 25%,#122f24 70%,#0b110d)!important;border:4px solid #dab46a!important;box-shadow:5px 4px 0 #0d1710,8px 8px 0 #ca9c4f,11px 11px 0 #1d120c,18px 19px 25px #000e!important}
.vip050-stage .table-deck img{width:47px!important;opacity:1!important}
.vip050-stage .seat{z-index:16!important}
.vip050-stage .seat-info{background:linear-gradient(135deg,#29211bcf,#0b1b17f5)!important;min-height:62px!important;border:1px solid #bf945add!important;border-radius:12px!important;box-shadow:0 1px 0 #f5dfaa4d,inset 0 1px 0 #f7dd9a24,0 12px 26px #000b!important}
.vip050-stage .seat-info .avatar{width:41px;height:41px;font-size:12px;border:2px solid #e3c182;box-shadow:0 0 0 3px #241913,0 3px 12px #000a;background:radial-gradient(circle at 39% 24%,#d2ad72,#6c422c 55%,#1e1410)}
.vip050-stage .seat-details b{font-size:13px!important;color:#f0ddba}
.vip050-stage .seat-details>span{font-size:15px!important;color:#fff1d3}
.vip050-stage .seat.you .seat-info,.vip050-stage .seat.acting .seat-info{background:linear-gradient(145deg,#383522ec,#0b2519f0)!important;border-color:#ffe59c!important;box-shadow:0 0 0 2px #f6d88980,0 0 32px #efd08066,0 14px 28px #000a!important}
.vip050-stage .seat.acting .seat-action{color:#ffe0a2!important}
.vip050-stage .seat-winner .seat-info{border-color:#f6e8a9!important;box-shadow:0 0 38px #ffe6a87d!important}
.vip050-stage .seat>.cards{gap:5px!important;min-height:56px!important;margin-bottom:9px!important}
.vip050-stage .seat>.cards .card.small{width:38px!important;height:55px!important;box-shadow:0 5px 10px #000a!important}
.vip050-stage .seat .seat-action{font-size:10px;text-shadow:0 2px 4px #000a}
.vip050-stage.poker-stage .seat-0{bottom:3%;left:50%}
.vip050-stage.poker-stage .seat-1{bottom:10%;left:2%}
.vip050-stage.poker-stage .seat-2{top:27%;left:2%}
.vip050-stage.poker-stage .seat-3{top:10.5%;left:50%}
.vip050-stage.poker-stage .seat-4{top:27%;right:2%}
.vip050-stage.poker-stage .seat-5{bottom:10%;right:2%}
.vip050-stage.poker-stage .community{z-index:20!important;top:36%!important}
.vip050-stage.poker-stage .community .card,.vip050-stage.poker-stage .community .card-slot{width:clamp(62px,5.1vw,83px)!important;height:clamp(89px,7.4vw,115px)!important;border-radius:8px!important}
.vip050-stage .card:not(.back){background:linear-gradient(137deg,#fffef5 3%,#f6f0e4 69%,#e4d7bc 100%)!important;border:2px solid #e4d6b9!important;box-shadow:0 3px 0 #ac9b7b,0 13px 23px #000a!important}
.vip050-stage .card.back{background:#0c2b20 url('/assets/luna-v050-card-back.svg') center / cover!important;border:2px solid #f3d597!important;box-shadow:0 4px 0 #71552f,0 10px 20px #000d!important}
.vip050-stage.poker-stage .pot-number{font-size:47px!important;color:#ffdfa5!important;filter:drop-shadow(0 2px 5px #000)}
.vip052-pot-stack{height:38px!important;position:relative!important;margin-bottom:8px!important}
.vip052-pot-stack i{width:38px!important;height:22px!important;border-width:5px!important;box-shadow:0 3px 0 #cfaf72,0 6px 0 #264733,0 10px 0 #d2ae74,0 14px 0 #15291b,0 17px 14px #000b!important}
.vip050-stage .seat-wager{font-size:12px!important;border-radius:17px!important;box-shadow:0 4px 12px #0009;background:#081910c7;padding:6px 8px}
/* Dealer and hand centered on actual felt, with stronger distinction than idle player plates. */
.vip050-stage.blackjack-stage .dealer-hand{z-index:21!important;top:28.5%!important}
.vip050-stage.blackjack-stage .dealer-hand .card{width:clamp(61px,5vw,82px)!important;height:clamp(88px,7.1vw,115px)!important}
.vip050-stage.blackjack-stage .dealer-hand .tiny-label{font-size:11px;letter-spacing:2.3px;text-shadow:0 2px 6px #000}
.vip050-stage.blackjack-stage .bj-player-hands{z-index:21!important;top:56%!important;gap:10px;max-width:83%!important}
.vip050-stage.blackjack-stage .bj-hand{padding:11px 13px 8px!important;min-width:130px!important;background:linear-gradient(145deg,#09281bbf,#06170fb3)!important;box-shadow:inset 0 1px 0 #f6d88b26,0 10px 25px #000a!important}
.vip050-stage.blackjack-stage .bj-hand .card{width:clamp(59px,4.4vw,75px)!important;height:clamp(86px,6.4vw,108px)!important}
.vip050-stage.blackjack-stage .bj-hand>b{font-size:27px!important;color:#fce8bb}
.vip050-stage.blackjack-stage .bj-hand>small{font-size:11px!important}
.vip050-stage.blackjack-stage .seat-0{bottom:3.5%!important}
.vip050-stage.blackjack-stage .seat-1,.vip050-stage.blackjack-stage .seat-5{bottom:16%!important}
.vip050-stage.blackjack-stage .seat-2,.vip050-stage.blackjack-stage .seat-4{top:33%!important}
.vip050-stage.blackjack-stage .seat-3{top:10%!important}
.vip050-stage.blackjack-stage .seat-3>.cards{display:none!important}
.vip050-stage.blackjack-stage .bj-player-hands:has(.bj-hand:nth-child(3)){top:51%!important;max-width:80%!important;gap:5px}
.vip050-stage.blackjack-stage .bj-player-hands:has(.bj-hand:nth-child(3)) .bj-hand{min-width:0!important;padding:7px!important}
.vip050-stage.blackjack-stage .bj-player-hands:has(.bj-hand:nth-child(3)) .card{width:39px!important;height:59px!important}
.vip050-action-dock{border:2px solid #bb8e4ab0!important;border-radius:13px!important;margin-top:14px!important;background:linear-gradient(100deg,#1b3629,#0a1e16 58%,#242314)!important;box-shadow:0 8px 24px #0009,inset 0 1px 0 #f6dcb52b!important}
.vip050-action-dock .dock-status b{font:700 16px/1.2 var(--sans)!important;color:#ffe6b5!important}
.vip050-action-dock .dock-buttons .button{padding:15px 22px!important;min-height:48px!important;font-weight:700!important;font-size:12px!important}
.vip050-action-dock .dock-buttons .button.gold{box-shadow:0 4px 0 #7c5227,inset 0 1px 0 #fff5c2!important}
.vip050-action-dock .chip{width:59px!important;height:59px!important;background:radial-gradient(circle at 42% 28%,#367c59,#0c3929 50%,#031a13 62%)!important;border-width:5px!important;border-style:dashed!important}
.vip050-action-dock .chip>span{font-size:13px!important}
/* Animations are body-level and must be visible over scene; CSS not just class names. */
.luna-motion-card{z-index:2147482000!important;filter:drop-shadow(0 8px 13px #0009)}
.luna-motion-chip{z-index:2147482001!important;width:43px!important;height:43px!important;border-width:7px!important;border-style:dashed!important;box-shadow:0 2px 0 #724b27,0 6px 0 #ca9d61,0 9px 10px #000a,0 0 18px #ffc7726c!important}
.luna-motion-chip.luna-motion-award{background:radial-gradient(circle,#f3d68d 12%,#bd7932 70%,#734511)!important}
.vip050-stage .vip050-result{font-size:23px!important;z-index:60!important;top:30%!important;border-width:2px!important;box-shadow:0 0 36px #e1b96d5e,0 14px 36px #000e!important}
@media(max-width:1450px){body:has(.vip050-stage) .main-game{width:calc(100% - 65px)!important;margin-left:70px!important;padding-inline:16px!important}body:has(.vip050-stage) .game-layout{grid-template-columns:minmax(0,1fr) 250px!important}.vip050-stage .seat-info{min-width:118px!important;padding:7px!important}.vip050-stage .seat>.cards .card.small{width:31px!important;height:47px!important}.vip050-stage .seat-details b{font-size:11px!important}.vip050-stage .seat-details>span{font-size:12px!important}}
@media(max-width:1120px){body:has(.vip050-stage) .game-layout{grid-template-columns:minmax(0,1fr)!important}body:has(.vip050-stage) .game-aside{display:none!important}.vip050-stage .felt{border-width:16px!important}.vip050-stage .table-deck{width:50px!important;height:73px!important}.vip050-stage.poker-stage .community .card,.vip050-stage.poker-stage .community .card-slot{width:55px!important;height:78px!important}}
@media(max-width:760px){body:has(.vip050-stage) .main-game{width:auto!important;margin:0!important;padding:16px 9px!important}body:has(.vip050-stage) .game-stage{height:605px!important}.vip052-architectural-lights{opacity:.5}.vip052-chair-strip{opacity:.35;left:6%;right:6%}.vip052-chip-rack{top:15%;height:20px}.vip052-chip-rack i{width:8px;height:8px}.vip050-stage .felt{top:27%!important;left:3%!important;width:94%!important;height:60%!important;border-width:10px!important}.vip050-stage .felt:after{inset:10px!important}.vip050-stage .table-deck{width:29px!important;height:41px!important;top:31%!important;left:73%!important;border-width:2px!important}.vip050-stage .table-deck img{width:17px!important}.vip050-stage .seat-info{min-width:78px!important;min-height:36px!important;padding:4px!important}.vip050-stage .seat-info .avatar{width:21px;height:21px;font-size:7px;border-width:1px}.vip050-stage .seat-details b{font-size:8px!important}.vip050-stage .seat-details>span{font-size:8px!important}.vip050-stage .seat>.cards .card.small{width:22px!important;height:31px!important}.vip050-stage.poker-stage .community{top:42%!important}.vip050-stage.poker-stage .community .card,.vip050-stage.poker-stage .community .card-slot{width:34px!important;height:50px!important}.vip050-stage.poker-stage .pot-number{font-size:27px!important}.vip050-stage.blackjack-stage .dealer-hand{top:31%!important}.vip050-stage.blackjack-stage .dealer-hand .card{width:34px!important;height:49px!important}.vip050-stage.blackjack-stage .bj-player-hands{top:54%!important;gap:4px!important}.vip050-stage.blackjack-stage .bj-hand{min-width:0!important;padding:5px!important}.vip050-stage.blackjack-stage .bj-hand .card{width:30px!important;height:43px!important}.vip050-stage.blackjack-stage .bj-hand>b{font-size:16px!important}.vip050-stage.blackjack-stage .bj-hand>small{font-size:7px!important}.vip050-stage.blackjack-stage .seat-2,.vip050-stage.blackjack-stage .seat-4{top:36%!important}.vip050-action-dock .dock-buttons .button{padding:10px 9px!important;min-height:40px!important;font-size:10px!important}.vip050-action-dock .chip{width:42px!important;height:42px!important;border-width:4px!important}.vip050-result{font-size:13px!important}}
@media(prefers-reduced-motion:reduce){.vip050-stage *, .vip050-action-dock *{transition:none!important;animation:none!important}.luna-motion-chip,.luna-motion-card{display:none!important}}
