:root{--ink:#f6eedc;--muted:#b8c8bd;--green:#0b3d2e;--deep:#062a20;--felt:#10533e;--gold:#e5b84b;--red:#d85847;--paper:#fffaf0;--black:#18201d}
*{box-sizing:border-box}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 0,#1b6149 0,#0b3d2e 38%,#05261d 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}.panel{background:rgba(5,35,26,.8);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 80px rgba(0,0,0,.35);backdrop-filter:blur(14px)}.lobby{width:min(920px,calc(100% - 32px));margin:6vh auto;padding:clamp(28px,6vw,72px);border-radius:28px;display:grid;grid-template-columns:1.2fr 1fr;gap:28px 60px}.brand{display:flex;gap:22px;align-items:flex-start;grid-column:1}.brand-mark{font-size:5rem;color:var(--gold);line-height:.8}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:var(--gold);font-size:.72rem;margin:0 0 10px}h1,h2{font-family:Georgia,serif;margin:0}h1{font-size:clamp(3rem,8vw,6.8rem);line-height:.75;letter-spacing:-.065em}h1 em{color:var(--gold);font-weight:400}.lead{font:1.18rem/1.55 Georgia,serif;color:#dbe5de;margin:0;grid-column:2;grid-row:1}.lobby label{grid-column:1/3;color:var(--muted);font-size:.85rem;font-weight:700}.lobby input,.join-row input{display:block;width:100%;margin-top:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;padding:15px 17px;border-radius:12px;outline:none}.lobby input:focus{border-color:var(--gold)}.lobby-actions{grid-column:1/3;display:grid;grid-template-columns:1fr 1fr;gap:14px}.join-row{display:flex;gap:8px}.join-row input{margin:0;text-transform:uppercase}.lobby button,.waiting button,.round-actions button{border:0;border-radius:12px;padding:14px 18px;font-weight:850;background:#ecf1ed;color:var(--deep)}button.primary{background:var(--gold);color:#2a220e}.join-row button{border:0;border-radius:12px;padding:0 22px;font-weight:800}.status{grid-column:1/3;margin:0;color:#ffd97b;min-height:1.4em}.fineprint{grid-column:1/3;color:#8ba699;font-size:.75rem;margin:0}header{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.1)}.mini-brand{letter-spacing:.16em;color:var(--gold)}.room-pill{background:rgba(0,0,0,.22);padding:8px 12px;border-radius:99px;font-size:.82rem}.room-pill strong{letter-spacing:.16em;color:var(--gold)}.room-pill button,.ghost{background:none;border:0;color:var(--muted);text-decoration:underline}.waiting{width:min(700px,calc(100% - 32px));margin:9vh auto;padding:48px;text-align:center;border-radius:24px}.waiting h2{font-size:2.6rem}.waiting-players{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:28px 0}.waiting-player{padding:10px 16px;border:1px solid rgba(255,255,255,.14);border-radius:99px}.waiting p{color:var(--muted)}button:disabled{opacity:.4;cursor:not-allowed}.table-view{min-height:calc(100vh - 68px);position:relative;padding:16px 20px 220px}.opponents{display:flex;justify-content:center;gap:12px}.player-chip{min-width:145px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.13);border-radius:14px;padding:11px 14px;text-align:center}.player-chip.active{outline:2px solid var(--gold)}.player-chip.defender{outline:2px solid var(--red)}.player-chip b{display:block}.player-chip span{font-size:.76rem;color:var(--muted)}.deck-zone{position:absolute;left:26px;top:130px;display:flex;align-items:center}.deck-stack{position:relative;margin-left:-18px}.deck-stack b{position:absolute;inset:0;display:grid;place-items:center;text-shadow:0 2px 4px #000}.felt{max-width:800px;min-height:340px;margin:26px auto}.turn-banner{text-align:center;color:#d6e4db;font-family:Georgia,serif;font-size:1.08rem}.battlefield{display:flex;justify-content:center;align-items:flex-start;gap:14px;flex-wrap:wrap;padding:35px 0}.battle-pair{position:relative;width:90px;height:142px}.battle-pair .card:last-child:not(:first-child){position:absolute;left:20px;top:28px;transform:rotate(7deg)}.round-actions{display:flex;justify-content:center;gap:10px}.me-zone{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(4,31,23,.98) 28%);padding:42px 20px 12px}.me-info{text-align:center;font-size:.82rem;color:var(--muted)}.hand{height:126px;display:flex;justify-content:center;align-items:flex-end;padding-top:10px}.card{width:76px;height:112px;border-radius:9px;background:var(--paper);border:1px solid #d7cdbb;color:var(--black);padding:7px;box-shadow:0 5px 12px rgba(0,0,0,.26);font-family:Georgia,serif;font-weight:800;position:relative;user-select:none;overflow:hidden}.card.red{color:#a52d27}.card .rank{font-size:1.45rem;line-height:.85;position:relative;z-index:2}.card .suit{font-size:1.35rem;position:relative;z-index:2}.card .big-suit{font-size:2.2rem;position:absolute;right:7px;bottom:1px;z-index:2;text-shadow:0 0 3px var(--paper)}.card-art{position:absolute;width:62px;height:78px;right:-5px;bottom:7px;fill:currentColor;opacity:.16;pointer-events:none;filter:sepia(.4)}.hand .card:hover .card-art,.hand .card.selected .card-art{opacity:.3}.hand .card{margin-left:-28px;transition:.16s transform,.16s margin;cursor:pointer}.hand .card:first-child{margin-left:0}.hand .card:hover,.hand .card.selected{transform:translateY(-18px) rotate(0)!important;margin-right:10px}.card.back{background:repeating-linear-gradient(45deg,#c9493d 0 5px,#f2d8b2 5px 7px);border:5px solid var(--paper)}.card.back::after{content:'1896';position:absolute;inset:18px 8px;display:grid;place-items:center;border:1px solid #7e241f;background:#f2d8b2;color:#71221e;font:700 12px Georgia;letter-spacing:.16em;transform:rotate(-45deg)}.small-card{transform:rotate(90deg);opacity:.78}.cheat-bar{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.76rem;color:var(--muted)}.cheat-bar button{background:#241d2e;color:#e9d6ff;border:1px solid #6c4e86;border-radius:99px;padding:7px 12px}.toast{position:fixed;z-index:10;left:50%;top:84px;transform:translateX(-50%);padding:13px 18px;border-radius:12px;background:#171d1a;color:#fff;box-shadow:0 10px 30px #0008;max-width:min(520px,90vw);text-align:center}dialog{max-width:560px;background:#fff8e9;color:#25221c;border:0;border-radius:20px;padding:34px;line-height:1.55;box-shadow:0 20px 100px #000}dialog::backdrop{background:#021b14cc}.dialog-close{position:absolute;right:14px;top:12px;border:0;background:none;font-size:1.8rem}dialog .eyebrow{color:#86620c}dialog h2{font-size:2.4rem}.empty-table{text-align:center;color:#7ea393;width:100%;padding:45px}
@media(max-width:700px){.lobby{grid-template-columns:1fr;margin:16px auto;padding:28px}.brand,.lead,.lobby label,.lobby-actions,.status,.fineprint{grid-column:1}.lead{grid-row:auto}.lobby-actions{grid-template-columns:1fr}.brand-mark{font-size:3.5rem}h1{font-size:3.9rem}.opponents{justify-content:flex-start;overflow:auto;padding-bottom:4px}.player-chip{min-width:118px}.deck-zone{top:145px;left:8px;transform:scale(.8)}.felt{margin-top:38px}.table-view{padding-left:8px;padding-right:8px}.card{width:65px;height:98px}.battle-pair{width:75px;height:125px}.hand .card{margin-left:-36px}.hand{height:112px}.cheat-bar span{display:none}.cheat-bar button{font-size:.7rem;padding:7px}.waiting{padding:30px 20px}.room-pill{font-size:.7rem}header{padding:0 10px}.ghost{display:none}}

/* Four-sided hunt table */
.table-view{height:calc(100dvh - 68px);min-height:590px;padding:0;overflow:hidden;background:#071d18}
.arena{position:relative;width:100%;height:100%;isolation:isolate;background:radial-gradient(ellipse at center,#1b634a 0,#0d4434 47%,#071f19 78%,#030d0b 100%)}
.arena::before{content:"";position:absolute;inset:14px;border:1px solid #d1a84238;border-radius:44px;box-shadow:inset 0 0 100px #0009,0 0 0 9px #020a0870;pointer-events:none}
.arena::after{content:"1896";position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%) rotate(-8deg);font:900 clamp(5rem,14vw,13rem)/1 Georgia;color:#e5b84b08;letter-spacing:-.08em;pointer-events:none}
.fog{position:absolute;width:45%;height:28%;border-radius:50%;background:#a6c9b30b;filter:blur(24px);animation:fog 14s ease-in-out infinite alternate;pointer-events:none}.fog-one{left:5%;top:20%}.fog-two{right:5%;bottom:15%;animation-delay:-7s}
.seat{position:absolute;z-index:5;display:flex;justify-content:center}.seat-top{top:10px;left:50%;transform:translateX(-50%)}.seat-bottom{bottom:8px;left:50%;transform:translateX(-50%);width:min(760px,75vw)}.seat-left{left:16px;top:46%;transform:translateY(-50%)}.seat-right{right:16px;top:46%;transform:translateY(-50%)}
.player-seat{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:180px;padding:8px 12px;border:1px solid #ffffff16;border-radius:16px;background:linear-gradient(180deg,#071a16d9,#06130fc7);box-shadow:0 12px 30px #0005;transition:.25s border-color,.25s box-shadow,.25s transform}
.player-seat.attacker{border-color:#e5b84bbb;box-shadow:0 0 0 3px #e5b84b20,0 0 34px #e5b84b25;animation:seatPulse 2s ease-in-out infinite}.player-seat.defender{border-color:#d85847cc;box-shadow:0 0 0 3px #d8584722,0 0 34px #d8584724}.player-seat.finished{opacity:.48;filter:grayscale(.7)}
.player-name{text-align:center;position:relative;z-index:4}.player-name b{display:block;font:700 1rem Georgia;color:#fff8e8}.player-name b em{font:700 .65rem/1 system-ui;color:#d5af4d;text-transform:uppercase;letter-spacing:.1em;font-style:normal}.player-name span{display:block;margin-top:3px;color:#9ab6aa;font-size:.72rem;white-space:nowrap}.attacker .player-name span{color:#f2cf75}.defender .player-name span{color:#ff9286}
.mini-hand{--cards:6;position:relative;width:128px;height:57px}.mini-back{position:absolute;left:calc(50% - 18px + (var(--i) - (var(--cards) - 1)/2)*12px);bottom:0;width:36px;height:52px;border:2px solid #efe0bc;border-radius:5px;background:repeating-linear-gradient(45deg,#782c25 0 3px,#c58f53 3px 5px);box-shadow:0 2px 5px #0008;transform:rotate(calc((var(--i) - (var(--cards) - 1)/2)*4deg));transform-origin:50% 110%}.mini-back::after{content:"✦";position:absolute;inset:5px;display:grid;place-items:center;border:1px solid #e2c98a88;color:#f0d397;font-size:.6rem}.mini-hand span{position:absolute;right:-11px;bottom:1px;z-index:8;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#e5b84b;color:#18140b;font-weight:900;font-size:.72rem;box-shadow:0 2px 8px #000}
.seat-left .mini-hand{transform:rotate(72deg);margin:10px 0}.seat-right .mini-hand{transform:rotate(-72deg);margin:10px 0}
.seat-bottom .player-seat{background:linear-gradient(180deg,transparent,#020a08d9);border:0;box-shadow:none;padding:0 14px;width:100%}.seat-bottom .player-name{order:1}.seat-bottom .hand{order:2}.seat-bottom .cheat-bar{order:3}
.felt{position:absolute;z-index:2;inset:112px 170px 178px;max-width:none;min-height:0;margin:0;border:1px solid #d8b6522b;border-radius:34% 34% 38% 38%/25% 25% 38% 38%;background:radial-gradient(ellipse,#13564090 0,#0c3d2f44 62%,transparent 73%);display:flex;flex-direction:column;align-items:center}
.round-heading{position:absolute;top:8px;display:flex;gap:12px;align-items:center;color:#91ada0;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.round-heading span+span{padding-left:12px;border-left:1px solid #ffffff24;color:#e8c661}
.action-coach{position:absolute;top:34px;z-index:7;display:flex;align-items:center;gap:10px;min-width:300px;padding:10px 15px;border:1px solid #dfc06943;border-radius:13px;background:#061d17e8;box-shadow:0 10px 30px #0006,0 0 28px #e4b94a10;backdrop-filter:blur(10px)}.action-coach>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#e5b84b;color:#1c170b;font-size:1.1rem}.action-coach b,.action-coach small{display:block}.action-coach b{font:700 1rem Georgia;color:#fff4d9}.action-coach small{margin-top:2px;color:#9db7ac;font-size:.7rem}
.play-selected{position:absolute;z-index:9;top:102px;border:1px solid #f2cf75;background:#e5b84b;color:#211b0d;border-radius:99px;padding:10px 18px;font-weight:900;box-shadow:0 0 0 6px #e5b84b18,0 8px 24px #0008;animation:actionPop .25s ease-out}
.battlefield{width:min(650px,88%);min-height:150px;margin:auto;display:flex;justify-content:center;align-items:center;gap:18px;padding:62px 0 12px;flex-wrap:wrap}.battle-pair{position:relative;width:88px;height:130px;filter:drop-shadow(0 12px 12px #0007);transition:.2s transform,.2s filter}.battle-pair.targetable{cursor:pointer;transform:translateY(-7px);filter:drop-shadow(0 0 12px #f2d164)}.battle-pair.targetable::before{content:"ЩИТ СЮДА";position:absolute;z-index:8;left:50%;top:-25px;transform:translateX(-50%);white-space:nowrap;color:#ffe38c;font:900 .58rem system-ui;letter-spacing:.1em}.battle-pair .card{position:absolute;left:0;top:0}.battle-pair .defense-card{left:20px!important;top:25px!important;transform:rotate(8deg)!important}.defense-slot{position:absolute;left:18px;top:24px;width:76px;height:112px;display:grid;place-items:center;border:1px dashed #d5b55155;border-radius:9px;color:#d6bf7c55;font-size:.62rem;transform:rotate(7deg);pointer-events:none}
.empty-table{margin:auto;padding:22px 34px;width:auto;border:1px dashed #afcbbb26;border-radius:50%;color:#83a395;display:flex;flex-direction:column;align-items:center;gap:3px}.empty-table span{color:#d5b750;font-size:1.2rem}.empty-table b{font:700 .86rem Georgia}.empty-table small{font-size:.64rem;color:#66877a}
.round-actions{position:absolute;bottom:8px;z-index:8;display:flex;justify-content:center;gap:8px}.round-actions button{padding:10px 16px;box-shadow:0 8px 20px #0006}.round-actions .take-btn{background:#9f3f35;color:#fff}
.deck-zone{left:36px;top:auto;bottom:78px;z-index:7;transform:scale(.82)}.deck-stack b{font-size:1rem}.game-feed{position:absolute;z-index:5;right:28px;bottom:55px;width:205px;max-height:112px;padding:10px 12px;border-left:1px solid #d9bc6740;color:#78998b;overflow:hidden}.game-feed>b{display:block;margin-bottom:5px;color:#d2b65f;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em}.game-feed p{margin:2px 0;font-size:.64rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-feed p.latest{color:#dce9e2}
.hand{height:116px;display:flex;justify-content:center;align-items:flex-end;padding-top:8px}.hand .card{margin-left:-22px;transform:translateY(var(--lift,0)) rotate(var(--fan,0));transform-origin:50% 130%;transition:.2s transform,.2s margin,.2s filter,.2s opacity}.hand .card:first-child{margin-left:0}.hand .card.muted{opacity:.68;filter:saturate(.55) brightness(.8)}.hand .card.legal{box-shadow:0 5px 12px #0008,0 0 0 2px #e6bf5755}.hand .card.legal:hover,.hand .card.selected{opacity:1;filter:none;transform:translateY(-20px) rotate(0)!important;margin-right:10px;box-shadow:0 15px 25px #000a,0 0 0 3px #f0ca5b,0 0 25px #e5b84b77}.cheat-bar{margin-top:-2px}.cheat-bar button:disabled{opacity:.35}
.arrive.from-bottom{animation:fromBottom .48s cubic-bezier(.2,.8,.25,1)}.arrive.from-top{animation:fromTop .48s cubic-bezier(.2,.8,.25,1)}.arrive.from-left{animation:fromLeft .48s cubic-bezier(.2,.8,.25,1)}.arrive.from-right{animation:fromRight .48s cubic-bezier(.2,.8,.25,1)}.arrive-defense{animation:defend .38s cubic-bezier(.2,.85,.3,1)}
@keyframes fromBottom{from{opacity:0;transform:translateY(240px) scale(.65) rotate(18deg)}to{opacity:1;transform:none}}@keyframes fromTop{from{opacity:0;transform:translateY(-220px) scale(.65) rotate(-18deg)}to{opacity:1;transform:none}}@keyframes fromLeft{from{opacity:0;transform:translateX(-260px) scale(.65) rotate(-28deg)}to{opacity:1;transform:none}}@keyframes fromRight{from{opacity:0;transform:translateX(260px) scale(.65) rotate(28deg)}to{opacity:1;transform:none}}@keyframes defend{from{opacity:0;transform:translate(30px,70px) rotate(35deg) scale(.75)}to{opacity:1}}@keyframes seatPulse{50%{box-shadow:0 0 0 5px #e5b84b12,0 0 44px #e5b84b39}}@keyframes actionPop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}@keyframes fog{to{transform:translate(18%,10%) scale(1.2)}}

@media(max-width:900px){.felt{inset:108px 115px 174px}.seat-left{left:5px}.seat-right{right:5px}.player-seat{min-width:140px;padding:7px}.game-feed{display:none}.deck-zone{left:10px}.battlefield{gap:8px}.action-coach{min-width:260px}.player-name b{font-size:.86rem}}
@media(max-width:650px){header{height:52px;padding:0 8px}.table-view{height:calc(100dvh - 52px);min-height:520px}.mini-brand b{font-size:.72rem}.room-pill{font-size:.6rem}.arena::before{inset:5px;border-radius:24px}.seat-top{top:4px}.seat-bottom{bottom:4px;width:100vw}.seat-left,.seat-right{top:42%}.seat-left{left:-28px}.seat-right{right:-28px}.player-seat{min-width:110px;padding:5px 7px;border-radius:12px}.player-name b{font-size:.72rem}.player-name span{font-size:.56rem}.mini-hand{width:84px;height:43px;transform:scale(.82)}.mini-back{width:29px;height:43px;left:calc(50% - 14px + (var(--i) - (var(--cards) - 1)/2)*8px)}.seat-left .mini-hand{transform:rotate(74deg) scale(.75)}.seat-right .mini-hand{transform:rotate(-74deg) scale(.75)}.felt{inset:85px 52px 160px;border-radius:24%}.round-heading{top:5px;font-size:.54rem;gap:7px}.round-heading span+span{padding-left:7px}.action-coach{top:26px;min-width:0;width:min(270px,76vw);padding:7px 9px;gap:7px}.action-coach>span{width:27px;height:27px;font-size:.85rem}.action-coach b{font-size:.78rem}.action-coach small{font-size:.56rem}.play-selected{top:83px;padding:7px 11px;font-size:.68rem}.battlefield{width:100%;padding:74px 0 6px;gap:2px}.battle-pair{width:62px;height:96px}.battle-pair .card{width:54px;height:82px;padding:4px}.battle-pair .card .rank{font-size:1rem}.battle-pair .card .suit{font-size:.9rem}.battle-pair .card .big-suit{font-size:1.4rem}.battle-pair .card-art{width:44px;height:56px}.battle-pair .defense-card{left:10px!important;top:14px!important}.defense-slot{left:10px;top:14px;width:54px;height:82px}.battle-pair.targetable::before{top:-16px;font-size:.45rem}.empty-table{padding:12px 18px}.round-actions{bottom:4px}.round-actions button{font-size:.65rem;padding:7px 10px}.deck-zone{bottom:125px;left:-12px;transform:scale(.55)}.seat-bottom .player-name span{font-size:.6rem}.hand{height:92px;padding:2px}.hand .card{width:59px;height:88px;margin-left:-29px;padding:5px}.hand .card .rank{font-size:1.05rem}.hand .card .suit{font-size:1rem}.hand .card .big-suit{font-size:1.5rem}.hand .card-art{width:46px;height:59px}.hand .card.legal:hover,.hand .card.selected{transform:translateY(-12px) rotate(0)!important;margin-right:4px}.cheat-bar{gap:4px}.cheat-bar span{display:none}.cheat-bar button{font-size:.56rem;padding:5px 7px}.toast{top:60px;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* 2026 table refresh — classic social card room */
header{height:64px;background:linear-gradient(#071b24,#041119);border-bottom:2px solid #d8a95755}.mini-brand{font:900 1rem/1 system-ui;color:#f2bd64}.mini-brand b::after{content:" ОНЛАЙН"}.room-pill{background:#ffffff12;border:1px solid #ffffff18}.table-view{height:calc(100dvh - 64px);min-height:600px;background:#427f91}.arena{background-color:#4f91a2;background-image:radial-gradient(ellipse at 50% 58%,#91c4ce28 0 22%,transparent 58%),repeating-radial-gradient(circle at 30% 20%,#fff0 0 2px,#082b3510 3px 4px),linear-gradient(145deg,#6da9b5,#37798d 70%,#286678)}.arena::before{inset:10px;border:0;border-radius:28px;box-shadow:inset 0 0 100px #12384455}.arena::after,.fog{display:none}
.remote-seats{position:absolute;inset:0;z-index:6;pointer-events:none}.remote-seat{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,0);pointer-events:auto}.seat-bottom{bottom:0;width:min(900px,88vw)}
.player-seat{min-width:132px;padding:0;background:none;border:0;border-radius:18px;box-shadow:none;gap:0}.player-seat.attacker,.player-seat.defender{border:0;box-shadow:none;animation:none}.avatar{position:relative;z-index:5;width:58px;height:58px;margin:0 auto -5px;display:grid;place-items:center;border:3px solid #edf6f7;border-radius:50%;background:linear-gradient(145deg,hsl(var(--avatar-hue) 55% 68%),hsl(var(--avatar-hue) 45% 35%));box-shadow:0 5px 14px #173b4666;color:#fff;font:900 1.25rem/1 system-ui;text-shadow:0 2px 3px #0005}.avatar::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid #ffffff45}.player-name{z-index:7;min-width:112px;margin:0 auto -1px;padding:4px 9px 5px;border-radius:7px;background:#123442e9;box-shadow:0 3px 8px #18374355}.player-name b{font:800 .82rem/1.05 system-ui;color:#fff}.player-name span{margin-top:3px;color:#c9dde2;font-size:.62rem}.attacker .avatar{border-color:#64ff5f;box-shadow:0 0 0 4px #4cff4b30,0 5px 18px #163}.attacker .player-name{background:#147533}.defender .avatar{border-color:#ff5d55;box-shadow:0 0 0 4px #ff4a4230,0 5px 18px #733}.defender .player-name{background:#7d302d}.attacker .player-name span,.defender .player-name span{color:#fff}
.mini-hand{width:126px;height:48px;margin-top:0}.mini-back{bottom:2px;width:31px;height:45px;left:calc(50% - 15px + (var(--i) - (var(--cards) - 1)/2)*10px);border:2px solid #f4f0e6;background-color:#e9f0e9;background-image:repeating-linear-gradient(60deg,#6aa5a2 0 2px,transparent 2px 7px),repeating-linear-gradient(-60deg,#d87a79 0 2px,transparent 2px 7px);transform:rotate(calc((var(--i) - (var(--cards) - 1)/2)*5deg))}.mini-back::after{content:"";inset:3px;border:1px solid #577f80}.mini-hand span{right:-3px;bottom:0;background:#eff8f7;color:#21515c;border:2px solid #4f8995;box-shadow:0 2px 5px #2346}
.seat-bottom .player-seat{background:none;padding:0;width:100%}.local-badge{position:absolute;left:0;bottom:0;z-index:9;display:flex;align-items:center}.local-badge .avatar{width:68px;height:68px;margin:0 -8px 0 0;border-color:#ffcf57}.local-badge .player-name{margin:0;min-width:130px;text-align:left;padding-left:14px}.seat-bottom .hand{order:1}.seat-bottom .local-badge{order:2}
.felt{inset:108px 128px 162px;border:0;border-radius:30%;background:radial-gradient(ellipse,#b6dce336 0,#badde312 38%,transparent 70%)}.round-heading{top:0;color:#244f5a;font-weight:800}.round-heading span+span{color:#123d49;border-color:#123d4933}.action-coach{top:25px;background:#153e4be8;border:1px solid #ffffff55;box-shadow:0 8px 20px #24485455}.action-coach>span{background:#f4b848}.action-coach b{font-family:system-ui;color:#fff}.action-coach small{color:#d2e7e9}.play-selected{top:91px;background:#2da84c;border-color:#e7ffe9;color:#fff;box-shadow:0 0 0 5px #2eb34b25,0 7px 16px #2555}
.battlefield{width:min(760px,96%);padding-top:62px;gap:12px}.battle-pair{width:94px;height:138px}.battle-pair .card{width:82px;height:122px}.battle-pair .defense-card{left:17px!important;top:18px!important}.defense-slot{left:17px;top:18px;width:82px;height:122px;border-color:#174d5d66;color:#174d5d88;background:#ffffff0c}.battle-pair.targetable{filter:drop-shadow(0 0 12px #f5e551)}.battle-pair.targetable::before{color:#143b46;background:#ffeb65;padding:3px 6px;border-radius:5px}.empty-table{border-color:#1c556255;color:#245866;background:#ffffff10}.empty-table span{color:#e8b348}.empty-table small{color:#376d78}.round-actions{bottom:-2px}.round-actions .take-btn{background:#d84b43}.deck-zone{bottom:42px;left:34px;transform:scale(.86)}.game-feed{right:22px;bottom:45px;border-color:#184c5b55;color:#2e606b}.game-feed>b{color:#153e49}.game-feed p.latest{color:#163d47;font-weight:800}
.card{width:88px;height:130px;border-radius:8px;background:#fff;border:1px solid #d5d9da;color:#172429;padding:7px;box-shadow:0 4px 10px #17333d55;font-family:"Arial Narrow",Arial,sans-serif;overflow:hidden}.card.red{color:#e43e43}.card .rank{font-size:1.55rem;font-weight:900;line-height:.8}.card .suit{display:block;font-size:1.15rem;line-height:1}.card .big-suit{right:7px;bottom:3px;font-size:2rem;text-shadow:none}.number-card .big-suit{display:none}.pip-field{position:absolute;inset:26px 8px 7px;display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;align-items:center;justify-items:center}.pip-field i{font-style:normal;font-size:1rem;line-height:1}.pips-6 i,.pips-8 i,.pips-10 i{font-size:.9rem}.face-card .card-art{width:72px;height:94px;right:-3px;bottom:3px;opacity:.48;filter:none}.hand{height:142px;overflow:visible}.hand .card{width:96px;height:142px;margin-left:-30px}.hand .card .rank{font-size:1.8rem}.hand .card .suit{font-size:1.35rem}.hand .card .big-suit{font-size:2.5rem}.hand .pip-field i{font-size:1.1rem}.hand .face-card .card-art{width:82px;height:110px}.hand .card.muted{opacity:.88;filter:none}.hand .card.legal{box-shadow:0 5px 12px #17333d66,0 0 0 3px #9bd9e4}.hand .card.legal:hover,.hand .card.selected{box-shadow:0 15px 25px #17333d88,0 0 0 4px #39e552,0 0 24px #42e75b77}.card.back{background-color:#e9f0e9;background-image:repeating-linear-gradient(60deg,#6aa5a2 0 3px,transparent 3px 9px),repeating-linear-gradient(-60deg,#d87a79 0 3px,transparent 3px 9px);border:5px solid #fff}.card.back::after{display:none}
.waiting-player{display:inline-flex;align-items:center;gap:8px}.waiting-player i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#4f91a2;color:#fff;font-style:normal;font-weight:900}
@media(max-width:900px){.felt{inset:105px 75px 155px}.remote-seat .player-seat{min-width:105px}.remote-seat .avatar{width:50px;height:50px}.remote-seat .player-name{min-width:96px}.game-feed{display:none}.seat-bottom{width:96vw}.local-badge{transform:scale(.82);transform-origin:left bottom}}
@media(max-width:650px){header{height:50px}.table-view{height:calc(100dvh - 50px);min-height:610px}.remote-seat{transform:translate(-50%,0) scale(.8);transform-origin:top center}.remote-seat .player-seat{min-width:82px}.remote-seat .avatar{width:43px;height:43px;font-size:.9rem}.remote-seat .player-name{min-width:80px;padding:3px 5px}.remote-seat .player-name b{font-size:.64rem}.remote-seat .player-name span{font-size:.48rem}.remote-seat .mini-hand{transform:scale(.72);margin-top:-4px}.felt{inset:125px 24px 164px}.action-coach{top:22px;width:min(300px,88vw)}.play-selected{top:82px}.battlefield{padding-top:72px}.battle-pair{width:64px;height:98px}.battle-pair .card{width:58px;height:88px}.battle-pair .defense-card{left:9px!important;top:11px!important}.defense-slot{left:9px;top:11px;width:58px;height:88px}.seat-bottom{width:100vw}.hand{height:112px}.hand .card{width:72px;height:106px;margin-left:-32px}.hand .card .rank{font-size:1.3rem}.hand .card .suit{font-size:1rem}.hand .pip-field{inset:22px 5px 5px}.hand .pip-field i{font-size:.78rem}.hand .face-card .card-art{width:60px;height:78px}.local-badge{transform:scale(.66);left:-8px}.deck-zone{left:-15px;bottom:112px;transform:scale(.55)}.round-actions{bottom:0}.round-actions button{font-size:.62rem}.room-pill{font-size:.62rem}}

/* Immersive table, real card artwork, direct manipulation and chat */
:root{--hand-card-w:clamp(72px,min(7.7vw,13.2vh),148px);--hand-card-h:clamp(105px,min(11.18vw,19.17vh),215px);--table-card-w:clamp(62px,min(6.15vw,11.1vh),116px);--table-card-h:clamp(90px,min(8.93vw,16.12vh),168px);--seat-scale:1}
html,body,#app,.game{height:100%;overflow:hidden}body{background:#315f6d}.game{min-height:0}header{height:clamp(54px,6.4vh,70px);padding-inline:clamp(12px,2vw,32px);position:relative;z-index:30}.header-actions{display:flex;align-items:center;gap:4px}.header-actions .ghost{display:block;padding:10px;color:#bed2d7;text-decoration:none;border-radius:9px}.header-actions .ghost:hover,.header-actions .ghost.active{background:#ffffff15;color:#fff}.chat-toggle{position:relative}.chat-toggle em{position:absolute;right:0;top:0;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:99px;background:#ef564e;color:#fff;font:900 11px/1 system-ui;font-style:normal}
.table-view{height:calc(100dvh - clamp(54px,6.4vh,70px));min-height:500px}.arena{overflow:hidden;background-image:radial-gradient(ellipse at 50% 50%,#9bc8d238 0 16%,transparent 57%),repeating-radial-gradient(circle at 28% 18%,#fff0 0 2px,#082b3510 3px 4px),linear-gradient(145deg,#72adba,#3d8194 72%,#2a687a)}.arena::before{inset:clamp(5px,.8vw,13px);border-radius:clamp(20px,2vw,36px);box-shadow:inset 0 0 clamp(45px,8vw,130px) #143c4859,inset 0 -30px 70px #17495955}
.remote-seat{transform:translate(-50%,0) scale(var(--seat-scale));transform-origin:top center}.player-seat{min-width:clamp(116px,10vw,170px)}.avatar{width:clamp(54px,4.5vw,78px);height:clamp(54px,4.5vw,78px);font-size:clamp(1rem,1.3vw,1.45rem)}.player-name{min-width:clamp(106px,9.2vw,156px);padding:5px 10px 6px}.player-name b{font-size:clamp(.77rem,.85vw,1rem)}.player-name span{font-size:clamp(.6rem,.62vw,.76rem)}.mini-hand{width:clamp(116px,9vw,155px);height:clamp(46px,5.1vh,66px)}.mini-back{width:clamp(31px,2.25vw,42px);height:clamp(45px,3.3vw,61px);left:calc(50% - 18px + (var(--i) - (var(--cards) - 1)/2)*clamp(9px,.72vw,14px))}
.seat-bottom{bottom:-2px;width:min(94vw,1540px)}.seat-bottom .player-seat{min-width:100%}.hand{height:calc(var(--hand-card-h) + clamp(18px,2.5vh,36px));width:100%;padding:0 4vw;align-items:flex-end;overflow:visible}.hand .card{flex:0 0 var(--hand-card-w);width:var(--hand-card-w);height:var(--hand-card-h);padding:0;border:0;border-radius:clamp(7px,.7vw,12px);overflow:hidden;cursor:grab;touch-action:manipulation;box-shadow:0 7px 16px #17333d70,0 0 0 1px #fff9;will-change:transform}.hand .card:active{cursor:grabbing}.hand .card.legal{box-shadow:0 7px 18px #17333d7a,0 0 0 3px #b8eef3}.hand .card.muted{opacity:.9;filter:saturate(.84)}.hand .card:hover{opacity:1;filter:none;z-index:20;transform:translateY(clamp(-28px,-3.3vh,-18px)) rotate(0)!important;box-shadow:0 22px 34px #17333d99,0 0 0 4px #fff,0 0 24px #dffaff}.card-face{display:block;width:100%;height:100%;object-fit:fill;border-radius:inherit;pointer-events:none;user-select:none}.card{padding:0;border:0;background:#fff;overflow:hidden}.card .rank,.card .suit,.card .big-suit,.card .pip-field,.card .card-art{display:none!important}
.local-badge{left:clamp(4px,2vw,32px);bottom:clamp(4px,1.2vh,14px);transform:scale(1);transform-origin:left bottom}.local-badge .avatar{width:62px;height:62px}.local-badge .player-name{min-width:135px}
.felt{inset:clamp(118px,17vh,190px) clamp(76px,9vw,210px) clamp(178px,25vh,285px);border-radius:38%/30%;background:radial-gradient(ellipse,#d6eef24a 0,#c0e0e51a 42%,transparent 72%);overflow:visible}.round-heading{top:-20px;left:2%;color:#173f4a;font-size:clamp(.65rem,.7vw,.82rem)}.turn-status{position:absolute;z-index:9;left:50%;top:0;transform:translateX(-50%);width:min(760px,82%);padding:clamp(9px,1vh,13px) clamp(14px,1.2vw,22px);text-align:center;border:1px solid #ffffff9c;border-radius:13px;background:#123b49eb;box-shadow:0 8px 24px #24485452;color:#fff;backdrop-filter:blur(9px)}.turn-status strong,.turn-status small{display:block}.turn-status strong{font:800 clamp(.92rem,1.25vw,1.22rem)/1.2 system-ui}.turn-status small{margin-top:3px;color:#cfe4e8;font-size:clamp(.62rem,.7vw,.76rem)}
.action-coach{top:clamp(58px,7.3vh,82px);left:50%;transform:translateX(-50%);min-width:0;width:min(410px,70%);padding:8px 12px;background:#ffffffd9;border:1px solid #204e5a3b;color:#16404b;box-shadow:0 6px 16px #24485432}.action-coach>span{width:31px;height:31px;flex:0 0 31px}.action-coach b{font-family:system-ui;color:#143e48;font-size:clamp(.78rem,.84vw,.94rem)}.action-coach small{color:#376976;font-size:clamp(.59rem,.63vw,.7rem)}
.battlefield{position:absolute;inset:clamp(102px,13vh,132px) 0 clamp(64px,8vh,82px);width:100%;min-height:0;padding:10px;align-content:center;align-items:center;gap:clamp(8px,1vw,18px);border:2px dashed transparent;border-radius:28px;transition:.18s border-color,.18s background,.18s box-shadow}.battlefield.drop-ready{border-color:#fff9;background:#ffffff12;box-shadow:inset 0 0 38px #fff2}.battle-pair{width:calc(var(--table-card-w) + clamp(10px,1.1vw,23px));height:calc(var(--table-card-h) + clamp(13px,1.5vw,29px));filter:drop-shadow(0 10px 12px #17414c68)}.battle-pair .card{width:var(--table-card-w);height:var(--table-card-h);border-radius:clamp(6px,.55vw,10px);box-shadow:0 4px 11px #17333d66}.battle-pair .defense-card{left:clamp(10px,1vw,20px)!important;top:clamp(13px,1.2vw,23px)!important}.defense-slot{left:clamp(10px,1vw,20px);top:clamp(13px,1.2vw,23px);width:var(--table-card-w);height:var(--table-card-h);border-radius:9px;color:#174a5899;background:#ffffff18;font-size:clamp(.55rem,.6vw,.7rem)}.battle-pair.drop-legal{filter:drop-shadow(0 0 15px #dfff5e)}.battle-pair.drop-hover{transform:translateY(-8px) scale(1.04);filter:drop-shadow(0 0 20px #fff26c)}.empty-table{padding:clamp(20px,3vh,38px) clamp(34px,4vw,62px);border-color:#1c556270;background:#ffffff1b;color:#245866}.empty-table b{font-size:clamp(.9rem,1vw,1.1rem)}.empty-table small{font-size:clamp(.68rem,.72vw,.82rem)}
.round-actions{z-index:12;left:50%;bottom:4px;transform:translateX(-50%);gap:10px;white-space:nowrap}.round-actions button{min-width:110px;padding:12px 19px;border:1px solid #fff9;border-radius:99px;font-size:clamp(.78rem,.82vw,.96rem);box-shadow:0 8px 22px #21434d5e}.round-actions .take-btn{background:#d94d45;color:#fff}.deck-zone{left:clamp(2px,2vw,36px);bottom:clamp(75px,11vh,132px);transform:scale(.9);transform-origin:left bottom}.deck-zone .card{width:var(--table-card-w);height:var(--table-card-h)}.deck-zone .small-card{transform:rotate(90deg)}.game-feed{display:none!important}.toast{top:clamp(64px,8vh,88px);z-index:60;background:#812f2b;border:1px solid #ffb4ae;box-shadow:0 12px 38px #17313da3;font-size:clamp(.82rem,.9vw,1rem)}
body.dragging-card .hand .card{cursor:grabbing}.chat-panel{position:fixed;z-index:50;right:0;top:clamp(54px,6.4vh,70px);bottom:0;width:min(370px,92vw);display:grid;grid-template-rows:auto 1fr auto;background:#071c25f5;border-left:1px solid #ffffff24;box-shadow:-18px 0 48px #102e396e;backdrop-filter:blur(18px);transform:translateX(105%);transition:transform .24s ease}.chat-panel.open{transform:none}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid #ffffff15}.chat-head b,.chat-head span{display:block}.chat-head b{font:800 1.05rem/1.2 system-ui;color:#fff}.chat-head span{margin-top:3px;color:#7fa2ac;font-size:.72rem}.chat-head button{width:34px;height:34px;border:0;border-radius:50%;background:#ffffff10;color:#fff;font-size:1.45rem}.chat-messages{min-height:0;padding:14px;overflow:auto;overscroll-behavior:contain}.chat-empty{margin:30px 0;text-align:center;color:#7998a1;font-size:.82rem}.chat-message{margin:0 34px 12px 0;padding:9px 11px 10px;border-radius:4px 13px 13px 13px;background:#153c49;color:#edf6f8}.chat-message.mine{margin-left:34px;margin-right:0;border-radius:13px 4px 13px 13px;background:#256b64}.chat-message>div{display:flex;gap:8px;justify-content:space-between}.chat-message b{font-size:.72rem;color:#f5c665}.chat-message time{font-size:.63rem;color:#8fb1ba}.chat-message p{margin:4px 0 0;font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}.chat-form{display:grid;grid-template-columns:1fr 42px;gap:8px;padding:12px;border-top:1px solid #ffffff15}.chat-form input{min-width:0;height:43px;padding:0 13px;border:1px solid #ffffff20;border-radius:11px;background:#ffffff0e;color:#fff;outline:none}.chat-form input:focus{border-color:#f0c05a}.chat-form button{border:0;border-radius:11px;background:#e9b84f;color:#251d0c;font-weight:900}
@media(max-width:900px){:root{--hand-card-w:clamp(70px,min(10.6vw,13vh),104px);--hand-card-h:clamp(102px,min(15.4vw,18.88vh),151px);--table-card-w:clamp(56px,min(8.2vw,10.5vh),82px);--table-card-h:clamp(81px,min(11.9vw,15.25vh),119px)}.felt{inset:clamp(112px,17vh,150px) clamp(34px,6vw,74px) clamp(164px,24vh,220px)}.action-coach{width:min(390px,82%)}.local-badge{transform:scale(.72);left:0}.deck-zone{left:-18px}.round-heading{display:none}.remote-seat{transform:translate(-50%,0) scale(.84)}}
@media(max-width:650px){:root{--hand-card-w:clamp(68px,min(18vw,12.5vh),90px);--hand-card-h:clamp(99px,min(26.14vw,18.15vh),131px);--table-card-w:clamp(52px,min(13.5vw,9.5vh),68px);--table-card-h:clamp(76px,min(19.6vw,13.8vh),99px)}header{height:52px;padding-inline:8px}.mini-brand{font-size:.72rem}.room-pill{font-size:.58rem;padding:7px 9px}.room-pill button{display:none}.header-actions{gap:0}.header-actions .ghost{padding:8px 7px;font-size:.7rem}.table-view{height:calc(100dvh - 52px);min-height:500px}.arena::before{inset:4px}.remote-seat{transform:translate(-50%,0) scale(.72)}.remote-seat .player-seat{min-width:92px}.remote-seat .player-name{min-width:88px}.remote-seat .mini-hand{transform:scale(.84);transform-origin:top center}.felt{inset:clamp(116px,18vh,142px) 8px clamp(146px,23vh,186px);border-radius:22%}.turn-status{top:0;width:92%;padding:8px 10px}.turn-status strong{font-size:.77rem}.turn-status small{font-size:.56rem}.action-coach{top:54px;width:82%;padding:6px 8px}.action-coach>span{width:25px;height:25px;flex-basis:25px;font-size:.75rem}.action-coach b{font-size:.68rem}.action-coach small{display:none}.battlefield{inset:88px 0 52px;padding:5px;gap:3px}.battle-pair{width:calc(var(--table-card-w) + 8px);height:calc(var(--table-card-h) + 10px)}.battle-pair .defense-card,.defense-slot{left:7px!important;top:9px!important}.round-actions{bottom:0}.round-actions button{min-width:88px;padding:9px 12px;font-size:.68rem}.seat-bottom{width:100vw}.hand{height:calc(var(--hand-card-h) + 15px);padding-inline:3vw}.hand .card:hover{transform:translateY(-14px) rotate(0)!important}.local-badge{transform:scale(.57);left:-5px;bottom:0}.deck-zone{left:-23px;bottom:calc(var(--hand-card-h) + 8px);transform:scale(.55)}.chat-panel{top:52px;width:100vw}.toast{top:58px;width:calc(100vw - 24px);font-size:.78rem}}

/* 20260913-3 — fixed chat rail, left-side turn director and social reactions */
:root{--chat-panel-width:clamp(310px,21vw,420px);--turn-panel-width:clamp(275px,21vw,405px)}
.game{display:grid;grid-template-columns:minmax(0,1fr) var(--chat-panel-width);grid-template-rows:clamp(54px,6.4vh,70px) minmax(0,1fr)}
.game>header{grid-column:1;grid-row:1;width:auto;height:100%}.game>.waiting,.game>.table-view{grid-column:1;grid-row:2}.game>.table-view{height:100%;min-height:0}.game>.waiting{align-self:start}
.seat-bottom{width:min(94%,1540px)}
.game>.chat-panel{position:relative;z-index:50;grid-column:2;grid-row:1/3;right:auto;top:auto;bottom:auto;width:auto;height:100%;transform:none!important;border-left:2px solid #d9b15d42;box-shadow:-16px 0 45px #15333e55}
.chat-toggle,.chat-head>button{display:none!important}.chat-head{padding:20px 20px 16px;background:linear-gradient(180deg,#0c2b36,#071c25)}.chat-head b{font-size:1.18rem}.chat-messages{padding:16px}.chat-form{padding:14px}
.chat-message.system{margin:14px 3px;padding:10px 12px;border:1px solid #edbe5a55;border-radius:11px;background:#6a51202e;text-align:center}.chat-message.system>div{justify-content:center}.chat-message.system time{display:none}.chat-message.system b{color:#f3ca70}.chat-message.system p{color:#f8e8c3;font-weight:750}
.turn-panel{position:absolute;z-index:14;left:clamp(24px,2.4vw,48px);top:clamp(108px,16vh,172px);width:var(--turn-panel-width);display:grid;gap:10px;pointer-events:none}
.turn-panel .round-heading,.turn-panel .turn-status,.turn-panel .action-coach{position:static;inset:auto;transform:none;width:100%;min-width:0;text-align:left;pointer-events:auto}
.turn-panel .round-heading{display:block;padding:0 5px;color:#173e49;font-size:clamp(.76rem,.85vw,.95rem);letter-spacing:.08em}.turn-panel .turn-status{padding:clamp(15px,1.6vw,24px);border:1px solid #ffffffa8;border-left:7px solid #f1bd55;border-radius:8px 18px 18px 8px;background:linear-gradient(135deg,#0d3442f2,#174f5df0);box-shadow:0 14px 36px #20424e55;text-align:left}.turn-panel .turn-status strong{font:900 clamp(1.28rem,1.75vw,2rem)/1.08 system-ui;letter-spacing:-.025em}.turn-panel .turn-status small{margin-top:9px;font-size:clamp(.72rem,.78vw,.9rem);line-height:1.4}.turn-panel .action-coach{padding:12px 14px;border-radius:13px;background:#f1f7f5ea}.turn-panel .action-coach b{font-size:clamp(.9rem,1vw,1.05rem)}.turn-panel .action-coach small{font-size:clamp(.66rem,.72vw,.8rem);line-height:1.35}
.felt{left:calc(var(--turn-panel-width) + clamp(62px,5vw,105px));right:clamp(30px,4vw,82px);top:clamp(104px,15vh,165px);bottom:clamp(174px,24vh,275px)}
.round-actions .new-game-btn{min-width:170px;background:#e9b84f;color:#241d0b}.waiting-player.left{opacity:.52;text-decoration:line-through}.player-seat.disconnected{filter:grayscale(.8);opacity:.62}.player-seat.disconnected .avatar::before{content:"×";position:absolute;inset:-5px;display:grid;place-items:center;border-radius:50%;background:#762c2bc9;color:#fff;font:900 2.2rem/1 system-ui}.hand .card.trump-card{box-shadow:0 7px 18px #17333d7a,0 0 0 3px #e8b744,0 0 20px #f6ce6760}.hand .card.trump-card.legal{box-shadow:0 7px 18px #17333d7a,0 0 0 3px #e8b744,0 0 22px #f6ce6785}
.slap-btn{position:absolute;z-index:30;right:clamp(-54px,-3.4vw,-40px);top:9px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #ffffffa0;border-radius:50%;background:#0e3440e8;color:#fff;box-shadow:0 7px 18px #17333d66;opacity:.35;transform:scale(.88);transition:.16s opacity,.16s transform}.slap-btn span{font-size:1.35rem;line-height:1}.slap-btn small{position:absolute;top:48px;padding:2px 6px;border-radius:99px;background:#0d303b;color:#fff;font:800 .58rem/1.2 system-ui;opacity:0}.player-seat:hover .slap-btn,.slap-btn:focus-visible{opacity:1;transform:scale(1)}.slap-btn:hover{background:#b3443d}.slap-btn:hover small,.slap-btn:focus-visible small{opacity:1}.player-seat.slapped{animation:slap-seat .72s cubic-bezier(.2,.9,.25,1)}.player-seat.slapped .avatar{animation:slap-avatar .72s cubic-bezier(.2,.9,.25,1)}.player-seat.slapped .mini-hand,.player-seat.slapped .hand{animation:slap-cards .72s ease}.player-seat.slapped::after{content:"🖐  ШЛЁП!";position:absolute;z-index:60;left:50%;top:28%;padding:7px 12px;border:2px solid #fff4c8;border-radius:999px;background:#d84b43;color:#fff;box-shadow:0 7px 24px #73231f99;font:1000 clamp(.82rem,1.1vw,1.2rem)/1 system-ui;white-space:nowrap;pointer-events:none;animation:slap-word .9s ease both}
@keyframes slap-seat{0%,100%{transform:translateX(0) rotate(0)}22%{transform:translateX(-15px) rotate(-5deg) scale(.97,1.04)}43%{transform:translateX(9px) rotate(3deg)}65%{transform:translateX(-4px) rotate(-1deg)}}@keyframes slap-avatar{0%,100%{filter:none}28%{filter:saturate(1.8) brightness(1.25);transform:rotate(-14deg) scale(1.08)}55%{transform:rotate(7deg)}}@keyframes slap-cards{0%,100%{filter:none}28%{filter:drop-shadow(12px 0 0 #f0b956);transform:rotate(-5deg) translateX(-10px)}58%{transform:rotate(3deg) translateX(5px)}}@keyframes slap-word{0%{opacity:0;transform:translate(-15%,-10%) scale(.35) rotate(-18deg)}24%{opacity:1;transform:translate(-50%,-70%) scale(1.18) rotate(5deg)}70%{opacity:1;transform:translate(-50%,-105%) scale(1)}100%{opacity:0;transform:translate(-50%,-145%) scale(.84)}}
@media(hover:none){.slap-btn{opacity:.82;transform:scale(.86)}}
@media(max-width:1050px){:root{--chat-panel-width:280px;--turn-panel-width:245px}.turn-panel{left:16px}.felt{left:280px;right:18px}.turn-panel .turn-status strong{font-size:1.15rem}.turn-panel .turn-status small{font-size:.68rem}.slap-btn{right:-36px;transform:scale(.76)}}
@media(max-width:760px){:root{--chat-panel-width:0px;--turn-panel-width:190px}.game{grid-template-columns:1fr;grid-template-rows:52px minmax(0,1fr) minmax(180px,27vh)}.game>header{grid-column:1;grid-row:1}.game>.waiting,.game>.table-view{grid-column:1;grid-row:2}.game>.chat-panel{grid-column:1;grid-row:3;width:100%;border-left:0;border-top:2px solid #d9b15d42}.chat-head{padding:8px 12px}.chat-head span{display:none}.chat-messages{padding:8px;display:flex;gap:8px;overflow:auto}.chat-message,.chat-message.mine,.chat-message.system{flex:0 0 min(260px,78vw);margin:0}.chat-form{padding:8px}.turn-panel{left:8px;top:82px;width:var(--turn-panel-width);gap:6px}.turn-panel .turn-status{padding:10px;border-left-width:4px}.turn-panel .turn-status strong{font-size:.86rem}.turn-panel .turn-status small{display:none}.turn-panel .action-coach{padding:7px}.turn-panel .action-coach small{display:none}.felt{left:205px;right:5px;top:80px;bottom:130px}.slap-btn{right:-30px;width:38px;height:38px}.slap-btn small{display:none}}

/* Staged 20260913-6 — jukebox, action clock and transfer direction */
.music-controls{display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid #ffffff18;border-radius:12px;background:#ffffff0a}.music-icon,.music-picker{height:34px;border:0;color:#eef7f8;background:transparent}.music-icon{width:34px;border-radius:8px;font-size:1.05rem}.music-icon:hover,.music-picker:hover{background:#ffffff12}.music-volume{width:88px;height:4px;accent-color:#e8b84f;cursor:pointer}.music-picker{display:flex;align-items:center;gap:7px;max-width:210px;padding:0 9px;border-left:1px solid #ffffff1d;border-radius:8px}.music-picker>span{color:#f2bd64;font-size:1.1rem}.music-picker b{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}
.music-icon.muted{background:#7d302b75;color:#ffd5d1;opacity:.82}
.music-dialog{width:min(660px,calc(100vw - 28px));max-width:660px;padding:34px;background:linear-gradient(145deg,#fffaf0,#e9efe9);overflow:visible}.music-dialog h2,.music-admin-dialog h2{font-size:clamp(1.8rem,3vw,2.6rem)}.music-intro{margin:9px 0 20px;color:#53615b}.track-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.track-option{min-width:0;display:grid;grid-template-columns:36px 1fr 25px;align-items:center;gap:9px;padding:12px;border:1px solid #254b5340;border-radius:13px;background:#fff;color:#16343b;text-align:left}.track-option>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#143a45;color:#f4ca71;font:900 .72rem/1 system-ui}.track-option b,.track-option small{display:block}.track-option b{font-size:.9rem}.track-option small{margin-top:3px;color:#63757a;font-size:.72rem}.track-option em{color:#9aa7a4;font-style:normal}.track-option:hover,.track-option.selected{border-color:#d3a337;background:#fff4d6;box-shadow:0 0 0 3px #e9b84f22}.track-option.playing>span{background:#2c7d62}.track-option.selected em{color:#b67e00}.compliment-bill{margin-top:15px;display:flex;align-items:center;gap:14px;padding:15px;border:1px dashed #b08224;border-radius:14px;background:#fff3cc}.compliment-seal{flex:0 0 54px;height:54px;display:grid;place-items:center;border:3px double #f8e7af;border-radius:50%;background:#a93832;color:#fff;font:1000 1.35rem/1 Georgia}.compliment-bill b{color:#6b301d}.compliment-bill p{margin:4px 0 0;color:#685a45;font-size:.8rem;line-height:1.4}.music-request{width:100%;margin-top:14px;padding:14px 18px;border:0;border-radius:12px;background:#ddb044;color:#291f08;font-weight:900}.music-request:disabled{opacity:.45}.music-admin-dialog{width:min(540px,calc(100vw - 28px));max-width:540px;padding:38px;text-align:center;background:linear-gradient(160deg,#fff9e8,#dcebea)}.music-admin-copy{font:700 1.05rem/1.45 Georgia;color:#27444b}.admin-vinyl{width:86px;height:86px;margin:18px auto;display:grid;place-items:center;border:9px double #dda941;border-radius:50%;background:repeating-radial-gradient(circle,#102d35 0 4px,#1b4650 5px 7px);color:#f7c75f;font-size:1.4rem;box-shadow:0 8px 24px #1b3d4655;animation:vinyl-spin 5s linear infinite}.admin-question{color:#6f5730;font-weight:850}.admin-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:18px}.admin-actions button{padding:13px;border:1px solid #2a4a5040;border-radius:11px;background:#e6e9e6;color:#27383c;font-weight:850}.admin-actions .primary{border-color:#d5a52f;background:#e8b84f;color:#291f08}@keyframes vinyl-spin{to{transform:rotate(360deg)}}
.turn-panel .turn-clock{position:static;inset:auto;transform:none;width:100%;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 13px;border:1px solid #ffffff90;border-radius:14px;background:#102f3add;color:#fff;box-shadow:0 7px 18px #1d455055;pointer-events:auto}.clock-dial{--clock-progress:360deg;position:relative;flex:0 0 52px;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#f1bd55 var(--clock-progress),#476a73 0);box-shadow:0 0 0 3px #ffffff22}.clock-dial::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#0d303a}.clock-dial b{position:relative;z-index:1;font:900 1.12rem/1 system-ui}.turn-clock>div b,.turn-clock>div small{display:block}.turn-clock>div b{font-size:.88rem}.turn-clock>div small{margin-top:3px;color:#bcd1d5;font-size:.67rem;line-height:1.3}.turn-clock.urgent{border-color:#ff8078;background:#702c2ce8;animation:clock-warning .8s ease infinite alternate}.turn-clock.urgent .clock-dial{background:conic-gradient(#ff645c var(--clock-progress),#743b3b 0)}@keyframes clock-warning{to{box-shadow:0 0 0 5px #ff62542b,0 8px 24px #63231f77}}
.transfer-flash{position:absolute;z-index:80;left:50%;top:42%;min-width:min(520px,74%);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;padding:18px 24px;border:2px solid #ffe89b;border-radius:20px;background:linear-gradient(135deg,#81342df3,#c17027f2);color:#fff;box-shadow:0 18px 70px #4a201c99,0 0 0 10px #ffce6124;transform:translate(-50%,-50%);pointer-events:none}.transfer-flash>span{grid-row:1/3;font:900 3.3rem/1 Georgia;color:#ffe16d}.transfer-flash>b{font:1000 clamp(1.6rem,2.4vw,2.8rem)/1 system-ui;letter-spacing:.07em}.transfer-flash>small{margin-top:5px;color:#fff2d1;font-size:clamp(.76rem,.95vw,1rem)}.transfer-flash.show{animation:transfer-flash 2.05s cubic-bezier(.16,.85,.25,1) both}.player-seat.transfer-from{animation:transfer-from .9s ease}.player-seat.transfer-to{animation:transfer-to 1.3s ease}.battlefield.translate-ready{border-color:#ffd05c;background:#ffd7671d;box-shadow:inset 0 0 50px #ffd45d2e}.battlefield.translate-ready::after{content:"↻ ОТПУСТИТЕ — ПЕРЕВЕСТИ ХОД";position:absolute;left:50%;top:8px;transform:translateX(-50%);padding:6px 12px;border-radius:99px;background:#983e35;color:#fff4cc;font:900 .72rem/1 system-ui;letter-spacing:.05em;white-space:nowrap}@keyframes transfer-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-10deg)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(2deg)}72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-70%) scale(.92)}}@keyframes transfer-from{35%{transform:translateX(22px) rotate(5deg);filter:drop-shadow(0 0 18px #ffd24f)}}@keyframes transfer-to{0%,100%{filter:none}30%,65%{filter:drop-shadow(0 0 20px #ff5252);transform:scale(1.08)}}
.take-flash{position:absolute;z-index:79;left:50%;top:42%;min-width:min(560px,76%);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;padding:18px 24px;border:2px solid #d9f5ff;border-radius:20px;background:linear-gradient(135deg,#153c52f5,#247a83f3);color:#fff;box-shadow:0 18px 70px #173e4e99,0 0 0 10px #b9eff52b;transform:translate(-50%,-50%);pointer-events:none}.take-flash>span{grid-row:1/3;font-size:3rem}.take-flash>b{font:1000 clamp(1.45rem,2.3vw,2.65rem)/1 system-ui;text-transform:uppercase;letter-spacing:.035em}.take-flash>small{margin-top:6px;color:#d9f8fa;font-size:clamp(.8rem,1vw,1.05rem);font-weight:750}.take-flash.show{animation:take-flash 2.05s cubic-bezier(.16,.85,.25,1) both}@keyframes take-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-67%) scale(.94)}}
.result-flash{position:absolute;z-index:100;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at center,#fff8 0,#173c4760 35%,#082b36b5 100%);pointer-events:none}.result-flash section{position:relative;z-index:2;width:min(720px,82%);padding:clamp(28px,4vw,58px);display:grid;justify-items:center;border:2px solid #fff5c7;border-radius:28px;background:linear-gradient(145deg,#0f4b40f5,#1e7967f2);box-shadow:0 26px 90px #092e3788,0 0 0 12px #ffd96022;color:#fff;text-align:center}.result-flash section>span{font-size:clamp(4rem,8vw,8rem);filter:drop-shadow(0 10px 10px #15383280)}.result-flash section>em{margin-top:8px;color:#ffdda0;font:800 clamp(.78rem,1.1vw,1rem)/1 system-ui;text-transform:uppercase;letter-spacing:.15em;font-style:normal}.result-flash section>b{margin-top:12px;font:1000 clamp(2.3rem,5.8vw,5.8rem)/.92 system-ui;letter-spacing:-.055em;text-shadow:0 5px 0 #173c3c40}.result-flash section>small{margin-top:17px;color:#e7faf2;font-size:clamp(.85rem,1.15vw,1.15rem);font-weight:720}.result-flash.fool{background:radial-gradient(circle at center,#ffddad7a 0,#5f29266b 38%,#241717d1 100%)}.result-flash.fool section{border-color:#ffd3ae;background:linear-gradient(145deg,#512824f7,#983e34f2);box-shadow:0 26px 90px #42181599,0 0 0 12px #ff764d25}.result-flash.fool section>em{color:#ffd1a4}.result-flash.show section{animation:result-card 3.1s cubic-bezier(.16,.86,.25,1) both}.result-flash.fool.show section{animation-name:result-fool}.result-particles{position:absolute;z-index:1;inset:0}.result-particles i{--x:50%;--dx:0px;position:absolute;left:var(--x);top:-12%;width:clamp(10px,1.2vw,20px);height:clamp(18px,2vw,30px);border-radius:3px;background:#f4c95b;box-shadow:inset 0 0 0 2px #fff8;animation:result-particle 2.8s ease-in both}.result-particles i:nth-child(2n){background:#e9f7ef}.result-particles i:nth-child(3n){background:#e3765e}.result-particles i:nth-child(1){--x:7%;--dx:90px;animation-delay:.05s}.result-particles i:nth-child(2){--x:16%;--dx:-35px;animation-delay:.35s}.result-particles i:nth-child(3){--x:25%;--dx:70px;animation-delay:.15s}.result-particles i:nth-child(4){--x:34%;--dx:-80px;animation-delay:.5s}.result-particles i:nth-child(5){--x:43%;--dx:45px;animation-delay:.25s}.result-particles i:nth-child(6){--x:52%;--dx:-65px;animation-delay:.02s}.result-particles i:nth-child(7){--x:61%;--dx:80px;animation-delay:.42s}.result-particles i:nth-child(8){--x:69%;--dx:-45px;animation-delay:.18s}.result-particles i:nth-child(9){--x:77%;--dx:65px;animation-delay:.58s}.result-particles i:nth-child(10){--x:85%;--dx:-75px;animation-delay:.28s}.result-particles i:nth-child(11){--x:92%;--dx:35px;animation-delay:.08s}.result-particles i:nth-child(12){--x:48%;--dx:110px;animation-delay:.68s}.result-flash.fool .result-particles i{border-radius:50%;background:#ff8a67;box-shadow:none}@keyframes result-card{0%{opacity:0;transform:scale(.35) rotate(-7deg)}14%{opacity:1;transform:scale(1.08) rotate(1deg)}25%,78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.92) translateY(-30px)}}@keyframes result-fool{0%{opacity:0;transform:scale(.4) rotate(8deg)}15%{opacity:1;transform:scale(1.08) rotate(-3deg)}25%{transform:scale(1) rotate(2deg)}34%,78%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(.9) translateY(28px)}}@keyframes result-particle{0%{opacity:0;transform:translate(0,0) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate(var(--dx),115vh) rotate(720deg)}}
@media(max-width:1300px){.music-volume{width:58px}.music-picker b{display:none}.music-picker{width:38px;padding:0 8px}.turn-panel .turn-clock{padding:8px}.clock-dial{flex-basis:44px;width:44px;height:44px}.turn-clock>div small{display:none}}
@media(max-width:760px){.music-controls{gap:2px;padding:3px}.music-volume{display:none}.music-picker{border-left:0}.track-list{grid-template-columns:1fr}.music-dialog{padding:25px 18px}.turn-panel .turn-clock{padding:5px 7px;gap:7px}.clock-dial{flex-basis:37px;width:37px;height:37px}.clock-dial b{font-size:.86rem}.turn-clock>div b{font-size:.68rem}.transfer-flash{top:48%;min-width:88%;padding:12px 15px}.transfer-flash>span{font-size:2rem}.transfer-flash>b{font-size:1.25rem}.transfer-flash>small{font-size:.68rem}}
@media(max-width:760px){.take-flash{top:48%;min-width:88%;padding:12px 15px}.take-flash>span{font-size:2rem}.take-flash>b{font-size:1.2rem}.take-flash>small{font-size:.68rem}}

/* Staged 20260913-7 — resilient connection, one-minute seat hold and lightweight reactions */
.connection-pill{height:32px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #ffffff1b;border-radius:99px;background:#ffffff0b;color:#cfe0e3;font-size:.68rem;font-weight:800;white-space:nowrap}.connection-pill i{width:8px;height:8px;border-radius:50%;background:#65d88f;box-shadow:0 0 0 4px #65d88f1f}.connection-pill.connecting i{background:#f0bd55;box-shadow:0 0 0 4px #f0bd5525;animation:connection-pulse .75s ease infinite alternate}.connection-pill.offline{border-color:#ff8e8652;background:#7e302c42;color:#ffd6d2}.connection-pill.offline i{background:#ff675e;box-shadow:0 0 0 4px #ff675e25;animation:connection-pulse .6s ease infinite alternate}@keyframes connection-pulse{to{opacity:.35;transform:scale(.72)}}
.admin-pause-btn{height:34px;padding:0 12px;border:1px solid #ff9d9555;border-radius:9px;background:#7b302d;color:#fff0ed;font-size:.7rem;font-weight:900;letter-spacing:.035em;white-space:nowrap}.admin-pause-btn:hover{background:#9b3934}.admin-pause-btn.active{border-color:#8ce6ae80;background:#236846;color:#effff5;box-shadow:0 0 0 3px #54d98a1b}.admin-pause-btn.active:hover{background:#2b8155}
.turn-clock.reconnect{border-color:#f0c663;background:#644b20e8}.turn-clock.reconnect .clock-dial{background:conic-gradient(#ffe07a var(--clock-progress),#765f35 0)}.player-seat.disconnected{opacity:.76}.player-seat.disconnected .player-name{background:#5c4130}.player-seat.disconnected .avatar::before{content:"↻";background:#755021d9;font-size:1.65rem;animation:reconnect-spin 1.5s linear infinite}@keyframes reconnect-spin{to{transform:rotate(360deg)}}
.turn-clock.admin-stop{border-color:#ffa49e;background:#662c2ce8}.turn-clock.admin-stop .clock-dial{background:#9d3f3a}.turn-clock.admin-stop .clock-dial b{font-size:1.45rem}.game:has(.admin-pause-btn.active) .hand .card{cursor:not-allowed}
.player-seat{will-change:transform}.player-seat.slapped .mini-hand,.player-seat.slapped .hand{animation:slap-cards-lite .62s ease}@keyframes slap-cards-lite{0%,100%{transform:translateX(0) rotate(0)}30%{transform:translateX(-9px) rotate(-4deg)}62%{transform:translateX(4px) rotate(2deg)}}
@media(max-width:1300px){.admin-pause-btn{width:34px;padding:0;font-size:0}.admin-pause-btn::before{content:"⏸";font-size:.85rem}.admin-pause-btn.active::before{content:"▶"}}
@media(max-width:1180px){.connection-pill span{display:none}.connection-pill{width:30px;padding:0;justify-content:center}}
@media(max-width:760px){.connection-pill{position:absolute;left:6px;top:57px;z-index:70;width:auto;height:25px;padding:0 7px}.connection-pill span{display:block;font-size:.56rem}.connection-pill i{width:6px;height:6px}.admin-pause-btn{position:absolute;left:6px;top:87px;z-index:70;width:29px;height:27px}.music-icon{width:29px}.music-picker{width:31px;padding:0 6px}}
@media(prefers-reduced-motion:reduce){.player-seat.slapped,.player-seat.slapped .avatar,.player-seat.slapped .mini-hand,.player-seat.slapped .hand,.transfer-flash.show{animation-duration:.18s!important}.player-seat.disconnected .avatar::before{animation:none}}

/* Staged 20260913-11 — lightweight chat pictures and personal turn cue */
.chat-form{grid-template-columns:42px minmax(0,1fr) 42px}.chat-image-pick{display:grid;place-items:center;border:1px solid #ffffff20!important;background:#ffffff0e!important;color:#f2ca72!important;font-size:1.25rem!important}.chat-image-pick:hover{border-color:#eabd5b!important;background:#ffffff18!important}.chat-image-pick:disabled{opacity:.5}.chat-message.has-image{padding:9px}.chat-picture{display:block;margin-top:7px;border-radius:9px;overflow:hidden;background:#061820;box-shadow:0 4px 14px #020d1266}.chat-picture img{display:block;width:100%;max-height:260px;object-fit:contain}.your-turn-flash{position:absolute;z-index:78;left:50%;top:43%;min-width:min(500px,72%);padding:19px 26px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;border:2px solid #fff0a6;border-radius:20px;background:linear-gradient(135deg,#896421f5,#d5982df2);color:#fff;box-shadow:0 20px 75px #4c3416a8,0 0 0 12px #ffe27028;transform:translate(-50%,-50%);pointer-events:none}.your-turn-flash>span{grid-row:1/3;font:900 3.3rem/1 Georgia;color:#fff1a1;text-shadow:0 0 18px #fff0a6}.your-turn-flash>b{font:1000 clamp(1.7rem,3vw,3.2rem)/.95 system-ui;letter-spacing:.055em}.your-turn-flash>small{margin-top:6px;color:#fff4d2;font-size:clamp(.76rem,1vw,1.02rem);font-weight:800}.your-turn-flash.show{animation:your-turn-flash 1.7s cubic-bezier(.16,.86,.25,1) both}@keyframes your-turn-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(-5deg)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(1deg)}32%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-68%) scale(.92)}}
@media(max-width:760px){.chat-form{grid-template-columns:38px minmax(0,1fr) 38px}.chat-form input{padding-inline:9px;font-size:.78rem}.your-turn-flash{top:48%;min-width:88%;padding:13px 16px}.your-turn-flash>span{font-size:2.1rem}.your-turn-flash>b{font-size:1.35rem}.your-turn-flash>small{font-size:.68rem}.chat-picture img{max-height:190px}}
@media(prefers-reduced-motion:reduce){.your-turn-flash.show{animation-duration:.22s!important}}

/* Staged 20260913-12 — explicit throw pass and visible deck counter */
.round-actions .pass-throw-btn{min-width:210px;border-color:#d9f3e5;background:#246b58;color:#f3fff9;box-shadow:0 8px 24px #123e3480}.round-actions .pass-throw-btn:hover{background:#2d8069}.deck-label{position:absolute;left:0;top:calc(100% + 9px);min-width:118px;padding:7px 10px;border:1px solid #ffffff55;border-radius:9px;background:#123844e8;color:#dcebee;font-size:.72rem;font-weight:750;text-align:center;white-space:nowrap;box-shadow:0 6px 18px #17333d55}.deck-label b{color:#ffd36f;font-size:.88rem}
@media(max-width:760px){.round-actions .pass-throw-btn{min-width:150px;font-size:.61rem}.deck-label{top:calc(100% + 4px);min-width:102px;padding:5px 7px;font-size:.64rem}.deck-label b{font-size:.74rem}}

/* Staged 20260913-13 — card travel, hand dealing and discard pile */
.card-move-layer{position:absolute;z-index:77;inset:0;overflow:hidden;pointer-events:none}.card-move-layer img{--tx:0px;--ty:0px;--rot:0deg;position:absolute;left:50%;top:50%;width:var(--table-card-w);height:var(--table-card-h);border-radius:clamp(6px,.55vw,10px);object-fit:fill;opacity:0;filter:drop-shadow(0 12px 12px #14364070);transform:translate(-50%,-50%);animation:card-to-zone .92s cubic-bezier(.18,.78,.24,1) both;animation-delay:var(--delay)}
.card-move-layer.to-bottom img{--tx:var(--spread-x);--ty:43vh;--rot:var(--spread-rot)}.card-move-layer.to-top img{--tx:var(--spread-x);--ty:-42vh;--rot:var(--spread-rot)}.card-move-layer.to-left img{--tx:-44vw;--ty:var(--spread-y);--rot:calc(-76deg + var(--spread-rot))}.card-move-layer.to-right img{--tx:44vw;--ty:var(--spread-y);--rot:calc(76deg + var(--spread-rot))}.card-move-layer.to-discard img{--tx:40vw;--ty:31vh;--rot:calc(18deg + var(--spread-rot))}
@keyframes card-to-zone{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--spread-rot)) scale(1)}68%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(var(--rot)) scale(.66)}}
.hand .card.receive-from-deck{animation:deal-to-hand .72s cubic-bezier(.18,.82,.25,1) both;animation-delay:calc((var(--hand-order,0))*34ms)}.hand .card.receive-from-table{animation:table-to-hand .76s cubic-bezier(.18,.82,.25,1) both}.player-seat.cards-added .mini-back:last-of-type{animation:mini-card-added .72s cubic-bezier(.2,.82,.3,1) both}.player-seat.cards-added .mini-hand span{animation:count-pop .55s cubic-bezier(.2,.85,.3,1)}
@keyframes deal-to-hand{0%{opacity:0;filter:brightness(1.3);transform:translate(-46vw,-24vh) rotate(-72deg) scale(.58)}72%{opacity:1;filter:brightness(1.08)}100%{opacity:1;transform:translateY(var(--lift,0)) rotate(var(--fan,0));filter:none}}@keyframes table-to-hand{0%{opacity:0;filter:brightness(1.25);transform:translateY(-38vh) rotate(20deg) scale(.62)}100%{opacity:1;filter:none;transform:translateY(var(--lift,0)) rotate(var(--fan,0))}}@keyframes mini-card-added{0%{opacity:0;filter:brightness(1.8) drop-shadow(0 0 16px #fff);transform:translateY(-80px) rotate(22deg) scale(.7)}100%{opacity:1;filter:none}}@keyframes count-pop{45%{transform:scale(1.42);background:#fff;color:#19404a}}
.discard-zone{position:absolute;z-index:8;right:clamp(14px,2.2vw,42px);bottom:clamp(82px,12vh,142px);display:grid;justify-items:center;gap:6px;color:#163f49;font-size:clamp(.62rem,.72vw,.78rem);font-weight:850;transition:.25s opacity,.25s filter}.discard-zone.empty{opacity:.42;filter:saturate(.35)}.discard-stack{position:relative;width:calc(var(--table-card-w)*.78);height:calc(var(--table-card-h)*.72)}.discard-stack i{position:absolute;inset:0;border:3px solid #f8f3e8;border-radius:8px;background:repeating-linear-gradient(45deg,#a9473d 0 4px,#edcfac 4px 7px);box-shadow:0 4px 10px #17394655;transform:rotate(-6deg)}.discard-stack i:nth-child(2){transform:translate(3px,-2px) rotate(5deg)}.discard-stack i:nth-child(3){transform:translate(6px,-5px) rotate(-1deg)}.discard-zone.empty .discard-stack i:nth-child(n+2){display:none}.discard-zone.receive{animation:discard-receive .9s cubic-bezier(.2,.8,.3,1)}@keyframes discard-receive{0%,100%{transform:none}42%{transform:scale(1.16) rotate(5deg);filter:drop-shadow(0 0 18px #fff2b0)}}
@media(max-width:1050px){.card-move-layer.to-left img{--tx:-42vw}.card-move-layer.to-right img{--tx:42vw}.card-move-layer.to-discard img{--tx:39vw}.discard-zone{right:7px}}
@media(max-width:760px){.card-move-layer.to-bottom img{--ty:36vh}.card-move-layer.to-top img{--ty:-35vh}.card-move-layer.to-discard img{--tx:38vw;--ty:28vh}.discard-zone{right:-6px;bottom:calc(var(--hand-card-h) + 9px);transform:scale(.7);transform-origin:right bottom}.turn-panel{width:min(var(--turn-panel-width),38vw)}}
@media(prefers-reduced-motion:reduce){.card-move-layer{display:none}.hand .card.receive-from-deck,.hand .card.receive-from-table,.player-seat.cards-added .mini-back:last-of-type,.player-seat.cards-added .mini-hand span,.discard-zone.receive{animation:none!important}}

/* Staged 20260913-16 — immersive lobby masthead */
.lobby{position:relative;isolation:isolate;overflow:hidden;width:min(1100px,calc(100% - 32px));margin:clamp(20px,5vh,54px) auto;padding:clamp(32px,4.6vw,58px);grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:clamp(22px,3vw,38px) clamp(34px,5vw,72px);border-color:#f0c96430;background:radial-gradient(circle at 7% 4%,#2a715846,transparent 31%),linear-gradient(145deg,#082f25f2,#05251df4 68%,#031b16f7);box-shadow:0 28px 100px #00150fac,inset 0 0 70px #72b4960b}.lobby::before{content:"";position:absolute;z-index:0;inset:12px;border:1px solid #dcb65124;border-radius:20px;pointer-events:none}.lobby::after{content:"✦";position:absolute;z-index:1;left:50%;top:13px;padding:0 12px;color:#e6b84a;background:#082d23;font-size:.72rem;transform:translateX(-50%);pointer-events:none}.lobby>*:not(.lobby-decor){position:relative;z-index:2}
.lobby .brand{grid-column:1;align-items:flex-start;gap:clamp(12px,1.6vw,22px);min-width:0}.lobby .brand-copy{min-width:0}.lobby .brand-mark{flex:0 0 clamp(48px,5vw,66px);width:clamp(48px,5vw,66px);height:clamp(48px,5vw,66px);display:grid;place-items:center;margin-top:3px;border:1px solid #f1ca6b6b;border-radius:50%;background:radial-gradient(circle at 35% 28%,#ffd66f,#d99e2f);box-shadow:0 0 0 7px #e7b64c0c,0 12px 30px #020e0b99;color:#173b30;font-size:clamp(2rem,3.3vw,3rem);line-height:1}.lobby .eyebrow{margin:0 0 9px;color:#e8ba50;font-size:clamp(.63rem,.7vw,.76rem);letter-spacing:.25em}.lobby h1{max-width:720px;color:#fff8e8;font:1000 clamp(2.45rem,4.15vw,4.25rem)/.9 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.065em;text-wrap:balance;text-shadow:0 7px 28px #0006}.lobby h1 span,.lobby h1 em{display:block}.lobby h1 span{white-space:nowrap}.lobby h1 em{margin-top:8px;color:#efbd4e;font-size:.78em;font-style:normal;letter-spacing:-.035em}.brand-subtitle{margin:18px 0 0;color:#a9c4b8;font-size:clamp(.67rem,.78vw,.82rem);font-weight:780;letter-spacing:.08em;text-transform:uppercase}.lobby .lead{align-self:center;padding:clamp(17px,2vw,24px) 0 clamp(17px,2vw,24px) clamp(20px,2.2vw,30px);border-left:2px solid #e4b64d5e;color:#dce9e2;font:clamp(.98rem,1.25vw,1.22rem)/1.55 Georgia,serif}.lobby .lead strong{display:block;margin-bottom:6px;color:#f6ca6b;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.74em;letter-spacing:.12em;text-transform:uppercase}.lobby label{margin-top:-2px}.lobby input,.lobby .join-row input{border-color:#b9d8cb26;background:#ffffff0b;box-shadow:inset 0 1px 0 #fff0}.lobby input:focus{border-color:#f1c052;box-shadow:0 0 0 4px #e4b64a18}.lobby .primary{box-shadow:0 10px 26px #020e0a70,0 0 0 1px #ffe29a80}.lobby .fineprint{padding-top:2px;border-top:1px solid #ffffff0d}
.lobby-decor{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.decor-card{position:absolute;width:clamp(78px,8vw,112px);border-radius:10px;opacity:.2;filter:sepia(.18) saturate(.85);box-shadow:0 14px 32px #0008}.decor-card-one{left:-35px;top:30px;transform:rotate(-18deg)}.decor-card-two{right:-37px;top:27px;transform:rotate(17deg)}.decor-card-three{left:-38px;bottom:18px;transform:rotate(14deg)}.decor-card-four{right:-30px;bottom:-38px;transform:rotate(-16deg)}.decor-suits{position:absolute;left:50%;bottom:-.18em;transform:translateX(-50%);color:#e9c268;font:900 clamp(5rem,12vw,9rem)/1 Georgia,serif;letter-spacing:.13em;opacity:.035;white-space:nowrap}.decor-suits i{color:#df6659;font-style:normal}
@media(max-width:900px){.lobby{grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr);gap:24px 32px;padding:38px}.lobby h1{font-size:clamp(2.35rem,4.8vw,3.35rem)}.lobby .brand-mark{flex-basis:48px;width:48px;height:48px;font-size:2rem}.brand-subtitle{letter-spacing:.04em}.lobby .lead{padding-left:20px}}
@media(max-width:700px){.lobby{width:min(620px,calc(100% - 20px));margin:10px auto;padding:34px 24px 28px;grid-template-columns:1fr;gap:20px}.lobby .brand,.lobby .lead,.lobby label,.lobby .lobby-actions,.lobby .status,.lobby .fineprint{grid-column:1}.lobby .brand{gap:11px}.lobby .brand-mark{flex-basis:42px;width:42px;height:42px;font-size:1.7rem}.lobby h1{font-size:clamp(2.05rem,9vw,3.15rem);line-height:.92}.lobby h1 span{white-space:normal}.lobby h1 em{margin-top:5px}.brand-subtitle{margin-top:13px;font-size:.61rem;line-height:1.45}.lobby .lead{grid-row:auto;padding:13px 0 13px 16px;font-size:.94rem}.lobby .lobby-actions{grid-template-columns:1fr}.decor-card{width:78px;opacity:.14}.decor-card-two,.decor-card-three{display:none}.decor-card-one{left:-39px;top:72px}.decor-card-four{right:-35px;bottom:-28px}.decor-suits{font-size:5rem}.lobby .fineprint{font-size:.66rem;line-height:1.45}}

/* 20260913-17 — secret cheating, card inspection and public shame */
#rulesDialog{max-height:min(86vh,860px);overflow:auto}.rules-cheat{margin-top:18px;padding:17px;display:grid;grid-template-columns:44px 1fr;gap:13px;border:1px solid #8b572f55;border-radius:15px;background:linear-gradient(145deg,#fff1ce,#f2ded0)}.rules-cheat>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#34243b;color:#f2c65c;font-size:1.55rem}.rules-cheat h3{margin:0 0 6px;color:#6f302b;font:900 1.05rem/1.1 system-ui}.rules-cheat p{margin:0;color:#5d5049;font-size:.88rem}.rules-cheat p+p{margin-top:8px}
.round-actions .cheat-action-btn{border-color:#d9b4ff;background:linear-gradient(145deg,#38243f,#5c3563);color:#fff2c7;box-shadow:0 8px 24px #25152d70}.round-actions .cheat-action-btn:hover{background:linear-gradient(145deg,#4c2d54,#77417c);box-shadow:0 8px 28px #35193c90,0 0 0 3px #d6a2ef28}.round-actions .cheat-action-btn span{font-size:1.08em}
.cheat-dialog{width:min(610px,calc(100vw - 28px));max-width:610px;padding:35px;background:radial-gradient(circle at 92% 0,#6f3a7045,transparent 34%),linear-gradient(150deg,#fff9eb,#e8eee8);overflow:visible}.cheat-dialog h2{display:flex;align-items:center;gap:10px;font:900 clamp(2rem,4vw,3.2rem)/1 Georgia,serif;color:#34253a}.cheat-dialog h2 span{font-size:.85em}.cheat-intro{margin:10px 0 20px;color:#53605b}.cheat-options{display:grid;grid-template-columns:1fr 1fr;gap:11px}.cheat-options button{min-width:0;display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:10px;padding:15px 13px;border:1px solid #65466f55;border-radius:15px;background:#fff;color:#25393a;text-align:left;box-shadow:0 7px 19px #263c3d16;transition:.16s transform,.16s border-color,.16s background}.cheat-options button:hover:not(:disabled){transform:translateY(-2px);border-color:#8e5699;background:#fff7dc}.cheat-options button>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#38243f;color:#f5ce70;font-size:1.45rem}.cheat-options button b,.cheat-options button small{display:block}.cheat-options button b{font-size:.95rem}.cheat-options button small{margin-top:4px;color:#687777;font-size:.71rem;line-height:1.35}.cheat-options button i{color:#84518e;font-style:normal;font-weight:900}.cheat-warning{margin:16px 0 0;padding:12px 14px;border-left:4px solid #b3433d;border-radius:8px;background:#f5ddd3;color:#71352e;font-size:.82rem;font-weight:750}
.cheat-play-mode .hand .card{opacity:1!important;filter:none!important;box-shadow:0 7px 18px #17333d7a,0 0 0 4px #d6a0f2,0 0 25px #8c4aaa88!important;cursor:alias}.cheat-play-mode #battlefield{border-color:#dca9f0;background:#5a2f6530;box-shadow:inset 0 0 50px #ae67c83b}.cheat-play-mode #battlefield::after{content:"🃏 ШУЛЕРСКИЙ РЕЖИМ · ПОЛОЖИТЕ КАРТУ";position:absolute;z-index:10;left:50%;top:8px;transform:translateX(-50%);padding:7px 13px;border:1px solid #e9c8f7;border-radius:99px;background:#432249;color:#ffe9a7;font:900 clamp(.58rem,.68vw,.75rem)/1 system-ui;letter-spacing:.06em;white-space:nowrap}.cheat-accuse-mode #battlefield{border-color:#ffd86f;background:#6b461925;box-shadow:inset 0 0 55px #ffd35a35}.cheat-accuse-mode #battlefield::after{content:"🔎 ВЫБЕРИТЕ ПОДОЗРИТЕЛЬНУЮ КАРТУ";position:absolute;z-index:10;left:50%;top:8px;transform:translateX(-50%);padding:7px 13px;border:1px solid #fff1b1;border-radius:99px;background:#704524;color:#fff5c7;font:900 clamp(.58rem,.68vw,.75rem)/1 system-ui;letter-spacing:.06em;white-space:nowrap}.cheat-accuse-mode #battlefield .card{cursor:crosshair;animation:inspect-card 1s ease-in-out infinite alternate}.cheat-accuse-mode #battlefield .card:hover{z-index:25;outline:4px solid #ffe36c;filter:drop-shadow(0 0 17px #fff1a3);transform:translateY(-7px) rotate(0)!important}@keyframes inspect-card{to{filter:drop-shadow(0 0 9px #ffe989)}}
.shame-badge{position:absolute;z-index:31;left:calc(50% + clamp(51px,4.4vw,70px));top:clamp(44px,4vw,62px);min-width:112px;padding:5px 8px 5px 29px;border:1px solid #ffd76e;border-radius:8px;background:linear-gradient(145deg,#8b302d,#511d25);box-shadow:0 7px 20px #49191f88;color:#fff;text-align:left;white-space:nowrap;transform:rotate(1deg)}.shame-badge i{position:absolute;left:7px;top:50%;font-style:normal;transform:translateY(-50%)}.shame-badge b,.shame-badge small{display:block}.shame-badge b{font:900 .65rem/1 system-ui;text-transform:uppercase}.shame-badge small{margin-top:2px;color:#ffd9a3;font:800 .58rem/1 system-ui}.local-badge .shame-badge{left:calc(100% + 7px);top:50%;transform:translateY(-50%) rotate(1deg)}.player-seat.shamed .avatar{box-shadow:0 0 0 4px #e5494230,0 5px 18px #6c2323,0 0 25px #ff5c4c55}
.shame-flash{position:absolute;z-index:97;left:50%;top:44%;width:min(720px,82%);padding:23px 29px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;border:3px double #ffe291;border-radius:22px;background:radial-gradient(circle at 9% 22%,#d04d4d55,transparent 35%),linear-gradient(135deg,#2e1e35f5,#7c2b36f3);box-shadow:0 24px 90px #35131db5,0 0 0 12px #ffcd6322;color:#fff;transform:translate(-50%,-50%);pointer-events:none}.shame-flash>span{font-size:clamp(3.4rem,6vw,6rem);filter:drop-shadow(0 10px 15px #0007)}.shame-flash em,.shame-flash b,.shame-flash small{display:block}.shame-flash em{color:#ffd36f;font:900 clamp(.7rem,.9vw,.9rem)/1 system-ui;letter-spacing:.19em;font-style:normal}.shame-flash b{margin-top:7px;font:1000 clamp(1.55rem,3vw,3.3rem)/.95 system-ui;letter-spacing:-.035em}.shame-flash small{margin-top:9px;color:#ffe7d1;font-size:clamp(.72rem,.95vw,1rem);font-weight:750}.shame-flash.show{animation:shame-flash 2.7s cubic-bezier(.16,.86,.25,1) both}@keyframes shame-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-6deg)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(1deg)}23%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-66%) scale(.92)}}
.player-seat.punishment-hit{animation:punishment-seat .15s ease both!important}.player-seat.punishment-hit::after{content:"🖐 ШЛЁП!";position:absolute;z-index:70;left:50%;top:16%;padding:7px 11px;border:2px solid #fff1b6;border-radius:99px;background:#d44039;color:#fff;box-shadow:0 5px 22px #731e1b9c;font:1000 clamp(.75rem,1vw,1.05rem)/1 system-ui;white-space:nowrap;transform:translate(-50%,-50%);animation:punishment-word .15s ease both}@keyframes punishment-seat{45%{transform:translateX(12px) rotate(4deg) scale(.96)}}@keyframes punishment-word{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}55%{opacity:1;transform:translate(-50%,-90%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-120%) scale(.9)}}
@media(max-width:760px){.cheat-dialog{padding:27px 18px}.cheat-options{grid-template-columns:1fr}.round-actions .cheat-action-btn{min-width:88px}.round-actions .cheat-action-btn span{display:none}.shame-badge{left:calc(50% + 45px);top:38px;min-width:94px;padding:4px 6px 4px 24px}.shame-badge b{font-size:.55rem}.shame-badge small{font-size:.5rem}.local-badge .shame-badge{left:calc(100% + 4px)}.shame-flash{top:48%;width:90%;padding:16px 18px;gap:11px}.shame-flash>span{font-size:2.6rem}.shame-flash b{font-size:1.35rem}.shame-flash small{font-size:.65rem}.rules-cheat{grid-template-columns:1fr}.rules-cheat>span{display:none}}
@media(prefers-reduced-motion:reduce){.cheat-accuse-mode #battlefield .card,.shame-flash.show,.player-seat.punishment-hit,.player-seat.punishment-hit::after{animation-duration:.2s!important}}

/* 20260913-18 — collision-proof, cinematic lobby composition */
.lobby{width:min(1240px,calc(100% - 32px));min-height:min(680px,calc(100vh - 40px));margin:clamp(20px,4vh,44px) auto;padding:clamp(38px,4.2vw,58px);grid-template-columns:minmax(0,1.72fr) minmax(285px,.68fr);grid-template-rows:auto auto auto auto;column-gap:clamp(38px,4vw,58px);row-gap:clamp(22px,3vh,32px)}
.lobby .brand{min-width:0;padding-right:4px}.lobby .brand-copy{width:100%;min-width:0}.lobby h1{width:100%;max-width:none;font-size:clamp(2.5rem,3.85vw,4.05rem);line-height:.9;letter-spacing:-.058em}.lobby h1 span{white-space:nowrap}.lobby h1 em{margin-top:10px;font-size:.73em;letter-spacing:-.025em}.lobby .brand-mark{flex-basis:clamp(46px,4.6vw,62px);width:clamp(46px,4.6vw,62px);height:clamp(46px,4.6vw,62px);font-size:clamp(1.9rem,3vw,2.7rem)}
.lobby .lead{align-self:stretch;min-width:0;display:flex;flex-direction:column;justify-content:center;margin:0;padding:clamp(22px,2.2vw,28px);border:1px solid #e8c16531;border-left:3px solid #e8ba50;border-radius:0 18px 18px 0;background:linear-gradient(120deg,#ffffff08,#d6aa3d0b);color:#dce9e2;font:clamp(.94rem,1.08vw,1.12rem)/1.5 Georgia,serif;box-shadow:inset 0 1px 0 #fff0}.lobby .lead strong{margin:0 0 10px;color:#f2c45e;font:900 .72em/1.2 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase}.lobby .lead span{display:block;overflow-wrap:anywhere}
.lobby label{align-self:end}.lobby .lobby-actions{align-self:start}.lobby .fineprint{align-self:end}.lobby-decor::after{content:"";position:absolute;left:8%;right:8%;bottom:14%;height:1px;background:linear-gradient(90deg,transparent,#e2bb5742,transparent)}
@media(max-width:1100px){.lobby{width:min(820px,calc(100% - 28px));min-height:0;grid-template-columns:1fr;grid-template-rows:auto;gap:21px;padding:clamp(34px,5.4vw,52px)}.lobby .brand,.lobby .lead,.lobby label,.lobby .lobby-actions,.lobby .status,.lobby .fineprint{grid-column:1;grid-row:auto}.lobby .brand{padding-right:0}.lobby h1{font-size:clamp(2.45rem,6.2vw,3.75rem)}.lobby .lead{padding:17px 20px;font-size:1rem}.lobby .lead strong{margin-bottom:6px}.lobby-decor::after{bottom:10%}}
@media(max-width:700px){.lobby{width:min(620px,calc(100% - 20px));margin:10px auto;padding:32px 24px 27px;gap:18px}.lobby h1{font-size:clamp(2rem,8.7vw,3.05rem);line-height:.92}.lobby h1 span{white-space:normal}.lobby h1 em{margin-top:5px;font-size:.76em}.lobby .lead{padding:13px 15px;font-size:.91rem;border-radius:0 13px 13px 0}.lobby .lobby-actions{grid-template-columns:1fr}.lobby-decor::after{display:none}}

/* 20260913-20 — review phase, centered table, direct cheat mode, independent SFX and meme reactions */
.seat-bottom .hand{padding-right:clamp(140px,12vw,190px)}.cheat-hand-btn{position:absolute;z-index:42;right:clamp(10px,2vw,32px);bottom:clamp(20px,3.7vh,42px);min-width:126px;height:54px;display:grid;grid-template-columns:35px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:7px 13px 7px 9px;border:1px solid #e3baff;border-radius:16px;background:linear-gradient(145deg,#302038,#63356b);box-shadow:0 12px 30px #27112f80,0 0 0 4px #d797ec16;color:#fff2cb;text-align:left;transition:.16s transform,.16s box-shadow,.16s background}.cheat-hand-btn:hover{transform:translateY(-3px);background:linear-gradient(145deg,#44274d,#7b4382);box-shadow:0 16px 36px #27112fa0,0 0 0 4px #e2a6f337}.cheat-hand-btn>span{grid-row:1/3;width:35px;height:35px;display:grid;place-items:center;border:1px solid #f2d78188;border-radius:10px;background:#1f1728;font-size:1.3rem}.cheat-hand-btn b{align-self:end;font:900 .84rem/1 system-ui}.cheat-hand-btn small{align-self:start;margin-top:3px;color:#d9bce0;font:750 .56rem/1 system-ui;text-transform:uppercase;letter-spacing:.08em}.cheat-play-mode .cheat-hand-btn,.cheat-accuse-mode .cheat-hand-btn{box-shadow:0 12px 30px #27112f80,0 0 0 5px #ffd86f66;animation:cheat-button-pulse .72s ease-in-out infinite alternate}@keyframes cheat-button-pulse{to{transform:translateY(-3px) scale(1.03)}}
.game .arena>.felt{left:50%;right:auto;width:min(920px,calc(100% - clamp(48px,8vw,150px)));transform:translateX(-50%)}
.turn-clock.review{border-color:#ffe08a;background:#305765ed;box-shadow:0 9px 25px #24475477,0 0 0 4px #f3c85c20}.turn-clock.review .clock-dial{background:conic-gradient(#ffdc6b var(--clock-progress),#587984 0)}
.result-flash.fool section>b{max-width:100%;font-size:clamp(1.55rem,4vw,4.2rem);line-height:.98}
.youtube-music-frame{position:fixed;left:-2px;bottom:-2px;width:2px;height:2px;border:0;opacity:.01;pointer-events:none}
.reaction-layer{position:absolute;z-index:96;left:50%;top:45%;width:0;height:0;pointer-events:none}.table-reaction{position:absolute;left:0;top:0;min-width:clamp(170px,15vw,260px);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:12px;padding:13px 18px;border:2px solid #fff2a7;border-radius:20px;background:linear-gradient(145deg,#172e3df3,#563b68f3);box-shadow:0 20px 65px #15323d99,0 0 0 8px #ffe27520;color:#fff;transform:translate(calc(-50% + var(--reaction-x)), -50%);animation:table-reaction 2.25s cubic-bezier(.15,.86,.25,1) both}.table-reaction>span{grid-row:1/3;font-size:clamp(2.2rem,4vw,4.2rem);filter:drop-shadow(0 7px 8px #0006)}.table-reaction>b{font:1000 clamp(1.15rem,2vw,2rem)/1 system-ui;letter-spacing:-.025em}.table-reaction>small{margin-top:4px;color:#f8d889;font-size:.72rem;font-weight:800}@keyframes table-reaction{0%{opacity:0;transform:translate(calc(-50% + var(--reaction-x)),-20%) scale(.35) rotate(-7deg)}14%{opacity:1;transform:translate(calc(-50% + var(--reaction-x)),-50%) scale(1.08) rotate(1deg)}72%{opacity:1;transform:translate(calc(-50% + var(--reaction-x)),-62%) scale(1)}100%{opacity:0;transform:translate(calc(-50% + var(--reaction-x)),-120%) scale(.86)}}
.chat-form{grid-template-columns:42px 42px minmax(0,1fr) 42px}.meme-tray{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px 10px;border-top:1px solid #ffffff18;background:#0a2631}.meme-tray button{min-width:0;display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid #ffffff18;border-radius:9px;background:#ffffff0b;color:#fff;text-align:left}.meme-tray button:hover{border-color:#e8bc5d;background:#ffffff16}.meme-tray b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem}.meme-pick{color:#ffe073!important}.cheat-hand-btn.active{background:linear-gradient(145deg,#63356b,#8d4a80);border-color:#ffe28c}
@media(max-width:1050px){.game .arena>.felt{width:calc(100% - 30px)}}
@media(max-width:760px){.game .arena>.felt{left:50%;right:auto;width:calc(100% - 12px);transform:translateX(-50%)}.chat-form{grid-template-columns:38px 38px minmax(0,1fr) 38px}.table-reaction{--reaction-x:0px!important}.meme-tray{grid-template-columns:repeat(4,1fr)}.meme-tray button{justify-content:center;padding:7px 3px}.meme-tray b{display:none}}
.chat-message.pending{opacity:.78}.chat-message.failed{border-color:#e7a76c66;background:#603c2e77}.chat-delivery{display:block;margin-top:5px;color:#a9c2c6;font-size:.61rem;font-weight:750}.chat-delivery::before{content:"◌ ";color:#f0c75e}.chat-delivery.failed{color:#ffd2a7}.chat-delivery.failed::before{content:"⚠ ";color:#ffb17b}
@media(max-width:760px){.seat-bottom .hand{padding-right:68px}.cheat-hand-btn{right:5px;bottom:clamp(22px,3vh,34px);min-width:48px;width:48px;height:48px;grid-template-columns:1fr;grid-template-rows:1fr;padding:5px;border-radius:14px}.cheat-hand-btn>span{grid-row:1;width:36px;height:36px}.cheat-hand-btn b,.cheat-hand-btn small{display:none}}

/* 20260913-21 — configurable rooms and collision-safe hands */
body{overflow:auto}.game{overflow:hidden}
.room-rules-picker{grid-column:1/3;min-width:0;margin:0;padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:1px solid #e7bd5652;border-radius:16px;background:linear-gradient(145deg,#ffffff08,#dfaa3110)}.room-rules-picker legend{padding:0 8px;color:#f1c45e;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.room-rules-picker>small{grid-column:1/4;margin:1px 4px 0;color:#8eaaa0;font-size:.65rem}.rule-choice{min-width:0;padding:9px;border:1px solid #ffffff12;border-radius:12px;background:#031b1666}.rule-choice>span{display:flex;align-items:center;gap:7px;margin:0 2px 8px;color:#dce8e2}.rule-choice>span i{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#e9b84a1c;color:#f3c85f;font-style:normal}.rule-choice>span b{font-size:.73rem}.room-rules-picker .rule-choice label{grid-column:auto;align-self:auto;display:inline-block;margin:0 4px 4px 0;color:#aec4bb;font-size:.68rem;font-weight:750;cursor:pointer}.lobby .room-rules-picker input[type="radio"]{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0}.rule-choice label em{display:block;padding:7px 9px;border:1px solid #ffffff15;border-radius:9px;background:#ffffff08;font-style:normal;transition:.15s background,.15s border-color,.15s color}.rule-choice label input:checked+em{border-color:#f0c25b;background:#e9b84a;color:#30250d;box-shadow:0 5px 14px #020f0b66}.rule-choice label:hover em{border-color:#e9c56e80;color:#fff}
.room-rules-badge{max-width:340px;padding:7px 11px;border:1px solid #ffffff18;border-radius:99px;background:#ffffff0b;color:#c8d8d3;font-size:.65rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waiting-rules{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin:-15px 0 22px}.waiting-rules span,.active-rules-summary span{padding:7px 10px;border:1px solid #e6bd5a55;border-radius:99px;background:#e6b74b15;color:#f0cd78;font-size:.7rem;font-weight:850}.active-rules-summary{margin:17px 0;padding:14px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;border:1px solid #d8ad4d42;border-radius:13px;background:#e9b84b12}.active-rules-summary>b{width:100%;margin-bottom:2px;color:#664b13;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.active-rules-summary span{background:#fff7df;color:#664c18}
.deck-zone{z-index:4}.seat-bottom{z-index:8}.seat-bottom .hand{padding-inline:clamp(175px,14vw,225px)}
@media(max-width:1100px){.room-rules-picker{grid-template-columns:1fr}.room-rules-picker>small{grid-column:1}.room-rules-badge{display:none}.lobby .room-rules-picker{grid-column:1}.seat-bottom .hand{padding-inline:clamp(118px,13vw,160px)}}
@media(max-width:700px){.room-rules-picker{padding:11px;gap:7px}.rule-choice{padding:7px}.rule-choice>span{margin-bottom:6px}.room-rules-picker>small{line-height:1.4}.seat-bottom .hand{padding-left:72px;padding-right:68px}}
