.table-props{position:absolute;inset:0;z-index:2;pointer-events:none}
.hide-table-props .table-props{display:none}
.table-prop{
 touch-action:none;cursor:grab;
 position:absolute;display:grid;place-items:center;pointer-events:auto;
 background:transparent;border:0;padding:0;margin:0;cursor:pointer;
 appearance:none;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;
 filter:drop-shadow(2px 5px 3px #0005);
}
.table-prop:focus-visible{outline:3px solid #f7d27d;outline-offset:5px;border-radius:10px}
.prop-shape{display:block;position:relative;pointer-events:none}
.prop-gajak{left:16px;top:145px;width:82px;height:65px}
.bowl-shape{
 width:77px;height:52px;border-radius:48% 48% 50% 50%;
 border:7px solid #ede4d1;background:radial-gradient(ellipse,#ab7042 8%,#d7a275 60%,#d1bc90 75%);
 box-shadow:inset 0 2px 7px #42230890,inset 0 -4px 0 #8f7663,0 3px 3px #0003;
 transform:rotate(-7deg);
}
.peanut{position:absolute;font-size:19px;line-height:1}
.peanut.p1{left:9px;top:8px;transform:rotate(-32deg)}
.peanut.p2{right:8px;top:12px;transform:rotate(24deg)}
.peanut.p3{left:29px;bottom:1px;transform:rotate(73deg)}
.prop-bottle{right:18px;top:145px;width:47px;height:100px}
.bottle-shape{width:43px;height:96px}
.bottle-cap{position:absolute;top:0;left:14px;width:16px;height:8px;border-radius:3px 3px 1px 1px;background:repeating-linear-gradient(90deg,#ddb966 0 3px,#79552c 3px 5px)}
.bottle-neck{position:absolute;top:7px;left:15px;width:14px;height:23px;background:linear-gradient(90deg,#276d4f,#93c09e,#226043);border:2px solid #255b3e;border-bottom:0;border-radius:2px 2px 5px 5px}
.bottle-body{position:absolute;bottom:0;left:3px;width:38px;height:74px;border:2px solid #275f45;border-radius:13px 13px 9px 9px;background:linear-gradient(90deg,#215c47,#55a17b 25%,#8ecbad 40%,#296c54 65%,#185038);box-shadow:inset 2px 0 2px #dbfbe26e,inset -4px 0 4px #123b2e}
.bottle-label{position:absolute;left:2px;right:2px;top:26px;display:block;background:#f6e7b8;color:#375a40;font:bold 8px Georgia,serif;letter-spacing:.02em;text-align:center;padding:5px 0;border-block:1px solid #ca9d59}
.prop-cup{right:79px;top:179px;width:48px;height:54px}
.glass-shape{width:43px;height:49px;border:3px solid #e7f6edaa;border-top:6px solid #f7fff2;border-radius:7px 7px 14px 14px;background:linear-gradient(90deg,#e7fff37e,#ffffff1a 40%,#cadbd372);box-shadow:inset 0 -3px 3px #36270a4a;overflow:hidden;transform:perspective(70px) rotateX(-6deg)}
.tea-liquid{position:absolute;left:1px;right:1px;bottom:1px;height:69%;background:linear-gradient(90deg,#996128,#d4a45c,#a66d33);border-radius:0 0 10px 10px;box-shadow:inset 0 4px 0 #f4cf8250}
.prop-pack{left:20px;bottom:152px;width:69px;height:53px}
.pack-shape{width:64px;height:45px;border:2px solid #c7a997;border-radius:4px;background:linear-gradient(135deg,#faf0e2,#d8b9a9);box-shadow:2px 3px 2px #0003;transform:rotate(-13deg)}
.pack-flap{position:absolute;top:5px;left:0;right:0;border-top:1px solid #845d53}
.pack-title{position:absolute;top:13px;left:2px;right:2px;color:#62483f;font:bold 8px system-ui;text-align:center;letter-spacing:-.025em}
.pack-stripe{position:absolute;left:2px;right:2px;bottom:3px;height:8px;background:#a84346}
.prop-gajak.prop-tapped .bowl-shape{animation:prop-wobble .24s ease-out}
.prop-bottle.prop-tapped .bottle-shape{animation:prop-sway .32s ease-out}
.prop-cup.prop-tapped .glass-shape{animation:prop-tap .22s ease-out}
.prop-pack.prop-tapped .pack-shape{animation:prop-flick .24s ease-out}
@keyframes prop-wobble{0%,100%{transform:rotate(-7deg)}35%{transform:rotate(3deg) translateY(2px)}70%{transform:rotate(-12deg)}}
@keyframes prop-sway{0%,100%{transform:rotate(0)}40%{transform:rotate(8deg)}70%{transform:rotate(-4deg)}}
@keyframes prop-tap{0%,100%{transform:translateY(0)}45%{transform:translateY(3px)}}
@keyframes prop-flick{0%,100%{transform:rotate(-13deg)}50%{transform:translate(4px,-2px) rotate(-8deg)}}
.table-props{z-index:4;overflow:visible}.table-prop *{pointer-events:none}.table-prop{touch-action:none!important;cursor:grab}.table-prop:active{cursor:grabbing}
.table-prop.prop-p1{left:15%;top:22%;bottom:auto;width:69px;height:53px}.table-prop.prop-p2{left:auto;right:15%;top:23%;bottom:auto;width:69px;height:53px}
.table-prop.prop-b1{left:26%;right:auto;top:5%;width:47px;height:100px}.table-prop.prop-b2{right:26%;top:4%;width:47px;height:100px}.table-prop.prop-b3{left:auto;right:16%;top:44%;width:47px;height:100px}
.table-prop.prop-snacks{left:17%;top:46%;width:82px;height:65px}
.prop-drag-ghost{position:fixed!important;right:auto!important;bottom:auto!important;margin:0!important;z-index:10000!important;pointer-events:none!important;transition:none!important;filter:drop-shadow(5px 12px 6px #0007)}
.table-prop.prop-drag-source{opacity:0;pointer-events:none}.prop-drag-ghost.prop-going-out{animation:prop-edge-wiggle .19s ease-in-out infinite alternate;filter:drop-shadow(0 0 6px #e8b86e) drop-shadow(5px 12px 8px #0007)}
.prop-drag-ghost.prop-discarding{animation:prop-vanish .42s ease-in both;pointer-events:none}
@keyframes prop-edge-wiggle{from{transform:translate(-3px,1px) rotate(-7deg)}to{transform:translate(3px,-2px) rotate(7deg)}}
@keyframes prop-vanish{from{opacity:1;transform:translateY(0) rotate(0) scale(1)}to{opacity:0;transform:translateY(28px) rotate(20deg) scale(.5)}}
@media(max-width:650px){.table-prop .prop-shape{scale:.65;transform-origin:top left}.table-prop.prop-b1,.table-prop.prop-b2,.table-prop.prop-b3{width:31px;height:65px}.table-prop.prop-p1,.table-prop.prop-p2{width:45px;height:36px}.table-prop.prop-snacks{width:54px;height:43px}.table-prop.prop-b1{left:17%;top:5%}.table-prop.prop-b2{right:17%;top:5%}.table-prop.prop-b3{right:7%;top:55%}.table-prop.prop-p1{left:5%;top:57%}.table-prop.prop-p2{right:4%;top:21%}.table-prop.prop-snacks{left:17%;top:21%}.prop-drag-ghost .prop-shape{scale:.65;transform-origin:top left}}
@media(prefers-reduced-motion:reduce){.table-prop *,.prop-drag-ghost{animation:none!important}.prop-drag-ghost.prop-going-out{outline:2px dashed #e4a952}.prop-drag-ghost.prop-discarding{opacity:0}}

.terrace .trickPiles{z-index:5}
.prop-lighter{left:28%;top:72%;width:44px;height:66px}.lighter-shape{width:40px;height:61px}.lighter-body{position:absolute;left:0;right:0;bottom:0;height:43px;border:1px solid #6a7070;border-radius:4px 4px 8px 8px;background:linear-gradient(100deg,#a3aaa6,#f7f5dd 23%,#adb8b4 53%,#73807d);box-shadow:inset 0 -3px 2px #64706a,2px 3px 3px #0004}.lighter-lid{position:absolute;left:0;top:0;width:40px;height:20px;border:1px solid #727d77;border-radius:7px 7px 1px 1px;background:linear-gradient(100deg,#9ca5a0,#f7f1dc,#8e9b95);transform-origin:0 100%;transition:rotate .15s cubic-bezier(.2,.9,.3,1);z-index:3}.lighter-chimney{position:absolute;top:6px;left:8px;width:19px;height:15px;background:radial-gradient(circle,#394c46 1px,transparent 2px) 0 0/5px 5px,#bac2ba;border-radius:3px}.lighter-wheel{position:absolute;left:27px;top:9px;width:8px;height:11px;border-radius:4px;background:repeating-linear-gradient(#606b64 0 2px,#c7cfc5 2px 3px)}.lighter-flame{display:none;position:absolute;top:-16px;left:12px;width:14px;height:29px;transform-origin:50% 100%;border-radius:55% 45% 45% 55%;background:radial-gradient(ellipse at 50% 80%,#e5f6ff 0 10%,#5588df 14%,#fff9b0 30%,#ffbb4a 60%,#f27e29 85%);box-shadow:0 0 12px #ffd86b;animation:lighter-flicker .15s ease-in-out infinite alternate;z-index:4}.lighter-open .lighter-lid{rotate:-135deg}.lighter-burning .lighter-flame{display:block}
.prop-cigarette{width:85px;height:24px;z-index:6}.cigarette-shape{width:80px;height:14px;rotate:var(--cig-angle,-8deg);transform-origin:85% 50%}.cig-paper{position:absolute;left:4px;top:3px;width:57px;height:9px;background:linear-gradient(#fffdef,#c9c5b8 85%,#e4e1d7);border:1px solid #c5beac;border-radius:2px}.cig-filter{position:absolute;left:60px;top:3px;width:20px;height:9px;background:repeating-linear-gradient(90deg,#bb8646 0 2px,#d4a060 2px 4px);border:1px solid #b58041;border-radius:0 3px 3px 0}.cig-ember{position:absolute;left:1px;top:3px;width:5px;height:9px;border-radius:50%;background:#8c725b}.cig-lit .cig-ember{background:radial-gradient(#ffdc75,#e75324 60%,#6a4737);box-shadow:0 0 5px #fa742f;animation:ember-glow 2s ease-in-out infinite alternate}.cig-smoke{display:none;position:absolute;left:1px;top:0;width:4px;height:4px}.cig-lit .cig-smoke{display:block}.cig-smoke i{position:absolute;left:-3px;top:0;width:8px;height:14px;border:2px solid #e5ebdf70;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;filter:blur(.7px);animation:cig-smoke-rise 2.4s linear infinite}.cig-smoke i:nth-child(2){animation-delay:-.6s}.cig-smoke i:nth-child(3){animation-delay:-1.2s}.cig-smoke i:nth-child(4){animation-delay:-1.8s}.cig-trailing-smoke{position:fixed;pointer-events:none;z-index:10001;width:10px;height:15px;border:2px solid #e3e7da80;border-left-color:transparent;border-radius:50%;filter:blur(1px);animation:smoke-drift 1.4s ease-out both}.pack-shaking .pack-shape{animation:pack-release .4s ease-out}.cig-emerging{animation:cig-emerge .35s ease-out}
@keyframes lighter-flicker{from{scale:.95 1;rotate:-4deg}to{scale:1.04 .9;rotate:5deg}}@keyframes ember-glow{from{filter:brightness(.8)}to{filter:brightness(1.4)}}@keyframes cig-smoke-rise{0%{opacity:0;translate:0 0;scale:.4}18%{opacity:.65}60%{translate:10px -32px}100%{opacity:0;translate:-6px -65px;scale:2.5;rotate:30deg}}@keyframes smoke-drift{from{opacity:.5;translate:0 0;scale:.6}to{opacity:0;translate:12px -48px;scale:2.3}}@keyframes pack-release{0%,100%{translate:0 0}25%,75%{translate:-6px 0}50%{translate:6px 0}}@keyframes cig-emerge{from{opacity:0;translate:-22px -5px;rotate:-18deg}to{opacity:1;translate:0 0;rotate:0deg}}
@media(max-width:650px){.prop-lighter{left:24%;top:75%;width:30px;height:44px}.prop-cigarette{width:56px;height:20px}}
@media(prefers-reduced-motion:reduce){.cig-smoke i,.cig-trailing-smoke{animation:none;opacity:.3;translate:0 -12px}.lighter-lid{transition:none}.cig-emerging{animation:none}}

/* Props sit above played cards; only their own hit areas intercept touches. */
.terrace .table-props{z-index:6}
.terrace .trumpPanel{z-index:10}
@media(max-width:650px){
 .table-prop.prop-p1{left:3%;right:auto;top:7%;width:48px;height:44px}
 .table-prop.prop-p2{right:3%;left:auto;top:7%;width:48px;height:44px}
 .table-prop.prop-b1{left:2%;right:auto;top:68%;width:44px;height:65px}
 .table-prop.prop-b2{right:2%;left:auto;top:68%;width:44px;height:65px}
 .table-prop.prop-b3{left:22%;right:auto;top:4%;width:44px;height:65px}
 .table-prop.prop-snacks{left:3%;top:23%;width:54px;height:44px}
 .table-prop.prop-lighter{right:3%;left:auto;top:23%;width:44px;height:48px}
 .prop-drag-ghost{min-width:0}
}

.table-prop.prop-c1{left:auto;right:15%;top:23%;width:48px;height:54px}
@media(max-width:650px){.table-prop.prop-c1{left:auto;right:3%;top:7%;width:44px;height:44px}}

/* Soda and snacks keep their state until the next hand. */
.bottle-open .bottle-cap{opacity:0}
.soda-pouring .bottle-shape{rotate:-28deg;transition:rotate .2s}
.soda-pouring .bottle-neck::after{content:'';position:absolute;left:-10px;top:0;width:5px;height:55px;background:linear-gradient(#dca049c0,#b5722a40);border-radius:40%;rotate:28deg;animation:soda-stream .7s ease-out both}
.soda-liquid{position:absolute;inset:auto 1px 1px;height:0;background:linear-gradient(90deg,#8b431cd9,#d88f38df,#9d4c20d9);border-radius:0 0 10px 10px;transition:height .65s ease-out;box-shadow:inset 0 3px 0 #ffe0a08c}
.glass-filled .soda-liquid{height:calc(var(--liquid,1)*73%)}
.glass-filled .soda-bubbles{position:absolute;inset:12px 5px 5px;background:radial-gradient(circle at 20% 75%,#fff3cc 0 1px,transparent 2px),radial-gradient(circle at 70% 35%,#fff3cc 0 1px,transparent 2px),radial-gradient(circle at 48% 58%,#fff3cc 0 1px,transparent 2px);animation:soda-fizz 1.2s ease-out 3}
@keyframes soda-stream{0%{scale:1 0;opacity:0}25%,75%{scale:1 1;opacity:.8}100%{opacity:0;scale:.6 1}}
@keyframes soda-fizz{from{translate:0 6px;opacity:.8}to{translate:0 -7px;opacity:0}}
.prop-peanut{width:44px;height:44px;z-index:7}
.peanut-shell{width:34px;height:17px;rotate:var(--nut-angle,-15deg);filter:drop-shadow(1px 2px 1px #0004)}
.peanut-shell i{position:absolute;top:0;left:0;width:20px;height:18px;border:1px solid #98602c;border-radius:50%;background:repeating-linear-gradient(35deg,#dbb775 0 3px,#bd8d4d 3px 4px)}
.peanut-shell i+i{left:14px;rotate:12deg}
.prop-kernel{width:28px;height:28px;z-index:7}
.peanut-kernel{width:12px;height:19px;border:1px solid #b57942;border-radius:48%;rotate:25deg;background:linear-gradient(95deg,#dfb57b,#f6dbac 45%,#bc8046 51%,#edc892 60%);box-shadow:1px 2px 2px #0003}
.peanut-falling{animation:peanut-fall .35s ease-out both}
.kernel-emerging{animation:kernel-pop .3s ease-out both}
.peanut-cracked{pointer-events:none}
.peanut-cracked .peanut-shell i{animation:shell-left .6s ease-out both}
.peanut-cracked .peanut-shell i+i{animation:shell-right .6s ease-out both}
@keyframes peanut-fall{from{opacity:0;translate:-16px -25px;rotate:-50deg}60%{opacity:1;translate:0 3px}to{translate:0 0;rotate:0deg}}
@keyframes kernel-pop{from{opacity:0;scale:.4;translate:0 -10px}to{opacity:1;scale:1;translate:0 0}}
@keyframes shell-left{to{translate:-14px -4px;rotate:-55deg;opacity:0}}
@keyframes shell-right{to{translate:14px 6px;rotate:55deg;opacity:0}}
.cig-paper{left:calc(4px + var(--burn,0)*57px);width:calc(57px - var(--burn,0)*57px)}
.cig-filter{left:60px;width:20px}
.cig-ember,.cig-smoke{left:calc(1px + var(--burn,0)*57px)}
@media(prefers-reduced-motion:reduce){.soda-liquid,.soda-pouring .bottle-shape{transition:none}.peanut-cracked .peanut-shell{opacity:0}.soda-pouring .bottle-neck::after{display:none}}

.cig-spent .cig-paper{border:0;width:0}
.cig-spent .cig-ember{background:#5d5147;box-shadow:none}
.cig-puff .cig-ember{filter:brightness(1.7);box-shadow:0 0 10px #ff753a}
.cig-puff .cig-smoke i{animation-duration:1.1s}
.glass-drinking .glass-shape{rotate:-32deg;transition:rotate .2s}
.nut-eaten{pointer-events:none;animation:nut-eaten .2s ease-in both}
@keyframes nut-eaten{to{opacity:0;scale:.3;translate:0 -8px}}
.table-props.hand-cup::after,.table-props.hand-cigarette::after{content:'Bring here to drink';position:absolute;bottom:8px;left:50%;translate:-50% 0;background:#102b29ed;border:1px solid #d1b370;border-radius:16px;color:#f4dfac;padding:6px 12px;font:12px system-ui;white-space:nowrap;pointer-events:none}
.table-props.hand-cigarette::after{content:'Bring here to take a puff'}
@media(prefers-reduced-motion:reduce){.glass-drinking .glass-shape{transition:none}.nut-eaten{opacity:0}}

.glass-dirty .soda-liquid{background:linear-gradient(90deg,#343323e6,#777451eb,#414231e6);box-shadow:inset 0 3px 0 #a69b6980}
.glass-dirty .glass-shape::after{content:'';position:absolute;bottom:4px;left:12px;width:17px;height:5px;border-radius:2px;background:linear-gradient(90deg,#756b59 0 65%,#b87e43 65%);rotate:-24deg}

.prop-capacity-notice{position:absolute;bottom:55px;left:50%;translate:-50% 0;width:max-content;max-width:85%;padding:9px 12px;border-radius:12px;background:#fff1cb;color:#283b2c;font:12px/1.4 system-ui;text-align:center;pointer-events:none;z-index:9}

.prop-spirit .bottle-label{font-size:13px;padding:2px 0;color:#4b2918}
.prop-spirit .bottle-body{background:linear-gradient(90deg,#432719,#8b552b 25%,#c28c4e 40%,#734121 65%,#352015);border-color:#50331d}
.glass-spirit:not(.glass-dirty) .soda-liquid{background:linear-gradient(90deg,#592a11e8,#9e5624e8,#663010ed)}
.glass-fire{display:none;position:absolute;left:14px;top:-18px;width:23px;height:35px;border-radius:55% 45% 45% 55%;background:radial-gradient(ellipse at 50% 85%,#bce8ff 0 15%,#3477d0 28%,#ffe593 55%,#ef8d36 85%);box-shadow:0 0 14px #ffbe5955;pointer-events:none}
.glass-burning .glass-fire{display:block;animation:lighter-flicker .2s ease-in-out infinite alternate}
@media(max-width:650px){.glass-fire{left:12px;top:-10px;width:17px;height:26px}}
@media(prefers-reduced-motion:reduce){.glass-burning .glass-fire{animation:none}}
/* Keep a turned cigarette centred on its drag target at both desktop and phone scales. */
.prop-cigarette .cigarette-shape{transform-origin:50% 50%}
.prop-cigarette{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}

/* Centre the remaining butt on its grab area, including after the cigarette turns. */
.cig-spent .cigarette-shape{width:24px}
.cig-spent .cig-filter{left:2px}
.cig-spent .cig-ember{left:0}
