:root{--wood-1: #e7b877;--wood-2: #d29a55;--wood-3: #b57c3c;--felt-1: var(--wood-1);--felt-2: var(--wood-2);--felt-3: var(--wood-3);--accent: #e0562f;--accent-deep: #b4401f;--accent-shadow: #9a3417;--gold: var(--accent);--gold-soft: #ffd8a8;--surface: #fff6e4;--surface-2: #ffffff;--line: #d9b07a;--ink: #3a2616;--ink-soft: rgba(58, 38, 22, .62);--ink-faint: rgba(58, 38, 22, .14);--cream: #fff8ec;--card-ink: #2b1d12;--red: #d9432c;--team-a: #3f8fd9;--team-a-deep: #2e73b8;--team-b: #f0a030;--ok: #4caf6e;--ko: #d9432c;--shadow: rgba(80, 40, 10, .35);--shadow-flat: rgba(120, 70, 20, .28);--card-w: clamp(52px, 6.4vw, 82px);--card-h: calc(var(--card-w) * 1.42);--hand-bottom: clamp(16px, 3.5vh, 40px);--frame: clamp(6px, 1.4vw, 18px);--edge: calc(var(--frame) + 14px);--radius: 8px;--pet-scale: 2.5;--font: "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--display: "Fredoka", "Nunito", system-ui, sans-serif;--serif: var(--display)}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:var(--font);color:var(--ink);background:var(--wood-3);overscroll-behavior:none}body{-webkit-tap-highlight-color:transparent}.felt{position:fixed;inset:0;background:radial-gradient(ellipse 80% 70% at 50% 40%,var(--wood-1) 0%,var(--wood-2) 60%,var(--wood-3) 100%);overflow:hidden}.felt:before{content:"";position:absolute;inset:0;opacity:.22;pointer-events:none;background-image:repeating-linear-gradient(92deg,#fff0 0 18px,#fff5e180 18px 21px,#fff0 21px 47px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E")}.felt:after{content:"";position:absolute;inset:var(--frame);border-radius:28px;border:3px solid rgba(255,246,228,.55);box-shadow:inset 0 0 0 6px #b57c3c59,inset 0 0 60px #78461440;pointer-events:none}.card{position:relative;width:var(--card-w);height:var(--card-h);border-radius:10px;background:linear-gradient(160deg,#fffdf7 0%,var(--cream) 55%,#f3e6cf 100%);box-shadow:0 2px 0 var(--shadow-flat),0 0 0 1px var(--ink-faint);color:var(--card-ink);user-select:none;flex:none}.card.red{color:var(--red)}.card .corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:.84;font-weight:700;font-size:calc(var(--card-w) * .25);letter-spacing:-.04em}.card .corner.tl{top:4%;left:6%}.card .corner.br{bottom:4%;right:6%;transform:rotate(180deg)}.card .corner .pip{font-size:calc(var(--card-w) * .22)}.card .face{position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--card-w) * .66);line-height:1}.card .face.court{font-family:var(--serif);font-weight:600;align-content:center;gap:.06em}.card .face.court span{display:block;text-align:center}.card .face.court .letter{font-size:calc(var(--card-w) * .5);letter-spacing:.03em}.card .face.court .pip{font-size:calc(var(--card-w) * .26);opacity:.85}.card.honour:after{content:"";position:absolute;inset:11% 9%;border:1px solid currentColor;border-radius:3px;opacity:.16;pointer-events:none}.card-back{position:relative;width:var(--card-w);height:var(--card-h);border-radius:10px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.35) 0 6px,transparent 6px 12px),repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 6px,transparent 6px 12px),var(--accent);box-shadow:0 2px 0 var(--shadow-flat),0 0 0 2px var(--surface);flex:none}.card-back:after{content:"";position:absolute;inset:10%;border-radius:5px;border:2px solid rgba(255,255,255,.7)}.hand{position:absolute;bottom:var(--hand-bottom);left:50%;height:calc(var(--card-h) * 1.2);transform:translate(-50%);display:flex;align-items:flex-end;z-index:30}.hand .slot{width:calc(var(--card-w) * .62);transform-origin:50% 150%}.hand .slot:last-child{width:var(--card-w)}.ghost{width:var(--card-w);height:var(--card-h)}.cards{position:fixed;inset:0;z-index:35;pointer-events:none}.cardw{position:absolute;left:0;top:0;will-change:transform;pointer-events:none;outline:none}.cardw .card{transition:transform .22s cubic-bezier(.2,.8,.3,1),filter .2s,box-shadow .2s}.cardw.playable{pointer-events:auto;cursor:pointer}.cardw.playable:hover .card,.cardw.playable:focus-visible .card{transform:translateY(-18px) scale(1.04);box-shadow:0 10px #78461440,0 0 0 3px var(--accent)}.cardw.blocked .card{filter:brightness(.86) saturate(.55)}.cardw.winner .card{box-shadow:0 0 0 3px var(--accent),0 6px 0 var(--shadow-flat)}.seat{position:absolute;display:flex;align-items:center;gap:8px;z-index:20}.seat .figure{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px}.seat.north{top:var(--edge);left:50%;transform:translate(-50%);align-items:flex-end}.seat.west{left:var(--edge);top:50%;transform:translateY(-50%);align-items:flex-end}.seat.east{right:var(--edge);top:50%;transform:translateY(-50%);align-items:flex-end}.seat.south{left:50%;transform:translate(-50%);bottom:calc(var(--hand-bottom) + var(--card-h) * 1.2 + 10px)}.plate{display:flex;align-items:center;gap:8px;padding:3px 10px 3px 6px;border-radius:999px;background:var(--surface);color:var(--ink);border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow-flat);white-space:nowrap;max-width:100%;transition:box-shadow .3s,border-color .3s}.plate.vacant .avatar{background:transparent;border:2px dashed var(--line);color:var(--ink-soft)}.plate .avatar{width:10px;height:10px;border-radius:50%;font-size:0;color:transparent;background:var(--team-a);flex:none}.plate.team-b .avatar{background:var(--team-b)}.plate .name{font-size:12px;font-weight:700;letter-spacing:.01em}.plate .tag{font-size:10px;color:var(--ink-soft);border-left:1px solid var(--ink-faint);padding-left:8px}.plate .count{display:none;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#3a261614;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}.plate.ally{border-color:#9cc3ea}.plate.foe{border-color:#f2c98a}.plate .ally-tag{color:var(--team-a-deep)}.plate .taker-tag{color:var(--accent)}.plate.active{border-color:var(--accent);box-shadow:0 3px 0 var(--shadow-flat),0 0 0 3px #e0562f47}.plate.offline{opacity:.45}.plate.offline .name:after{content:" (hors ligne)";font-size:11px;font-weight:400}.plate .dealer-chip{width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center}.mini-hand{display:flex}.mini-hand .card-back{--card-w: clamp(26px, 3vw, 38px);margin-left:calc(var(--card-w) * -.48);box-shadow:0 1px 0 var(--shadow-flat),0 0 0 1px var(--surface)}.mini-hand .card-back:first-child{margin:0}.pet{--pet: calc(var(--frame) * var(--pet-scale));flex:none;width:var(--pet);height:var(--pet);background-image:var(--strip-idle);background-repeat:no-repeat;background-size:calc(var(--pet) * 8) var(--pet);background-position:0 0;image-rendering:pixelated;animation:pet-idle 1.2s steps(8) infinite;position:relative;transition:transform .4s ease,filter .4s ease;filter:drop-shadow(0 3px 0 rgba(120,70,20,.28))}@keyframes pet-idle{to{background-position-x:calc(var(--pet) * -8)}}.pet.happy{background-image:var(--strip-happy);animation:pet-happy .9s steps(8) 1 both,pet-bounce .9s ease 1}@keyframes pet-happy{to{background-position-x:calc(var(--pet) * -8)}}@keyframes pet-bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-12px) scale(1.06)}55%{transform:translateY(0) scale(.97)}75%{transform:translateY(-5px)}}.pet.sad{filter:grayscale(.55) brightness(.92) drop-shadow(0 3px 0 rgba(120,70,20,.28));transform:translateY(4px) rotate(5deg);animation-duration:2.4s}.pet.thinking:after{content:"…";position:absolute;top:2px;left:64%;padding:0 7px;line-height:18px;font-size:14px;font-weight:800;letter-spacing:.06em;border-radius:999px;background:var(--surface);border:2px solid var(--line);color:var(--ink-soft);animation:think 1.4s ease-in-out infinite}@keyframes think{0%,to{transform:translateY(0);opacity:.85}50%{transform:translateY(-3px);opacity:1}}.bubble{position:absolute;z-index:3;width:max-content;max-width:min(240px,40vw);padding:7px 11px;border-radius:14px;background:var(--surface);border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow-flat);color:var(--ink);font-size:13px;font-weight:600;line-height:1.3;overflow-wrap:anywhere;animation:bubble-in .22s cubic-bezier(.2,.9,.3,1) both}.bubble:after{content:"";position:absolute;width:10px;height:10px;background:var(--surface);border:2px solid var(--line);border-top:0;border-left:0;transform:rotate(45deg)}@keyframes bubble-in{0%{opacity:0;transform:scale(.9) translateY(4px)}}.seat.south .bubble,.seat.west .bubble{bottom:calc(100% - 26px);left:60%}.seat.south .bubble:after,.seat.west .bubble:after{left:14px;bottom:-7px}.seat.east .bubble{bottom:calc(100% - 26px);right:60%}.seat.east .bubble:after{right:14px;bottom:-7px}.seat.north .bubble{left:calc(100% - 10px);top:8px}.seat.north .bubble:after{left:-7px;top:12px;transform:rotate(135deg)}.chatbox{position:absolute;right:calc(50% + 120px);bottom:calc(var(--hand-bottom) + var(--card-h) * 1.2 + 12px);z-index:41;display:flex;gap:6px;align-items:center}.chatbox input{width:190px;font:inherit;font-size:13px;font-weight:600;padding:8px 12px;border-radius:999px;border:2px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:0 3px 0 var(--shadow-flat)}.chatbox input::placeholder{color:#3a261666;font-weight:500}.chatbox input:focus{outline:none;border-color:var(--accent)}.chatbox .mic{appearance:none;width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:var(--surface);box-shadow:0 3px 0 var(--shadow-flat);color:var(--ink);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .12s,box-shadow .12s}.chatbox .mic:active{transform:translateY(2px);box-shadow:0 1px 0 var(--shadow-flat)}.chatbox .mic.on{background:var(--accent);border-color:var(--accent-deep);color:#fff;animation:mic-pulse 1s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 3px 0 var(--accent-shadow),0 0 #e0562f73}50%{box-shadow:0 3px 0 var(--accent-shadow),0 0 0 8px #e0562f00}}.seat-item .seat-who{display:flex;align-items:center;gap:8px}.seat-item .pet-slot .pet{--pet-scale: 1;filter:none}.trick{position:absolute;left:50%;top:41%;width:calc(var(--card-w) * 3.2);height:calc(var(--card-h) * 2.6);transform:translate(-50%,-50%);z-index:36;pointer-events:none}.trick .played{position:absolute;left:50%;top:50%}.trick .played.s{transform:translate(-50%,22%) rotate(-3deg)}.trick .played.n{transform:translate(-50%,-122%) rotate(2deg)}.trick .played.w{transform:translate(-122%,-50%) rotate(-6deg)}.trick .played.e{transform:translate(22%,-50%) rotate(5deg)}.trick .who{position:absolute;font-size:11px;max-width:96px;overflow:hidden;text-overflow:ellipsis;font-weight:600;white-space:nowrap;padding:2px 8px;border-radius:999px;background:var(--surface);border:2px solid var(--line);color:var(--ink-soft);box-shadow:0 2px 0 var(--shadow-flat)}.trick .played.s .who{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.trick .played.n .who{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.trick .played.w .who{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.trick .played.e .who{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.trick .played.ours .who{color:var(--team-a-deep);border-color:#9cc3ea}.lead-prompt{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font-family:var(--serif);font-size:18px;font-weight:500;color:#3a26168c;letter-spacing:.02em;animation:prompt-in 2.4s ease-out both}.claim-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font-family:var(--serif);font-size:17px;padding:12px 22px;animation:claim-in .5s cubic-bezier(.34,1.56,.64,1) .45s backwards;z-index:3;pointer-events:auto}.claim-btn:hover{transform:translate(-50%,calc(-50% - 1px))}.claim-btn:active{transform:translate(-50%,calc(-50% + 3px))}.claim-btn:disabled{transform:translate(-50%,-50%)}@keyframes claim-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes prompt-in{0%{opacity:0}25%{opacity:1}to{opacity:.55}}.trick .points{position:absolute;top:-10px;right:-14px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;padding:3px 8px;border-radius:999px;background:var(--surface);border:2px solid var(--accent);color:var(--accent);box-shadow:0 2px 0 var(--shadow-flat);animation:points-in .32s cubic-bezier(.2,.9,.3,1) both}.trick .points.ours{border-color:var(--team-a);color:var(--team-a-deep)}@keyframes points-in{0%{opacity:0;transform:translateY(6px) scale(.85)}}.hud{position:absolute;top:var(--edge);left:var(--edge);z-index:40;display:flex;flex-direction:column;gap:8px}.scorecard{background:var(--surface);color:var(--ink);border:2px solid var(--line);border-radius:14px;padding:10px 14px;min-width:168px;box-shadow:0 3px 0 var(--shadow-flat)}.scorecard h3{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.score-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;padding:3px 0}.score-row .dot{width:9px;height:9px;border-radius:50%;background:var(--team-a);display:inline-block;margin-right:7px}.score-row.b .dot{background:var(--team-b)}.score-row .pts{font-variant-numeric:tabular-nums;font-weight:700}.score-row.names{font-size:11px;color:var(--ink-soft);padding:0 0 4px 16px}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:13px;font-weight:700;background:var(--surface);color:var(--ink);border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow-flat)}.badge .suit{font-size:17px;line-height:1}.badge .suit.red{color:var(--red)}.badge.status{font-size:13px;letter-spacing:.01em}.badge.status.yours{color:#fff;background:var(--accent);border-color:var(--accent-deep);box-shadow:0 3px 0 var(--accent-shadow)}.panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;background:var(--surface);color:var(--ink);border:3px solid var(--line);border-radius:22px;padding:22px 26px;min-width:min(360px,88vw);box-shadow:0 8px 0 var(--shadow-flat),0 24px 50px var(--shadow);animation:panel-in .26s cubic-bezier(.2,.9,.3,1);text-align:center}@keyframes panel-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.96)}}.panel h2{margin:0 0 4px;font-family:var(--display);font-size:24px;font-weight:600}.panel p{margin:0 0 16px;font-size:14px;color:var(--ink-soft)}.btn{appearance:none;border:2px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;font-size:15px;font-weight:800;padding:11px 20px;border-radius:14px;box-shadow:0 4px 0 var(--line);cursor:pointer;transition:background .16s,transform .12s,border-color .16s,box-shadow .12s}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn:hover{background:#fffdf8;transform:translateY(-1px);box-shadow:0 5px 0 var(--line)}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent-deep);box-shadow:0 4px 0 var(--accent-shadow)}.btn.primary:hover{background:#e8633d;box-shadow:0 5px 0 var(--accent-shadow)}.btn.primary:active{box-shadow:0 1px 0 var(--accent-shadow)}.btn.ghost{background:transparent;color:var(--ink-soft);box-shadow:none}.btn.ghost:hover{background:#3a26160d;box-shadow:none;transform:none}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:0 2px 0 var(--line)}.btn:focus-visible{outline:3px solid rgba(224,86,47,.45);outline-offset:2px}.btn-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.suit-btn{width:62px;height:62px;font-size:26px;display:grid;place-items:center;padding:0}.suit-btn.red{color:var(--red)}.retourne-show{display:grid;place-items:center;margin:2px 0 16px}.retourne-show .card{transform:rotate(-2deg);box-shadow:0 6px 0 var(--shadow-flat),0 0 0 1px var(--ink-faint)}.recap{text-align:left;font-size:14px}.recap table{width:100%;border-collapse:collapse;margin:6px 0 16px}.recap th{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);text-align:right;font-weight:600;padding:4px 0}.recap th:first-child{text-align:left}.recap td{padding:5px 0;border-top:1px solid var(--ink-faint);text-align:right;font-variant-numeric:tabular-nums}.recap td:first-child{text-align:left}.recap .verdict{text-align:center;font-family:var(--serif);font-size:17px;padding:8px 0 2px}.recap .verdict.win{color:var(--ok)}.recap .verdict.lose{color:var(--ko)}.toasts{position:absolute;right:var(--edge);bottom:calc(26vh + 40px);z-index:70;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.toast{padding:9px 18px;border-radius:999px;background:var(--surface);border:2px solid var(--accent);font-family:var(--display);font-size:18px;font-weight:500;color:var(--accent);box-shadow:0 4px 0 var(--shadow-flat);animation:toast 2.6s ease forwards}@keyframes toast{0%{opacity:0;transform:translateY(10px) scale(.94)}12%,76%{opacity:1;transform:none}to{opacity:0;transform:translateY(-8px) scale(.98)}}.home{position:relative;z-index:10;min-height:100dvh;display:grid;place-items:center;padding:24px}.home-card{width:min(420px,100%);background:var(--surface);color:var(--ink);border:3px solid var(--line);border-radius:24px;padding:32px 28px;box-shadow:0 8px 0 var(--shadow-flat),0 30px 60px var(--shadow)}.home h1{font-family:var(--display);font-size:38px;font-weight:600;margin:0 0 2px;letter-spacing:.01em;color:var(--accent)}.home .subtitle{margin:0 0 26px;color:var(--ink-soft);font-size:14px}.field{margin-bottom:14px;text-align:left}.field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-weight:700}.field input{width:100%;font:inherit;font-size:16px;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:var(--surface-2);color:var(--ink);box-shadow:inset 0 2px #78461414}.field input::placeholder{color:#3a261659}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e0562f2e}.field input.code{text-transform:uppercase;letter-spacing:.42em;font-size:26px;text-align:center;font-family:var(--serif);padding-left:.42em}.divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--ink-soft);font-size:12px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:currentColor}.error{margin-top:12px;font-size:13px;color:var(--ko);font-weight:700;min-height:18px}.lobby{text-align:center}.code-display{font-family:var(--serif);font-size:46px;font-weight:600;letter-spacing:.2em;color:var(--accent);margin:4px 0 2px;padding-left:.2em}.seat-list{display:grid;gap:8px;margin:20px 0}.seat-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:2px solid var(--line);font-size:14px;font-weight:600}.seat-item.empty{color:var(--ink-soft);font-style:italic;font-weight:400;border-style:dashed;background:transparent}.seat-item .team-mark{font-size:11px;color:var(--ink-soft);letter-spacing:.08em;font-weight:600}.seat-item .btn{padding:5px 10px;font-size:12px}.copy-link{display:flex;gap:8px;margin-top:4px}.copy-link input{flex:1;font:inherit;font-size:12px;padding:8px 10px;border-radius:10px;border:2px solid var(--line);background:var(--surface-2);color:var(--ink-soft)}.log{position:absolute;right:var(--edge);bottom:var(--edge);z-index:40;width:min(220px,34vw);max-height:26vh;overflow:hidden;display:flex;flex-direction:column-reverse;gap:3px;font-size:12px;font-weight:600;color:#3a2616b8;text-align:right;pointer-events:none;mask-image:linear-gradient(to top,#000 55%,transparent)}.connection{position:absolute;top:var(--edge);right:var(--edge);z-index:45;font-size:12px;display:flex;align-items:center;gap:7px;color:var(--ink-soft);font-weight:600}.hints-toggle{position:absolute;top:calc(var(--edge) + 22px);right:var(--edge);z-index:45;appearance:none;border:2px solid var(--line);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;box-shadow:0 2px 0 var(--shadow-flat);cursor:pointer;transition:color .16s,border-color .16s,opacity .16s;opacity:.8}.hints-toggle:hover{opacity:1;color:var(--ink);border-color:var(--accent)}.hints-toggle.off{color:#3a261673}.hints-toggle:focus-visible{outline:3px solid rgba(224,86,47,.45);outline-offset:2px;opacity:1}.connection .led{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px #4caf6e40}.connection.down .led{background:var(--ko);box-shadow:0 0 0 2px #d9432c40}@media(max-width:720px){:root{--card-w: clamp(48px, 16vw, 68px)}.log{display:none}.home-card{padding:26px 20px}.hud{top:calc(var(--frame) + 4px);left:calc(var(--frame) + 4px);right:calc(var(--frame) + 4px);flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.scorecard{min-width:0;padding:5px 12px;display:flex;align-items:center;gap:14px;border-radius:999px}.scorecard h3,.scorecard .names{display:none}.score-row{padding:0;font-size:13px;gap:7px}.badge{font-size:12px;padding:4px 10px}.badge.status{order:-1;width:100%;justify-content:center}.connection{inset:auto auto 8px 10px;font-size:10px}.hints-toggle{top:auto;bottom:6px;right:10px;font-size:10px}.mini-hand{display:none}.plate .count{display:inline-flex}:root{--pet-scale: 1}.seat.west .pet,.seat.east .pet{display:none}.seat.south{left:calc(var(--frame) + 4px);transform:none;bottom:calc(var(--hand-bottom) + var(--card-h) * 1.2 + 6px)}.seat.south .figure{align-items:flex-start}.chatbox{left:auto;right:calc(var(--frame) + 4px);bottom:calc(var(--hand-bottom) + var(--card-h) * 1.2 + 10px)}.chatbox input{width:96px;font-size:12px;padding:7px 10px}.chatbox .mic{width:32px;height:32px;font-size:14px}.connection{left:auto;right:130px}.bubble{max-width:160px;font-size:12px}.toasts{left:50%;right:auto;bottom:auto;transform:translate(-50%);align-items:center}.long{display:none}.seat.north{top:122px}.trick{top:50%}.seat.west{left:calc(var(--frame) + 3px);top:47%}.seat.east{right:calc(var(--frame) + 3px);top:47%}.seat.west .plate,.seat.east .plate{flex-direction:column;gap:4px;padding:8px 7px;border-radius:16px;max-width:78px}.seat.west .plate .name,.seat.east .plate .name{font-size:11px;white-space:normal;text-align:center;line-height:1.15}.seat.west .plate .tag,.seat.east .plate .tag{border-left:0;padding-left:0;font-size:9px;text-align:center}.trick .who{font-size:10px;padding:1px 6px;max-width:66px}.cardw.playable:hover .card{transform:translateY(-10px) scale(1.03)}.trick .points{font-size:11px;padding:2px 6px}.lead-prompt{font-size:15px}.claim-btn{font-size:14px;padding:10px 16px}.panel{padding:18px}.code-display{font-size:38px}}@media(min-width:721px)and (max-width:1100px){:root{--pet-scale: 2}.mini-hand .card-back{--card-w: clamp(20px, 2.4vw, 30px)}.long{display:none}}@media(max-height:880px){:root{--pet-scale: 2}}@media(max-height:720px){:root{--pet-scale: 1.5}}@media(max-height:520px){:root{--card-w: clamp(36px, 6.6vh, 52px)}.seat.south{display:none}.hud{top:6px;left:8px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;max-width:44vw}.scorecard{min-width:0;padding:4px 10px;display:flex;align-items:center;gap:12px;border-radius:999px}.scorecard h3,.scorecard .names{display:none}.score-row{padding:0;font-size:12px;gap:6px}.badge{font-size:11px;padding:3px 9px}.seat.north{top:68px}.seat.north .mini-hand{display:none}:root{--pet-scale: 1}.seat.south{display:flex;left:10px;bottom:54px;transform:none}.chatbox{left:10px;bottom:10px}.chatbox input{width:120px}.seat.north .plate .count{display:inline-flex}.trick{top:53%}.log{display:none}}
