:root{color-scheme:dark;--felt: #0f3b2d;--felt-deep: #061c16;--ink: #f3f0e7;--muted: #b6c0b5;--gold: #d6b14d;--surface: rgba(12, 34, 28, .9);--surface-border: rgba(214, 177, 77, .28);--button: #ecd37c;--button-ink: #17231d;--card-suit-spades: #15191c;--card-suit-spades-soft: rgba(21, 25, 28, .12);--card-suit-spades-shadow: rgba(21, 25, 28, .24);--card-suit-spades-panel: #eef0ef;--card-suit-clubs: #52606a;--card-suit-clubs-soft: rgba(82, 96, 106, .14);--card-suit-clubs-shadow: rgba(82, 96, 106, .24);--card-suit-clubs-panel: #eef2f4;--card-suit-diamonds: #c46a1d;--card-suit-diamonds-soft: rgba(196, 106, 29, .14);--card-suit-diamonds-shadow: rgba(196, 106, 29, .25);--card-suit-diamonds-panel: #fff0e2;--card-suit-hearts: #a92f25;--card-suit-hearts-soft: rgba(169, 47, 37, .15);--card-suit-hearts-shadow: rgba(169, 47, 37, .25);--card-suit-hearts-panel: #fdecea;--suit-symbol-halo: 0 0 .06rem rgba(255, 244, 202, .62), 0 0 .14rem rgba(255, 244, 202, .36)}*{box-sizing:border-box}:where(body,body *){-webkit-user-select:none;user-select:none}:where(input,textarea,[contenteditable=true],[contenteditable=""]){-webkit-user-select:text;user-select:text}html,body,#root{min-height:100vh}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(214,177,77,.18),transparent 32rem),linear-gradient(140deg,#134637,#08231b 48%,#030d0a)}body:has(.game-route-panel){overflow:hidden}a{color:inherit;text-decoration:none}button{min-height:2.75rem;border:0;border-radius:.5rem;padding:.65rem 1rem;color:var(--button-ink);background:var(--button);font:inherit;font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}input{width:100%;min-height:2.6rem;border:1px solid rgba(214,177,77,.35);border-radius:.5rem;padding:.55rem .7rem;color:var(--ink);background:#0000002e;font:inherit}.app-frame{width:min(90rem,100%);min-height:100vh;margin:0 auto;padding:clamp(1rem,2vw,1.5rem);display:grid;grid-template-rows:1fr}.app-frame:has(.game-route-panel){width:100%;height:100vh;max-height:100vh;overflow:hidden;grid-template-rows:1fr;padding:.5rem}.route-shell{min-height:32rem;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.route-shell-table{align-items:stretch}.route-shell-login{min-height:calc(100vh - 3rem);place-items:center}.route-shell-lobby{align-items:start;min-height:calc(100vh - 3rem)}.route-shell-table:has(.game-route-panel){min-height:0;height:calc(100vh - 1rem)}.route-panel{border:1px solid var(--surface-border);border-radius:.5rem;padding:1.25rem;background:var(--surface)}.login-panel{width:min(28rem,100%);padding:clamp(1.25rem,3vw,2rem)}.login-logo{display:block;width:3.3rem;height:auto;margin-bottom:1.2rem}.route-panel>*+*{margin-top:1rem}.route-panel h1{margin:0;color:#fff4ca;font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1.1}.eyebrow{margin:0 0 .5rem;color:var(--gold);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.button-link{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;border-radius:.5rem;padding:.65rem 1rem;color:var(--button-ink);background:var(--button);font-weight:700}.panel-line,.form-status{margin:0;color:var(--muted)}.lobby-panel{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;gap:1rem}.lobby-header{grid-column:1;display:flex;align-items:end;justify-content:space-between;gap:1rem}.lobby-header h1{margin:0;color:#fff4ca;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,5vw,4rem);line-height:.95}.lobby-actions{grid-column:2;grid-row:1;align-self:end;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.lobby-panel>.form-status,.lobby-panel>.panel-line,.lobby-panel>.lobby-empty,.lobby-panel>.lobby-table-list{grid-column:1 / -1}.lobby-empty{display:grid;min-height:12rem;margin:0;place-items:center;border:1px dashed rgba(214,177,77,.26);border-radius:.5rem;color:var(--muted);background:#0c221c94;font-size:1.1rem;font-weight:800}.table-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.table-summary p,.member-list li{margin:0;border:1px solid rgba(214,177,77,.18);border-radius:.5rem;padding:.7rem;background:#ffffff0f}.table-summary span,.member-list strong,.member-list em{display:block;color:var(--muted);font-size:.82rem}.table-summary strong,.member-list span{display:block;margin-top:.18rem;overflow-wrap:anywhere;color:var(--ink)}.member-list{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.member-list em{margin-top:.25rem;font-style:normal;color:var(--gold)}.table-settings-form,.table-command-list,.start-panel,.create-table-dialog{display:grid;gap:.8rem}.table-settings-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.table-settings-form label{display:grid;gap:.35rem;color:var(--muted);font-weight:700}.table-command-list{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}.start-panel,.create-table-dialog,.profile-dialog{width:min(42rem,100%);max-height:calc(100vh - 2rem);overflow:auto;border:1px solid var(--surface-border);border-radius:.5rem;padding:1rem;background:#0e231dfa;box-shadow:0 1.4rem 4rem #00000073}.create-table-dialog{width:min(30rem,100%)}.waiting-setup-dialog{position:relative;width:min(58rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.waiting-setup-close{position:absolute;top:.75rem;right:.75rem;z-index:1}.waiting-setup-dialog .waiting-setup-header{padding-right:2.75rem}.profile-dialog{width:min(42rem,100%)}.start-dialog-backdrop,.profile-dialog-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#030d0abd;-webkit-backdrop-filter:blur(.18rem);backdrop-filter:blur(.18rem)}.profile-dialog-backdrop{z-index:60}.start-dialog-header,.profile-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:.85rem}.start-dialog-header h2,.profile-dialog-header h2{margin:0;font-size:1.2rem}.start-dialog-header span{flex:0 0 auto;color:var(--muted);font-size:.9rem;font-weight:800}.active-game-surface{min-width:0;min-height:0;container:game-surface / inline-size}.game-route-panel{position:relative;height:100%;min-height:0;overflow:hidden;border:0;border-radius:0;padding:0;background:transparent}.game-status-banner{position:absolute;top:.75rem;left:50%;z-index:20;max-width:min(34rem,calc(100% - 2rem));margin:0;border:1px solid rgba(236,211,124,.35);border-radius:.5rem;padding:.55rem .8rem;color:#fff4ca;background:#1a0a0ae0;box-shadow:0 .8rem 1.6rem #0000003d;font-weight:800;transform:translate(-50%)}.game-table-shell{--game-side-panel-width: clamp(20rem, 23vw, 24rem);position:relative;display:grid;grid-template-columns:minmax(0,1fr) var(--game-side-panel-width);gap:.6rem;height:100%;min-height:0}.finished-game-shell{grid-template-columns:minmax(0,1fr)}.game-table-shell .active-game-surface,.game-table-shell .play-board{height:100%;min-height:0}.play-board{--play-seat-inset: 1rem;--play-seat-gap: .35rem;--play-seat-padding: .65rem;--horizontal-seat-width: min(52rem, calc(100% - (var(--play-seat-inset) * 2)));--side-seat-width: clamp(15rem, 16vw, 17rem);--side-seat-min-height: 28rem;--side-hand-min-height: 22.75rem;--side-suit-min-height: 8.12rem;--side-hidden-group-overlap: -3.12rem;--side-card-overlap: -2.25rem;--play-card-width: 6.35rem;--play-card-index-size: 1.19rem;--play-card-index-suit-size: 1.02rem;--play-card-pip-size: .9rem;--play-card-ace-size: 3.05rem;--table-center-side-inset: 17rem;--table-card-width: var(--play-card-width);--table-card-index-size: var(--play-card-index-size);--table-card-index-suit-size: var(--play-card-index-suit-size);--table-card-pip-size: var(--play-card-pip-size);--table-card-ace-size: var(--play-card-ace-size);--trick-layout-width: min(25rem, 100%);--trick-layout-height: 17rem;--trick-slot-width: var(--table-card-width);--trick-slot-horizontal-offset: 6.25rem;--trick-slot-vertical-offset: 4.5rem;--action-stack-width: var(--bottom-seat-width, min(40rem, calc(100% - (var(--play-seat-inset) * 2))));--action-stack-gap-bottom: 1.8rem;--action-dock-padding: .75rem;--action-dock-gap: .7rem;--bidding-special-button-min-width: 6.75rem;--bidding-special-button-min-height: 2.75rem;--bid-grid-axis-width: 2rem;--bid-grid-cell-min-width: 3.6rem;--bid-grid-gap: .35rem;--bid-axis-min-height: 2.2rem;--bid-cell-min-height: 2.6rem;--bid-cell-padding: .35rem .45rem;--bid-cell-font-size: .9rem;position:relative;min-height:42rem;overflow:hidden;border:1px solid rgba(214,177,77,.18);border-radius:.5rem;background:radial-gradient(circle at 50% 38%,rgba(255,255,255,.08),transparent 30%),radial-gradient(circle at 18% 18%,rgba(214,177,77,.12),transparent 28%),linear-gradient(165deg,#164f3f,#0a3026 48%,#041611);box-shadow:inset 0 1px #ffffff0d,0 1.4rem 3.2rem #00000038}.finished-play-board{display:grid;place-items:center;padding:clamp(.75rem,2vw,1.5rem)}.felt-pattern{position:absolute;inset:0;background:radial-gradient(circle at 74% 34%,rgba(255,255,255,.04),transparent 24%),repeating-linear-gradient(0deg,rgba(255,255,255,.015),rgba(255,255,255,.015) 1px,transparent 1px,transparent 4px);opacity:.42;pointer-events:none}.game-phase-status{position:absolute;top:.85rem;left:.85rem;z-index:8;display:inline-flex;max-width:min(22rem,calc(100% - 1.7rem));min-height:2rem;align-items:center;overflow:hidden;border:1px solid rgba(236,211,124,.34);border-radius:.46rem;padding:.34rem .62rem;color:#fff4ca;background:#061611c7;box-shadow:0 .7rem 1.4rem #0003;font-size:.8rem;font-weight:900;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.play-seat{position:absolute;z-index:3;display:grid;gap:var(--play-seat-gap);width:15.5rem;border:1px solid rgba(214,177,77,.14);border-radius:.5rem;padding:var(--play-seat-padding);background:linear-gradient(180deg,#16372deb,#071813e6);box-shadow:0 1rem 2rem #0000002e}.play-seat.is-current{border-color:#ecd37cbd;background:radial-gradient(circle at 50% 0%,rgba(236,211,124,.14),transparent 68%),linear-gradient(180deg,#1d4032f5,#0a1f17eb);box-shadow:0 0 0 2px #ecd37c1f,0 1rem 2rem #0003}.play-seat-bottom{left:50%;bottom:var(--bottom-seat-bottom, var(--play-seat-inset));width:var(--bottom-seat-width, var(--horizontal-seat-width));min-height:var(--bottom-seat-min-height, auto);transform:translate(-50%)}.play-seat-left{left:var(--side-seat-left, var(--play-seat-inset));top:var(--side-seat-top, 50%);width:var(--side-seat-width-dynamic, 15.5rem);min-height:var(--side-seat-min-height-dynamic, auto);transform:var(--side-seat-transform, translateY(-50%))}.play-seat-right{right:var(--side-seat-right, var(--play-seat-inset));top:var(--side-seat-top, 50%);width:var(--side-seat-width-dynamic, 15.5rem);min-height:var(--side-seat-min-height-dynamic, auto);transform:var(--side-seat-transform, translateY(-50%))}.play-board.is-three-player .play-seat-left,.play-board.is-three-player .play-seat-right{top:var(--three-player-side-seat-top, var(--side-seat-top, 50%))}.play-board.is-three-player .play-table-center{top:var(--upper-play-center-y, 50%)}.play-seat-top{top:var(--top-seat-top, 1.5rem);left:50%;width:var(--top-seat-width, var(--horizontal-seat-width));min-height:var(--top-seat-min-height, auto);transform:translate(-50%)}.play-talon-seat{width:min(14rem,calc(100% - 2rem));justify-items:center}.play-seat-top.play-talon-seat{z-index:4;width:min(14rem,calc(100% - 2rem));min-height:auto;align-content:start;justify-items:center;gap:.3rem;border:0;padding:.48rem .65rem .6rem;background:transparent;box-shadow:none;pointer-events:none}.play-talon-seat .play-hand{min-height:8.8rem}.play-seat-top.play-talon-seat .play-hand{width:100%;min-height:calc(var(--play-card-width) * 1.48);align-content:center;align-items:center;justify-items:center}.play-seat-top.play-talon-seat .talon-fan{width:calc(var(--play-card-width) * 2.15);min-height:calc(var(--play-card-width) * 1.48);margin:-.15rem auto 0;transform:none}.play-player-topline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;min-width:0}.play-avatar{position:relative;display:grid;width:2.7rem;height:2.7rem;flex:0 0 auto;place-items:center;border:2px solid rgba(236,211,124,.22);border-radius:999px;color:#2e2400;background:linear-gradient(180deg,#ecd37c,#c69d31);font-size:.8rem;font-weight:900;isolation:isolate;overflow:visible}.play-avatar.robot{color:#f6f1df;background:linear-gradient(180deg,#255849,#0d2e25)}.play-avatar.has-image{background:#10241d;padding:0}.play-avatar-image{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}.play-avatar-dealer-badge{position:absolute;top:-.18rem;right:-.18rem;z-index:2;display:grid;width:1.05rem;height:1.05rem;place-items:center;border:1px solid rgba(255,244,202,.72);border-radius:999px;color:#17231d;background:linear-gradient(180deg,#fff4ca,#d6b14d 58%,#b88922);box-shadow:0 .18rem .45rem #00000052,inset 0 1px #ffffff80;font-size:.62rem;font-weight:1000;line-height:1;pointer-events:none}.play-player-copy{display:grid;grid-template-rows:auto auto;align-content:center;align-self:stretch;gap:.16rem;min-height:2.7rem;min-width:0}.play-player-name-row{display:flex;min-width:0;align-items:start;gap:.45rem}.play-player-name-row strong{flex:0 1 auto;display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-player-name-row strong{color:#fff4ca;font-size:1.02rem;line-height:1.12}.play-player-badge-row{--auction-badge-font-size: .72rem;--auction-badge-padding-y: .15rem;--auction-badge-padding-x: .44rem;display:flex;min-width:0;align-items:end;gap:.28rem;overflow:hidden}.trick-counter-wrap{position:relative;display:grid;place-items:center}.trick-counter-wrap.has-last-trick-tooltip{pointer-events:auto;z-index:12}.play-seat:has(.trick-counter-wrap.has-last-trick-tooltip:hover),.play-seat:has(.trick-counter-wrap.has-last-trick-tooltip:focus-within){z-index:12}.trick-counter{display:grid;width:2.25rem;height:2.25rem;place-items:center;border:1px solid rgba(236,211,124,.36);border-radius:999px;color:#fff4ca;background:radial-gradient(circle at 35% 25%,rgba(236,211,124,.22),transparent 52%),#0000003d;box-shadow:inset 0 0 0 1px #ffffff09;font-size:.86rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.trick-counter-wrap.has-last-trick-tooltip .trick-counter{cursor:help}.trick-counter-wrap.has-last-trick-tooltip .trick-counter:focus-visible{outline:2px solid rgba(236,211,124,.76);outline-offset:3px}.play-seat-left .play-player-badge-row,.play-seat-right .play-player-badge-row{--auction-badge-font-size: clamp(.5rem, .8vw, .62rem);--auction-badge-padding-y: .12rem;--auction-badge-padding-x: clamp(.18rem, .4vw, .28rem);gap:clamp(.08rem,.24vw,.18rem)}.play-seat-left .player-auction-statement,.play-seat-right .player-auction-statement{flex:0 0 auto}.player-auction-statement{display:inline-flex;flex:0 1 auto;min-width:0;max-width:100%;align-items:center;justify-content:center;gap:.18rem;overflow:hidden;border:1px solid rgba(236,211,124,.34);border-radius:999px;padding:var(--auction-badge-padding-y) var(--auction-badge-padding-x);color:#fff4ca;background:#ecd37c21;box-shadow:inset 0 0 0 1px #ffffff08;font-size:var(--auction-badge-font-size);font-weight:900;line-height:1;white-space:nowrap}.player-auction-statement.is-contract{border-color:#ecd37c85;background:#ecd37c33}.player-auction-statement.is-whist{border-color:#a4beb252;background:#a4beb21f}.player-auction-statement .bid-label{min-width:0;overflow:visible}.player-auction-statement .bid-suit{margin-left:.08rem}.play-hand{display:grid;justify-items:center;gap:.2rem;min-width:0}.mobile-seat-quick-tabs,.mobile-bottom-control-dock,.mobile-seat-info-panel{display:none}.play-hand:has(.hidden-opponent-stack){pointer-events:none}.play-seat:has(.hidden-opponent-stack){pointer-events:none}.play-seat:has(.play-hand:empty){pointer-events:none}.talon-fan{position:relative;width:8.2rem;min-height:8.6rem;margin:.1rem auto 0;transform-origin:center bottom}.talon-fan.is-compact{width:8.2rem;min-height:8.6rem}.talon-fan>.game-card,.talon-fan>.hidden-card{position:absolute;top:50%;left:50%;margin:0;transform-origin:50% 92%}.talon-fan>:first-child{transform:translate(-66%,-50%) rotate(-9deg)}.talon-fan>:nth-child(2){transform:translate(-34%,-50%) rotate(9deg)}.talon-fan .hidden-card,.talon-fan.is-compact .hidden-card{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius)}.talon-fan .public-talon-card{--card-width: var(--play-card-width);width:var(--card-width);pointer-events:none;box-shadow:0 .5rem 1rem #0000003d}.talon-fan.is-compact .public-talon-card{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius)}.visible-hand-wrap{display:flex;justify-content:center;width:100%;overflow:visible}.hidden-hand-wrap{pointer-events:none}.visible-hand{display:flex;align-items:flex-end}.grouped-hand{justify-content:center;align-items:flex-end;flex-wrap:nowrap;min-height:8.5rem;padding:.35rem .25rem .05rem;gap:0;width:max-content;transform-origin:center bottom;transform:scale(var(--hand-scale, 1))}.suit-group{position:relative;z-index:var(--suit-stack-order, 1);display:flex;align-items:flex-end;gap:.25rem;margin-right:var(--hand-group-gap, 1.55rem);isolation:isolate}.play-seat-bottom .suit-group{margin-right:var(--bottom-hand-group-gap, var(--hand-group-gap, 1.55rem))}.suit-group:last-child{margin-right:0}.grouped-hand .suit-group .game-card{margin-left:var(--hand-card-overlap, -1.15rem);position:relative;z-index:var(--card-stack-order, 1)}.play-seat-bottom .grouped-hand .suit-group .game-card{margin-left:var(--bottom-hand-card-overlap, var(--hand-card-overlap, -1.15rem))}.grouped-hand .suit-group .game-card:first-child{margin-left:0}.grouped-hand .suit-group .game-card:not(:last-child) .card-corner-bottom{opacity:0}.grouped-hand.is-compact-revealed{min-height:4.7rem;transform:scale(.52)}@media(min-width:1100px){.play-seat-top,.play-seat-bottom{align-content:start}.play-seat-top{min-height:var(--top-seat-min-height, 11.9rem)}.play-seat-bottom{min-height:var(--bottom-seat-min-height, 11.9rem)}.play-seat-top .grouped-hand,.play-seat-bottom .grouped-hand{width:100%;justify-content:center;padding:.25rem 0 0}.play-seat-top .grouped-hand{min-height:8.5rem}.play-seat-bottom .grouped-hand{min-height:var(--bottom-hand-min-height, 8.5rem)}.play-seat-top:has(.grouped-hand.is-compact-revealed){width:var(--top-seat-width, min(52rem, calc(100% - 2rem) ))}.play-seat-top:has(.hidden-opponent-stack){width:var(--top-seat-width, min(52rem, calc(100% - 2rem) ))}.play-seat-top .visible-hand-wrap:has(.grouped-hand.is-compact-revealed){overflow:visible}.play-seat-top .hidden-hand-wrap:has(.hidden-opponent-stack){overflow:hidden}.play-seat-top .grouped-hand.is-compact-revealed,.play-seat-top .hidden-opponent-stack{width:100%;min-height:8.5rem;justify-content:center;padding:.25rem 0 0;transform:none}.play-seat-top .grouped-hand.is-compact-revealed .suit-group{margin-right:var(--hand-group-gap, 1.1rem)}.play-seat-top .hidden-opponent-stack .hidden-suit-stack{margin-right:var(--top-hidden-group-gap, var(--hidden-hand-group-gap, 1.1rem))}.play-seat-top .grouped-hand.is-compact-revealed .game-card{--card-width: var(--play-card-width);--card-index-size: var(--play-card-index-size);--card-index-suit-size: var(--play-card-index-suit-size);--card-pip-size: var(--play-card-pip-size);--card-ace-size: var(--play-card-ace-size);width:var(--card-width);border-radius:var(--card-radius);margin-left:var(--hand-card-overlap, -1.95rem)}.play-seat-top .hidden-opponent-stack .hidden-card{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius);margin-left:var(--top-hidden-card-overlap, var(--hidden-card-overlap, -1.95rem))}.play-seat-top .hidden-opponent-stack .hidden-suit-stack:not(:first-child) .hidden-card:first-child{margin-left:var(--top-hidden-card-overlap, var(--hidden-card-overlap, -1.95rem))}.play-seat-left,.play-seat-right{grid-template-rows:auto minmax(0,1fr);width:var(--side-seat-width-dynamic, var(--side-seat-width));min-height:var(--side-seat-min-height-dynamic, var(--side-seat-min-height));align-content:stretch}.play-seat-left .play-hand,.play-seat-right .play-hand{align-items:center;height:100%}.play-seat-left .visible-hand-wrap:has(.grouped-hand.is-compact-revealed),.play-seat-right .visible-hand-wrap:has(.grouped-hand.is-compact-revealed){width:100%;min-width:0;align-self:stretch;justify-self:stretch;overflow:visible}.play-seat-left .hidden-hand-wrap:has(.hidden-opponent-stack.is-compact),.play-seat-right .hidden-hand-wrap:has(.hidden-opponent-stack.is-compact){width:100%;min-width:0;align-self:stretch;justify-self:stretch;overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed,.play-seat-right .grouped-hand.is-compact-revealed{width:100%;min-height:var(--side-hand-min-height);flex-direction:column;align-items:center;justify-content:center;gap:0;padding:.2rem 0;transform:none}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-right .hidden-opponent-stack.is-compact{width:100%;min-height:var(--side-hand-min-height);flex-direction:column;align-items:stretch;justify-content:center;gap:0;padding:.2rem 0;transform:none}.play-seat-left .grouped-hand.is-compact-revealed .suit-group,.play-seat-right .grouped-hand.is-compact-revealed .suit-group{width:100%;min-width:0;min-height:var(--side-suit-min-height);margin-top:var(--hand-group-vertical-overlap, 0);margin-right:0;overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed .suit-group{justify-content:flex-start}.play-seat-right .grouped-hand.is-compact-revealed .suit-group{justify-content:flex-end}.play-seat-left .grouped-hand.is-compact-revealed .suit-group:first-child,.play-seat-right .grouped-hand.is-compact-revealed .suit-group:first-child{margin-top:0}.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack{width:100%;min-width:0;min-height:var(--side-suit-min-height);margin-top:var( --side-hidden-group-vertical-overlap, var(--hidden-group-vertical-overlap, var(--side-hidden-group-overlap)) );margin-right:0;overflow:visible}.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack{justify-content:flex-start}.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack{justify-content:flex-end}.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack:first-child,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack:first-child{margin-top:0}.play-seat-left .grouped-hand.is-compact-revealed .game-card,.play-seat-right .grouped-hand.is-compact-revealed .game-card{--card-width: var(--play-card-width);--card-index-size: var(--play-card-index-size);--card-index-suit-size: var(--play-card-index-suit-size);--card-pip-size: var(--play-card-pip-size);--card-ace-size: var(--play-card-ace-size);width:var(--card-width);border-radius:var(--card-radius);margin-left:var(--hand-card-overlap, -1.95rem)}.play-seat-left .hidden-opponent-stack.is-compact .hidden-card,.play-seat-right .hidden-opponent-stack.is-compact .hidden-card{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius);margin-left:var(--side-hidden-card-overlap-x, var(--hidden-card-overlap, -1.95rem))}.play-seat-left .grouped-hand.is-compact-revealed .game-card:first-child,.play-seat-right .grouped-hand.is-compact-revealed .game-card:first-child,.play-seat-left .hidden-opponent-stack.is-compact .hidden-card:first-child,.play-seat-right .hidden-opponent-stack.is-compact .hidden-card:first-child{margin-left:0}}@media(min-width:761px)and (max-width:1099px){.play-seat-top{width:var(--top-seat-width, calc(100% - 2rem) );min-height:var(--top-seat-min-height, 9.7rem)}.play-seat-bottom{width:var(--bottom-seat-width, calc(100% - 2rem) );min-height:var(--bottom-seat-min-height, 9.7rem)}.play-seat-top:has(.grouped-hand.is-compact-revealed),.play-seat-top:has(.hidden-opponent-stack){min-height:inherit}.play-seat-top .grouped-hand.is-compact-revealed,.play-seat-top .hidden-opponent-stack,.play-seat-bottom .grouped-hand{width:max-content;min-height:5.8rem;padding:.25rem 0 0;transform:scale(.64)}.play-seat-top .hidden-opponent-stack{transform:scale(.46)}.play-seat-left,.play-seat-right{width:clamp(13.5rem,28vw,15rem);min-height:20rem}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-right .hidden-opponent-stack.is-compact,.play-seat-left .grouped-hand.is-compact-revealed,.play-seat-right .grouped-hand.is-compact-revealed,.talon-fan.is-compact{transform:scale(.58)}}@media(min-width:761px){.play-seat-left,.play-seat-right{grid-template-rows:auto minmax(0,1fr);width:var(--side-seat-width-dynamic, var(--side-seat-width));min-height:var(--side-seat-min-height-dynamic, var(--side-seat-min-height));height:var(--side-seat-min-height-dynamic, auto);align-content:stretch}.play-seat-left .play-hand,.play-seat-right .play-hand{height:100%;align-content:start;align-items:start;justify-items:stretch}.play-seat-left .play-hand:has(.talon-fan),.play-seat-right .play-hand:has(.talon-fan){align-content:center;align-items:center;grid-template-rows:minmax(0,1fr);justify-items:center;min-height:var(--side-hand-min-height)}.play-seat-left .play-hand:has(.talon-fan) .talon-fan.is-compact,.play-seat-right .play-hand:has(.talon-fan) .talon-fan.is-compact{transform-origin:center center}.play-seat-bottom .grouped-hand{width:100%;justify-content:center;transform-origin:center bottom}.play-seat-left .visible-hand-wrap:has(.grouped-hand.is-compact-revealed),.play-seat-right .visible-hand-wrap:has(.grouped-hand.is-compact-revealed),.play-seat-left .hidden-hand-wrap:has(.hidden-opponent-stack.is-compact),.play-seat-right .hidden-hand-wrap:has(.hidden-opponent-stack.is-compact){width:100%;align-self:start}.play-seat-left .visible-hand-wrap:has(.grouped-hand.is-compact-revealed),.play-seat-right .visible-hand-wrap:has(.grouped-hand.is-compact-revealed){overflow:visible}.play-seat-left .hidden-hand-wrap:has(.hidden-opponent-stack.is-compact),.play-seat-right .hidden-hand-wrap:has(.hidden-opponent-stack.is-compact){overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed,.play-seat-right .grouped-hand.is-compact-revealed,.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-right .hidden-opponent-stack.is-compact{width:100%;min-height:var(--side-hand-min-height);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:.2rem 0 0}.play-seat-left .grouped-hand.is-compact-revealed,.play-seat-left .hidden-opponent-stack.is-compact{transform-origin:top left}.play-seat-right .grouped-hand.is-compact-revealed,.play-seat-right .hidden-opponent-stack.is-compact{transform-origin:top right}.play-seat-left .grouped-hand.is-compact-revealed .suit-group,.play-seat-right .grouped-hand.is-compact-revealed .suit-group{width:100%;min-width:0;min-height:var(--side-suit-min-height);margin-top:var(--hand-group-vertical-overlap, 0);margin-right:0;overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed .suit-group,.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack{justify-content:flex-start}.play-seat-right .grouped-hand.is-compact-revealed .suit-group,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack{justify-content:flex-end}.play-seat-left .grouped-hand.is-compact-revealed .suit-group:first-child,.play-seat-right .grouped-hand.is-compact-revealed .suit-group:first-child,.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack:first-child,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack:first-child{margin-top:0}.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack{width:100%;min-width:0;min-height:var(--side-suit-min-height);margin-top:var( --side-hidden-group-vertical-overlap, var(--hidden-group-vertical-overlap, var(--side-hidden-group-overlap)) );margin-right:0;overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed .game-card,.play-seat-right .grouped-hand.is-compact-revealed .game-card{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius);margin-left:var(--hand-card-overlap, var(--side-card-overlap, -1.95rem));flex:0 0 auto}.play-seat-left .hidden-opponent-stack.is-compact .hidden-card,.play-seat-right .hidden-opponent-stack.is-compact .hidden-card{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius);margin-left:var(--side-hidden-card-overlap-x, var(--side-card-overlap, -1.95rem));flex:0 0 auto}.play-seat-left .grouped-hand.is-compact-revealed .game-card:first-child,.play-seat-right .grouped-hand.is-compact-revealed .game-card:first-child,.play-seat-left .hidden-opponent-stack.is-compact .hidden-card:first-child,.play-seat-right .hidden-opponent-stack.is-compact .hidden-card:first-child{margin-left:0}}.play-table-center{position:absolute;top:50%;left:50%;z-index:12;display:flex;align-items:center;justify-content:center;width:min(var(--trick-layout-width),calc(100% - (var(--table-center-side-inset) * 2)));height:var(--trick-layout-height);transform:translate(-50%,-50%);pointer-events:none}.play-table-center.is-clickable{cursor:pointer;pointer-events:auto}.discard-table-pile{position:absolute;left:50%;top:50%;z-index:3;display:flex;align-items:center;justify-content:center;min-width:8.2rem;min-height:6.2rem;transform:translate(-50%,-50%);pointer-events:none}.discard-table-pile.is-empty{opacity:0}.table-talon-pile{position:absolute;left:50%;top:50%;z-index:4;display:flex;align-items:center;justify-content:center;min-width:8.2rem;min-height:6.2rem;transform:translate(-50%,-50%);pointer-events:none}.table-talon-pile .talon-fan{margin:0}.discard-table-pile .hidden-card,.discard-table-card{margin-left:-1.15rem;filter:drop-shadow(0 .75rem 1rem rgba(0,0,0,.24))}.discard-table-pile .hidden-card:first-child,.discard-table-card:first-child{margin-left:0}.table-card.discard-table-card{width:var(--table-card-width)}.trick-layout{position:relative;width:min(var(--trick-layout-width),100%);height:var(--trick-layout-height)}.trick-slot{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:var(--trick-slot-width);aspect-ratio:39 / 56;transform:translate(-50%,-50%) translate(var(--trick-slot-x, 0),var(--trick-slot-y, 0))}.trick-slot-top{--trick-slot-y: calc(var(--trick-slot-vertical-offset) * -1)}.trick-slot-left{--trick-slot-x: calc(var(--trick-slot-horizontal-offset) * -1)}.trick-slot-right{--trick-slot-x: var(--trick-slot-horizontal-offset)}.trick-slot-bottom{--trick-slot-y: var(--trick-slot-vertical-offset)}.trick-card{transform-origin:center}.trick-layout.is-collecting .trick-card{opacity:0;pointer-events:none}.last-trick-tooltip{position:absolute;z-index:80;width:18.4rem;border:1px solid rgba(236,211,124,.26);border-radius:.5rem;padding:.45rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.07),transparent 46%),linear-gradient(145deg,#174937fa,#041c15fa);box-shadow:0 1rem 2.4rem #0000006b;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease,visibility .12s ease;visibility:hidden}.last-trick-tooltip-top,.last-trick-tooltip-bottom{right:0}.last-trick-tooltip-top{top:calc(100% + .65rem);transform:translateY(-.2rem) scale(.98);transform-origin:top right}.last-trick-tooltip-bottom{bottom:calc(100% + .65rem);transform:translateY(.2rem) scale(.98);transform-origin:bottom right}.last-trick-tooltip-left{top:50%;left:calc(100% + .65rem);transform:translate(-.2rem,-50%) scale(.98);transform-origin:center left}.last-trick-tooltip-right{top:50%;right:calc(100% + .65rem);transform:translate(.2rem,-50%) scale(.98);transform-origin:center right}.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip{opacity:1;visibility:visible}.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip-top,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip-top,.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip-bottom,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip-bottom{transform:translateY(0) scale(1)}.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip-left,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip-left,.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip-right,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip-right{transform:translateY(-50%) scale(1)}.last-trick-tooltip-viewport{position:relative;width:17.5rem;height:11.9rem;overflow:visible}.last-trick-tooltip-layout{position:absolute;top:0;left:0;width:25rem;height:17rem;transform:scale(.7);transform-origin:top left}.last-trick-tooltip-talon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.7rem}.last-trick-tooltip .trick-slot,.last-trick-panel-preview .trick-slot{width:5.8rem}.last-trick-tooltip .trick-slot-top,.last-trick-panel-preview .trick-slot-top{--trick-slot-y: -4.5rem}.last-trick-tooltip .trick-slot-left,.last-trick-panel-preview .trick-slot-left{--trick-slot-x: -6.25rem}.last-trick-tooltip .trick-slot-right,.last-trick-panel-preview .trick-slot-right{--trick-slot-x: 6.25rem}.last-trick-tooltip .trick-slot-bottom,.last-trick-panel-preview .trick-slot-bottom{--trick-slot-y: 4.5rem}.last-trick-tooltip .table-card,.last-trick-panel-preview .table-card{--card-width: 5.8rem;--card-index-size: .99rem;--card-index-suit-size: .86rem;--card-pip-size: .84rem;--card-ace-size: 2.76rem;width:var(--card-width);border-radius:var(--card-radius)}.last-trick-tooltip .card-center-zone,.last-trick-panel-preview .card-center-zone{inset:var(--card-center-inset-y) var(--card-center-inset-x)}.card-flight-layer,.trick-collect-layer{position:absolute;inset:0;z-index:14;overflow:visible;pointer-events:none}.card-flight{position:absolute;top:0;left:0;width:var(--flight-card-width, var(--flight-from-width));height:var(--flight-card-height, var(--flight-from-height));animation-name:card-flight-to-table;animation-timing-function:cubic-bezier(.2,.76,.22,1);animation-fill-mode:forwards;transform:translate3d(var(--flight-from-x),var(--flight-from-y),0) scale(var(--flight-from-scale-x, 1),var(--flight-from-scale-y, 1));transform-origin:top left;will-change:transform}.card-flight .game-card,.card-flight .hidden-card{width:100%;height:100%;box-sizing:border-box}.animation-card{margin:0!important;pointer-events:none;transform:none!important;transition:none!important}@keyframes card-flight-to-table{0%{transform:translate3d(var(--flight-from-x),var(--flight-from-y),0) scale(var(--flight-from-scale-x, 1),var(--flight-from-scale-y, 1))}to{transform:translate3d(var(--flight-to-x),var(--flight-to-y),0) scale(1)}}.trick-collect-layer{z-index:15}.trick-collect-card{position:absolute;top:0;left:0;width:var(--collect-from-width);height:var(--collect-from-height);animation-name:trick-collect-card-path;animation-timing-function:cubic-bezier(.18,.78,.2,1);animation-fill-mode:forwards;filter:drop-shadow(0 1rem 1.4rem rgba(0,0,0,.3));transform:translate3d(var(--collect-from-x),var(--collect-from-y),0) scale(1);transform-origin:top left;will-change:transform,opacity}.trick-collect-card-inner{position:relative;width:100%;height:100%;animation-name:trick-collect-card-flip;animation-timing-function:cubic-bezier(.2,.72,.22,1);animation-fill-mode:forwards;backface-visibility:hidden;transform-style:preserve-3d;will-change:transform}.trick-collect-face{position:absolute;inset:0;backface-visibility:hidden}.trick-collect-front .game-card,.trick-collect-front .hidden-card,.trick-collect-back.hidden-card{width:100%;height:100%}.trick-collect-back{transform:rotateY(180deg)}@keyframes trick-collect-card-path{0%{opacity:1;transform:translate3d(var(--collect-from-x),var(--collect-from-y),0) scale(1)}34%{opacity:1;transform:translate3d(var(--collect-center-x),var(--collect-center-y),0) scale(var(--collect-center-scale-x),var(--collect-center-scale-y))}58%{opacity:1;transform:translate3d(var(--collect-center-x),var(--collect-center-y),0) scale(var(--collect-center-scale-x),var(--collect-center-scale-y))}92%{opacity:1;transform:translate3d(var(--collect-to-x),var(--collect-to-y),0) scale(var(--collect-to-scale-x),var(--collect-to-scale-y))}to{opacity:0;transform:translate3d(var(--collect-to-x),var(--collect-to-y),0) scale(var(--collect-to-scale-x),var(--collect-to-scale-y))}}@keyframes trick-collect-card-flip{0%,36%{transform:rotateY(0)}58%,to{transform:rotateY(180deg)}}@media(prefers-reduced-motion:reduce){.card-flight,.trick-collect-card,.trick-collect-card-inner{animation-duration:1ms!important}}.play-action-stack{position:absolute;left:50%;bottom:var( --action-stack-bottom, calc(var(--bottom-seat-height, 11.9rem) + var(--action-stack-gap-bottom)) );z-index:6;width:var(--action-stack-width);transform:translate(-50%)}.settlement-dock{position:absolute;right:1rem;bottom:1rem;z-index:7;display:inline-flex;width:max-content;max-width:min(20rem,calc(100% - 2rem));align-items:center;gap:.4rem;border:1px solid rgba(236,211,124,.32);border-radius:.5rem;padding:.42rem;background:#05120ee6;box-shadow:0 .9rem 2rem #00000047}.settlement-dialog{align-items:stretch;width:min(20rem,calc(100% - 2rem));flex-direction:column}.settlement-copy{display:grid;gap:.18rem;min-width:0}.settlement-copy span,.settlement-copy small,.settlement-waiting{color:#f9edbdb8;font-size:.68rem;font-weight:800;line-height:1.1;text-transform:uppercase}.settlement-copy strong{overflow:hidden;color:#fff4ca;font-size:.86rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.settlement-target-dock{padding:.34rem}.settlement-response-row{display:flex;gap:.35rem}.settlement-dock button{border:1px solid rgba(236,211,124,.22);border-radius:.42rem;color:#fff4ca;background:#ffffff14;font:inherit;font-size:.78rem;font-weight:900;line-height:1;cursor:pointer}.settlement-dock button:hover:not(:disabled){border-color:#ecd37c8a;background:#ecd37c29}.settlement-dock button:disabled{cursor:not-allowed;opacity:.52}.settlement-main-button{min-height:2rem;padding:.5rem .75rem;white-space:nowrap}.settlement-step-button{display:grid;width:2rem;height:2rem;place-items:center;padding:0}.game-side-panel{display:flex;flex-direction:column;gap:.5rem;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(214,177,77,.16);border-radius:.5rem;padding:.55rem;background:linear-gradient(180deg,#0d231cf5,#030e0bf0);scrollbar-width:thin}.game-side-panel-scroll{display:flex;flex:1 1 auto;flex-direction:column;gap:.5rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}.side-panel-scroll-top-wrap{position:sticky;top:0;z-index:5;display:flex;height:0;justify-content:flex-end;pointer-events:none}.side-panel-scroll-top{display:inline-flex;min-height:1.9rem;align-items:center;gap:.18rem;border:1px solid rgba(236,211,124,.55);border-radius:999px;padding:.28rem .58rem;color:#17231d;background:#ecd37c;box-shadow:0 .35rem 1rem #00000059;font-size:.68rem;font-weight:900;pointer-events:auto;text-transform:uppercase;transform:translateY(.18rem)}.side-panel-scroll-top span{font-size:.78rem;line-height:1}.side-panel-toggle,.side-panel-close{display:none}.side-panel-section{display:grid;gap:.5rem;border:1px solid rgba(214,177,77,.12);border-radius:.5rem;padding:.55rem;background:#ffffff09}.side-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}.side-panel-heading h2{margin:0;color:#fff4ca;font-size:.95rem}.side-panel-heading span{flex:0 0 auto;border:1px solid rgba(236,211,124,.18);border-radius:999px;padding:.22rem .5rem;color:#f9edbd;background:#0000002e;font-size:.72rem;font-weight:900;text-transform:uppercase}.game-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.game-info-grid p{min-width:0;margin:0;border:1px solid rgba(214,177,77,.1);border-radius:.42rem;padding:.4rem;background:#00000024}.game-info-grid span,.game-info-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-info-grid span{color:var(--muted);font-size:.66rem;font-weight:900;text-transform:uppercase}.game-info-grid strong{margin-top:.08rem;color:#fff4ca;font-size:.82rem}.score-board-grid{--score-delta-gap: .14rem;--score-delta-width: 2.05rem;display:grid;gap:.28rem;min-width:0;overflow-x:auto}.score-board-row{display:grid;gap:.38rem;align-items:center;border:1px solid rgba(214,177,77,.1);border-radius:.42rem;padding:.38rem;background:#ffffff0b;font-size:.75rem}.score-board-row-score{grid-template-columns:minmax(4.8rem,.9fr) minmax(3.2rem,.52fr) minmax(4.75rem,.72fr) minmax(4.45rem,.66fr)}.score-board-row-whists{grid-template-columns:minmax(5.6rem,1fr) repeat(var(--score-columns),minmax(2.35rem,.45fr));min-width:calc(5.6rem + var(--score-columns) * 2.72rem)}.score-board-header{color:#f3f0e7ad;background:transparent;font-size:.68rem;font-weight:900;text-transform:uppercase}.score-board-header>span:not(:first-child){text-align:right}.score-board-row-score.score-board-header>span:not(:first-child){display:grid;grid-template-columns:minmax(0,1fr) var(--score-delta-gap) var(--score-delta-width)}.score-column-title{grid-column:1;min-width:0;overflow:visible;text-align:right}.score-board-header .score-whist-column-name{overflow:visible;color:#f3f0e7a8;font-size:.46rem;line-height:1.05;text-overflow:clip;text-transform:none;white-space:normal;overflow-wrap:anywhere}.score-board-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-board-row strong{min-width:0;color:#fff4ca;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.score-value{display:grid;grid-template-columns:minmax(0,1fr) var(--score-delta-gap) var(--score-delta-width);align-items:baseline;justify-content:stretch;width:100%}.score-main{min-width:0;text-align:right}.score-view-toggle{display:flex;flex:0 0 auto;gap:.16rem;border:1px solid rgba(214,177,77,.14);border-radius:.38rem;padding:.14rem;background:#0003}.score-view-toggle button{min-height:1.35rem;border-radius:.28rem;padding:.16rem .34rem;color:#f3f0e7b8;background:transparent;font-size:.58rem;font-weight:900;text-transform:uppercase}.score-view-toggle button[aria-pressed=true]{color:#17231d;background:var(--button)}.score-delta{grid-column:3;display:inline-block;min-width:0;font-size:.56rem;font-weight:900;text-align:right}.score-delta.is-empty{visibility:hidden}.score-delta.is-positive{color:#d8f0ca}.score-delta.is-negative{color:#ffd7c7}.score-delta.is-neutral{color:#f3f0e794}.score-whist-empty{color:#f3f0e761}.auction-table{display:grid;gap:.35rem;min-width:0}.auction-table-head,.auction-table-row{display:grid;grid-template-columns:repeat(var(--auction-columns, 3),minmax(0,1fr));gap:.28rem}.auction-head-cell,.auction-table-cell{min-width:0}.auction-head-cell{overflow:hidden;color:#f3f0e7ad;font-size:.62rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.auction-head-cell.human{color:#f9edbd}.auction-chip{display:flex;min-width:0;min-height:1.95rem;align-items:center;justify-content:center;border:1px solid rgba(236,211,124,.18);border-radius:.45rem;padding:.24rem .28rem;color:#fff4ca;background:#ffffff12;font-size:.74rem;font-weight:900;text-align:center}.auction-chip-contract{border-color:#ecd37c57;background:#ecd37c21}.auction-chip-whist{background:#ffffff0e}.auction-contract-label{display:inline-flex;max-width:100%;min-width:0;align-items:center;gap:.16rem;white-space:nowrap}.auction-chip .bid-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}.auction-contract-label>span:first-child{color:#f3f0e794;font-size:.72rem;line-height:1}.auction-chip-placeholder{color:#f3f0e759;background:#0000001f}.auction-chip-pending{color:#17231d;background:var(--button)}.auction-table-empty{border:1px dashed rgba(214,177,77,.18);border-radius:.45rem;padding:.8rem;color:var(--muted);text-align:center}.side-command-button{width:100%;min-height:2.35rem;color:var(--ink);background:#ffffff1c}.game-command-panel{grid-template-columns:repeat(2,minmax(0,1fr));position:relative;z-index:6;flex:0 0 auto;box-shadow:0 -.45rem 1rem #00000038}.last-trick-panel-preview{display:grid;place-items:center;border:1px solid rgba(214,177,77,.12);border-radius:.42rem;padding:.42rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.035),transparent 46%),linear-gradient(145deg,#030c0afa,#000302fa)}.last-trick-panel-viewport{width:12.25rem;height:8.33rem}.last-trick-panel-content{position:absolute;top:0;left:0;width:17.5rem;height:11.9rem;transform:scale(.7);transform-origin:top left}.deal-history-panel{align-content:start}.deal-history-list{display:grid;gap:.55rem}.deal-history-empty,.deal-history-reference-note{border:1px dashed rgba(214,177,77,.18);border-radius:.42rem;padding:.62rem;color:var(--muted);font-size:.74rem;font-weight:800;text-align:center}.deal-history-reference-note{padding:.38rem;font-size:.68rem}.deal-history-card{display:grid;gap:.55rem;border:1px solid rgba(214,177,77,.12);border-radius:.5rem;padding:.55rem;background:#00000029}.deal-history-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:start}.deal-history-card-header div,.deal-history-card-header>span{min-width:0}.deal-history-card-header strong,.deal-history-card-header span{display:block;overflow:hidden;text-overflow:ellipsis}.deal-history-card-header strong{color:#fff4ca;font-size:.82rem}.deal-history-card-header span{color:var(--muted);font-size:.68rem;font-weight:800}.deal-history-card-header .bid-label{display:inline-flex;overflow:visible;color:inherit;font-size:inherit;font-weight:inherit;text-overflow:clip;vertical-align:baseline}.deal-history-card-header .bid-suit{display:inline;overflow:visible;color:var(--suit-color, currentColor);font-size:inherit;font-weight:inherit;text-overflow:clip}.deal-history-card-header>span{max-width:8rem;text-align:right;white-space:nowrap}.deal-history-table-surface{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(2.3rem,.45fr) minmax(0,1fr);grid-template-areas:"top top top" "left center right" "bottom bottom bottom";gap:.5rem;border:1px solid rgba(236,211,124,.12);border-radius:.48rem;padding:.55rem;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.055),transparent 42%),linear-gradient(145deg,#215d429e,#05241bdb)}.deal-history-table-surface:after{grid-area:center;content:"";min-height:2.6rem;border:1px solid rgba(236,211,124,.08);border-radius:999px;background:#00000024}.deal-history-card-view-toggle{display:flex;justify-self:end;gap:.16rem;border:1px solid rgba(214,177,77,.14);border-radius:.38rem;padding:.14rem;background:#0003}.deal-history-card-view-toggle button{min-height:1.35rem;border-radius:.28rem;padding:.16rem .34rem;color:#f3f0e7b8;background:transparent;font-size:.58rem;font-weight:900;text-transform:uppercase}.deal-history-card-view-toggle button[aria-pressed=true]{color:#17231d;background:var(--button)}.deal-history-pile{z-index:1;display:grid;justify-items:center;gap:.28rem}.deal-history-pile-center{grid-area:center}.deal-history-pile-left{grid-area:left}.deal-history-pile-right{grid-area:right}.deal-history-pile-top{grid-area:top}.deal-history-pile-bottom{grid-area:bottom}.deal-history-pile>span,.deal-history-hand>span,.deal-history-attached-talon>span{max-width:100%;overflow:hidden;color:#f3f0e7b8;font-size:.62rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.deal-history-pile>div,.deal-history-attached-talon>div{display:flex;gap:.22rem;align-items:center;justify-content:center}.deal-history-pile em,.deal-history-empty-hand{color:#f3f0e77a;font-style:normal;font-weight:900}.deal-history-hand{display:grid;min-width:0;gap:.28rem}.deal-history-hand .deal-history-pile{margin-top:.08rem}.deal-history-hand-left{grid-area:left}.deal-history-hand-right{grid-area:right}.deal-history-hand-bottom{grid-area:bottom;justify-items:center}.deal-history-hand-top{grid-area:top;justify-items:center}.deal-history-attached-talon{display:grid;justify-items:center;gap:.22rem}.deal-history-mini-hand{display:flex;flex-wrap:wrap;gap:.22rem .46rem;min-width:0}.deal-history-hand-top .deal-history-mini-hand,.deal-history-hand-bottom .deal-history-mini-hand{justify-content:center}.deal-history-mini-suit{display:flex;min-width:0}.deal-history-mini-suit .deal-history-mini-card{margin-left:-.42rem}.deal-history-mini-suit .deal-history-mini-card:first-child{margin-left:0}.deal-history-mini-card{display:inline-flex;width:1.25rem;min-height:1.75rem;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(28,39,34,.14);border-radius:.2rem;color:var(--suit-color, #17231d);background:linear-gradient(180deg,#fffdf8,#f7f1e5);box-shadow:0 .16rem .34rem #00000029;line-height:1}.deal-history-mini-rank,.deal-history-mini-suit-symbol{display:block;font-weight:900}.deal-history-mini-rank{font-size:.54rem}.deal-history-mini-suit-symbol{margin-top:.08rem;font-size:.62rem}.deal-history-auction{display:grid;gap:.3rem;border:1px solid rgba(214,177,77,.1);border-radius:.42rem;padding:.42rem;background:#ffffff09}.deal-history-auction .auction-table-head,.deal-history-auction .auction-table-row{gap:.25rem}.deal-history-auction .auction-chip{min-height:1.45rem;border-radius:.34rem;padding:.16rem .24rem;font-size:.64rem}.deal-history-tricks{display:grid;gap:.24rem}.deal-history-trick-row{display:grid;grid-template-columns:minmax(0,1fr) 3.1rem 3.1rem;gap:.28rem;align-items:center;border:1px solid rgba(214,177,77,.09);border-radius:.38rem;padding:.32rem .38rem;background:#ffffff0a;font-size:.7rem}.deal-history-trick-header{color:#f3f0e79e;background:transparent;font-size:.62rem;font-weight:900;text-transform:uppercase}.deal-history-trick-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-history-trick-row strong{color:#fff4ca;font-variant-numeric:tabular-nums;text-align:right}.deal-history-trick-row.is-mismatch{border-color:#f28e4880;background:#933e2547}.deal-history-trick-row.is-mismatch strong:last-child{color:#ffd08a}.bid-suit{margin-left:.04em;color:var(--suit-color, currentColor)}.bid-axis .bid-suit.suit-s,.bid-axis .bid-suit.suit-c,.bid-axis .bid-suit.suit-d,.bid-axis .bid-suit.suit-h,.auction-chip .bid-suit.suit-s,.auction-chip .bid-suit.suit-c,.auction-chip .bid-suit.suit-d,.auction-chip .bid-suit.suit-h,.player-auction-statement .bid-suit.suit-s,.player-auction-statement .bid-suit.suit-c,.player-auction-statement .bid-suit.suit-d,.player-auction-statement .bid-suit.suit-h,.game-phase-status .bid-suit.suit-s,.game-phase-status .bid-suit.suit-c,.game-phase-status .bid-suit.suit-d,.game-phase-status .bid-suit.suit-h,.deal-history-card-header .bid-suit.suit-s,.deal-history-card-header .bid-suit.suit-c,.deal-history-card-header .bid-suit.suit-d,.deal-history-card-header .bid-suit.suit-h{text-shadow:var(--suit-symbol-halo)}.bid-label{display:inline-flex;align-items:baseline;min-width:0;white-space:nowrap}.action-dock{border:1px solid rgba(214,177,77,.14);border-radius:.5rem;padding:var(--action-dock-padding);background:#00000024}.action-dock{display:grid;gap:var(--action-dock-gap)}.action-dock h2{margin:0;color:#fff4ca;font-size:1.1rem}.game-card,.hidden-card{--card-width: var(--play-card-width, 6.35rem);--card-radius: .085em;display:inline-flex;align-items:center;justify-content:center;width:var(--card-width);aspect-ratio:39 / 56;min-height:0;padding:0;border-radius:var(--card-radius);font-size:var(--card-width);line-height:1}.game-card{--card-center-inset-x: .066em;--card-center-inset-y: .123em;--card-corner-gap: .003em;--card-corner-min-width: .126em;--card-corner-offset: .028em;--card-corner-shadow-y: .006em;--card-index-size: var(--play-card-index-size);--card-index-suit-size: var(--play-card-index-suit-size);--card-pip-size: var(--play-card-pip-size);--card-ace-size: var(--play-card-ace-size);--card-inner-border: .019em;--card-inner-radius: .072em;--card-court-padding: .006em;position:relative;overflow:hidden;border:1px solid rgba(28,39,34,.16);color:#17231d;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.9),transparent 38%),linear-gradient(180deg,#fffdf8,#f7f1e5);box-shadow:0 .65rem 1.2rem #0000002e;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.game-card:disabled{opacity:1}.game-card.clickable-card{cursor:pointer}.game-card.clickable-card:hover,.game-card.clickable-card:focus-visible{transform:translateY(-.75rem);border-color:#ecd37c94;box-shadow:0 1rem 1.8rem #00000042}.game-card.selected-card{transform:translateY(-.95rem);border-color:#ecd37ceb;box-shadow:0 1rem 1.8rem #00000042,0 0 0 .22rem #d6b14d5c}.game-card.is-card-flying-source,.game-card.is-card-flight-target-hidden{opacity:0}.table-card{--card-width: var(--table-card-width);--card-index-size: var(--table-card-index-size);--card-index-suit-size: var(--table-card-index-suit-size);--card-pip-size: var(--table-card-pip-size);--card-ace-size: var(--table-card-ace-size);width:var(--table-card-width);pointer-events:none}.card-face{position:relative;display:block;width:100%;height:100%}.suit-s{--suit-color: var(--card-suit-spades);--suit-soft: var(--card-suit-spades-soft);--suit-shadow: var(--card-suit-spades-shadow);--suit-panel-bg: var(--card-suit-spades-panel)}.suit-c{--suit-color: var(--card-suit-clubs);--suit-soft: var(--card-suit-clubs-soft);--suit-shadow: var(--card-suit-clubs-shadow);--suit-panel-bg: var(--card-suit-clubs-panel)}.suit-d{--suit-color: var(--card-suit-diamonds);--suit-soft: var(--card-suit-diamonds-soft);--suit-shadow: var(--card-suit-diamonds-shadow);--suit-panel-bg: var(--card-suit-diamonds-panel)}.suit-h{--suit-color: var(--card-suit-hearts);--suit-soft: var(--card-suit-hearts-soft);--suit-shadow: var(--card-suit-hearts-shadow);--suit-panel-bg: var(--card-suit-hearts-panel)}.card-corner{position:absolute;z-index:2;display:grid;justify-items:center;gap:var(--card-corner-gap);min-width:var(--card-corner-min-width);color:var(--suit-color);font-family:Georgia,Times New Roman,serif;font-weight:900;line-height:.86;text-shadow:0 var(--card-corner-shadow-y) 0 rgba(255,255,255,.65)}.card-corner-top{top:var(--card-corner-offset);left:var(--card-corner-offset)}.card-corner-bottom{right:var(--card-corner-offset);bottom:var(--card-corner-offset);transform:rotate(180deg)}.card-corner-rank{font-size:var(--card-index-size);letter-spacing:0}.card-corner-suit{margin-top:-.04em;font-size:calc(var(--card-index-suit-size) * 1.5);line-height:.72}.card-center-zone{position:absolute;inset:var(--card-center-inset-y) var(--card-center-inset-x);display:flex;align-items:center;justify-content:center}.card-inner-art{position:relative;display:block;width:68%;height:78%;border:var(--card-inner-border, .12rem) solid var(--suit-color);border-radius:var(--card-inner-radius, .46rem);background:linear-gradient(180deg,#ffffff75,#ffffff14),var(--suit-panel-bg);color:var(--suit-color);box-shadow:inset 0 0 0 1px #ffffff80}.pip-card-art{overflow:hidden}.card-pip{position:absolute;top:var(--pip-y);left:var(--pip-x);display:grid;width:1em;height:1em;place-items:center;color:var(--suit-color);font-family:Georgia,Times New Roman,serif;font-size:var(--card-pip-size);font-weight:900;line-height:1;transform:translate(-50%,-50%);filter:drop-shadow(0 .05rem 0 rgba(255,255,255,.65))}.pip-card-art.is-ace .card-pip{font-size:var(--card-ace-size)}.card-pip.is-flipped{transform:translate(-50%,-50%) rotate(180deg)}.court-card-art{display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--card-court-padding)}.court-card-art .court-portrait{position:absolute;inset:.04rem;width:calc(100% - .08rem);height:calc(100% - .08rem)}.court-card-image{position:absolute;inset:.04rem;display:block;width:calc(100% - .08rem);height:calc(100% - .08rem);object-fit:contain;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none}.court-card-image.is-loaded{opacity:1}.court-portrait{display:block;width:100%;height:100%;overflow:visible}.court-frame{fill:var(--suit-panel-bg);stroke:var(--suit-color);stroke-width:3}.court-split{stroke:var(--suit-color);stroke-linecap:round;stroke-width:2.2}.court-backdrop{fill:var(--suit-soft)}.court-robe{fill:var(--suit-color);opacity:.9}.court-face{fill:#f4d7b3;stroke:#17231d59;stroke-width:1.2}.court-hair{fill:#25313a}.court-collar{fill:#f6efe2;stroke:var(--suit-shadow);stroke-width:1.4}.court-gold{fill:#dfb94d;stroke:#8b691f;stroke-width:1.2}.court-line{fill:none;stroke:#17231d;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.8}.court-suit,.court-rank-mark{fill:var(--suit-color);font-family:Georgia,Times New Roman,serif;font-weight:900;text-anchor:middle}.court-suit{font-size:15px}.court-rank-mark{font-size:18px}.court-suit-right{transform:rotate(180deg);transform-box:fill-box;transform-origin:center}.card-face.rank-j .court-gold{fill:#d78f3d}.card-face.rank-q .court-robe{opacity:.82}.card-face.rank-k .court-robe{filter:drop-shadow(0 .16rem .12rem var(--suit-shadow))}.hidden-opponent-stack{display:flex;align-items:flex-end;justify-content:center;min-height:8.6rem;padding:.75rem .25rem .15rem;width:max-content;pointer-events:none;transform-origin:center bottom}.hidden-opponent-stack.is-compact{min-height:4.7rem;transform:scale(.52)}.hidden-suit-stack{position:relative;z-index:var(--hidden-suit-stack-order, 1);display:flex;align-items:flex-end;margin-right:var(--hidden-hand-group-gap, 1.55rem);isolation:isolate}.hidden-suit-stack:last-child{margin-right:0}.hidden-opponent-stack .hidden-card{--card-width: var(--play-card-width);width:var(--card-width);margin-left:var(--hidden-card-overlap, -1.15rem);box-shadow:0 .45rem .9rem #0000002e}.hidden-opponent-stack .hidden-card.is-compact{--card-width: var(--play-card-width);width:var(--card-width);border-radius:var(--card-radius)}.hidden-suit-stack .hidden-card:first-child{margin-left:0}.hidden-card{--card-width: 2.75rem;width:var(--card-width);border:1px solid rgba(236,211,124,.34);background-color:#1b3627;background-image:var(--card-back-image);background-position:center;background-repeat:no-repeat;background-size:cover}.hidden-card.is-compact{--card-width: 2rem;width:var(--card-width);border-radius:var(--card-radius)}.action-buttons{display:flex;gap:.45rem;flex-wrap:wrap;align-items:stretch}.action-button{display:grid;min-width:8.5rem;min-height:3.6rem;align-content:center;gap:.16rem;text-align:left}.action-button small{color:#17231dc2;font-size:.75rem}.action-button.is-selected{box-shadow:inset 0 0 0 2px #fff4caa3,0 0 0 .16rem #d6b14d3d}.bidding-dock{gap:.55rem;background:#04100db8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bidding-special-row{display:flex;gap:.45rem;flex-wrap:wrap}.bidding-special-row .action-button{min-width:var(--bidding-special-button-min-width);min-height:var(--bidding-special-button-min-height);place-items:center;text-align:center}.bidding-special-row .secondary{color:var(--ink);background:#ffffff1f}.bidding-special-row .accent{color:#17231d;background:#e4c65d}.bid-grid-shell{display:grid;gap:.35rem}.bid-grid-header,.bid-grid-row{display:grid;grid-template-columns:var(--bid-grid-axis-width) repeat(5,minmax(var(--bid-grid-cell-min-width),1fr));gap:var(--bid-grid-gap)}.bid-axis,.bid-row-label{display:grid;min-height:var(--bid-axis-min-height);place-items:center;color:#f3f0e7bd;font-size:.78rem;font-weight:900}.bid-row-label{color:#f9edbd}.bid-cell{min-height:var(--bid-cell-min-height);border:1px solid rgba(236,211,124,.2);padding:var(--bid-cell-padding);color:#17231d;background:var(--button);font-size:var(--bid-cell-font-size);font-weight:900}.bid-cell:hover:not(:disabled),.bid-cell:focus-visible:not(:disabled){transform:translateY(-1px)}.bid-cell.is-selected{border-color:#fff4cad6;box-shadow:inset 0 0 0 2px #fff4ca8a,0 0 0 .16rem #d6b14d3d}.bid-cell.disabled{color:#f3f0e766;background:#ffffff14}@container game-surface (max-width: 82rem){.play-board{--play-seat-inset: .85rem;--play-seat-gap: .3rem;--play-seat-padding: .56rem;--horizontal-seat-width: min(46rem, calc(100% - (var(--play-seat-inset) * 2)));--side-seat-width: clamp(12.8rem, 18cqw, 14.8rem);--side-seat-min-height: 24rem;--side-hand-min-height: 18.6rem;--side-suit-min-height: 6.65rem;--side-hidden-group-overlap: -2.75rem;--side-card-overlap: -2.35rem;--play-card-width: 5.9rem;--play-card-index-size: 1.02rem;--play-card-index-suit-size: .88rem;--play-card-pip-size: .84rem;--play-card-ace-size: 2.83rem;--table-center-side-inset: 14.9rem;--trick-layout-width: min(21.8rem, 100%);--trick-layout-height: 14.85rem;--trick-slot-horizontal-offset: 5.35rem;--trick-slot-vertical-offset: 3.85rem;--action-stack-width: var(--bottom-seat-width, min(37rem, calc(100% - (var(--play-seat-inset) * 2))));--action-stack-gap-bottom: 1.1rem;--action-dock-padding: .58rem;--action-dock-gap: .48rem;--bidding-special-button-min-width: 5.8rem;--bidding-special-button-min-height: 2.35rem;--bid-grid-axis-width: 1.55rem;--bid-grid-cell-min-width: 3rem;--bid-grid-gap: .25rem;--bid-axis-min-height: 1.65rem;--bid-cell-min-height: 2.05rem;--bid-cell-padding: .22rem .28rem;--bid-cell-font-size: .78rem}.play-seat-top{min-height:var(--top-seat-min-height, 10rem)}.play-seat-bottom{min-height:var(--bottom-seat-min-height, 10rem)}.play-seat-top .grouped-hand,.play-seat-bottom .grouped-hand,.play-seat-top .grouped-hand.is-compact-revealed{min-height:7rem;transform:scale(.8)}.play-seat-top .hidden-opponent-stack,.play-seat-top .hidden-opponent-stack.is-compact{min-height:7rem;transform:scale(.76)}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-left .grouped-hand.is-compact-revealed{transform:scale(.72);transform-origin:top left}.play-seat-right .hidden-opponent-stack.is-compact,.play-seat-right .grouped-hand.is-compact-revealed{transform:scale(.72);transform-origin:top right}.talon-fan.is-compact{transform:scale(.76)}.play-avatar{width:2.35rem;height:2.35rem;font-size:.74rem}.play-player-copy{min-height:2.35rem}.play-player-name-row strong{font-size:.92rem}.trick-counter{width:2rem;height:2rem;font-size:.78rem}.action-button{min-width:7rem;min-height:3rem;font-size:.9rem}.bidding-special-row{gap:.3rem}}@container game-surface (max-width: 62rem){.play-board{--play-seat-inset: .75rem;--play-seat-gap: .28rem;--play-seat-padding: .52rem;--horizontal-seat-width: min(40rem, calc(100% - (var(--play-seat-inset) * 2)));--side-seat-width: clamp(11.5rem, 18cqw, 13.2rem);--side-seat-min-height: 20.5rem;--side-hand-min-height: 15.6rem;--side-suit-min-height: 5.65rem;--side-hidden-group-overlap: -2.35rem;--side-card-overlap: -2.75rem;--play-card-width: 4.55rem;--play-card-index-size: .78rem;--play-card-index-suit-size: .68rem;--play-card-pip-size: .68rem;--play-card-ace-size: 2.14rem;--table-center-side-inset: 12.9rem;--trick-layout-width: min(18.5rem, 100%);--trick-layout-height: 12.6rem;--trick-slot-horizontal-offset: 4.45rem;--trick-slot-vertical-offset: 3.25rem;--action-stack-width: var(--bottom-seat-width, min(31rem, calc(100% - (var(--play-seat-inset) * 2))));--action-stack-gap-bottom: .85rem;--action-dock-padding: .46rem;--action-dock-gap: .38rem;--bidding-special-button-min-width: 0;--bidding-special-button-min-height: 2.05rem;--bid-grid-axis-width: 1.3rem;--bid-grid-cell-min-width: 2.5rem;--bid-grid-gap: .2rem;--bid-axis-min-height: 1.45rem;--bid-cell-min-height: 1.8rem;--bid-cell-padding: .16rem .16rem;--bid-cell-font-size: .7rem}.play-seat-top{min-height:var(--top-seat-min-height, 8.8rem)}.play-seat-bottom{min-height:var(--bottom-seat-min-height, 8.8rem)}.play-seat-top .grouped-hand,.play-seat-bottom .grouped-hand,.play-seat-top .grouped-hand.is-compact-revealed{min-height:6.1rem;transform:scale(.66)}.play-seat-top .hidden-opponent-stack,.play-seat-top .hidden-opponent-stack.is-compact{min-height:6.1rem;transform:scale(.6)}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-left .grouped-hand.is-compact-revealed{transform:scale(.56);transform-origin:top left}.play-seat-right .hidden-opponent-stack.is-compact,.play-seat-right .grouped-hand.is-compact-revealed{transform:scale(.56);transform-origin:top right}.talon-fan.is-compact{transform:scale(.6)}.play-avatar{width:2.35rem;height:2.35rem;font-size:.74rem}.play-player-copy{min-height:2.35rem}.play-player-name-row strong{font-size:.92rem}.trick-counter{width:2rem;height:2rem;font-size:.78rem}.action-button{min-width:7rem;min-height:3rem;font-size:.9rem}.bidding-special-row{gap:.3rem}}@container game-surface (max-width: 50rem){.play-board{--play-seat-inset: .65rem;--play-seat-gap: .24rem;--play-seat-padding: .45rem;--horizontal-seat-width: min(34rem, calc(100% - (var(--play-seat-inset) * 2)));--side-seat-width: clamp(9.8rem, 19cqw, 11.4rem);--side-seat-min-height: 17.2rem;--side-hand-min-height: 12.8rem;--side-suit-min-height: 4.8rem;--side-hidden-group-overlap: -1.85rem;--side-card-overlap: -3.55rem;--play-card-width: 3.9rem;--play-card-index-size: .68rem;--play-card-index-suit-size: .58rem;--play-card-pip-size: .6rem;--play-card-ace-size: 1.85rem;--table-center-side-inset: 10.8rem;--trick-layout-width: min(15.5rem, 100%);--trick-layout-height: 10.7rem;--trick-slot-horizontal-offset: 3.65rem;--trick-slot-vertical-offset: 2.75rem;--action-stack-width: var(--bottom-seat-width, min(26rem, calc(100% - (var(--play-seat-inset) * 2))));--action-stack-gap-bottom: .55rem;--action-dock-padding: .38rem;--action-dock-gap: .3rem;--bidding-special-button-min-width: 0;--bidding-special-button-min-height: 2.05rem;--bid-grid-axis-width: 1.3rem;--bid-grid-cell-min-width: 2.35rem;--bid-grid-gap: .2rem;--bid-axis-min-height: 1.45rem;--bid-cell-min-height: 1.78rem;--bid-cell-padding: .16rem .16rem;--bid-cell-font-size: .7rem}.play-seat-top{min-height:var(--top-seat-min-height, 7.6rem)}.play-seat-bottom{min-height:var(--bottom-seat-min-height, 7.6rem)}.play-seat-top .grouped-hand,.play-seat-bottom .grouped-hand,.play-seat-top .grouped-hand.is-compact-revealed{min-height:5.25rem;transform:scale(.54)}.play-seat-top .hidden-opponent-stack,.play-seat-top .hidden-opponent-stack.is-compact{min-height:5.25rem;transform:scale(.5)}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-left .grouped-hand.is-compact-revealed{transform:scale(.44);transform-origin:top left}.play-seat-right .hidden-opponent-stack.is-compact,.play-seat-right .grouped-hand.is-compact-revealed{transform:scale(.44);transform-origin:top right}.talon-fan.is-compact{transform:scale(.5)}.play-avatar{width:2.1rem;height:2.1rem;font-size:.68rem}.play-player-copy{min-height:2.1rem}.play-player-name-row strong{font-size:.82rem}.trick-counter{width:1.8rem;height:1.8rem;font-size:.72rem}.action-button{min-width:0;min-height:2.45rem;padding:.45rem .55rem;font-size:.82rem}.bidding-special-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.24rem}}@media(min-width:1300px)and (max-height:860px){.play-board{--play-seat-padding: .52rem;--side-seat-min-height: 23rem;--side-hand-min-height: 18rem;--side-suit-min-height: 6.45rem;--side-hidden-group-overlap: -2.5rem;--side-card-overlap: -2.1rem;--play-card-width: 5.05rem;--play-card-index-size: .88rem;--play-card-index-suit-size: .76rem;--play-card-pip-size: .74rem;--play-card-ace-size: 2.4rem;--trick-layout-width: min(20.8rem, 100%);--trick-layout-height: 14.15rem;--trick-slot-horizontal-offset: 5.05rem;--trick-slot-vertical-offset: 3.65rem;--action-stack-gap-bottom: 1rem;--action-dock-padding: .56rem;--action-dock-gap: .46rem;--bidding-special-button-min-height: 2.25rem;--bid-axis-min-height: 1.55rem;--bid-cell-min-height: 1.95rem;--bid-cell-font-size: .76rem}.play-seat-top{min-height:var(--top-seat-min-height, 9.6rem)}.play-seat-bottom{min-height:var(--bottom-seat-min-height, 9.6rem)}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-left .grouped-hand.is-compact-revealed{transform:scale(.78);transform-origin:top left}.play-seat-right .hidden-opponent-stack.is-compact,.play-seat-right .grouped-hand.is-compact-revealed{transform:scale(.78);transform-origin:top right}.talon-fan.is-compact{transform:scale(.74)}}.play-seat-bottom .grouped-hand{min-height:var(--bottom-hand-min-height, 8.5rem);transform:translate(var(--bottom-hand-offset-x, 0px)) scale(var(--bottom-hand-scale, 1));transform-origin:center bottom}.play-seat-top .grouped-hand:not(.is-compact-revealed){transform:none}@media(min-width:761px){.play-seat-top .grouped-hand.is-compact-revealed,.play-seat-top .hidden-opponent-stack,.play-seat-top .hidden-opponent-stack.is-compact,.play-seat-left .grouped-hand.is-compact-revealed,.play-seat-right .grouped-hand.is-compact-revealed,.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-right .hidden-opponent-stack.is-compact,.play-seat-left .talon-fan.is-compact,.play-seat-right .talon-fan.is-compact{transform:none}}.protocol-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.protocol-panel{position:relative;z-index:5;display:grid;gap:.75rem;width:min(58rem,100%);max-height:min(86vh,42rem);overflow:hidden;border:1px solid rgba(236,211,124,.34);border-radius:.5rem;padding:clamp(.8rem,1.8vw,1.15rem);background:linear-gradient(180deg,#0d231cfa,#04120efa);box-shadow:0 1.5rem 4rem #0000006b}.protocol-heading h2{margin:0;color:#fff4ca;font-size:clamp(1.2rem,2vw,1.55rem)}.protocol-summary p{margin:0;border:1px solid rgba(214,177,77,.12);border-radius:.45rem;padding:.58rem .65rem;background:#ffffff0b}.protocol-summary span{display:block;color:var(--muted);font-size:.74rem;font-weight:900;text-transform:uppercase}.protocol-summary strong{display:block;margin-top:.1rem;color:var(--ink);font-size:1rem}.protocol-table{display:grid;gap:.3rem;min-height:0;overflow:auto;scrollbar-width:thin}.protocol-table-row{display:grid;grid-template-columns:minmax(9rem,1.4fr) repeat(4,minmax(4.5rem,.7fr)) minmax(10rem,1.2fr);gap:.45rem;align-items:center;min-width:46rem;border:1px solid rgba(214,177,77,.12);border-radius:.42rem;padding:.52rem .6rem;background:#ffffff0d}.protocol-table-header{color:var(--muted);background:#0000002e;font-size:.72rem;font-weight:900;text-transform:uppercase}.protocol-label-narrow{display:none}.protocol-table-row span,.protocol-table-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.protocol-table-row strong{color:var(--ink)}.protocol-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.start-panel-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.start-panel-actions button:first-child,.stepper-control button{color:var(--ink);background:#ffffff1a}.candidate-grid,.robot-profile-list,.selection-list{display:grid;gap:.55rem}.candidate-grid label,.robot-profile-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.6rem;border:1px solid rgba(214,177,77,.14);border-radius:.5rem;padding:.65rem;background:#0000001f}.candidate-grid label:has(input:checked){border-color:#ecd37c6b;background:#ecd37c14}.candidate-grid input{width:1.1rem;min-height:1.1rem}.candidate-grid label>span{min-width:0}.robot-profile-row{grid-template-columns:minmax(0,1fr) auto}.candidate-grid strong,.candidate-grid small,.robot-profile-row strong,.robot-profile-row span{display:block;overflow-wrap:anywhere}.candidate-grid small,.robot-profile-row span{color:var(--muted);font-size:.84rem}.stepper-control{display:grid;grid-template-columns:2.4rem 2rem 2.4rem;align-items:center;gap:.35rem;text-align:center}.stepper-control button{min-height:2.35rem;padding:.35rem}.waiting-table-panel{width:min(58rem,100%);justify-self:center}.waiting-setup{display:grid;gap:1rem}.waiting-setup-header,.waiting-section-heading,.waiting-setup-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.waiting-setup-header h1{margin:0;color:#fff4ca;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.6rem);line-height:.95}.waiting-setup-header>span,.waiting-section-heading>span{border:1px solid rgba(236,211,124,.28);border-radius:999px;padding:.28rem .58rem;color:#fff4ca;background:#0000002e;font-size:.78rem;font-weight:900}.waiting-target-field{display:grid;gap:.35rem}.waiting-target-field>span,.waiting-target-field small{color:var(--muted);font-size:.82rem;font-weight:800}.waiting-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.waiting-setup-section{display:grid;align-content:start;gap:.65rem;min-width:0}.waiting-section-heading h2{margin:0;color:#fff4ca;font-size:1.1rem;line-height:1.1}.selection-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.65rem;min-width:0;border:1px solid rgba(214,177,77,.14);border-radius:.5rem;padding:.65rem;background:#0000001f}.selection-row:has(input:checked){border-color:#ecd37c6b;background:#ecd37c14}.selection-row.is-selected{border-color:#ecd37c6b;background:#ecd37c14}.robot-selection-row{grid-template-columns:auto minmax(0,1fr) auto}.selection-row input{width:1.1rem;min-height:1.1rem}.selection-avatar{display:grid;width:2.35rem;height:2.35rem;place-items:center;border:1px solid rgba(236,211,124,.22);border-radius:999px;color:#fff4ca;background:linear-gradient(180deg,#255849,#0d2e25);font-size:.72rem;font-weight:900}.human-selection-avatar{color:#2e2400;background:linear-gradient(180deg,#ecd37c,#c69d31)}.robot-avatar-vector{background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 45%),linear-gradient(180deg,#315a74,#172c39)}.robot-avatar-dumb,.robot-avatar-generic{background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 46%),linear-gradient(180deg,#5a685f,#25332d)}.selection-copy{display:grid;gap:.18rem;min-width:0}.selection-copy strong,.selection-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-copy small{color:var(--muted);font-size:.84rem}.robot-count-stepper{grid-template-columns:2.15rem 1.6rem 2.15rem}.robot-count-stepper strong{color:#fff4ca;font-size:.9rem;font-variant-numeric:tabular-nums}.waiting-setup-actions{justify-content:stretch}.waiting-setup-actions button{flex:1 1 12rem}.lobby-table-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.8rem;margin:0;padding:0;list-style:none}.lobby-table-tile{min-width:0}.lobby-table-button{display:grid;width:100%;min-height:14rem;grid-template-rows:1fr auto auto;gap:.7rem;border:1px solid rgba(214,177,77,.18);border-radius:.5rem;padding:.75rem;color:var(--ink);background:#0c221cc7;text-align:left;box-shadow:0 1rem 2rem #0000001f}.lobby-table-button:hover:not(:disabled),.lobby-table-button:focus-visible:not(:disabled){border-color:#ecd37c6b;background:#143d2fd1}.lobby-table-copy{display:grid;gap:.2rem}.lobby-table-copy strong,.lobby-table-copy span{display:block;overflow-wrap:anywhere}.lobby-table-copy>span,.lobby-table-meta{color:var(--muted);font-size:.84rem}.lobby-table-meta{display:flex;flex-wrap:wrap;gap:.2rem}.lobby-table-action{justify-self:start;border-radius:999px;padding:.26rem .55rem;color:#17231d;background:var(--button);font-size:.76rem;font-weight:900}.lobby-minimap{position:relative;display:block;min-height:7.1rem;border:1px solid rgba(214,177,77,.2);border-radius:.45rem;background:radial-gradient(ellipse at center,rgba(255,255,255,.08),transparent 52%),linear-gradient(145deg,#1f5c42ad,#051c15eb)}.lobby-minimap-seat,.lobby-minimap-center span{position:absolute;display:block;border-radius:.35rem;background:#ecd37c47}.lobby-minimap-seat.is-occupied{background:#ecd37ce6}.lobby-minimap-seat-top,.lobby-minimap-seat-bottom{left:50%;width:3.1rem;height:.62rem;transform:translate(-50%)}.lobby-minimap-seat-top{top:.6rem}.lobby-minimap-seat-bottom{bottom:.6rem}.lobby-minimap-seat-left,.lobby-minimap-seat-right{top:50%;width:.62rem;height:3.1rem;transform:translateY(-50%)}.lobby-minimap-seat-left{left:.65rem}.lobby-minimap-seat-right{right:.65rem}.lobby-minimap-center{position:absolute;inset:42% 40%}.lobby-minimap-center span{width:1.25rem;height:1.8rem;border:1px solid rgba(255,255,255,.55);background-color:#7f1d32;background-image:var(--card-back-image);background-position:center;background-size:cover}.lobby-minimap-center span:first-child{transform:translate(-35%,-50%) rotate(-8deg)}.lobby-minimap-center span:nth-child(2){transform:translate(35%,-50%) rotate(8deg)}.profile-panel,.profile-settings,.profile-form,.avatar-picker{display:grid;gap:.8rem}.profile-form label{color:var(--muted);font-size:.95rem;font-weight:700}.profile-checkbox{display:flex;align-items:center;gap:.6rem}.profile-checkbox input{width:1.05rem;height:1.05rem;min-height:0;accent-color:var(--button)}.profile-secondary-button{min-height:2rem;border:1px solid rgba(236,211,124,.25);padding:.35rem .7rem;color:#fff4ca;background:#ffffff14;font-size:.85rem}.suit-color-picker{display:flex;min-width:0;align-items:center;gap:clamp(.45rem,1.8vw,.85rem);border:1px solid rgba(236,211,124,.16);border-radius:.5rem;padding:.65rem .75rem;background:#ffffff0a}.suit-color-picker h3{margin:0;color:#fff4ca;font-size:1rem;white-space:nowrap}.suit-color-picker h3:after{content:":"}.suit-color-picker-controls{display:flex;min-width:0;flex:1 1 auto;align-items:center;justify-content:space-between;gap:clamp(.45rem,1.4vw,.75rem)}.suit-color-swatches{display:flex;min-width:0;align-items:center;gap:clamp(.2rem,1vw,.45rem)}.suit-color-swatch{position:relative;display:grid;width:clamp(1.65rem,6vw,2.15rem);min-width:clamp(1.65rem,6vw,2.15rem);aspect-ratio:1;place-items:center;overflow:hidden;border:1px solid rgba(236,211,124,.18);border-radius:.45rem;background:#0000001f;cursor:pointer}.suit-color-swatch .bid-suit{margin-left:0;color:var(--suit-color, currentColor);font-size:clamp(1.05rem,3.8vw,1.35rem);line-height:1;text-shadow:var(--suit-symbol-halo)}.suit-color-swatch input[type=color]{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;opacity:0;cursor:pointer}.suit-color-picker .profile-secondary-button{min-height:1.9rem;flex:0 0 auto;padding:.3rem clamp(.45rem,1.5vw,.7rem);font-size:.8rem;white-space:nowrap}.profile-dialog-close{display:grid;width:2.35rem;min-height:2.35rem;place-items:center;border:1px solid rgba(236,211,124,.2);border-radius:999px;padding:0;color:#fff4ca;background:#ffffff17;font-size:1.2rem;line-height:1}.avatar-fallback{display:grid;place-items:center;color:#fff4ca;font-weight:800}.avatar-picker-heading{display:grid;gap:.2rem}.avatar-picker-heading h3{margin:0;color:#fff4ca;font-size:1rem}.avatar-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.45rem}.avatar-tile{position:relative;display:grid;aspect-ratio:1;min-height:0;place-items:center;overflow:hidden;border:2px solid rgba(236,211,124,.2);border-radius:.55rem;padding:0;color:var(--ink);background:#ffffff14}.avatar-tile:disabled{opacity:1}.avatar-tile:hover:not(:disabled),.avatar-tile:focus-visible:not(:disabled){border-color:#ecd37c8c}.avatar-tile[aria-pressed=true]{border-color:var(--button);box-shadow:0 0 0 2px #ecd37c29}.avatar-tile[aria-pressed=true]:after{position:absolute;top:.28rem;right:.28rem;display:grid;width:1.35rem;height:1.35rem;place-items:center;border:1px solid rgba(23,35,29,.3);border-radius:999px;color:#17231d;background:var(--button);content:"✓";font-size:.85rem;font-weight:900}.avatar-tile-art{width:100%;height:100%;border-radius:.42rem;object-fit:cover;background-color:#ffffff14}.avatar-upload-tile span{display:grid;width:2.1rem;height:2.1rem;place-items:center;border:1px solid rgba(236,211,124,.3);border-radius:999px;color:#fff4ca;background:#ffffff14;font-size:1.8rem;font-weight:800;line-height:1}.avatar-upload-input{display:none}.secondary-button{color:var(--ink);background:#ffffff1a}@media(max-width:1040px){.app-frame:has(.game-route-panel){padding:0}.route-shell-table:has(.game-route-panel){height:100vh}.game-table-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.game-side-panel{position:fixed;inset:0;z-index:40;overflow-x:hidden;overflow-y:hidden;border:0;border-radius:0;padding:.75rem;background:linear-gradient(180deg,#0d231c,#030e0b);transform:translate(100%);transition:transform .18s ease}.game-side-panel.is-open{transform:translate(0)}.side-panel-toggle{position:fixed;top:50%;right:0;z-index:35;display:grid;width:1.35rem;min-height:4.8rem;place-items:center;border:1px solid rgba(236,211,124,.35);border-right:0;border-radius:.7rem 0 0 .7rem;padding:0;color:#17231d;background:#ecd37c;box-shadow:-.35rem 0 1.2rem #00000047;transform:translateY(-50%)}.side-panel-toggle span{font-size:1.1rem;line-height:1}.side-panel-close{display:grid;width:2.4rem;min-height:2.4rem;align-self:end;place-items:center;border:1px solid rgba(236,211,124,.2);border-radius:999px;padding:0;color:#fff4ca;background:#ffffff17;font-size:1.25rem;line-height:1}}@media(max-width:760px){body:has(.game-route-panel){overflow-x:hidden;overflow-y:auto}.app-frame{padding:.75rem}.app-frame:has(.game-route-panel){height:auto;min-height:100vh;min-height:100svh;min-height:100dvh;max-height:none;overflow:visible;padding:0 0 max(4.5rem,env(safe-area-inset-bottom))}.route-shell-table:has(.game-route-panel){height:100vh;height:100svh;height:100dvh}.route-shell{grid-template-columns:1fr;align-items:stretch}.route-panel h1{font-size:1.65rem}.avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.table-summary,.protocol-summary,.protocol-actions{grid-template-columns:1fr}.protocol-table{overflow:visible}.protocol-table-row{grid-template-columns:minmax(5.2rem,1.35fr) minmax(1.75rem,.45fr) minmax(1.75rem,.45fr) minmax(2.15rem,.55fr) minmax(3.05rem,.78fr) minmax(4.6rem,1fr);min-width:0;gap:.2rem;padding:.5rem .45rem;font-size:.78rem}.protocol-table-header{font-size:.55rem}.protocol-label-wide{display:none}.protocol-label-narrow{display:inline}.protocol-table-row span,.protocol-table-row strong{overflow-wrap:anywhere;line-height:1.15}.protocol-table-row strong{font-size:.86rem}.protocol-table-row span:nth-child(2),.protocol-table-row span:nth-child(3),.protocol-table-row span:nth-child(4),.protocol-table-row span:nth-child(5){white-space:nowrap}.protocol-table-row span:nth-child(6){white-space:normal}.game-table-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:.55rem}.game-side-panel{position:fixed;inset:0;z-index:40;overflow-x:hidden;overflow-y:hidden;border:0;border-radius:0;padding:.75rem;background:linear-gradient(180deg,#0d231c,#030e0b);transform:translate(100%);transition:transform .18s ease}.game-side-panel.is-open{transform:translate(0)}.side-panel-toggle{position:fixed;top:50%;right:0;z-index:35;display:grid;width:1.35rem;min-height:4.8rem;place-items:center;border:1px solid rgba(236,211,124,.35);border-right:0;border-radius:.7rem 0 0 .7rem;padding:0;color:#17231d;background:#ecd37c;box-shadow:-.35rem 0 1.2rem #00000047;transform:translateY(-50%)}.side-panel-toggle span{font-size:1.1rem;line-height:1}.side-panel-close{display:grid;width:2.4rem;min-height:2.4rem;align-self:end;place-items:center;border:1px solid rgba(236,211,124,.2);border-radius:999px;padding:0;color:#fff4ca;background:#ffffff17;font-size:1.25rem;line-height:1}.side-panel-section{max-height:none;padding:.6rem}.deal-history-card-view-toggle{justify-self:stretch}.deal-history-card-view-toggle button{flex:1;min-height:2rem;padding:.28rem .45rem;font-size:.68rem}.play-board{min-height:0}.game-phase-status{top:.55rem;right:auto;left:50%;width:var(--top-seat-width, calc(100% - 1.5rem) );max-width:none;min-height:1.75rem;padding:.28rem .5rem;font-size:.72rem;transform:translate(-50%)}.play-seat{gap:.35rem;min-height:5.8rem;padding:.45rem}.play-seat-left{left:var(--side-seat-left, .75rem);top:max(var(--side-seat-top, 8.2rem),11.25rem);height:var(--side-seat-min-height-dynamic, 7.2rem);min-height:var(--side-seat-min-height-dynamic, 7.2rem);width:var(--side-seat-width-dynamic, calc(50% - 1.1rem) );transform:var(--side-seat-transform, none)}.play-seat-right{right:var(--side-seat-right, .75rem);top:max(var(--side-seat-top, 8.2rem),11.25rem);height:var(--side-seat-min-height-dynamic, 7.2rem);min-height:var(--side-seat-min-height-dynamic, 7.2rem);width:var(--side-seat-width-dynamic, calc(50% - 1.1rem) );transform:var(--side-seat-transform, none)}.play-board.is-three-player .play-seat-left,.play-board.is-three-player .play-seat-right{top:max(var(--three-player-side-seat-top, var(--side-seat-top, 8.2rem)),11.25rem)}.play-seat-top{top:max(var(--top-seat-top, .75rem),2.75rem);left:50%;min-height:var(--top-seat-min-height, 6.7rem);width:var(--top-seat-width, calc(100% - 1.5rem) );align-content:start;padding-bottom:.28rem;overflow:visible;transform:translate(-50%)}.play-seat-bottom{bottom:var(--bottom-seat-bottom, .55rem);min-height:var(--bottom-seat-min-height, 6.7rem);width:var(--bottom-seat-width, calc(100% - 1.5rem) );align-content:start;padding-bottom:.28rem;overflow:visible}.play-seat-bottom .play-hand{min-height:var(--bottom-hand-min-height, 3.95rem)}.mobile-bottom-control-dock{position:absolute;top:var(--mobile-bottom-dock-top, auto);right:auto;bottom:var(--mobile-bottom-dock-bottom, .55rem);left:50%;z-index:7;display:grid;width:var(--bottom-seat-width, calc(100% - 1.5rem) );max-width:calc(100% - 1.5rem);gap:.35rem;transform:translate(-50%)}.mobile-bottom-control-dock .mobile-seat-quick-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:100%;min-width:0}.play-board>.settlement-dock{display:none}.mobile-bottom-control-dock .settlement-dock{position:static;right:auto;bottom:auto;left:auto;width:100%;max-width:none;transform:none}.mobile-bottom-control-dock .settlement-dock:empty{display:none}.mobile-bottom-control-dock:has(.settlement-dock){grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.2fr);align-items:stretch}.mobile-bottom-control-dock:has(.settlement-target-dock){grid-template-columns:minmax(0,.78fr) minmax(0,.78fr) minmax(0,1.44fr)}.mobile-bottom-control-dock:has(.settlement-dock) .mobile-seat-quick-tabs{display:contents}.mobile-bottom-control-dock .settlement-dock{border:0;padding:0;background:transparent;box-shadow:none}.mobile-bottom-control-dock .settlement-main-button,.mobile-bottom-control-dock .settlement-dock button{width:100%;min-height:1.8rem;padding:.22rem .38rem;font-size:.7rem}.mobile-bottom-control-dock .settlement-target-dock{grid-template-columns:minmax(1.65rem,.42fr) minmax(0,1fr) minmax(1.65rem,.42fr);gap:.25rem}.mobile-bottom-control-dock .settlement-step-button{width:100%;height:auto;min-height:1.8rem}.mobile-seat-quick-tabs button{min-height:1.8rem;border:1px solid rgba(236,211,124,.22);border-radius:.42rem;padding:.22rem .45rem;color:#f9edbdd6;background:#0000002e;font:inherit;font-size:.7rem;font-weight:900;line-height:1;text-transform:uppercase}.mobile-seat-quick-tabs button[aria-pressed=true]{color:#17231d;background:#e4c65d}.play-seat-bottom .play-hand.has-mobile-info{width:100%;min-height:var(--bottom-hand-min-height, 3.95rem);overflow:hidden}.play-seat-bottom .play-hand.has-mobile-info>:not(.mobile-seat-info-panel){display:none}.play-seat-bottom .mobile-seat-info-panel{display:block;width:100%;min-width:0;max-height:calc(var(--bottom-hand-min-height, 3.95rem) + 2.2rem);overflow:auto}.mobile-seat-info-panel .side-panel-section{gap:.34rem;border-color:#d6b14d24;padding:.4rem;background:#00000024}.mobile-seat-info-panel .side-panel-heading h2{font-size:.76rem}.mobile-seat-info-panel .side-panel-heading span{padding:.14rem .36rem;font-size:.55rem}.mobile-seat-info-panel .score-view-toggle button{min-height:1.1rem;padding:.12rem .28rem;font-size:.5rem}.mobile-seat-info-panel .score-board-grid,.mobile-seat-info-panel .auction-table{gap:.22rem}.mobile-seat-info-panel .score-board-grid{--score-delta-width: 1.58rem}.mobile-seat-info-panel .score-board-row,.mobile-seat-info-panel .auction-table-row,.mobile-seat-info-panel .auction-table-head{padding:.24rem;font-size:.62rem}.mobile-seat-info-panel .score-board-row-score{grid-template-columns:minmax(4.1rem,1fr) minmax(2.45rem,.52fr) minmax(3.75rem,.72fr) minmax(3.35rem,.66fr)}.mobile-seat-info-panel .score-delta{font-size:.48rem}.play-seat-top .play-hand{min-height:var(--bottom-hand-min-height, 3.95rem)}.play-seat-top .visible-hand-wrap,.play-seat-bottom .visible-hand-wrap{display:grid;width:100%;min-width:0;justify-items:center}.play-seat-top .grouped-hand,.play-seat-bottom .grouped-hand{min-height:var(--bottom-hand-min-height, 3.95rem);padding:.02rem 0 0;transform-origin:center bottom}.play-seat-top .grouped-hand{transform:translate(var(--top-hand-offset-x, 0px))}.play-seat-top .suit-group,.play-seat-bottom .suit-group{margin-right:var(--bottom-hand-group-gap, .72rem)}.play-seat-top .grouped-hand .suit-group .game-card,.play-seat-bottom .grouped-hand .suit-group .game-card{margin-left:var(--bottom-hand-card-overlap, -1.12rem)}.play-seat-top .hidden-opponent-stack{width:max-content;min-height:var(--bottom-hand-min-height, 3.95rem);justify-content:center;padding:.02rem 0 0;transform:none;transform-origin:center bottom}.play-seat-top .hidden-opponent-stack .hidden-suit-stack{margin-right:var(--top-hidden-group-gap, var(--bottom-hand-group-gap, .72rem))}.play-seat-top .hidden-opponent-stack .hidden-card{width:var(--play-card-width, 3.55rem);margin-left:var(--top-hidden-card-overlap, var(--bottom-hand-card-overlap, -1.12rem))}.play-seat-top .hidden-opponent-stack .hidden-card:first-child{margin-left:0}.play-seat-top .hidden-opponent-stack .hidden-suit-stack:not(:first-child) .hidden-card:first-child{margin-left:var(--top-hidden-card-overlap, var(--bottom-hand-card-overlap, -1.12rem))}.play-seat-top .talon-fan{width:calc(var(--play-card-width, 3.55rem) * 2.1);min-height:var(--bottom-hand-min-height, 3.95rem);transform:none}.play-player-topline{gap:.5rem}.play-avatar{width:2.2rem;height:2.2rem;font-size:.7rem}.play-avatar-dealer-badge{top:-.1rem;right:-.1rem;width:.82rem;height:.82rem;border-width:1px;font-size:.48rem}.play-player-copy{min-height:2.2rem}.trick-counter{width:1.9rem;height:1.9rem;font-size:.75rem}.last-trick-tooltip{width:11.55rem;padding:.35rem}.last-trick-tooltip-left{top:auto;bottom:calc(100% + .45rem);left:0;transform:translateY(.2rem) scale(.98);transform-origin:bottom left}.last-trick-tooltip-right{top:auto;right:0;bottom:calc(100% + .45rem);transform:translateY(.2rem) scale(.98);transform-origin:bottom right}.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip-left,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip-left,.trick-counter-wrap.has-last-trick-tooltip:hover .last-trick-tooltip-right,.trick-counter-wrap.has-last-trick-tooltip:focus-within .last-trick-tooltip-right{transform:translateY(0) scale(1)}.last-trick-tooltip-viewport{width:10.85rem;height:4.34rem}.last-trick-panel-viewport{width:7.6rem;height:3.04rem}.last-trick-panel-content{width:10.85rem;height:4.34rem}.last-trick-tooltip-layout{width:15.5rem;height:6.2rem}.play-player-name-row strong{font-size:.9rem}.play-player-name-row{gap:.3rem}.play-player-badge-row{--seat-badge-padding-y: .14rem;--seat-badge-padding-x: .32rem;--seat-badge-font-size: .58rem;--auction-badge-padding-y: .14rem;--auction-badge-padding-x: .36rem;--auction-badge-font-size: .66rem}.play-seat-left .play-player-badge-row,.play-seat-right .play-player-badge-row{--seat-badge-padding-y: .1rem;--seat-badge-padding-x: .14rem;--seat-badge-font-size: .38rem;--auction-badge-padding-y: .1rem;--auction-badge-padding-x: .16rem;--auction-badge-font-size: .46rem;gap:.06rem}.hidden-opponent-stack{min-height:4.8rem;justify-content:center;padding-top:.25rem;transform:scale(calc(.58 * var(--mobile-hand-scale, var(--hand-scale, 1))))}.hidden-opponent-stack.is-compact{transform:scale(.42)}.hidden-suit-stack{margin-right:.85rem}.hidden-opponent-stack .hidden-card{width:var(--play-card-width, 3.55rem);margin-left:-1rem}.hidden-opponent-stack .hidden-card.is-compact{width:var(--play-card-width, 3.55rem)}.trick-layout{width:min(var(--trick-layout-width),100%);height:var(--trick-layout-height, 6.2rem)}.trick-slot{width:var(--trick-slot-width)}.last-trick-tooltip .trick-slot,.last-trick-panel-preview .trick-slot{width:4rem}.discard-table-pile{min-width:5.2rem;min-height:3.8rem}.table-card.discard-table-card{width:var(--table-card-width)}.trick-slot-left{--trick-slot-x: calc(var(--trick-slot-horizontal-offset) * -1)}.last-trick-tooltip .trick-slot-left,.last-trick-panel-preview .trick-slot-left{--trick-slot-x: -4rem}.trick-slot-right{--trick-slot-x: var(--trick-slot-horizontal-offset)}.last-trick-tooltip .trick-slot-right,.last-trick-panel-preview .trick-slot-right{--trick-slot-x: 4rem}.trick-slot-top{--trick-slot-y: calc(var(--trick-slot-vertical-offset) * -1)}.last-trick-tooltip .trick-slot-top,.last-trick-panel-preview .trick-slot-top{--trick-slot-y: -1.55rem}.trick-slot-bottom{--trick-slot-y: var(--trick-slot-vertical-offset)}.last-trick-tooltip .trick-slot-bottom,.last-trick-panel-preview .trick-slot-bottom{--trick-slot-y: 1.55rem}.table-card{width:var(--table-card-width)}.last-trick-tooltip .table-card,.last-trick-panel-preview .table-card{--card-width: 4rem;--card-index-size: .77rem;--card-index-suit-size: .65rem;--card-pip-size: .68rem;--card-ace-size: 2.08rem;width:var(--card-width);border-radius:var(--card-radius)}.last-trick-tooltip .card-center-zone,.last-trick-panel-preview .card-center-zone{inset:var(--card-center-inset-y) var(--card-center-inset-x)}.play-action-stack{width:min(var(--center-action-stack-width, var(--action-stack-width, calc(100% - 1.5rem) )),var(--bottom-seat-width, calc(100% - 1.5rem) ));max-width:calc(100% - 1.5rem)}.play-action-stack:has(.bidding-dock .bid-grid-shell){width:min(var(--action-stack-width, calc(100% - 1.5rem) ),var(--bottom-seat-width, calc(100% - 1.5rem) ))}.settlement-dock{right:auto;bottom:calc(var(--bottom-seat-bottom, .55rem) + var(--bottom-seat-height, 8rem) + .45rem);left:50%;max-width:calc(100% - 1.5rem);transform:translate(-50%)}.settlement-dialog{width:min(18rem,calc(100% - 1.5rem))}.settlement-main-button{min-height:1.9rem;padding:.46rem .64rem}.settlement-step-button{width:1.9rem;height:1.9rem}.action-dock{gap:.45rem;padding:.5rem}.action-dock:not(.bidding-dock) .action-buttons{flex-wrap:nowrap}.action-dock:not(.bidding-dock) .action-button{flex:1 1 0;min-width:0;min-height:2.45rem;padding-right:.64rem;padding-left:.64rem}.action-dock h2{font-size:.95rem}.grouped-hand{min-height:4.8rem;justify-content:center;padding-top:.25rem;transform:scale(calc(.58 * var(--mobile-hand-scale, var(--hand-scale, 1))))}.grouped-hand.is-compact-revealed{transform:scale(.42)}.suit-group{margin-right:.85rem}.grouped-hand .suit-group .game-card{margin-left:var(--hand-card-overlap, -1rem)}.play-seat-top .grouped-hand,.play-seat-top .grouped-hand:not(.is-compact-revealed),.play-seat-top .grouped-hand.is-compact-revealed{transform:translate(var(--top-hand-offset-x, 0px))}.play-seat-bottom .grouped-hand{transform:translate(var(--bottom-hand-offset-x, 0px)) scale(var(--bottom-hand-scale, 1))}.play-seat-top .suit-group{margin-right:var(--top-hand-group-gap, var(--bottom-hand-group-gap, .72rem))}.play-seat-bottom .suit-group{margin-right:var(--bottom-hand-group-gap, .72rem)}.play-seat-top .suit-group:last-child,.play-seat-bottom .suit-group:last-child{margin-right:0}.play-seat-top .grouped-hand .suit-group .game-card{margin-left:var(--top-hand-card-overlap, var(--bottom-hand-card-overlap, -1.12rem))}.play-seat-bottom .grouped-hand .suit-group .game-card{margin-left:var(--bottom-hand-card-overlap, -1.12rem)}.game-card{border-radius:var(--card-radius)}.talon-fan,.talon-fan.is-compact{width:5.4rem;min-height:4.8rem}.talon-fan.is-compact{transform:scale(.42)}.talon-fan .hidden-card,.talon-fan.is-compact .hidden-card,.talon-fan .public-talon-card,.talon-fan.is-compact .public-talon-card{--card-width: var(--play-card-width, 3.55rem);width:var(--card-width);border-radius:var(--card-radius)}.play-seat-bottom .play-hand:has(.talon-fan){align-content:start;align-items:start}.play-seat-bottom .talon-fan{margin-top:-.42rem}.play-seat-bottom .talon-fan>.game-card,.play-seat-bottom .talon-fan>.hidden-card{top:38%}.play-seat-left .play-hand:has(.talon-fan),.play-seat-right .play-hand:has(.talon-fan){align-content:center;align-items:center;justify-items:center}.play-seat-left .talon-fan.is-compact,.play-seat-right .talon-fan.is-compact{width:calc(var(--play-card-width, 3.55rem) * 2.1);min-height:var(--bottom-hand-min-height, 3.95rem);transform:none;transform-origin:center center}.card-center-zone{inset:var(--card-center-inset-y) var(--card-center-inset-x)}.hidden-card{width:var(--play-card-width, 1.45rem)}.hidden-card.is-compact{width:var(--play-card-width, 1.25rem)}.play-seat-left,.play-seat-right{align-content:start;grid-template-rows:auto minmax(0,1fr)}.play-seat-left .play-player-topline,.play-seat-right .play-player-topline{grid-template-columns:auto auto;grid-template-rows:auto auto;justify-content:center;justify-items:center;gap:.18rem .36rem}.play-seat-left .play-avatar,.play-seat-right .play-avatar{grid-column:1;grid-row:1}.play-seat-left .trick-counter-wrap,.play-seat-right .trick-counter-wrap{grid-column:2;grid-row:1;align-self:center;justify-self:start;margin-top:0}.play-seat-left .play-player-copy,.play-seat-right .play-player-copy{grid-column:1 / -1;grid-row:2;width:100%;min-height:0;align-content:start;justify-items:center;gap:.14rem}.play-seat-left .play-player-name-row,.play-seat-right .play-player-name-row{width:100%;justify-content:center}.play-seat-left .play-player-name-row strong,.play-seat-right .play-player-name-row strong{font-size:.78rem;text-align:center}.play-seat-left .play-player-badge-row,.play-seat-right .play-player-badge-row{width:100%;justify-content:center}.play-seat-left .play-hand,.play-seat-right .play-hand{height:100%;justify-items:center}.play-seat-left .hidden-hand-wrap,.play-seat-right .hidden-hand-wrap{align-self:stretch;justify-self:stretch;overflow:visible}.play-seat-left .visible-hand-wrap:has(.grouped-hand.is-compact-revealed),.play-seat-right .visible-hand-wrap:has(.grouped-hand.is-compact-revealed){width:100%;min-width:0;align-self:stretch;justify-self:stretch;overflow:visible}.play-seat-left .hidden-opponent-stack.is-compact,.play-seat-right .hidden-opponent-stack.is-compact{width:100%;height:100%;min-height:0;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;padding-top:.25rem;transform:none}.play-seat-left .grouped-hand.is-compact-revealed,.play-seat-right .grouped-hand.is-compact-revealed{width:100%;min-width:0;height:100%;min-height:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:.25rem 0 0;transform:none}.play-seat-left .grouped-hand.is-compact-revealed{transform-origin:top left}.play-seat-right .grouped-hand.is-compact-revealed{transform-origin:top right}.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack{display:flex;width:auto;min-height:0;flex-direction:column;align-items:center;justify-content:flex-start;margin:0;overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed .suit-group,.play-seat-right .grouped-hand.is-compact-revealed .suit-group{display:flex;width:100%;min-width:0;min-height:0;flex-direction:row;align-items:flex-end;margin-top:var(--hand-group-vertical-overlap, 0);margin-right:0;overflow:visible}.play-seat-left .grouped-hand.is-compact-revealed .suit-group{justify-content:flex-start}.play-seat-right .grouped-hand.is-compact-revealed .suit-group{justify-content:flex-end}.play-seat-left .hidden-opponent-stack.is-compact .hidden-card,.play-seat-right .hidden-opponent-stack.is-compact .hidden-card{--card-width: var(--play-card-width, 3.55rem);width:var(--card-width);border-radius:var(--card-radius);margin-top:var(--side-hidden-card-overlap-y, calc(var(--play-card-width, 3.55rem) * -1.18));margin-left:0;flex:0 0 auto}.play-seat-left .grouped-hand.is-compact-revealed .game-card,.play-seat-right .grouped-hand.is-compact-revealed .game-card{--card-width: var(--play-card-width, 3.55rem);width:var(--card-width);border-radius:var(--card-radius);margin-top:0;margin-left:var(--hand-card-overlap, var(--side-card-overlap, -1.95rem));flex:0 0 auto}.play-seat-left .hidden-opponent-stack.is-compact .hidden-card:first-child,.play-seat-right .hidden-opponent-stack.is-compact .hidden-card:first-child{margin-top:0}.play-seat-left .grouped-hand.is-compact-revealed .game-card:first-child,.play-seat-right .grouped-hand.is-compact-revealed .game-card:first-child{margin-left:0}.play-seat-left .hidden-opponent-stack.is-compact .hidden-suit-stack:not(:first-child) .hidden-card:first-child,.play-seat-right .hidden-opponent-stack.is-compact .hidden-suit-stack:not(:first-child) .hidden-card:first-child{margin-top:var(--side-hidden-card-overlap-y, calc(var(--play-card-width, 3.55rem) * -1.18))}.play-seat-left .grouped-hand.is-compact-revealed .suit-group:first-child,.play-seat-right .grouped-hand.is-compact-revealed .suit-group:first-child{margin-top:0}.action-button{width:100%}.bidding-special-row .action-button{min-width:0;min-height:2.25rem;padding:.24rem .18rem;font-size:.76rem}.bidding-special-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.bid-grid-header,.bid-grid-row{grid-template-columns:1.55rem repeat(5,minmax(2.7rem,1fr));gap:.25rem}.bid-axis,.bid-row-label{min-height:1.5rem;font-size:.68rem}.bid-cell{min-height:1.85rem;padding:.18rem .14rem;font-size:.74rem}.table-settings-form,.robot-profile-row{grid-template-columns:1fr}.waiting-setup-header,.waiting-setup-actions{align-items:stretch;flex-direction:column}.waiting-setup-grid{grid-template-columns:1fr}.waiting-setup-actions button{flex-basis:auto;width:100%}.selection-row{grid-template-columns:auto auto minmax(0,1fr)}.robot-selection-row{grid-template-columns:auto minmax(0,1fr) auto}.lobby-panel{display:flex;min-height:calc(100svh - clamp(2rem,4vw,3rem));flex-direction:column}.lobby-header{align-items:stretch;flex-direction:column;justify-content:flex-start}.lobby-actions{align-self:stretch;margin-top:auto;justify-content:stretch}.lobby-actions button{flex:1 1 8rem}.lobby-empty{flex:1 1 auto}}.play-seat-left .play-hand:has(.talon-fan),.play-seat-right .play-hand:has(.talon-fan){width:100%;justify-items:stretch}.play-seat-left .talon-fan.is-compact,.play-seat-right .talon-fan.is-compact{display:flex;width:100%;align-items:center;justify-content:center;margin-right:auto;margin-left:auto;transform:none}.play-seat-left .talon-fan.is-compact>.game-card,.play-seat-left .talon-fan.is-compact>.hidden-card,.play-seat-right .talon-fan.is-compact>.game-card,.play-seat-right .talon-fan.is-compact>.hidden-card{position:relative;top:auto;left:auto;margin:0}.play-seat-left .talon-fan.is-compact>:first-child,.play-seat-right .talon-fan.is-compact>:first-child{margin-right:calc(var(--play-card-width) * -.58);transform:rotate(-9deg)}.play-seat-left .talon-fan.is-compact>:nth-child(2),.play-seat-right .talon-fan.is-compact>:nth-child(2){transform:rotate(9deg)}
