/* Vault Arena */
.ar .ar-main{min-width:0}.page.ar{max-width:1240px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
.ar button,.ar-wrap button,.ar-chat button{font:inherit;color:inherit;cursor:pointer}
.ar-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.ar-head h1{display:flex;gap:10px;align-items:center;margin:0;font:800 22px var(--display)}.ar-head em{font:800 10px var(--ui);font-style:normal;background:var(--raised);padding:3px 7px;border-radius:6px;color:var(--muted)}
.ar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.ar-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:172px;padding:14px;border-radius:18px;overflow:hidden;text-decoration:none;color:#fff;background:linear-gradient(155deg,var(--a),var(--b));border:1px solid rgba(255,255,255,.12);transition:transform .22s,box-shadow .22s}
.ar-tile:not(.soon):hover{transform:translateY(-5px) scale(1.02);box-shadow:0 16px 34px rgba(0,0,0,.45)}.ar-tile.soon{filter:saturate(.5) brightness(.75);cursor:default}
.ar-ti{position:absolute;right:-6px;top:10px;opacity:.38;transform:rotate(-12deg);transition:transform .35s}.ar-tile:hover .ar-ti{transform:rotate(0) scale(1.12)}
.ar-tg{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.6))}.ar-tile b,.ar-tile small,.ar-tile em{position:relative}.ar-tile b{font-size:18px;text-shadow:0 2px 6px rgba(0,0,0,.5)}.ar-tile small{opacity:.85}
.ar-live{position:absolute!important;top:10px;left:10px;font-style:normal;font-size:11px;font-weight:800;background:rgba(0,0,0,.5);padding:3px 8px;border-radius:99px;display:flex;gap:5px;align-items:center}.ar-live i{width:7px;height:7px;border-radius:50%;background:var(--win);animation:spPulse 1.4s infinite}
.ar-sec{margin-top:22px}.ar-sec h3{margin:0 0 10px}.ar-ol{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:8px}.ar-ol small{color:var(--muted);flex:1}.ar-oi{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--a),var(--b))}
.ar-note{color:var(--dim);font-size:12px;margin:14px 2px}
.ar-btn{border:0;background:var(--raised2);border-radius:11px;padding:10px 16px;font-weight:800;transition:filter .15s,transform .1s}.ar-btn:hover{filter:brightness(1.15)}.ar-btn:active{transform:scale(.97)}.ar-btn.pri{background:linear-gradient(135deg,#4f6bff,#3a4fe0);color:#fff}.ar-btn.big{width:100%;padding:13px}.ar-btn.full{width:100%}.ar-btn:disabled{opacity:.45;cursor:not-allowed}
.ar-panel{position:sticky;top:12px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:12px;display:flex;flex-direction:column;max-height:calc(100vh - 110px);overflow:hidden}
.ar-ptabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--bg2);border-radius:11px;padding:3px}.ar-ptabs button{border:0;background:none;border-radius:9px;padding:8px 4px;font-weight:700;font-size:12.5px;color:var(--muted)}.ar-ptabs button.on{background:var(--raised2);color:#fff}
.ar-badge{font-style:normal;background:var(--loss);color:#fff;border-radius:99px;padding:0 6px;font-size:11px}
.ar-pbody{flex:1;overflow-y:auto;margin:10px 0;min-height:140px}.ar-search,.ar-add input,.ar-join input,.ar-ch-f input{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--text);font:inherit;outline:0;margin-bottom:8px}.ar-search:focus,.ar-add input:focus,.ar-join input:focus,.ar-ch-f input:focus{border-color:#4f6bff}
.ar-fr{display:flex;align-items:center;gap:9px;padding:7px 4px;border-radius:10px}.ar-fr:hover{background:rgba(255,255,255,.04)}.ar-fr b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ar-fr small{color:var(--dim)}
.ar-avw{position:relative}.ar-avw i{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:50%;background:var(--dim);border:2px solid var(--panel)}.ar-avw i.on{background:var(--win)}
.ar-av{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:800;flex:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)}
.ar-ib{background:var(--raised);border:0;border-radius:8px;min-width:30px;height:30px;padding:0 8px;font-size:13px;font-weight:700;color:var(--muted)}.ar-ib:hover{color:#fff}.ar-ib.ok{background:var(--win);color:#04281b}
.ar-empty{padding:18px 10px;text-align:center;color:var(--muted);font-size:13px}.ar-sub{color:var(--dim);font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin:10px 0 6px}
.ar-inv{border-top:1px solid var(--line);padding-top:8px}.ar-inv h4{margin:0 0 4px}.ar-add{display:flex;flex-direction:column;gap:8px}
.ar-fab{display:none}
/* pre-lobby + lobby */
.ar-wrap{max-width:1100px}.ar-stage{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden;min-height:430px;animation:pf2in .35s ease both}
.ar-art{position:relative;display:grid;place-items:center;color:rgba(255,255,255,.9);background:radial-gradient(circle at 30% 20%,var(--b),transparent 60%),linear-gradient(155deg,var(--a),#0b1226);overflow:hidden}.ar-art svg{filter:drop-shadow(0 12px 22px rgba(0,0,0,.45));animation:arf 4s ease-in-out infinite}@keyframes arf{50%{transform:translateY(-10px) rotate(3deg)}}
.ar-artl{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.55))}.ar-art h2{position:absolute;left:18px;bottom:12px;margin:0;font:800 30px var(--display);text-shadow:0 3px 10px rgba(0,0,0,.5)}
.ar-side{padding:18px;display:flex;flex-direction:column;gap:10px}.ar-side h3{margin:0}
.ar-or{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:11px;text-transform:uppercase;font-weight:700}.ar-or:before,.ar-or:after{content:"";flex:1;height:1px;background:var(--line)}
.ar-join{display:flex;gap:8px}.ar-join input{margin:0;text-transform:uppercase;letter-spacing:.2em;text-align:center}
.ar-pl{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.ar-pl small{display:block;color:var(--dim)}.ar-pl.wait{opacity:.6}.ar-q{width:38px;height:38px;border-radius:50%;border:2px dashed var(--dim);display:grid;place-items:center;color:var(--dim);animation:spPulse 2s infinite}
.ar-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ar-sw{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}.ar-sw input{display:none}.ar-sw i{width:38px;height:22px;border-radius:99px;background:var(--raised2);position:relative;transition:background .2s}.ar-sw i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.ar-sw input:checked+i{background:#4f6bff}.ar-sw input:checked+i:after{transform:translateX(16px)}
.ar-opt label{display:block;font-size:12px;color:var(--muted);font-weight:700;margin-bottom:5px}.ar-opt>div{display:flex;gap:6px;flex-wrap:wrap}.ar-ch{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-weight:700;font-size:12.5px;display:flex;flex-direction:column;align-items:center}.ar-ch small{color:var(--dim);font-weight:600;font-size:10.5px}.ar-ch.on{border-color:#4f6bff;background:rgba(79,107,255,.18)}.ar-ch:disabled{opacity:.6}
.ar-link{background:none;border:0;color:var(--dim);margin-top:auto;padding:8px}
.ar-pop{background:var(--raised2);border:1px solid var(--line);border-radius:12px;padding:6px;margin-top:6px;max-height:200px;overflow:auto;position:relative;z-index:3}.ar-pop button{display:flex;gap:8px;align-items:center;width:100%;background:none;border:0;padding:7px;border-radius:8px;text-align:left}.ar-pop button:hover{background:rgba(255,255,255,.07)}.ar-pop b{flex:1}.ar-pop i{width:8px;height:8px;border-radius:50%;background:var(--dim)}.ar-pop i.on{background:var(--win)}
/* match */
.ar-play{position:relative;display:block;background:linear-gradient(180deg,#0f1830,#0a1020);border:1px solid var(--line);border-radius:20px;overflow:hidden;min-height:480px;padding:14px 14px 48px;animation:pf2in .35s ease both}
.ar-bar{position:absolute;left:0;right:0;bottom:0;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.04);border-top:1px solid var(--line);font-weight:800;color:var(--muted)}.ar-bar span{display:flex;gap:7px;align-items:center}.ar-bar .ar-ib{position:absolute;right:10px}
.ag{display:flex;flex-direction:column;align-items:center;gap:12px}.ag-strip{width:100%;display:flex;justify-content:space-between;gap:10px}.ag-p{display:flex;gap:9px;align-items:center;min-width:0}.ag-p.r{flex-direction:row;text-align:right}.ag-p small{display:flex;align-items:center;gap:5px;color:var(--muted);font-weight:700}.ag-p b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:36vw}
.ag-cd{position:absolute;inset:0;display:grid;place-items:center;background:rgba(5,9,20,.55);z-index:6;backdrop-filter:blur(2px)}.ag-cd b{font:800 96px var(--display);color:#fff;text-shadow:0 0 30px rgba(79,107,255,.8)}.ag-cd b.pop{animation:cdp .55s ease-out}@keyframes cdp{0%{transform:scale(2.2);opacity:0}60%{opacity:1}100%{transform:scale(1)}}
.ar-res{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:rgba(5,9,20,.72);backdrop-filter:blur(3px);animation:ari .35s ease both}@keyframes ari{from{opacity:0}}.ar-rc{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px 30px;text-align:center;animation:arp .45s cubic-bezier(.2,1.4,.4,1) both;min-width:240px}@keyframes arp{from{transform:scale(.7)}}.ar-rt{font:800 30px var(--display)}.ar-res.win .ar-rt{color:var(--gold)}.ar-rb{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.ar-conf{position:absolute;inset:0;overflow:hidden;pointer-events:none}.ar-conf i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;animation:arc 2s linear forwards}@keyframes arc{to{transform:translateY(560px) rotate(720deg);opacity:0}}
/* connect */
.ag-turn{height:24px;font-weight:800;color:var(--muted);transition:color .2s}.ag-turn.me{color:var(--win)}.ag-turn.op{color:var(--gold)}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%}.dot.p1,.cell.p1{background:radial-gradient(circle at 35% 30%,#7da2ff,#2547d0)}.dot.p2,.cell.p2{background:radial-gradient(circle at 35% 30%,#ffd37a,#f08a00)}
.ag-cboard{display:grid;grid-template-columns:repeat(var(--w),1fr);gap:4px;background:#1e3a8a;padding:10px;border-radius:16px;width:min(100%,calc(var(--w)*58px));box-shadow:0 14px 40px rgba(0,0,0,.45),inset 0 0 0 3px rgba(255,255,255,.1)}
.ag-col{display:flex;flex-direction:column;gap:4px;background:none;border:0;padding:0;border-radius:10px;transition:background .15s}.ag-col.can:hover{background:rgba(255,255,255,.12)}
.cell{display:block;aspect-ratio:1;border-radius:50%;background:#0b1226;box-shadow:inset 0 4px 8px rgba(0,0,0,.6)}.cell.p1,.cell.p2{box-shadow:inset 0 -4px 6px rgba(0,0,0,.3),0 0 0 2px rgba(255,255,255,.08)}.cell.drop{animation:cdrop .5s cubic-bezier(.4,0,.6,1.2)}@keyframes cdrop{from{transform:translateY(calc(var(--d)*-110%));opacity:.4}}.cell.hit{animation:chit .7s ease-in-out infinite alternate}@keyframes chit{to{transform:scale(1.14);box-shadow:0 0 18px 4px #fff}}
/* wordle */
.ag-wbody{display:flex;gap:18px;align-items:flex-start;justify-content:center;width:100%}.ag-wgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:min(300px,62vw)}.wt{aspect-ratio:1;display:grid;place-items:center;border:2px solid var(--raised2);border-radius:8px;font:800 24px var(--display);text-transform:uppercase;transition:background .3s,border-color .3s}.wt.f{border-color:var(--dim)}.wt.pop{animation:wpop .12s}@keyframes wpop{50%{transform:scale(1.12)}}.wt.shake{animation:wsh .4s}@keyframes wsh{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.wt.flip{animation:wflip .5s ease forwards}@keyframes wflip{50%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}.wt.sg,.or i.sg,.kr .k3{background:#2f9e6a;border-color:#2f9e6a;color:#fff}.wt.sy,.or i.sy,.kr .k2{background:#c99a1d;border-color:#c99a1d;color:#fff}.wt.sx,.or i.sx,.kr .k1{background:#303a52;border-color:#303a52;color:#9fb0c8}.wt.jump{animation:wj .5s}@keyframes wj{40%{transform:translateY(-12px)}}
.ag-wopp{min-width:70px}.ag-wopp small{display:block;color:var(--dim);margin-bottom:6px}.or{display:flex;gap:3px;margin-bottom:3px}.or i{width:12px;height:12px;border-radius:3px;background:var(--raised)}
.ag-kb{display:flex;flex-direction:column;gap:6px;align-items:center;width:100%}.kr{display:flex;gap:5px}.kr button{min-width:min(34px,7.4vw);height:46px;padding:0 4px;border:0;border-radius:8px;background:var(--raised2);font-weight:800;text-transform:uppercase;transition:background .3s}.kr button.wide{min-width:min(54px,12vw);font-size:12px}.kr button:active{transform:scale(.94)}
.ag-word{position:absolute;left:50%;top:60px;transform:translateX(-50%);background:var(--panel);border:1px solid var(--line);padding:6px 14px;border-radius:99px;z-index:7;animation:ari .4s}
/* type racer */
.ag-lanes{position:relative;width:100%;display:flex;flex-direction:column;gap:8px}.lane{position:relative;height:36px;background:var(--bg2);border-radius:10px;border:1px solid var(--line);background-image:repeating-linear-gradient(90deg,transparent 0 22px,rgba(255,255,255,.05) 22px 44px)}.car{position:absolute;left:0;top:3px;width:34px;height:28px;border-radius:9px 14px 14px 9px;transition:left .35s linear;transform:translateX(0)}.lane.me .car{background:linear-gradient(135deg,#4f6bff,#8ea0ff)}.lane.op .car{background:linear-gradient(135deg,#f59e0b,#fcd34d)}.car:after{content:"";position:absolute;right:4px;top:6px;width:9px;height:16px;border-radius:4px;background:rgba(255,255,255,.55)}
.ag-tstat{display:flex;gap:30px}.ag-tstat div{text-align:center}.ag-tstat b{display:block;font:800 26px var(--display)}.ag-tstat small{color:var(--dim)}
.ag-text{width:100%;font:500 19px/1.7 ui-monospace,Menlo,Consolas,monospace;color:#6b7a95;padding:14px;background:rgba(0,0,0,.2);border-radius:14px;cursor:text;user-select:none}.ag-text .ok{color:#e9eff6}.ag-text .bad{color:#fff;background:rgba(255,84,112,.5);border-radius:3px}.ag-text .cur{border-left:2px solid #4f6bff;margin-left:-2px;animation:cb 1s steps(1) infinite}@keyframes cb{50%{border-color:transparent}}
.ag-hidden{position:absolute;opacity:0;pointer-events:none;left:-999px;width:1px}
/* color find */
.ag-ctime{width:100%;position:relative;height:30px;background:var(--bg2);border-radius:99px;overflow:hidden}.ag-ctime i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#c084fc,#6d28d9);width:100%;transition:width .1s linear}.ag-ctime b{position:relative;display:block;text-align:center;line-height:30px}
.ag-cgrid{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:8px;width:min(400px,86vw);aspect-ratio:1}.ct{border:0;border-radius:14px;animation:ctin .3s both;transition:transform .12s}.ct:active{transform:scale(.93)}.ct.good{animation:good .35s}.ct.bad{animation:wsh .4s;outline:3px solid var(--loss)}.ag-cgrid.lock{opacity:.55;pointer-events:none}@keyframes ctin{from{transform:scale(.6);opacity:0}}@keyframes good{50%{transform:scale(1.18);filter:brightness(1.4)}}
.ag-chint{color:var(--dim);font-size:13px}
/* sudoku */
.ag-sinfo{display:flex;gap:20px;color:var(--muted);font-weight:800}.ag-sgrid{display:grid;grid-template-columns:repeat(9,1fr);width:min(420px,94vw);border:3px solid #4f6bff;border-radius:10px;overflow:hidden;background:var(--bg2)}
.sc{position:relative;aspect-ratio:1;display:grid;place-items:center;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#0e1730;font:700 clamp(15px,4.4vw,22px) var(--ui);color:#8fb0ff;padding:0;transition:background .12s}.sc.rb{border-right:2px solid #4f6bff}.sc.bb{border-bottom:2px solid #4f6bff}.sc.giv{color:#e9eff6;background:#131d3a}.sc.rel{background:#17234a}.sc.same{background:#26356f}.sc.sel{background:#34479a}.sc.pop span{animation:wpop .3s}.sc.wrong{animation:wsh .4s;background:rgba(255,84,112,.4)}
.sc em{position:absolute;inset:2px;font:600 9px/1 var(--ui);font-style:normal;color:var(--muted);word-break:break-all;letter-spacing:1px;pointer-events:none}
.ag-stools{display:flex;gap:8px}.ag-stools button{background:var(--raised);border:0;border-radius:10px;padding:8px 14px;font-weight:700}.ag-stools button.on{background:#4f6bff}.ag-pad{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;width:min(420px,94vw)}.ag-pad button{height:46px;border:0;border-radius:10px;background:var(--raised2);font:800 18px var(--ui)}.ag-pad button:active{transform:scale(.92)}
/* canvases */
.ag-cv{position:relative;width:min(100%,720px)}.ag-cv canvas{width:100%;height:auto;border-radius:16px;touch-action:manipulation;display:block;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.4)}.ag-score{position:absolute;top:10px;left:50%;transform:translateX(-50%);font:800 40px var(--display);color:#fff;-webkit-text-stroke:3px rgba(0,0,0,.45);paint-order:stroke fill;pointer-events:none}.ag-tip{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.5);padding:6px 12px;border-radius:99px;font-size:12px;transition:opacity .4s;pointer-events:none;white-space:nowrap}.ag.shake{animation:wsh .35s}
.ag-tw{display:flex;gap:12px;align-items:flex-start;justify-content:center}.ag-tw>canvas{width:min(240px,50vw);height:auto;aspect-ratio:1/2;border-radius:10px;box-shadow:0 0 0 2px rgba(255,255,255,.1)}.ag-tside{display:flex;flex-direction:column;gap:6px}.ag-tside small{color:var(--dim);font-size:10px;font-weight:800;letter-spacing:.1em}.ag-tside canvas{border-radius:10px;width:72px;height:auto}.ag-tstat2 b{display:block;font:800 18px var(--display);margin-bottom:4px}
.ag-tpad{display:none;gap:8px}.ag-tpad button{width:54px;height:50px;border:0;border-radius:12px;background:var(--raised2);font:800 18px var(--ui);touch-action:manipulation}
/* chat */
.ar-chat{position:fixed;right:18px;bottom:18px;z-index:90;width:340px;max-width:calc(100vw - 24px);height:440px;max-height:calc(100vh - 100px);background:var(--panel);border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:arp .3s cubic-bezier(.2,1.4,.4,1)}
.ar-ch-h{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.ar-ch-h b{flex:1}.ar-ch-note{padding:6px 12px;font-size:11.5px;color:var(--gold);background:rgba(255,194,75,.08)}.ar-ch-b{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:6px}.ar-m{max-width:80%;align-self:flex-start;background:var(--raised);padding:7px 11px;border-radius:14px 14px 14px 4px;word-break:break-word;animation:ari .2s}.ar-m.me{align-self:flex-end;background:#3a4fe0;border-radius:14px 14px 4px 14px}.ar-m small{display:block;font-size:10px;opacity:.6}
.ar-ch-f{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.ar-ch-f input{margin:0}
@media (max-width:1000px){.page.ar{grid-template-columns:1fr}.ar-panel{position:static;max-height:none;display:none}.page.ar.showp .ar-panel{display:flex}.ar-fab{display:block;position:fixed;right:14px;bottom:78px;z-index:50;background:var(--raised2);border:1px solid var(--line);border-radius:99px;padding:11px 16px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.45)}}
@media (max-width:700px){.ar-stage{grid-template-columns:1fr}.ar-art{min-height:170px}.ar-art svg{width:90px;height:90px}.ar-grid{grid-template-columns:repeat(2,1fr)}.ar-tile{min-height:140px}.ag-tpad{display:flex;flex-wrap:wrap;justify-content:center}.ag-tside canvas{width:56px}.ar-play{padding:10px 8px 48px}.ag-tw{gap:6px}.ar-chat{right:0;bottom:0;left:0;width:auto;max-width:none;border-radius:18px 18px 0 0;height:70vh}.ag-text{font-size:16px}.ag-cd b{font-size:70px}}
@media (prefers-reduced-motion:reduce){.ar-art svg,.cell.drop,.ag-cd b.pop,.ar-q{animation:none}}

/* ================= Poker ================= */
.ag-pk{width:100%;max-width:900px;margin:0 auto;gap:12px;align-items:stretch;--cw:clamp(40px,7.4vw,62px)}
.pk-info{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:700;color:var(--muted);padding:0 4px}
.pk-info span{background:rgba(255,255,255,.05);border:1px solid var(--line);padding:5px 11px;border-radius:99px}
.pk-info .pk-lv{color:#cbbfff}.pk-info.flash span{animation:pkFlash 1.4s ease}
@keyframes pkFlash{0%,60%{box-shadow:0 0 0 2px #ffc857,0 0 22px rgba(255,200,87,.55);color:#ffe29a}100%{box-shadow:none}}
.pk-felt{position:relative;width:100%;aspect-ratio:16/9.6;min-height:400px;border-radius:999px/42%;background:radial-gradient(ellipse at 50% 45%,#13805d 0%,#0b5a43 52%,#063326 100%);border:10px solid #151a3d;box-shadow:0 0 0 2px #3a3f86,0 0 50px rgba(139,123,255,.28),inset 0 0 60px rgba(0,0,0,.45),inset 0 0 0 2px rgba(255,255,255,.06);overflow:hidden}
.pk-felt::before{content:"";position:absolute;inset:7%;border-radius:999px/40%;border:1.5px solid rgba(255,255,255,.1);pointer-events:none}
.pk-seat{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;z-index:3}
.pk-seat.op{top:3.5%;flex-direction:column}.pk-seat.me{bottom:3.5%;flex-direction:column-reverse}
.pk-who{display:flex;align-items:center;gap:9px;background:rgba(8,10,28,.82);border:1px solid rgba(160,150,255,.28);border-radius:99px;padding:5px 14px 5px 6px;position:relative;transition:box-shadow .25s,border-color .25s}
.pk-who b{display:block;font-size:13px;line-height:1.1;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pk-who small{font-weight:800;color:#ffd77a;font-size:13px}
.pk-seat.turn .pk-who{border-color:#9c8dff;box-shadow:0 0 0 2px rgba(156,141,255,.7),0 0 26px rgba(139,123,255,.55)}
.pk-seat.won .pk-who{border-color:#ffc857;box-shadow:0 0 0 2px #ffc857,0 0 32px rgba(255,200,87,.6)}.pk-seat.lost .pk-hand{opacity:.82}
.pk-d{position:absolute;right:-6px;top:-8px;width:22px;height:22px;border-radius:50%;background:#fff;color:#14123f;font-weight:900;font-size:12px;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.pk-tm{width:min(150px,100%);height:4px;border-radius:4px;background:rgba(255,255,255,.12);overflow:hidden;margin:0 auto}
.pk-tm i{display:block;height:100%;width:0;background:linear-gradient(90deg,#4de6ff,#8b7bff);transition:width .2s linear}.pk-tm.low i{background:#ff5470}
.pk-hand{display:flex;gap:calc(var(--cw)*-.12);min-height:calc(var(--cw)*1.4);justify-content:center}.pk-hand.folded .pk-card{opacity:.35;filter:grayscale(.6)}
.pk-hn{font-size:12px;font-weight:800;color:#ffe29a;min-height:15px;text-shadow:0 1px 3px #000}
.pk-say{font-size:12px;font-weight:700;color:#e9e6ff;background:rgba(8,10,28,.6);border-radius:99px;padding:2px 10px;opacity:0;min-height:20px}.pk-say.on{animation:pkSay 2.6s ease forwards}
@keyframes pkSay{0%{opacity:0;transform:translateY(5px)}12%,80%{opacity:1;transform:none}100%{opacity:.65}}
.pk-seat.op .pk-tm{order:-1}.pk-seat.me .pk-tm{order:5}
.pk-card{width:var(--cw);aspect-ratio:5/7;border-radius:calc(var(--cw)*.14);background:linear-gradient(160deg,#fff,#e9ebf7);color:#14163a;position:relative;box-shadow:0 4px 12px rgba(0,0,0,.45),inset 0 0 0 1px rgba(0,0,0,.08);font-weight:900;user-select:none}
.pk-card.red{color:#d42a45}.pk-card b{position:absolute;left:8%;top:5%;font-size:calc(var(--cw)*.36);line-height:1}
.pk-card em{position:absolute;left:9%;top:calc(var(--cw)*.4);font-style:normal;font-size:calc(var(--cw)*.28);line-height:1}
.pk-card span{position:absolute;right:8%;bottom:4%;font-size:calc(var(--cw)*.62);line-height:1;opacity:.92}
.pk-card.back{background:repeating-linear-gradient(45deg,#2b1c7c 0 5px,#3a2aa0 5px 10px);border:3px solid #e6e1ff}.pk-card.back i{position:absolute;inset:22%;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:radial-gradient(circle,#8b7bff,#2b1c7c)}
.pk-card.deal{animation:pkDeal .5s cubic-bezier(.2,.9,.3,1.2) backwards}.pk-card.flip{animation:pkFlip .55s cubic-bezier(.2,.8,.3,1) backwards}
.pk-card.d1{animation-delay:.12s}.pk-card.d2{animation-delay:.24s}
@keyframes pkDeal{from{opacity:0;transform:translateY(-50px) scale(.5) rotate(-12deg)}}
@keyframes pkFlip{from{opacity:.2;transform:perspective(500px) rotateY(90deg) scale(.9)}}
.pk-card.hl{box-shadow:0 0 0 3px #ffc857,0 0 22px rgba(255,200,87,.8),0 6px 14px rgba(0,0,0,.5);transform:translateY(-6px);transition:transform .3s}.pk-card.dim{opacity:.5;filter:saturate(.6)}
.pk-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:calc(var(--cw)*.2);width:max-content;max-width:96%;z-index:2}
.pk-pot{background:rgba(8,10,28,.78);border:1px solid rgba(255,200,87,.35);border-radius:99px;padding:5px 15px;font-weight:800;color:#ffd77a;font-size:14px;display:flex;align-items:center;gap:7px}.pk-pot b{color:#cfc9ff;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.pk-chips{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe6a0,#e79a12);box-shadow:0 0 0 2px #7a4b00 inset,0 2px 0 #7a4b00}
.pk-board{display:flex;gap:calc(var(--cw)*.14);min-height:calc(var(--cw)*1.4);padding:0;position:relative;min-width:calc(var(--cw)*5 + var(--cw)*.56)}
.pk-board::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 var(--cw),transparent var(--cw) calc(var(--cw)*1.14));border-radius:8px;mask:none;-webkit-mask:none;z-index:-1}
.pk-msg{min-height:34px;font-weight:800;font-size:15px;text-align:center;text-shadow:0 1px 4px #000;color:#e9e6ff}.pk-msg small{display:block;font-size:12px;color:#ffe29a}
.pk-msg.res{background:rgba(8,10,28,.8);border-radius:14px;padding:4px 16px;animation:pkPop .5s cubic-bezier(.2,1.4,.4,1)}.pk-msg.good{color:#63f2b0;box-shadow:0 0 0 1.5px rgba(99,242,176,.5)}.pk-msg.bad{color:#ff8296}
@keyframes pkPop{from{transform:scale(.6);opacity:0}}
.pk-bet{position:absolute;left:calc(50% + clamp(96px,19vw,170px));display:flex;align-items:center;gap:7px;font-weight:800;color:#ffe29a;background:rgba(8,10,28,.7);border-radius:99px;padding:3px 12px 3px 4px;font-size:13px;z-index:3}
.pk-bet:empty{display:none}.pk-bet.op{top:17%}.pk-bet.me{bottom:17%}.pk-bet.pop{animation:pkChip .45s cubic-bezier(.2,1.5,.4,1)}
@keyframes pkChip{from{transform:translateY(24px) scale(.5);opacity:0}}
.pk-chip{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,#fff 0 22%,transparent 23%),conic-gradient(#d42a45 0 25%,#fff 0 30%,#d42a45 0 55%,#fff 0 60%,#d42a45 0 85%,#fff 0 90%,#d42a45);box-shadow:0 0 0 2px #7a1022 inset}
.pk-float{position:absolute;left:50%;top:-4px;font-weight:900;font-size:26px;color:#ffd77a;text-shadow:0 2px 10px rgba(0,0,0,.8);animation:pkFloat 2.1s ease forwards;pointer-events:none;z-index:6}
@keyframes pkFloat{from{opacity:0;transform:translate(-50%,24px) scale(.6)}20%{opacity:1;transform:translate(-50%,-6px) scale(1.2)}to{opacity:0;transform:translate(-50%,-52px)}}
.pk-act{min-height:104px;display:flex;flex-direction:column;gap:9px;justify-content:center}
.pk-wait{text-align:center;color:var(--muted);font-weight:700;padding:16px;background:rgba(255,255,255,.03);border:1px dashed var(--line);border-radius:14px}
.pk-row{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}
.pk-b{height:50px;border-radius:13px;font-weight:900;font-size:15px;color:#fff;display:flex;align-items:center;justify-content:center;gap:7px;transition:transform .12s,filter .15s;position:relative}
.pk-b:active{transform:translateY(2px)}.pk-b:hover{filter:brightness(1.1)}.pk-b kbd{font:700 10px var(--ui);background:rgba(255,255,255,.18);border-radius:5px;padding:1px 5px}
.pk-b.fold{background:linear-gradient(180deg,#4a2335,#2d1423);color:#ff9bae;border:1px solid rgba(255,84,112,.35)}
.pk-b.call{background:linear-gradient(135deg,#9c8dff,#6a5af0 55%,#4c7dff);box-shadow:0 3px 0 #3b2fb0}
.pk-b.raise{background:linear-gradient(135deg,#2fe39a,#12a56e);color:#04281a;box-shadow:0 3px 0 #0b6b47;padding:0 18px;white-space:nowrap}.pk-b.raise.allin{background:linear-gradient(135deg,#ffc857,#ff8a1c);box-shadow:0 3px 0 #a85a00}
.pk-pre{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.pk-pre button{height:34px;border-radius:9px;background:rgba(255,255,255,.07);border:1px solid var(--line);font-weight:800;font-size:12.5px;color:#d8d4ff}.pk-pre button:hover{background:rgba(139,123,255,.25)}.pk-pre .all{color:#ffd77a}
.pk-sl{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-top:8px}.pk-sl input{width:100%;accent-color:#8b7bff;height:30px}
@media (max-width:700px){
  .ag-pk{--cw:clamp(38px,11.5vw,54px);gap:8px}
  .pk-felt{aspect-ratio:auto;min-height:470px;border-radius:34px;border-width:7px}.pk-felt::before{border-radius:26px;inset:5%}
  .pk-seat.op{top:2.5%}.pk-seat.me{bottom:2.5%}.pk-who b{max-width:86px}
  .pk-bet{left:calc(50% + 86px);font-size:12px}.pk-bet.op{top:9%}.pk-bet.me{bottom:9%}
  .pk-board{min-width:0}.pk-pot{font-size:13px;padding:4px 12px}.pk-msg{font-size:14px}
  .pk-b{height:48px}.pk-b kbd{display:none}.pk-row{grid-template-columns:1fr 1.4fr}.pk-sl{grid-template-columns:1fr}.pk-b.raise{width:100%}
  .pk-pre button{font-size:11.5px;padding:0}
}
@media (prefers-reduced-motion:reduce){.pk-card.deal,.pk-card.flip,.pk-say.on,.pk-float,.pk-bet.pop{animation-duration:.01s}}

/* poker layout fixes */
.ag-pk .pk-info{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%}
.ag-pk .pk-info span{display:inline-block!important;width:auto!important;flex:none}
.pk-felt{min-height:600px}
.pk-seat .pk-say{position:absolute;right:calc(50% + 104px);top:6px;white-space:nowrap;text-align:right;min-height:0}
.pk-seat.op .pk-say{top:8px}.pk-seat.me .pk-say{top:auto;bottom:8px}
.pk-center{gap:calc(var(--cw)*.16)}
@media (max-width:700px){
  .ag-pk{--cw:clamp(36px,10.4vw,48px)}.ag-pk .pk-info{font-size:11.5px}.ag-pk .pk-info span{padding:4px 9px}
  .pk-felt{min-height:455px}
  .pk-seat .pk-say{right:calc(50% + 72px);font-size:11px;padding:2px 8px}
  .pk-who{padding:4px 11px 4px 5px;gap:7px}.pk-who b{font-size:12px}.pk-who small{font-size:12px}
  .pk-bet{left:calc(50% + 74px)}.pk-bet.op{top:8.5%}.pk-bet.me{bottom:8.5%}
}
/* ---- poker: seats placed around the table (2-6 players) ---- */
.pk-seat.pos{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);flex-direction:column;align-items:center}
.pk-seat.pos.m{flex-direction:column-reverse}
.pk-seat.pos.o .pk-tm{order:5}.pk-seat.pos.m .pk-tm{order:5}
.pk-seat.pos .pk-say{right:auto;left:50%;top:auto;bottom:100%;transform:translateX(-50%);margin-bottom:2px;text-align:center}
.pk-seat.pos.m .pk-say{bottom:auto;top:100%;margin:2px 0 0}
.pk-bet.pos{bottom:auto;right:auto;transform:translate(-50%,-50%)}
.pk-seat.out{opacity:.38;filter:grayscale(.7)}.pk-seat.fold .pk-who{opacity:.6}.pk-seat.away .pk-who small{color:#ffb86b}
.pk-d{min-width:22px;padding:0 5px;font-size:11px;font-weight:900}.pk-d.dl{background:#ffd75a;color:#2a1c00}
.ag-pk.n3 .pk-felt,.ag-pk.n4 .pk-felt{min-height:620px}.ag-pk.n5 .pk-felt,.ag-pk.n6 .pk-felt{min-height:680px}
.ag-pk.n4 .pk-seat.o .pk-card,.ag-pk.n5 .pk-seat.o .pk-card,.ag-pk.n6 .pk-seat.o .pk-card{width:34px;height:48px;font-size:12px}
.ag-pk.n3 .pk-seat.o .pk-card{width:40px;height:56px}
@media(max-width:700px){
  .ag-pk.n3 .pk-felt,.ag-pk.n4 .pk-felt{min-height:560px}.ag-pk.n5 .pk-felt,.ag-pk.n6 .pk-felt{min-height:620px}
  .pk-seat.o .pk-who{padding:4px 6px;gap:5px}.pk-seat.o .pk-who b{max-width:56px;font-size:11px}.pk-seat.o .pk-who small{font-size:10px}.pk-seat.o .pk-who .av,.pk-seat.o .pk-who>:first-child{transform-origin:left center}
  .ag-pk.n3 .pk-seat.o .pk-card,.ag-pk.n4 .pk-seat.o .pk-card,.ag-pk.n5 .pk-seat.o .pk-card,.ag-pk.n6 .pk-seat.o .pk-card{width:28px;height:40px;font-size:10px}
  .pk-seat.pos .pk-say{font-size:10px;padding:1px 6px}
  .pk-bet.pos{font-size:11px;padding:2px 8px 2px 3px}
}
/* detailed game covers */
.ar-tile .ar-cov{position:absolute;inset:0;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ar-tile:not(.soon):hover .ar-cov{transform:scale(1.07)}
.ar-tile{min-height:190px}.ar-tile .ar-tg{background:linear-gradient(180deg,transparent 42%,rgba(4,6,24,.82))}
.ar-tile.soon .ar-cov{filter:grayscale(.55) brightness(.7)}
@media(max-width:700px){.ar-tile{min-height:150px}}
.ar-tile .ar-cov{inset:10px 8px auto 8px;width:calc(100% - 16px);height:calc(100% - 64px);filter:drop-shadow(0 8px 10px rgba(0,0,0,.35))}
.ar-tile .ar-tg{background:linear-gradient(180deg,transparent 55%,rgba(4,6,24,.55))}
/* 8 ball */
.ag-pool{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:920px;margin:0 auto}
.ag-pool .ag-strip{width:100%}
.pl-stat{min-height:24px;font-weight:800;font-size:14px;text-align:center;color:var(--muted)}.pl-stat.me{color:#7CF0B2}.pl-stat.op{color:#c7cdf0}.pl-foul{color:#ff8a98;margin-left:6px}
.pl-tbl{width:100%;display:grid;place-items:center}.pl-tbl canvas{width:100%;max-width:900px;height:auto;border-radius:22px;box-shadow:0 20px 50px rgba(0,0,0,.5);cursor:crosshair;-webkit-user-select:none;user-select:none}
.ag-pool.vert .pl-tbl canvas{max-width:430px}
.pl-tray{display:flex;flex-direction:column;gap:6px;width:100%;max-width:640px;min-height:20px}.pl-open{text-align:center;color:var(--muted);font-size:12.5px}
.pl-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:center}.pl-row small{width:62px;color:var(--muted);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.08em;text-align:right;margin-right:4px}
.pb{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:900;color:#111;background:var(--c);box-shadow:inset -2px -3px 5px rgba(0,0,0,.35),inset 2px 2px 4px rgba(255,255,255,.4)}
.pb.st{background:linear-gradient(180deg,#f4f4ee 0 22%,var(--c) 22% 78%,#f4f4ee 78%)}.pb:nth-child(8):not(.st){color:#fff}.pb.gone{opacity:.22;filter:grayscale(.8)}
.pl-ctl{display:flex;align-items:center;gap:10px;width:100%;max-width:640px}.pl-pw{flex:1;display:flex;flex-direction:column;gap:2px}.pl-pw small{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.pl-pw input{width:100%;accent-color:#34d399}
.ag-pool:not(.can) .pl-ctl{opacity:.5}.pl-hint{font-size:12px;color:var(--muted);text-align:center}
@media(max-width:560px){.pl-row small{width:48px}.pb{width:20px;height:20px}}
/* lobby / pre-lobby art panel */
.ar-art{isolation:isolate;min-height:300px;background:radial-gradient(120% 90% at 50% 8%,color-mix(in srgb,var(--b) 70%,transparent),transparent 62%),radial-gradient(80% 60% at 85% 100%,color-mix(in srgb,var(--a) 85%,#000),transparent 70%),linear-gradient(155deg,var(--a),#070b1c)}
.ar-art::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.16) 1px,transparent 1.5px) 0 0/22px 22px;-webkit-mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent);mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent)}
.ar-art::after{content:"";position:absolute;left:50%;top:46%;width:70%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;z-index:-1;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 65%);animation:arpulse 5s ease-in-out infinite}
@keyframes arpulse{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.94)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}
.ar-hero{position:absolute;inset:5% 6% 24%;display:grid;place-items:center;animation:arf 5s ease-in-out infinite}
.ar-hero .ar-cov{width:100%;height:100%;filter:drop-shadow(0 18px 24px rgba(0,0,0,.5))}
.ar-hero .ar-ti svg{width:140px;height:140px}
.ar-art h2{z-index:2}.ar-artl{z-index:1}
.ar-tag{position:absolute;left:18px;bottom:46px;margin:0;z-index:2;font-size:13px;color:rgba(255,255,255,.78);text-shadow:0 2px 8px rgba(0,0,0,.6)}
.ar-art h2{bottom:12px}
.ar-sp{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;opacity:.0;z-index:0;animation:arsp 6s linear infinite}
.ar-sp.s1{left:12%;top:70%}.ar-sp.s2{left:28%;top:80%;animation-delay:-1.5s;width:4px;height:4px}.ar-sp.s3{left:62%;top:76%;animation-delay:-3s}.ar-sp.s4{left:80%;top:68%;animation-delay:-4.2s;width:4px;height:4px}.ar-sp.s5{left:46%;top:84%;animation-delay:-2.2s;width:3px;height:3px}
@keyframes arsp{0%{transform:translateY(0);opacity:0}15%{opacity:.8}100%{transform:translateY(-190px);opacity:0}}
@media (max-width:700px){.ar-art{min-height:250px}.ar-hero{inset:7% 8% 27%}.ar-hero .ar-ti svg{width:96px;height:96px}.ar-tag{font-size:12px;bottom:42px}}
@media (prefers-reduced-motion:reduce){.ar-hero,.ar-art::after,.ar-sp{animation:none}}
.ar-art .ar-hero .ar-cov{width:100%!important;height:100%!important;animation:none}
/* open lobbies list + spectating */
.ar-ol-h{margin:10px 0 6px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ar-ol{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ar-ol small{flex:1 1 140px;min-width:0}
.ar-ol.own{border-color:var(--accent);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent)}
.ar-oa{display:flex;gap:6px;margin-left:auto}.ar-btn.ar-x{border-color:rgba(255,90,110,.5);color:#ff8a98}.ar-btn.ar-w{opacity:.95}
.ar-spec>*:not(.ar-specbar):not(.ar-specend){pointer-events:none;user-select:none}
.ar-specbar,.ar-specend{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:8px;border-radius:10px;background:var(--raised);font-size:13px;font-weight:700}
.ar-specbar i{width:8px;height:8px;border-radius:50%;background:#ff4d6a;animation:arpulse2 1.4s ease-in-out infinite}.ar-specbar a,.ar-specend a{margin-left:auto;color:var(--accent)}
.ar-specend{margin:10px 0 0;background:color-mix(in srgb,var(--accent) 20%,var(--raised))}
@keyframes arpulse2{50%{opacity:.3}}
@media (max-width:560px){.ar-oa{width:100%}.ar-oa .ar-btn{flex:1}}
