:root{--felt-1: #16584a;--felt-2: #0d352c;--felt-edge: #06201b;--brass: #cda349;--brass-bright: #f3da93;--brass-deep: #95722b;--cream: #f5edd8;--cream-2: #ece0c2;--ink: #241b11;--ink-soft: #6a5b44;--red: #a8322a;--black: #221a12;--line: rgba(149, 114, 43, .5);--line-soft: rgba(149, 114, 43, .28);--font-display: "Cinzel", Georgia, serif;--font-body: "Outfit", system-ui, -apple-system, sans-serif;--shadow-card: 0 1px 1px rgba(0, 0, 0, .18), 0 10px 22px -10px rgba(0, 0, 0, .55);--shadow-panel: 0 24px 60px -22px rgba(0, 0, 0, .7)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-body);color:var(--cream);background:radial-gradient(ellipse 130% 90% at 50% -25%,var(--felt-1) 0%,var(--felt-2) 52%,var(--felt-edge) 100%) fixed;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:repeating-conic-gradient(from 0deg at 50% 26%,rgba(205,163,73,.06) 0deg 1.6deg,transparent 1.6deg 13deg);-webkit-mask-image:radial-gradient(circle at 50% 26%,#000 0%,transparent 58%);mask-image:radial-gradient(circle at 50% 26%,#000 0%,transparent 58%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#app{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:22px 18px 48px}.app-head{display:flex;align-items:center;gap:14px;margin-bottom:22px}.app-head h1{margin:0;font-family:var(--font-display);font-weight:700;font-size:30px;letter-spacing:4px;line-height:1;background:linear-gradient(180deg,var(--brass-bright),var(--brass) 55%,var(--brass-deep));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 1px 0 rgba(0,0,0,.25)}.app-head .tagline{font-family:var(--font-display);font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#f3da939e;border-left:1px solid var(--line);padding-left:14px;align-self:stretch;display:flex;align-items:center}.app-head .spacer{flex:1}.app-head>.muted{color:#f5edd8b3;font-size:13px;letter-spacing:.5px}.screen{display:flex;flex-direction:column;gap:16px}h3{font-family:var(--font-display);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:15px}.muted{color:var(--ink-soft);font-size:13px}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.5px}.mono.big{font-size:22px;letter-spacing:3px;color:var(--ink);background:linear-gradient(180deg,#fff8e6,var(--cream-2));padding:10px 16px;border-radius:6px;display:inline-block;margin-bottom:12px;box-shadow:0 0 0 1px var(--line) inset,0 2px #0000000a}.tag{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:3px 10px;border-radius:999px;color:var(--brass-bright);background:#00000038;border:1px solid var(--line-soft)}.panel .tag,.you .tag,.player .tag{color:var(--brass-deep);background:#95722b1a;border-color:var(--line-soft)}.tag.active{color:#123;background:linear-gradient(180deg,var(--brass-bright),var(--brass));border-color:var(--brass-deep)}.tag.lobby{color:var(--brass-bright)}.error{font-size:14px;padding:11px 15px;border-radius:6px;color:#fff2ee;background:linear-gradient(180deg,#b4392f,#8f2a22);box-shadow:0 0 0 1px #ffc8be40 inset}.info{font-size:14px;padding:11px 15px;border-radius:6px;line-height:1.4;color:#1d3a26;background:linear-gradient(180deg,#e9f4e0,#d8ecc8);box-shadow:0 0 0 1px #2d7a4d4d inset}.auth-link{font-size:13px;margin:8px 0 0}.linkbtn{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--brass-deep);cursor:pointer;text-decoration:underline}.linkbtn:hover{color:var(--brass)}.btn{font-family:var(--font-body);font-weight:600;font-size:14px;letter-spacing:.4px;color:var(--ink);background:linear-gradient(180deg,#fbf4e2,var(--cream-2));border:1px solid var(--brass-deep);border-radius:6px;padding:9px 16px;cursor:pointer;box-shadow:0 1px #ffffffb3 inset,0 6px 14px -8px #00000080;transition:transform .08s ease,box-shadow .18s ease,filter .18s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 1px #ffffffb3 inset,0 10px 20px -8px #0000008c}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none;box-shadow:none}.btn.primary{color:#2a1d05;background:linear-gradient(180deg,var(--brass-bright),var(--brass) 55%,var(--brass-deep));border-color:#7c5e22;text-shadow:0 1px 0 rgba(255,255,255,.35)}.btn.primary:hover{box-shadow:0 0 0 1px #fff0c880 inset,0 12px 26px -8px #b48228b3}.btn.small{padding:6px 11px;font-size:12px}.btn.tiny{padding:3px 9px;font-size:12px;box-shadow:none}.btn.ghost{background:transparent;color:var(--brass-bright);border-color:var(--line);box-shadow:none}.btn.ghost:hover{background:#cda3491f;filter:none}.btn.hint{border-color:var(--brass);animation:hintpulse 1.6s ease-in-out infinite}@keyframes hintpulse{0%,to{box-shadow:0 0 #cda34900}50%{box-shadow:0 0 0 4px #cda34959}}.text{width:100%;padding:11px 13px;font-family:var(--font-body);font-size:14px;color:var(--ink);background:#fffaec;border:1px solid var(--line);border-radius:6px;transition:box-shadow .18s ease,border-color .18s ease}.text:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px #cda34947}select.text{cursor:pointer}.panel{position:relative;background:linear-gradient(180deg,#f7f0dd,#efe3c5);border-radius:8px;padding:20px;color:var(--ink);box-shadow:0 1px #fff9 inset,0 0 0 1px var(--brass-deep),var(--shadow-panel)}.panel:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid var(--line-soft);border-radius:4px;pointer-events:none}.panel>*{position:relative}.panel label{display:block;font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass-deep);margin-bottom:7px}.panel.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.col{display:flex;flex-direction:column;gap:10px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel h3{margin-top:0;color:var(--ink)}.lobby .panel{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.lobby .panel:nth-child(3){animation-delay:.06s}.lobby .panel:nth-child(4){animation-delay:.12s}.game-list{display:flex;flex-direction:column}.game-row{display:flex;align-items:center;gap:12px;padding:11px 4px;border-top:1px solid var(--line-soft)}.game-row:first-child{border-top:none}.game-row .btn{margin-left:auto}.game-name{font-family:var(--font-display);font-weight:600;letter-spacing:.5px;color:var(--ink)}.game-row .id-hint{font-size:11px;opacity:.7}.appbar .meta .game-name{color:var(--brass-bright);font-size:14px}.topbar{display:flex;align-items:center;gap:10px;color:var(--cream);font-size:14px}.topbar .mono{color:var(--brass-bright)}.topbar .btn{margin-left:auto}.banner{text-align:center;padding:11px;border-radius:6px;font-family:var(--font-display);font-weight:600;letter-spacing:2px;text-transform:uppercase;font-size:15px;color:#f5edd8d9;background:#00000040;box-shadow:0 0 0 1px #ffffff0a inset}.banner.you{color:#2a1d05;background:linear-gradient(180deg,var(--brass-bright),var(--brass) 60%,var(--brass-deep));box-shadow:0 0 22px -2px #cda3498c,0 1px #fff6 inset;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);animation:ribbon 2.6s ease-in-out infinite}.banner.win{font-size:20px;color:#2a1d05;background:linear-gradient(180deg,var(--brass-bright),var(--brass));box-shadow:0 0 36px -2px #f3da93b3}.banner .timer{font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:1px;opacity:.85}.banner .timer.low{color:var(--red);font-weight:700;opacity:1;animation:blink 1s steps(2,jump-none) infinite}.last-action{text-align:center;font-size:13px;letter-spacing:.4px;color:#f3da93c7;margin-top:-6px}.can-lay{font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--brass-deep);animation:hintpulse 1.6s ease-in-out infinite;padding:2px 8px;border-radius:999px}.players{display:flex;flex-wrap:wrap;gap:12px}.player{position:relative;background:linear-gradient(180deg,#f7f0dd,#ece0c2);border-radius:8px;padding:12px 14px;min-width:168px;color:var(--ink);box-shadow:0 0 0 1px var(--line-soft),0 10px 24px -16px #0009}.player.current{box-shadow:0 0 0 1px var(--brass),0 0 20px -3px #cda34999}.player-top{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:14px;color:#2a1d05;background:linear-gradient(180deg,var(--brass-bright),var(--brass-deep));box-shadow:0 0 0 1px #ffffff4d inset}.player-name{font-family:var(--font-display);font-weight:600;letter-spacing:.5px}.player-meta{display:flex;gap:7px;align-items:center;font-size:12px;margin-top:9px;flex-wrap:wrap}.player .laid{margin-top:8px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#2f7a4d;font-weight:600}.table-area{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.melds{flex:1;min-width:300px;border-radius:12px;padding:14px 16px;background:radial-gradient(120% 100% at 50% 0%,#ffffff0f,#00000024);box-shadow:0 0 0 1px var(--line-soft) inset}.melds h3{margin:0 0 10px;color:var(--brass-bright)}.meld{background:#00000029;border-radius:8px;padding:9px 10px;margin-bottom:9px;box-shadow:0 0 0 1px #ffffff0a inset}.meld-head{display:flex;align-items:center;gap:8px;margin-bottom:7px;color:#f5edd8d9;font-size:13px}.meld-head .muted{color:#f3da93b3;font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;font-size:11px}.meld-head .btn{margin-left:4px}.meld-cards{display:flex;gap:5px;flex-wrap:wrap}.piles{display:flex;gap:14px}.pile{text-align:center}.pile-label{font-family:var(--font-display);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#f3da93bf;margin-bottom:6px}.pile.clickable .card{outline:2px dashed var(--brass);outline-offset:2px;cursor:pointer}.pile.clickable .card:hover{transform:translateY(-4px)}.card{position:relative;width:58px;height:82px;flex:none;background:linear-gradient(160deg,#fffdf6,#f4ead2);border-radius:8px;color:var(--black);-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-card)}.card:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(34,26,18,.12);border-radius:5px;pointer-events:none}.card.red{color:var(--red)}.card.black{color:var(--black)}.card .corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:.92}.card .corner .r{font-family:var(--font-body);font-weight:700;font-size:15px}.card .corner .s{font-size:11px;margin-top:1px}.card .corner.tl{top:5px;left:6px}.card .corner.br{bottom:5px;right:6px;transform:rotate(180deg)}.card .pip{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:30px;opacity:.9}.card.wild{background:linear-gradient(160deg,#fffdf6,#fbeec2)}.card.wild:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;box-shadow:0 0 0 1px #cda3498c inset;pointer-events:none}.card .wildmark{position:absolute;top:4px;right:6px;font-size:10px;color:var(--brass-deep)}.card.wildplayed{background:linear-gradient(160deg,#fbf6e9,#efe7d3);opacity:.93}.card.wildplayed:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;box-shadow:0 0 0 1px #786e5f73 inset;pointer-events:none}.card.wildplayed .wildmark{color:var(--brass)}.card.clickable{cursor:pointer;transition:transform .13s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease}.card.clickable:hover{transform:translateY(-12px);box-shadow:0 1px 1px #0003,0 18px 30px -12px #0009;z-index:5}.card.selected{transform:translateY(-18px);z-index:6;box-shadow:0 0 0 2px var(--brass),0 0 22px -2px #cda349b3,0 18px 30px -12px #0009}.card.empty{background:#0000002e;box-shadow:0 0 0 1px var(--line-soft) inset;display:grid;place-items:center;color:#f3da9380;font-size:22px}.card.empty:after{display:none}.card.back{display:grid;place-items:center;color:var(--brass-bright);font-family:var(--font-display);font-weight:700;font-size:19px;background:repeating-linear-gradient(45deg,rgba(205,163,73,.22) 0 4px,transparent 4px 9px),repeating-linear-gradient(-45deg,rgba(205,163,73,.22) 0 4px,transparent 4px 9px),linear-gradient(160deg,#15564a,#0c3329);box-shadow:var(--shadow-card),0 0 0 1px var(--brass-deep) inset}.card.back:after{border-color:#cda34973;top:5px;right:5px;bottom:5px;left:5px}.hand{display:flex;flex-wrap:wrap;gap:7px;padding:22px 6px 8px}.hand .card{transition:transform .13s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease}.you{position:relative;border-radius:12px;padding:16px 18px;color:var(--ink);background:linear-gradient(180deg,#f7f0dd,#ece0c2);box-shadow:0 1px #ffffff80 inset,0 0 0 1px var(--brass-deep),var(--shadow-panel)}.you.myturn{box-shadow:0 1px #ffffff80 inset,0 0 0 2px var(--brass),0 0 28px -4px #cda34999,var(--shadow-panel)}.you-head{display:flex;align-items:center;gap:12px;margin-bottom:4px;flex-wrap:wrap}.you-head strong{font-family:var(--font-display);font-weight:600;letter-spacing:.5px;font-size:16px}.actions{display:flex;gap:9px;align-items:center;margin-top:14px;flex-wrap:wrap}.hand-tools{display:flex;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap;font-size:12px}.hand-tools .dim{opacity:.6}.hand .card{cursor:grab;touch-action:none}.hand .card.drag-over{outline:2px dashed var(--brass);outline-offset:3px}.card.dragging{transition:none!important;cursor:grabbing;box-shadow:0 16px 34px -8px #0009}.scoreboard{padding:14px 16px}.score-table{width:100%;border-collapse:collapse;font-size:13px}.score-table th{text-align:left;font-family:var(--font-display);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--brass-deep);padding:4px 8px;border-bottom:1px solid var(--line)}.score-table td{padding:6px 8px;border-bottom:1px solid var(--line-soft)}.score-table td:nth-child(3){font-variant-numeric:tabular-nums}.score-table tr.me td{font-weight:700;color:var(--brass-deep)}.laydown{position:relative;border-radius:10px;padding:16px;background:linear-gradient(180deg,#fdf7e4,#f3e8ca);color:var(--ink);box-shadow:0 0 0 1px var(--brass),0 18px 40px -20px #0009}.laydown-head{display:flex;gap:12px;align-items:baseline;margin-bottom:12px}.laydown-head strong{font-family:var(--font-display);letter-spacing:1px}.slots{display:flex;gap:12px;flex-wrap:wrap}.slot{border:2px dashed var(--line);border-radius:8px;padding:9px;min-width:130px;min-height:100px;cursor:pointer;background:#fff6;transition:border-color .15s ease,background .15s ease}.slot.active{border-color:var(--brass);border-style:solid;background:#fffaec;box-shadow:0 0 16px -4px #cda34999}.slot-label{font-family:var(--font-display);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--brass-deep);margin-bottom:7px}.slot-cards{display:flex;gap:4px;flex-wrap:wrap}.auth-wrap{min-height:62vh;display:grid;place-items:center}.auth-wrap .panel{width:min(420px,100%);animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.auth-wrap label{margin-top:12px}#app:has(.screen.game){padding:12px 14px 0;max-width:none}.screen.game{height:calc(100dvh - 24px);gap:8px}.appbar{display:flex;align-items:center;gap:12px;color:var(--cream);flex:none}.appbar .brand{display:flex;align-items:baseline;gap:8px}.appbar .logo{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:2.5px;background:linear-gradient(180deg,var(--brass-bright),var(--brass-deep));-webkit-background-clip:text;background-clip:text;color:transparent}.appbar .tagline{font-family:var(--font-display);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#f3da938c}.appbar .meta{display:flex;align-items:center;gap:8px;font-size:13px;color:#f5edd8d9}.appbar .meta .mono{color:var(--brass-bright)}.appbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.appbar-actions .who{font-size:12px}.poker{position:relative;flex:1;min-height:0;width:100%;max-width:1120px;margin:0 auto}.poker:before{content:"";position:absolute;top:4%;right:1%;bottom:4%;left:1%;border-radius:46%/50%;background:radial-gradient(120% 120% at 50% 32%,#1c6353,#0e3d33 58%,#0a2d26);box-shadow:0 0 0 7px #95722b66,0 0 0 9px #140c058c,0 30px 60px -22px #000000b3,inset 0 0 80px #00000073}.poker:after{content:"";position:absolute;top:4%;right:1%;bottom:4%;left:1%;border-radius:46%/50%;pointer-events:none;background:repeating-conic-gradient(from 0deg at 50% 42%,rgba(205,163,73,.05) 0 1.4deg,transparent 1.4deg 14deg);-webkit-mask-image:radial-gradient(circle at 50% 42%,#000 0%,transparent 60%);mask-image:radial-gradient(circle at 50% 42%,#000 0%,transparent 60%)}.seat{position:absolute;transform:translate(-50%,-50%);z-index:3}.seat .player{min-width:0;padding:7px 11px}.seat .player-meta{font-size:11px;gap:6px}.table-center{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:12px}.turn-pill{font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;font-size:13px;padding:7px 18px;border-radius:999px;color:#f5edd8e0;background:#00000052}.turn-pill.you{color:#2a1d05;background:linear-gradient(180deg,var(--brass-bright),var(--brass-deep));box-shadow:0 0 24px -2px #cda34999;animation:ribbon 2.6s ease-in-out infinite}.turn-pill.win{color:#2a1d05;background:linear-gradient(180deg,var(--brass-bright),var(--brass));font-size:17px}.table-center .piles{display:flex;gap:16px}.table-center .activity{font-size:12px;color:#f3da93c7}.my-melds{position:absolute;left:50%;bottom:2.5%;transform:translate(-50%);z-index:4;display:flex;gap:8px;align-items:flex-end;max-width:72%;overflow-x:auto;padding:4px 2px}.my-melds .meld-chip{background:#0006;box-shadow:0 0 0 1px #cda34959 inset}.my-melds .meld-chip .chip-cards .card{width:27px;height:38px;margin-right:-13px}.my-melds .meld-chip .chip-foot{color:#f3da93d9}.seat-melds{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:7px;max-width:210px}.meld-chip{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 8px 4px;border-radius:8px;background:#00000052;cursor:pointer;flex:none;box-shadow:0 0 0 1px #ffffff0d inset;transition:transform .08s ease,box-shadow .15s ease}.meld-chip:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--brass) inset}.meld-chip .chip-cards{display:flex}.meld-chip .chip-cards .card{width:22px;height:31px;margin-right:-12px;border-radius:4px;box-shadow:0 1px 2px #0006}.meld-chip .chip-cards .card:last-child{margin-right:0}.meld-chip .chip-cards .card:after,.meld-chip .chip-cards .card .pip,.meld-chip .chip-cards .card .corner.br,.meld-chip .chip-cards .card .wildmark{display:none}.meld-chip .chip-cards .card .corner.tl{top:2px;left:3px}.meld-chip .chip-cards .card .corner.tl .r{font-size:10px}.meld-chip .chip-cards .card .corner.tl .s{font-size:7px}.meld-chip .chip-cards .card.wildplayed{opacity:.85}.meld-chip .chip-foot{font-size:10px;letter-spacing:.5px;color:#f3da93b3}.meld-big{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:12px 0}.you-area{flex:none;color:var(--ink);padding:9px 16px 10px;border-radius:14px 14px 0 0;background:linear-gradient(180deg,#f7f0dd,#ece0c2);box-shadow:0 -12px 34px -20px #000000b3,0 0 0 1px var(--brass-deep)}.you-area.myturn{box-shadow:0 -12px 34px -20px #000000b3,0 0 0 2px var(--brass),0 0 28px -6px #cda3498c}.you-area .you-head{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}.you-area .you-head strong{font-family:var(--font-display);font-size:16px}.you-area .you-head .contract{font-size:12px}.avatar.small{width:26px;height:26px;font-size:12px}.you-area .hand-tools{margin-top:0}.you-area .hand{display:flex;flex-wrap:nowrap;gap:7px;justify-content:safe center;overflow-x:auto;overflow-y:hidden;padding:16px 2px 4px}.you-area .hand .card{flex:none}.you-area .hand .card.clickable:hover{transform:translateY(-7px)}.you-area .hand .card.selected{transform:translateY(-9px)}.you-area .actions{margin-top:8px}@media(min-width:1024px){.you-area .hand .card{width:68px;height:96px}.you-area .hand{gap:9px;padding-top:20px}.table-center .piles .card{width:64px;height:90px}}.you-area .hand .card.gap-left{box-shadow:inset 6px 0 0 -2px var(--brass-bright),0 0 13px #f3da938c,var(--shadow-card)}.you-area .hand .card.gap-right{box-shadow:inset -6px 0 0 -2px var(--brass-bright),0 0 13px #f3da938c,var(--shadow-card)}.error.floating{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:60;box-shadow:0 12px 30px -10px #0009}@media(max-width:760px){.appbar{flex-wrap:nowrap;gap:6px}.appbar .logo{font-size:17px;letter-spacing:1.5px}.appbar .tagline{display:none}.appbar .meta{order:0;width:auto;font-size:11px;gap:5px;min-width:0}.appbar .meta .mono,.appbar .meta .tag{display:none}.appbar-actions{gap:5px}.appbar-actions .who{display:none}.appbar-actions .btn{padding:5px 8px;font-size:11px}.seat .player{padding:5px 8px}.seat .player-name{font-size:12px}.seat-melds{max-width:132px}.table-center{top:35%}.turn-pill{font-size:11px;padding:5px 12px}.you-area .hand{flex-wrap:wrap;overflow-x:visible;overflow-y:auto;justify-content:center;padding-top:14px}}@media(max-width:560px){.you-area .hand .card{width:42px;height:59px}.you-area .hand{gap:4px;max-height:27dvh}.you-area{padding:7px 10px 8px}.deal-label{font-size:19px}}.bubble{position:absolute;left:50%;bottom:calc(100% + 7px);transform:translate(-50%);z-index:25;white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:600;color:var(--ink);background:linear-gradient(180deg,#fffaf0,#f2e6cb);padding:5px 11px;border-radius:13px;border:1px solid var(--brass-deep);box-shadow:0 8px 18px -8px #0009;animation:bubblepop .3s cubic-bezier(.2,1.4,.4,1) both}.bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#f2e6cb}.seat.topband .bubble{bottom:auto;top:calc(100% + 7px)}.seat.topband .bubble:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#f2e6cb}.you-head .bubble{left:26px;transform:none}.you-head .bubble:after{left:22px}@keyframes bubblepop{0%{opacity:0;transform:translate(-50%) translateY(7px) scale(.8)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.donate-pick{margin-top:6px}.donate-hand{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:8px}.donate-slot{display:flex;flex-direction:column;align-items:center;gap:4px}.donate-slot .card{transition:transform .12s ease}.donate-slot.off{opacity:.3;filter:grayscale(.65)}.donate-slot.on .card{box-shadow:0 0 0 2px var(--brass),0 0 16px -3px #cda349b3,var(--shadow-card)}.donate-slot.on.click{cursor:pointer}.donate-slot.on.click:hover .card{transform:translateY(-6px)}.donate-slot .end-tag{font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--brass-deep);font-weight:700}.donate-slot .end-pick{display:flex;gap:4px}.deal-fx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse at center,rgba(6,24,20,.55),rgba(6,24,20,.12) 62%,transparent);animation:fade .25s ease both}.deal-deck{position:relative;width:50px;height:70px}.fly-card{position:absolute;left:0;top:0;width:50px;height:70px;border-radius:6px;background:repeating-linear-gradient(45deg,rgba(205,163,73,.28) 0 4px,transparent 4px 9px),linear-gradient(160deg,#15564a,#0c3329);box-shadow:0 0 0 1px var(--brass-deep) inset,var(--shadow-card);animation:dealfly 1.5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 75ms)}@keyframes dealfly{0%{transform:translate(0) rotate(0) scale(.7);opacity:0}16%{opacity:1;transform:translate(0) rotate(0) scale(1)}38%{transform:translate(0) rotate(calc(var(--i) * 5deg - 18deg)) scale(1)}to{transform:translate(calc((var(--i) - 3.5) * 78px),-118px) rotate(calc(var(--i) * 12deg - 44deg)) scale(.48);opacity:0}}.deal-label{position:absolute;text-align:center;transform:translateY(76px);font-family:var(--font-display);letter-spacing:4px;text-transform:uppercase;font-size:24px;color:var(--brass-bright);text-shadow:0 2px 12px rgba(0,0,0,.65);animation:rise .5s ease both .1s}.deal-label span{display:block;font-size:11px;letter-spacing:2px;color:#f5edd8c7;margin-top:5px}.pile.stock.shuffling .card.back{animation:shuffle .42s ease-in-out 2}@keyframes shuffle{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-5px) rotate(-5deg)}75%{transform:translate(5px) rotate(5deg)}}.win-fx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:28;pointer-events:none;overflow:hidden}.confetto{position:absolute;top:-14px;left:calc(var(--i) * 3.4%);width:9px;height:14px;background:var(--brass-bright);opacity:0;animation:conffall 2.6s linear infinite;animation-delay:calc(var(--i) * .05s)}.confetto:nth-child(3n){background:var(--red)}.confetto:nth-child(3n+1){background:var(--brass)}.confetto:nth-child(4n){width:7px;height:7px;border-radius:50%}@keyframes conffall{0%{transform:translateY(-20px) rotate(0);opacity:0}8%{opacity:1}to{transform:translateY(620px) rotate(760deg);opacity:.9}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#061814a8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .2s ease both}.modal{width:min(560px,100%);max-height:86vh;overflow-y:auto;animation:rise .32s cubic-bezier(.2,.8,.2,1) both}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.modal-head h3{margin:0;color:var(--ink)}.modal-body p{font-size:14px;line-height:1.5;margin:8px 0}.modal-body h4{font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;font-size:13px;margin:16px 0 8px;color:var(--brass-deep)}.rules-table{width:100%;border-collapse:collapse;font-size:13px}.rules-table th{text-align:left;font-family:var(--font-display);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--brass-deep);padding:4px 8px;border-bottom:1px solid var(--line)}.rules-table td{padding:5px 8px;border-bottom:1px solid var(--line-soft)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes ribbon{0%,to{box-shadow:0 0 20px -3px #cda34973,0 1px #fff6 inset}50%{box-shadow:0 0 30px #f3da93b3,0 1px #fff6 inset}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@media(max-width:640px){.panel.row{grid-template-columns:1fr}.card{width:50px;height:71px}}
