.live-game {max-width:1200px;margin:0 auto;color:#f3f5fa;letter-spacing:0}
.playing-card svg{direction:ltr}
.card-toast:empty{display:none}
.live-game .seat{position:static;background:transparent;border-radius:6px;flex-shrink:0;text-align:start}
.live-game .live-hand .playing-card.disabled{opacity:1;filter:brightness(.88)}
.hand-opponents{display:flex;justify-content:space-around;gap:10px;margin-bottom:15px}.hand-felt{min-height:290px;background:#205e52;border:6px solid #313d48;border-radius:8px;padding:24px}.hand-piles{display:flex;justify-content:center;gap:40px}.hand-piles>div{display:flex;flex-direction:column;align-items:center;gap:8px}.hand-piles small{font-size:12px}.hand-piles .playing-card{width:95px;transform:none}.hand-piles button:not(.playing-card){padding:7px 14px;border:1px solid #acc3b7;border-radius:4px;background:#e6f0e9;color:#163c31}.hand-piles button:disabled{opacity:.5}.live-melds{display:flex;gap:20px;flex-wrap:wrap;margin-top:20px}.live-melds small{font-size:11px}.live-melds .playing-card{width:44px;opacity:1;transform:none;margin:0;filter:none}.live-melds>div>div{display:flex;direction:ltr}
.live-game button,.live-game select {font:inherit}
.live-game button:disabled {cursor:default}
.match-strip {display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:86px;padding:12px 4px;font-size:14px}
.match-strip>span {display:flex;gap:12px;align-items:center}.match-strip>span>b{font-size:24px}
.seat{display:flex;align-items:center;gap:10px;padding:8px;border-bottom:2px solid transparent}.seat.active{border-color:#65dfc0}
.seat small,.card-seat small{display:block;font-size:11px;color:#b2bac7;margin-top:5px}
.seat-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:18px;color:#14202a;flex-shrink:0;background:#87dbc5;border:2px solid #ffffff55}.seat-avatar.coral{background:#f0949d}.seat-avatar.mint{background:#87dbc5}
.live-status {text-align:center;color:#e9d5a6;font-size:14px;min-width:110px}
.wood-surround {padding:18px;background:repeating-linear-gradient(3deg,#4a2b1c 0,#603d27 3px,#543321 6px,#70492f 8px);border:2px solid #9b7654;border-radius:8px;box-shadow:0 18px 36px #0007,inset 0 0 0 5px #2d1b16}
.real-board{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) .62fr repeat(6,minmax(0,1fr)) .75fr;grid-template-rows:43% 14% 43%;aspect-ratio:1.85;background:repeating-linear-gradient(95deg,#e3cfab 0,#e7d6b8 3px,#e6d3b2 7px);box-shadow:inset 0 0 16px #6344258a;border:3px solid #b49267;padding:12px 6px;isolation:isolate}
.live-point{position:relative;background:transparent;border:0;padding:0;min-width:0;border-radius:0;overflow:visible;color:#49372a;cursor:pointer}
.live-point:before{content:"";position:absolute;inset:0 3% 0;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(90deg,#812c3b,#9d4855 48%,#6a2330);filter:drop-shadow(0 1px 1px #0007)}
.live-point.coal:before{background:linear-gradient(90deg,#273740,#475861 48%,#24303a)}
.live-point.lower:before{transform:rotate(180deg)}
.point-number{position:absolute;font-size:10px;line-height:12px;top:-13px;left:0;right:0;text-align:center;font-family:Arial,sans-serif}.lower .point-number{top:auto;bottom:-13px}
.live-checker{position:absolute;display:block;width:88%;aspect-ratio:1;left:6%;top:calc(var(--stack)*var(--step));border-radius:50%;box-shadow:0 3px 2px #0007,inset 0 0 0 2px #fff5,inset 0 -4px 3px #0004;z-index:2;pointer-events:none}
.live-checker:after{content:"";position:absolute;inset:16%;border-radius:50%;border:2px solid #b7a887;box-shadow:inset 0 2px 3px #0003,0 1px 1px #fff7}
.live-checker.ivory{background:radial-gradient(circle at 35% 25%,#fffff6,#ede7d6 55%,#b8ac92 98%)}
.live-checker.onyx{background:radial-gradient(circle at 35% 25%,#65717b,#262d35 55%,#0b1017);box-shadow:0 3px 2px #0008,inset 0 0 0 2px #8c939a,inset 0 -4px 3px #0008}
.live-checker.onyx:after{border-color:#1a2129;box-shadow:inset 0 2px 3px #0008,0 1px 1px #89929c}
.lower .live-checker{top:auto;bottom:calc(var(--stack)*var(--step))}
.live-point.chosen .live-checker:last-of-type{outline:3px solid #fff2a8;outline-offset:-1px}
.live-point.destination:after{content:"";position:absolute;inset:2px;border:3px solid #ebc65b;background:#ffe69533;z-index:3;border-radius:4px;pointer-events:none}
.live-point:not(:disabled):focus-visible{outline:3px solid #007c94;outline-offset:2px;z-index:5}
.stack-count{position:absolute;top:78%;left:32%;width:36%;aspect-ratio:1;display:grid;place-items:center;background:#fff;color:#24282f;font-size:12px;border-radius:50%;z-index:4}.lower .stack-count{top:auto;bottom:78%}
.center-rail{grid-column:7;grid-row:1/4;background:repeating-linear-gradient(90deg,#5b3826,#71492e 3px,#503120 6px);box-shadow:inset 3px 0 3px #b99469,inset -3px 0 3px #28160f;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:4px 1px;z-index:4}
.bar-slot{position:relative;width:100%;height:43%;border:0;background:transparent;padding:0;min-width:0}.bar-slot small{position:absolute;bottom:0;left:0;right:0;text-align:center;color:#fff;z-index:5}.bar-slot.chosen{outline:2px solid #f4d66a}.rail-brand{font-family:Georgia,serif;font-size:16px;color:#d4b581}
.board-dice{grid-row:2;grid-column:2/7;display:flex;gap:12px;align-items:center;justify-content:center;z-index:5}
.live-die{width:38px;aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:7px;gap:2px;background:#fff9eb;border-radius:7px;box-shadow:2px 4px 3px #0006,inset -2px -2px 2px #b9b19e;box-sizing:border-box}
.live-die .pip{border-radius:50%;background:#232832;opacity:0}
.face-1 .p5,.face-2 .p1,.face-2 .p9,.face-3 .p1,.face-3 .p5,.face-3 .p9,.face-4 .p1,.face-4 .p3,.face-4 .p7,.face-4 .p9,.face-5 .p1,.face-5 .p3,.face-5 .p5,.face-5 .p7,.face-5 .p9,.face-6 .p1,.face-6 .p3,.face-6 .p4,.face-6 .p6,.face-6 .p7,.face-6 .p9{opacity:1}
.off-tray{grid-row:1/4;grid-column:14;display:grid;grid-template-rows:1fr 1fr;gap:12px;padding-left:5px}.off-tray>div,.off-tray>button{background:#483023;box-shadow:inset 0 0 6px #180e09;border:1px solid #8c6947;display:flex;flex-direction:column;align-items:center;gap:2px;color:#f4e6cf;min-width:0;padding:4px 1px;border-radius:2px;overflow:hidden}.off-tray small{font-size:9px}.off-tray b{font-size:13px}.off-tray .destination{outline:3px solid #ebc65b}.off-stone{width:85%;height:5px;background:#e8dfc9;border:1px solid #bfb39c;border-radius:2px;flex-shrink:0}.off-stone.dark{background:#303944;border-color:#69717a}
.round-strip{display:flex;justify-content:space-between;gap:12px;padding:20px 2px;color:#acb7c3;font-size:13px}
.live-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:16px 0 24px;min-height:76px}
.live-actions button,.move-choices button{min-height:42px;border:1px solid #47505f;background:#252c37;color:#f6f7fa;padding:8px 18px;border-radius:6px;cursor:pointer;font-size:13px}.live-actions button.primary{background:#82e2c6;color:#132b26;border-color:#82e2c6;font-weight:700}.live-actions button:disabled{opacity:.38}.live-actions button:not(:disabled):hover{filter:brightness(1.15)}.live-actions select{margin:0 10px;background:#fff;color:#18212c;border-radius:4px;padding:8px}.move-choices{display:flex;justify-content:center;gap:8px}.live-actions button:focus-visible{outline:3px solid #f5d87e;outline-offset:3px}
.card-arena{height:430px;position:relative;border:10px solid #252d39;border-radius:90px;box-shadow:inset 0 0 0 2px #667885,inset 0 0 55px #0008,0 15px 28px #0004;background:radial-gradient(ellipse at center,#277363,#184e47 75%);isolation:isolate}
.card-arena:after{content:"CA";position:absolute;inset:0;display:grid;place-items:center;font-size:100px;font-family:Georgia,serif;font-weight:bold;opacity:.055;pointer-events:none;z-index:-1}
.card-seat{position:absolute;display:grid;grid-template-columns:42px auto;column-gap:8px;align-items:center;min-width:90px;font-size:13px;padding:6px;border:1px solid transparent;border-radius:6px;background:#112c2bba;z-index:3}.card-seat .seat-avatar{grid-row:1/3}.card-seat.active{border-color:#94e8c4;box-shadow:0 0 0 3px #94e8c41a}.card-seat.north{top:12px;left:50%;transform:translateX(-50%)}.card-seat.west{left:12px;top:40%}.card-seat.east{right:12px;top:40%}.seat-backs{display:flex;direction:ltr;grid-column:1/3;justify-content:center;height:34px;margin-top:4px}.seat-backs>span{width:23px;margin-left:-9px;transform:rotate(8deg)}.seat-backs svg{width:100%;height:auto}
.contract-chip{position:absolute;top:25px;right:6%;font-size:12px;color:#e8e3c8;max-width:22%;text-align:center}.contract-chip strong{display:block;font-size:32px;color:#fff}.red,.contract-chip strong.red{color:#ed6e7b}
.live-trick{position:absolute;width:280px;height:245px;top:110px;left:50%;transform:translateX(-50%)}.trick-card{position:absolute;text-align:center;animation:card-arrive .3s ease-out}.trick-card small{display:block;font-size:10px;color:#e0ede7;line-height:18px}.trick-card.position-0{bottom:0;left:97px;z-index:4}.trick-card.position-1{right:0;top:45px;z-index:2}.trick-card.position-2{top:0;left:97px}.trick-card.position-3{left:0;top:45px;z-index:3}.live-trick .playing-card{width:78px!important;opacity:1!important;filter:none!important;transform:none!important}.arena-bottom{position:absolute;bottom:16px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:12px;color:#ccdcd6}.arena-bottom b{font-size:19px;color:#fff}
.live-hand{display:flex;direction:ltr;justify-content:center;min-height:176px;max-width:100%;padding:28px 12px 8px;overflow-x:auto;overflow-y:hidden;box-sizing:border-box;isolation:isolate}.live-hand .playing-card{flex:0 0 86px;width:86px;margin:0 0 0 -27px;transform:translateY(0);transition:transform .18s;filter:none;box-shadow:0 3px 7px #0005;border-radius:6px;align-self:flex-start}.live-hand .playing-card:first-child{margin-left:0}.live-hand .playing-card.disabled{opacity:.7}.live-hand .playing-card.playable{opacity:1}.live-hand .playing-card:not(:disabled):hover,.live-hand .playing-card.selected{transform:translateY(-16px);z-index:4}.live-hand .playing-card.selected{outline:3px solid #82e2c6}.live-hand .playing-card svg{display:block;width:100%}.trump-choices{display:flex;gap:12px}.trump-choices button{font-size:28px;width:56px;background:#fff;color:#18212c}.trump-choices .red{color:#b62f42}.round-result{text-align:center;padding-top:65px}.round-result h2{font-size:20px}.round-result b{font-size:32px}.lab-title h1{font-size:24px}.lab-title{margin-bottom:12px}
@keyframes card-arrive{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}
@media(max-width:700px){.lab-main{padding:12px!important}.lab-header{padding:12px;gap:12px;flex-wrap:wrap}.lab-header nav{overflow:auto;max-width:100%;flex-wrap:nowrap;white-space:nowrap}.lab-title h1{font-size:20px}.lab-title>span{display:none}.match-strip{font-size:11px;gap:5px;min-height:76px}.match-strip>span{gap:5px;max-width:30%;flex-wrap:wrap}.match-strip>span>b{font-size:20px}.seat{padding:4px;gap:5px}.seat-avatar{width:32px;height:32px;font-size:14px}.seat small{font-size:9px}.live-status{font-size:11px;min-width:70px}.wood-surround{padding:9px 5px}.real-board{aspect-ratio:1.35;border-width:2px;padding:12px 2px}.point-number{font-size:8px}.live-checker{width:96%;left:2%;box-shadow:0 2px 1px #0007,inset 0 0 0 1px #fff5}.live-checker:after{border-width:1px}.live-die{width:25px;padding:4px;gap:1px;border-radius:4px}.board-dice{gap:6px}.rail-brand{font-size:10px}.off-tray{padding-left:2px;gap:5px}.off-tray small{font-size:7px}.off-stone{height:3px}.round-strip{font-size:10px;padding:14px 0}.live-actions{gap:6px}.live-actions button{font-size:12px;padding:8px 12px}.card-arena{height:390px;border-width:5px;border-radius:45px}.card-seat{grid-template-columns:28px auto;padding:4px;gap:4px;min-width:0;font-size:10px}.card-seat .seat-avatar{width:28px;height:28px}.card-seat small{font-size:8px}.card-seat.west{left:4px;top:30%}.card-seat.east{right:4px;top:30%}.card-seat.north{top:8px}.seat-backs{height:25px}.seat-backs>span{width:18px}.contract-chip{top:25px;right:5%;font-size:9px;max-width:20%}.contract-chip strong{font-size:24px}.live-trick{top:135px;width:216px;height:199px}.live-trick .playing-card{width:62px!important}.trick-card.position-0,.trick-card.position-2{left:77px}.trick-card.position-1,.trick-card.position-3{top:35px}.live-hand{justify-content:flex-start;min-height:148px;padding:23px 5px 8px}.live-hand .playing-card{width:68px;flex-basis:68px;margin-left:-36px}.live-hand .playing-card:last-child{margin-right:5px}.arena-bottom{bottom:12px}.stack-count{font-size:8px}.live-point.destination:after{border-width:2px}.lab-header .dev-label{display:none}}
@media(prefers-reduced-motion:reduce){.live-game *{animation:none!important;transition:none!important}}
