:root{--felt:#0f5a3c;--felt-dark:#0b3d2a;--felt-deep:#072a1d;--gold:#e7bd55;--gold-light:#ffe69a;--gold-dark:#a87a1e;--ink:#f4f1e8;--muted:#a9c2b5;--panel:#041a12c7;--panel-solid:#0c3324;--line:#ffffff1f;--red:#d33c3c;--card:#fffdf6;--card-ink:#1d1d1f;--card-red:#d01f2a;--pos:#7be0a1;--neg:#ff8a80;--radius:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:radial-gradient(120% 80% at 50% 0%, var(--felt) 0%, var(--felt-dark) 55%, var(--felt-deep) 100%) fixed;background-color:var(--felt-dark);color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:16px}input{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{margin:0}h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 0 8px;font-size:13px;font-weight:600}.app{max-width:560px;height:100%;margin:0 auto;position:relative}.screen{min-height:100%;padding:calc(var(--safe-top) + 8px) 16px calc(var(--safe-bottom) + 12px);flex-direction:column;display:flex}.center-screen{justify-content:center;align-items:center;gap:24px}.content{flex:1;padding-top:8px}.stack{flex-direction:column;gap:12px;display:flex}.narrow{width:100%;max-width:340px}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.center{text-align:center}.gold-text{background:linear-gradient(135deg, var(--gold-light), var(--gold) 50%, var(--gold-dark));color:#0000;-webkit-background-clip:text;background-clip:text}.btn{border:1px solid var(--line);background:#ffffff14;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:12px 16px;font-weight:600;transition:transform 80ms,background .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn.gold{background:linear-gradient(180deg, var(--gold-light), var(--gold) 45%, var(--gold-dark));color:#2b1d00;border-color:#0000;box-shadow:0 3px 12px #e7bd5540}.btn.danger{color:var(--neg);border-color:#ff8a8059}.btn.big{min-height:56px;font-size:18px}.btn.small{min-height:34px;padding:6px 12px;font-size:14px}.icon-btn{background:0 0;border:0;border-radius:10px;min-width:40px;min-height:40px;font-size:20px;position:relative}.icon-btn:active{background:#ffffff1a}.link{color:var(--gold);text-underline-offset:3px;background:0 0;border:0;padding:6px;text-decoration:underline}.badge{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.chat-btn .badge{position:absolute;top:2px;right:0}.field{color:var(--muted);flex-direction:column;gap:8px;display:flex}input{font:inherit;color:var(--ink);border:1px solid var(--line);background:#00000047;border-radius:12px;outline:none;width:100%;min-height:48px;padding:12px 14px;font-size:17px}input:focus{border-color:var(--gold)}.join-row{gap:10px;display:flex}.code-input{letter-spacing:.3em;text-transform:uppercase;text-align:center;font-weight:700}.segmented{background:#00000040;border-radius:10px;gap:2px;padding:3px;display:flex}.segmented button{background:0 0;border:0;border-radius:8px;min-width:38px;padding:7px 10px;font-size:14px;font-weight:600}.segmented button.on{background:var(--gold);color:#2b1d00}.segmented button:disabled:not(.on){opacity:.35}.tabs{gap:6px;margin-bottom:10px;display:flex}.tabs button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:10px;flex:1;padding:8px;font-weight:600}.tabs button.on{color:var(--gold-light);background:#e7bd5526;border-color:#e7bd5580}.topbar{grid-template-columns:48px 1fr auto;align-items:center;gap:4px;min-height:48px;display:grid}.topbar h2{text-align:center;font-size:18px}.topbar>span:last-child{width:48px}.logo{flex-direction:column;align-items:center;gap:14px;display:flex}.logo h1{letter-spacing:.02em;font-size:40px;font-weight:800}.logo-cards{align-items:flex-end;height:92px;display:flex}.logo-cards .tilt-l{transform:rotate(-12deg)translate(10px)}.logo-cards .tilt-r{transform:rotate(9deg)translate(-10px)}.greeting{color:var(--muted);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.greeting b{color:var(--ink)}section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.sheet section{background:#ffffff0a}.list-row{border-top:1px solid var(--line);align-items:center;gap:10px;min-height:52px;padding:8px 2px;display:flex}.list-row:first-of-type{border-top:0}.list-row .grow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row .grow small{font-size:12px}.list-row .grow small.status{display:block}.empty-seat{opacity:.7}.status:before{content:"";background:#777;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status.online:before{background:#4cd97b}.status.inGame:before{background:var(--gold)}.avatar{color:#fff;border:2px solid #ffffff40;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.code-box{text-align:center;flex-direction:column;gap:8px;display:flex}.room-code{letter-spacing:.25em;color:var(--gold-light);font-variant-numeric:tabular-nums;padding-left:.25em;font-size:44px;font-weight:800}.setting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.player-card{flex-direction:column;align-items:center;gap:16px;display:flex}.player-card .stack{width:100%}.history-card{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px;display:flex}.history-top{align-items:center;gap:10px;display:flex}.medal{text-align:center;min-width:30px;font-size:24px;font-weight:700}.history-players{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:14px;display:flex}.history-players .me{color:var(--gold-light)}.standings{flex-direction:column;gap:6px;display:flex}.standing{background:#ffffff0d;border-radius:12px;align-items:center;gap:10px;min-height:48px;padding:8px 10px;display:flex}.standing.me{border:1px solid #e7bd5599}.standing b{font-size:18px}.card{--w:56px;width:var(--w);height:calc(var(--w) * 1.42);border-radius:calc(var(--w) * .12);background:var(--card);color:var(--card-ink);border:1px solid #00000040;flex:none;padding:0;font-family:Georgia,Times New Roman,serif;transition:transform .15s,opacity .15s,box-shadow .15s;display:block;position:relative;box-shadow:0 2px 6px #00000059}.card.sm{--w:52px}.card.md{--w:58px}.card.lg{--w:min(17.5vw, 84px)}.card.red{color:var(--card-red)}.card .corner{flex-direction:column;align-items:center;line-height:1;display:flex;position:absolute;top:4%;left:8%}.card .rank{font-size:calc(var(--w) * .3);font-weight:700}.card .suit{font-size:calc(var(--w) * .24)}.card .pip{font-size:calc(var(--w) * .5);line-height:1;position:absolute;bottom:6%;right:10%}.card.mdl{border:2px solid var(--gold);box-shadow:0 0 0 1px var(--gold-dark), 0 0 12px 2px #e7bd55bf, 0 2px 6px #00000059;background:linear-gradient(160deg,#fffaf0,#fff3d2)}.card .mdl-badge{font-family:-apple-system,Segoe UI,sans-serif;font-size:calc(var(--w) * .17);letter-spacing:.04em;color:#fff;background:linear-gradient(180deg, var(--gold), var(--gold-dark));border-radius:4px;padding:1px 4px;font-weight:800;position:absolute;bottom:6%;left:7%}.card.back{background:repeating-linear-gradient(45deg,#e7bd552e 0 4px,#0000 4px 9px),linear-gradient(160deg,#8c1f2a,#4a0d14);border:2px solid #f4e3b0;justify-content:center;align-items:center;display:flex}.back-mark{font-family:-apple-system,Segoe UI,sans-serif;font-weight:800;font-size:calc(var(--w) * .22);color:var(--gold-light);letter-spacing:.05em}.card.clickable{cursor:pointer}.card.disabled{opacity:.4;filter:grayscale(.4)}.card.selected{box-shadow:0 0 0 3px var(--gold), 0 8px 16px #0006;transform:translateY(-16px)}.screen.game{height:100%;padding-left:8px;padding-right:8px;overflow:hidden}.deal-info{flex-direction:column;align-items:center;font-size:14px;line-height:1.3;display:flex}.mode-chip{color:var(--muted);font-size:12px}.mode-chip.kind-noTrump,.mode-chip.kind-dark,.mode-chip.kind-golden{color:var(--gold-light);font-weight:700}.bar-right{display:flex}.felt{background:radial-gradient(at 50% 40%,#ffffff14,#0000 60%),radial-gradient(#17704d 0%,#0f5a3c 55%,#0a4430 100%);border:6px solid #5a3a1c;border-radius:46%/32%;flex:1;min-height:300px;margin:6px 4px 0;padding:0;position:relative;overflow:visible;box-shadow:inset 0 0 0 2px #e7bd5559,inset 0 0 40px #00000073,0 10px 30px #0006}.seat{background:var(--panel);z-index:2;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:1px;width:78px;padding:6px 4px 5px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000059}.seat.turn{box-shadow:0 0 0 2px var(--gold), 0 0 16px #e7bd5599}.seat.out{opacity:.5}.seat-avatar{border-radius:50%;padding:3px;position:relative}.seat-name{text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-size:12px;font-weight:600;overflow:hidden}.seat-stats{color:var(--gold-light);font-size:13px;font-weight:700}.seat-total{color:var(--muted);font-size:11px}.seat-cards{background:#222;border-radius:8px;padding:1px 5px;font-size:10px;position:absolute;top:-6px;left:-6px}.seat-timer{background:var(--gold);color:#2b1d00;border-radius:8px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;top:-6px;right:-6px}.seat-status{font-size:13px;position:absolute;bottom:-2px;right:-6px}.dealer-chip{color:#111;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:inline-flex;position:absolute;top:-4px;left:-8px;box-shadow:0 1px 3px #00000080}.bubble{color:#111;white-space:nowrap;text-overflow:ellipsis;z-index:5;background:#fff;border-radius:12px;max-width:180px;margin-top:6px;padding:6px 10px;font-size:13px;animation:.25s ease-out pop;position:absolute;top:100%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #00000059}.trick{pointer-events:none;position:absolute;inset:0}.trick-card{z-index:3;flex-direction:column;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.trick-card.arrive{animation:.28s ease-out both arrive}.trick-card.collect{animation:.38s ease-in .65s forwards collect}.mdl-caption{background:linear-gradient(180deg, var(--gold), var(--gold-dark));color:#fff;white-space:nowrap;border-radius:6px;margin-top:3px;padding:1px 5px;font-size:10px;font-weight:700}.rule-hint{background:var(--panel);color:var(--gold-light);white-space:nowrap;text-overflow:ellipsis;border:1px solid #e7bd5566;border-radius:999px;max-width:92%;padding:4px 10px;font-size:12px;position:absolute;bottom:8%;left:50%;overflow:hidden;transform:translate(-50%)}.dealing{pointer-events:none;z-index:4;position:absolute;inset:0}.fly-card{animation:.42s ease-out both deal;position:absolute;transform:translate(-50%,-50%)}.deal-result{background:var(--panel-solid);z-index:6;border:1px solid #e7bd5599;border-radius:14px;flex-direction:column;align-items:center;gap:3px;min-width:160px;padding:10px 14px;font-size:14px;animation:.25s ease-out pop;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pos{color:var(--pos)}.neg{color:var(--neg)}.me-zone{flex-direction:column;align-items:stretch;gap:8px;padding-top:26px;display:flex}.me-line{justify-content:space-between;align-items:center;gap:8px;min-height:30px;display:flex;position:relative}.me-badge{background:var(--panel);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;display:flex;position:relative}.me-badge.turn{box-shadow:0 0 0 2px var(--gold)}.me-badge .dealer-chip{position:static}.hint{color:var(--muted);text-align:right;font-size:14px}.hint.mine{color:var(--gold-light);font-weight:700}.me-bubble{margin:0 0 6px;top:auto;bottom:100%;left:30%}.timer-bar{background:#ffffff1f;border-radius:3px;height:5px;overflow:hidden}.timer-bar div{background:linear-gradient(90deg, var(--gold-dark), var(--gold-light));height:100%;transition:width .2s linear}.timer-bar div.low{background:var(--red)}.afk-banner{background:#d33c3c2e;border:1px solid #d33c3c80;border-radius:12px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.bid-panel{background:var(--panel);border-radius:var(--radius);border:1px solid #e7bd5566;flex-direction:column;gap:8px;padding:10px;animation:.2s ease-out pop;display:flex}.bid-info{color:var(--muted);text-align:center;font-size:13px}.bid-buttons{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.btn.bid{background:#e7bd5524;border-color:#e7bd5573;min-width:46px;min-height:46px;padding:6px 10px;font-size:18px}.btn.bid.pass{font-size:15px}.hand{justify-content:center;gap:4px;min-height:calc(1.42*min(17.5vw,84px) + 18px);padding-top:16px;display:flex}.hand.hidden .card{visibility:hidden}.hand.shown .card{animation:.3s ease-out both rise}.hand.shown .card:nth-child(2){animation-delay:40ms}.hand.shown .card:nth-child(3){animation-delay:80ms}.hand.shown .card:nth-child(4){animation-delay:.12s}.hand.shown .card:nth-child(5){animation-delay:.16s}.hand.shown .card:nth-child(6){animation-delay:.2s}.play-btn{align-self:center;min-width:160px}.last-trick{align-self:center;font-size:14px}.last-trick-list{flex-direction:column;gap:8px;display:flex}.lt-row{border-radius:10px;align-items:center;gap:12px;padding:6px;display:flex}.lt-row.winner{background:#e7bd5524}.choice{text-align:left;border:1px solid var(--line);background:#ffffff0f;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;min-height:52px;padding:12px 14px;display:flex}.choice.radio{cursor:pointer;flex-direction:row;align-items:center;gap:10px}.choice.radio input{width:20px;height:20px;min-height:0;accent-color:var(--gold)}.avatar.photo{object-fit:cover;background:#222}.avatar-edit{align-items:center;gap:16px;display:flex}.avatar-edit .stack{flex:1}.avatar-edit label.btn{cursor:pointer}.transfer-code{letter-spacing:.12em;text-align:center;-webkit-user-select:text;user-select:text;padding-left:0;font-size:30px}a.btn{color:inherit;text-decoration:none}.choice small{color:var(--muted)}.gold-border{border-color:var(--gold)}.suit-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.suit-btn{background:var(--card);color:var(--card-ink);border:0;border-radius:12px;min-height:60px;font-size:30px}.suit-btn.red{color:var(--card-red)}.score-wrap{border:1px solid var(--line);-webkit-overflow-scrolling:touch;border-radius:10px;max-height:100%;overflow:auto}.sheet .score-wrap{max-height:calc(80vh - 90px)}table.score{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.score th,.score td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:5px 4px}.score thead th{background:var(--panel-solid);z-index:2;font-weight:700;position:sticky;top:0}.score thead tr:nth-child(2) th{color:var(--muted);font-size:11px;font-weight:500;top:27px}.score th.me{color:var(--gold-light)}.score th.me,.score td.me{background-color:#e7bd5517}.score thead th.me,.score tfoot td.me{background:linear-gradient(#e7bd5517, #e7bd5517), var(--panel-solid)}.score .deal-col{background:var(--panel-solid);z-index:1;min-width:34px;font-weight:700;position:sticky;left:0}.score thead .deal-col{z-index:3}.score tr.current td{background:#e7bd5529}.score tr.current .deal-col{background:#3a4a24}.score tr.upcoming td{color:#ffffff4d}.score tr.kind-noTrump .deal-col,.score tr.kind-dark .deal-col,.score tr.kind-golden .deal-col{color:var(--gold-light)}.score td.off{background:#00000040}.score td.pts{font-weight:700}.score .delta{color:var(--muted);font-size:10px;font-weight:500;display:block}.score .delta.neg{color:var(--neg)}.score .delta.pos{color:var(--pos)}.score td.tricks .slash{color:var(--muted);margin:0 1px}.score td.tricks.bid-ok{color:#6fe08a;font-weight:700}.score td.tricks.bid-over{color:#ff9d4d;font-weight:700}.score td.tricks.bid-under{color:#ff7a7a;font-weight:700}.score tr.block-start td{border-top:1px solid #e7bd5573}.score tr.kind-golden td{background-image:linear-gradient(#e7bd5521,#e7bd5521)}.score tfoot td.leader{color:var(--gold-light)}.score tfoot td{background:var(--panel-solid);border-top:1px solid #e7bd5580;font-size:15px;font-weight:800;position:sticky;bottom:0}.log-list{-webkit-user-select:text;user-select:text;flex-direction:column;flex:1;gap:4px;min-height:120px;padding:4px 2px;display:flex;overflow-y:auto}.log-row{font-size:14px;line-height:1.35}.log-row.kind-game,.log-row.kind-room{color:var(--muted);font-size:13px}.log-row.mine .log-name{color:var(--gold-light)}.log-time{color:#ffffff59;margin-right:6px;font-size:11px}.log-name{margin-right:4px}.emotes{scrollbar-width:none;gap:6px;padding:8px 0;display:flex;overflow-x:auto}.emote{border:1px solid var(--line);background:#ffffff0f;border-radius:12px;flex-direction:column;flex:none;align-items:center;gap:2px;width:64px;padding:6px 2px;display:flex}.emote span{font-size:22px}.emote small{color:var(--muted);text-align:center;font-size:9px;line-height:1.1}.chat-input{gap:8px;display:flex}.chat-input .btn{min-width:52px}.sheet-backdrop{z-index:50;background:#00000080;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--panel-solid);border:1px solid var(--line);width:100%;max-width:560px;max-height:85vh;padding:10px 16px calc(var(--safe-bottom) + 16px);border-bottom:0;border-top-left-radius:20px;border-top-right-radius:20px;flex-direction:column;animation:.22s ease-out slide-up;display:flex}.sheet.tall{height:85vh}.sheet-head{justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.sheet-head h2{font-size:18px}.sheet-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.toasts{top:calc(var(--safe-top) + 8px);z-index:60;flex-direction:column;gap:8px;width:calc(100% - 24px);max-width:520px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);background:#102e22;border-radius:14px;align-items:center;gap:8px;padding:8px 8px 8px 14px;font-size:14px;animation:.2s ease-out slide-down;display:flex;box-shadow:0 8px 20px #0006}.toast>span{flex:1}.toast.error{border-color:#ff8a8080}.toast.invite,.toast.friend{border-color:#e7bd5599}.conn-badge{top:calc(var(--safe-top) + 6px);color:#fff;z-index:70;background:#d33c3ceb;border-radius:999px;padding:6px 14px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.corner-tools{top:calc(var(--safe-top) + 10px);align-items:center;gap:6px;display:flex;position:absolute;right:16px}.lang-switch button{min-width:40px;padding:5px 8px;font-size:13px}.newbie{border-radius:var(--radius);background:#e7bd551f;border:1px solid #e7bd5580;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.newbie span{flex:1}.newbie .btn{flex:none}.coach{color:#2b1d00;border-radius:var(--radius);border:2px solid var(--gold);background:#fffaf0;align-items:center;gap:10px;margin:8px 4px 0;padding:10px 12px;font-size:14px;line-height:1.4;animation:.25s ease-out fade;display:flex;box-shadow:0 6px 18px #00000059}.coach .btn.small:not(.gold){color:#2b1d00;background:#0000000d;border-color:#0003}.coach .grow{white-space:pre-line}.icon-btn.pulse{border-radius:50%;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #e7bd55cc}50%{box-shadow:0 0 0 8px #e7bd5500}}.memo section h3{color:var(--gold-light);text-transform:none;letter-spacing:0;margin:0 0 6px;font-size:15px}.memo section p{white-space:pre-line;margin:0;font-size:15px;line-height:1.5}.coach-icon{flex:none;font-size:24px}.coach.complete{text-align:center;flex-direction:column;align-items:stretch;font-size:16px}.coach-actions{justify-content:center;gap:8px;display:flex}.lesson-card{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;min-height:60px;padding:12px;display:flex}.lesson-card .grow{flex-direction:column;gap:2px;display:flex}.lesson-card.practice{border-color:#e7bd5580}.lesson-num{background:#ffffff14;border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-weight:800;display:inline-flex}.lesson-num.done{background:var(--gold);color:#2b1d00}.slide-text{min-height:96px;margin:4px 0;font-size:17px;line-height:1.5}.slide-dots{justify-content:center;gap:6px;display:flex}.slide-dots span{background:#ffffff40;border-radius:50%;width:8px;height:8px}.slide-dots span.on{background:var(--gold)}@keyframes arrive{0%{left:var(--fx);top:var(--fy);opacity:.4;transform:translate(-50%,-50%)scale(.8)}to{left:var(--tx);top:var(--ty);opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes collect{to{left:var(--tx);top:var(--ty);opacity:0;transform:translate(-50%,-50%)scale(.5)}}@keyframes deal{0%{left:var(--fx);top:var(--fy);opacity:1}80%{opacity:1}to{left:var(--tx);top:var(--ty);opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.9)}}.deal-result{animation-name:pop-center}@keyframes pop-center{0%{opacity:0;transform:translate(-50%,-50%)scale(.9)}}.bid-panel{animation-name:fade}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}@media (min-width:700px){.app{max-width:640px}.card.lg{--w:90px}.felt{min-height:420px}}.hand{gap:0}.hand .card+.card{margin-left:calc(var(--w) * -.12)}.hand .card{box-shadow:-2px 2px 8px #00000059}.score-pill{color:var(--gold-light);font-variant-numeric:tabular-nums;background:#e7bd5529;border:1px solid #e7bd558c;border-radius:999px;align-items:center;gap:3px;margin-top:3px;padding:2px 9px;font-size:15px;font-weight:800;line-height:1.3;display:inline-flex}.score-pill.leader{background:linear-gradient(180deg, var(--gold-light), var(--gold) 50%, var(--gold-dark));color:#2b1d00;border-color:#0000;box-shadow:0 0 10px #e7bd5580}.score-pill.me{margin-top:0;padding:2px 11px;font-size:17px;position:relative}.score-delta{background:var(--panel-solid);pointer-events:none;z-index:4;border:1px solid;border-radius:999px;padding:1px 7px;font-size:15px;font-weight:800;animation:2.6s ease-out forwards delta-float;position:absolute;bottom:-10px;right:-8px}.score-pill.me .score-delta{margin-left:4px;inset:-18px auto auto 100%}@keyframes delta-float{0%{opacity:0;transform:translateY(6px)scale(.8)}12%{opacity:1;transform:translateY(0)scale(1.1)}70%{opacity:1;transform:translateY(-6px)scale(1)}to{opacity:0;transform:translateY(-14px)}}.mode-banner{z-index:7;text-align:center;border:2px solid var(--gold);background:#051911eb;border-radius:20px;flex-direction:column;align-items:center;gap:4px;width:min(86%,340px);padding:16px 18px 18px;animation:3.2s ease-in-out forwards banner-in;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #e7bd5526,0 16px 40px #0000008c}.mode-banner .mode-icon{font-size:40px;line-height:1}.mode-banner b{letter-spacing:.02em;background:linear-gradient(135deg, var(--gold-light), var(--gold) 50%, var(--gold-dark));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:28px}.mode-banner span:last-child{color:var(--ink);font-size:15px}.mode-banner.kind-dark{background:#08080ef0}.mode-banner.kind-golden{border-width:3px;box-shadow:0 0 30px #e7bd558c,0 16px 40px #0000008c}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}10%{opacity:1;transform:translate(-50%,-50%)scale(1.06)}16%{transform:translate(-50%,-50%)scale(1)}85%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.96)}}.last-trick-note{z-index:6;background:var(--panel-solid);color:var(--gold-light);white-space:nowrap;border:1px solid #e7bd5599;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:700;animation:.3s fade;position:absolute;top:18%;left:50%;transform:translate(-50%)}.pause-overlay{inset:calc(var(--safe-top) + 56px) 0 0 0;z-index:40;-webkit-backdrop-filter:blur(3px);background:#030f0ab8;justify-content:center;align-items:center;animation:.25s fade;display:flex;position:fixed}.pause-card{background:var(--panel-solid);border:2px solid var(--gold);box-sizing:border-box;text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:8px;min-width:240px;max-width:min(320px,100vw - 32px);padding:24px 28px;display:flex;box-shadow:0 16px 40px #00000080}.pause-icon{font-size:40px;line-height:1}.pause-card b{font-size:26px}.pause-time{color:var(--gold-light);font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.pause-vote{border-radius:var(--radius);background:var(--panel-solid);border:1px solid #e7bd5599;align-items:center;gap:8px;margin:8px 4px 0;padding:10px 12px;font-size:14px;animation:.25s fade;display:flex}.pause-vote.ask{border-width:2px;border-color:var(--gold);box-shadow:0 0 16px #e7bd5559}.coach{flex-direction:column;align-items:stretch;gap:6px}.coach-head{color:#6b5414;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;display:flex}.coach-progress{background:#0000001a;border-radius:2px;height:4px;overflow:hidden}.coach-progress div{background:linear-gradient(90deg, var(--gold-dark), var(--gold));height:100%;transition:width .3s}.coach-body{align-items:center;gap:10px;display:flex}.coach-body b{color:#7a4a00}.slide-text{white-space:pre-line}.slide-text b{color:var(--gold-light)}.emote-trigger{background:var(--panel);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border:1px solid #e7bd558c;border-radius:50%;flex:none;width:40px;height:40px;font-size:22px;line-height:1}.emote-trigger:active{transform:scale(.94)}.me-badge{touch-action:manipulation;-webkit-touch-callout:none;cursor:pointer}.emote-fan-backdrop{z-index:48;touch-action:none;background:radial-gradient(at 50% 85%,#0000008c,#00000040 70%);animation:.15s fade;position:fixed;inset:0}.emote-fan{width:0;height:0;position:absolute;left:50%}.emote-fan-item{background:var(--panel-solid);touch-action:none;border:1px solid #e7bd5580;border-radius:50%;width:54px;height:54px;font-size:28px;line-height:1;transition:transform .1s,background .1s,box-shadow .1s;animation:.22s ease-out backwards fan-pop;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 16px #00000073}.emote-fan-item.hot{background:linear-gradient(180deg, var(--gold-light), var(--gold));transform:translate(-50%,-50%)scale(1.18);box-shadow:0 0 0 3px #e7bd5580,0 8px 18px #00000080}.emote-fan-label{z-index:2;white-space:nowrap;color:var(--gold-light);background:var(--panel-solid);pointer-events:none;border:1px solid #e7bd5580;border-radius:999px;padding:4px 12px;font-size:14px;font-weight:700;transition:left .12s ease-out,top .12s ease-out,transform .12s ease-out;position:absolute;top:-24px;left:0;transform:translate(-50%)}@keyframes fan-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}}.chat-dock{top:calc(var(--safe-top) + 52px);z-index:45;-webkit-backdrop-filter:blur(6px);background:#061c13e6;border:1px solid #e7bd5573;border-radius:16px;flex-direction:column;gap:6px;width:min(560px,100% - 16px);height:min(40vh,340px);padding:8px 10px;animation:.2s ease-out slide-down;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000073}.chat-dock-head{align-items:center;gap:6px;display:flex}.chat-dock-head .tabs{flex:1;margin:0}.tabs.compact button{padding:5px 8px;font-size:13px}.chat-dock .chat-input input{min-height:40px;padding:8px 12px;font-size:16px}.chat-dock .chat-input .btn{min-width:46px;min-height:40px;padding:6px 10px}.chat-dock .log-list{flex:1;min-height:0}.emote-strip{scrollbar-width:none;flex:none;gap:4px;display:flex;overflow-x:auto}.emote-strip button{border:1px solid var(--line);background:#ffffff0f;border-radius:50%;flex:none;width:38px;height:38px;font-size:20px;line-height:1}.dealer-chip{color:#2b1d00;background:radial-gradient(circle at 35% 30%, var(--gold-light), var(--gold) 55%, var(--gold-dark));z-index:2;border:2px solid #fff6d6;width:24px;height:24px;font-size:13px;font-weight:900;top:-6px;left:-10px;box-shadow:0 0 0 2px #00000059,0 0 10px #e7bd55b3}.seat-ribbon{white-space:nowrap;letter-spacing:.02em;color:#2b1d00;background:linear-gradient(180deg, var(--gold-light), var(--gold));z-index:5;pointer-events:none;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800;animation:.3s ease-out ribbon-in;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000073,0 0 12px #e7bd5580}.seat-ribbon:after{content:"";border:5px solid #0000;border-top-color:var(--gold);position:absolute;top:100%;left:50%;transform:translate(-50%)}.seat-ribbon.me{font-size:12px;bottom:calc(100% + 2px);left:70px}@keyframes ribbon-in{0%{opacity:0;transform:translate(-50%,6px)}}.lead-tag{text-transform:uppercase;letter-spacing:.06em;color:#2b1d00;background:linear-gradient(180deg, var(--gold-light), var(--gold));border-radius:6px;margin-top:3px;padding:1px 6px;font-size:10px;font-weight:800}.screen.game{padding-bottom:calc(var(--safe-bottom) + 4px)}.game-bar{grid-template-columns:44px 1fr 44px}.game-dock{flex:none;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;display:grid}.dock-btn{border:1px solid var(--line);min-height:44px;color:var(--ink);background:#ffffff0f;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:4px 6px;font-size:13px;font-weight:600;display:flex}.dock-btn:active{background:#ffffff24}.dock-btn.on{border-color:var(--gold);color:var(--gold-light);background:#e7bd5529}.dock-btn.pulse{animation:1.2s ease-in-out infinite pulse}.dock-icon{font-size:18px;line-height:1;position:relative}.dock-icon .badge{position:absolute;top:-8px;right:-12px}.chat-dock.inline{border-radius:14px;flex:none;gap:4px;width:auto;height:auto;margin-top:8px;padding:6px 8px;animation:.18s ease-out slide-up-in;position:static;transform:none}.chat-dock.inline .chat-dock-head .icon-btn{min-width:32px;min-height:32px;font-size:16px}.chat-dock.inline .log-list{flex:none;gap:2px;height:84px;min-height:0}.chat-dock.inline .log-row{font-size:13px}.chat-dock.inline .chat-input input{min-height:36px;padding:6px 12px}.chat-dock.inline .chat-input .btn{min-height:36px}.screen.game.chat-open .felt{min-height:170px}.screen.game.chat-open .me-zone{padding-top:18px}@keyframes slide-up-in{0%{opacity:0;transform:translateY(16px)}}.update-banner{top:calc(var(--safe-top) + 6px);z-index:80;color:#2b1d00;border:2px solid var(--gold);background:#fffaf0;border-radius:999px;justify-content:space-between;align-items:center;gap:8px;padding:5px 5px 5px 12px;font-size:13px;font-weight:600;animation:.25s ease-out slide-down;display:flex;position:fixed;left:max(56px,50% - 224px);right:max(8px,50% - 272px);box-shadow:0 8px 22px #00000073}.update-banner .update-go{background:var(--gold);color:#2b1d00;border:0;border-radius:999px;padding:6px 12px;font-weight:800}.update-banner .update-later{color:#6b5414;background:0 0;border:0;min-width:28px;font-size:15px}.screen.game.chat-open .hand .card.lg{--w:min(14vw, 66px)}.screen.game.chat-open .hand{min-height:calc(1.42*min(14vw,66px) + 12px);padding-top:10px}.screen.game.chat-open .felt{min-height:150px;margin-top:24px}.screen.game.chat-open .me-zone .last-trick{display:none}.chat-dock.inline .log-list{height:64px}@media (max-height:720px){.chat-dock.inline .log-list{height:42px}.chat-dock.inline .tabs.compact button{padding:3px 8px}.dock-btn{min-height:38px}.screen.game.chat-open .me-zone{gap:4px;padding-top:10px}.screen.game.chat-open .hand .card.lg{--w:min(12vw, 56px)}.screen.game.chat-open .hand{min-height:calc(1.42*min(12vw,56px) + 8px);padding-top:6px}}.screen.game{height:100dvh}.felt{min-height:180px}.bid-buttons{flex-wrap:nowrap;gap:5px}.btn.bid{flex:1 1 0;min-width:0;max-width:58px;padding:6px 2px}.btn.bid.pass{flex-grow:1.5;max-width:72px}@media (max-height:760px){.felt{min-height:0;margin-top:2px}.seat{width:70px;padding:4px 3px}.seat-avatar .avatar{font-size:14px;width:30px!important;height:30px!important}.me-zone{gap:6px;padding-top:18px}.bid-panel{gap:5px;padding:6px 8px}.btn.bid{min-height:40px;font-size:17px}.hand{min-height:calc(1.42*min(17.5vw,84px) + 10px);padding-top:10px}.game-dock{margin-top:6px}.dock-btn{min-height:38px}}@media (max-height:600px){.hand .card.lg{--w:min(15vw, 66px)}.hand{min-height:calc(1.42*min(15vw,66px) + 6px);padding-top:6px}.seat-avatar .avatar{font-size:12px;width:24px!important;height:24px!important}.seat-name{font-size:11px}.me-zone{padding-top:14px}.bid-info{font-size:12px}}.play-btn-main{flex-direction:column;align-items:center;gap:2px;padding-top:14px;padding-bottom:12px;font-size:22px;display:flex}.play-btn-main small{opacity:.8;font-size:12px;font-weight:500}.searching h2{margin:0;font-size:22px}.search-pulse{border:2px solid var(--gold);background:#e7bd5524;border-radius:50%;place-items:center;width:84px;height:84px;font-size:38px;animation:1.6s ease-in-out infinite search-pulse;display:grid}@keyframes search-pulse{0%,to{box-shadow:0 0 #e7bd5573}50%{box-shadow:0 0 0 16px #e7bd5500}}.search-seats{grid-template-columns:repeat(4,1fr);gap:10px;width:min(100%,360px);display:grid}.search-seat{flex-direction:column;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex}.search-seat span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.search-seat.me span{color:var(--gold-light);font-weight:700}.search-seat.empty{color:var(--muted)}.search-empty{border:2px dashed #ffffff40;border-radius:50%;place-items:center;width:48px;height:48px;font-size:18px;display:grid}.search-timer{color:var(--gold-light);font-variant-numeric:tabular-nums;margin:0;font-size:18px;font-weight:700}.length-pick{grid-template-columns:1fr 1fr;width:100%;display:grid}.length-pick button{flex-direction:column;align-items:center;gap:1px;padding:7px 6px;line-height:1.2;display:flex}.length-pick small{opacity:.75;font-size:11px;font-weight:500}.search-mode{color:var(--gold-light);margin:-6px 0 0;font-size:14px;font-weight:600}.setting-note{text-align:right;margin:-4px 0 6px}.trump-card{pointer-events:none;z-index:1;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:7%;left:6%}.trump-card .card{transform:rotate(-8deg);box-shadow:0 4px 12px #00000073}.trump-card>.trump-label{color:#2b1d00;background:var(--gold);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:800}.hand.many .card+.card{margin-left:min(calc(var(--w) * -.12), calc((min(100vw, 560px) - 28px - var(--n) * var(--w)) / (var(--n) - 1)))}.hand.many .card.selected{z-index:3}.bid-buttons.many{flex-wrap:wrap}.bid-buttons.many .btn.bid{flex:0 0 calc(14.2857% - 4.28571px);max-width:none;min-height:38px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.stats-cell{border:1px solid var(--line);text-align:center;background:#ffffff0d;border-radius:12px;flex-direction:column;align-items:center;padding:8px 4px;display:flex}.stats-cell b{color:var(--gold-light);font-variant-numeric:tabular-nums;font-size:18px}.stats-cell span{color:var(--muted);font-size:11px;line-height:1.2}.stats-title{margin:6px 0 0}.ach-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.ach{text-align:center;border:1px solid var(--line);background:#ffffff0a;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.ach.got{background:#e7bd551a;border-color:#e7bd5599}.ach.locked{opacity:.55}.ach.locked .ach-icon{filter:grayscale()}.ach-icon{font-size:26px;line-height:1.1}.ach b{font-size:12px}.ach small{color:var(--muted);font-size:10px;line-height:1.2}.tappable{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted #e7bd5599;text-decoration:underline dotted #e7bd5599}.seat-stats-mark{background:var(--panel-solid);border:1px solid #e7bd5580;border-radius:8px;padding:0 3px;font-size:11px;line-height:16px;position:absolute;bottom:-7px;left:-7px}.bid-hint{color:var(--gold-light);margin-top:3px;font-size:12px;display:block}.btn.bid.hinted{outline:2px dashed var(--gold);outline-offset:1px}:root{--card-blue:#1060d8;--card-green:#0f9a3a}.four-color .card.suit-D{color:var(--card-blue)}.four-color .card.suit-C{color:var(--card-green)}.four-color .suit-btn.suit-D{color:#6aa5ff}.four-color .suit-btn.suit-C{color:#5fd27f}.four-preview{background:var(--card);border-radius:6px;gap:1px;padding:1px 5px;font-weight:700;display:inline-flex}.four-preview .s{color:var(--card-ink)}.four-preview .h{color:var(--card-red)}.four-preview .d4{color:var(--card-blue)}.four-preview .c4{color:var(--card-green)}.push-banner{border-radius:var(--radius);background:#e7bd5514;border:1px solid #e7bd5573;padding:10px 12px;font-size:14px}.center-screen{padding-top:calc(var(--safe-top) + 56px);justify-content:safe center;gap:18px}@media (max-height:900px){.center-screen .logo{gap:6px}.center-screen .logo-cards{height:70px}.center-screen .logo-cards .card{--w:48px}.center-screen .logo h1{font-size:34px}}.seat-ribbon.below{top:calc(100% + 6px);bottom:auto}.seat-ribbon.below:after{border-top-color:#0000;border-bottom-color:var(--gold);top:auto;bottom:100%}.hand{flex-direction:column;align-items:center;gap:6px}.hand-row{justify-content:center;width:100%;display:flex;container-type:inline-size}.hand .hand-row .card+.card{margin-left:min(calc(var(--w) * -.12), calc((100cqw - var(--n) * var(--w)) / (var(--n) - 1)))}.hand .hand-row .card.selected{z-index:3}.hand.many .card.lg{--w:min(15vw, 70px)}.hand.many .hand-row+.hand-row{margin-top:calc(var(--w) * -.55)}.hand .card.disabled{opacity:1;filter:grayscale(.55)brightness(.62)}.presence{text-align:center;color:var(--muted);margin:-4px 0 0;font-size:13px}.presence.hot{color:var(--gold-light);font-weight:700}.standing .add-friend{min-height:0;padding:4px 8px;font-size:12px}.leaders{flex-direction:column;gap:4px;display:flex}.leader-row{border:1px solid var(--line);color:var(--ink);text-align:left;background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:6px 10px;display:flex}.leader-row.me{border-color:var(--gold);background:#e7bd551f}.leader-place{text-align:center;width:26px;color:var(--muted);font-weight:700}.leader-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leader-gain{color:var(--pos);font-size:13px;font-weight:700}.leader-rating{text-align:right;min-width:44px;color:var(--gold-light);font-variant-numeric:tabular-nums}.rating-line{text-align:center;margin:0}.rating-line b{color:var(--gold-light)}.bot-level{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}@media (min-width:700px) and (min-height:860px){.felt{--seat-top-min:74px}.seat{width:104px;padding:8px 6px 7px}.seat-avatar .avatar{font-size:22px;width:52px!important;height:52px!important}.seat-name{max-width:96px;font-size:14px}.seat-stats{font-size:15px}.trick-card .card.sm{--w:70px}.deal-info{font-size:16px}.mode-chip{font-size:14px}.me-line{font-size:17px}.rule-hint,.hint{font-size:15px}}@media (min-width:1000px) and (min-height:640px){.app:has(.screen.game){max-width:1100px}.screen.game .me-zone,.screen.game .game-dock{width:100%;max-width:760px;margin-left:auto;margin-right:auto}.screen.game.chat-open{padding-right:356px}.screen.game.chat-open .felt{min-height:300px;margin-top:6px}.screen.game.chat-open .me-zone .last-trick{display:inline}.chat-dock.inline{left:auto;top:calc(var(--safe-top) + 64px);flex-direction:column;width:330px;margin:0;animation:none;display:flex;position:fixed;bottom:24px;right:max(16px,50vw - 542px)}.chat-dock.inline .log-list{flex:1;height:auto}}@media (min-width:1000px) and (min-height:860px){.screen.game .hand .card.lg,.screen.game.chat-open .hand .card.lg{--w:96px}.screen.game .hand,.screen.game.chat-open .hand{min-height:154.32px;padding-top:16px}}.watch-banner{background:#e7bd5524;border:1px solid #e7bd5580;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin:8px 4px 0;padding:6px 8px 6px 12px;font-size:14px;font-weight:600;display:flex}.watchers{top:calc(var(--safe-top) + 12px);color:var(--muted);background:#0000004d;border-radius:999px;padding:2px 8px;font-size:13px;position:absolute;right:12px}.ui-icon{vertical-align:-4px;color:var(--gold);flex:none}.btn.icon-btn-text{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn.gold .ui-icon{color:#2b1d00}.seat-stats-mark .ui-icon{vertical-align:-2px}.icon-title{align-items:center;gap:6px;display:flex}.score th.pl,.score td.pl{border-left:1px solid #e7bd5559}.length-pick.levels{grid-template-columns:repeat(3,1fr)}.home{padding-top:calc(var(--safe-top) + 50px);gap:12px}.home .logo{flex-direction:row;gap:10px}.home .logo-cards{height:54px}.home .logo-cards .card{--w:38px}.home .logo h1{margin:0;font-size:32px}.home .stack.narrow{gap:10px}.home .newbie{padding:8px 10px;font-size:13px}.mode-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mode-row .segmented{grid-template-columns:1fr 1fr;display:grid}.mode-row .segmented button{min-width:0;padding:8px 4px;font-size:13px}.home .play-btn-main{padding-top:10px;padding-bottom:9px}.home-tiles{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.home-tiles .tile{border:1px solid var(--line);color:var(--ink);background:#ffffff0f;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:9px 2px 7px;font-size:11px;font-weight:600;display:flex;position:relative}.home-tiles .tile span:not(.badge){text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.home-tiles .tile .badge{position:absolute;top:4px;right:6px}.copy-code{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:2px 6px;display:inline-flex}.copy-code:active{background:#ffffff14}.copy-code.big{gap:12px}.copy-code .code-inline{letter-spacing:.12em;color:var(--gold-light);font-weight:800}.timer-bar.big{background:#ffffff1a;border:1px solid #ffffff26;border-radius:9px;height:18px;position:relative}.timer-bar.big div{border-radius:9px;transition:width .25s linear}.timer-bar.big .timer-text{color:#fff;text-shadow:0 1px 2px #000000b3;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex;position:absolute;inset:0}.timer-bar.big.low{animation:.8s ease-in-out infinite timer-pulse}@keyframes timer-pulse{50%{box-shadow:0 0 0 3px #d33c3c73}}.seat .bubble{z-index:8;margin:0 0 8px;top:auto;bottom:100%}.seat .bubble:after,.me-bubble:after{content:"";border:6px solid #0000;border-top-color:#fff;position:absolute;top:100%;left:50%;transform:translate(-50%)}.seat .bubble,.me-bubble{overflow:visible}.game-bar>.icon-btn:first-child{min-width:48px;min-height:48px;font-size:30px;line-height:1}.seat .bubble.edge-left{left:-4px;transform:none}.seat .bubble.edge-right{left:auto;right:-4px;transform:none}.seat .bubble.edge-left:after{left:26px}.seat .bubble.edge-right:after{left:auto;right:26px;transform:none}.seat.away{z-index:4}.me-badge.turn{animation:1.1s ease-in-out infinite my-turn}@keyframes my-turn{0%,to{box-shadow:0 0 0 2px var(--glow), 0 0 0 0 rgba(var(--glow-rgb), .7);background:var(--panel)}50%{box-shadow:0 0 0 2px var(--glow-light), 0 0 18px 6px rgba(var(--glow-rgb), .55);background:var(--glow-bg)}}.hint.mine{animation:1.1s ease-in-out infinite my-turn-text}@keyframes my-turn-text{50%{opacity:.55;transform:scale(1.06)}}.bid-pop{z-index:9;background:linear-gradient(180deg, var(--gold-light), var(--gold));color:#2a1d05;white-space:nowrap;pointer-events:none;border-radius:999px;padding:5px 12px;font-size:15px;font-weight:900;animation:1.6s ease-out forwards bid-pop;position:absolute;top:30px;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 14px #00000073}@keyframes bid-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}25%,80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-80%)scale(1)}}.bid-ok{color:#6fe08a}.bid-over{color:#ff9d4d}.bid-under{color:#ff7a7a}.seat-stats.bid-ok,.seat-stats.bid-over,.seat-stats.bid-under{font-weight:800}.bids-note{color:var(--muted);white-space:nowrap;background:#00000047;border-radius:999px;padding:3px 10px;font-size:11px;position:absolute;bottom:calc(8% + 30px);left:50%;transform:translate(-50%)}.bids-note.alone{bottom:8%}.turn-flash{z-index:7;border:2px solid var(--gold);color:var(--gold-light);white-space:nowrap;pointer-events:none;background:#051911e0;border-radius:999px;padding:10px 22px;font-size:24px;font-weight:900;animation:1.2s ease-out forwards turn-flash;position:absolute;top:72%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 24px #e7bd5573}@keyframes turn-flash{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}30%,75%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.trick-card.won{z-index:4}.trick-card.won .card{animation:.65s ease-out forwards trick-won}@keyframes trick-won{40%,to{box-shadow:0 0 0 3px var(--gold), 0 0 22px 6px #e7bd55bf;transform:scale(1.12)}}.card.is-trump:after{content:"";background:linear-gradient(90deg, var(--gold-dark), var(--gold-light), var(--gold-dark));pointer-events:none;border-radius:2px;height:4px;position:absolute;bottom:4px;left:18%;right:18%}.friend-mark{vertical-align:-1px;color:var(--gold);margin-right:3px;display:inline-flex}.throw-row{flex-direction:column;gap:6px;display:flex}.throw-items{justify-content:space-between;gap:6px;display:flex}.throw-btn{border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:12px;flex:1;padding:8px 0;font-size:26px;line-height:1}.throw-btn:active{transform:scale(.92)}.throw-fly{z-index:10;left:var(--fx);top:var(--fy);pointer-events:none;font-size:30px;animation:.65s cubic-bezier(.3,.1,.4,1) forwards throw-fly;position:absolute;transform:translate(-50%,-50%)}@keyframes throw-fly{0%{left:var(--fx);top:var(--fy);transform:translate(-50%,-50%)scale(.6)rotate(0)}50%{transform:translate(-50%,-120%)scale(1.3)rotate(200deg)}96%{opacity:1}to{left:var(--tx);top:var(--ty);opacity:0;transform:translate(-50%,-50%)scale(1)rotate(360deg)}}.throw-hit{--h:.62s;z-index:9;pointer-events:none;width:0;height:0;margin-top:-10px;position:absolute}.throw-hit>*{font-style:normal;line-height:1;animation-fill-mode:both;display:block;position:absolute;top:0;left:0;translate:-50% -50%}@keyframes hit-fly{0%{opacity:0;transform:translate(0)scale(.3)rotate(0)}8%{opacity:1}55%{opacity:1;transform:translate(var(--dx), var(--dy)) scale(var(--s,1)) rotate(var(--r,0deg))}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) + 22px)) scale(calc(var(--s,1) * .7)) rotate(var(--r,0deg))}}@keyframes hit-splat{0%{opacity:0;transform:scale(.2)}12%{opacity:1;transform:scale(1.15,.95)}22%{transform:scale(1)}75%{opacity:.95;transform:translateY(3px)scaleY(1.04)}to{opacity:0;transform:translateY(8px)scale(.98,1.08)}}@keyframes hit-drip{0%{opacity:0;height:0}15%{opacity:1}70%{opacity:1;height:var(--len)}to{opacity:0;height:calc(var(--len) + 6px)}}@keyframes hit-squash{0%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(1.7,.35)}to{opacity:0;transform:scale(1.9,.2)}}.throw-hit .drop{width:7px;height:7px;animation:hit-fly .75s ease-out calc(var(--h) + var(--d,0s)) both;border-radius:50%}.throw-hit .drip{top:6px;left:var(--x);width:5px;animation:hit-drip 1.3s ease-in calc(var(--h) + .25s + var(--d,0s)) both;border-radius:3px 3px 4px 4px;translate:-50%}.hit-tomato .squash{animation:hit-squash .16s ease-out var(--h) both;font-size:30px}.hit-tomato .splat{fill:#d62218e6;stroke:#ff6e5acc;stroke-width:2px;filter:drop-shadow(0 2px 2px #50000073);width:46px;height:46px;animation:hit-splat 1.7s ease-out var(--h) both}.hit-tomato .drop{background:#e3332a}.hit-tomato .drip{background:linear-gradient(#d8261c,#b51a12)}.hit-egg .white{fill:#faf8eceb;width:54px;height:54px;animation:hit-splat 1.8s ease-out var(--h) both}.hit-egg .yolk{width:22px;height:22px;animation:hit-yolk 1.8s ease-in var(--h) both;background:radial-gradient(circle at 35% 30%,#fff3a8 0 18%,#ffc21a 40%,#f09a00 100%);border-radius:50%;box-shadow:0 1px 2px #00000059}@keyframes hit-yolk{0%{opacity:0;transform:scale(.3)}12%{opacity:1;transform:scale(1.2,.85)}25%{transform:scale(1)}80%{opacity:1;transform:translateY(12px)scale(.92,1.25)}to{opacity:0;transform:translateY(20px)scale(.85,1.4)}}.hit-egg .shell{fill:#f6ead2;stroke:#c9b48c;stroke-width:1.5px;width:22px;height:17px;animation:hit-shell-l .9s cubic-bezier(.2, .6, .5, 1) var(--h) both}.hit-egg .shell.right{animation-name:hit-shell-r}@keyframes hit-shell-l{0%{opacity:1;transform:translate(0)rotate(0)}35%{transform:translate(-24px,-16px)rotate(-70deg)}to{opacity:0;transform:translate(-34px,26px)rotate(-160deg)}}@keyframes hit-shell-r{0%{opacity:1;transform:translate(0)rotate(180deg)}35%{transform:translate(24px,-14px)rotate(250deg)}to{opacity:0;transform:translate(34px,28px)rotate(340deg)}}.hit-egg .chip{width:5px;height:4px;animation:hit-fly .7s ease-out calc(var(--h) + var(--d,0s)) both;background:#f1e3c4;border-radius:1px}.hit-egg .drip{background:linear-gradient(#ffc21a,#f0a400)}.hit-beer .mug{transform-origin:30% 80%;animation:hit-mug 1.5s ease-in-out calc(var(--h) - 50ms) both;font-size:28px;top:-34px;left:14px}@keyframes hit-mug{0%{opacity:1;transform:rotate(0)}25%{transform:rotate(-115deg)}70%{opacity:1;transform:rotate(-125deg)}to{opacity:0;transform:translateY(-10px)rotate(-60deg)}}.hit-beer .stream{transform-origin:top;width:7px;height:30px;animation:hit-stream .9s ease-out calc(var(--h) + .25s) both;background:linear-gradient(90deg,#f6b42c,#ffd766 50%,#e79a12);border-radius:4px;top:-28px;left:2px;translate:-50%}@keyframes hit-stream{0%{opacity:0;transform:scaleY(0)}20%{opacity:.95;transform:scaleY(1)}70%{opacity:.9;transform:scaleX(.7)}to{opacity:0;transform:translateY(26px)scale(.3,.2)}}.hit-beer .wet{width:50px;height:50px;animation:hit-wet 1.9s ease-out calc(var(--h) + .4s) both;background:radial-gradient(at 40% 25%,#fff5c88c 0 12%,#ffc8468c 30%,#e18c0f80 62%,#e18c0f00 72%);border-radius:50%}@keyframes hit-wet{0%{opacity:0;transform:translateY(-20px)scale(.3,.1)}20%{opacity:1;transform:scale(1)}75%{opacity:.85;transform:translateY(4px)scaleY(1.05)}to{opacity:0;transform:translateY(10px)scale(.95,1.1)}}.hit-beer .foam{left:var(--x);width:11px;height:11px;animation:hit-foam 1.1s ease-out calc(var(--h) + var(--d)) both;background:#fffaf0;border-radius:50%;top:-16px;box-shadow:0 0 0 1px #c8a0504d}@keyframes hit-foam{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1)}70%{opacity:1;transform:translateY(6px)scale(1.15)}to{opacity:0;transform:translateY(8px)scale(1.6)}}.hit-beer .drip{animation-delay:calc(var(--h) + .55s + var(--d));background:linear-gradient(#ffcd50f2,#e69614d9);top:10px}.hit-beer .drop{width:6px;height:6px;animation-delay:calc(var(--h) + .7s + var(--d));background:#ffc94a;top:20px}.hit-snow .flash{width:46px;height:46px;animation:hit-flash .5s ease-out var(--h) both;background:radial-gradient(circle,#fff 0 30%,#c8ebff99 55%,#0000 70%);border-radius:50%}@keyframes hit-flash{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.8)}}.hit-snow .frost{width:58px;height:58px;animation:hit-frost 1.8s ease-out calc(var(--h) + 50ms) both;background:radial-gradient(circle,#bee6ff26 40%,#bee6ff8c 68%,#0000 72%);border:2px solid #dcf5ffe6;border-radius:50%;box-shadow:0 0 14px #aadcffe6}@keyframes hit-frost{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.05)}25%{transform:scale(1)}75%{opacity:.9}to{opacity:0;transform:scale(1.04)}}.hit-snow .flake{color:#e8f7ff;text-shadow:0 0 4px #9fd8ff;animation:hit-fly 1.1s ease-out calc(var(--h) + var(--d)) both;font-size:13px}.hit-snow .crumb{width:5px;height:5px;animation:hit-fly .6s ease-out calc(var(--h) + var(--d)) both;background:#f4fbff;border-radius:50%}.hit-rose .flower{animation:hit-rose 2s ease-out calc(var(--h) - 20ms) both;font-size:30px}@keyframes hit-rose{0%{opacity:1;transform:scale(1)rotate(0)}15%{transform:scale(1.35)rotate(-14deg)}30%{transform:scale(1.1)rotate(-8deg)}80%{opacity:1;transform:scale(1.1)rotate(-10deg)}to{opacity:0;transform:translateY(6px)scale(.9)rotate(-16deg)}}.hit-rose .glow{width:60px;height:60px;animation:hit-frost 2s ease-out var(--h) both;background:radial-gradient(circle,#ff78968c,#ff789600 70%);border-radius:50%}.hit-rose .petal{width:9px;height:7px;animation:hit-petal 1.7s ease-out calc(var(--h) + .15s + var(--d)) both;background:linear-gradient(135deg,#ff4d6d,#b5122f);border-radius:80% 0}@keyframes hit-petal{0%{opacity:0;transform:translate(0)rotate(0)}15%{opacity:1}40%{transform:translate(var(--dx), calc(var(--dy) * .4)) rotate(var(--r))}70%{opacity:1;transform:translate(calc(var(--dx) * .7), calc(var(--dy) * .4 + 26px)) rotate(calc(var(--r) * -.5))}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) * .4 + 44px)) rotate(var(--r))}}.hit-rose .spark{color:#ffe08a;animation:hit-fly 1s ease-out calc(var(--h) + .1s + var(--d)) both;font-size:11px}.hit-kiss .lips{animation:hit-lips 1.9s ease-out calc(var(--h) - 20ms) both;font-size:30px}@keyframes hit-lips{0%{opacity:1;transform:scale(1)rotate(0)}12%{transform:scale(1.6)rotate(-14deg)}22%{transform:scale(1.05)rotate(-12deg)}80%{opacity:1;transform:scale(1.1)rotate(-12deg)}to{opacity:0;transform:scale(1.2)rotate(-12deg)}}.hit-kiss .ring{width:44px;height:44px;animation:hit-flash .6s ease-out calc(var(--h) + 80ms) both;border:3px solid #ff5a8ce6;border-radius:50%}.hit-kiss .heart{color:#ff4f86;text-shadow:0 0 4px #ff4f8699;animation:hit-heart 1.4s ease-out calc(var(--h) + .15s + var(--d)) both;font-size:14px}@keyframes hit-heart{0%{opacity:0;transform:translate(0)scale(.4)}20%{opacity:1}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) - 20px)) scale(var(--s))}}@media (prefers-reduced-motion:reduce){.throw-hit>*{animation-duration:10ms!important}}.score .bot-mark{vertical-align:super;margin-left:2px;font-size:9px}.replay-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.replay-title{text-align:center;flex-direction:column;flex:1;align-items:center;line-height:1.25;display:flex}.replay-trick{border:1px solid var(--line);background:radial-gradient(#28784673,#0a321e59);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:8px;min-height:112px;padding:10px 6px;display:flex}.replay-trick>p{align-self:center}.replay-play{flex-direction:column;align-items:center;gap:3px;max-width:72px;display:flex}.replay-play .card{cursor:default}.replay-play.win .card{box-shadow:0 0 0 2px var(--gold), 0 0 12px #e7bd55b3}.replay-who{text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-size:11px;overflow:hidden}.replay-play.win .replay-who{color:var(--gold);font-weight:700}.replay-mdl{color:var(--gold);text-align:center;font-size:10px;line-height:1.1}.replay-winner{color:var(--gold);margin:0;font-size:13px}.replay-hands{flex-direction:column;gap:8px;display:flex}.replay-hand{border:1px solid var(--line);background:#ffffff0a;border-radius:12px;padding:8px 10px}.replay-hand.me{border-color:#e7bd558c}.replay-hand-head{align-items:baseline;gap:4px;margin-bottom:6px;font-size:13px;display:flex}.replay-score{color:var(--muted,#aab);white-space:nowrap;margin-left:auto;font-size:12px}.replay-cards{flex-wrap:wrap;gap:3px;min-height:20px;display:flex}.replay-cards .card{--w:34px;cursor:default}.versus{border:1px solid var(--line);background:#ffffff0a;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;display:flex}.versus-score{align-items:baseline;gap:8px;font-size:13px;display:flex}.versus-score b{font-size:20px}.versus-me b{color:#6fe08a}.versus-them b{color:#ff9d4d}.versus-sep{opacity:.6;font-size:18px}@media (orientation:landscape) and (max-height:520px){.screen.game{--rail:56px;padding-top:calc(var(--safe-top) + 2px);padding-bottom:calc(var(--safe-bottom) + 4px);padding-left:max(8px, env(safe-area-inset-left));padding-right:calc(max(6px, env(safe-area-inset-right)) + var(--rail) + 6px)}.game-bar{grid-template-columns:40px 1fr 40px;min-height:30px;padding:0}.game-bar>.icon-btn:first-child{min-width:36px;min-height:30px;font-size:22px}.deal-info{flex-direction:row;justify-content:center;align-items:baseline;gap:8px;font-size:13px}.felt,.screen.game.chat-open .felt{--seat-top-min:28px;border-width:4px;border-radius:42%/48%;min-height:0;margin:2px 2px 0}.seat{border-radius:12px;grid-template-columns:auto auto auto;grid-template-areas:"av name name""av stats pill";place-items:center start;gap:0 5px;width:auto;min-width:100px;padding:3px 8px 3px 3px;display:grid}.seat-avatar{grid-area:av;padding:2px}.seat-avatar .avatar{font-size:14px;width:30px!important;height:30px!important}.seat-name{grid-area:name;max-width:92px;font-size:12px}.seat-stats{white-space:nowrap;grid-area:stats;font-size:12px}.seat .score-pill{grid-area:pill;justify-self:end;margin-top:0;padding:0 7px;font-size:12px}.me-zone,.screen.game.chat-open .me-zone{grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:center;gap:6px 10px;padding-top:14px;display:grid;position:relative}.me-zone>*{grid-column:1}.me-zone>.hand{grid-area:1/2/span 5}.me-line{flex-wrap:nowrap;justify-content:flex-start;gap:6px;max-width:46vw;min-height:0}.me-badge{white-space:nowrap;padding:4px 10px;font-size:12px}.hint{text-align:left;white-space:nowrap;font-size:13px}.me-line .emote-trigger{width:32px;height:32px;font-size:18px}.timer-bar.big{height:16px}.me-zone .last-trick,.screen.game.chat-open .me-zone .last-trick{justify-self:start;font-size:13px;display:block}.me-zone .play-btn{justify-self:stretch;min-height:38px}.afk-banner,.bid-panel{z-index:6;width:-moz-fit-content;width:fit-content;max-width:min(560px,100%);margin:0 auto;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 6px 20px #00000080}.afk-banner{background:#461414eb;gap:12px}.bid-panel{background:var(--panel-solid);gap:4px;padding:6px 10px}.btn.bid{flex:none;width:46px;max-width:none;min-height:38px;font-size:16px}.btn.bid.pass{width:60px;max-width:none}.bid-buttons.many{flex-wrap:wrap}.hand,.screen.game.chat-open .hand{min-height:91.2px;padding-top:6px}.hand .card.lg,.hand.many .card.lg,.screen.game.chat-open .hand .card.lg{--w:60px}.game-dock{z-index:20;top:calc(var(--safe-top) + 6px);bottom:calc(var(--safe-bottom) + 6px);right:max(6px, env(safe-area-inset-right));width:var(--rail);grid-template-rows:repeat(3,minmax(0,76px));grid-template-columns:1fr;align-content:center;gap:8px;margin:0;position:fixed}.dock-btn{text-align:center;flex-direction:column;gap:3px;min-height:0;padding:6px 2px;font-size:10px;line-height:1.1}.dock-icon{font-size:20px}.chat-dock.inline{z-index:19;top:calc(var(--safe-top) + 6px);bottom:calc(var(--safe-bottom) + 6px);left:auto;right:calc(max(6px, env(safe-area-inset-right)) + var(--rail) + 8px);background:var(--panel-solid);flex-direction:column;width:min(340px,46vw);margin:0;animation:none;display:flex;position:fixed;box-shadow:-8px 0 24px #00000073}.chat-dock.inline .log-list{flex:1;height:auto}.sheet{max-height:calc(100dvh - 8px);padding-bottom:calc(var(--safe-bottom) + 8px)}.sheet.tall{height:calc(100dvh - 8px)}.sheet .score-wrap{max-height:calc(100dvh - 96px)}.me-zone:has(.hand.many) .hint{display:none}.bid-info{font-size:11px}.coach{gap:6px;margin:4px 2px 0;padding:6px 10px;font-size:13px;line-height:1.3}.coach-head{font-size:11px}.coach-progress{display:none}.home.home-land{padding-top:calc(var(--safe-top) + 8px);padding-bottom:calc(var(--safe-bottom) + 8px);padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));flex-direction:row;justify-content:center;align-items:center;gap:clamp(20px,5vw,48px)}.home-land .home-side{align-items:center;gap:12px;width:min(400px,46vw)}.home-land .home-side .home-tiles{width:100%}.home-land .home-side .newbie{text-align:center;flex-direction:column;align-items:stretch;gap:6px;width:100%;font-size:12px}.home-land .home-tiles .tile{letter-spacing:-.02em;padding:7px 0 5px;font-size:9.5px}.home-land .mode-row .segmented button{padding:6px 2px;font-size:12px}.home-land .code-input{letter-spacing:.12em}.home-land>.stack.narrow{gap:8px;width:min(380px,44vw);max-width:none}.home-land .play-btn-main{padding-top:8px;padding-bottom:7px;font-size:20px}.home-land .btn,.home-land .code-input,.home-land .join-row .btn{min-height:40px}.home-land .presence{margin:-2px 0}.sheet:has(.game-menu){max-width:720px}.game-menu{grid-template-columns:1fr 1fr;gap:8px;display:grid}.game-menu .prefs{display:contents}.game-menu>p,.game-menu>small{grid-column:1/-1;margin:-2px 0 0}.game-menu .btn{min-height:40px;padding-top:6px;padding-bottom:6px}.bids-note,.bids-note.alone{bottom:4%;left:22%}.rule-hint{max-width:36%;bottom:4%;left:78%}.me-zone:has(.hand.many) .emote-trigger{display:none}}@media (orientation:landscape) and (max-height:520px) and (max-width:720px){.home-land .logo h1{white-space:nowrap;font-size:24px}.home-land .logo-cards{height:44px}.home-land .logo-cards .card{--w:30px}.home-land .mode-row .segmented button{font-size:11px}.home-land .home-tiles .tile{font-size:8.5px}}@media (orientation:landscape) and (max-height:520px){.fly-card .card{--w:32px}.fly-card .card .back-mark{font-size:7px}.app{max-width:none}.hand,.screen.game.chat-open .hand{min-height:96.88px}.hand .card.lg,.hand.many .card.lg,.screen.game.chat-open .hand .card.lg{--w:64px}.trick-card .card.sm{--w:46px}.seat-avatar .avatar{font-size:15px;width:34px!important;height:34px!important}.seat-name{max-width:110px;font-size:13px}.seat-stats,.seat .score-pill{font-size:13px}}@media (orientation:landscape) and (max-height:380px){.hand,.screen.game.chat-open .hand{min-height:88.36px}.hand .card.lg,.hand.many .card.lg,.screen.game.chat-open .hand .card.lg{--w:58px}.trick-card .card.sm{--w:44px}.seat-avatar .avatar{width:30px!important;height:30px!important}.seat-name,.seat-stats,.seat .score-pill{font-size:12px}}@media (orientation:landscape) and (max-height:520px){.me-zone,.screen.game.chat-open .me-zone{grid-template-rows:auto auto auto;grid-template-columns:minmax(118px,150px) minmax(0,1fr) minmax(118px,150px);gap:4px 8px;padding-top:12px}.me-zone>*{grid-column:1}.me-zone>.hand{grid-area:1/2/span 3}.me-line{display:contents}.me-badge{text-align:center;white-space:normal;border-radius:14px;flex-direction:column;grid-area:1/1/span 2;justify-self:stretch;gap:3px;padding:6px 8px}.me-badge .score-pill.me{font-size:16px}.me-badge .dealer-chip{position:absolute;top:-8px;left:-6px}.me-line .seat-ribbon.me{top:-6px;bottom:auto;left:8px}.me-line .emote-trigger{grid-area:1/3;justify-self:center}:is(.me-line .hint,.me-zone:has(.hand.many) .hint){text-align:center;white-space:normal;grid-area:2/3;font-size:12px;line-height:1.2;display:block}.me-zone .timer-bar.big{grid-area:3/3;align-self:center}.me-zone .last-trick,.screen.game.chat-open .me-zone .last-trick{grid-area:3/1;justify-self:center;font-size:12px}.me-zone .play-btn{z-index:1;grid-area:3/3;min-height:34px}.me-zone>.btn.gold:not(.play-btn){grid-area:3/1}.me-zone:has(.hand.many) .emote-trigger{display:inline-flex}.me-line .me-bubble{left:8px}}.bids-note.over{color:#ff9d4d;background:#ff9d4d1f;box-shadow:inset 0 0 0 1px #ff9d4d73}.bids-note.under{color:#8fd0ff;background:#78beff1a;box-shadow:inset 0 0 0 1px #78beff66}.emote-fan-label.hot{padding:5px 14px;font-size:16px;box-shadow:0 6px 16px #00000080}.emote-fan-label.edge-left{transform:translate(-30%)}.emote-fan-label.edge-right{transform:translate(-70%)}.card{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Arial,sans-serif}.card .corner{line-height:.9;top:3%;left:6%}.card .rank{font-size:calc(var(--w) * .38);letter-spacing:-.04em;font-weight:800}.card .rank.wide{font-size:calc(var(--w) * .33);letter-spacing:-.1em;margin-left:-.06em}.card .suit{font-size:calc(var(--w) * .32);margin-top:1px}.card .pip{font-size:calc(var(--w) * .62);bottom:3%;right:6%}.card .face-mark{font-size:calc(var(--w) * .26);color:#c99a2e;line-height:1;position:absolute;top:7%;right:9%}.felt{background:radial-gradient(ellipse at 50% 38%, #ffffff1a, transparent 58%) padding-box, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") padding-box, var(--felt-pattern) padding-box, radial-gradient(ellipse at center, var(--felt-hi) 0%, var(--felt) 55%, var(--felt-lo) 100%) padding-box, var(--rim) border-box;border-color:#0000;box-shadow:inset 0 0 0 2px #e7bd5561,inset 0 0 44px #00000080,0 0 0 1px #24150a,0 12px 30px #00000073}@media not ((orientation:landscape) and (max-height:520px)){.trick-card .card.sm{--w:58px}}.over-head{border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:6px 0 2px;display:flex;position:relative;overflow:hidden}.over-head b{font-size:22px}.over-head.win b{color:var(--gold-light);text-shadow:0 0 14px #e7bd5599}.over-medal{font-size:40px;line-height:1;animation:.5s cubic-bezier(.2,1.6,.5,1) both over-pop}@keyframes over-pop{0%{opacity:0;transform:scale(.2)rotate(-20deg)}}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{opacity:0;border-radius:2px;width:7px;height:11px;animation:1.8s ease-in both confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--drift), 130px) rotate(var(--rot))}}.standings.reveal .standing{animation:.35s ease-out both standing-in;animation-delay:calc(.25s + var(--i,0) * .14s)}.standings.reveal .standing.first{box-shadow:0 0 0 1px #e7bd5599,0 0 16px #e7bd5540}@keyframes standing-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}.over-extras{flex-direction:column;gap:6px;animation:.4s ease-out .9s both standing-in;display:flex}.over-rating,.over-ach{border:1px solid var(--line);background:#ffffff0d;border-radius:12px;align-items:center;gap:6px;padding:8px 12px;font-size:14px;display:flex}.over-delta{margin-left:auto;font-weight:800}.over-rating.up .over-delta{color:#6fe08a}.over-rating.down .over-delta{color:#ff7a7a}.over-ach{color:var(--gold-light);background:#e7bd551a;border-color:#e7bd5580}@media (prefers-reduced-motion:reduce){.confetti{display:none}}.history-card{border-left-width:4px}.history-card.place-1{background:linear-gradient(90deg, #e7bd551a, transparent 45%), var(--panel);border-left-color:#e7bd55}.history-card.place-2{border-left-color:#c9d1d9}.history-card.place-3{border-left-color:#cd8a4f}.history-card.place-4{border-left-color:#ffffff2e}.history-chips{align-items:center;gap:6px;display:flex}.history-chips .chip{border:1px solid var(--line);color:var(--muted);background:#ffffff12;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.history-date{margin-left:auto}.rating-chip{background:#ffffff14;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:800}.rating-chip.up{color:#6fe08a;background:#6fe08a1f}.rating-chip.down{color:#ff7a7a;background:#ff7a7a1f}@media (orientation:landscape) and (max-height:520px){.over-head{flex-direction:row;justify-content:center;gap:10px;padding:2px 0}.over-medal{font-size:28px}.over-head b{font-size:18px}}.home{min-height:100dvh}.profile-card{border:1px solid var(--line);width:100%;max-width:340px;color:var(--ink);text-align:left;background:#ffffff0d;border-radius:999px;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:flex}.profile-card:active{background:#ffffff1a}.profile-card-text{flex-direction:column;gap:1px;min-width:0;font-size:14px;display:flex}.profile-card-text b{color:var(--gold-light)}.profile-card-text small{font-size:12px}.search-seat.empty .search-empty{animation:1.8s ease-in-out infinite seat-wait}.search-seat.empty:nth-child(2) .search-empty{animation-delay:.3s}.search-seat.empty:nth-child(3) .search-empty{animation-delay:.6s}.search-seat.empty:nth-child(4) .search-empty{animation-delay:.9s}@keyframes seat-wait{0%,to{opacity:.55;border-color:#e7bd5559;transform:scale(.94)}50%{opacity:1;border-color:#e7bd55cc;transform:scale(1)}}.search-seat:not(.empty){animation:.45s cubic-bezier(.2,1.5,.5,1) both seat-join}@keyframes seat-join{0%{opacity:0;transform:translateY(-18px)scale(.6)}}@media (prefers-reduced-motion:reduce){.search-seat.empty .search-empty,.search-seat:not(.empty){animation:none}}:root{--felt-hi:#18744f;--felt-lo:#0a4430;--felt-pattern:linear-gradient(transparent, transparent);--rim:linear-gradient(160deg, #9a6a35 0%, #6b4420 22%, #4a2d12 45%, #7d5227 70%, #3f260f 100%);--back:repeating-linear-gradient(45deg, #e7bd552e 0 4px, transparent 4px 9px), linear-gradient(160deg, #8c1f2a, #4a0d14)}:root.table-blue{--felt-hi:#1f6a9c;--felt:#16507a;--felt-lo:#0e3858;--felt-dark:#0c2e4a;--felt-deep:#081e32;--panel:#04101ecc;--panel-solid:#0c2539}:root.table-red{--felt-hi:#8e2c3d;--felt:#6e2030;--felt-lo:#501622;--felt-dark:#3e111a;--felt-deep:#2a0b12;--panel:#1e060bcc;--panel-solid:#3a131b}:root.table-graphite{--felt-hi:#4a5258;--felt:#353b40;--felt-lo:#24282c;--felt-dark:#1d2023;--felt-deep:#131517;--panel:#0a0c0ed1;--panel-solid:#22262a}:root.table-purple{--felt-hi:#6b3a8f;--felt:#522a70;--felt-lo:#3a1d52;--felt-dark:#2d1640;--felt-deep:#1e0e2c;--panel:#14081ecc;--panel-solid:#2c1840}:root.table-teal{--felt-hi:#188a8a;--felt:#106a6b;--felt-lo:#0a4c4d;--felt-dark:#083c3d;--felt-deep:#052829;--panel:#031616cc;--panel-solid:#0a3536}:root.pattern-diamonds{--felt-pattern:repeating-linear-gradient(45deg, #ffffff0b 0 1.5px, transparent 1.5px 22px), repeating-linear-gradient(-45deg, #ffffff0b 0 1.5px, transparent 1.5px 22px)}:root.pattern-honeycomb{--felt-pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='48' viewBox='0 0 28 48'%3E%3Cpath d='M14 0 L28 8 L28 24 L14 32 L0 24 L0 8 Z M14 32 L14 48' fill='none' stroke='white' stroke-opacity='0.06' stroke-width='1.2'/%3E%3C/svg%3E")}:root.rim-lightwood{--rim:linear-gradient(160deg, #dcae72 0%, #b8834a 25%, #8f5f30 50%, #c8955a 75%, #87592b 100%)}:root.rim-leather{--rim:linear-gradient(160deg, #3a3a3a 0%, #1c1c1c 35%, #0e0e0e 60%, #2a2a2a 100%)}:root.rim-gold{--rim:linear-gradient(160deg, #f7e08a 0%, #c99a2e 28%, #8a6514 52%, #e7bd55 78%, #9c7420 100%)}:root.rim-leather .felt{outline-offset:-3px;outline:1.5px dashed #e7bd55b3}.card.back{background:var(--back)}:root.back-blue{--back:repeating-linear-gradient(45deg, #e7bd5529 0 4px, transparent 4px 9px), linear-gradient(160deg, #1f55a8, #0d2552)}:root.back-green{--back:repeating-linear-gradient(45deg, #e7bd5529 0 4px, transparent 4px 9px), linear-gradient(160deg, #1d7a45, #0b3a20)}:root.back-black{--back:repeating-linear-gradient(45deg, #e7bd5542 0 2px, transparent 2px 8px), linear-gradient(160deg, #2a2a2a, #0a0a0a)}:root:not(.emblem-none) .felt:before{z-index:0;pointer-events:none;color:#ffffff12;white-space:nowrap;letter-spacing:.08em;font-family:Georgia,Times New Roman,serif;font-weight:800;line-height:1;position:absolute;top:68%;left:50%;transform:translate(-50%,-50%)}:root.emblem-mdl .felt:before{content:"MDL";font-size:clamp(40px,16vmin,84px)}:root.emblem-suits .felt:before{content:"♠ ♥ ♦ ♣";font-size:clamp(26px,9vmin,48px)}:root.emblem-crown .felt:before{content:"♛";font-size:clamp(56px,22vmin,120px)}.decor-preview{justify-content:center;display:flex}.felt.decor-felt:before{top:50%!important}.felt.decor-felt{flex:none;justify-content:center;align-items:center;width:min(100%,300px);height:130px;min-height:0;margin:0;display:flex}.decor-cards{z-index:1;gap:8px;display:flex;position:relative}.decor-cards .card{--w:44px}.decor-h{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:4px 0 0;font-size:13px}.decor-row{flex-wrap:wrap;gap:8px;display:flex}.decor-preset,.decor-option{border:1px solid var(--line);color:var(--ink);background:#ffffff0d;border-radius:12px;align-items:center;gap:8px;padding:7px 12px 7px 8px;font-size:13px;font-weight:600;display:flex}.decor-preset.on,.decor-option.on,.decor-swatch.on{border-color:var(--gold);box-shadow:0 0 0 2px #e7bd5573}.decor-swatch{border:2px solid #ffffff40;border-radius:50%;width:40px;height:40px}.decor-mini{border:3px solid #6b4420;border-radius:50%;width:30px;height:20px}.felt-green{background:radial-gradient(circle,#18744f,#0a4430)}.felt-blue{background:radial-gradient(circle,#1f6a9c,#0e3858)}.felt-red{background:radial-gradient(circle,#8e2c3d,#501622)}.felt-graphite{background:radial-gradient(circle,#4a5258,#24282c)}.felt-purple{background:radial-gradient(circle,#6b3a8f,#3a1d52)}.felt-teal{background:radial-gradient(circle,#188a8a,#0a4c4d)}.decor-mini.rim-wood{border-color:#6b4420}.decor-mini.rim-lightwood{border-color:#b8834a}.decor-mini.rim-leather{border-color:#1c1c1c}.decor-mini.rim-gold{border-color:#d4a73c}.decor-pattern{background-color:#0f5a3c;border-radius:6px;width:26px;height:26px}.decor-pattern.pat-diamonds{background-image:repeating-linear-gradient(45deg,#ffffff40 0 1px,#0000 1px 7px),repeating-linear-gradient(-45deg,#ffffff40 0 1px,#0000 1px 7px)}.decor-pattern.pat-honeycomb{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='17' viewBox='0 0 28 48'%3E%3Cpath d='M14 0 L28 8 L28 24 L14 32 L0 24 L0 8 Z M14 32 L14 48' fill='none' stroke='white' stroke-opacity='0.4' stroke-width='3'/%3E%3C/svg%3E")}.decor-ring{background:#0f5a3c;border:5px solid;border-radius:50%;width:26px;height:26px}.rimswatch-wood{border-color:#6b4420}.rimswatch-lightwood{border-color:#b8834a}.rimswatch-leather{outline-offset:-4px;border-color:#1a1a1a;outline:1px dashed #e7bd55cc}.rimswatch-gold{border-color:#d4a73c}.decor-back{width:22px;height:31px;color:var(--gold-light);border:1.5px solid #f4e3b0;border-radius:4px;place-items:center;font-size:6px;font-weight:800;display:grid}.backswatch-red{background:linear-gradient(160deg,#8c1f2a,#4a0d14)}.backswatch-blue{background:linear-gradient(160deg,#1f55a8,#0d2552)}.backswatch-green{background:linear-gradient(160deg,#1d7a45,#0b3a20)}.backswatch-black{background:linear-gradient(160deg,#2a2a2a,#0a0a0a)}.decor-emblem{text-align:center;min-width:26px;color:var(--gold-light);font-family:Georgia,serif;font-size:13px;font-weight:800}.scroll-rail-wrap{flex:1;min-height:0;display:flex;position:relative}.scroll-rail-box{scrollbar-width:none;flex:1;min-height:0;padding-right:16px;overflow-y:auto}.scroll-rail-box::-webkit-scrollbar{display:none}.scroll-rail{background:#ffffff1a;border-radius:3px;width:6px;position:absolute;top:2px;bottom:2px;right:2px}.scroll-rail i{background:linear-gradient(180deg, var(--gold-light), var(--gold));touch-action:none;cursor:grab;border-radius:6px;position:absolute;left:-3px;right:-3px;box-shadow:0 0 6px #e7bd5580}.sheet-body>.scroll-rail-wrap{height:100%}.decor-top{border-bottom:1px solid var(--line);flex-direction:column;flex:none;gap:4px;margin-bottom:4px;padding-bottom:8px;display:flex}.decor-top p{margin:0;font-size:12px}.felt.decor-felt{height:112px}.sheet-body:has(>.decor-top)>.scroll-rail-wrap{height:auto}@media (orientation:landscape) and (max-height:520px){.felt.decor-felt{height:84px}.decor-cards .card{--w:36px}}:root.bg-velvet body{background:radial-gradient(ellipse at 50% 35%, #ffffff12, transparent 60%), repeating-linear-gradient(90deg, #00000017 0 2px, transparent 2px 5px), radial-gradient(120% 90% at 50% 30%, var(--felt-dark), var(--felt-deep) 70%, #000 125%) fixed}:root.bg-wood body{background:radial-gradient(130% 90% at 50% 40%,#0000 35%,#0009 100%),repeating-linear-gradient(0deg,#0000000f 0 1px,#0000 1px 7px),repeating-linear-gradient(90deg,#4f3119 0 92px,#2e1c0d 92px 95px,#5a381d 95px 186px,#2e1c0d 186px 189px) fixed}:root.bg-stars body{background-color:#0000;background-image:radial-gradient(1.5px 1.5px at 20px 30px,#ffffffe6,#0000),radial-gradient(1px 1px at 80px 120px,#ffffffb3,#0000),radial-gradient(1.5px 1.5px at 150px 60px,#fffc,#0000),radial-gradient(1px 1px at 200px 170px,#fff9,#0000),radial-gradient(1px 1px at 120px 210px,#ffffffb3,#0000),radial-gradient(120% 80% at 50% 0,#1a2350 0%,#0a0f26 55%,#04060f 100%);background-position:0 0,0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat,repeat;background-size:230px 230px,230px 230px,230px 230px,230px 230px,230px 230px,100% 100%;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box}:root.bg-city body{background:radial-gradient(40px 40px at 12% 82%,#ffb45059,#0000),radial-gradient(60px 60px at 30% 92%,#ff5a8c47,#0000),radial-gradient(50px 50px at 55% 86%,#78b4ff4d,#0000),radial-gradient(70px 70px at 78% 94%,#ffc8644d,#0000),radial-gradient(45px 45px at 92% 80%,#a078ff4d,#0000),linear-gradient(#0b0f24 0%,#1b1838 55%,#2b1e3e 100%) fixed}:root.light-warm .felt:after,:root.light-cool .felt:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;position:absolute;inset:0}:root.light-warm .felt:after{background:radial-gradient(60% 55% at 50% 35%,#ffd78c33,#0000 70%)}:root.light-cool .felt:after{background:radial-gradient(60% 55% at 50% 35%,#aad7ff2e,#0000 70%)}:root.pattern-snow{--felt-pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cg fill='white' fill-opacity='0.08'%3E%3Ccircle cx='8' cy='10' r='1.6'/%3E%3Ccircle cx='38' cy='22' r='1.1'/%3E%3Ccircle cx='22' cy='44' r='1.4'/%3E%3Ccircle cx='52' cy='50' r='1'/%3E%3C/g%3E%3Cg stroke='white' stroke-opacity='0.08' stroke-width='1'%3E%3Cpath d='M46 6v8M42 10h8M43 7l6 6M49 7l-6 6'/%3E%3C/g%3E%3C/svg%3E")}:root.back-checks{--back:repeating-conic-gradient(#e7bd5538 0 25%, transparent 0 50%) 0 0 / 8px 8px, linear-gradient(160deg, #1e2a5a, #0b1230)}:root.back-chevron{--back:linear-gradient(135deg, #e7bd554d 25%, transparent 25%) -6px 0 / 12px 12px, linear-gradient(225deg, #e7bd554d 25%, transparent 25%) -6px 0 / 12px 12px, linear-gradient(160deg, #0f5a3c, #06301f)}:root.back-royal{--back:radial-gradient(circle, #e7bd5566 0 1.6px, transparent 2.2px) 0 0 / 9px 9px, radial-gradient(circle, #e7bd5533 0 1px, transparent 1.5px) 4.5px 4.5px / 9px 9px, linear-gradient(160deg, #4a1d6a, #1e0a30)}:root.back-initials .back-mark{font-family:Georgia,Times New Roman,serif;font-size:calc(var(--w) * .3)}:root.emblem-snow .felt:before{content:"❄";font-size:clamp(56px,22vmin,120px)}:root.emblem-sun .felt:before{content:"☀";font-size:clamp(56px,22vmin,120px)}:root.emblem-moon .felt:before{content:"☾";font-size:clamp(56px,22vmin,120px)}:root.emblem-text .felt:before{content:var(--felt-text);font-size:clamp(26px,10vmin,56px)}:root{--glow:#e7bd55;--glow-light:#f3d27a;--glow-rgb:231, 189, 85;--glow-bg:#785a14d9}:root.glow-emerald{--glow:#3fd27f;--glow-light:#8ff0b6;--glow-rgb:63, 210, 127;--glow-bg:#145a32d9}:root.glow-ice{--glow:#6ccfff;--glow-light:#c4ecff;--glow-rgb:108, 207, 255;--glow-bg:#14466ed9}:root.glow-fire{--glow:#ff7a2e;--glow-light:#ffc06a;--glow-rgb:255, 122, 46;--glow-bg:#78280ad9}.card.selected{box-shadow:0 0 0 3px var(--glow), 0 8px 16px #0006}.avatar-frame{border-radius:50%;flex:none;display:inline-flex;position:relative}.avatar-frame>.avatar{border:0}.frame-silver{box-shadow:0 0 0 2px #eef1f5,0 0 0 3.5px #8a929c}.frame-gold{box-shadow:0 0 0 2px #f7e08a,0 0 0 3.5px #a8802a,0 0 8px #e7bd5599}.frame-neon{animation:2.4s ease-in-out infinite alternate frame-neon;box-shadow:0 0 0 2px #4ff3ff,0 0 10px 2px #4ff3ffbf,0 0 16px 4px #ff4fd866}@keyframes frame-neon{to{box-shadow:0 0 0 2px #ff6be0,0 0 10px 2px #ff6be0bf,0 0 16px 4px #4ff3ff66}}.frame-laurel{box-shadow:0 0 0 2px #9ccf6a,0 0 0 3.5px #c99a2e}.frame-laurel:before,.frame-laurel:after{content:"🌿";pointer-events:none;font-size:12px;line-height:1;position:absolute;bottom:-5px}.frame-laurel:before{left:-7px;transform:rotate(-30deg)scaleX(-1)}.frame-laurel:after{right:-7px;transform:rotate(30deg)}.name-badge{margin-right:3px}@media (prefers-reduced-motion:reduce){.frame-neon{animation:none}}.decor-bgswatch{border:1px solid var(--line);border-radius:5px;width:30px;height:22px}.bgswatch-plain{background:radial-gradient(circle, var(--felt), var(--felt-deep))}.bgswatch-velvet{background:repeating-linear-gradient(90deg, #0003 0 2px, transparent 2px 4px), radial-gradient(circle, var(--felt-dark), #000)}.bgswatch-wood{background:repeating-linear-gradient(90deg,#5a381d 0 9px,#2e1c0d 9px 10px)}.bgswatch-stars{background:radial-gradient(1px 1px at 6px 6px,#fff,#0000),radial-gradient(1px 1px at 20px 14px,#fff,#0000),radial-gradient(1px 1px at 12px 17px,#fff,#0000),#0a0f26}.bgswatch-city{background:radial-gradient(5px 5px at 6px 17px,#ffb450e6,#0000),radial-gradient(6px 6px at 18px 19px,#ff5a8ccc,#0000),linear-gradient(#0b0f24,#2b1e3e)}.decor-light,.decor-glow{background:var(--felt);border:1px solid var(--line);border-radius:50%;width:24px;height:24px}.lightswatch-warm{background:radial-gradient(circle at 50% 35%, #ffd78ce6, var(--felt) 70%)}.lightswatch-cool{background:radial-gradient(circle at 50% 35%, #aad7ffe6, var(--felt) 70%)}.glowswatch-gold{box-shadow:0 0 0 2px #e7bd55,0 0 8px #e7bd55cc}.glowswatch-emerald{box-shadow:0 0 0 2px #3fd27f,0 0 8px #3fd27fcc}.glowswatch-ice{box-shadow:0 0 0 2px #6ccfff,0 0 8px #6ccfffcc}.glowswatch-fire{box-shadow:0 0 0 2px #ff7a2e,0 0 8px #ff7a2ecc}.decor-pattern.pat-snow{background-image:radial-gradient(circle,#fff9 0 1px,#0000 1.5px);background-size:7px 7px}.backswatch-checks{background:repeating-conic-gradient(#e7bd5580 0 25%, transparent 0 50%) 0 0 / 6px 6px, #1e2a5a}.backswatch-chevron{background:linear-gradient(135deg,#e7bd5580 25%,#0000 25%) -3px 0/6px 6px,linear-gradient(225deg,#e7bd5580 25%,#0000 25%) -3px 0/6px 6px,#0f5a3c}.backswatch-royal{background:radial-gradient(circle,#e7bd55b3 0 1px,#0000 1.5px) 0 0/5px 5px,#4a1d6a}.backswatch-initials{background:linear-gradient(160deg,#8c1f2a,#4a0d14);font-family:Georgia,serif;font-size:9px}.decor-text{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#00000040;border-radius:10px;padding:6px 12px;font-size:15px}.decor-slider{align-items:center;gap:10px;font-size:13px;display:flex}.decor-slider input[type=range]{accent-color:var(--gold);flex:1}.decor-shared{color:var(--gold-light)}.decor-badges{gap:6px}.decor-badge{border:1px solid var(--line);background:#ffffff0d;border-radius:10px;width:40px;height:40px;font-size:20px;line-height:1}.decor-badge.on{border-color:var(--gold);box-shadow:0 0 0 2px #e7bd5573}.decor-option:disabled,.decor-badge:disabled{opacity:.5}.rating-chart svg{background:#ffffff0a;border-radius:12px;width:100%;height:auto;display:block}.rating-chart .line{fill:none;stroke:var(--gold);stroke-width:2.2px;stroke-linejoin:round}.rating-chart .area{fill:#e7bd551f}.rating-chart .dot{fill:var(--gold-light)}.rating-chart-legend{justify-content:space-between;align-items:baseline;margin-top:4px;display:flex}.rating-chart-legend .up{color:#6fe08a;font-weight:700}.rating-chart-legend .down{color:#ff7a7a;font-weight:700}.kind-bars{flex-direction:column;gap:6px;display:flex}.kind-bar{grid-template-columns:96px 1fr 44px;align-items:center;gap:8px;font-size:13px;display:grid}.kind-bar i{background:#ffffff14;border-radius:4px;height:8px;overflow:hidden}.kind-bar i b{background:linear-gradient(90deg, var(--gold-dark), var(--gold-light));border-radius:4px;height:100%;display:block}.kind-bar small{text-align:right}.stats-extra{flex-direction:column;gap:8px;margin-top:4px;display:flex}.stats-card{border:1px solid var(--line);color:var(--ink);text-align:left;background:#ffffff0d;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.stats-card>span:first-child{font-size:22px}.stats-card>span:last-child{flex-direction:column;gap:1px;display:flex}.clubs{flex-direction:column;gap:8px;display:flex}.clubs h3{margin:4px 0 0}.club-row{width:100%;color:var(--ink);text-align:left;background:0 0;border:0}.club-icon{font-size:22px}.club-code{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.club-board{flex-direction:column;gap:4px;display:flex}.club-board-row{border:1px solid var(--line);background:#ffffff0d;border-radius:10px;align-items:center;gap:10px;padding:8px 12px;display:flex}.club-board-row.first{background:#e7bd5514;border-color:#e7bd5599}.club-place{text-align:center;width:22px;font-weight:800}.club-board-row b{color:var(--gold-light);font-size:18px}.dot{background:#ffffff40;border-radius:50%;width:9px;height:9px}.dot.on{background:#4cd964}.invite-all{gap:8px;margin-bottom:10px}.advice-btn{background:var(--panel);border:1px solid #e7bd558c;border-radius:50%;flex:none;width:36px;height:36px;font-size:18px;line-height:1}.advice-note{color:var(--gold-light);background:#e7bd551f;border:1px solid #e7bd5580;border-radius:12px;padding:8px 12px;font-size:13px;line-height:1.35;animation:.2s ease-out pop}.hand .card.advised{z-index:2;transform:translateY(-8px);box-shadow:0 0 0 3px #7fd0ff,0 0 14px #7fd0ffcc}@media (orientation:landscape) and (max-height:520px){.me-line .advice-btn{grid-area:1/3;justify-self:end;width:32px;height:32px}.me-zone>.advice-note{z-index:7;background:var(--panel-solid);width:-moz-fit-content;width:fit-content;max-width:min(520px,100%);margin:0 auto;position:absolute;bottom:calc(100% + 6px);left:0;right:0}}.analysis-progress{flex-direction:column;gap:6px;font-size:13px;display:flex}.analysis-progress i{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.analysis-progress i b{background:linear-gradient(90deg, var(--gold-dark), var(--gold-light));height:100%;transition:width .2s;display:block}.analysis-good{color:#6fe08a;font-weight:700}.analysis-row{border:1px solid var(--line);color:var(--ink);text-align:left;background:#ffffff0d;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.analysis-deal{flex-direction:column;align-items:center;min-width:52px;display:flex}.analysis-deal b{color:var(--gold-light);font-size:18px}.analysis-item{border-radius:12px;flex-direction:column;display:flex}.analysis-item.open .analysis-row{border-color:#e7bd558c;border-bottom-right-radius:0;border-bottom-left-radius:0}.analysis-details{background:#00000026;border:1px solid #e7bd558c;border-top:0;border-radius:0 0 12px 12px;flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.analysis-details p{margin:0}.analysis-hand{flex-wrap:wrap;gap:4px;display:flex}.analysis-hand .card{--w:34px}.analysis-why{flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;line-height:1.35;display:flex}.analysis-values{flex-wrap:wrap;gap:6px;display:flex}.analysis-chip{border:1px solid var(--line);background:#ffffff0d;border-radius:999px;padding:3px 9px;font-size:12px}.analysis-chip.best{color:#6fe08a;border-color:#6fe08a}.analysis-chip.yours{color:#ff9d4d;border-color:#ff9d4d}.history-chips .chip.people{color:#8fd0ff;background:#78beff1a;border-color:#78beff73}.history-chips{flex-wrap:wrap;row-gap:4px}.history-chips .chip,.history-date{white-space:nowrap}.analysis-why-btn{color:var(--gold-light);border:1px solid #e7bd5580;border-radius:999px;flex:none;padding:3px 8px;font-size:12px;font-weight:700}.home-tiles{grid-template-columns:repeat(3,1fr)}.home-tiles .tile-emoji{font-size:22px;line-height:24px}.puzzle-dots{align-items:center;gap:8px;display:flex}.puzzle-dot{border:1px solid var(--line);width:34px;height:34px;color:var(--ink);background:#ffffff0f;border-radius:50%;font-weight:800}.puzzle-dot.on{border-color:var(--gold);box-shadow:0 0 0 2px #e7bd5573}.puzzle-dot.ok{color:#6fe08a;background:#6fe08a33}.puzzle-dot.bad{color:#ff7a7a;background:#ff7a7a2e}.puzzle-streak{margin-left:auto}.puzzle-card{background:radial-gradient(ellipse at center, var(--felt-hi), var(--felt) 60%, var(--felt-lo));border:4px solid #5a3a1c;border-radius:16px;flex-direction:column;gap:8px;padding:14px;display:flex}.puzzle-card p{margin:0}.puzzle-q{color:var(--gold-light);font-size:18px;font-weight:800}.puzzle-trick{flex-wrap:wrap;justify-content:center;gap:10px;padding:6px 0;display:flex}.puzzle-trick-card{flex-direction:column;align-items:center;gap:3px;display:flex}.puzzle-trick-card small{color:var(--muted);font-size:11px}.puzzle-hand{flex-wrap:wrap;justify-content:center;gap:6px;padding-top:6px;display:flex}.puzzle-hand .card.best,.puzzle-bids .btn.best{box-shadow:0 0 0 3px #6fe08a,0 0 14px #6fe08ab3}.puzzle-hand .card.wrong,.puzzle-bids .btn.wrong{box-shadow:0 0 0 3px #ff7a7a}.puzzle-bids .btn.bid{flex:none;width:52px}.puzzle-result{border:1px solid var(--line);background:#ffffff0d;border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;animation:.2s ease-out pop;display:flex}.puzzle-result.ok b{color:#6fe08a;font-size:17px}.puzzle-result.bad b{color:#ff9d4d;font-size:17px}.login-buttons{align-items:center;gap:8px}.login-slot{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;justify-content:center;min-height:40px;display:flex}.analysis-main{color:var(--ink);margin:0;font-size:14px;line-height:1.4}.puzzle-whynot{border-left:3px solid #e7bd5599;padding-left:8px}.puzzle-result .puzzle-whynot b{font-size:inherit;color:var(--gold,#e7bd55)}.practice-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:10px;padding:12px}.practice-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.offline-menu .content{padding-top:calc(16px + var(--safe-top))}.offline-head{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.offline-links{flex-direction:column;gap:8px;display:flex}.login-card{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.login-card.attention{border-color:#e7bd55b3;box-shadow:0 0 0 1px #e7bd5540}.login-card p{margin:0}.login-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.login-chip{color:var(--pos);background:#7be0a126;border-radius:999px;padding:2px 8px;font-size:12px}.login-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.login-row .login-slot{min-height:32px}.tg-invites-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.tg-invites-row .btn.small{flex:none}.profile-card-go{color:var(--gold);margin-left:auto;padding-left:4px;font-size:22px;line-height:1}.profile-card-dot{background:var(--gold);border-radius:50%;flex:none;width:9px;height:9px;margin-left:auto;box-shadow:0 0 0 3px #e7bd5540}.profile-card-dot+.profile-card-go{margin-left:0}.home-tiles .tile .tile-bot{font-size:13px;line-height:1;position:absolute;top:3px;right:5px}.home-tiles .tile .tile-sub{color:var(--gold-light);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:-3px;font-size:9.5px;font-weight:500;overflow:hidden}.jump-practice{align-self:flex-start}#practice{scroll-margin-top:12px}
