:root{--bg: #08090B;--bg-2: #0E1115;--bg-3: #141820;--bg-4: #1B2029;--line: rgba(255, 255, 255, .06);--line-2: rgba(255, 255, 255, .12);--line-3: rgba(255, 255, 255, .22);--t1: #F2F3F5;--t2: #8E95A2;--t3: #5A6170;--glow: rgba(255, 255, 255, .22);--accent: #D4B46A;--g-best: #3DDC97;--g-good: #9BD8A8;--g-inacc: #F2C94C;--g-mist: #F2994A;--g-blun: #EB5757;--face: #FFFFFF;--ink: #0B0C0F;--back: #161A20;--s-spade: #111318;--s-heart: #E5383B;--s-diamond: #2563EB;--s-club: #16A34A;--font: -apple-system, "SF Pro Text", "SF Pro Display", Inter, system-ui, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--r1: 7px;--r2: 12px;--r3: 16px;--pill: 999px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--ease: cubic-bezier(.2, .7, .2, 1);--spring: cubic-bezier(.34, 1.4, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100dvh;width:100%;background:var(--bg);color:var(--t1);font-family:var(--font);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}body{overflow:hidden;overscroll-behavior:none}#app{position:relative;display:flex;flex-direction:column;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);isolation:isolate;max-width:540px;margin:0 auto}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}[hidden]{display:none!important}.hdr{height:44px;flex:none;display:flex;align-items:center;padding:0 var(--s2) 0 var(--s4);font-size:13px;color:var(--t2);gap:var(--s2)}.hdr .brand{font-weight:700;color:var(--t1);letter-spacing:-.01em;font-size:15px;margin-right:var(--s1)}.hdr .mid{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbtn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 var(--s2);color:var(--t2);font-size:14px}.hbtn:hover{color:var(--t1)}.mode{padding:0 10px;height:26px;display:inline-flex;align-items:center;border-radius:var(--pill);border:1px solid var(--line-2);font-size:12px;font-weight:600;color:var(--t2)}#app[data-hint=on] .mode{color:var(--accent);border-color:var(--accent)}.shud{height:36px;flex:none;display:flex;align-items:center;padding:0 var(--s2) 0 var(--s4);gap:var(--s3);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--t3);background:transparent;width:100%;text-align:left}.shud .k{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.shud .k b{color:var(--t1);font-weight:600;font-size:12px}.shud .k b.up{color:var(--g-best)}.shud .k b.dn{color:var(--g-blun)}.shud .sp{flex:1}.ledger{min-height:36px;display:inline-flex;align-items:center;gap:8px;padding:0 var(--s2);font-size:12px;color:var(--t3)}.ledger .tape{display:inline-flex;gap:3px;align-items:center}.ledger .tape i{width:5px;height:5px;border-radius:50%;background:var(--bg-4)}.ledger .tape i.new{animation:pop .45s var(--spring) both}@keyframes pop{0%{transform:scale(.2)}to{transform:none}}.dot.Best,.tape i.Best{background:var(--g-best)}.dot.Good,.tape i.Good{background:var(--g-good)}.dot.Inaccuracy,.tape i.Inaccuracy{background:var(--g-inacc)}.dot.Mistake,.tape i.Mistake{background:var(--g-mist)}.dot.Blunder,.tape i.Blunder{background:var(--g-blun)}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.table{flex:1;min-height:0;position:relative}.arena{position:absolute;inset:0;overflow:hidden}.deck{position:absolute;left:50%;top:31%;width:1px;height:1px}.seat{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;width:92px;z-index:2;transition:opacity .3s}.seat .node{width:42px;height:42px;border-radius:50%;background:var(--bg-3);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;color:var(--t1);position:relative;transition:box-shadow .3s,border-color .3s}.seat .hc{position:absolute;left:50%;top:-13px;transform:translate(-50%);display:flex;z-index:-1}.seat .hc .card+.card{margin-left:-9px}.seat .hc .card:first-child{transform:rotate(-7deg) translateY(1px)}.seat .hc .card:last-child{transform:rotate(7deg) translateY(1px)}.seat .tag{display:flex;flex-direction:column;align-items:center;line-height:1.15;min-width:0;max-width:100%}.seat .tag b{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:4px}.seat .tag span{font-size:11px;color:var(--t2)}.seat .pos{position:absolute;top:-6px;right:-2px;height:14px;padding:0 4px;border-radius:var(--pill);background:var(--bg-2);border:1px solid var(--line-2);font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:var(--t2);display:inline-flex;align-items:center}.seat .act{height:18px;padding:0 7px;border-radius:var(--pill);border:1px solid var(--line-2);font-size:10px;font-weight:600;color:var(--t2);display:inline-flex;align-items:center;gap:4px;animation:hudin .25s var(--ease) both}.seat .act.bet{color:var(--t1);border-color:var(--line-3)}.seat.folded{opacity:.32}.seat.folded .hc{visibility:hidden}.seat.turn .node{border-color:#ffffffb3;box-shadow:0 0 0 3px #ffffff12,0 0 22px var(--glow);animation:pulse 1.8s ease-in-out infinite}.seat.won .node{border-color:var(--g-best);box-shadow:0 0 0 3px #3ddc971f,0 0 22px #3ddc9747}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #ffffff12,0 0 22px var(--glow)}50%{box-shadow:0 0 0 4px #ffffff1a,0 0 30px #ffffff4d}}.puck{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--t1);color:#0b0c0f;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:3;transform:translate(-50%,-50%);transition:left .45s var(--spring),top .45s var(--spring);box-shadow:0 2px 6px #00000080}.seatbet{position:absolute;transform:translate(-50%,-50%);z-index:2}.bet{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--t1);background:var(--bg-3);border:1px solid var(--line-2);padding:2px 8px 2px 5px;border-radius:var(--pill);white-space:nowrap;animation:betin .3s var(--spring) both}@keyframes betin{0%{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}.chip{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--t1);box-shadow:inset 0 0 0 2.5px var(--bg-3),0 0 0 1px var(--t1);flex:none}.seat[data-clock="8"]{left:17%;top:56%}.seat[data-clock="10"]{left:17%;top:25%}.seat[data-clock="12"]{left:50%;top:10%}.seat[data-clock="2"]{left:83%;top:25%}.seat[data-clock="4"]{left:83%;top:56%}.seatbet[data-clock="8"]{left:30%;top:57%}.seatbet[data-clock="10"]{left:30%;top:31%}.seatbet[data-clock="12"]{left:50%;top:19%}.seatbet[data-clock="2"]{left:70%;top:31%}.seatbet[data-clock="4"]{left:70%;top:57%}.seatbet[data-clock="6"]{left:50%;top:66%}.seatbet:empty{display:none}.puck[data-clock="8"]{left:calc(17% + 18px);top:calc(56% - 10px)}.puck[data-clock="10"]{left:calc(17% + 18px);top:calc(25% - 10px)}.puck[data-clock="12"]{left:calc(50% + 18px);top:calc(10% - 10px)}.puck[data-clock="2"]{left:calc(83% + 18px);top:calc(25% - 10px)}.puck[data-clock="4"]{left:calc(83% + 18px);top:calc(56% - 10px)}.puck[data-clock="6"]{left:calc(50% + 62px);top:calc(100% - 22px)}.mid{position:absolute;left:0;right:0;top:29%;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:1;pointer-events:none}.pot{height:24px;min-height:24px;padding:0 10px;border-radius:var(--pill);display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--t2);border:1px solid transparent;transition:border-color .3s,background .3s}.pot.has{border-color:var(--line);background:var(--bg-2)}.pot b{color:var(--t1);font-weight:600;font-size:13px}.pot.bump{animation:bump .4s var(--spring)}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.board{display:flex;gap:5px}.street{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);height:14px}.heroblock{position:absolute;inset:64% 0 4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;z-index:2}.hud{display:flex;flex-direction:column;align-items:center;min-height:0;justify-content:flex-end;text-align:center;padding:0 var(--s4)}.hud .l{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);height:14px}.hud .m{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.2;color:var(--t1);animation:hudin .3s var(--ease) both}.hud .d{font-size:12px;color:var(--t2);height:16px;animation:hudin .3s var(--ease) both}.hud .d:empty{height:0}.hud .d i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--t2);margin-right:5px;vertical-align:1px}@keyframes hudin{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.hud.quiet .m{color:var(--t2);font-weight:500;font-size:14px}.hcards{display:flex;justify-content:center;gap:6px;min-height:84px;touch-action:pan-x;user-select:none;-webkit-user-select:none;will-change:transform;cursor:grab;transition:transform .22s,opacity .22s}.hcards.spring{transition:transform .35s var(--spring),opacity .25s}.hcards.fly,.hcards.flick{transition:transform .32s var(--ease),opacity .25s;transform:translateY(-190px) scale(.8) rotate(-4deg);opacity:0}.hcards.folded{opacity:.35}.swipehint{font-size:11px;color:var(--t3);height:14px;display:flex;align-items:center;gap:4px}.swipehint i{display:inline-block;width:1px;height:8px;background:var(--t3);position:relative;animation:nudge 1.6s ease-in-out infinite}.swipehint i:after{content:"";position:absolute;top:-1px;left:-2px;width:4px;height:4px;border-left:1px solid var(--t3);border-top:1px solid var(--t3);transform:rotate(45deg)}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.heroseat{display:flex;align-items:center;justify-content:center;gap:8px;height:24px}.heroseat .tag{flex-direction:row;align-items:baseline;gap:8px}.heroseat .tag b{font-size:12px;font-weight:600}.heroseat .tag span{font-size:11px;color:var(--t2)}.heroseat .pos{position:static;height:14px;padding:0 4px;border-radius:var(--pill);border:1px solid var(--line-2);background:var(--bg-2);font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:var(--t2);display:inline-flex;align-items:center;transition:box-shadow .3s,border-color .3s}.heroseat.turn .pos{color:var(--t1);border-color:#ffffffb3;box-shadow:0 0 0 3px #ffffff12,0 0 18px var(--glow);animation:pulse 1.8s ease-in-out infinite}.heroseat.won .pos{color:var(--t1);border-color:var(--g-best);box-shadow:0 0 0 3px #3ddc971f,0 0 18px #3ddc9747}.heroseat.folded{opacity:.5}.card{width:44px;height:62px;border-radius:var(--r1);background:var(--face);color:var(--ink);position:relative;flex:none;font-family:var(--font);font-weight:700;letter-spacing:-.02em;box-shadow:0 1px 2px #00000080,0 8px 16px -8px #000000b3}.card .r{position:absolute;top:4px;left:6px;font-size:19px;line-height:1;font-variant-numeric:tabular-nums}.card .r.ten{letter-spacing:-.09em;left:4px}.card .s{position:absolute;top:24px;left:6px;font-size:12px;line-height:1}.card .b{position:absolute;right:4px;bottom:2px;font-size:26px;line-height:1}.card[data-s=s]{color:var(--s-spade)}.card[data-s=h]{color:var(--s-heart)}.card[data-s=d]{color:var(--s-diamond)}.card[data-s=c]{color:var(--s-club)}.card.back{background:var(--back);box-shadow:inset 0 0 0 1px #ffffff17,0 1px 2px #00000080}.card.back:after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(255,255,255,.18);transform:translate(-50%,-50%)}.card.xs{width:22px;height:31px;border-radius:4px}.card.xs .r{font-size:11px;top:2px;left:3px}.card.xs .r.ten{font-size:10px;letter-spacing:-.08em;left:2px}.card.xs .s{display:none}.card.xs .b{font-size:11px;right:2px;bottom:1px}.card.xs.back:after{width:6px;height:6px;border-width:1px}.card.sm{width:30px;height:42px;border-radius:5px}.card.sm .r{font-size:14px;top:3px;left:4px}.card.sm .r.ten{letter-spacing:-.09em;left:3px}.card.sm .s{display:none}.card.sm .b{font-size:15px;right:3px;bottom:2px}.card.lg{width:60px;height:84px;border-radius:9px}.card.lg .r{font-size:26px;top:6px;left:8px}.card.lg .r.ten{left:5px}.card.lg .s{top:33px;left:8px;font-size:15px}.card.lg .b{font-size:36px;right:6px;bottom:3px}.card.slot{background:transparent;box-shadow:inset 0 0 0 1px var(--line);border:0}.card.deal{animation:deal .42s var(--ease) both;animation-delay:calc(var(--i, 0) * 70ms)}@keyframes deal{0%{transform:translate(var(--dx, 0),var(--dy, -40px)) scale(.55) rotate(-6deg);opacity:0}55%{opacity:1}to{transform:none;opacity:1}}.seat .hc .card.deal:first-child{animation-name:dealL}.seat .hc .card.deal:last-child{animation-name:dealR}@keyframes dealL{0%{transform:translate(var(--dx, 0),var(--dy, -40px)) scale(.55);opacity:0}55%{opacity:1}to{transform:rotate(-7deg) translateY(1px);opacity:1}}@keyframes dealR{0%{transform:translate(var(--dx, 0),var(--dy, -40px)) scale(.55);opacity:0}55%{opacity:1}to{transform:rotate(7deg) translateY(1px);opacity:1}}.card.flip{animation:flip .38s var(--ease) both}@keyframes flip{0%{transform:rotateY(90deg)}to{transform:none}}.card.dim{opacity:.5}.think{display:inline-flex;gap:3px;align-items:center}.think i{width:4px;height:4px;border-radius:50%;background:var(--t2);animation:blink 1.2s infinite}.think i:nth-child(2){animation-delay:.2s}.think i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.msg{height:36px;flex:none;display:flex;align-items:center;padding:0 var(--s4);font-size:13px;color:var(--t2);gap:6px}.msg b{color:var(--t1);font-weight:600}.msg .txt{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.msg .num{color:var(--t3);font-size:12px}.bar{flex:none;background:var(--bg-2);border-top:1px solid var(--line);padding:var(--s3) var(--s3) 0}.sizes{display:flex;gap:var(--s2);height:40px;margin-bottom:var(--s2)}.pill{flex:1;height:40px;border-radius:var(--pill);background:transparent;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:var(--t2);transition:background .15s,border-color .15s}.pill b{color:var(--t1);font-weight:600;font-size:14px}.pill.on{border-color:var(--line-3);background:var(--bg-3);color:var(--t1)}.pill:hover{background:var(--bg-3)}.acts{display:flex;gap:var(--s2)}.btn{flex:1;height:56px;border-radius:var(--r2);background:var(--bg-3);font-size:17px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);transition:background .15s,transform .1s}.btn small{font-size:12px;font-weight:500;color:var(--t2)}.btn.primary{background:var(--t1);color:#0b0c0f;border-color:transparent}.btn.primary small{color:#4b5160}.btn.ghost{background:transparent;border-color:var(--line-2);color:var(--t2)}.btn:hover{background:var(--bg-4)}.btn.primary:hover{background:#fff}.btn.ghost:hover{background:var(--bg-3);color:var(--t1)}.btn:active{transform:scale(.98)}.btn:focus-visible,.pill:focus-visible,.hintchip:focus-visible,.ledger:focus-visible,.hbtn:focus-visible,.hrow:focus-visible,.shud:focus-visible{outline:2px solid var(--t1);outline-offset:2px}.bar.off .sizes,.bar.off .acts{opacity:.3;pointer-events:none}.hintrow{height:44px;display:flex;align-items:center;padding:0 var(--s1)}.hintchip{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 4px;font-size:13px;color:var(--t2)}.hintchip .k{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--pill);border:1px solid var(--accent);color:var(--accent);font-weight:600;font-size:12px}.hintchip .k small{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;opacity:.85}.hintchip .why{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}#app[data-hint=off] .hintrow{height:var(--s3)}#app[data-hint=off] .hintchip{display:none}.safe{height:34px;flex:none;background:var(--bg-2)}.after{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:var(--s2);font-size:13px;color:var(--t2);padding:0 var(--s1)}.after .dots{display:inline-flex;gap:5px;align-items:center;margin-right:8px}.after b{color:var(--t1);font-weight:600}.scrim{position:absolute;inset:0;background:#0009;opacity:0;pointer-events:none;transition:opacity .2s;z-index:5}.sheet{position:absolute;inset:47px 0 0;background:var(--bg-2);border-radius:24px 24px 0 0;z-index:6;transform:translateY(100%);transition:transform .32s var(--ease);display:flex;flex-direction:column;box-shadow:0 -1px 0 var(--line-2)}#app.sheet-on .scrim{opacity:1;pointer-events:auto}#app.sheet-on .sheet{transform:none}.grab{width:36px;height:4px;border-radius:2px;background:var(--bg-4);margin:8px auto 0}.sheet .sh{display:flex;align-items:center;justify-content:space-between;padding:6px var(--s2) 0 var(--s4);min-height:44px}.sheet .sh b{font-size:17px;font-weight:600;letter-spacing:-.01em}.sheet .sh small{display:block;font-size:12px;color:var(--t2);font-weight:400;margin-top:1px}.sheet .body{flex:1;overflow:auto;padding:0 var(--s4) max(var(--s5),env(safe-area-inset-bottom));overscroll-behavior:contain}.sheet .foot-acts{flex:none;padding:var(--s3) var(--s4) 0;border-top:1px solid var(--line);display:flex;gap:var(--s2);background:var(--bg-2)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin-top:var(--s3)}.tile{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r2);padding:12px 12px 10px;min-height:72px;display:flex;flex-direction:column;justify-content:space-between}.tile .v{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1}.tile .v.up{color:var(--g-best)}.tile .v.dn{color:var(--g-blun)}.tile .l{font-size:11px;color:var(--t3);margin-top:8px}.row{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid var(--line);font-size:15px;gap:var(--s3)}.row .v{color:var(--t2);white-space:nowrap}.row .v b{color:var(--t1);font-weight:600}.sec{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);margin:var(--s5) 0 var(--s2);display:flex;justify-content:space-between}.dist{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:2px;margin:var(--s3) 0 8px}.dist i{display:block;height:100%}.legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--t2)}.legend span{display:inline-flex;align-items:center;gap:5px}.legend b{color:var(--t1);font-weight:600}.prog{height:4px;background:var(--bg-4);border-radius:2px;overflow:hidden;margin:6px 0 2px}.prog i{display:block;height:100%;background:var(--t2)}.p{font-size:13px;color:var(--t2);line-height:1.45}.vs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:8px 0}.vs div{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r1);padding:8px 4px;text-align:center}.vs b{display:block;font-size:11px;font-weight:600}.vs span{display:block;font-size:12px;color:var(--t2);margin-top:3px;font-weight:600}.vs span.up{color:var(--g-best)}.vs span.dn{color:var(--g-blun)}details{border-bottom:1px solid var(--line);padding:10px 0}summary{cursor:pointer;min-height:44px;line-height:1.5;font-size:14px}details .cards{display:flex;gap:4px;margin:8px 0}.review-move{padding:6px 0;font-size:13px;color:var(--t2)}.sheet-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.sheet-actions .btn{flex:1 0 140px}.foot{font-size:11px;color:var(--t3);line-height:1.45;margin-top:var(--s5)}@media(prefers-reduced-motion:reduce){.card.deal,.think i,.hcards,.sheet,.scrim,.pot.bump,.bet{animation:none!important;transition:none!important}}
