@font-face{font-family:Numerals;src:url(/assets/bricolage-grotesque-latin-standard-normal-C5Lc8Qmc.woff2)format("woff2");font-weight:200 800;font-display:swap;unicode-range:U+30-39}@font-face{font-family:Bricolage Grotesque;src:url(/assets/bricolage-grotesque-latin-standard-normal-C5Lc8Qmc.woff2)format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2");font-weight:700;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f3ec;--surface:#fff;--surface-2:#efe9de;--surface-3:#ebe3d6;--line:#d9d0bf;--line-soft:#e4ddd0;--text:#1b2330;--muted:#4a5261;--felt:#1e5b48;--felt-dark:#174838;--felt-text:#fff;--felt-muted:#cfe3da;--green-text:#1e5b48;--marigold:#e7a93a;--marigold-text:#1b2330;--team-a:#2d5b9a;--team-b:#a34a18;--team-a-soft:#edf2f9;--team-b-soft:#f9eee8;--red:#b42318;--success:#1e7a4e;--success-soft:#e5f0ea;--danger-soft:#f9e5e2;--card:#fffdf8;--card-text:#1b2330;--card-red:#b42318;--card-dim:#efeae1;--card-dim-text:#7d8490;--heading:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--body:"Numerals", "Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;--radius:16px;--tap:52px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1d2126;--surface:#272c33;--surface-2:#30363e;--surface-3:#343a42;--line:#4a525d;--line-soft:#3b424b;--text:#ece8e1;--muted:#b8bec8;--felt:#174536;--felt-dark:#10352a;--felt-muted:#b7d4c7;--green-text:#5cc18f;--team-a:#4d7bc0;--team-b:#c0612b;--team-a-soft:#26344a;--team-b-soft:#3d2b22;--red:#e0695d;--success:#5cc18f;--success-soft:#1f3a2e;--danger-soft:#3f2623;--card:#e9e4d8;--card-dim:#3a3f46;--card-dim-text:#9aa1ab}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1d2126;--surface:#272c33;--surface-2:#30363e;--surface-3:#343a42;--line:#4a525d;--line-soft:#3b424b;--text:#ece8e1;--muted:#b8bec8;--felt:#174536;--felt-dark:#10352a;--felt-muted:#b7d4c7;--green-text:#5cc18f;--team-a:#4d7bc0;--team-b:#c0612b;--team-a-soft:#26344a;--team-b-soft:#3d2b22;--red:#e0695d;--success:#5cc18f;--success-soft:#1f3a2e;--danger-soft:#3f2623;--card:#e9e4d8;--card-dim:#3a3f46;--card-dim-text:#9aa1ab}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--body);min-height:100dvh;font-size:17px;line-height:1.4}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}#app{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.screen{flex-direction:column;flex:1;display:flex}.pad{padding:16px}@media (prefers-reduced-motion:no-preference){.anim-in{animation:.18s ease-out fade-in}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.btn{min-height:var(--tap);border:2px solid var(--line);background:var(--surface);text-align:center;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:17px;font-weight:700;line-height:1.15;display:inline-flex}.btn.primary{background:var(--felt);border-color:var(--felt);color:#fff}.btn.gold{background:var(--marigold);border-color:var(--marigold);color:var(--marigold-text)}.btn.big{width:100%;min-height:62px;font-size:19px}.btn:disabled{opacity:1;color:var(--muted);background:0 0;border-style:dashed}.btn small{font-size:12px;font-weight:400;display:block}.btn.stack{flex-direction:column;gap:2px}.link{color:var(--green-text);background:0 0;border:none;align-items:center;gap:6px;min-height:44px;font-weight:700;display:inline-flex}.big-choice{text-align:left;border:2px solid var(--line-soft);background:var(--surface);border-radius:20px;align-items:center;gap:14px;width:100%;min-height:84px;padding:16px;display:flex}.big-choice .icon{background:var(--surface-2);border-radius:14px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.big-choice b{font-size:21px;font-family:var(--heading);display:block}.big-choice span{color:var(--muted);font-size:15px}.big-choice.primary{background:var(--felt);border-color:var(--felt);color:#fff}.big-choice.primary span{color:var(--felt-muted)}.big-choice.primary .icon{background:#ffffff29}.big-choice .chev{margin-left:auto}.pills{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:flex}.pill{color:#fff;white-space:nowrap;border-radius:999px;align-items:baseline;gap:4px;padding:6px 9px;font-size:12.5px;font-weight:700;display:inline-flex}.pill b{font-family:var(--heading);font-size:16px}.pill.a{background:var(--team-a)}.pill.b{background:var(--team-b)}.pill.bank{background:var(--surface-3);color:var(--text)}.pill.bank svg{align-self:center}.pcard{--w:62px;width:var(--w);height:calc(var(--w) * 1.42);background:var(--card);color:var(--card-text);border-radius:calc(var(--w) * .13);font-family:var(--heading);border:1px solid #00000014;flex:none;padding:0;font-weight:700;position:relative;box-shadow:0 2px 6px #0003}.pcard .r{font-size:calc(var(--w) * .32);line-height:1;position:absolute;top:5%;left:12%}.pcard .s{font-size:calc(var(--w) * .36);line-height:1;position:absolute;bottom:6%;right:11%}.pcard.red{color:var(--card-red)}.pcard.back{background:repeating-linear-gradient(45deg, var(--team-a) 0 6px, #3a6aad 6px 12px);border:3px solid var(--card)}.pcard.hidden-trump{background:var(--team-a);border:3px solid var(--marigold);box-shadow:0 0 0 2px var(--card)}.pcard.fd{opacity:.85;outline:2px dashed var(--felt-muted);outline-offset:2px}.pcard.win{outline:3px solid var(--marigold);outline-offset:1px}.pcard.playable{border:3px solid var(--felt);transform:translateY(-8px)}.pcard.dim{background:var(--card-dim);color:var(--card-dim-text);box-shadow:none}.pcard.dim.red{color:#cf8b83}.pcard.pick{border:3px solid var(--marigold)}.pcard .badge-n{background:var(--marigold);color:var(--marigold-text);border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex;position:absolute;top:-8px;right:-8px}.home{gap:14px;padding:20px 20px 24px}.home .brand{text-align:center;margin-top:12px}.home .fan{justify-content:center;margin-bottom:4px;display:flex}.home .fan .pcard{--w:78px}.home .fan .pcard:first-child{transform:rotate(-9deg)translate(10px)}.home .fan .pcard:last-child{transform:rotate(8deg)translate(-10px)translateY(-6px)}.home h1{font:800 88px var(--heading);color:var(--green-text);letter-spacing:-.02em;line-height:1}.home .sub{letter-spacing:.3em;color:var(--muted);font-size:16px;font-weight:700}.home .tagline{text-align:center;margin:8px 0 6px;font-size:18px}.home .note{text-align:center;color:var(--muted);font-size:15px}.offline-badge{background:var(--surface-3);border-radius:999px;align-self:center;padding:6px 12px;font-size:14px;font-weight:700}.setup h1{font:800 34px var(--heading);margin:8px 0 4px}.setup .intro{color:var(--muted);margin-bottom:8px}.panel{background:var(--surface);border:1.5px solid var(--line-soft);border-radius:18px;margin-top:14px;padding:16px}.panel h2{margin-bottom:10px;font-size:18px}.seg{gap:8px;display:grid}.seg button{border:2px solid var(--line);background:var(--surface);border-radius:12px;min-height:50px;font-weight:700}.seg button[aria-pressed=true]{background:var(--felt);border-color:var(--felt);color:#fff}.hint{color:var(--muted);margin-top:8px;font-size:14px}.stepper{align-items:center;gap:12px;display:flex}.stepper .btn{width:56px;height:56px;padding:0;font-size:26px}.stepper .val{font:800 34px var(--heading);text-align:center;min-width:64px}.gbar{justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.gbar .round{letter-spacing:.05em;color:var(--muted);font-size:12px;font-weight:700}.gbar h1{font:700 18px var(--heading);line-height:1.1}.icon-btn{background:var(--surface-3);border:none;border-radius:14px;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.felt{background:var(--felt);color:var(--felt-text);padding:10px 16px 32px}.highest{background:var(--felt-dark);border-radius:16px;justify-content:space-between;align-items:center;gap:10px;min-height:56px;padding:8px 14px;display:flex}.highest .label{color:var(--felt-muted);font-size:14px}.highest .who{font-weight:700}.highest .value{font:800 44px var(--heading);line-height:1}.highest .value.word{text-align:right;font-size:22px}.stage{color:var(--felt-muted);letter-spacing:.02em;margin:10px 4px 2px;font-size:13px;font-weight:700}.history .row{border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;gap:8px;min-height:34px;padding:0 4px;display:flex}.history .row .team{color:var(--felt-muted);font-weight:400}.history .row .now{color:var(--marigold);font-weight:700}.dealer-note{color:var(--felt-muted);margin-top:8px;padding:0 4px;font-size:13px}.cards-label{color:var(--felt-muted);margin-top:10px;font-size:14px;font-weight:700}.hand-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.felt .hand-row .pcard{--w:56px}.hand-row.eight{flex-wrap:nowrap;gap:3px}.hand-row.eight .pcard{--w:min(38px, calc((min(100vw / var(--zoom,1), 480px) - 64px) / 8))}.hand-row .pcard.choosable{border:3px solid var(--marigold);cursor:pointer}.sheet{background:var(--bg);border-radius:24px 24px 0 0;flex:1;margin-top:-24px;padding:16px 16px 20px;position:relative}.sheet h2{font:800 24px var(--heading);line-height:1.15}.sheet .hint{margin-top:6px}.bid-stepper{justify-content:center;align-items:center;gap:18px;margin:8px 0;display:flex}.bid-stepper .btn{width:58px;height:58px;padding:0;font-size:28px}.bid-stepper .value{font:800 50px var(--heading);color:var(--green-text);text-align:center;min-width:124px;line-height:1}.bid-stepper .value.word{font-size:22px}.grid2{grid-template-columns:1fr 1fr;gap:9px;display:grid}.info{border:1.5px solid var(--line-soft);background:var(--surface);color:var(--muted);border-radius:14px;padding:9px 12px;font-size:13px}.info b{color:var(--text);font-size:17px;display:block}.info.win{background:var(--success-soft);border-color:#0000}.info.win b{color:var(--success)}.info.lose{background:var(--danger-soft);border-color:#0000}.info.lose b{color:var(--red)}.actions{grid-template-columns:.9fr 1.15fr 1.15fr;gap:9px;margin-top:14px;display:grid}.actions.two{grid-template-columns:1fr 1fr}.actions.one{grid-template-columns:1fr}.waiting{align-items:center;gap:12px;padding:18px 4px;font-size:18px;font-weight:700;display:flex}.dots-anim{gap:4px;display:inline-flex}.dots-anim i{background:var(--marigold);border-radius:50%;width:8px;height:8px}@media (prefers-reduced-motion:no-preference){.dots-anim i{animation:1.2s ease-in-out infinite blink-soft}.dots-anim i:nth-child(2){animation-delay:.2s}.dots-anim i:nth-child(3){animation-delay:.4s}}@keyframes blink-soft{0%,to{opacity:.35}50%{opacity:1}}.redeal-row{margin-top:12px}.redeal-row .btn{width:100%}.mode-choice{gap:10px;margin-top:12px;display:grid}.mode-choice .btn{text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start;min-height:72px;padding:12px 16px}.mode-choice .btn small{color:inherit;opacity:.85;font-size:14px}.progress{padding:0 14px}.progress .head{justify-content:space-between;gap:8px;font-size:15px;display:flex}.progress .so-far{color:var(--success);white-space:nowrap;font-weight:700}.pbar{background:var(--line-soft);border-radius:5px;height:10px;margin-top:8px;position:relative}.pbar i{background:var(--felt);border-radius:5px;max-width:100%;position:absolute;top:0;bottom:0;left:0}.pbar.theirs i{background:var(--team-b)}.pbar .tick{background:var(--text);border-radius:2px;width:3px;height:20px;position:absolute;top:-5px}.table{--cw:clamp(42px, 13.5vw, 54px);--ch:calc(var(--cw) * 1.42);background:var(--felt);border:6px solid var(--felt-dark);color:var(--felt-text);border-radius:26px;flex-direction:column;gap:8px;margin:12px 14px 0;padding:10px 8px 12px;display:flex}.t-top{flex-direction:column;align-items:center;gap:2px;display:flex}.t-mid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:4px;display:grid}.t-bottom{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.seat{text-align:center;overflow-wrap:break-word;min-width:0;font-size:clamp(12px,3.6vw,14px);font-weight:700;line-height:1.2}.seat .av{color:#fff;width:clamp(38px,11vw,46px);height:clamp(38px,11vw,46px);font:700 18px var(--heading);border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 5px;display:flex}.seat .av.a{background:var(--team-a)}.seat .av.b{background:var(--team-b)}.seat.turn .av{box-shadow:0 0 0 4px var(--marigold)}.seat small{color:var(--felt-muted);font-size:12px;font-weight:700;display:block}.seat.out{opacity:.55}.led{text-align:center;color:var(--felt-muted);font-size:13px;font-weight:700}.trick-area{width:calc(var(--cw) * 3 + 12px);height:calc(var(--ch) * 2.1);position:relative}.slot{position:absolute}.slot .pcard{--w:var(--cw)}.slot.s2{left:calc(50% - var(--cw) / 2);top:0}.slot.s3{left:0;top:calc(var(--ch) * .55)}.slot.s1{right:0;top:calc(var(--ch) * .55)}.slot.s0{left:calc(50% - var(--cw) / 2);top:calc(var(--ch) * 1.1)}.your-slot{width:var(--cw);height:var(--ch);text-align:center;color:var(--felt-muted);border:2px dashed #fff9;border-radius:8px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.trump-info{flex:180px;align-items:center;gap:10px;min-width:0;padding-left:4px;display:flex}.trump-info .pcard{--w:34px}.trump-info b{font-size:14px;display:block}.trump-info span{color:var(--felt-muted);font-size:13px}.trick-no{color:var(--felt-muted);white-space:nowrap;padding-right:4px;font-size:13px;font-weight:700}.robot-skill{text-align:center;color:var(--muted);padding:0 14px 14px;font-size:13px}.turn-banner{background:var(--marigold);color:var(--marigold-text);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;min-height:50px;margin:12px 14px 0;padding:6px 12px;font-size:17px;font-weight:700;display:flex}.turn-banner small{opacity:.8;font-size:13px;font-weight:700}.turn-banner.quiet{background:var(--surface-3);color:var(--text)}.hand{justify-content:center;min-height:108px;padding:18px 8px 6px;display:flex}.hand .pcard{--w:58px;margin-left:min(-14px, calc((min(100vw / var(--zoom,1), 480px) - 16px - var(--n,8) * var(--w)) / (var(--n,8) - 1)))}.hand .pcard:first-child{margin-left:0}.hand button.pcard.playable{cursor:pointer}.exposed{color:var(--muted);margin:8px 14px 0;font-size:13px;font-weight:700}.exposed .hand-row{justify-content:flex-start;margin-top:4px}.exposed .pcard{--w:34px}.bottom-bar{grid-template-columns:1fr 1fr;gap:8px;margin-top:auto;padding:10px 14px 16px;display:grid}.bottom-bar .btn{padding-left:8px;padding-right:8px;font-size:15px}.bottom-bar .caps{border-color:var(--marigold);color:#1b2330;background:#fdf3e2}.notice{background:var(--text);width:min(440px,100% - 24px);color:var(--bg);text-align:center;z-index:40;border-radius:14px;padding:12px 16px;font-weight:700;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.overlay{z-index:30;background:#0f14198c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--bg);border-radius:24px 24px 0 0;width:min(480px,100%);max-height:92dvh;padding:20px 16px 24px;overflow:auto}.dialog h2{font:800 24px var(--heading);margin-bottom:8px}.dialog p{color:var(--muted);margin-bottom:12px}.dialog .hand-row{justify-content:flex-start}.dialog .hand-row .pcard{--w:50px}.dialog .row-btns{gap:10px;margin-top:16px;display:grid}.redeal-panel{margin-top:0}.redeal-panel h2{font:800 24px var(--heading);margin-bottom:6px}.redeal-panel p{color:var(--muted);margin-bottom:10px}.redeal-panel .hand-row{justify-content:flex-start;margin-bottom:4px}.redeal-panel .hand-row .pcard{--w:50px}.menu-list{gap:10px;display:grid}.menu-list .btn{text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start}.menu-list .btn small{color:var(--muted);font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface-2);border-radius:999px;padding:7px 13px;font-size:14px;font-weight:700}.result-top{background:var(--felt);color:#fff;text-align:center;padding:30px 20px 60px}.result-top .kicker{letter-spacing:.2em;color:var(--felt-muted);font-size:14px;font-weight:700}.result-top .mark{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:12px auto 10px;display:flex}.result-top h1{font:800 42px var(--heading);line-height:1.1}.result-top p{color:#e6f1ec;margin-top:6px;font-size:16px}.result-top .cheer{color:var(--felt-muted);font-size:15px}.result-body{flex-direction:column;gap:14px;padding:0 16px 20px;display:flex}.result-body .panel{margin-top:0}.result-body .lift{margin-top:-38px;position:relative}.pts-bar{margin-top:14px;position:relative}.pts-bar .bar{background:var(--line-soft);border-radius:7px;height:14px;display:flex;overflow:hidden}.pts-bar .a{background:var(--team-a)}.pts-bar .b{background:var(--team-b)}.pts-bar .tick{background:var(--text);border-radius:2px;width:3px;height:22px;position:absolute;top:-4px}.legend{justify-content:space-between;gap:6px;margin-top:10px;font-size:15px;font-weight:700;display:flex}.legend .t{color:var(--muted);font-weight:400}.ta{color:var(--team-a)}.tb{color:var(--team-b)}.tokens-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.won-badge{background:var(--success-soft);color:var(--success);border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700}.tally{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.tally div{color:var(--muted);border-radius:14px;padding:10px 12px;font-size:13px}.tally .ca{background:var(--team-a-soft)}.tally .cb{background:var(--team-b-soft)}.tally .ck{background:var(--surface-2)}.tally b{overflow-wrap:anywhere;font-size:14px;display:block}.tally big{font:800 30px var(--heading);color:var(--text);line-height:1.15;display:block}.token-dots{gap:3px;margin-top:12px;display:flex}.token-dots i{background:var(--line);border-radius:4px;flex:1;height:14px}.token-dots i.a{background:var(--team-a)}.token-dots i.b{background:var(--team-b)}.key{color:var(--muted);gap:14px;margin-top:8px;font-size:13px;display:flex}.key span{align-items:center;gap:5px;display:inline-flex}.key i{background:var(--line);border-radius:3px;width:12px;height:12px;display:inline-block}.key i.a{background:var(--team-a)}.key i.b{background:var(--team-b)}.dealer-box{background:var(--surface-3);border-radius:14px;align-items:center;gap:12px;padding:13px 16px;display:flex}.trick-list{gap:10px;display:grid}.trick-list .row{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.trick-list .row .pcard{--w:34px}.trick-list .row b{min-width:64px;color:var(--text)}.big-choice.gold{background:var(--marigold);border-color:var(--marigold);color:var(--marigold-text)}.big-choice.gold span{color:var(--marigold-text)}.big-choice.gold .icon{background:#ffffff59}.big-choice:disabled{opacity:.6;cursor:default}.join h1{font:800 36px var(--heading);margin:8px 0 4px}.join .intro{color:var(--muted);font-size:17px}.join .panel{margin-top:16px}.join .btn.big{margin-top:18px}.field-label{margin-bottom:10px;font-size:17px;font-weight:700;display:block}.digits{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.digit{border:2.5px solid var(--line);background:var(--bg);width:100%;min-width:0;height:60px;color:var(--text);text-align:center;font:800 28px var(--heading);border-radius:12px}.digit:focus{border-color:var(--felt);outline:none;box-shadow:0 0 0 3px #1e5b4840}.text-input{border:2.5px solid var(--line);background:var(--bg);width:100%;height:56px;color:var(--text);font:400 19px var(--body);border-radius:12px;padding:0 16px}.text-input:focus{border-color:var(--felt);outline:none;box-shadow:0 0 0 3px #1e5b4840}.form-error{color:var(--red);margin-top:14px;font-weight:700}.note-box{background:var(--surface-3);color:var(--text);border-radius:16px;align-items:flex-start;gap:12px;margin-top:auto;padding:14px 16px;display:flex}.join .note-box{margin-top:28px}.lobby{gap:0}.lobby-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.lobby-top h2{font-size:18px}.host-chip{background:var(--success-soft);color:var(--success);white-space:nowrap;border-radius:999px;padding:6px 11px;font-size:13px;font-weight:700}.number-card{background:var(--felt);color:#fff;border-radius:20px;margin-top:14px;padding:18px}.number-card .k{text-align:center;letter-spacing:.18em;color:var(--felt-muted);font-size:14px;font-weight:700}.number-card .n{text-align:center;font:800 clamp(40px, 13vw, 52px) var(--heading);letter-spacing:.06em;line-height:1.15}.number-card p{color:#e6f1ec;margin-top:4px;font-size:15px}.number-card .share{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.number-card .btn.ghost{color:#fff;background:0 0;border-color:#ffffff8c}.lobby h3{font:700 18px var(--body);margin:20px 0 10px}.lobby .players-head{justify-content:space-between;align-items:baseline;display:flex}.lobby .players-head span{color:var(--success);font-size:15px;font-weight:700}.lobby .hint{margin:-4px 0 12px}.who{grid-template-columns:1fr 1fr;gap:10px;display:grid}.who>*{background:var(--surface);border:2px solid var(--line-soft);color:var(--muted);text-align:left;border-radius:16px;padding:12px;font-size:14px;line-height:1.4}.who>.on{border:3px solid var(--felt)}.who b{color:var(--text);align-items:center;gap:6px;margin-bottom:4px;font-size:18px;display:flex}.team-card{background:var(--surface);border:1.5px solid var(--line-soft);border-radius:18px;margin-bottom:12px;padding:12px 14px}.badge{color:#fff;letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-block}.badge.a{background:var(--team-a)}.badge.b{background:var(--team-b)}.player{align-items:center;gap:12px;padding:10px 0;display:flex}.player+.player{border-top:1px solid var(--line-soft)}.player .av{color:#fff;width:44px;height:44px;font:700 18px var(--heading);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.player .av.a{background:var(--team-a)}.player .av.b{background:var(--team-b)}.player .av.robot{color:#fff}.player .av.empty{border:2px dashed var(--line);background:0 0}.player .name{text-align:left;flex:1;min-width:0}.player .name b{overflow-wrap:anywhere;font-size:18px;display:block}.player .name span{color:var(--muted);font-size:14px}.player .name.as-button{background:0 0;border:2px solid #0000;border-radius:12px;min-height:48px;margin:-6px -8px;padding:4px 8px}.player .name.as-button.picked{border-color:var(--marigold);background:#fdf3e2}.btn.small{min-height:44px;padding:6px 12px;font-size:15px}.link.small{color:var(--muted);font-size:15px}.lobby .panel h2{margin-bottom:10px;font-size:18px}.lobby-start{margin-top:18px;padding-bottom:12px}.lobby-start .hint{text-align:center;margin-top:8px}.waiting-host{text-align:center;background:var(--surface-3);border-radius:16px;padding:16px;font-weight:700}.timer{white-space:nowrap;align-items:center;gap:5px;margin-left:10px;font-weight:700;display:inline-flex}.sheet-timer{float:right;margin-top:4px}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.panel-head h2{margin:0}.rules h1{font:800 34px var(--heading);margin:8px 0 6px}.rules .intro{color:var(--muted);line-height:1.45}.rules .panel{margin-top:16px}.rules .panel h2{margin:10px 0 12px}.kicker-green{letter-spacing:.12em;color:var(--green-text);font-size:13px;font-weight:700}.row-btn{background:var(--surface-2);text-align:left;border:none;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:50px;margin-top:12px;padding:0 14px;font-weight:700;display:flex}.setting{justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.setting+.setting{border-top:1px solid var(--line-soft)}.setting b{font-size:17px;display:block}.setting>div>span:not(.val){color:var(--muted);font-size:14px;line-height:1.4}.stepper.small{flex:none;gap:8px}.stepper.small .btn{width:48px;height:48px;min-height:0;font-size:24px}.stepper.small .val{min-width:60px;font-size:28px}.bank-note{background:var(--surface-2);color:var(--text);border-radius:12px;align-items:flex-start;gap:10px;margin-top:12px;padding:11px 12px;font-size:14px;line-height:1.45;display:flex}.bank-note svg{color:var(--green-text)}.token-table{border-collapse:separate;border-spacing:0;border:1.5px solid var(--line-soft);border-radius:14px;width:100%;margin-top:16px;font-size:15px;overflow:hidden}.token-table th{background:var(--surface-2);text-align:left;color:var(--muted);padding:9px 10px;font-size:13px;font-weight:400;line-height:1.25}.token-table th b{color:var(--text);font-size:14px;display:block}.token-table th.c{text-align:center}.token-table td{border-top:1px solid var(--line-soft);padding:12px 10px;font-weight:700}.token-table td.n{font:800 18px var(--heading);text-align:center}.token-table td.made{color:var(--success)}.switch{background:#8f8778;border:none;border-radius:16px;flex:none;width:54px;height:32px;padding:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:4px;left:4px}.switch[aria-checked=true]{background:var(--felt)}.switch[aria-checked=true]:after{left:26px}.switch:disabled,.seg button:disabled,.stepper .btn:disabled{opacity:.45}.rules .seg button:disabled[aria-pressed=true]{opacity:1}.target-row,.token-row{justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.target-row+.target-row,.token-row+.token-row{border-top:1px solid var(--line-soft)}.target-row b,.token-row>b{font-size:17px;display:block}.target-row>div>span:not(.val){color:var(--muted);font-size:14px}.target-row .fixed{color:var(--text);text-align:right;font-weight:700}.token-row{flex-wrap:wrap;row-gap:6px}.token-row>b{flex-basis:100%}.pair{flex-basis:100%;justify-content:space-between;align-items:center;gap:10px;display:flex}.pair>span{color:var(--muted);font-size:15px;font-weight:700}.seg.bids{grid-template-columns:repeat(6,1fr)}.rules-actions{flex-direction:column;gap:12px;margin-top:20px;display:flex}@media (width<=360px){.seg.bids{grid-template-columns:repeat(3,1fr)}.stepper.small .btn{width:44px;height:44px}.stepper.small .val{min-width:50px;font-size:24px}.token-table th,.token-table td{padding-left:7px;padding-right:7px}}@media (prefers-reduced-motion:reduce){.switch,.switch:after{transition:none}}.chat-overlay{align-items:flex-end}.chat-sheet{background:var(--bg);width:min(520px,100%);height:min(88dvh,720px);padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;display:flex}@media (width>=700px){.chat-overlay{align-items:center}.chat-sheet{border-radius:24px}}.chat-head{align-items:center;gap:10px;display:flex}.chat-head h2{font:800 22px var(--heading);align-items:center;gap:8px;margin-right:auto;display:flex}.chat-head h2 svg,.chat-panel h2 svg{color:var(--green-text);flex:none}.chat-sheet [data-part=head] .hint{margin:2px 0 0}.chat-log{overscroll-behavior:contain;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px 0;display:flex;overflow-y:auto}.chat-log .empty{text-align:center;margin:auto}.msg{background:var(--surface-2);max-width:85%;color:var(--text);overflow-wrap:anywhere;border-radius:12px;align-self:flex-start;padding:8px 12px;font-size:15px;line-height:1.4}.msg .who{color:var(--team-b);font-size:13px;font-weight:700;display:block}.msg.team-a .who{color:var(--team-a)}.msg button.who{text-underline-offset:3px;text-align:left;background:0 0;border:none;min-height:44px;margin:-12px 0 -10px;padding:0;text-decoration:underline}.msg.robot{background:var(--team-b-soft)}.msg.robot.team-a{background:var(--team-a-soft)}.msg.me{background:var(--success-soft);align-self:flex-end}.msg.me .who{color:var(--green-text)}.phrases{scrollbar-width:none;flex:none;gap:8px;padding:8px 0;display:flex;overflow-x:auto}.phrases::-webkit-scrollbar{display:none}@media (pointer:fine){.phrases{flex-wrap:wrap;overflow:visible}}.chip-btn{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--text);border-radius:999px;flex:none;padding:0 14px;font-size:15px;font-weight:700}.compose{flex:none;gap:10px;display:flex}.compose input,.compose .fake-input{border:2px solid var(--line);background:var(--surface);min-width:0;height:50px;font:inherit;color:var(--text);border-radius:12px;flex:1;padding:0 14px;font-size:16px}.compose .fake-input{text-align:left;color:var(--muted)}.compose .send{background:var(--felt);color:#fff;border:none;border-radius:12px;flex:none;justify-content:center;align-items:center;width:50px;height:50px;display:flex;position:relative}.person-panel{border-top:1px solid var(--line-soft);flex:none;gap:8px;padding:10px 0;display:grid}.person-panel b{font-size:17px}.person-panel .btn small{color:var(--muted);font-size:14px;font-weight:400}.person-panel .link{justify-self:center}.robot-switch{color:var(--muted);flex:none;align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.chat-sheet .robot-switch{margin-top:4px}.chat-strip{background:var(--surface);width:calc(100% - 28px);min-height:44px;color:var(--text);border:1.5px solid var(--line-soft);text-align:left;border-radius:14px;align-items:baseline;gap:8px;margin:8px 14px 0;padding:10px 12px;font-size:14px;line-height:1.35;display:flex}.chat-strip b{color:var(--team-b);flex:none;font-size:13px}.chat-strip b.team-a{color:var(--team-a)}.chat-strip span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chat-btn{gap:6px;position:relative}.chat-btn .count{background:var(--marigold);min-width:22px;height:22px;color:var(--marigold-text);font:800 12px var(--body);border-radius:11px;justify-content:center;align-items:center;padding:0 5px;display:flex;position:absolute;top:-7px;right:-7px}.new-pill{background:var(--marigold);color:var(--marigold-text);border-radius:999px;flex:none;padding:3px 10px;font-size:13px;font-weight:800}.chat-panel .robot-switch{margin-bottom:4px}.bottom-bar:has(.chat-btn){grid-template-columns:auto 1fr 1fr}.chat-panel .panel-head h2{align-items:center;gap:8px;display:flex}.chat-recent{flex-direction:column;gap:8px;margin:6px 0 12px;display:flex}.chat-recent .hint{margin:0}.waiting-seat{text-align:center}.waiting-seat>div:first-child{text-align:left}.wait-icon{color:var(--green-text);justify-content:center;margin:24px 0 4px;display:flex}.waiting-seat .intro{margin:8px 0 12px}.wait-note{text-align:left;color:var(--text);background:var(--team-b-soft);border-color:#0000}.handover{background:var(--surface);border:1.5px solid var(--marigold);border-radius:16px;margin-bottom:16px;padding:14px}.handover h3{margin-bottom:4px;font-size:17px}.handover .hint{margin-top:4px}.away-row{border-top:1px solid var(--line-soft);gap:8px;margin-top:10px;padding-top:12px;display:grid}.away-row b{font-size:16px}.menu-list .chat-btn{flex-direction:row;align-items:center}.deal-prep{text-align:center;flex-direction:column;flex:1;gap:10px;padding-top:12px;display:flex}.deal-prep .deck-icon{color:var(--green-text);justify-content:center;display:flex}.deal-prep .round-label{color:var(--muted);font-size:15px;font-weight:700}.deal-prep h2{font:800 24px var(--heading);line-height:1.2}.deal-prep .waiting{justify-content:center;margin-top:8px}.deal-prep .sheet-timer{float:none;align-self:center}.choice-list{text-align:left;gap:10px;margin-top:8px;display:grid}.choice-list .btn.stack{align-items:flex-start}.choice-list .btn small{color:var(--muted);font-size:14px;font-weight:400}.menu-table{background:var(--surface);border:1.5px solid var(--line-soft);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.menu-table span{color:var(--muted);letter-spacing:.04em;font-size:13px;font-weight:700;display:block}.menu-table b{font:800 24px var(--heading);letter-spacing:.04em;display:block}.menu-table small{color:var(--muted);font-size:14px;display:block}.menu-table-btns{gap:8px;display:flex}.menu-table-btns .btn{min-height:44px;padding:0 14px}.sheet .robot-skill,.result-body .robot-skill{padding:12px 0 0}.home{position:relative}.home-settings{color:var(--muted);background:0 0;position:absolute;top:14px;right:14px}.home .greeting{text-align:center;color:var(--green-text);margin-top:-4px;font-size:17px;font-weight:700}.family{background:var(--surface);border:1.5px solid var(--line-soft);border-radius:18px;padding:14px 16px}.family h2{font:800 18px var(--heading);margin-bottom:4px}.family-row{flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.family-row+.family-row{border-top:1px solid var(--line-soft)}.family-info{flex:100%;min-width:0}.family-info b{overflow-wrap:anywhere;font-size:16px;display:block}.family-info span{color:var(--muted);font-size:14px}.btn.danger{background:var(--danger-soft);border-color:var(--red);color:var(--text)}.lobby-start .save-family{align-self:center;margin-top:4px}.howto h1{font:800 32px var(--heading);margin:8px 0 4px}.howto .intro{color:var(--muted);margin-bottom:12px}.howto-section p{margin:6px 0;line-height:1.5}.howto-section ul{margin:6px 0 0 20px;line-height:1.5}.howto-section li+li{margin-top:4px}.howto-section .token-table{margin-top:12px}.howto-foot{text-align:center;margin:16px 0 8px}.home-howto{align-self:center}.coach-overlay{z-index:35}.coach .coach-label{background:var(--marigold);color:var(--marigold-text);border-radius:999px;margin-bottom:8px;padding:2px 10px;font-size:13px;font-weight:800;display:inline-block}.coach p{color:var(--text);font-size:17px;line-height:1.5}.coach .row-btns .link{justify-self:center}:root[data-suits=four] .pcard.s-C:not(.dim){color:#1e7a4e}:root[data-suits=four] .pcard.s-D:not(.dim){color:#1d5fb4}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{transition:none!important;animation:none!important}.seg.levels{grid-template-columns:repeat(4,1fr)}@media (width<=400px){.seg.levels{grid-template-columns:repeat(2,1fr)}}.queue h1,.queue .intro,.queue .q-rules{text-align:center}.q-seats{justify-content:center;gap:14px;margin:18px 0 10px;display:flex}.q-seat{border:3px dashed var(--muted);border-radius:50%;width:44px;height:44px}.q-seat.on{border:3px solid var(--green-text);background:var(--felt)}.q-seat.on:after{content:"";background:var(--felt-text);border-radius:50%;width:14px;height:14px;margin:12px auto;display:block}@media (prefers-reduced-motion:no-preference){.q-seat:not(.on){animation:1.6s ease-in-out infinite q-pulse}}@keyframes q-pulse{50%{opacity:.45}}.queue .panel .btn{margin-top:10px}.compose[hidden]{display:none}.phrases-note{text-align:center;margin:0}.site-banner{background:var(--marigold);color:var(--marigold-text);text-align:center;border-radius:12px;margin:0 0 14px;padding:10px 14px;font-size:15px;font-weight:600}.screen:not(.pad)>.site-banner{margin:12px 16px}.publisher{text-align:center;color:var(--muted);margin-top:auto;padding-top:20px;font-size:14px}.screen.home>.site-banner{margin:12px 52px 12px 16px}.legal h2{margin:22px 0 6px;font-size:19px}.legal p,.legal li{font-size:16px;line-height:1.55}.legal ul{margin:6px 0;padding-left:20px}.legal li+li{margin-top:6px}.legal a{color:var(--green-text);overflow-wrap:anywhere}.legal-end{padding-top:20px}.agree{text-align:center;margin-top:10px}.inline-link{font:inherit;color:var(--green-text);cursor:pointer;background:0 0;border:0;min-height:0;padding:0;text-decoration:underline}.about .btn{margin-bottom:8px}.about-links{flex-wrap:wrap;gap:4px 20px;display:flex}.feedback-text{resize:vertical;width:100%;min-height:140px;font:inherit;line-height:1.45}
