:root{--paper: #e9eef0;--paper-2: #dde5e9;--ink: #14304a;--ink-soft: #4a6276;--rule: #b9c7cf;--accent: #b3263e;--felt: #1d5a4c;--felt-2: #174a3f;--felt-ink: #e7f1ec;--felt-soft: #a9cbbd;--glow: #ffd36b;--good: #2f7a5b;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--paper: #0f2233;--paper-2: #16304a;--ink: #dce6ea;--ink-soft: #94aab8;--rule: #2b465d;--accent: #f0798d;--felt: #12382f;--felt-2: #0d2b24;--felt-soft: #84ad9d;--good: #6fc59e}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--rule);background:var(--paper);border-radius:.6rem;padding:.55rem .9rem;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){border-color:var(--ink-soft)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}button.quiet{border-color:transparent;background:transparent;color:var(--ink-soft)}button.wide{width:100%}button.icon{padding:.35rem .6rem;font-size:1.15rem;line-height:1;min-width:2.5rem;min-height:2.5rem}button.link{border:0;padding:0;background:none;color:var(--ink-soft);text-decoration:underline;text-decoration-color:var(--accent);font-size:.85rem}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}input[type=text],input:not([type]),select{border:1px solid var(--rule);background:var(--paper);border-radius:.5rem;padding:.55rem .7rem;min-width:0}h1,h2{margin:0;letter-spacing:-.01em}h2{font-size:1.05rem;margin:1.4rem 0 .6rem}.avatar{display:inline-grid;place-items:center;border-radius:50%;background:var(--av, #4a6276);box-shadow:inset 0 -3px #0000002e;flex:none;line-height:1}.avatar.s{width:1.9rem;height:1.9rem;font-size:1.05rem}.avatar.m{width:2.8rem;height:2.8rem;font-size:1.6rem}.avatar.l{width:4.4rem;height:4.4rem;font-size:2.6rem}.avatar.ghost{background:transparent;border:2px dashed var(--rule);color:var(--ink-soft);font-size:1rem;box-shadow:none}.badge-wrap{display:inline-flex;vertical-align:middle}.badge{display:block;filter:drop-shadow(0 1px 1px rgb(0 0 0 / .25))}.foyer{max-width:40rem;margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 1rem 3rem}.top{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.2rem 1rem;margin-bottom:1rem}.top .back{grid-column:1 / -1;color:var(--ink-soft);font-size:.875rem;text-decoration-color:var(--accent);text-underline-offset:.18em}.top h1{font-size:2.3rem;font-family:Georgia,Times New Roman,serif}.me{display:flex;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--rule);border-radius:1rem;background:var(--paper-2)}.avatar-button{border:0;padding:0;background:none;border-radius:50%}.me .who{flex:1;min-width:0}.me .nick{margin:0 0 .4rem;font-size:1.25rem;font-weight:650;overflow-wrap:anywhere}.me .record{margin:.35rem 0 0;color:var(--ink-soft);font-size:.85rem}.me .account{margin:.35rem 0 0;color:var(--ink-soft);font-size:.85rem;overflow-wrap:anywhere}.rank-line{display:flex;gap:.6rem;align-items:center}.rank-line>div{flex:1;min-width:0}.rank-line small{color:var(--ink-soft);font-size:.78rem}.rank-bar{height:.4rem;background:var(--rule);border-radius:1rem;overflow:hidden;margin:.25rem 0 .15rem}.rank-bar span{display:block;height:100%;background:linear-gradient(90deg,#c8961e,#ffe08a);border-radius:1rem}.mine{margin-top:.9rem}.mine h2{margin-top:0}.return{text-align:left;border-color:var(--accent);margin-bottom:.4rem;font-weight:600}.return small{font-weight:400;color:var(--ink-soft)}.start{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1rem}.start .big{display:grid;gap:.15rem;text-align:left;padding:.9rem 1rem;border-radius:.9rem}.start .big span{font-size:1.05rem}.start .big small{font-weight:400;opacity:.8;font-size:.8rem}.join{grid-column:1 / -1;display:grid;gap:.3rem}.join label{font-size:.85rem;color:var(--ink-soft)}.join-row{display:flex;gap:.5rem}.join-row input{flex:1;text-transform:uppercase;letter-spacing:.15em;font-weight:600}@media(max-width:26rem){.start{grid-template-columns:1fr}}.online{font-weight:400;color:var(--ink-soft);font-size:.85rem}.tables,.leaders{list-style:none;padding:0;margin:0}.tables li{display:grid;grid-template-columns:1fr auto;gap:.4rem .8rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--rule)}.tables .t-main{display:grid}.tables .t-main small{color:var(--ink-soft)}.tables .t-seats{grid-column:1;display:flex;gap:.25rem}.tables li>button{grid-row:1 / span 2;grid-column:2}.tables li.empty,.leaders li.empty{display:block;color:var(--ink-soft);border:0;padding:.3rem 0}.seat-dot{position:relative;display:inline-flex}.seat-dot.empty{width:1.9rem;height:1.9rem;border-radius:50%;border:2px dashed var(--rule)}.bot-mark{position:absolute;right:-.3rem;bottom:-.25rem;font-size:.7rem}.leaders li{display:grid;grid-template-columns:1.6rem auto 1fr auto auto 2.4rem;gap:.5rem;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--rule)}.leaders li.you{font-weight:650}.leaders .place{color:var(--ink-soft);text-align:right}.leaders .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaders .rank-name{color:var(--ink-soft);font-size:.8rem}.leaders .pts{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:26rem){.leaders li{grid-template-columns:1.4rem auto 1fr auto 2rem}.leaders .rank-name{display:none}}.rules{margin-top:1.6rem;border-top:1px solid var(--rule);padding-top:.8rem;line-height:1.5}.rules summary{cursor:pointer;font-weight:650}.rules p,.rules li{font-size:.93rem}.net{color:var(--ink-soft);font-size:.85rem;min-height:1.2em}.backdrop{position:fixed;inset:0;z-index:50;background:#08141e80;display:grid;align-items:end;justify-items:center;animation:fade .15s ease}.sheet{width:min(100%,30rem);max-height:92dvh;overflow:auto;background:var(--paper);color:var(--ink);border-radius:1.1rem 1.1rem 0 0;padding:1rem 1rem max(1.2rem,env(safe-area-inset-bottom));box-shadow:0 -8px 30px #00000040;animation:rise .22s cubic-bezier(.2,.9,.3,1.2)}@media(min-width:40rem){.backdrop{align-items:center}.sheet{border-radius:1.1rem}}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.sheet-head h2{margin:0;font-size:1.25rem}.sheet .close{border:0}.field{display:grid;gap:.3rem;font-size:.85rem;color:var(--ink-soft)}.field input{font-size:1.05rem;color:var(--ink)}.hint{color:var(--ink-soft);font-size:.85rem}.avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;margin:.5rem 0}.pick{border:2px solid transparent;padding:.25rem;display:grid;place-items:center;background:none}.pick.on{border-color:var(--accent)}.color-row{display:flex;gap:.45rem;flex-wrap:wrap;margin:.6rem 0 1rem}.swatch{width:2.1rem;height:2.1rem;border-radius:50%;padding:0;border:3px solid transparent}.swatch.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper) inset}.choice{display:grid;gap:.3rem;margin-bottom:.9rem}.choice-label{font-size:.85rem;color:var(--ink-soft)}.seg{display:flex;flex-wrap:wrap;gap:.35rem}.seg button{flex:1 1 auto;padding:.5rem .6rem}.seg button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.check{display:flex;gap:.5rem;align-items:center;margin-bottom:.4rem}.settings{display:grid;gap:.2rem}.toggle{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--rule)}.toggle small{display:block;color:var(--ink-soft);font-size:.8rem}.toggle input{width:1.4rem;height:1.4rem;accent-color:var(--accent)}.toasts{position:fixed;z-index:60;left:0;right:0;top:max(.6rem,env(safe-area-inset-top));display:grid;justify-items:center;gap:.4rem;pointer-events:none}.toast{background:var(--ink);color:var(--paper);padding:.5rem .9rem;border-radius:2rem;font-size:.9rem;box-shadow:0 4px 16px #00000040;animation:drop .2s ease;max-width:calc(100vw - 2rem)}.toast.error{background:var(--accent);color:#fff}.toast.big{font-size:1.15rem;font-weight:700;padding:.7rem 1.3rem;background:linear-gradient(135deg,#c8961e,#f3c94f);color:#3a2a05;animation:pop .45s cubic-bezier(.2,.9,.3,1.4)}.toast.out{opacity:0;transform:translateY(-.5rem);transition:.35s}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(2rem);opacity:0}}@keyframes drop{0%{transform:translateY(-.6rem);opacity:0}}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}}.table-screen{max-width:46rem;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.bar{display:flex;align-items:center;gap:.4rem;padding:max(.4rem,env(safe-area-inset-top)) .5rem .4rem;border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:10}.bar .icon{border-color:transparent;background:none}.bar .code{border:0;background:none;padding:.3rem;font-weight:700;letter-spacing:.08em;white-space:nowrap}.bar .code small{font-weight:400;letter-spacing:0;color:var(--ink-soft)}.share-mark{color:var(--ink-soft);font-weight:400}.scores{flex:1;display:flex;justify-content:center;align-items:baseline;gap:.8rem;min-width:0}.score{display:grid;text-align:center;line-height:1.1;flex:none}.score small{color:var(--ink-soft);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:5rem}.score strong{font-variant-numeric:tabular-nums;font-size:1.1rem}.score .live{font-size:.7rem;font-weight:600;color:var(--accent)}.scores .target{color:var(--ink-soft);font-size:.7rem}.net-banner{background:var(--accent);color:#fff;text-align:center;padding:.35rem;font-size:.85rem;display:flex;gap:.6rem;justify-content:center;align-items:center}.net-banner button{padding:.15rem .6rem;background:#fff;color:var(--accent);border:0}.waiting{padding:1rem}.waiting h2{margin-top:.4rem;font-size:1.3rem}.lead{color:var(--ink-soft)}.share-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.big-code{margin:0;font-size:2rem;font-weight:800;letter-spacing:.2em}.seats{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1rem}.seat-box{position:relative;border:1px solid var(--rule);border-radius:.9rem;padding:.8rem;display:grid;justify-items:center;gap:.35rem;text-align:center;background:var(--paper-2)}.seat-box.you{border-color:var(--accent)}.seat-box.offline{opacity:.65}.seat-box.empty{background:none;border-style:dashed}.seat-box p{margin:0;font-weight:600;overflow-wrap:anywhere}.seat-box small{font-weight:400;color:var(--ink-soft)}.seat-box .team{position:absolute;top:.4rem;left:.6rem}.seat-box .row{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center}.seat-box button,.seat-box select{padding:.35rem .6rem;font-size:.85rem}.status{color:var(--ink-soft);text-align:center}.board{flex:1;display:flex;flex-direction:column;min-height:0}.others{display:flex;gap:.4rem;justify-content:space-around;padding:.5rem}.chip{position:relative;display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem .3rem .3rem;border-radius:2rem;border:1px solid var(--rule);background:var(--paper-2);min-width:0;transition:box-shadow .2s,border-color .2s}.chip.turn{border-color:var(--glow);box-shadow:0 0 0 2px var(--glow),0 0 14px #ffd36b99}.chip.offline{opacity:.6}.chip.partner{background:color-mix(in srgb,var(--good) 14%,var(--paper-2))}.chip-text{display:grid;line-height:1.15;min-width:0}.chip-name{font-weight:650;font-size:.85rem;display:flex;gap:.25rem;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip small{color:var(--ink-soft);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.others.n3 .chip{flex:1}button.chip{font:inherit;color:inherit;text-align:left;cursor:pointer}.chip-av{position:relative;display:inline-flex;flex:none}.chip .count{position:absolute;right:-.35rem;bottom:-.3rem;min-width:1.15rem;height:1.15rem;padding:0 .2rem;border-radius:.6rem;background:var(--ink);color:var(--paper);font:700 .68rem/1.15rem system-ui,sans-serif;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 1.5px var(--paper-2)}@media(max-width:26rem){.others.n3 .chip small{display:none}.others.n3 .chip{padding-right:.4rem}}.player-head{display:flex;gap:.9rem;align-items:center;margin-bottom:.8rem}.player-head>div{flex:1;min-width:0}.player .record{margin:.3rem 0 0;color:var(--ink-soft);font-size:.85rem}.facts{display:grid;grid-template-columns:auto 1fr;gap:.35rem .9rem;margin:0;font-size:.92rem}.facts dt{color:var(--ink-soft)}.facts dd{margin:0}.bubble.again{animation:none}.bubble{position:absolute;top:-1.1rem;right:-.2rem;font-size:1.6rem;animation:pop .4s cubic-bezier(.2,.9,.3,1.4);filter:drop-shadow(0 2px 3px rgb(0 0 0 / .3));pointer-events:none}.felt{background:radial-gradient(ellipse at 50% 40%,var(--felt),var(--felt-2));color:var(--felt-ink);margin:0 .4rem;border-radius:1rem;padding:.4rem .5rem .6rem;box-shadow:inset 0 0 0 2px #00000026,inset 0 2px 12px #00000040}.area-label{font-size:.72rem;color:var(--felt-soft);text-transform:none;margin:.2rem .2rem .15rem}.melds{display:flex;flex-wrap:wrap;gap:.35rem .5rem;min-height:3.6rem;align-content:flex-start;max-height:30dvh;overflow:auto;padding:.15rem}.melds .none{margin:.4rem .2rem;color:var(--felt-soft);font-size:.8rem;opacity:.8}.card{position:absolute;top:0;left:0;border-radius:6%/4.3%;box-shadow:0 1px 2px #00000059}.card svg{display:block;width:100%;height:100%}.card.small{width:2.3rem;height:3.22rem}.meld{position:relative;width:calc(2.3rem + var(--w));height:3.22rem;padding:0;border:0;border-radius:.3rem;background:none;flex:none}.meld:disabled{opacity:1;cursor:default}.meld.fits{cursor:pointer}.meld.fits:after{content:"";position:absolute;inset:-4px;border-radius:.5rem;border:2px solid var(--glow);box-shadow:0 0 12px #ffd36bcc;animation:breathe 1.2s ease-in-out infinite;pointer-events:none}.meld.flash .card{animation:flash 1s ease}.meld .card.wild{outline:2px solid rgb(255 211 107 / .75);outline-offset:-2px}.ribbon{position:absolute;z-index:30;left:50%;bottom:-.45rem;transform:translate(-50%);font-size:.6rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.05rem .35rem;border-radius:.3rem;background:#c9ced2;color:#22313d;white-space:nowrap}.meld.clean .ribbon{background:linear-gradient(135deg,#c8961e,#ffe08a);color:#3a2a05}@keyframes breathe{50%{opacity:.45}}@keyframes flash{0%{filter:brightness(1.6);transform:translateY(-4px)}}.center{display:flex;align-items:center;gap:.6rem;padding:.5rem .2rem;border-top:1px dashed rgb(255 255 255 / .15);border-bottom:1px dashed rgb(255 255 255 / .15);margin:.35rem 0}.stock,.pile{position:relative;height:3.6rem;border:0;background:none;padding:0;border-radius:.4rem}.stock{width:2.8rem;flex:none}.stock .card{top:.2rem}.stock .count{position:absolute;right:-.35rem;bottom:-.2rem;background:var(--ink);color:var(--paper);border-radius:1rem;font-size:.7rem;padding:.05rem .35rem;font-weight:700;z-index:2}.pile{flex:1;min-width:0;text-align:left}.pile .card{top:.2rem}.empty-pile{color:var(--felt-soft);font-size:.8rem;padding-left:.4rem}.stock.go,.pile.go{cursor:pointer}.stock.go:after,.pile.go:after{content:"";position:absolute;inset:-3px;border-radius:.5rem;border:2px solid var(--glow);box-shadow:0 0 12px #ffd36bb3;animation:breathe 1.2s ease-in-out infinite;pointer-events:none}.pozzetti{display:flex;gap:.4rem;flex:none}.pozz{position:relative;width:2.6rem;height:3.6rem;display:grid;justify-items:center;align-content:start;font-size:.6rem;color:var(--felt-soft)}.pozz small{white-space:nowrap;max-width:3rem;overflow:hidden;text-overflow:ellipsis}.pozz .card{position:relative;width:1.8rem;height:2.52rem;transform:rotate(90deg) translate(.2rem)}.pozz.taken .check{margin-top:.4rem;font-size:1.2rem;color:var(--felt-soft)}.hint-line{margin:.5rem .8rem 0;min-height:2.6em;font-size:.9rem;color:var(--ink-soft);text-align:center}.hint-line.mine{color:var(--ink);font-weight:600}.hand{position:relative;margin:0 .4rem;min-height:4rem}.hand .card{width:var(--cw, 64px);height:calc(var(--cw, 64px) * 1.4);cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .2s;box-shadow:0 2px 4px #0000004d}.hand .card.sel{box-shadow:0 0 0 3px var(--glow),0 6px 14px #00000059}.hand .card.blocked{filter:saturate(.6)}.hand .card.new{animation:arrive .5s ease}.hand .card.new:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 3px var(--good);animation:fadeOut 1.6s forwards}@keyframes arrive{0%{opacity:0;margin-top:-2.5rem}}@keyframes fadeOut{to{opacity:0}}.actions{display:flex;gap:.4rem;align-items:center;padding:.6rem .5rem .8rem}.actions .me-seat{flex:1;min-width:0}.actions .sort{padding:.5rem;font-size:1.1rem}.actions .me-seat .chip{display:inline-flex}.actions button{padding:.6rem .9rem}.watching{color:var(--ink-soft);font-size:.9rem}.over p{margin-top:0}.results{width:100%;border-collapse:collapse;margin-bottom:1rem;font-variant-numeric:tabular-nums}.results th,.results td{padding:.35rem .4rem;border-bottom:1px solid var(--rule);text-align:right}.results th[scope=row]{text-align:left;font-weight:400;color:var(--ink-soft)}.results thead th{font-size:.85rem}.results .sum td,.results .sum th{font-weight:700;color:var(--ink)}.results .total td,.results .total th{font-weight:800;font-size:1.1rem;color:var(--ink);border-bottom:0}.award{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:.6rem;border-radius:.8rem;background:var(--paper-2)}.award p{margin:0;font-weight:700}.award small{font-weight:400;color:var(--ink-soft)}.over .wide+.wide{margin-top:.5rem}.bubble.words{top:auto;bottom:calc(100% + .35rem);right:auto;left:50%;transform:translate(-50%);font-size:.85rem;font-weight:650;white-space:nowrap;background:var(--paper);color:var(--ink);border:1px solid var(--rule);padding:.3rem .6rem;border-radius:1rem;z-index:20;animation:popUp .35s cubic-bezier(.2,.9,.3,1.4)}.bubble.words:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--paper)}.actions .bubble.words{left:1rem;transform:none}@keyframes popUp{0%{opacity:0;transform:translate(-50%) scale(.6)}}.phrases{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}.phrase{border-radius:2rem;padding:.45rem .8rem}.emotes{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.emote{font-size:1.9rem;padding:.4rem}.noscript{padding:2rem;text-align:center}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.others .bubble.words{bottom:auto;top:calc(100% + .4rem)}.others .bubble.words:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--paper)}
