:root{--blue: #1b2a6b;--blue-dark: #121d4d;--red: #e3262f;--cream: #fff8ec;--ink: #1a1a1a;--muted: #8a93b8;--green: #2bb673;--gold: #f5b82e;--radius: 14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}html{background:var(--blue-dark);height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--blue-dark);color:#fff;position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;padding:env(safe-area-inset-top) 0 0 0}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at top,#243a8f 0%,var(--blue-dark) 60%)}#app{position:relative;max-width:520px;margin:0 auto;height:100%;padding:16px 16px 0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}h1.logo{margin:8px 0 4px;text-align:center;font-weight:900;font-size:2.6rem;line-height:.95;letter-spacing:-.03em}h1.logo .no{display:block;color:var(--red);font-size:3.4rem}h1.logo .thanks{display:block}.tagline{text-align:center;color:var(--muted);margin:0 0 24px;font-size:.95rem}.card-panel{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:16px;margin-bottom:14px}label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}input[type=text]{width:100%;font-size:1.2rem;padding:12px 14px;border-radius:10px;border:2px solid rgba(255,255,255,.15);background:#00000040;color:#fff;outline:none}input[type=text]:focus{border-color:var(--gold)}input.code{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-weight:700;font-family:ui-monospace,monospace}button{font:inherit;font-weight:800;font-size:1.1rem;padding:14px 18px;border-radius:12px;border:0;cursor:pointer;width:100%;color:#fff;background:var(--blue);box-shadow:0 4px #00000059;transition:transform .05s,filter .1s}button:active{transform:translateY(2px);box-shadow:0 2px #00000059}button:disabled{opacity:.4;cursor:default;transform:none}button.primary{background:var(--red)}button.good{background:var(--green)}button.ghost{background:transparent;box-shadow:none;border:2px solid rgba(255,255,255,.2);font-weight:600}button.small{width:auto;padding:8px 14px;font-size:.9rem}.row{display:flex;gap:10px}.row>*{flex:1}.stack>*+*{margin-top:12px}.avatars{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.avatars button{font-size:1.6rem;padding:6px 0;background:#00000040;box-shadow:none;border:2px solid transparent;border-radius:10px;line-height:1.3}.avatars button.on{border-color:var(--gold);background:#f5b82e2e}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:.9rem;color:var(--muted)}.topbar .code{font-family:ui-monospace,monospace;font-weight:800;color:#fff;letter-spacing:.15em;font-size:1rem}.topbar .pill{background:#0000004d;padding:4px 10px;border-radius:999px}.topbar .pill b{color:#fff}.players{list-style:none;margin:0;padding:0}.players li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:#00000038;margin-bottom:6px;border:2px solid transparent}.players li.turn{border-color:var(--gold);background:#f5b82e1f}.players li.off{opacity:.45}.players .av{font-size:1.6rem;width:36px;text-align:center}.players .nm{font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.players .nm small{color:var(--muted);font-weight:500;margin-left:6px}.players .status{font-size:.8rem;font-weight:700}.players .status.ready{color:var(--green)}.players .status.wait{color:var(--muted)}.players .chips{font-size:.9rem;white-space:nowrap}.hand{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin-top:6px}.run{display:inline-flex}.mini{width:26px;height:36px;border-radius:4px;background:var(--cream);color:var(--ink);font-weight:800;font-size:.7rem;display:flex;align-items:flex-start;justify-content:flex-start;padding:3px 0 0 3px;border:1px solid rgba(0,0,0,.25);box-shadow:1px 0 2px #0000004d}.run .mini+.mini{margin-left:-5px}.run .mini.first{background:#ffe9a8}.player-block{flex-direction:column;align-items:stretch!important}.player-block .head{display:flex;align-items:center;gap:10px}.table{text-align:center;padding:10px 0 6px}.turnline{font-size:1rem;color:var(--muted);margin-bottom:8px;min-height:1.4em}.turnline.me{color:var(--gold);font-weight:800}.bigcard{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:150px;height:210px;border-radius:14px;background:var(--cream);color:var(--ink);box-shadow:0 10px 30px #00000073,inset 0 0 0 6px #fff,inset 0 0 0 8px #00000014;position:relative;font-weight:900;font-size:5rem;letter-spacing:-.05em}.bigcard.none{background:var(--blue);color:#fff6;font-size:1rem;font-weight:700;box-shadow:none;border:2px dashed rgba(255,255,255,.2)}.bigcard .corner{position:absolute;font-size:1rem;font-weight:800}.bigcard .corner.tl{top:10px;left:12px}.bigcard .corner.br{bottom:10px;right:12px;transform:rotate(180deg)}.chipstack{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;flex-wrap:wrap-reverse;justify-content:center;width:112px;row-gap:2px}.chipstack.many .chip{width:18px;height:18px;border-width:2px;margin-left:-6px}.chip{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff6b6b,var(--red) 60%,#8d0f15);border:3px solid #fff;box-shadow:0 2px 4px #00000080;margin-left:-8px}.chip:first-child{margin-left:0}.chipcount{margin-top:10px;font-size:.95rem;color:var(--muted)}.chipcount b{color:#fff}.actions{margin:14px 0 10px}.actions button{padding:18px;font-size:1.25rem}.mychips{text-align:center;color:var(--muted);font-size:.9rem;margin-bottom:10px}.mychips b{color:var(--gold);font-size:1.1rem}.log{font-size:.8rem;color:var(--muted);max-height:7.5em;overflow:auto;line-height:1.5}.log div:last-child{color:#fff}.results{list-style:none;padding:0;margin:0}.results li{display:flex;align-items:center;gap:10px;padding:12px;border-radius:10px;background:#00000038;margin-bottom:8px;flex-wrap:wrap}.results li.winner{background:#f5b82e2e;border:2px solid var(--gold)}.results .score{font-size:1.6rem;font-weight:900;margin-left:auto}.results .detail{width:100%;font-size:.8rem;color:var(--muted)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--red);color:#fff;font-weight:700;padding:10px 16px;border-radius:999px;box-shadow:0 6px 20px #0006;animation:fade 2.5s forwards;pointer-events:none;z-index:10;max-width:90vw;text-align:center}@keyframes fade{0%,70%{opacity:1}to{opacity:0}}.conn{position:fixed;top:calc(8px + env(safe-area-inset-top));right:8px;width:10px;height:10px;border-radius:50%;background:var(--red)}.conn.on{background:var(--green)}.hint{color:var(--muted);font-size:.85rem;text-align:center;margin:6px 0}.rules{color:var(--muted);font-size:.85rem;line-height:1.5}.rules b{color:#fff}.spacer{flex:1}.footer{text-align:center;color:#ffffff4d;font-size:.75rem;padding:12px 0 calc(6px + env(safe-area-inset-bottom))}body.fit{touch-action:manipulation}#app.fit{overflow:hidden;padding:6px calc(12px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.game{display:flex;flex-direction:column;height:100%;min-height:0;gap:6px}.game .topbar{margin-bottom:0;flex:none}.game .table{padding:0;flex:none}.game .turnline{margin-bottom:4px;font-size:.95rem}.game .bigcard{width:118px;height:160px;font-size:3.8rem}.game .bigcard .corner{font-size:.85rem}.game .bigcard .chipstack{bottom:10px;width:96px}.game .chip{width:22px;height:22px;border-width:2px;margin-left:-7px}.game .chipcount{margin-top:6px;font-size:.85rem}.lastevent{color:var(--muted);font-size:.8rem;min-height:1.2em;margin-top:2px;opacity:.8}.game .actions{margin:2px 0 0;flex:none}.game .actions button{padding:12px 10px;font-size:1.15rem;line-height:1.1}.game .actions button small{display:block;font-weight:500;font-size:.7rem;opacity:.85;margin-top:2px}.actions.idle button{filter:saturate(.5);opacity:.75}.actions.idle button:disabled{opacity:.3}.actions button.queued{opacity:1!important;filter:none!important;outline:3px solid var(--gold);outline-offset:2px;animation:queuedPulse 1.2s ease-in-out infinite}@keyframes queuedPulse{50%{outline-color:#f5b82e59}}.hint.tiny{font-size:.75rem;min-height:1.1em;margin:0}.players.compact{flex:1 1 auto;min-height:0;overflow-y:auto;margin:0}.players.compact li{padding:5px 8px;margin-bottom:4px;gap:8px;transition:background .3s,border-color .3s}.players.compact .av{font-size:1.25rem;width:28px}.players.compact .nm{flex:0 1 auto;max-width:30%;font-size:.9rem}.players.compact .hand{flex:1;margin-top:0;gap:4px;min-width:0;overflow:hidden}.players.compact .mini{width:22px;height:30px;font-size:.62rem}.players.compact .run .mini+.mini{margin-left:-4px}.players.compact .chips{font-size:.85rem}.players li.turn{animation:turnPulse 1.4s ease-in-out infinite}@keyframes turnPulse{0%,to{box-shadow:0 0 #f5b82e00}50%{box-shadow:0 0 0 4px #f5b82e59}}.nocards{color:var(--muted);font-size:.75rem}.myhand{flex:none;background:#00000059;border:2px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:8px 10px}.myhand.turn{border-color:var(--gold);animation:turnPulse 1.4s ease-in-out infinite}.myhand .head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.9rem}.myhand .av{font-size:1.3rem}.myhand .nm{font-weight:700;flex:1}.myhand .nm small{color:var(--muted);font-weight:500}.myhand .pill{background:#0000004d;padding:3px 8px;border-radius:999px;font-size:.8rem;color:var(--muted)}.myhand .pill b{color:var(--gold)}.myhand .hand{margin-top:0;min-height:36px}.bigcard-wrap{perspective:600px;display:inline-block}.chip.drop{animation:chipDrop .4s cubic-bezier(.2,.9,.3,1.3)}@keyframes chipDrop{0%{transform:translateY(-40px) scale(1.5);opacity:0}to{transform:none;opacity:1}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-group(card-fly),::view-transition-group(chip-fly),::view-transition-group(pot-fly),::view-transition-group(deck-card){z-index:10}::view-transition-group(card-fly){animation-duration:.65s;animation-timing-function:cubic-bezier(.3,.8,.3,1)}::view-transition-group(deck-card){animation-duration:.55s;animation-delay:.2s;animation-timing-function:cubic-bezier(.2,.8,.3,1)}::view-transition-old(deck-card),::view-transition-new(deck-card){animation-delay:.2s}::view-transition-group(chip-fly){animation-duration:.5s;animation-timing-function:cubic-bezier(.3,.7,.3,1)}::view-transition-group(pot-fly){animation-duration:.6s;animation-delay:.1s;animation-timing-function:cubic-bezier(.3,.8,.3,1)}::view-transition-old(card-fly),::view-transition-new(card-fly),::view-transition-old(chip-fly),::view-transition-new(chip-fly),::view-transition-old(pot-fly),::view-transition-new(pot-fly){animation-duration:.3s;height:100%;object-fit:fill}@keyframes pop{0%{transform:scale(0) rotate(-20deg);opacity:0}to{transform:none;opacity:1}}button.icon{width:auto;padding:4px 8px;font-size:1.1rem;background:transparent;box-shadow:none}.players button.x{width:28px;height:28px;padding:0;font-size:.9rem;background:#ffffff1a;box-shadow:none;border-radius:50%}.card-panel>button.small{margin-top:6px;width:100%}.icons{display:inline-flex;gap:2px}button.icon{width:32px;height:32px;padding:0;font-size:1rem;font-weight:800;background:#ffffff14;box-shadow:none;border-radius:50%}.chipline{display:flex;align-items:center;gap:8px;margin-top:6px}.chipline .lbl{font-size:.75rem;color:var(--muted);white-space:nowrap;min-width:48px}.chiprow{display:flex;align-items:center;flex-wrap:wrap;gap:0;min-height:20px}.chiprow .chip{width:18px;height:18px;border-width:2px;margin-left:-6px}.chiprow .chip:first-child{margin-left:0}.chiprow .more{font-size:.75rem;color:var(--gold);font-weight:800;margin-left:6px}.players li,.myhand{position:relative}.bubble{position:absolute;right:44px;top:50%;transform:translateY(-50%);padding:4px 10px;border-radius:999px;font-weight:900;font-size:.8rem;color:#fff;white-space:nowrap;box-shadow:0 4px 12px #0006;z-index:5;pointer-events:none;animation:bubbleIn 1.5s cubic-bezier(.2,.9,.3,1) forwards}.bubble.pass{background:var(--red)}.bubble.take{background:var(--green)}.myhand .bubble{right:12px;top:14px;transform:none;font-size:.95rem}@keyframes bubbleIn{0%{opacity:0;scale:.5}15%{opacity:1;scale:1.1}25%,75%{opacity:1;scale:1}to{opacity:0;scale:.9}}.bigcard.tiny{width:100%;height:100%;font-size:2.6rem;box-shadow:0 10px 30px #00000080}.modal{position:fixed;inset:0;background:#0009;z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}}.sheet{background:var(--blue-dark);color:#fff;width:100%;max-width:520px;max-height:88dvh;overflow-y:auto;border-radius:18px 18px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-top:2px solid rgba(255,255,255,.15);animation:sheetUp .3s cubic-bezier(.2,.9,.3,1);font-size:.95rem;line-height:1.5}@keyframes sheetUp{0%{transform:translateY(40px);opacity:0}}.sheet h2{margin:0 0 8px;font-size:1.4rem}.sheet ol{padding-left:20px;margin:8px 0}.sheet li{margin-bottom:4px}.sheet p{margin:8px 0}.sheet .example{background:#0000004d;border-radius:10px;padding:10px;margin:8px 0}.sheet button{margin-top:12px}.intro{position:fixed;inset:0;z-index:50;background:radial-gradient(ellipse at top,#243a8f 0%,var(--blue-dark) 60%) var(--blue-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .4s}.intro.done{opacity:0;pointer-events:none}.pile{position:relative;width:120px;height:160px;margin-bottom:70px}.cardback{position:absolute;inset:0;border-radius:10px;background:var(--blue);border:3px solid #fff;box-shadow:0 4px 14px #0006;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:900;font-size:.8rem;line-height:1;color:#fff;letter-spacing:-.02em}.cardback span{background:var(--red);padding:6px 8px;border-radius:6px;transform:rotate(-6deg)}.cardback.keep{animation:shuffle 1.3s var(--d) ease-in-out both,settle .6s 2.9s cubic-bezier(.2,.9,.3,1) both}.cardback.out{animation:shuffle 1.3s var(--d) ease-in-out both,toBox .7s calc(1.5s + var(--o)) cubic-bezier(.4,0,.8,.3) both}@keyframes shuffle{0%{transform:translate(0) rotate(0)}30%{transform:translate(var(--x),var(--y)) rotate(var(--r))}60%{transform:translate(calc(var(--x) * -.7),calc(var(--y) * .6)) rotate(calc(var(--r) * -.5))}to{transform:translate(calc(var(--x) * .3),calc(var(--y) * .3)) rotate(calc(var(--r) * .3))}}@keyframes toBox{0%{transform:translate(calc(var(--x) * .3),calc(var(--y) * .3)) rotate(calc(var(--r) * .3));opacity:1}to{transform:translate(220px,160px) rotate(40deg) scale(.5);opacity:0}}@keyframes settle{to{transform:translate(0) rotate(0)}}.caption{position:absolute;left:0;right:0;top:calc(50% + 100px);text-align:center;font-weight:800;font-size:1.15rem;padding:0 24px;opacity:0}.caption.c1{animation:cap 1.5s 0s both}.caption.c2{animation:cap 1.5s 1.5s both}.caption.c3{animation:cap 1.2s 3s both}@keyframes cap{0%{opacity:0;transform:translateY(8px)}15%,85%{opacity:1;transform:none}to{opacity:0}}.skip{position:absolute;bottom:30px;color:var(--muted);font-size:.8rem}.install{display:flex;align-items:center;gap:8px;margin-top:14px;background:#f5b82e1f;border:1px solid rgba(245,184,46,.4);border-radius:12px;padding:10px 12px;font-size:.85rem;line-height:1.4}.install span{flex:1}.install button.small{width:auto}.ios-share{display:inline-block;border:1px solid currentColor;border-radius:4px;padding:0 4px;font-size:.8em}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.tile{background:#00000040;border-radius:12px;padding:10px 6px;text-align:center}.tile b{display:block;font-size:1.5rem;font-weight:900;color:var(--gold)}.tile span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.card-panel h3{margin:0 0 8px;font-size:1rem}.insights{margin:0;padding-left:18px;font-size:.9rem;line-height:1.5;color:#dfe4f5}.insights b{color:var(--gold)}.bars{display:flex;flex-direction:column;gap:4px}.bar-row{display:flex;align-items:center;gap:8px;font-size:.8rem}.bar-row .lbl{width:22px;text-align:right;font-weight:800;font-variant-numeric:tabular-nums}.bar-row .track{flex:1;height:8px;background:#ffffff14;border-radius:4px;overflow:hidden}.bar-row .fill{display:block;height:100%;background:var(--gold);border-radius:0 4px 4px 0;min-width:0}.bar-row .val{width:36px;color:var(--muted);font-variant-numeric:tabular-nums}.history{list-style:none;margin:0;padding:0}.history li{background:#00000038;border-radius:10px;padding:8px 10px;margin-bottom:6px;border:2px solid transparent}.history li.won{border-color:#f5b82e99}.history .line1{display:flex;align-items:center;font-size:.95rem}.history .line1 small{color:var(--muted)}.history .line1 .score{margin-left:auto;font-weight:900;font-size:1.2rem}.history .line2{color:var(--muted);font-size:.75rem;margin:2px 0 4px}.history .hand .mini{width:22px;height:30px;font-size:.62rem}.history .run .mini+.mini{margin-left:-4px}
