@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-dark:#1a1210;--bg-panel:#1e1510;--bg-panel-raised:#251a13;--border-light:#ffdcaa1f;--border-mid:#ffdcaa33;--text-primary:#f0e6d3;--text-secondary:#9c8870;--text-muted:#6b5843;--accent-gold:#d4a853;--accent-gold-glow:#d4a85359;--accent-gold-deep:#b8892e;--crimson:#c0394b;--crimson-dark:#8b1a2e;--crimson-glow:#c0394b59;--crimson-muted:#c0394b26;--felt-base-dark:#1a4a2e;--felt-base-mid:#1e5a36;--felt-base-light:#226040;--table-ring:#0e0a07;--card-white:#fdf9f4;--card-red:#b91c1c;--card-black:#1c1008;--card-selected-glow:#d4a853cc;--trump-outline:#c0394b;--trump-glow:#c0394b80;--team-a:#d4a853;--team-b:#c0394b;--font-heading:"Playfair Display", Georgia, serif;--font-sans:"Outfit", system-ui, -apple-system, sans-serif;font-family:var(--font-sans);background:var(--bg-dark);color:var(--text-primary);box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}#root{box-sizing:border-box;width:100%;height:100%}.glass-panel{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:16px;box-shadow:0 8px 32px #00000080,inset 0 1px #ffdcaa12}.btn-primary{background:linear-gradient(135deg, var(--crimson) 0%, var(--crimson-dark) 100%);color:var(--text-primary);cursor:pointer;font-size:16px;font-weight:600;font-family:var(--font-sans);letter-spacing:.3px;border:none;border-radius:8px;padding:10px 24px;transition:all .2s;box-shadow:0 4px 12px #0000004d}.btn-primary:hover{box-shadow:0 8px 20px var(--crimson-glow);filter:brightness(1.12);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-mid);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-sans);background:0 0;border-radius:8px;padding:8px 18px;transition:all .2s}.btn-secondary:hover{border-color:var(--accent-gold);color:var(--accent-gold);background:#ffdcaa0f}.lobby-container{box-sizing:border-box;background:radial-gradient(ellipse at center, #251a13 0%, var(--bg-dark) 70%);flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex}.lobby-box{text-align:center;width:480px;max-width:90vw;padding:40px}.lobby-title{font-family:var(--font-heading);background:linear-gradient(135deg, var(--accent-gold) 0%, #f0d080 50%, var(--accent-gold) 100%);-webkit-text-fill-color:transparent;letter-spacing:1px;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:36px;font-weight:900}.lobby-subtitle{color:var(--text-secondary);letter-spacing:.5px;margin-bottom:30px;font-size:14px}.input-group{text-align:left;margin-bottom:24px}.input-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.text-input{border:1px solid var(--border-mid);width:100%;color:var(--text-primary);font-size:16px;font-family:var(--font-sans);box-sizing:border-box;background:#1a1210cc;border-radius:8px;padding:12px 16px;transition:border-color .2s}.text-input:focus{border-color:var(--accent-gold);box-shadow:0 0 0 2px var(--accent-gold-glow);outline:none}.seats-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;display:grid}.seat-card{border:1px solid var(--border-light);background:#1a121099;border-radius:12px;flex-direction:column;align-items:center;padding:16px;transition:all .2s;display:flex}.seat-card.occupied{background:#d4a8530d;border-color:#d4a85359}.seat-header{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:700}.seat-name{color:var(--text-primary);margin-bottom:12px;font-size:16px;font-weight:500}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot.online{background-color:#4ade80;box-shadow:0 0 8px #4ade8099}.status-dot.offline{background-color:#ef4444}.game-container{grid-template-columns:1fr 380px;width:100vw;height:100vh;display:grid}.arena-pane{flex:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.card-table{background-color:var(--felt-base-mid);background-image: repeating-linear-gradient(0deg, transparent, transparent 2px, #0000000f 2px, #0000000f 3px),  repeating-linear-gradient(90deg, transparent, transparent 2px, #0000000d 2px, #0000000d 3px),  radial-gradient(ellipse at center, var(--felt-base-light) 0%, var(--felt-base-mid) 50%, var(--felt-base-dark) 100%);border:16px solid var(--table-ring);border-radius:50%;justify-content:center;align-items:center;width:80%;max-width:800px;height:70%;max-height:550px;display:flex;position:relative;transform:perspective(800px)rotateX(10deg);box-shadow:inset 0 24px 48px -12px #000000b3,inset 0 12px 24px -6px #00000080,0 20px 40px #0009}.player-zone{z-index:10;flex-direction:column;align-items:center;display:flex;position:absolute}.player-zone.south{bottom:-40px;left:50%;transform:translate(-50%)}.player-zone.north{top:15px;left:50%;transform:translate(-50%)}.player-zone.west{top:50%;left:15px;transform:translateY(-50%)}.player-zone.east{top:50%;right:15px;transform:translateY(-50%)}.player-tag{border:1px solid var(--border-mid);color:var(--text-primary);background:#1a1210f7;border-radius:20px;align-items:center;margin-top:8px;padding:6px 12px;font-size:13px;font-weight:600;display:flex;box-shadow:0 4px 8px #0006}.player-tag.active-turn{border-color:var(--accent-gold);box-shadow:0 0 14px var(--accent-gold-glow);color:var(--accent-gold)}.playing-card{background-color:var(--card-white);box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #d1bfa0;border-radius:8px;flex-direction:column;justify-content:space-between;width:90px;height:130px;padding:8px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 4px 8px #0000004d,0 0 1px #0003}.playing-card:hover{transform:translateY(-15px)scale(1.05);box-shadow:0 15px 25px #00000080;z-index:100!important}.playing-card.selected{box-shadow:0 0 0 3px var(--card-selected-glow), 0 15px 25px #0009;border-color:var(--accent-gold);transform:translateY(-25px)}.playing-card.red{color:var(--card-red)}.playing-card.black{color:var(--card-black)}.card-corner{flex-direction:column;align-items:center;font-size:15px;font-weight:700;line-height:110%;display:flex}.card-corner.bottom{align-self:flex-end;transform:rotate(180deg)}.card-center{justify-content:center;align-self:center;align-items:center;font-size:32px;display:flex}.suit-symbol{width:14px;height:14px}.suit-symbol.center-large{width:36px;height:36px}.card-back{background:repeating-linear-gradient(45deg,#7c1d2e,#7c1d2e 5px,#5e1222 5px 10px);border:2px solid #f0e6d3b3;border-radius:6px;width:65px;height:95px;box-shadow:0 4px 6px #00000080}.card-special-badge{background:linear-gradient(135deg, var(--felt-base-mid) 0%, var(--felt-base-dark) 100%);color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-10deg);box-shadow:0 2px 4px #00000059}.card-special-badge.joker{background:linear-gradient(135deg, var(--crimson) 0%, var(--crimson-dark) 100%)}.card-special-badge.jick{background:linear-gradient(135deg,#7b4f28 0%,#5a3618 100%)}.playing-card.is-trump{box-shadow:0 4px 8px #0000004d, 0 0 0 2px var(--trump-outline), 0 0 12px var(--trump-glow);border-color:var(--trump-outline)}.playing-card.is-trump.selected{box-shadow:0 0 0 3px var(--card-selected-glow), 0 0 0 5px var(--trump-outline), 0 15px 25px #0009;border-color:var(--accent-gold)}.hand-fan{justify-content:center;align-items:center;height:150px;margin-top:15px;padding:10px;display:flex}.hand-fan-cards{justify-content:center;align-items:center;margin-left:20px;display:flex}.hand-fan-cards>*{margin-left:-30px}.hand-fan-cards>:first-child{margin-left:0}.hand-overview{margin-left:10px;display:flex}.hand-overview>*{margin-left:-48px}.hand-overview>:first-child{margin-left:0}.hand-overview.vertical{flex-direction:column;height:150px}.hand-overview.vertical>*{margin-top:-70px;margin-left:0}.hand-overview.vertical>:first-child{margin-top:0}.trick-arena{justify-content:center;align-items:center;width:300px;height:200px;display:flex;position:absolute}.played-card-slot{transform-style:preserve-3d;transition:all .3s;position:absolute}.played-card-slot.south{animation:.4s cubic-bezier(.16,1,.3,1) both playCardSouth;bottom:10px}.played-card-slot.north{animation:.4s cubic-bezier(.16,1,.3,1) both playCardNorth;top:10px}.played-card-slot.west{animation:.4s cubic-bezier(.16,1,.3,1) both playCardWest;left:20px}.played-card-slot.east{animation:.4s cubic-bezier(.16,1,.3,1) both playCardEast;right:20px}.turn-status-bar{z-index:20;background:var(--bg-panel);border:1px solid var(--border-mid);white-space:nowrap;color:var(--text-secondary);border-radius:999px;align-items:center;gap:10px;padding:6px 18px;font-size:13px;animation:.2s ease-out statusBarFadeIn;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0006}@keyframes statusBarFadeIn{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.turn-status-phase{text-transform:uppercase;letter-spacing:1px;color:var(--accent-gold);background:#d4a8531a;border:1px solid #d4a85340;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.turn-status-msg{color:var(--text-secondary);font-size:13px}.turn-status-msg strong{color:var(--text-primary);font-weight:600}.table-overlay{background:var(--bg-panel);border:1px solid var(--border-mid);z-index:100;text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:310px;padding:24px;display:flex;position:absolute;transform:translateZ(50px);box-shadow:0 0 30px #d4a85333,0 12px 24px #00000080}.overlay-title{font-family:var(--font-heading);color:var(--accent-gold);letter-spacing:.5px;margin-bottom:12px;font-size:18px;font-weight:700}.overlay-status{color:var(--text-secondary);font-size:14px}.bid-buttons{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-top:12px;display:grid}.bid-btn{color:var(--text-primary);border:1px solid var(--border-light);font-weight:700;font-family:var(--font-sans);cursor:pointer;background:#ffdcaa0d;border-radius:6px;padding:10px;transition:all .15s}.bid-btn:hover:not(:disabled){background:var(--accent-gold);color:var(--bg-dark);border-color:var(--accent-gold)}.bid-btn:disabled{opacity:.3;cursor:not-allowed}.bid-btn.pass{background:#c0394b1a;border-color:#c0394b4d;grid-column:span 3}.bid-btn.pass:hover{background:var(--crimson);color:var(--text-primary);border-color:var(--crimson)}.trump-buttons{grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-top:15px;display:grid}.suit-select-btn{cursor:pointer;color:var(--text-primary);font-size:13px;font-weight:600;font-family:var(--font-sans);background:#8b1a2e40;border:1px solid #c0394b66;border-radius:8px;flex-direction:column;align-items:center;padding:12px;transition:all .2s;display:flex}.suit-select-btn:hover{border-color:var(--crimson);color:#fff;box-shadow:0 6px 16px var(--crimson-glow);background:#c0394b66;transform:translateY(-2px)}.suit-select-btn svg{fill:currentColor;width:24px;height:24px;margin-bottom:6px}.suit-select-btn.red-suit{color:#e8826a}.suit-select-btn.red-suit:hover{color:#f08070}.sidebar{border-left:1px solid var(--border-light);background:var(--bg-panel);box-sizing:border-box;flex-direction:column;justify-content:space-between;height:100%;padding:28px 24px 24px;display:flex;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border-light);margin-bottom:24px;padding-bottom:16px}.sidebar-title{font-family:var(--font-heading);color:var(--accent-gold);letter-spacing:.5px;margin:0 0 4px;font-size:22px;font-weight:700}.sidebar-badge{color:var(--text-secondary);border:1px solid var(--border-light);background:#ffdcaa0f;border-radius:12px;padding:4px 10px;font-size:12px}.score-card{background:var(--bg-panel-raised);border:1px solid var(--border-light);text-align:center;border-radius:12px;justify-content:space-around;margin-bottom:16px;padding:16px;display:flex}.score-val{font-family:var(--font-heading);color:var(--text-primary);font-size:28px;font-weight:700}.score-team{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-size:11px;font-weight:700}.metadata-box{margin-bottom:24px;font-size:14px}.metadata-row{border-bottom:1px dotted #ffdcaa12;justify-content:space-between;margin-bottom:8px;padding-bottom:8px;display:flex}.metadata-val{color:var(--accent-gold);font-weight:600}.lobby-list{border:1px solid var(--border-light);background:#00000040;border-radius:10px;margin-bottom:20px;padding:12px}.lobby-user-row{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.lobby-user-row:last-child{margin-bottom:0}.sidebar-footer{border-top:1px solid var(--border-light);flex-direction:column;gap:12px;padding-top:16px;display:flex}.won-tricks-pile{cursor:pointer;justify-content:center;align-items:center;width:60px;height:45px;margin-bottom:8px;transition:transform .2s;display:flex;position:relative}.won-tricks-pile:hover{transform:scale(1.05)}.won-card-back{background:repeating-linear-gradient(45deg,#7c1d2e,#7c1d2e 3px,#5e1222 3px 6px);border:1.5px solid #f0e6d399;border-radius:3px;width:30px;height:42px;transition:transform .2s;position:absolute;box-shadow:0 2px 4px #0006}.won-card-back.card-back-1{transform:rotate(-8deg)translate(-4px)}.won-card-back.card-back-2{transform:rotate(4deg)translate(4px,2px)}.won-tricks-pile:hover .won-card-back.card-back-1{transform:rotate(-18deg)translate(-8px,-2px)}.won-tricks-pile:hover .won-card-back.card-back-2{transform:rotate(12deg)translate(8px,4px)}.won-tricks-count{background:var(--bg-panel-raised);border:1px solid var(--border-mid);color:var(--text-primary);white-space:nowrap;z-index:10;border-radius:8px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;bottom:-8px}.modal-backdrop{z-index:1000;background:#0a0604cc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-panel);border:1px solid var(--border-mid);box-sizing:border-box;border-radius:16px;width:500px;max-width:90vw;max-height:80vh;padding:24px;overflow-y:auto;box-shadow:0 24px 48px #0009,inset 0 1px #ffdcaa12}.modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.modal-title{font-family:var(--font-heading);color:var(--accent-gold);letter-spacing:.5px;margin:0;font-size:20px;font-weight:700}.modal-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1;transition:color .15s}.modal-close-btn:hover{color:var(--text-primary)}.tricks-grid{flex-direction:column;gap:20px;display:flex}.trick-row{background:var(--bg-panel-raised);border:1px solid var(--border-light);border-radius:12px;padding:16px}.trick-row-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;justify-content:space-between;margin-bottom:12px;font-size:11px;font-weight:700;display:flex}.trick-cards-flex{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.modal-backdrop-transparent{z-index:1000;background:#0a060480;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.trick-winner-popup{background:var(--bg-panel);border:2px solid var(--accent-gold);text-align:center;border-radius:16px;width:460px;max-width:90vw;padding:24px;animation:.25s ease-out popupFadeIn;box-shadow:0 0 40px #d4a8534d,0 24px 48px #0009}@keyframes popupFadeIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.trick-winner-title{font-family:var(--font-heading);color:var(--accent-gold);letter-spacing:.5px;margin-top:0;margin-bottom:20px;font-size:22px;font-weight:700}.trick-winner-cards{justify-content:center;gap:10px;margin-bottom:20px;display:flex}.trick-winner-card-item{flex-direction:column;align-items:center;width:75px;display:flex}.trick-winner-card-owner{color:var(--text-secondary);text-align:center;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;width:100%;margin-bottom:6px;font-size:11px;font-weight:600;overflow:hidden}.scoring-recap-content{width:580px;max-width:95vw}.recap-summary-pill{color:var(--text-secondary);background:#d4a85314;border:1px solid #d4a85340;border-radius:20px;align-items:center;margin-bottom:20px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-flex}.recap-section-title{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-light);text-align:left;margin-top:20px;margin-bottom:10px;padding-bottom:4px;font-size:11px;font-weight:700}.recap-table{border-collapse:collapse;text-align:left;width:100%;margin-bottom:20px;font-size:13px}.recap-table th,.recap-table td{border-bottom:1px solid #ffdcaa0d;padding:8px 12px}.recap-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:700}.recap-table td{color:var(--text-primary)}.team-A{color:var(--team-a)!important}.team-B{color:var(--team-b)!important}.recap-round-scores{border:1px solid var(--border-light);background:#0003;border-radius:12px;margin-bottom:20px;padding:16px}.recap-score-row{border-bottom:1px dotted #ffdcaa0f;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;display:flex}.recap-score-row:last-child{border-bottom:none}.team-label{text-transform:uppercase;letter-spacing:.8px;width:70px;font-size:12px;font-weight:700}.recap-penalty-badge{color:#e07080;text-transform:uppercase;letter-spacing:.5px;background:#c0394b26;border:1px solid #c0394b66;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700}.recap-score-flow{color:var(--text-primary);font-size:16px;font-weight:600}.recap-wait-text{color:var(--text-secondary);text-align:center;margin:12px 0;font-size:13px;font-style:italic}.recap-actions{flex-direction:column;gap:10px;margin-top:15px;display:flex}.mobile-header{display:none}@media (width<=768px){body{overflow:hidden}.game-container{flex-direction:column;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.mobile-header{background:var(--bg-panel);border-bottom:1px solid var(--border-light);box-sizing:border-box;z-index:100;justify-content:space-between;align-items:center;width:100%;height:50px;padding:0 16px;display:flex}.mobile-title{font-family:var(--font-heading);color:var(--accent-gold);letter-spacing:.5px;font-size:16px;font-weight:700}.mobile-scoreboard-toggle{padding:6px 12px!important;font-size:12px!important;font-weight:600!important}.arena-pane{box-sizing:border-box;height:calc(100vh - 200px);padding-top:40px}.turn-status-bar{padding:4px 12px;font-size:11px;top:8px}.turn-status-phase{padding:1px 6px;font-size:9px}.card-table{border:8px solid var(--table-ring);border-radius:24px;width:94vw;height:48vh;transform:perspective(600px)rotateX(5deg)}.trick-arena{width:200px;height:140px}.played-card-slot.south{animation:.4s cubic-bezier(.16,1,.3,1) both playCardSouthMobile;bottom:-15px}.played-card-slot.north{animation:.4s cubic-bezier(.16,1,.3,1) both playCardNorthMobile;top:-15px}.played-card-slot.west{animation:.4s cubic-bezier(.16,1,.3,1) both playCardWestMobile;left:-10px}.played-card-slot.east{animation:.4s cubic-bezier(.16,1,.3,1) both playCardEastMobile;right:-10px}.player-zone.north{top:-2px}.player-zone.south{bottom:-45px}.player-zone.west{left:2px}.player-zone.east{right:2px}.player-tag{margin-top:4px;padding:4px 8px;font-size:11px}.hand-overview{transform:scale(.7)}.hand-overview.vertical{height:100px}.table-overlay{border-radius:12px!important;width:230px!important;padding:16px!important}.overlay-title{margin-bottom:8px!important;font-size:15px!important}.bid-buttons{gap:6px!important}.bid-btn{padding:6px!important;font-size:13px!important}.trump-buttons{gap:8px!important}.suit-select-btn{padding:8px!important;font-size:11px!important}.hand-fan{box-sizing:border-box;z-index:50;background:linear-gradient(#0000 0%,#1a1210f7 30%);justify-content:center;align-items:center;width:100%;height:130px;margin-top:0;padding:0 10px;display:flex}.hand-fan-cards{margin-left:0;transform:scale(.8)}.hand-fan-cards>*{margin-left:-42px}.hand-fan.hand-fan-tworow{align-items:flex-end;height:180px}.hand-fan.hand-fan-tworow .hand-fan-cards{transform-origin:bottom;grid-template-rows:auto auto;grid-template-columns:repeat(4,58px);gap:4px;margin-left:0;display:grid;transform:scale(.72)}.hand-fan.hand-fan-tworow .hand-fan-cards>*{margin-left:0!important}.hand-fan.hand-fan-tworow .hand-fan-cards>*>*{transform:none!important}.scoreboard-sidebar-container{z-index:200;width:320px;height:calc(100vh - 50px);transition:right .3s cubic-bezier(.16,1,.3,1);position:fixed;top:50px;right:-320px}.scoreboard-sidebar-container.mobile-open{right:0}.sidebar{background:var(--bg-panel);border-left:none;box-shadow:-5px 0 25px #0009}.sidebar-mobile-backdrop{z-index:150;background:#0a060499;width:calc(100vw - 320px);height:calc(100vh - 50px);position:fixed;top:50px;left:0}.won-tricks-pile{margin-bottom:2px;transform:scale(.7)!important}}.deal-card{animation:.6s cubic-bezier(.18,.89,.32,1.28) both dealCard}@keyframes dealCard{0%{opacity:0;transform:translateY(-200px)rotate(-180deg)scale(.3)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes playCardSouth{0%{opacity:0;transform:translateY(180px)rotate(0)scale(.5)}to{opacity:1;transform:translateY(0)rotate(2deg)scale(.95)}}@keyframes playCardNorth{0%{opacity:0;transform:translateY(-180px)rotate(0)scale(.5)}to{opacity:1;transform:translateY(0)rotate(-1deg)scale(.95)}}@keyframes playCardWest{0%{opacity:0;transform:translate(-180px)rotate(0)scale(.5)}to{opacity:1;transform:translate(0)rotate(-8deg)scale(.95)}}@keyframes playCardEast{0%{opacity:0;transform:translate(180px)rotate(0)scale(.5)}to{opacity:1;transform:translate(0)rotate(6deg)scale(.95)}}@keyframes playCardSouthMobile{0%{opacity:0;transform:translateY(120px)rotate(0)scale(.4)}to{opacity:1;transform:translateY(0)rotate(2deg)scale(.65)}}@keyframes playCardNorthMobile{0%{opacity:0;transform:translateY(-120px)rotate(0)scale(.4)}to{opacity:1;transform:translateY(0)rotate(-1deg)scale(.65)}}@keyframes playCardWestMobile{0%{opacity:0;transform:translate(-120px)rotate(0)scale(.4)}to{opacity:1;transform:translate(0)rotate(-8deg)scale(.65)}}@keyframes playCardEastMobile{0%{opacity:0;transform:translate(120px)rotate(0)scale(.4)}to{opacity:1;transform:translate(0)rotate(6deg)scale(.65)}}.played-card-slot.clearing-to-south{animation:.6s cubic-bezier(.4,0,.2,1) forwards clearToSouth}.played-card-slot.clearing-to-north{animation:.6s cubic-bezier(.4,0,.2,1) forwards clearToNorth}.played-card-slot.clearing-to-west{animation:.6s cubic-bezier(.4,0,.2,1) forwards clearToWest}.played-card-slot.clearing-to-east{animation:.6s cubic-bezier(.4,0,.2,1) forwards clearToEast}@keyframes clearToSouth{to{opacity:0;transform:translateY(220px)scale(.1)rotate(15deg)}}@keyframes clearToNorth{to{opacity:0;transform:translateY(-220px)scale(.1)rotate(-15deg)}}@keyframes clearToWest{to{opacity:0;transform:translate(-220px)scale(.1)rotate(-15deg)}}@keyframes clearToEast{to{opacity:0;transform:translate(220px)scale(.1)rotate(15deg)}}.active-room-row:hover{background:#ffdcaa14!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}
