/* Resolution-independent cloth, stitched leather rail and walnut surround. */
.cardroom,.felt{--rail:18px;position:relative;isolation:isolate;border:var(--rail) solid #1b2521;outline:5px solid #5d3f26;border-radius:46% / 29%;background:radial-gradient(ellipse at 46% 35%,#2d7255 0,#1b593e 48%,#123c2e 100%);box-shadow:0 0 0 7px #261e16,0 14px 0 7px #161711,0 23px 38px #0008,inset 0 0 0 2px #c09b5b88,inset 0 0 0 8px #0b2b2080,inset 0 18px 55px #0005;overflow:hidden;margin:28px 8px 35px;min-height:400px;box-sizing:border-box}
.cardroom::before,.felt::before{content:'';position:absolute;inset:0;z-index:-1;background-image:repeating-linear-gradient(18deg,#e7e5b606 0 1px,transparent 1px 3px),repeating-linear-gradient(108deg,#06271b15 0 1px,transparent 1px 4px),radial-gradient(ellipse,transparent 55%,#0003);pointer-events:none}
.cardroom::after,.felt::after{content:'BID WHIST\A A C A D E M Y';white-space:pre;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;font:600 19px/1.7 Georgia,serif;letter-spacing:3px;color:#e7d39c2e;border:1px solid #dfc48124;border-radius:50%;padding:19px 30px;z-index:-1;pointer-events:none}
.cardroom .station,.online-table .seat,.felt .seat{border:1px solid #d5bc7955;border-radius:25px;background:linear-gradient(#152b23f5,#0b1b16ed);color:#e6ead9;text-shadow:0 1px 2px #0008;box-shadow:0 4px 8px #0005,inset 0 1px #fff1;line-height:1.45;padding:9px 14px;text-align:center;font-size:12px;overflow-wrap:anywhere}
.cardroom .station::before,.online-table .seat::before,.felt .seat::before{content:attr(data-position);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font:600 15px Georgia;background:radial-gradient(circle at 35% 30%,#47554b,#182c22);border:1px solid #a8a88a;color:#f3ddb1;margin-bottom:4px;box-shadow:inset 0 0 0 3px #14261d,0 2px 4px #0005}
.cardroom .station strong,.cardroom .station span,.cardroom .station small{display:block}.cardroom .station strong{font:600 15px Georgia;color:#f1deb0}.cardroom .station span,.cardroom .station small{font-size:11px;color:#c4d1c4}.cardroom .taking-turn,.online-table .seat.active,.felt .seat.active{border-color:#ffdb84;box-shadow:0 0 0 2px #d9b86f55,0 0 22px #dfbf6955;background:linear-gradient(#324d32,#12291c)}
.cardroom>div.station,.cardroom .seats>.station{position:absolute;width:140px;z-index:2}.cardroom .station.north{top:10px;left:50%;transform:translateX(-50%)}.cardroom .station.south{bottom:10px;left:50%;transform:translateX(-50%)}.cardroom .station.west{left:9px;top:50%;transform:translateY(-50%);width:106px}.cardroom .station.east{right:9px;top:50%;transform:translateY(-50%);width:106px}.cardroom>.seats{display:contents}
.cardroom #played{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:230px;height:228px;display:block;margin:0;z-index:1}.cardroom #played .slot{position:absolute;width:78px;text-align:center;min-width:0}.cardroom #played .slot p{font-size:10px;margin:0 0 3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#f7ecd1}.cardroom #played .slot .card{display:block;margin:auto;width:61px;height:89px}.cardroom #played .slot[data-seat="2"]{top:0;left:76px;transform:rotate(-4deg)}.cardroom #played .slot[data-seat="0"]{bottom:0;left:76px;transform:rotate(4deg)}.cardroom #played .slot[data-seat="1"]{top:62px;left:0;transform:rotate(-9deg)}.cardroom #played .slot[data-seat="3"]{top:62px;right:0;transform:rotate(8deg)}
.cardroom #dealerShow{border-radius:0;background:radial-gradient(ellipse,#28654cf5,#103826f8)}
.quick-game #liveTable.cardroom{min-height:390px}.quick-game #liveTable .card::after{font-size:32px;top:27px}.quick-game #liveTable .card::before{font-size:14px}
/* Online table keeps each actual player opposite their partner. */
.online-table.cardroom{min-height:450px;margin:20px 4px 32px}.online-table #seats{display:contents}.online-table .seat{position:absolute;width:150px;z-index:2;margin:0;font-size:11px}.online-table .seat strong{font-size:14px;margin:2px 0}.online-table .seat small{font-size:11px}.online-table .seat[data-seat="2"]{top:8px;left:50%;transform:translateX(-50%)}.online-table .seat[data-seat="0"]{bottom:8px;left:50%;transform:translateX(-50%)}.online-table .seat[data-seat="1"]{left:8px;top:50%;transform:translateY(-50%);width:120px}.online-table .seat[data-seat="3"]{right:8px;top:50%;transform:translateY(-50%);width:120px}.online-table #tableCards{position:absolute;left:50%;top:50%;width:230px;height:228px;transform:translate(-50%,-50%);display:block;margin:0}.online-table .played-card{position:absolute;width:76px;font-size:10px}.online-table .played-card>span{display:block;max-width:76px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff0cc}.online-table .played-card .card{width:60px;height:85px;margin:4px auto 0;box-shadow:1px 4px 2px #ddd3b9,3px 8px 14px #0006;border:1px solid #d2c7af;background:linear-gradient(130deg,#fffdf5,#ede6d3)}.online-table .played-card[data-seat="2"]{top:0;left:77px;transform:rotate(-4deg)}.online-table .played-card[data-seat="0"]{bottom:0;left:77px;transform:rotate(4deg)}.online-table .played-card[data-seat="1"]{top:62px;left:0;transform:rotate(-9deg)}.online-table .played-card[data-seat="3"]{top:62px;right:0;transform:rotate(8deg)}
/* Shared TV layout retains large labels and four visible seats. */
.felt{padding:20px 24px;min-height:560px;grid-template-columns:minmax(120px,1fr) minmax(250px,3fr) minmax(120px,1fr);border-radius:42% / 28%;margin:28px 8px 35px}.felt .center{min-height:290px;z-index:1}.felt .seat{padding:12px;z-index:2}.felt .seat strong{font-size:clamp(18px,1.8vw,28px)}.felt .seat small{font-size:clamp(12px,1vw,18px)}.felt #cards{min-height:170px;margin:15px 0}.felt .played .card{box-shadow:2px 5px 0 #d0c6ac,6px 12px 18px #0006;transform:rotate(-4deg);background:linear-gradient(130deg,#fffdf5,#ede6d3)}.felt .played:nth-child(even) .card{transform:rotate(5deg)}
@media(max-width:600px){.cardroom,.felt{--rail:10px;outline-width:3px;border-radius:42% / 21%;margin-left:3px;margin-right:3px;box-shadow:0 0 0 5px #34291e,0 9px 0 5px #161711,0 15px 25px #0006,inset 0 0 0 2px #c09b5b77,inset 0 0 35px #0005}.quick-game #liveTable.cardroom,.cardroom{min-height:360px;padding:12px}.cardroom>div.station,.cardroom .seats>.station{width:115px;padding:6px 8px;border-radius:18px}.cardroom .station.west,.cardroom .station.east{width:73px;padding:6px 4px}.cardroom .station.west{left:3px}.cardroom .station.east{right:3px}.cardroom .station::before{width:23px;height:23px;font-size:12px;margin:0}.cardroom .station strong{font-size:12px}.cardroom .station span,.cardroom .station small{font-size:9px}.cardroom #played,.online-table #tableCards{width:165px;height:191px}.cardroom #played .slot,.online-table .played-card{width:56px}.cardroom #played .slot[data-seat="0"],.cardroom #played .slot[data-seat="2"]{left:55px}.cardroom #played .slot[data-seat="1"],.cardroom #played .slot[data-seat="3"]{top:53px}.cardroom #played .slot .card{width:47px;height:70px}.cardroom #played .slot .card::after{font-size:26px;top:21px}.cardroom #played .slot .card::before{font-size:11px}.online-table.cardroom{min-height:395px}.online-table .seat{width:130px;padding:5px 8px;font-size:9px;border-radius:18px}.online-table .seat::before{width:23px;height:23px;font-size:12px;margin:0}.online-table .seat strong{font-size:12px}.online-table .seat small{font-size:9px}.online-table .seat[data-seat="1"],.online-table .seat[data-seat="3"]{width:74px;padding:6px 3px}.online-table .seat[data-seat="1"]{left:2px}.online-table .seat[data-seat="3"]{right:2px}.online-table .played-card .card{width:45px;height:66px;font-size:21px}.online-table .played-card[data-seat="0"],.online-table .played-card[data-seat="2"]{left:55px}.online-table .played-card[data-seat="1"],.online-table .played-card[data-seat="3"]{top:53px}.online-table .played-card>span{font-size:9px;max-width:55px}.felt{grid-template-columns:1fr 1fr;grid-template-areas:'north east' 'center center' 'west south';min-height:570px;padding:16px 12px;gap:8px;border-radius:38% / 15%}.felt .seat{padding:7px}.felt .seat strong{font-size:16px}.felt .seat small{font-size:11px}.felt .center{min-height:240px}.felt .center h2{font-size:23px}.felt::after{font-size:15px;letter-spacing:2px}}
@media(prefers-reduced-motion:reduce){.cardroom *,.felt *{animation:none!important;transition:none!important}}
/* Reserve a clear playing area between the north and south nameplates. */
.cardroom,.quick-game #liveTable.cardroom{min-height:500px}.online-table.cardroom{min-height:520px}@media(max-width:600px){.cardroom,.quick-game #liveTable.cardroom{min-height:375px}.online-table.cardroom{min-height:430px}}
.online-table .seat::before,.felt .seat::before{display:grid;margin:0 auto 4px}.online-table .seat>span{display:block}.cardroom #played .slot .card{opacity:1}.cardroom #played .slot .card:before,.cardroom #played .slot .card:after{pointer-events:none}@media(max-width:600px){.cardroom #played{height:175px}.cardroom #played .slot[data-seat="1"],.cardroom #played .slot[data-seat="3"]{top:45px}}
