:root{--felt-1:#0b6b4f;--felt-2:#064434;--ink:#0f1720;--card-bg:#fbfbf7;--gold:#f4c95d;--gold-2:#e0a92e;--red:#d8384f;--blue:#2f6fed;--text:#eaf3ee;--muted:#9fc4b4;--panel:rgba(4,30,22,.55);--panel-line:hsla(0,0%,100%,.08)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--felt-2);min-height:100dvh;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(1200px 600px at 50% -8%,hsla(0,0%,100%,.06),transparent),radial-gradient(1100px 800px at 50% 30%,var(--felt-1),var(--felt-2) 72%)}.wrap{max-width:1000px;margin:0 auto;padding:24px 18px 60px;min-height:100dvh;display:flex;flex-direction:column}.screenfade{animation:screenIn .28s ease}@keyframes screenIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.brand{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:6px}.brand h1{font-size:clamp(28px,6vw,44px);letter-spacing:.5px;font-weight:800;background:linear-gradient(180deg,#fff,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}.brand .chip{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--ink);background:var(--gold);padding:4px 8px;border-radius:999px;font-weight:800}.tagline{text-align:center;color:var(--muted);margin-bottom:26px;font-size:14px}.brand.compact{margin-bottom:14px;gap:10px}.brand.compact h1{font-size:24px}.brand.compact .chip{font-size:9px;padding:3px 6px}.roomtag{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--muted);border:1px solid var(--panel-line);border-radius:999px;padding:4px 10px}.brand.compact{justify-content:flex-start}.leavebtn{margin-left:auto;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;background:hsla(0,0%,100%,.06);border:1px solid var(--panel-line);border-radius:999px;padding:6px 14px;transition:all .12s ease}.leavebtn:hover{color:#fff;border-color:var(--red);background:rgba(216,56,79,.18)}.panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:18px;padding:22px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 20px 50px rgba(0,0,0,.35)}.lobby{max-width:440px;margin:8px auto 0}.lobby h2{font-size:18px}.field,.lobby h2{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.4px}input[type=text]{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--panel-line);background:hsla(0,0%,100%,.06);color:#fff;font-size:16px;outline:none;text-transform:none}input.code{letter-spacing:6px;text-transform:uppercase;font-weight:700;font-size:20px;text-align:center}input:focus{border-color:var(--gold)}.btn{width:100%;padding:13px 16px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:.3px;transition:transform .06s ease,filter .15s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#2a2007}.btn.ghost{background:hsla(0,0%,100%,.08);color:#fff;border:1px solid var(--panel-line)}.btn.danger{background:linear-gradient(180deg,#ff6b81,var(--red));color:#fff}.btn.blue{background:linear-gradient(180deg,#5b8dff,var(--blue));color:#fff}.btn.row{width:auto;padding:10px 18px}.sizepick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sizebtn{width:40px;height:40px;border-radius:10px;cursor:pointer;font-weight:800;font-size:16px;background:hsla(0,0%,100%,.06);color:#fff;border:1px solid var(--panel-line);transition:all .1s ease}.sizebtn.on,.sizebtn:hover{border-color:var(--gold)}.sizebtn.on{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#2a2007}.difficultybtn{width:auto;height:40px;padding:0 14px;border-radius:10px;cursor:pointer;font-weight:700;font-size:13px;background:hsla(0,0%,100%,.06);color:#fff;border:1px solid var(--panel-line);transition:all .1s ease}.difficultybtn.on,.difficultybtn:hover{border-color:var(--gold)}.difficultybtn.on{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#2a2007}.playerlist{margin:16px 0 6px;display:flex;flex-direction:column;gap:8px}.plrow{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.2);border:1px solid var(--panel-line);border-radius:10px;padding:8px 12px}.plrow.empty{opacity:.5}.plname{font-weight:700;flex:1 1}.plhost{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:1px}.avatar.sm{width:30px;height:30px;font-size:14px}.avatar.sm.ghost{background:hsla(0,0%,100%,.08)!important}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:18px 0}.divider:after,.divider:before{content:"";height:1px;flex:1 1;background:var(--panel-line)}.error{color:#ffd0d6;background:rgba(216,56,79,.18);border:1px solid rgba(216,56,79,.4);padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:14px}.hint{color:var(--muted);font-size:12.5px;line-height:1.5}.codebox{text-align:center;margin:10px 0 4px}.codebox .code{font-size:44px;font-weight:800;letter-spacing:10px;color:var(--gold)}.copyrow{display:flex;gap:8px;justify-content:center;margin-top:12px;flex-wrap:wrap}.linkbox{margin-top:14px;font-size:13px;color:var(--gold);background:rgba(0,0,0,.25);border:1px dashed var(--panel-line);border-radius:10px;padding:10px 12px;word-break:break-all}.invite,.linkbox{text-align:center}.invite{background:rgba(244,201,93,.14);border:1px solid rgba(244,201,93,.5);color:var(--text);border-radius:12px;padding:14px;font-size:15px;line-height:1.5;margin-bottom:18px}.invite b{color:var(--gold)}.pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--gold);margin-right:8px;animation:pulse 1.2s infinite}@keyframes pulse{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.table{display:flex;flex-direction:column;gap:16px;flex:1 1}.seats{flex-wrap:wrap;justify-content:center}.oppseat,.seats{display:flex;gap:10px}.oppseat{align-items:center;position:relative;min-width:150px;flex:1 1 150px;max-width:230px;background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;padding:10px 12px;transition:all .15s ease}.oppseat.active{border-color:var(--gold);animation:turnGlow 1.8s ease-in-out infinite}.oppseat.claimer{border-color:rgba(47,111,237,.6)}.oppseat.out{opacity:.55}.oppseat.left{opacity:.35;filter:grayscale(70%)}.oppseat .oppmeta{min-width:0}.oppseat .name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oppseat .sub{font-size:11.5px;color:var(--muted)}.oppseat .turnbadge{position:absolute;top:-8px;right:-6px}.seat{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;padding:12px 16px;transition:border-color .2s ease,box-shadow .2s ease}.seat.active{border-color:var(--gold);animation:turnGlow 1.8s ease-in-out infinite}.seat.out{opacity:.6}.seat .who{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(180deg,#2f6fed,#1c4fbf);color:#fff;flex:none}.avatar.opp{width:34px;height:34px}.seat .name{font-weight:700}.seat .sub{font-size:12px;color:var(--muted)}@keyframes turnGlow{0%,to{box-shadow:0 0 0 2px rgba(244,201,93,.25),0 0 16px rgba(244,201,93,.12)}50%{box-shadow:0 0 0 3px rgba(244,201,93,.55),0 0 26px rgba(244,201,93,.35)}}.turnbadge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#2a2007;background:var(--gold);padding:3px 8px;border-radius:999px;white-space:nowrap;animation:badgePop .3s cubic-bezier(.2,.9,.3,1.3)}@keyframes badgePop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.turnbadge.claim{background:var(--blue);color:#fff}.safeTag,.turnbadge.believed{background:#42c98f;color:#06301f}.safeTag{font-size:10px;font-weight:800;letter-spacing:1px;padding:2px 8px;border-radius:999px;margin-left:8px}.safeTag.pending{color:#2a2007;background:var(--gold)}.standings{text-align:left;margin:4px 0 16px;display:flex;flex-direction:column;gap:6px}.strow{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.22);border:1px solid var(--panel-line);border-radius:9px;padding:7px 11px;font-size:13.5px}.strow.loser{border-color:rgba(216,56,79,.5);background:rgba(216,56,79,.12)}.strow.left{opacity:.45}.strow .place{font-weight:800;width:28px}.strow .sname{flex:1 1;font-weight:600}.strow .sres{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.strow.loser .sres{color:#ffb3bd}.center{display:grid;place-items:center;padding:8px}.pile{position:relative;height:120px;width:160px;display:grid;place-items:center}.pileCard{position:absolute;width:74px;height:104px;border-radius:9px;background:repeating-linear-gradient(45deg,#123e63,#123e63 6px,#0d2f4d 0,#0d2f4d 12px);border:2px solid #eaeaea;box-shadow:0 6px 14px rgba(0,0,0,.35);display:grid;place-items:center}.pileCardRank{font-size:22px;font-weight:800;color:hsla(0,0%,100%,.85);text-shadow:0 2px 4px rgba(0,0,0,.4);pointer-events:none}.pileInfo{text-align:center;margin-top:8px}.pileInfo .n{font-size:26px;font-weight:800}.pileInfo .l{font-size:12px;color:var(--muted)}.claim{text-align:center;background:rgba(0,0,0,.28);border:1px dashed var(--panel-line);border-radius:12px;padding:10px 14px}.claim .big{font-size:18px;font-weight:800;color:var(--gold)}.claimrow{display:flex;align-items:center;gap:12px;text-align:left}.rankdemo{flex:none;width:38px;height:52px;border-radius:8px;background:var(--card-bg);color:#111;display:grid;place-items:center;font-weight:800;font-size:17px;border:1px solid #d8d8cf;box-shadow:0 4px 10px rgba(0,0,0,.3)}.claimtext{font-size:14px;line-height:1.3}.claimsub{display:block;font-size:12px;color:var(--muted);margin-top:3px}.rankPill{display:inline-block;background:var(--gold);color:#2a2007;font-weight:800;border-radius:8px;padding:2px 10px}.handwrap{margin-top:auto}.handlabel{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.handlabel .h{font-weight:800}.hand{flex-wrap:wrap;gap:8px;justify-content:center}.card,.hand{display:flex}.card{width:60px;height:86px;border-radius:10px;background:var(--card-bg);color:#111;border:1px solid #d8d8cf;box-shadow:0 4px 10px rgba(0,0,0,.25);flex-direction:column;justify-content:space-between;padding:6px 7px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .15s ease,outline-color .12s;outline:3px solid transparent;animation:cardIn .32s cubic-bezier(.2,.9,.3,1.1) both;animation-delay:calc(var(--i, 0) * 22ms)}@keyframes cardIn{0%{opacity:0;transform:translateY(14px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}.card:hover{transform:translateY(-6px)}.card.sel{transform:translateY(-12px);outline-color:var(--gold);box-shadow:0 10px 20px rgba(0,0,0,.4)}.card.red{color:var(--red)}.card .r{font-weight:800;font-size:16px;line-height:1}.card .s{font-size:18px;text-align:right}.card .rb{transform:rotate(180deg);font-weight:800;font-size:16px}.card.flying{animation:flyToPile .28s ease-in forwards!important;pointer-events:none!important;z-index:5}@keyframes flyToPile{to{transform:translateY(-160px) scale(.35) rotate(10deg);opacity:0}}.card.pickedup{animation:pickedUpGlow 2.4s ease-out}@keyframes pickedUpGlow{0%,60%{box-shadow:0 0 0 3px rgba(216,56,79,.65),0 10px 22px rgba(216,56,79,.35);border-color:var(--red)}to{box-shadow:0 4px 10px rgba(0,0,0,.25);border-color:#d8d8cf}}.rankpicker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;margin:14px 0 4px;padding:10px;background:rgba(0,0,0,.22);border:1px solid var(--panel-line);border-radius:12px}.rplabel{font-size:12px;color:var(--muted);margin-right:4px;letter-spacing:.4px}.rankbtn{min-width:34px;height:34px;border-radius:8px;cursor:pointer;font-weight:800;font-size:14px;background:hsla(0,0%,100%,.07);color:#fff;border:1px solid var(--panel-line);transition:all .1s ease}.rankbtn.on,.rankbtn:hover:not(:disabled){border-color:var(--gold)}.rankbtn.on{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#2a2007}.rankbtn:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.statusline{text-align:center;color:var(--muted);font-size:13.5px;min-height:20px;margin-top:10px}.statusline strong{color:#fff}.log{margin-top:14px;background:rgba(0,0,0,.22);border:1px solid var(--panel-line);border-radius:12px;padding:10px 14px 10px 12px;max-height:130px;overflow-y:auto;font-size:12.5px;line-height:1.7;color:var(--muted)}.log div:last-child{color:#fff}*{scrollbar-width:thin;scrollbar-color:rgba(244,201,93,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(244,201,93,.3);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(244,201,93,.55);border:2px solid transparent;background-clip:content-box}.log::-webkit-scrollbar{width:6px}.overlay{position:fixed;inset:0;background:rgba(2,18,13,.82);display:grid;place-items:center;z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:20px;animation:fade .2s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.win{position:relative;text-align:center;background:var(--panel);border:1px solid var(--gold);border-radius:20px;padding:34px 40px;box-shadow:0 30px 60px rgba(0,0,0,.5);max-width:380px;width:100%;animation:pop .28s cubic-bezier(.2,.9,.3,1.3)}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.win .t{font-size:46px;margin-bottom:6px;animation:trophy .6s ease}@keyframes trophy{0%{transform:scale(0) rotate(-20deg)}60%{transform:scale(1.2) rotate(8deg)}to{transform:scale(1) rotate(0)}}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:20px}.confetti .piece{position:absolute;top:-12px;width:8px;height:14px;opacity:0;animation:confettiFall 1.4s ease-in forwards;animation-delay:var(--d,0s);left:var(--x,50%);background:var(--c,var(--gold));border-radius:2px}@keyframes confettiFall{0%{opacity:0;transform:translateY(0) rotate(0deg)}8%{opacity:1}to{opacity:0;transform:translateY(340px) rotate(540deg)}}.win h2{font-size:27px;margin-bottom:6px}.win p{color:var(--muted);margin-bottom:18px;font-size:14px;line-height:1.5}.winbtns{display:flex;flex-direction:column;gap:10px}.winbtns .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.rematchnote{background:rgba(244,201,93,.16);border:1px solid rgba(244,201,93,.5);color:var(--gold);border-radius:10px;padding:9px 12px;font-size:13px;font-weight:700;margin-bottom:14px}.reveal{display:flex;align-items:center;gap:12px;text-align:left;margin-top:12px;padding:10px 14px;border-radius:12px;border:1px solid var(--panel-line);animation:screenIn .25s ease}.reveal.ok{background:rgba(47,111,237,.18);border-color:rgba(47,111,237,.5)}.reveal.bad{background:rgba(216,56,79,.18);border-color:rgba(216,56,79,.5)}.reveal.burn{background:rgba(244,201,93,.16);border-color:rgba(244,201,93,.5);font-size:13.5px;justify-content:center}.reveal .card{flex:none}.reveal .revealtext{font-size:13.5px;line-height:1.45}.card.flip{animation:flipin .45s ease;cursor:default}.card.flip:hover{transform:none}@keyframes flipin{0%{transform:rotateY(90deg);opacity:0}to{transform:rotateY(0);opacity:1}}.confirm{text-align:center;background:var(--panel);border:1px solid var(--panel-line);border-radius:20px;padding:28px 32px;max-width:360px;width:100%;box-shadow:0 30px 60px rgba(0,0,0,.55);animation:pop .26s cubic-bezier(.2,.9,.3,1.3)}.confirm .t{font-size:40px;margin-bottom:6px}.confirm h2{font-size:22px;margin-bottom:8px}.confirm p{color:var(--muted);font-size:14px;line-height:1.5;margin-bottom:18px}.picker{text-align:center;background:var(--panel);border:1px solid var(--red);border-radius:20px;padding:28px 30px;max-width:440px;box-shadow:0 30px 60px rgba(0,0,0,.5);animation:pop .28s cubic-bezier(.2,.9,.3,1.3)}.picker h2{font-size:24px;margin-bottom:8px}.picker p{color:var(--muted);font-size:14px;line-height:1.55;margin-bottom:18px}.pickrow{gap:10px;flex-wrap:wrap;margin-bottom:18px}.pickcard,.pickrow{display:flex;justify-content:center}.pickcard{width:62px;height:88px;border-radius:10px;cursor:pointer;background:repeating-linear-gradient(45deg,#123e63,#123e63 6px,#0d2f4d 0,#0d2f4d 12px);border:2px solid #eaeaea;color:#fff;flex-direction:column;align-items:center;gap:6px;transition:transform .08s ease,box-shadow .12s ease}.pickcard:hover:not(:disabled){transform:translateY(-6px);box-shadow:0 10px 20px rgba(0,0,0,.4);border-color:var(--gold)}.pickcard:disabled{opacity:.6;cursor:not-allowed}.pickcard .q{font-size:30px;font-weight:800}.pickcard .idx{font-size:11px;color:#bcd}.footer{text-align:center;color:var(--muted);font-size:11.5px;margin-top:22px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#111;color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;box-shadow:0 10px 24px rgba(0,0,0,.4);z-index:30}@media (max-width:520px){.card{width:52px;height:74px}.codebox .code{font-size:34px;letter-spacing:6px}}