:root{--felt:#0f3d2e;--felt-2:#145a43;--felt-3:#1c6d52;--ink:#f4f1e8;--muted:#b9c8bf;--gold:#e3c766;--danger:#e05a4f;--ok:#58c27d;--card-w:clamp(46px, 11.5vw, 88px);--card-h:calc(var(--card-w) * 1.4);--red:#c8102e;--black:#1a1a1a;--panel:#00000059;--radius:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{background:radial-gradient(ellipse at 50% 30%, var(--felt-3), var(--felt) 70%);color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{min-height:100dvh}button{font:inherit;color:inherit;background:var(--felt-2);cursor:pointer;border:1px solid #ffffff2e;border-radius:10px;padding:10px 16px;transition:transform 80ms,background .15s,opacity .15s}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--gold);color:#2a220a;border-color:#0000;font-weight:700}button.ghost{background:0 0}button.danger{background:var(--danger);border-color:#0000}button.small{border-radius:8px;padding:6px 10px;font-size:.85rem}input{font:inherit;color:var(--ink);background:#00000040;border:1px solid #ffffff40;border-radius:10px;outline:none;width:100%;padding:12px 14px}input:focus{border-color:var(--gold)}input.code{text-transform:uppercase;letter-spacing:.4em;text-align:center;font-size:1.4rem;font-weight:700}h1,h2,h3{margin:0}.muted{color:var(--muted)}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:1}.center{text-align:center}.page{max-width:520px;padding:calc(16px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));flex-direction:column;gap:18px;min-height:100dvh;margin:0 auto;display:flex}.logo{letter-spacing:-.02em;font-size:2rem;font-weight:800}.logo small{color:var(--muted);letter-spacing:0;font-size:.9rem;font-weight:400;display:block}.panel{background:var(--panel);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}.error{color:#ffb4ad;font-size:.9rem}.roomcode{letter-spacing:.35em;text-align:center;padding-left:.35em;font-size:2.4rem;font-weight:800}.seats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.seat{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:6px;min-height:78px;padding:10px 12px;display:flex}.seat.team0{border-left:4px solid var(--gold)}.seat.team1{border-left:4px solid #7fb3ff}.seat .who{align-items:center;gap:6px;font-weight:600;display:flex}.seat .who .dot{background:var(--danger);border-radius:50%;width:8px;height:8px}.seat .who .dot.on{background:var(--ok)}.seat .actions{flex-wrap:wrap;gap:6px;display:flex}.games{flex-wrap:wrap;gap:8px;display:flex}.gcat{flex-direction:column;gap:6px;display:flex}.gcat h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem;font-weight:600}.games button:disabled .tag{opacity:.8}.games button.sel{background:var(--gold);color:#2a220a;font-weight:700}.opt{justify-content:space-between;align-items:center;gap:10px;display:flex}.opt select{font:inherit;background:var(--felt-2);color:var(--ink);border:1px solid #fff3;border-radius:8px;padding:6px 8px}.decks{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.decks.compact{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}.deck{background:#ffffff0f;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;display:flex}.deck.sel{border-color:var(--gold);background:#e3c7661f}.deck .thumbs{display:flex}.deck .thumbs img{background:#fff;border-radius:4px;width:44px;box-shadow:0 2px 5px #0006}.deck .thumbs img+img{margin-left:-14px;transform:rotate(8deg)translateY(3px)}.decks.compact .thumbs img{width:34px}.deck .nm{font-size:.85rem;font-weight:600}.deck .desc{color:var(--muted);text-align:center;font-size:.72rem}.table{height:100dvh;padding:var(--safe-top) 0 var(--safe-bottom);grid-template-rows:auto 1fr auto auto;width:100%;display:grid;position:relative;overflow:hidden}.table>*{min-width:0}.hud{background:#00000040;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:.85rem;display:flex}.hud .score{gap:10px;display:flex}.hud .score b{font-size:1rem}.hud .contract{white-space:nowrap;background:#ffffff1a;border-radius:8px;padding:3px 8px}.arena{grid-template:"top top top""left mid right"1fr"bot bot bot"/auto 1fr auto;min-height:0;padding:6px 8px;display:grid;position:relative}.pos-top{grid-area:top;justify-self:center}.pos-left{grid-area:left;align-self:center}.pos-right{grid-area:right;align-self:center}.pos-bot{grid-area:bot;justify-self:center}.mid{min-height:calc(var(--card-h) * 2.3);grid-area:mid;position:relative}.player{border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:72px;padding:6px 8px;display:flex;position:relative}.player .nm{text-overflow:ellipsis;white-space:nowrap;max-width:30vw;font-size:.85rem;font-weight:600;overflow:hidden}.player.turn .nm:after{content:"";background:var(--gold);width:8px;height:8px;box-shadow:0 0 8px var(--gold);border-radius:50%;margin-left:6px;animation:1s infinite pulse;display:inline-block}.player.off .nm{opacity:.5;text-decoration:line-through}.player .cnt{color:var(--muted);font-size:.72rem}.player.team0 .nm{color:var(--gold)}.player.team1 .nm{color:#9cc4ff}.bubble{color:#222;white-space:nowrap;z-index:3;background:#fff;border-radius:12px;padding:4px 9px;font-size:.8rem;font-weight:700;animation:.2s ease-out pop;position:absolute;box-shadow:0 2px 8px #00000059}.pos-top .bubble{margin-top:2px;top:100%;left:50%;transform:translate(-50%)}.pos-left .bubble{margin-top:2px;top:100%;left:0}.pos-right .bubble{margin-top:2px;top:100%;right:0}.pos-bot .bubble{margin-bottom:2px;bottom:100%;left:50%;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:scale(.6)}}@keyframes pulse{50%{opacity:.4}}.shouts{pointer-events:none;z-index:4;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.shout{white-space:nowrap;background:#0000008c;border:2px solid #fff3;border-radius:16px;flex-direction:column;align-items:center;padding:8px 22px;animation:2.8s ease-out forwards shout;display:flex;box-shadow:0 8px 30px #00000073}.shout .who{color:var(--muted);font-size:.8rem}.shout .what{letter-spacing:.02em;color:var(--gold);text-shadow:0 2px 10px #0009;font-size:2rem;font-weight:800}.shout.team1 .what{color:#9cc4ff}.shout .what .s-red{color:#ff7b73}@keyframes shout{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1.08)}20%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-16px)scale(.95)}}.trick{position:absolute;inset:0}.trick .slot{transition:transform .25s ease-out,opacity .25s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trick .slot.t{transform:translate(-50%, calc(-50% - var(--card-h) * .55))}.trick .slot.b{transform:translate(-50%, calc(-50% + var(--card-h) * .55))}.trick .slot.l{transform:translate(calc(-50% - var(--card-w) * .9), -50%)}.trick .slot.r{transform:translate(calc(-50% + var(--card-w) * .9), -50%)}.trick .slot.win .card{box-shadow:0 0 0 3px var(--gold), 0 4px 12px #0006}.trick .slot.enter{animation:.3s ease-out fly}@keyframes fly{0%{opacity:0}}.trick .empty{color:#ffffff59;text-align:center;justify-content:center;align-items:center;padding:0 30px;font-size:.9rem;display:flex;position:absolute;inset:0}.card{--card-h:calc(var(--card-w) * 1.4);width:var(--card-w);height:var(--card-h);border-radius:calc(var(--card-w) * .05);background:#fff;flex:none;line-height:0;position:relative;overflow:hidden;box-shadow:0 2px 6px #00000059}.card img{pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.card.small{--card-w:clamp(34px, 8vw, 60px)}.card.mini{--card-w:30px}.hand{--card-w:clamp(52px, 16vw, 100px);--card-h:calc(var(--card-w) * 1.4);min-height:calc(var(--card-h) + 22px);justify-content:center;align-items:flex-end;gap:0;padding:6px 10px 8px;display:flex}.hand .card{margin-left:calc(var(--card-w) * -.32);cursor:pointer;transition:transform .15s,opacity .15s,filter .15s}.hand .card:first-child{margin-left:0}.hand .card.dim{filter:brightness(.55)}.hand .card.ok{transform:translateY(-10px)}.hand .card.ok:active{transform:translateY(-18px)}.hand.wide .card{margin-left:calc(var(--card-w) * -.15)}.sheet{z-index:5;background:#163f31;border-top-left-radius:18px;border-top-right-radius:18px;flex-direction:column;gap:8px;padding:10px 12px 8px;animation:.25s ease-out up;display:flex;box-shadow:0 -6px 24px #00000073}@keyframes up{0%{transform:translateY(100%)}}.chips{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{text-align:center;background:#ffffff1a;border:1px solid #0000;border-radius:999px;flex:none;min-width:48px;padding:7px 11px;font-weight:600}.chip.sel{background:var(--gold);color:#2a220a;border-color:#0000}.chip.suit{padding:4px 12px;font-family:Georgia,serif;font-size:1.25rem}.chip.red{color:#ff8a80}.chip.sel.red{color:var(--red)}.sheet .btns{gap:8px;display:flex}.stepper{align-items:center;gap:8px;display:flex}.stepper input[type=range]{accent-color:var(--gold);flex:1;min-width:0}.stepper .chip.big{min-width:64px;font-size:1.1rem}.sheet .btns button{flex:1}.modal-bg{z-index:10;background:#0000008c;justify-content:center;align-items:center;padding:20px;animation:.2s fly;display:flex;position:absolute;inset:0}.modal{background:#163f31;border-radius:16px;flex-direction:column;gap:12px;width:min(420px,100%);max-height:85dvh;padding:18px;display:flex;overflow:auto;box-shadow:0 10px 40px #00000080}.modal h2{font-size:1.2rem}.result{grid-template-columns:1fr auto auto;gap:4px 14px;font-size:.95rem;display:grid}.result .h{color:var(--muted);font-size:.8rem}.result .team-h{flex-direction:column;align-items:center;gap:2px;display:flex}.result .pair{display:flex}.result .pair .avatar{width:28px;height:28px}.result .pair .avatar+.avatar{margin-left:-8px}.result b{font-size:1.1rem}.made{color:var(--ok);font-weight:700}.failed{color:#ff8a80;font-weight:700}.modal.wide{width:min(560px,100%)}.modal.hist-modal{overflow:hidden}.hist-body{flex-direction:column;gap:18px;min-height:0;padding-right:2px;display:flex;overflow:auto}.deal{flex-direction:column;gap:6px;display:flex}.deal-head{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:.95rem;display:flex}.deal-head .muted{font-size:.85rem}.deal-contract{margin-left:auto;font-weight:600}.deal-res{font-size:.95rem}.hist{--hist-card:clamp(30px, 9vw, 46px);background:#0000002e;border-radius:10px;grid-template-columns:auto repeat(4,minmax(0,1fr)) auto;align-items:center;gap:3px 4px;padding:6px 6px 8px;display:grid}.hist .card.mini{--card-w:var(--hist-card)}.hist .h{text-align:center;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:2px 0 4px;font-size:.78rem;font-weight:600;display:flex}.hist .h>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.hist .h .avatar{width:30px;height:30px}.hist .h.team0 .avatar{border-color:var(--gold)}.hist .h.team1 .avatar{border-color:#7fb3ff}.hist .h.team0{color:var(--gold)}.hist .h.team1{color:#9cc4ff}.hist .sec{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;grid-column:1/-1;margin-top:6px;font-size:.68rem}.hist .lbl{color:var(--muted);text-align:right;min-width:1.2em;padding-right:3px;font-size:.75rem}.hist .pts{text-align:right;min-width:2em;color:var(--muted);padding-left:3px;font-size:.72rem}.hist .pts.team0{color:var(--gold)}.hist .pts.team1{color:#9cc4ff}.hist .bid{text-align:center;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.82rem;font-weight:600;overflow:hidden}.hist .bid.pass{color:var(--muted);font-weight:400}.hist .bid.coinche,.hist .bid.surcoinche{color:#ff8a80}.hist .cell{min-height:calc(var(--hist-card) * 1.4 + 4px);justify-content:center;display:flex}.hist .cw{margin:2px 0;line-height:0;display:inline-block;position:relative}.hist .cell.win .card{box-shadow:0 0 0 2px var(--gold), 0 2px 6px #00000059}.hist .ord{color:#fff;opacity:.8;background:#000000bf;border-radius:6px;padding:2px 4px;font-size:.6rem;font-style:normal;line-height:1;position:absolute;bottom:-3px;left:-3px}.hist .ord.lead{background:var(--ink);color:#1a1a1a;opacity:1;font-weight:700}.hist .anns{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.hist .ann{flex-direction:column;align-items:center;gap:2px;display:flex}.hist .fan{display:flex}.hist .fan .card+.card{margin-left:calc(var(--hist-card) * -.62)}.hist .cap{color:var(--muted);white-space:nowrap;font-size:.66rem}.hist .cap.no{text-decoration:line-through}.avatar{object-fit:cover;background:#222;border:2px solid #ffffff40;border-radius:50%;flex:none;width:36px;height:36px}.avatar.big{width:56px;height:56px}.avatars{grid-template-columns:repeat(8,1fr);gap:6px;display:grid}.avatar.pick{aspect-ratio:1;cursor:pointer;opacity:.75;width:100%;height:auto;transition:transform .1s,opacity .15s}.avatar.pick:hover{opacity:1}.avatar.pick.sel{opacity:1;border-color:var(--gold);box-shadow:0 0 0 2px var(--gold);transform:scale(1.06)}.seat .who .avatar{width:30px;height:30px}.player .avatar{width:40px;height:40px}.player.team0 .avatar{border-color:var(--gold)}.player.team1 .avatar{border-color:#7fb3ff}.player.off .avatar{opacity:.5;filter:grayscale()}.player.solo .nm{color:var(--ink)}.player.solo .avatar{border-color:#ffffff4d}.player.solo.chooser .avatar{border-color:var(--gold)}.player .cnt .neg{color:#ff8a80}.player .cnt .posv{color:var(--ok)}.shout.solo .what{color:var(--gold)}.contracts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.contract-btn{text-align:left;align-items:center;gap:10px;min-height:52px;padding:6px 10px;display:flex}.contract-btn .ctitle{font-size:.95rem;font-weight:700}.contract-btn.done{opacity:.35}.contract-btn.done .cicon{filter:grayscale()}.modal-bg.choose-bg{padding-top:calc(48px + var(--safe-top));align-items:flex-start}.modal.choose{width:min(420px,100%)}.cicon{--card-w:26px;flex:none;align-items:center;width:52px;height:40px;display:inline-flex}.cicon .card.mini{--card-w:26px;box-shadow:0 1px 3px #00000080}.cicon.fan .card+.card{margin-left:-12px}.cicon.fan.wide .card+.card{margin-left:-14px}.cicon.stack{position:relative}.cicon.stack .card{position:absolute;top:2px;left:8px}.cicon.stack .card:nth-child(2){top:0;left:12px;transform:rotate(6deg)}.cicon.stack .card:nth-child(3){top:-2px;left:16px;transform:rotate(12deg)}.pip-heart{fill:#e0303a;filter:drop-shadow(0 1px 2px #0006);width:34px;height:34px;margin-left:6px}@media (orientation:landscape) and (max-height:520px){.modal.choose{width:min(560px,100%)}.modal.choose .contracts{grid-template-columns:1fr 1fr 1fr 1fr}.contract-btn{min-height:44px;padding:4px 8px}.contract-btn .ctitle{font-size:.85rem}}.board{--card-w:clamp(24px, 6.5vw, 44px);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px 6px;display:flex;position:absolute;inset:0}.board .brow{min-height:30px;width:calc(var(--card-w) * 5.6 + 30px);align-items:center;gap:6px;max-width:100%;display:flex}.board .brow.empty{opacity:.35}.board .bsuit{text-align:center;flex:none;width:20px;font-family:Georgia,serif;font-size:1.1rem}.board .brun{--card-w:clamp(24px, 6.5vw, 44px);display:flex}.board .brun .card.mini{--card-w:clamp(24px, 6.5vw, 44px)}.board .brun .card+.card{margin-left:calc(var(--card-w) * -.35)}.result.solo{grid-template-columns:1fr auto auto}.scoregrid{grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr));align-items:center;gap:4px 6px;font-size:.85rem;display:grid}.scoregrid .h{text-align:center;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:600;overflow:hidden}.scoregrid .lbl{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scoregrid .pt{text-align:center}.scoregrid .pt.chooser{text-underline-offset:3px;text-decoration:underline}.s-red{color:#ff7b73}.s-black{color:inherit}.bubble .s-red,.modal.light .s-red{color:var(--red)}.hud .contract .s-red{color:#ff7b73}.toasts{top:calc(10px + var(--safe-top));z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;left:0;right:0}.toast{color:#fff;background:#222;border-radius:999px;padding:8px 14px;font-size:.9rem;animation:.2s pop;box-shadow:0 4px 12px #0006}.banner{top:var(--safe-top);background:var(--danger);color:#fff;text-align:center;z-index:40;padding:4px;font-size:.85rem;position:fixed;left:0;right:0}.banner.update{background:#1f6f4a}.banner.update .muted{color:#d8e8de}.iconbtn{background:0 0;border:none;padding:4px 8px;font-size:1.2rem}.tag{background:#ffffff26;border-radius:6px;padding:2px 6px;font-size:.7rem}@media (orientation:landscape) and (max-height:520px){:root{--card-w:calc(22vh / 1.4)}.table{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);grid-template-rows:auto 1fr auto}.hud{padding:2px 10px;font-size:.8rem}.hud .score b{font-size:.9rem}.hud .me-info{display:inline}.arena{grid-template-rows:auto 1fr;grid-template-areas:"top top top""left mid right";padding:0 8px}.table.has-sheet .arena{padding-right:calc(min(400px, 52vw) + 16px + env(safe-area-inset-right,0px))}.mid{min-height:0}.pos-bot{display:none}.player{gap:0;min-width:60px;padding:0 6px}.player .avatar{width:28px;height:28px}.shout .what{font-size:1.4rem}.shout{padding:4px 14px}.shouts{top:6%}.player .nm{max-width:26vw;font-size:.8rem}.player .cnt{font-size:.62rem}.bubble{padding:2px 7px;font-size:.72rem}.trick .slot.t{transform:translate(-50%, calc(-50% - var(--card-h) * .38))}.trick .slot.b{transform:translate(-50%, calc(-50% + var(--card-h) * .38))}.trick .empty{font-size:.8rem}.hand{--card-w:calc(31vh / 1.4);--card-h:31vh;min-height:calc(31vh + 10px);padding:2px 8px 4px}.hand .card{margin-left:calc(var(--card-w) * -.22)}.hand .card.ok{transform:translateY(-6px)}.sheet{right:calc(8px + env(safe-area-inset-right,0px));z-index:6;border-radius:14px;gap:6px;width:min(400px,52vw);max-height:calc(100dvh - 46px - 31vh);padding:8px;position:absolute;top:34px;overflow:auto}.sheet .chips{flex-wrap:wrap;overflow:visible}.chip{min-width:40px;padding:4px 9px;font-size:.85rem}.chip.suit{padding:2px 9px;font-size:1.05rem}.sheet .btns button{padding:7px 8px;font-size:.85rem}.modal{max-height:92dvh;padding:12px}}.hud .me-info{display:none}@media (min-width:700px) and (min-height:521px){:root{--card-w:clamp(60px, 7vw, 96px)}.player .nm{max-width:160px;font-size:.95rem}.hud{font-size:.95rem}.arena,.sheet,.hand{justify-self:center;width:min(100%,880px)}.sheet{border-radius:18px}}.table.tarot{--card-w:min(clamp(40px, 9.5vw, 72px), calc(13vh / 1.84));--card-h:calc(var(--card-w) * 1.84)}.card.tarot{--card-h:calc(var(--card-w) * 1.84);border-radius:calc(var(--card-w) * .06);background:0 0;box-shadow:0 2px 6px #00000073}.card.tarot img{object-fit:contain}.table.tarot .mid{min-height:calc(var(--card-h) * 1.8)}.hand.tarot .card.from-chien{box-shadow:0 0 0 3px var(--gold), 0 2px 6px #00000073}.hand.tarot .card.from-chien.sel{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--gold)}.hand.tarot{--card-w:clamp(50px, 16vw, 84px);--card-h:calc(var(--card-w) * 1.84);min-height:calc(var(--card-h) + 16px);flex-direction:column;align-items:stretch;gap:4px;padding:4px 8px 6px}.hand.tarot .hrow{min-height:calc(var(--card-h) + 8px);justify-content:center;align-items:flex-end;display:flex}.hand.tarot .hrow .card{margin-left:min(calc(var(--ov,40px) * -1), calc((100% - var(--card-w) * var(--n,9)) / max(1, var(--n,9) - 1)))}.hand.tarot .hrow .card:first-child{margin-left:0}.hand.tarot.tiers{gap:0}.hand.tarot.tiers .hrow.back{margin-bottom:calc(var(--card-h) * -.6)}.hand.tarot.tiers .hrow.front{z-index:1;position:relative}.hand.tarot.tiers .hrow.back .card.ok{transform:translateY(-6px)}.hand.tarot .card.ok{transform:translateY(-8px)}.hand.tarot .card.sel{box-shadow:0 0 0 3px var(--gold), 0 4px 12px #0006;transform:translateY(-14px)}.hand.tarot.discarding .card.ok:not(.sel){transform:none}.chien{--card-w:clamp(34px, 8vw, 56px);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:4px;display:flex;position:absolute;inset:0}.chien .ccards{flex-wrap:wrap;justify-content:center;gap:3px;display:flex}.chien .card.small{--card-w:clamp(34px, 8vw, 56px)}.chien .cap{text-align:center;font-size:.8rem}.shown-discard{opacity:.85;gap:2px;display:flex;position:absolute;bottom:2px;right:2px}.showcase{background:#00000080;border-radius:12px;justify-content:center;padding:4px 8px;animation:.2s pop;display:flex}.showcase .card+.card{margin-left:-8px}.chip.lvl{background:#e3c76638}.seat.solo{border-left:4px solid #ffffff40}.linkbtn{text-align:left;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.scoregrid .deal-detail{grid-column:1/-1}.hist.tarot{--hist-card:clamp(26px, 7vw, 40px)}.hist.tarot .card.mini{--card-w:var(--hist-card)}.hist .h.taker{color:var(--gold)}.hist .h.taker .avatar{border-color:var(--gold)}@media (orientation:landscape) and (max-height:520px){.table.tarot{--card-w:calc(20vh / 1.84);--card-h:20vh}.table.tarot .mid{min-height:0}.hand.tarot{--card-w:calc(30vh / 1.84);--card-h:30vh;min-height:calc(30vh + 8px);padding:2px 8px 4px}.hand.tarot .card.ok{transform:translateY(-5px)}.chien,.chien .card.small{--card-w:calc(16vh / 1.84)}}@media (min-width:700px) and (min-height:521px){.table.tarot{--card-w:clamp(54px, 6vw, 84px)}.hand.tarot{--card-w:clamp(56px, 6.5vw, 92px)}}.arena.five{grid-template-columns:auto 1fr auto;grid-template-areas:"tl top tr""left mid right""bot bot bot"}.pos-tl{grid-area:tl;justify-self:start}.pos-tr{grid-area:tr;justify-self:end}.pos-tl .bubble{margin-top:2px;top:100%;left:0}.pos-tr .bubble{margin-top:2px;top:100%;right:0}.trick .slot.tl{transform:translate(calc(-50% - var(--card-w) * .7), calc(-50% - var(--card-h) * .42))}.trick .slot.tr{transform:translate(calc(-50% + var(--card-w) * .7), calc(-50% - var(--card-h) * .42))}.table.five .trick .slot.l{transform:translate(calc(-50% - var(--card-w) * 1.05), calc(-50% + var(--card-h) * .12))}.table.five .trick .slot.r{transform:translate(calc(-50% + var(--card-w) * 1.05), calc(-50% + var(--card-h) * .12))}.table.five .trick .slot.b{transform:translate(-50%, calc(-50% + var(--card-h) * .5))}@media (orientation:landscape) and (max-height:520px){.arena.five{grid-template-rows:auto 1fr;grid-template-areas:"tl top tr""left mid right"}.trick .slot.tl{transform:translate(calc(-50% - var(--card-w) * .7), calc(-50% - var(--card-h) * .3))}.trick .slot.tr{transform:translate(calc(-50% + var(--card-w) * .7), calc(-50% - var(--card-h) * .3))}.table.five .trick .slot.b{transform:translate(-50%, calc(-50% + var(--card-h) * .35))}}@media (max-height:700px) and (min-width:700px){.table.tarot .pos-bot{display:none}.table.tarot .hud .me-info{display:inline}.table.tarot .mid{min-height:calc(var(--card-h) * 1.3)}.table.tarot .player{gap:2px;padding:2px 6px}.table.tarot .player .avatar{width:32px;height:32px}}.avatar.pickable{cursor:pointer;transition:transform .1s,box-shadow .15s}.avatar.pickable:hover{box-shadow:0 0 0 2px var(--gold);transform:scale(1.06)}.avatar.pickable.sel{box-shadow:0 0 0 2px var(--gold)}.ech-table{--ech-plateau:min(88vw, 70vh, 620px)}.ech-zone{grid-template-rows:auto minmax(0,1fr) auto auto;align-items:center;gap:6px;min-height:0;padding:6px 10px;display:grid}.ech-joueur{background:#00000038;border-radius:10px;align-items:center;gap:8px;padding:4px 8px;display:flex}.ech-joueur.actif{background:#e3c76629;box-shadow:inset 0 0 0 1px #e3c76673}.ech-joueur .avatar{border-radius:50%;width:32px;height:32px}.ech-joueur-nom{flex-direction:column;line-height:1.15;display:flex}.ech-joueur-nom .muted{font-size:.72rem}.ech-pendule{font-variant-numeric:tabular-nums;background:#00000059;border-radius:8px;margin-left:auto;padding:2px 10px;font-size:1.2rem;font-weight:700}.ech-pendule.actif{background:var(--gold);color:#2a220a}.ech-pendule.basse{color:#ff8a80}.ech-pendule.actif.basse{color:#6d1a13}.ech-scene{touch-action:none;place-self:stretch stretch;min-width:0;min-height:0;position:relative;overflow:hidden}.ech-canvas-wrap{position:absolute;inset:0}.ech-canvas{width:100%;height:100%;display:block}.ech-piece-case.fantome{pointer-events:none;animation:.34s ease-out forwards ech-prise}@keyframes ech-prise{0%{opacity:1}to{opacity:0;transform:scale(.55)}}.ech-recentrer{position:absolute;bottom:4px;right:8px}.ech-promo-btn{background:#ffffff14;width:62px;height:62px;padding:4px}.ech-promo-btn .ech-piece-img{height:100%}.ech-liste{background:#00000040;border-radius:10px;flex-direction:column;align-self:stretch;gap:4px;min-height:0;max-height:24vh;padding:6px 8px;display:flex}.ech-liste-corps,.ech-journal{font-variant-numeric:tabular-nums;flex:auto;grid-template-columns:auto 1fr 1fr;align-content:start;gap:1px 10px;min-height:0;font-size:.85rem;display:grid;overflow:auto}.ech-journal{max-height:50vh}.ech-note{grid-column:1/-1;font-size:.75rem}.ech-coup{display:contents}.ech-coup.dernier span{color:var(--gold);font-weight:700}.ech-barre{background:#00000040;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:6px 10px;font-size:.85rem;display:flex}.ech-barre>:first-child{margin-right:auto}.ech-pastilles{flex-wrap:wrap;gap:8px;display:flex}.ech-pastille{border:2px solid #ffffff4d;border-radius:50%;width:34px;height:34px;padding:0}.ech-pastille.on{border-color:var(--gold);box-shadow:0 0 0 3px #e3c7664d}.ech-aide{grid-template-columns:auto 1fr;align-items:baseline;gap:4px 10px;font-size:.8rem;display:grid}.ech-aide b{white-space:nowrap}@media (min-width:760px) and (min-height:521px){.ech-zone{grid-template:"adverse liste""scene liste"minmax(0,1fr)"moi liste"/minmax(0,1fr) minmax(200px,280px);justify-items:stretch}.ech-joueur.haut{grid-area:adverse}.ech-joueur.bas{grid-area:moi}.ech-scene{grid-area:scene}.ech-liste{grid-area:liste;max-height:none}.ech-table{--ech-plateau:min(74vh, 58vw, 640px)}}@media (orientation:landscape) and (max-height:520px){.ech-table{--ech-plateau:min(48vw, 78vh)}.ech-zone{grid-template-rows:auto minmax(0,1fr) auto;gap:2px;padding:2px 8px}.ech-liste{display:none}.ech-joueur{padding:1px 6px}.ech-joueur .avatar{width:26px;height:26px}.ech-pendule{font-size:1rem}.ech-barre{padding:2px 8px;font-size:.75rem}}
