@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Nunito:wght@500;600;700;800&display=swap";:root{--felt-deep:#0f3d2e;--felt-mid:#1a5c43;--felt-light:#2a7a58;--wood:#5c3317;--wood-light:#8b5a2b;--cream:#f3e6c8;--ink:#1a140f;--gold:#e2b14a;--danger:#c44536;--card-w:72px;--card-h:100px;--shadow:0 10px 30px #00000059;color:var(--cream);background:var(--felt-deep);font-family:Nunito,system-ui,sans-serif;font-weight:600;line-height:1.35}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background-color:#0000;background-image:radial-gradient(at 30% 20%,#50b4782e,#0000 50%),radial-gradient(at 80% 80%,#00000059,#0000 45%),linear-gradient(160deg,#145239 0%,#0c2f23 45%,#164a35 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}button,input,select{font:inherit}button{cursor:pointer;background:var(--gold);color:var(--ink);border:none;border-radius:12px;padding:.7rem 1.1rem;font-weight:800;transition:transform .12s,filter .12s;box-shadow:0 3px #9a7420}button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}button:active:not(:disabled){box-shadow:none;transform:translateY(2px)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.ghost{color:var(--cream);background:0 0;box-shadow:inset 0 0 0 2px #f3e6c859}button.danger{background:var(--danger);color:#fff;box-shadow:0 3px #8a2f24}.app-shell{max-width:1100px;margin:0 auto;padding:1.25rem}.lobby{align-content:center;gap:1.5rem;min-height:100dvh;padding:2rem 1.25rem 3rem;display:grid}.brand{letter-spacing:-.03em;text-shadow:0 4px #00000040;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(3.2rem,12vw,5.5rem);font-weight:700;line-height:.95;animation:.7s both rise}.tagline{opacity:.9;max-width:28rem;margin:0;font-size:1.1rem;animation:.7s 80ms both rise}.panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);background:#0a231ab8;border:1px solid #f3e6c81f;border-radius:20px;gap:.85rem;max-width:420px;padding:1.25rem;animation:.7s .14s both rise;display:grid}.panel label{gap:.35rem;font-size:.9rem;display:grid}.panel input,.panel select{color:var(--cream);background:#ffffff14;border:1px solid #f3e6c840;border-radius:10px;padding:.65rem .75rem}.panel input::placeholder{color:#f3e6c873}.row{flex-wrap:wrap;gap:.6rem;display:flex}.status{color:#b7f0cf;min-height:1.25rem;font-size:.92rem}.error{color:#ffb4a8}.table-wrap{gap:1rem;display:grid}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.topbar h1{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.8rem}.scoreboard{flex-wrap:wrap;gap:.75rem;display:flex}.pill{background:#00000047;border-radius:999px;padding:.35rem .8rem;font-size:.9rem}.pill.glow{background:#e2b14a33;box-shadow:inset 0 0 0 1px #e2b14a59}.toggle-row{background:#00000038;border-radius:14px;grid-template-columns:auto 1fr;align-items:start;gap:.65rem;padding:.55rem .65rem;display:grid;box-shadow:inset 0 0 0 1px #f3e6c81f}.toggle-row input{width:1.15rem;height:1.15rem;margin-top:.15rem}.toggle-row strong{display:block}.toggle-row .hint{margin-top:.15rem;display:block}.lobby-helpers{margin:.35rem 0 .55rem}.stuck-bid{font-weight:800;color:var(--gold)!important}.trump-track{flex-wrap:wrap;gap:.28rem;display:flex}.trump-track.compact{max-width:14rem}.track-chip{font-variant-numeric:tabular-nums;border-radius:999px;padding:.22rem .4rem;font-size:.78rem;font-weight:800}.track-chip.out{color:var(--cream);background:#e2b14a2e;box-shadow:inset 0 0 0 1px #e2b14a73}.track-chip.played{color:#f3e6c873;background:#00000059;text-decoration:line-through;box-shadow:inset 0 0 0 1px #f3e6c81f}.helpers-badge{background:#0c1c14f0;border:2px solid #e2b14a73;border-radius:14px;gap:.35rem;min-width:10rem;max-width:15rem;padding:.45rem .65rem .55rem;display:grid;box-shadow:0 8px 20px #00000059}.helpers-badge .helpers-label{letter-spacing:.08em;color:var(--gold);font-size:.68rem;font-weight:900}.helpers-count{margin:0}.corner-badges{z-index:30;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex;position:sticky;top:.5rem}.corner-badges>*{pointer-events:auto}.table-hood{display:none}@media (width<=719px){.desktop-hud{display:none!important}.table-hood{z-index:34;gap:.4rem;display:grid;position:sticky;top:.3rem}.topbar{gap:.35rem}.topbar h1{font-size:1.25rem}.scoreboard .pill{padding:.25rem .55rem;font-size:.78rem}.hood-toggle{width:100%;color:var(--cream);text-align:left;background:#0a1a14f0;border:1.5px solid #f3e6c847;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;padding:.5rem .7rem;display:grid;box-shadow:0 8px 20px #00000059}.table-hood.open .hood-toggle{border-color:var(--gold);box-shadow:inset 0 0 0 1px #e2b14a47,0 8px 20px #00000059}.hood-toggle-label{letter-spacing:.04em;text-transform:uppercase;color:var(--gold);white-space:nowrap;font-size:.78rem;font-weight:900}.hood-peek{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;min-width:0;display:flex}.hood-peek-bit{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;background:#00000047;border-radius:999px;max-width:100%;padding:.12rem .4rem;font-size:.92rem;font-weight:800;overflow:hidden}.hood-peek-bit.score-us,.hood-peek-bit.score-them{letter-spacing:.01em;font-weight:700}.hood-peek-bit.score-us strong,.hood-peek-bit.score-them strong{margin-left:.15rem;font-weight:900}.hood-peek-bit.score-us{color:#b8f0c8}.hood-peek-bit.score-them{color:#f0d4a8}.hood-peek-bit.red,.hood-last-line.red .last-play-card,.hood-trump-line.red .trump-symbol,.hood-trump-line.red .trump-name{color:#ff8f8f}.hood-peek-bit .out{color:var(--gold);margin-left:.2rem;font-size:.75rem}.hood-peek-bit .played{color:#8be0ad;margin-left:.2rem;font-size:.75rem}.hood-chevron{opacity:.85;font-size:.75rem}.hood-body{background:#0c1c14f5;border:1.5px solid #e2b14a73;border-radius:16px;padding:.7rem;animation:.22s both rise;box-shadow:0 12px 28px #0006}.hood-body[hidden]{display:none!important}.hood-grid{gap:.55rem;display:grid}.hood-card{background:#00000038;border-radius:12px;gap:.25rem;padding:.55rem .65rem;display:grid;box-shadow:inset 0 0 0 1px #f3e6c81a}.hood-card.helpers .trump-track{max-height:9.5rem;overflow:auto}.hood-peek-bit.helpers{color:var(--gold)}.hood-card h3{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0;font-size:.72rem}.hood-card .score-who,.score-badge .score-who{flex-direction:column;gap:.05rem;line-height:1.1;display:flex}.score-who-sub{letter-spacing:.02em;text-transform:none;opacity:.72;font-size:.68rem;font-weight:600}.hood-card .score-row{grid-template-columns:1fr auto auto;align-items:baseline;gap:.4rem;font-weight:800;display:grid}.hood-trump-line{align-items:center;gap:.5rem;display:flex}.hood-trump-line .trump-symbol{font-size:1.7rem;font-weight:800;line-height:1}.hood-trump-line .trump-name{font-size:1.05rem;font-weight:800}.hood-three{margin:0;font-size:.95rem;font-weight:800}.hood-three.out{color:var(--gold)}.hood-three.played{color:#8be0ad}.hood-last-line{gap:.1rem;display:grid}.hood-last-line .last-play-who{font-size:.95rem;font-weight:800}.hood-last-line .last-play-card{font-family:Fraunces,Georgia,serif;font-size:1.7rem;font-weight:800;line-height:1.1}.status-banner.coach-banner{padding:.55rem .75rem}.coach-title{font-size:1.05rem}.coach-body{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}}@media (width>=720px){.table-hood{display:none!important}}.trump-badge,.score-badge{border:2px solid var(--gold);background:#0c1c14eb;border-radius:16px;width:fit-content;padding:.45rem .75rem .5rem;animation:.35s both pop;box-shadow:0 10px 28px #00000073}.table-hud-right{justify-items:end;gap:.45rem;margin-left:auto;display:grid}.trump-badge{grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:center;column-gap:.45rem;margin-left:0;display:grid}.three-badge{background:#0c1c14eb;border:2px solid #f3e6c847;border-radius:14px;justify-content:space-between;align-items:center;gap:.65rem;min-width:8.5rem;padding:.4rem .7rem;font-weight:800;display:flex;box-shadow:0 8px 20px #00000059}.three-badge .three-rank{letter-spacing:.02em;font-size:1.15rem}.three-badge .three-status{text-transform:uppercase;letter-spacing:.04em;font-size:.82rem}.three-badge.out{border-color:#e2b14ab3}.three-badge.out .three-status{color:var(--gold)}.three-badge.played{opacity:.95;border-color:#5dcb8aa6}.three-badge.played .three-status{color:#8be0ad}.last-play-badge{background:#0c1c14f0;border:2px solid #f3e6c847;border-radius:14px;gap:.15rem;min-width:9.5rem;max-width:12rem;padding:.45rem .7rem .5rem;display:grid;box-shadow:0 8px 20px #00000059}.last-play-badge.has-play{border-color:#78beffbf;animation:.35s both lastPlayPop}.last-play-badge .last-play-label{letter-spacing:.08em;color:#9fd0ff;font-size:.68rem;font-weight:900}.last-play-badge .last-play-who{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:800;line-height:1.2;overflow:hidden}.last-play-badge .last-play-who.muted{opacity:.65;font-weight:600}.last-play-badge .last-play-card{color:var(--cream);font-family:Fraunces,Georgia,serif;font-size:1.55rem;font-weight:800;line-height:1.1}.last-play-badge.red .last-play-card{color:#ff8f8f}@keyframes lastPlayPop{0%{filter:brightness(1.25);transform:scale(.94)}to{filter:none;transform:scale(1)}}.trick-card.last-played,.seat-play.is-last-play .trick-card{border-radius:12px;outline:3px solid #7eb8ff;box-shadow:0 0 0 3px #7eb8ff59,0 12px 24px #00000059}.last-played-chip{z-index:4;letter-spacing:.06em;color:#cfe6ff;background:#1a3a5c;border-radius:999px;padding:.18rem .4rem;font-size:.62rem;font-weight:900;position:absolute;top:-.45rem;right:-.35rem;box-shadow:0 4px 10px #00000059}.trump-badge .trump-label,.score-badge .score-label{letter-spacing:.12em;color:var(--gold);grid-column:1/-1;font-size:.7rem;font-weight:800}.trump-badge .trump-symbol{font-size:2rem;font-weight:800;line-height:1}.trump-badge .trump-name{font-size:1.05rem;font-weight:800}.trump-badge.red .trump-symbol,.trump-badge.red .trump-name{color:#ff6b6b}.trump-badge.black .trump-symbol,.trump-badge.black .trump-name{color:#f3e6c8}.score-badge{gap:.2rem;min-width:7.5rem;display:grid}.score-badge .score-row{grid-template-columns:1fr auto auto;align-items:baseline;gap:.35rem;font-weight:800;display:grid}.score-badge .score-who{opacity:.9;font-size:.85rem}.score-badge .score-game{font-variant-numeric:tabular-nums;color:var(--cream);font-size:1.25rem}.score-badge .score-hand{color:var(--gold);font-variant-numeric:tabular-nums;text-align:right;min-width:1.6rem;font-size:.8rem}.score-badge .score-row.us .score-who{color:#5dcb8a}.score-badge .score-row.them .score-who{color:#f0a0a0}@media (width>=720px){.corner-badges{margin:0;position:fixed;top:1rem;left:1rem;right:1rem}.trump-badge{margin-left:0}}.status-banner{background:#0006;border:1px solid #f3e6c826;border-radius:14px;padding:.7rem 1rem;animation:.35s both rise}.status-banner.waiting{border-color:#e2b14a8c;box-shadow:0 0 0 1px #e2b14a26}.status-banner.coach-banner{gap:.25rem;padding:.85rem 1.05rem;display:grid}.status-banner.coach-banner.my-turn{border-color:var(--gold);background:#1e371ceb;box-shadow:0 0 0 1px #e2b14a59,0 10px 28px #00000059}.status-banner.coach-banner.silent{border-color:#b4a07873}.coach-title{color:var(--gold);font-family:Fraunces,Georgia,serif;font-size:1.25rem;font-weight:800;line-height:1.2}.coach-body{font-size:1.02rem;line-height:1.35}.coach-silent{color:#f0d9a0;margin-top:.15rem;font-size:.88rem;font-weight:700}.status-banner .ready-bits{opacity:.85}.ready-flash{color:#b7f0cf;animation:.45s both pop}.tiny{opacity:.7;font-size:.8rem}.felt{background:radial-gradient(circle at 50% 45%, #ffffff0d, transparent 40%), linear-gradient(145deg, var(--felt-light), var(--felt-deep));border:10px solid var(--wood);border-radius:28px;grid-template-rows:auto 1fr auto;gap:.75rem;min-height:420px;padding:1rem;display:grid;position:relative;box-shadow:inset 0 0 60px #00000059,0 20px 50px #0006}.seats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}@media (width>=720px){.seats{grid-template-columns:repeat(4,minmax(0,1fr))}}.table-cross{gap:.55rem;margin-bottom:.35rem;display:grid}.cross-top,.cross-bottom{justify-content:center;display:flex}.cross-top .seat,.cross-bottom .seat{width:min(100%,220px)}.cross-mid{grid-template-columns:1fr auto 1fr;align-items:start;gap:.45rem;display:grid}.cross-left,.cross-right{min-width:0}.cross-center-label{place-items:center;display:grid}.seat.partner-seat{border-color:#5dcb8a8c}.seat.seat-you{border-style:dashed}.seat{position:relative}.card-count-badge{font-variant-numeric:tabular-nums;background:var(--gold);color:#1a2a20;border-radius:999px;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .35rem;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:-.35rem;right:-.35rem;box-shadow:0 4px 10px #00000059}.mute-seat-btn{z-index:3;width:1.85rem;height:1.85rem;color:var(--cream);background:#0c1c16e0;border-radius:999px;place-items:center;padding:0;font-size:.95rem;line-height:1;display:grid;position:absolute;top:-.4rem;left:-.4rem;box-shadow:inset 0 0 0 1px #f3e6c838}.mute-seat-btn.on{background:#461812eb;box-shadow:inset 0 0 0 1px #f3b47866}.seat.fun-muted{opacity:.92}.seat.fun-muted .name{color:#f3e6c8b8}.seat.receiving-deal{border-color:var(--gold);animation:.55s dealPulse;transform:scale(1.03);box-shadow:0 0 0 2px #e2b14a73}.deal-banner{font-size:1.02rem}.deal-stage{min-height:calc(var(--card-h) + 2.5rem);justify-items:center;gap:.85rem;display:grid}.deal-fly{min-height:var(--card-h);place-items:center;display:grid}.deal-fly.go .card{animation:.5s cubic-bezier(.2,.85,.25,1) both dealSwoosh}.deal-packet{min-height:var(--card-h);justify-content:center;align-items:center;display:flex;position:relative}.deal-packet .card{margin-left:-28px}.deal-packet .card:first-child{margin-left:0}.deal-packet-label{border:1px solid var(--gold);color:var(--gold);background:#0c1c14eb;border-radius:999px;padding:.15rem .45rem;font-size:.8rem;font-weight:800;position:absolute;bottom:-.35rem;right:-.35rem}.deal-fly.to-middle .card{transform:scale(.92)}.middle-pot{justify-items:center;gap:.35rem;display:grid}.deal-counts{flex-wrap:wrap;justify-content:center;gap:.4rem;max-width:28rem;display:flex}.deal-count-chip{background:#00000059;border:1px solid #f3e6c833;border-radius:999px;padding:.3rem .65rem;font-size:.85rem;font-weight:700}.deal-count-chip.hot{border-color:var(--gold);color:var(--gold);background:#e2b14a38}.deal-count-chip.done{opacity:.55}.seat.has-play{justify-items:center;gap:.35rem;display:grid}.seat-play{min-height:calc(var(--card-h) * .92);place-items:center;display:grid}.seat-play .card{width:calc(var(--card-w) * .92);height:calc(var(--card-h) * .92)}.play-slot{width:calc(var(--card-w) * .92);height:calc(var(--card-h) * .92);background:#0000002e;border:1.5px dashed #f3e6c847;border-radius:10px}.cross-left .seat,.cross-right .seat{width:100%}.cross-left .seat-play,.cross-right .seat-play{margin-top:.15rem}.swing-pill{color:var(--gold);white-space:nowrap;background:#e2b14a38;border:1px solid #e2b14a73;border-radius:999px;padding:.35rem .75rem;font-size:.9rem;font-weight:800}.swing-pill.muted{opacity:.7;color:var(--cream);background:#00000040;border-color:#f3e6c840}.swing-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.trick-summary{background:#00000052;border-radius:12px;max-width:36rem;margin:0;padding:.55rem .75rem;font-size:.92rem;line-height:1.35}.seat{background:#00000038;border:2px solid #0000;border-radius:14px;padding:.55rem .7rem}.seat.active,.seat.waiting-seat{border-color:var(--gold);animation:1.4s infinite pulse;box-shadow:0 0 0 1px #e2b14a59}.seat.ready-seat{border-color:#5dcb8a;box-shadow:0 0 0 1px #5dcb8a40}.seat .name{flex-wrap:wrap;align-items:center;gap:.28rem;font-weight:800;display:flex}.seat-emoji{font-size:1.15em;line-height:1}.avatar-picker{gap:.45rem;display:grid}.avatar-picker-label{font-size:.95rem;font-weight:700}.avatar-preview{margin-left:.25rem;font-size:1.25rem}.avatar-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:.35rem;display:grid}.avatar-choice{background:#00000047;border-radius:12px;padding:.35rem .15rem;font-size:1.35rem;box-shadow:inset 0 0 0 1px #f3e6c824}.avatar-choice.on{box-shadow:inset 0 0 0 2px var(--gold), 0 0 0 1px #e2b14a59;background:#e2b14a47}@media (width<=420px){.avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.seat-num{min-width:1.6rem;color:var(--gold);background:#e2b14a38;border-radius:6px;margin-right:.15rem;padding:.05rem .35rem;font-size:.85rem;display:inline-block}.seat .meta{opacity:.8;font-size:.8rem}.center-stage{text-align:center;place-items:center;gap:.75rem;padding:.5rem;display:grid}.trick{min-height:var(--card-h);flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.hand-area{gap:.6rem;display:grid}.hand{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.card{width:var(--card-w);height:var(--card-h);color:#1a1a1a;-webkit-user-select:none;user-select:none;background:#fffaf0;border:1px solid #d9cbb0;border-radius:10px;place-items:center;font-weight:800;transition:transform .15s,box-shadow .15s;display:grid;position:relative;box-shadow:0 6px 14px #00000047}.card.red{color:#c62828}.card.playable{cursor:pointer}.card.playable:hover{transform:translateY(-10px)scale(1.04);box-shadow:0 14px 24px #00000059}.card.dim{opacity:.4;filter:grayscale(.4)}.card.suit-ok{box-shadow:0 6px 14px #00000047,0 0 0 2px #e2b14a8c}.card.selected{outline:3px solid var(--gold);z-index:2;transform:translateY(-14px)scale(1.05);box-shadow:0 16px 28px #00000073}.card.fly-in,.deal-in{animation:.45s cubic-bezier(.2,.8,.2,1) both dealIn}.trick-card{animation:.4s cubic-bezier(.2,.85,.25,1) both playToTable;position:relative}.trick-card.winner,.seat-play.won-trick .trick-card{outline:3px solid var(--gold);z-index:3;border-radius:12px;transform:scale(1.06);box-shadow:0 0 0 3px #e2b14a59,0 12px 24px #00000059}.trick-pause-banner{font-size:1.05rem}.swing-recap{gap:.2rem;display:grid}.swing-recap-title{font-size:1.12rem;font-weight:800;line-height:1.25}.swing-win-card{color:var(--gold);font-family:Fraunces,Georgia,serif;font-weight:800}.swing-win-card.red{color:#ff9a9a}.swing-recap-sub{opacity:.95;font-size:.98rem}.summary.hand-recap{text-align:center;gap:.35rem;display:grid}.hand-recap-title{color:var(--gold);margin:0;font-family:Fraunces,Georgia,serif;font-size:1.35rem}.hand-recap-points{margin:0;font-size:1.2rem;font-weight:800}.hand-recap-detail,.hand-recap-game{opacity:.9;margin:0;font-size:.98rem}.hand-recap-winner{margin:.15rem 0 0}.count-only-tag{z-index:2;letter-spacing:.06em;color:#f3e6c8d9;background:#141e18e0;border-radius:999px;padding:2px 5px;font-size:.58rem;font-weight:900;position:absolute;bottom:5px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 1px #f3e6c833}.card-seat-tag{text-overflow:ellipsis;white-space:nowrap;color:#fff;background:#000000b3;border-radius:4px;max-width:90%;padding:1px 4px;font-size:.65rem;line-height:1.2;position:absolute;top:4px;left:5px;overflow:hidden}.card .rank{font-size:1.15rem;line-height:1}.card .suit{font-size:1.4rem}.card.joker-card{color:#ffe566;background:linear-gradient(160deg,#1a1430 0%,#3b2060 45%,#1a1430 100%);border:2px solid #e2b14a;grid-template-rows:auto 1fr auto auto;gap:0;padding:.2rem .15rem .25rem}.card.joker-card .joker-corner{opacity:.9;justify-self:start;font-size:.75rem;line-height:1}.card.joker-card .joker-emblem{font-size:1.55rem;line-height:1}.card.joker-card .joker-word{letter-spacing:.08em;font-size:.72rem;font-weight:900;line-height:1}.card.joker-card .joker-sub{letter-spacing:.14em;color:#f3e6c8;opacity:.9;font-size:.58rem;font-weight:800}.card.joker-big{box-shadow:0 6px 14px #00000047,inset 0 0 0 1px #ffe56659}.card-role-tag{letter-spacing:.06em;white-space:nowrap;border-radius:4px;padding:1px 4px;font-size:.55rem;font-weight:900;line-height:1.15;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.jick-tag{color:#fff;background:#c62828}.jack-tag{color:var(--gold);background:#1a2a20}.card.jick-card{box-shadow:0 6px 14px #00000047,0 0 0 2px #c628288c}.card.trump-jack-card{box-shadow:0 6px 14px #00000047,0 0 0 2px #e2b14aa6}.card.back{color:#0000;background:repeating-linear-gradient(45deg,#1e3a8a,#1e3a8a 6px,#2747a0 6px 12px)}.hint{opacity:.85;font-size:.95rem}.actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.bid-row button{min-width:2.6rem;padding:.65rem .75rem}.trump-pick{gap:.55rem}.trump-suit-btn{justify-content:center;align-items:center;gap:.4rem;min-width:7.5rem;display:inline-flex}.trump-suit-symbol{font-size:1.35rem;line-height:1}.trump-suit-btn.red .trump-suit-symbol{color:#c62828}.trump-suit-btn.black .trump-suit-symbol{color:#1a1a1a}.summary{background:#00000059;border-radius:14px;max-width:36rem;padding:.9rem 1rem}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{background:#00000038}50%{background:#e2b14a29}}@keyframes dealIn{0%{opacity:0;transform:translateY(-24px)scale(.85)rotate(-4deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes dealSwoosh{0%{opacity:0;transform:translateY(-48px)scale(.55)rotate(-18deg)}55%{opacity:1;transform:translateY(6px)scale(1.08)rotate(3deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes dealPulse{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1.03)}}@keyframes playToTable{0%{opacity:0;transform:translateY(40px)scale(.7)}60%{transform:translateY(-6px)scale(1.05)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media (width<=520px){:root{--card-w:58px;--card-h:82px}}.fun-bar{justify-items:center;gap:.45rem;margin-top:.35rem;display:grid}.fun-toggle{color:var(--cream);background:#0006;border-radius:999px;padding:.45rem 1rem;font-size:1rem;font-weight:800;box-shadow:inset 0 0 0 1px #f3e6c847}.fun-bar.open .fun-toggle{color:var(--gold);border:1px solid #e2b14a8c}.fun-panel{justify-items:center;gap:.45rem;width:100%;animation:.25s both rise;display:grid}.fun-bar.frozen .fun-toggle{color:#f0d9a0;box-shadow:inset 0 0 0 1px #f0d9a059}.fun-frozen-msg{text-align:center;color:#f0d9a0;max-width:22rem;margin:0;font-weight:700}.fun-reacts.is-frozen{opacity:.45;pointer-events:none}.fun-reacts{flex-wrap:wrap;justify-content:center;gap:.45rem;display:flex}.help-fab,.settings-fab{z-index:45;background:var(--gold);color:#1a2a20;border-radius:999px;width:3rem;height:3rem;font-size:1.45rem;font-weight:900;line-height:1;position:fixed;box-shadow:0 8px 22px #0006}.help-fab{bottom:1rem;right:1rem}.settings-fab{color:var(--gold);background:#1f3a2c;border:2px solid #e2b14a8c;font-size:1.2rem;bottom:1rem;right:4.35rem}.settings-panel{z-index:46;background:#0c1c14f7;border:2px solid #e2b14a8c;border-radius:16px;gap:.75rem;width:min(100vw - 2rem,20rem);padding:.9rem 1rem;display:grid;position:fixed;bottom:4.5rem;right:1rem;box-shadow:0 16px 36px #00000073}.settings-head{color:var(--gold);justify-content:space-between;align-items:center;gap:.5rem;font-family:Fraunces,Georgia,serif;font-size:1.15rem;display:flex}.settings-row .hint{margin-top:.15rem;display:block}.settings-volume{gap:.35rem;font-size:.92rem;display:grid}.settings-volume input[type=range]{width:100%;accent-color:var(--gold)}button.tiny{padding:.25rem .55rem;font-size:.8rem}.help-backdrop{z-index:50;background:#0000008c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.help-dialog{border:2px solid var(--gold);background:#123024;border-radius:18px;gap:.65rem;width:min(100%,22rem);padding:1.15rem 1.2rem 1rem;animation:.25s both pop;display:grid;box-shadow:0 18px 40px #00000080}.help-dialog h2{color:var(--gold);margin:0;font-family:Fraunces,Georgia,serif;font-size:1.45rem}.help-dialog p{margin:0;font-size:1.12rem;line-height:1.4}.help-dialog button{margin-top:.25rem}.fun-btn{color:var(--cream);background:#00000059;border-radius:999px;padding:.45rem .75rem;font-size:1.25rem;box-shadow:inset 0 0 0 1px #f3e6c833}.fun-btn.shotgun-btn{background:#5a1c128c;font-size:1.4rem;box-shadow:inset 0 0 0 1px #f3b47859,0 0 0 1px #00000040}.fun-btn.shotgun-btn:active{transform:scale(.94)}.fun-btn.play{text-align:left;flex:1;font-size:.95rem}.ghost-fun{font-size:.95rem}.soundboard{background:#0a231ad9;border:1px solid #f3e6c81f;border-radius:16px;gap:.55rem;padding:.85rem;display:grid}.sound-list{gap:.35rem;display:grid}.sound-row{align-items:center;gap:.35rem;display:flex}.sound-label{gap:.25rem;font-size:.9rem;display:grid}.sound-label input{color:var(--cream);background:#ffffff14;border:1px solid #f3e6c840;border-radius:10px;padding:.55rem .65rem}.tiny-btn{padding:.35rem .55rem;font-size:.85rem}.reaction-layer{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.float-react{justify-items:center;animation:2.1s forwards floatUp;display:grid;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.float-emoji{filter:drop-shadow(0 6px 10px #00000059);font-size:3rem}.float-name{opacity:.9;font-size:.85rem}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,30px)scale(.7)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-120px)scale(1.15)}}
