/* Presentation effects stay within the card table. */
.landlord-game #table-effects{position:absolute;inset:0;z-index:16;overflow:hidden;pointer-events:none;display:grid;place-items:center}
.landlord-game #table-effects[hidden],.landlord-game #table-result[hidden]{display:none!important}
.landlord-game .table-fx{position:absolute;top:34%;left:50%;display:flex;flex-direction:column;align-items:center;min-width:180px;padding:15px 32px;border:1px solid #ffeec98c;border-radius:50%;color:#fff0bb;text-shadow:0 3px 0 #94552a,0 0 22px #b26622;background:radial-gradient(ellipse,#b46625c7 0%,#b4662566 45%,#b4662500 73%);transform:translate(-50%,-50%);animation:table-fx-burst 1.45s ease both}
.landlord-game .table-fx-emblem{font-size:64px;line-height:1;color:#fff5cc;filter:drop-shadow(0 3px 0 #9c552b)}
.landlord-game .table-fx-title{font-size:38px;font-weight:900;line-height:1.35;letter-spacing:5px;white-space:nowrap}
.landlord-game .table-fx-subtitle{font-size:11px;font-weight:600;letter-spacing:1px;text-shadow:0 1px 3px #704a25}
.landlord-game .table-fx-rocket{background:radial-gradient(ellipse,#a74147d6,#ae465d4d 55%,transparent 75%)}
.landlord-game .table-fx-airplane .table-fx-emblem{animation:table-fx-flight 1.3s ease both}
.landlord-game .table-fx-bomb{border-color:#fff0a6;background:radial-gradient(ellipse,#ffb21be8 0%,#ed6124bd 35%,#b3212866 65%,transparent 78%);box-shadow:0 0 24px #ff9b26aa,inset 0 0 18px #ffce4d88;animation:table-fx-bomb-burst 1.45s ease both}
.landlord-game .table-fx-bomb .table-fx-emblem{font-size:78px;color:#fff1a6;text-shadow:0 0 20px #ffcb3c;animation:table-fx-bomb-spin .7s ease-in-out 2}
.landlord-game .table-fx-pairs{border-color:#d4c6ff;background:radial-gradient(ellipse,#9472dfdc 0%,#5f59b4b3 45%,transparent 75%);box-shadow:0 0 22px #a790ff88;text-shadow:0 3px 0 #454081,0 0 20px #9685ff}
.landlord-game .table-fx-pairs .table-fx-emblem{font-size:54px;letter-spacing:-18px;padding-right:18px;color:#fff6cf;text-shadow:2px 2px #845c28,-2px -2px #fff}
.landlord-game .table-fx-pairs .table-fx-emblem{animation:table-fx-pair-fan .8s ease-in-out 2}
.landlord-game .table-fx-airplane{background:radial-gradient(ellipse,#58abc9dc 0%,#4775b6b3 48%,transparent 76%);box-shadow:0 0 24px #67d7f899;text-shadow:0 3px 0 #315276,0 0 20px #7ce5ff}
.landlord-game .table-fx-straight{background:radial-gradient(ellipse,#326c89c9,#326c894d 50%,transparent 73%);text-shadow:0 3px 0 #346177,0 0 18px #468e9c}
.landlord-game #hand.dealing .playing-card{animation:table-card-deal .38s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--deal-index,0)*32ms);pointer-events:none}
.landlord-game .public-cards.played-in{animation:table-play-in .34s cubic-bezier(.16,.75,.3,1) both}
.landlord-game #table-result{position:absolute;inset:0;z-index:20;display:flex;justify-content:center;align-items:flex-start;padding:100px 16px 25px;background:linear-gradient(#34515a38,#78542f61 65%,#78542f28);backdrop-filter:blur(3px);overflow:auto;overscroll-behavior:contain}
.landlord-game .table-result-card{width:min(100%,470px);padding:25px 22px 20px;border:2px solid #fff0bd;border-radius:24px;background:linear-gradient(155deg,#fff7da,#f9e5b9);box-shadow:0 10px 50px #42321644,inset 0 0 0 4px #dfb96d4d;text-align:center;color:#74572f;animation:table-result-enter .3s ease both}
.landlord-game .table-result-kicker{color:#9c7845;font-size:11px;letter-spacing:2px}
.landlord-game .table-result-title{margin:8px 0 5px;font-size:32px;font-weight:850;letter-spacing:2px;color:#b46424;text-shadow:0 2px #fff9df}
.landlord-game .result-lost .table-result-title{color:#526e7c}
.landlord-game .table-result-team{margin:0;font-size:13px;line-height:1.6;color:#93723f}
.landlord-game .table-result-summary{margin:12px 0 0;font-size:12px;line-height:1.6;color:#765223;font-weight:700}
.landlord-game .table-result-modifiers{margin-top:4px;color:#946334;font-weight:600}
.landlord-game .table-result-players{display:grid;gap:8px;margin:20px 0 12px;text-align:left}
.landlord-game .table-result-player{display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid #e6d6b6;border-radius:12px;background:#fffdf5a6}
.landlord-game .table-result-player.winner{border-color:#dbb867;background:#fff8df}
.landlord-game .table-result-player.result-me{box-shadow:inset 3px 0 #c79140}
.landlord-game .table-result-avatar{width:39px;height:39px;object-fit:cover;border:2px solid #fffae9;border-radius:12px;box-shadow:0 2px 4px #795a3220}
.landlord-game .table-result-person{min-width:0}
.landlord-game .table-result-person strong{display:block;font-size:12px;font-weight:750;overflow-wrap:anywhere}
.landlord-game .table-result-person span,.landlord-game .table-result-score span{display:block;font-size:10px;line-height:1.6;color:#9a8768}
.landlord-game .table-result-score{text-align:right}
.landlord-game .table-result-score strong{display:block;color:#8f6731;font-size:14px;font-weight:800;white-space:nowrap}
.landlord-game .table-result-player.winner .table-result-score strong{color:#bf7528}
.landlord-game .table-result-note{font-size:11px;line-height:1.6;color:#9b8057;margin:12px 0}
.landlord-game .table-result-close{min-width:145px;min-height:42px;padding:9px 23px;border:1px solid #be8f3f;border-radius:22px;background:linear-gradient(#ffedb0,#efbf63);box-shadow:inset 0 1px #fff8d7,0 3px 0 #ae7b37;color:#7a4e23;font-family:inherit;font-weight:700;font-size:14px;line-height:1.5;cursor:pointer}
.landlord-game .table-result-close:hover{filter:brightness(1.04)}
.landlord-game .table-result-close:focus-visible{outline:3px solid #486f7a;outline-offset:4px}
@keyframes table-card-deal{from{opacity:0;translate:0 -60px;scale:.82}to{opacity:1;translate:0 0;scale:1}}
@keyframes table-play-in{from{opacity:0;translate:var(--play-origin-x,0px) var(--play-origin-y,30px);scale:.87}to{opacity:1;translate:0 0;scale:1}}
@keyframes table-fx-burst{0%{opacity:0;scale:.65}18%{opacity:1;scale:1.08}32%,70%{opacity:1;scale:1}100%{opacity:0;scale:1.1}}
@keyframes table-fx-flight{0%{translate:-100px 18px;rotate:-12deg}45%{translate:0 0;rotate:-12deg}100%{translate:130px -30px;rotate:-12deg}}
@keyframes table-fx-bomb-burst{0%{opacity:0;scale:.35}20%{opacity:1;scale:1.16}32%{scale:.96}42%,70%{opacity:1;scale:1}100%{opacity:0;scale:1.18}}
@keyframes table-fx-bomb-spin{0%{rotate:-45deg;scale:.65}50%{rotate:25deg;scale:1.2}100%{rotate:0;scale:1}}
@keyframes table-fx-pair-fan{0%,100%{translate:0 5px;rotate:-8deg;scale:.88}50%{translate:0 -2px;rotate:8deg;scale:1.12}}
@keyframes table-result-enter{from{opacity:0;translate:0 12px;scale:.97}to{opacity:1;translate:0 0;scale:1}}
@media(max-width:480px){.landlord-game #table-result{padding:72px 10px 18px}.landlord-game .table-result-card{padding:22px 12px 17px;border-radius:19px}.landlord-game .table-result-title{font-size:29px}.landlord-game .table-result-player{grid-template-columns:34px minmax(0,1fr) auto;gap:7px;padding:9px 7px}.landlord-game .table-result-avatar{width:34px;height:34px}.landlord-game .table-result-score strong{font-size:13px}.landlord-game .table-result-score span{max-width:112px;font-size:9px}.landlord-game .table-fx{top:37%;min-width:150px}.landlord-game .table-fx-title{font-size:34px}}
@media(prefers-reduced-motion:reduce){.landlord-game .table-fx,.landlord-game .table-fx-emblem,.landlord-game #hand.dealing .playing-card,.landlord-game .public-cards.played-in,.landlord-game .table-result-card{animation:none!important;transition:none!important}}

/* Run Fast scoring, movable player clock and polished card stock. */
.runfast-game #table-clock-home{display:contents}
.runfast-game #table-clock[hidden]{display:none!important}
.runfast-game .opponent.active .table-clock,.runfast-game .own-player .table-clock{position:absolute;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;width:62px;min-height:0;margin:0;pointer-events:none;animation:runfast-clock-hop .24s cubic-bezier(.2,.8,.2,1)}
.runfast-game .own-player{position:relative}
.runfast-game .opponent.active .table-clock{top:-4px;left:-7px}
.runfast-game .opponent.seat-right.active .table-clock{left:auto;right:-7px}
.runfast-game .own-player .table-clock{top:-8px;left:-7px}
.runfast-game .table-clock .clock-face{width:42px;height:42px;min-width:42px;border:3px solid #d59a35;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fffef7,#fff0c5 69%,#e8b85e);box-shadow:0 2px 0 #9a6528,inset 0 0 0 2px #fff4ce,0 4px 8px #51391670}
.runfast-game .table-clock .clock-face:before,.runfast-game .table-clock .clock-face:after{top:-5px;width:12px;height:7px;border-radius:7px 7px 0 0}
.runfast-game .table-clock .clock-face:before{left:-4px}.runfast-game .table-clock .clock-face:after{right:-4px}
.runfast-game .table-clock .clock-face strong{font:800 24px/1 Georgia,'Times New Roman',serif;color:#9b4a1e;text-shadow:0 1px #fff9e7}
.runfast-game .table-clock .clock-label{display:block;max-width:76px;margin-top:3px;padding:1px 5px;border:1px solid #f4d18a;border-radius:10px;background:linear-gradient(#fff8e5,#f7d997);box-shadow:0 2px 3px #52381838;color:#80521d;font-size:8px;font-weight:850;line-height:1.3;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-shadow:none}
.runfast-game .table-clock.urgent .clock-face{border-color:#d36b3f;animation:clock-pulse 1s ease-in-out infinite}
.runfast-game .table-clock.urgent .clock-face strong{color:#b53f27}
.runfast-game .ledger-spring-badge,.runfast-game .ledger-multiplier-badge{display:inline-block;margin:2px 2px 0;padding:1px 5px;border:1px solid #e5b85e;border-radius:8px;background:linear-gradient(#fff3c4,#f4d27d);color:#915323;font-size:9px;font-weight:800;line-height:1.4;white-space:nowrap;vertical-align:middle}
.runfast-game .ledger-spring-badge,.runfast-game .ledger-multiplier-badge.spring{border-color:#d69b55;background:linear-gradient(#ffe7b1,#f2b969);color:#93441e}
.runfast-game .ledger-multiplier-badge.bomb{border-color:#ce9475;background:linear-gradient(#ffe9dc,#f2c1a1);color:#8e462b}
.runfast-game .ledger-round-remaining{line-height:1.6}
.runfast-game .hand .playing-card{overflow:hidden;border:1px solid #c9b47f;background:linear-gradient(115deg,#fff 0%,#fffef9 38%,#f7f1df 100%);box-shadow:inset 0 1px #fff,0 1px 1px #5d482433,1px 4px 7px #6f4d1d45}
.runfast-game .hand .playing-card:before{content:"";position:absolute;inset:3px;border:1px solid #e7ddc3;border-radius:4px;box-shadow:inset 0 0 0 1px #fff9;pointer-events:none}
.runfast-game .hand .card-rank,.runfast-game .hand .card-suit{z-index:1;text-shadow:0 1px #fff}
.runfast-game .hand .card-center{filter:drop-shadow(0 1px 1px #8a68442b)}
.runfast-game .hand .playing-card.selected{border-color:#178eae;box-shadow:inset 0 1px #fff,0 5px 10px #287c9755}
@keyframes runfast-clock-hop{from{opacity:.6;translate:0 -7px;scale:.88}to{opacity:1;translate:0 0;scale:1}}
@media(max-width:700px){.runfast-game .opponent.active .table-clock{top:-5px;left:-4px}.runfast-game .opponent.seat-right.active .table-clock{left:auto;right:-4px}.runfast-game .own-player .table-clock{top:-9px;left:-7px}.runfast-game .table-clock .clock-face{width:37px;height:37px;min-width:37px;border-width:2px}.runfast-game .table-clock .clock-face strong{font-size:21px}.runfast-game .table-clock .clock-label{font-size:7px;padding:1px 4px}.runfast-game .ledger-spring-badge,.runfast-game .ledger-multiplier-badge{font-size:8px;margin-left:1px;margin-right:1px;padding:1px 3px}}
