:root{
  --bg1:#0c1621;--bg2:#0a1119;--panel:#141d28;--panel2:#1a2532;--line:#233240;
  --red:#c8352a;--red2:#e04434;--gold:#e8b93c;--txt:#e7edf3;--dim:#8497a8;--mute:#54677a;--green:#8fd39a;
  --cw:clamp(46px,13.2vw,66px);--ch:calc(var(--cw)*1.41);
  --mcw:calc(var(--cw)*.46);--mch:calc(var(--mcw)*1.41);
  --suitR:#c0392b;--suitB:#1b2530;
  --u-r:#d8342b;--u-y:#e9b420;--u-g:#2d9a4e;--u-b:#2567c8;--u-w:#1a1f27;
  color-scheme:dark;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Rubik',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--txt);overflow:hidden;position:fixed;inset:0;
  user-select:none;-webkit-user-select:none;touch-action:manipulation;
  background:radial-gradient(120% 80% at 50% 0%,#16222f 0%,var(--bg1) 55%,var(--bg2) 100%)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle at 15% 20%,rgba(255,255,255,.015) 0 1px,transparent 1px),
    radial-gradient(circle at 65% 70%,rgba(0,0,0,.25) 0 1px,transparent 1px);background-size:9px 9px,13px 13px}
[hidden]{display:none!important}
.script{font-family:'Pacifico',cursive;font-weight:400}
button{font:inherit;color:inherit}
input{font:inherit;color:var(--txt)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

#app{position:relative;height:100%;max-width:560px;margin:0 auto}
.screen{position:absolute;inset:0;display:flex;flex-direction:column}
#home{overflow-y:auto;padding:calc(env(safe-area-inset-top) + 22px) 16px calc(env(safe-area-inset-bottom) + 20px);gap:16px}
.brand{text-align:center;display:flex;flex-direction:column;gap:2px}
.eyebrow,.subhead{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:2.5px}
.subhead{margin-top:6px}
.brand h1{font-size:50px;line-height:1.15;color:var(--txt);text-shadow:0 4px 0 rgba(200,53,42,.35)}
.nameRow{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 14px}
.nameRow span{font-size:13px;color:var(--dim);white-space:nowrap}
.nameRow input{flex:1;min-width:0;background:transparent;border:0;outline:0;font-size:16px;font-weight:500;padding:8px 4px}

.games{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gtile{position:relative;border:1px solid var(--line);border-radius:14px;background:linear-gradient(170deg,var(--panel2),var(--panel));
  padding:12px;min-height:150px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;cursor:pointer;text-align:left;overflow:hidden;
  transition:transform .12s,border-color .15s}
.gtile:hover{border-color:#34495c}
.gtile:active{transform:scale(.98)}
.gtile b{font-size:19px;font-weight:700;position:relative;z-index:1}
.gtile small{color:var(--dim);font-size:12.5px;position:relative;z-index:1}
.gtile .art{position:absolute;right:6px;top:8px;height:66px;width:92px;pointer-events:none}
.gtile.wide{grid-column:span 2;min-height:100px}
.gtile.wide .art{right:14px}

.joinRow{display:flex;gap:8px}
.joinRow input{width:110px;text-align:center;letter-spacing:6px;font-weight:700;font-size:18px;background:var(--panel);border:1px solid var(--line);border-radius:12px;text-transform:uppercase;outline:0}
.joinRow input:focus{border-color:var(--gold)}
.joinRow .btn{flex:1;max-width:none}
.roomList{display:flex;flex-direction:column;gap:8px}
.roomItem{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer}
.roomItem .rc{font-weight:700;letter-spacing:3px;color:var(--gold);font-variant-numeric:tabular-nums}
.roomItem .rt{flex:1}
.roomItem .rs{font-size:12px;color:var(--dim)}
.empty{color:var(--mute);font-size:14px;text-align:center;padding:10px 0}
.foot{margin-top:auto;text-align:center;font-size:12px;color:var(--mute)}

.btn{height:48px;border-radius:13px;border:1px solid var(--line);font-weight:700;font-size:16px;color:#fff;padding:0 16px;
  background:linear-gradient(180deg,#2a3947,#1b2731);cursor:pointer;transition:transform .06s,filter .15s;flex:1;max-width:220px}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(180deg,var(--red2),var(--red));border-color:#7d1f18}
.btn.gold{background:linear-gradient(180deg,#f0c653,#c99a22);border-color:#8a6a12;color:#231a05}
.btn.ghost{background:transparent}
.btn.small{height:36px;font-size:14px;flex:0 0 auto;align-self:center}
.btn:disabled{opacity:.35;filter:grayscale(.4);cursor:default}
.iconbtn{width:42px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--red2);font-size:19px;font-weight:700;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.chip{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:4px 12px;display:flex;align-items:center;gap:6px;font-size:14px;color:var(--dim);white-space:nowrap}
.chip b{color:var(--txt)}

/* setup sheet */
.sheet{position:absolute;inset:0;z-index:60;background:rgba(6,10,15,.7);display:flex;align-items:flex-end;backdrop-filter:blur(3px)}
.sheetCard{width:100%;max-height:92%;overflow-y:auto;background:linear-gradient(180deg,#172330,#111a24);border:1px solid var(--line);border-bottom:0;
  border-radius:20px 20px 0 0;padding:18px 16px calc(env(safe-area-inset-bottom) + 18px);display:flex;flex-direction:column;gap:18px;animation:up .22s ease}
@keyframes up{from{transform:translateY(40px);opacity:0}}
.sheetHead{display:flex;justify-content:space-between;align-items:center}
.sheetHead h2{font-size:30px}
.optBlock{display:flex;flex-direction:column;gap:7px}
.optLabel{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:2px}
.pills{display:flex;gap:7px;flex-wrap:wrap}
.pill{padding:8px 14px;border-radius:22px;border:1px solid var(--line);background:var(--panel);color:var(--dim);font-weight:500;cursor:pointer;font-size:14.5px}
.pill.on{background:linear-gradient(180deg,var(--red2),var(--red));color:#fff;border-color:#7d1f18}
.actionsCol{display:flex;flex-direction:column;gap:8px;align-items:stretch;margin-top:4px}
.actionsCol .btn{max-width:none;flex:0 0 48px}

/* lobby */
#lobby{padding:0 16px calc(env(safe-area-inset-bottom) + 16px);gap:14px;overflow-y:auto}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(env(safe-area-inset-top) + 8px) 0 8px;min-height:52px}
#table .topbar{padding-left:12px;padding-right:12px}
.topbar .side{display:flex;align-items:center;gap:8px;min-width:0}
.codeBig{text-align:center;display:flex;flex-direction:column;gap:2px}
.codeBig span{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:2px}
.codeBig b{font-size:54px;letter-spacing:10px;color:var(--gold);font-variant-numeric:tabular-nums;line-height:1.1}
.lobbyOpts{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.lobbyOpts .chip{font-size:12.5px}
.seats{display:flex;flex-direction:column;gap:8px}
.seat{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:56px}
.seat .nm{flex:1;font-weight:500}
.seat .tag{font-size:12px;color:var(--dim)}
.seat.emptySeat{border-style:dashed;background:transparent}
.seat .btn{height:34px;font-size:13px;flex:0 0 auto}
.hint{color:var(--dim);font-size:13.5px;text-align:center;line-height:1.45}
#startBtn{max-width:none;flex:0 0 48px}

/* avatars */
.ava{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;color:#0c1621;flex:0 0 auto;position:relative}
.ava.bot::after{content:"🤖";position:absolute;right:-6px;bottom:-5px;font-size:12px}
.ava.off{filter:grayscale(1) brightness(.6)}

/* ===== TABLE ===== */
.opps{display:flex;justify-content:center;gap:6px;padding:0 8px;flex-wrap:nowrap;z-index:3}
.opp{flex:1 1 0;min-width:0;max-width:124px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 5px;border-radius:12px;
  border:1px solid transparent;position:relative;transition:border-color .2s,background .2s}
.opp.turn{border-color:var(--gold);background:rgba(232,185,60,.07);box-shadow:0 0 16px rgba(232,185,60,.18)}
.opp.gone{opacity:.45}
.opp .on{font-size:12px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opp .os{font-size:11px;color:var(--dim);min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.opp .os b{color:var(--gold);font-weight:700}
.opp .os.hot{color:var(--red2);font-weight:700}
.opp .mini{display:flex;justify-content:center;height:calc(var(--mch) + 2px);align-items:flex-end}
.opp .mini .pcard,.opp .mini .ucard,.opp .mini .tile{margin-left:calc(var(--mcw) * -0.72)}
.opp .mini > :first-child{margin-left:0}
.opp .mini.loose > *{margin-left:calc(var(--mcw) * -0.25)}
.opp .mini.loose > :first-child{margin-left:0}
.opp .cnt{position:absolute;top:2px;right:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:11px;font-weight:700;padding:0 6px;min-width:20px;text-align:center}
.opp .role{position:absolute;top:-2px;left:4px;font-size:10px;font-weight:700;border-radius:8px;padding:1px 6px;background:var(--red);color:#fff}
.opp .role.g{background:var(--gold);color:#241a04}
.opp .role.n{background:var(--panel2);color:var(--dim);border:1px solid var(--line)}
.bubble{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:30px;animation:pop 1.8s ease forwards;pointer-events:none;z-index:30}
@keyframes pop{0%{transform:translate(-50%,10px) scale(.4);opacity:0}15%{transform:translate(-50%,0) scale(1.15);opacity:1}80%{opacity:1}100%{transform:translate(-50%,-26px) scale(1);opacity:0}}

.felt{position:relative;flex:1;min-height:0;overflow:hidden}
.status{text-align:center;font-size:13px;color:var(--dim);min-height:26px;padding:0 16px;display:flex;align-items:center;justify-content:center}
.status span{background:rgba(10,17,25,.85);border:1px solid var(--line);border-radius:20px;padding:4px 14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status b{color:var(--red2)}
.status .me{color:var(--gold)}
.mine{position:relative;padding:2px 4px;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:calc(var(--ch) + 18px)}
.actions{display:flex;gap:8px;justify-content:center;padding:6px 12px calc(env(safe-area-inset-bottom) + 10px);min-height:64px;flex-wrap:wrap}
.actions .btn{min-width:0}
.emotes{position:absolute;top:calc(env(safe-area-inset-top) + 54px);right:12px;z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px;display:flex;gap:4px}
.emotes button{font-size:24px;width:42px;height:42px;border:0;background:transparent;border-radius:10px;cursor:pointer}
.emotes button:hover{background:var(--panel2)}

/* hand rows */
.hand{display:flex;flex-direction:column;align-items:center;width:100%}
.handRow{display:flex;justify-content:center;align-items:flex-end;width:100%}
.handRow + .handRow{margin-top:calc(var(--ch) * -0.5)}
.hand .pcard,.hand .ucard,.hand .tile{cursor:pointer;transition:transform .16s,filter .16s;transform-origin:bottom center}
.hand .ok:hover{transform:translateY(-12px)}
.hand .dim{filter:brightness(.55) grayscale(.35)}
.hand .sel{transform:translateY(-22px)!important;z-index:5}

/* ===== French card ===== */
.pcard{width:var(--cw);height:var(--ch);border-radius:8px;position:relative;flex:0 0 auto;
  background:linear-gradient(160deg,#fffef9,#efece2);border:1px solid #cabfa8;box-shadow:0 3px 8px rgba(0,0,0,.42);overflow:hidden}
.pcard .face{position:absolute;inset:0}
.cn{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:.86;font-weight:700;font-size:calc(var(--cw)*0.22)}
.cn i{font-style:normal;font-size:calc(var(--cw)*0.17);margin-top:1px}
.tl{top:5px;left:5px}.br{bottom:5px;right:5px;transform:rotate(180deg)}
.pips{position:absolute;left:14px;right:14px;top:6px;bottom:6px}
.pip{position:absolute;font-size:calc(var(--cw)*0.22)}
.big{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:calc(var(--cw)*0.62)}
.court{position:absolute;left:12px;right:12px;top:20px;bottom:20px;border:1.5px solid currentColor;border-radius:6px;display:grid;place-items:center;
  background:linear-gradient(160deg,rgba(0,0,0,.04),rgba(0,0,0,.10))}
.fig{font-size:calc(var(--cw)*0.52);line-height:1}
.csuit{position:absolute;bottom:4px;right:5px;font-size:calc(var(--cw)*0.19)}
.ctop{position:absolute;top:4px;left:5px;font-size:calc(var(--cw)*0.19)}
.pcard.trump{box-shadow:0 0 0 2px var(--gold),0 3px 10px rgba(0,0,0,.5)}
.pcard.trump2{box-shadow:0 0 0 2px rgba(196,204,214,.85),0 3px 10px rgba(0,0,0,.5)}
.pcard.sel{box-shadow:0 0 0 2px var(--red2),0 0 14px rgba(224,68,52,.5),0 10px 18px rgba(0,0,0,.55)}
.pcard.win{box-shadow:0 0 0 2px var(--green),0 0 14px rgba(143,211,154,.5)}
.back{background:repeating-linear-gradient(45deg,#7d1620 0 6px,#5c101a 6px 12px),#6a1019!important;border:2px solid #e9e3d6!important}
.back::after{content:"";position:absolute;inset:14%;border:2px solid rgba(255,255,255,.16);border-radius:4px}
.mini .pcard,.mini .ucard{width:var(--mcw);height:var(--mch);border-radius:4px;border-width:1px!important;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.small .pcard{--cw:clamp(34px,9.4vw,46px)}
.pcard.sm{--cw:clamp(34px,9.4vw,46px);width:var(--cw);height:calc(var(--cw)*1.41)}

/* ===== durak board ===== */
.deckZone{position:absolute;left:8px;top:46%;transform:translateY(-50%);height:var(--ch);width:calc(var(--cw) + 40px);z-index:2}
.deckZone .trumpC{position:absolute;left:18px;top:6px;transform:rotate(90deg)}
.deckZone .stack{position:absolute;left:28px;top:0}
.deckZone .dc{position:absolute;left:0;top:-22px;font-weight:700;color:var(--dim);font-size:14px}
.discard{position:absolute;right:8px;top:46%;transform:translateY(-50%);width:var(--cw);height:var(--ch);border:1px dashed #2c3d4d;border-radius:9px;opacity:.5}
.board{position:absolute;inset:0;display:flex;flex-wrap:wrap;align-content:center;align-items:center;justify-content:center;gap:14px 18px;
  padding:14px calc(var(--cw) + 20px) 14px calc(var(--cw) + 44px)}
.pair{position:relative;width:var(--cw);height:var(--ch);flex:0 0 auto}
.pair .pcard{position:absolute;left:0;top:0}
.pair .pcard.d{left:12px;top:12px;transform:rotate(6deg)}
.pair.target{cursor:pointer}
.pair.target > .pcard:first-child{box-shadow:0 0 0 3px var(--gold),0 0 16px rgba(232,185,60,.5);animation:pulseT 1.1s ease-in-out infinite}
@keyframes pulseT{50%{box-shadow:0 0 0 3px var(--gold),0 0 24px rgba(232,185,60,.8)}}
.pair.greyed{filter:grayscale(.7) brightness(.5)}
.limitNote{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:11px;color:var(--mute)}

/* ===== UNO ===== */
.ucard{width:var(--cw);height:var(--ch);border-radius:9px;position:relative;flex:0 0 auto;background:var(--c,#333);border:3px solid #fff;
  box-shadow:0 3px 8px rgba(0,0,0,.45);overflow:hidden;color:#fff;display:grid;place-items:center}
.ucard::before{content:"";position:absolute;inset:14% 10%;border-radius:50%;background:rgba(255,255,255,.93);transform:rotate(28deg) scaleX(.72)}
.ucard .uv{position:relative;font-weight:900;font-size:calc(var(--cw)*.44);color:var(--c);text-shadow:1px 1px 0 rgba(0,0,0,.25);line-height:1;letter-spacing:-1px}
.ucard .uc{position:absolute;font-weight:900;font-size:calc(var(--cw)*.2);line-height:1;text-shadow:1px 1px 0 rgba(0,0,0,.35)}
.ucard .uc.a{top:4px;left:5px}.ucard .uc.b{bottom:4px;right:5px;transform:rotate(180deg)}
.ucard.w{--c:#1a1f27}
.ucard.w::before{background:conic-gradient(var(--u-r) 0 25%,var(--u-y) 0 50%,var(--u-g) 0 75%,var(--u-b) 0)}
.ucard.w .uv{color:#fff;text-shadow:0 0 6px rgba(0,0,0,.7),1px 1px 0 #000}
.ucard.ub{background:#15191f}
.ucard.ub::before{background:var(--u-r);transform:rotate(28deg) scaleX(.72)}
.ucard.ub .uv{color:var(--u-y);font-size:calc(var(--cw)*.26);text-shadow:1px 1px 0 #000;transform:rotate(-20deg);font-style:italic}
.mini .ucard{border-width:1.5px}
.mini .ucard .uv{font-size:6px}
.ucard.ok{box-shadow:0 0 0 2px var(--gold),0 3px 8px rgba(0,0,0,.45)}
.unoCenter{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:26px}
.unoPile{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px}
.unoPile .lbl{font-size:12px;color:var(--dim)}
.unoTop{--cw:clamp(64px,19vw,90px)}
.colorRing{position:absolute;inset:-9px;border-radius:16px;border:4px solid var(--rc);box-shadow:0 0 22px var(--rc);opacity:.9;pointer-events:none}
.dirArrow{position:absolute;top:10px;left:50%;transform:translateX(-50%);font-size:28px;color:var(--mute)}
.pend{position:absolute;top:-14px;right:-18px;background:var(--red2);color:#fff;font-weight:900;border-radius:14px;padding:3px 9px;font-size:16px;box-shadow:0 3px 10px rgba(0,0,0,.4)}
.unoBtn{animation:shake .6s ease-in-out infinite}
@keyframes shake{25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}
.colorPick{display:grid;grid-template-columns:repeat(2,96px);gap:12px}
.colorPick button{height:96px;border-radius:18px;border:3px solid #fff;cursor:pointer}

/* ===== BLACKJACK ===== */
.bjFelt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:radial-gradient(90% 70% at 50% 30%,rgba(35,110,70,.28),transparent 70%)}
.dealer{display:flex;flex-direction:column;align-items:center;gap:6px}
.lbl{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:2px}
.cards{display:flex;justify-content:center}
.cards > * + *{margin-left:calc(var(--cw) * -0.55)}
.val{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:2px 10px;font-weight:700;font-variant-numeric:tabular-nums;font-size:14px}
.val.bust{color:var(--red2)}
.val.bj{color:var(--gold)}
.rules{font-size:11.5px;color:var(--mute);text-align:center}
.myHands{display:flex;gap:18px;justify-content:center;align-items:flex-end}
.myHand{display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 6px;border-radius:12px;border:1px solid transparent}
.myHand.act{border-color:var(--gold)}
.res{font-size:12px;font-weight:700;border-radius:10px;padding:2px 8px}
.res.win,.res.bj{background:rgba(143,211,154,.15);color:var(--green)}
.res.lose,.res.bust{background:rgba(224,68,52,.14);color:var(--red2)}
.res.push{background:var(--panel2);color:var(--dim)}
.betBox{display:flex;flex-direction:column;align-items:center;gap:10px}
.chipsRow{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.pchip{width:52px;height:52px;border-radius:50%;border:4px dashed rgba(255,255,255,.75);display:grid;place-items:center;font-weight:900;font-size:14px;cursor:pointer;
  box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 0 0 3px rgba(0,0,0,.18);color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.4)}
.pchip:active{transform:scale(.94)}
.betAmt{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.betAmt small{font-size:13px;color:var(--dim);font-weight:400}
.money{color:var(--green);font-weight:700;font-variant-numeric:tabular-nums}

/* ===== POKER ===== */
.pokerFelt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.pokerFelt::before{content:"";position:absolute;left:4%;right:4%;top:10%;bottom:10%;border-radius:120px;
  background:radial-gradient(80% 80% at 50% 40%,#1d5a3e,#113524);border:6px solid #3a2415;box-shadow:inset 0 0 40px rgba(0,0,0,.6),0 8px 24px rgba(0,0,0,.5)}
.boardRow{position:relative;display:flex;gap:5px}
.boardRow .slot{width:var(--cw);height:var(--ch);border-radius:8px;border:1px dashed rgba(255,255,255,.18)}
.pokerFelt .boardRow{--cw:clamp(40px,11.5vw,58px)}
.pot{position:relative;font-weight:700;font-size:15px;background:rgba(0,0,0,.35);border-radius:14px;padding:3px 14px;font-variant-numeric:tabular-nums}
.pot b{color:var(--gold)}
.madeName{position:relative;font-size:13px;color:var(--gold);font-weight:500;min-height:17px}
.betTag{font-size:11px;font-weight:700;color:#241a04;background:var(--gold);border-radius:9px;padding:0 6px}
.dealerBtn{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#fff;color:#111;font-size:10px;font-weight:900}
.raisePanel{display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px;padding:0 4px}
.raisePanel input[type=range]{width:100%;accent-color:var(--red2)}
.raiseQuick{display:flex;gap:6px}
.raiseQuick .btn{height:34px;font-size:13px;max-width:none}

/* ===== DOMINO ===== */
.dom-white,.dom-color{--t-bg:linear-gradient(160deg,#ffffff,#ece8df);--t-bd:#c9c1b1;--t-ln:#b8b0a0;--t-dot:#1b2530}
.dom-black{--t-bg:linear-gradient(160deg,#30343b,#131519);--t-bd:#05070a;--t-ln:#50555e;--t-dot:#f6f3ea}
.dom-white,.dom-black{--c1:var(--t-dot);--c2:var(--t-dot);--c3:var(--t-dot);--c4:var(--t-dot);--c5:var(--t-dot);--c6:var(--t-dot)}
.dom-color{--c1:#d8392e;--c2:#1fa7a0;--c3:#f07c22;--c4:#4caf34;--c5:#2f6fd8;--c6:#a63ad8}
.n1 .dot{background:var(--c1)!important}.n2 .dot{background:var(--c2)!important}.n3 .dot{background:var(--c3)!important}
.n4 .dot{background:var(--c4)!important}.n5 .dot{background:var(--c5)!important}.n6 .dot{background:var(--c6)!important}
.tile{--tw:clamp(26px,7.4vw,36px);width:var(--tw);height:calc(var(--tw)*2);border-radius:calc(var(--tw)*.16);background:var(--t-bg);
  border:1px solid var(--t-bd);box-shadow:0 2px 6px rgba(0,0,0,.45),inset 0 -2px 0 rgba(0,0,0,.08);display:flex;flex-direction:column;flex:0 0 auto;position:relative}
.tile::after{content:"";position:absolute;left:12%;right:12%;top:50%;height:1.5px;background:var(--t-ln);transform:translateY(-50%)}
.tile .half{flex:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:calc(var(--tw)*.13);min-width:0;min-height:0}
.tile .dot{width:74%;height:74%;border-radius:50%;background:var(--t-dot);place-self:center;box-shadow:inset 0 -1px 1px rgba(0,0,0,.25)}
.tile.h{width:calc(var(--tw)*2);height:var(--tw);flex-direction:row}
.tile.h::after{left:50%;right:auto;top:12%;bottom:12%;width:1.5px;height:auto;transform:translateX(-50%)}
.tile.back{background:linear-gradient(160deg,#2b3a48,#1b2731)!important;border-color:#3c5060!important}
.tile.back::after{display:none}
.tile.ok{box-shadow:0 0 0 2px var(--gold),0 2px 6px rgba(0,0,0,.45)}
.tile.sel{box-shadow:0 0 0 2px var(--red2),0 8px 14px rgba(0,0,0,.5)}
.mini .tile{--tw:9px;border-radius:2px}
.mini .tile .half{display:none}
.dboard{position:absolute;inset:0}
.dboard .tile{position:absolute}
.dboard .tile.ghost{background:rgba(232,185,60,.12);border:2px dashed var(--gold);box-shadow:0 0 14px rgba(232,185,60,.35);cursor:pointer;opacity:.9;animation:ghostP 1.2s ease-in-out infinite}
.dboard .tile.ghost .dot{opacity:.55}
.dboard .tile.ghost::after{opacity:.4}
@keyframes ghostP{50%{box-shadow:0 0 24px rgba(232,185,60,.7)}}
.dboard .tile.land{animation:land .7s ease}
@keyframes land{0%{box-shadow:0 0 0 3px var(--gold),0 0 22px rgba(232,185,60,.9)}100%{box-shadow:0 2px 6px rgba(0,0,0,.45)}}
.dEmpty{position:absolute;left:0;right:0;top:45%;text-align:center}
.bazaar{position:absolute;right:10px;top:8px;background:none;border:1px solid transparent;border-radius:12px;padding:6px 8px 4px 10px;display:flex;align-items:flex-end;gap:0;cursor:pointer;z-index:3;min-height:44px}
.bazaar .tile{margin-right:-8px}
.bazaar .bzN{font-size:12px;color:var(--dim);margin-left:22px;align-self:center}
.bazaar.can{border-color:var(--gold);background:rgba(232,185,60,.1);animation:pulseT 1.1s ease-in-out infinite}
.bazaar.can .bzN{color:var(--gold);font-weight:700}
.setBtn{position:absolute;right:16px;top:calc(env(safe-area-inset-top) + 16px);color:var(--dim)}
.themeRow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.themeOpt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--dim);font-size:12.5px;cursor:pointer;text-align:center}
.themeOpt.on{border-color:var(--gold);color:var(--txt);box-shadow:0 0 0 1px var(--gold)}
.themePrev{display:flex;gap:4px;align-items:center;height:44px}
.domInfo{position:absolute;left:10px;top:10px;z-index:3;font-size:12px;color:var(--dim);display:flex;flex-direction:column;gap:2px}
.mine{--htw:clamp(34px,10vw,46px)}
.hand .tile{--tw:var(--htw)}
.hand .handRow .tile + .tile{margin-left:4px}

/* ===== overlay / toast ===== */
.overlay{position:absolute;inset:0;z-index:50;background:rgba(6,10,15,.86);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;padding:24px 16px;text-align:center;backdrop-filter:blur(3px)}
.overlay h2{font-size:36px;line-height:1.2}
.overlay p{color:var(--dim);font-size:15px;max-width:320px;line-height:1.45}
.overlay .btn{max-width:260px;width:100%;flex:0 0 48px}
.win{color:var(--green)}.lose{color:var(--red2)}
.scoreTable{display:flex;flex-direction:column;gap:4px;min-width:240px;max-width:100%}
.scoreTable div{display:flex;justify-content:space-between;gap:16px;padding:6px 12px;border-radius:10px;background:var(--panel);font-variant-numeric:tabular-nums}
.scoreTable div.me{outline:1px solid var(--gold)}
.readyDots{display:flex;gap:6px;justify-content:center}
.readyDots i{width:10px;height:10px;border-radius:50%;background:var(--line)}
.readyDots i.y{background:var(--green)}
.toast{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 84px);transform:translateX(-50%);z-index:70;background:#2a1414;border:1px solid #6e2a22;
  color:#ffd9d4;border-radius:12px;padding:9px 16px;font-size:14px;max-width:90%;text-align:center;animation:up .2s ease}
.conn{position:absolute;top:0;left:0;right:0;z-index:80;background:var(--red);color:#fff;text-align:center;font-size:13px;padding:calc(env(safe-area-inset-top) + 4px) 8px 4px}
#fx{position:fixed;inset:0;pointer-events:none;z-index:45}

@keyframes dealIn{0%{transform:translate(-90px,-120px) rotate(-20deg) scale(.5);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}
.dealt{animation:dealIn .42s cubic-bezier(.2,.8,.25,1) both}

@media (min-width:700px){
  #app{max-width:720px}
  :root{--cw:66px}
  .games{grid-template-columns:repeat(3,1fr)}
  .gtile.wide{grid-column:span 1}
}

/* вхід */
#auth{overflow-y:auto;padding:calc(env(safe-area-inset-top) + 40px) 16px calc(env(safe-area-inset-bottom) + 20px);gap:22px;align-items:stretch}
.authTabs{display:flex;gap:8px;justify-content:center}
.authForm{display:flex;flex-direction:column;gap:8px;max-width:380px;width:100%;margin:0 auto}
.authForm label{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:2px;margin-top:6px}
.authForm input{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:16px;outline:0}
.authForm input:focus{border-color:var(--gold)}
.authForm .btn{max-width:none;flex:0 0 48px;margin-top:12px}
.authErr{background:#2a1414;border:1px solid #6e2a22;color:#ffd9d4;border-radius:10px;padding:9px 12px;font-size:14px}
.linkBtn{background:none;border:0;color:var(--dim);text-decoration:underline;cursor:pointer;font-size:12px}
.lobbyHost{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px}
.lobbyHost:empty{display:none}

/* ===== анімації ===== */
.fxChip{border-radius:50%;border:3px dashed rgba(255,255,255,.8);box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 0 0 2px rgba(0,0,0,.2)}
.bubble.word{font-size:15px;font-weight:900;color:#241a04;background:var(--gold);border-radius:12px;padding:3px 10px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.4)}
.opp.turnIn{animation:turnIn .5s ease}
@keyframes turnIn{0%{transform:scale(.94)}45%{transform:scale(1.06)}100%{transform:none}}
.stNew{animation:stNew .3s ease}
@keyframes stNew{from{opacity:0;transform:translateY(6px)}}
.actions .btn.pop{animation:btnPop .28s cubic-bezier(.3,1.4,.5,1) backwards}
@keyframes btnPop{from{opacity:0;transform:translateY(10px) scale(.92)}}
.dirArrow.spin{animation:spin .6s ease}
@keyframes spin{from{transform:translateX(-50%) rotate(-360deg) scale(1.4)}to{transform:translateX(-50%) rotate(0) scale(1)}}
.colorRing.ringPop{animation:ringPop .55s ease}
@keyframes ringPop{0%{transform:scale(1.35);opacity:0}60%{transform:scale(.96);opacity:1}100%{transform:none}}
.popIn{animation:popIn .4s cubic-bezier(.3,1.6,.5,1)}
@keyframes popIn{from{transform:scale(.3)}}
.slam{animation:slam .35s ease}
@keyframes slam{0%{transform:scale(1.25) rotate(-6deg)}60%{transform:scale(.95) rotate(1deg)}100%{transform:none}}
.discard.hit{animation:hit .5s ease}
@keyframes hit{0%{opacity:.5}40%{opacity:1;border-color:var(--gold);box-shadow:0 0 18px rgba(232,185,60,.5)}100%{opacity:.5}}
.shake{animation:shakeX .45s ease}
@keyframes shakeX{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
.winGlow{animation:winGlow 1.2s ease}
@keyframes winGlow{0%,100%{box-shadow:none}30%{box-shadow:0 0 0 2px var(--green),0 0 26px rgba(143,211,154,.6)}}
#mine.winGlow{border-radius:16px}
.shoe{position:absolute;right:12px;top:10px;width:44px;height:62px;z-index:2}
.shoe .pcard{position:absolute;--cw:34px;left:0;top:0}
.shoe .pcard:nth-child(2){left:3px;top:-3px}.shoe .pcard:nth-child(3){left:6px;top:-6px}
.shoe .lbl{position:absolute;top:56px;left:0;right:-6px;text-align:center;font-size:10px}
.pdeck{position:absolute;left:9%;top:50%;transform:translateY(-50%) rotate(-8deg);z-index:1}
.pdeck .pcard{--cw:30px}
.toast.info{background:#2a2410;border-color:#6e5a1a;color:#fbe7a8}

/* ===== ВЕСЕЛА РУЛЕТКА ===== */
.gtile.hot{background:radial-gradient(120% 140% at 90% 0%,rgba(255,95,200,.22),transparent 55%),radial-gradient(120% 140% at 10% 100%,rgba(79,224,255,.16),transparent 55%),linear-gradient(170deg,var(--panel2),var(--panel))}
.artGun{width:92px;height:60px;position:relative}
.artGun .sh{position:absolute;bottom:4px;width:12px;height:30px;border-radius:3px 3px 2px 2px;box-shadow:inset 0 -7px 0 #d4a73a,0 2px 5px rgba(0,0,0,.5)}
.artGun .sh.lv{background:#e0413a}.artGun .sh.bl{background:#3b7be0}
.artGun .sh:nth-child(1){left:18px;transform:rotate(-12deg)}.artGun .sh:nth-child(2){left:36px}.artGun .sh:nth-child(3){left:54px;transform:rotate(12deg)}
.r3d{position:absolute;inset:0;overflow:hidden;background:#040405}
.r3d canvas{display:block}
.r3dLabels{position:absolute;inset:0;pointer-events:none}
.r3dLab{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:1px;background:rgba(10,14,20,.72);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:3px 9px;white-space:nowrap;transition:border-color .2s,box-shadow .2s}
.r3dLab b{font-size:12px}
.r3dLab .hp{font-size:12px;letter-spacing:1px;color:#ffe39e}
.r3dLab .st{font-size:11px;min-height:0}
.r3dLab.turn{border-color:var(--gold);box-shadow:0 0 14px rgba(232,185,60,.5)}
.r3dLab.dead{opacity:.55}
.r3dLab.me{display:none}
.r3dFlash{position:absolute;inset:0;pointer-events:none;opacity:0}
.r3dFlash.on{animation:rflash .6s ease-out}
@keyframes rflash{0%{opacity:1}100%{opacity:0}}
.r3dFloat{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:17px;white-space:nowrap;text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 12px rgba(0,0,0,.6);animation:rfloat 1.7s ease-out forwards;pointer-events:none}
.r3dFloat.hit{color:#ff6b5e;font-size:22px}.r3dFloat.blank{color:#9cc3ff}.r3dFloat.good{color:#8fd39a}.r3dFloat.info{color:#ffe39e;font-size:14px}.r3dFloat.dead{color:#fff;font-size:15px}
@keyframes rfloat{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-160%) scale(1)}}
.r3dBanner{position:absolute;left:50%;top:24%;transform:translate(-50%,-50%) scale(.8);opacity:0;pointer-events:none;background:rgba(10,14,20,.85);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:10px 18px;
  display:flex;flex-direction:column;align-items:center;gap:4px;transition:opacity .25s,transform .35s cubic-bezier(.3,1.5,.5,1)}
.r3dBanner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.r3dBanner .lv{color:#e0413a;font-size:26px;letter-spacing:4px}.r3dBanner .bl{color:#3b7be0;font-size:26px;letter-spacing:4px}
.r3dBanner small{color:var(--dim);font-size:13px}.r3dBanner b{font-size:22px;color:var(--gold)}
.rInfo{position:absolute;left:10px;right:10px;top:8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--dim);z-index:3;pointer-events:none}
.rInfo b{color:var(--txt)}
.rInfo .spent{display:flex;gap:3px}
.rInfo i,.rKnown i{display:inline-block;width:8px;height:14px;border-radius:2px;box-shadow:inset 0 -3px 0 #d4a73a;vertical-align:middle}
.rInfo i.lv,.rKnown i.lv{background:#e0413a}.rInfo i.bl,.rKnown i.bl{background:#3b7be0}
.rInfo .saw{color:#ff9f5e;font-weight:700}
.rMine{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
.rHp{font-size:20px;letter-spacing:2px;color:#ffe39e}
.rHp .off{opacity:.2}
.rKnown{font-size:13px;color:var(--gold);background:rgba(232,185,60,.1);border:1px solid rgba(232,185,60,.35);border-radius:10px;padding:3px 10px}
.rItems{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:100%}
.rItem{display:flex;flex-direction:column;align-items:center;gap:1px;width:64px;padding:6px 2px;border-radius:12px;border:1px solid var(--line);background:var(--panel);cursor:pointer;transition:transform .12s,border-color .15s}
.rItem .e{font-size:22px;line-height:1}
.rItem .n{font-size:10.5px;color:var(--dim)}
.rItem:not(:disabled):hover{transform:translateY(-3px);border-color:var(--gold)}
.rItem.sel{border-color:var(--gold);box-shadow:0 0 12px rgba(232,185,60,.5)}
.rItem:disabled{opacity:.4;cursor:default}

/* ===== МІЛЬЙОНЕР ===== */
.gtile.gMono{background:radial-gradient(120% 140% at 90% 0%,rgba(139,92,246,.2),transparent 55%),linear-gradient(170deg,var(--panel2),var(--panel))}
.artMono{width:92px;height:62px;position:relative;display:grid;grid-template-columns:repeat(2,26px);gap:4px;justify-content:center;padding-top:4px}
.artMono i{height:26px;border-radius:5px;box-shadow:0 2px 5px rgba(0,0,0,.5)}
.artMono span{position:absolute;right:2px;bottom:-4px;font-size:26px}
.mono{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:4px 6px 0}
.mStrip{display:flex;gap:5px;overflow-x:auto;max-width:100%;flex:0 0 auto;padding:2px 2px 4px;scrollbar-width:none}
.mStrip::-webkit-scrollbar{display:none}
.mChip{display:flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:4px 9px 4px 5px;white-space:nowrap;cursor:pointer;flex:0 0 auto;font-size:12px}
.mChip i{width:14px;height:14px;border-radius:50%;background:var(--tc);box-shadow:0 0 0 2px rgba(0,0,0,.35)}
.mChip .cs{font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}
.mChip.turn{border-color:var(--tc);box-shadow:0 0 12px color-mix(in srgb,var(--tc) 55%,transparent)}
.mChip.out{opacity:.4;text-decoration:line-through}
.mChip.jail .nm::after{content:" 🔒"}
.mChip.bump{animation:popIn .4s cubic-bezier(.3,1.6,.5,1)}
.mWrap{position:relative;flex:0 0 auto;width:300px;height:300px}
.mBoard{position:absolute;inset:0;display:grid;gap:2px;background:#0e131b;border-radius:10px;padding:2px}
.mTile{position:relative;border:0;border-radius:4px;background:linear-gradient(160deg,#243142,#1a2331);overflow:hidden;cursor:pointer;padding:0;color:var(--txt);
  container-type:size;min-width:0;min-height:0}
.mTile.owned{background:linear-gradient(160deg,color-mix(in srgb,var(--oc) 32%,#243142),#1a2331)}
.mTile.owned .mOwn{position:absolute;background:var(--oc)}
.mTile.top .mOwn{left:0;right:0;bottom:0;height:3px}.mTile.bottom .mOwn{left:0;right:0;top:0;height:3px}
.mTile.left .mOwn{top:0;bottom:0;right:0;width:3px}.mTile.right .mOwn{top:0;bottom:0;left:0;width:3px}
.mTile.mort{filter:grayscale(.8) brightness(.6)}
.mTile.mort::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent 0 4px,rgba(0,0,0,.35) 4px 8px)}
.mTile.t-air{background:linear-gradient(160deg,#2c4258,#1c2a3a)}.mTile.t-util{background:linear-gradient(160deg,#1f4a55,#16323b)}
.mIn{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px;text-align:center}
.mTile.left .mIn{writing-mode:vertical-rl;transform:rotate(180deg)}
.mTile.right .mIn{writing-mode:vertical-rl}
.mTile.t-prop .mIn::before{content:"";position:absolute;background:var(--gc);opacity:.9}
.mTile.top.t-prop .mIn::before{left:0;right:0;top:0;height:18%}
.mTile.bottom.t-prop .mIn::before{left:0;right:0;top:0;height:18%}
.mTile.left.t-prop .mIn::before,.mTile.right.t-prop .mIn::before{top:0;bottom:0;left:0;width:18%}
.mFlag,.mIco{font-size:min(38cqmin,22px);line-height:1}
.mName{font-size:clamp(6px,20cqmin,11px);line-height:1.05;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mName.tr{color:#f5a54a}.mName.su{color:#ff8fc1}
.mPrice{font-size:clamp(6px,18cqmin,10px);color:var(--dim);font-variant-numeric:tabular-nums}
@container (max-width:36px){.mName{display:none}}
@container (max-height:36px){.mName{display:none}}
.mCorner{font-size:clamp(7px,14cqmin,13px);font-weight:700;line-height:1.2;writing-mode:horizontal-tb}
.mCorner.start{color:#b7f24a;display:flex;flex-direction:column;font-size:clamp(8px,17cqmin,16px)}
.mCorner.start b{font-size:1.3em}
.mCorner .bars{display:block;width:60%;height:34%;margin:0 auto 3px;background:repeating-linear-gradient(90deg,#9aa6b2 0 2px,transparent 2px 6px)}
.mHouses{position:absolute;display:flex;gap:1px;left:50%;top:1px;transform:translateX(-50%)}
.mTile.left .mHouses,.mTile.right .mHouses{flex-direction:column;top:50%;transform:translateY(-50%)}
.mTile.left .mHouses{left:auto;right:4px}.mTile.right .mHouses{left:4px}
.mTile.bottom .mHouses{top:1px}.mTile.top .mHouses{top:auto;bottom:4px}
.mHouses i{width:6px;height:6px;background:#4ade80;border-radius:1px;box-shadow:0 0 0 1px #0b3d1e}
.mHouses i.hotel{width:12px;background:#ef4444;box-shadow:0 0 0 1px #5a1010}
.mHouses.pop{animation:popIn .4s cubic-bezier(.3,1.6,.5,1)}
.mTile.pulse{animation:tpulse .9s ease}
@keyframes tpulse{0%{box-shadow:inset 0 0 0 3px var(--pc),0 0 18px var(--pc);z-index:3}100%{box-shadow:inset 0 0 0 0 var(--pc)}}
.mTile:focus-visible{outline:2px solid var(--gold);z-index:4}
.mCenter{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:6%;pointer-events:none;
  background:radial-gradient(70% 70% at 50% 45%,rgba(139,92,246,.12),transparent 70%)}
.mDice{display:flex;gap:10px}
.mDice .die{width:clamp(30px,11vw,44px);aspect-ratio:1;background:linear-gradient(160deg,#fff,#e9e6dd);border-radius:22%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:14%;box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 -3px 0 rgba(0,0,0,.12)}
.mDice .die i.on{background:#1b2530;border-radius:50%;width:70%;height:70%;place-self:center}
.mDice.idle .die{opacity:.35}
.mDice.rolling .die{animation:dieRoll .14s linear infinite}
.mDice.rolling .die:nth-child(2){animation-direction:reverse}
@keyframes dieRoll{0%{transform:rotate(0) translateY(0)}50%{transform:rotate(180deg) translateY(-6px) scale(1.08)}100%{transform:rotate(360deg)}}
.mDice.dbl .die{animation:dbl .6s ease}
@keyframes dbl{40%{transform:scale(1.25);box-shadow:0 0 0 3px var(--gold),0 0 20px rgba(232,185,60,.7)}}
.mCStat{font-size:clamp(10px,3.2vw,14px);text-align:center;color:var(--txt);min-height:1.3em;max-width:100%}
.mCStat.new{animation:stNew .3s ease}
.mLog{font-size:clamp(9px,2.6vw,11.5px);color:var(--dim);text-align:center;display:flex;flex-direction:column;gap:1px;max-width:100%}
.mLog div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mCard{position:absolute;left:50%;top:50%;width:min(78%,260px);transform:translate(-50%,-50%) rotateY(90deg) scale(.8);opacity:0;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;
  background:linear-gradient(160deg,#fff8ec,#f1e3c8);color:#2a1e10;box-shadow:0 14px 34px rgba(0,0,0,.6);transition:transform .45s cubic-bezier(.3,1.3,.5,1),opacity .25s;z-index:5}
.mCard.su{background:linear-gradient(160deg,#ffeefa,#f4d2ec)}
.mCard.show{transform:translate(-50%,-50%) rotateY(0) scale(1);opacity:1}
.mCard b{font-size:15px}.mCard span{font-size:14px;line-height:1.35}.mCard small{font-size:11px;opacity:.6}
.mTokens{position:absolute;inset:0;pointer-events:none}
.mTok{position:absolute;left:0;top:0;width:clamp(14px,5vw,22px);height:clamp(14px,5vw,22px);margin:calc(clamp(14px,5vw,22px) / -2) 0 0 calc(clamp(14px,5vw,22px) / -2);border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff8 0 18%,transparent 20%),var(--tc);box-shadow:0 3px 6px rgba(0,0,0,.6),0 0 0 2px rgba(0,0,0,.5);display:grid;place-items:center;transition:transform .35s cubic-bezier(.3,.7,.4,1);z-index:2}
.mTok b{font-size:clamp(8px,2.6vw,11px);color:#0c1621}
.mTok.me{box-shadow:0 3px 6px rgba(0,0,0,.6),0 0 0 2px #fff}
.mTok.jailed::after{content:"";position:absolute;inset:-3px;border-radius:50%;background:repeating-linear-gradient(90deg,rgba(200,210,220,.9) 0 2px,transparent 2px 5px)}
.mFx{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mFloat{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:14px;white-space:nowrap;animation:rfloat 1.6s ease-out forwards;text-shadow:0 2px 0 rgba(0,0,0,.6);z-index:6}
.mFloat.plus{color:#8fd39a}.mFloat.minus{color:#ff6b5e}.mFloat.info{color:#ffe39e;font-size:12px}
.mCoin{position:absolute;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6c2,#e8b93c 55%,#a87d12);box-shadow:0 1px 3px rgba(0,0,0,.6);z-index:6}
.mConf{position:absolute;width:7px;height:10px;border-radius:2px;z-index:7}
.mMe{font-size:13px;color:var(--dim);text-align:center}
#table.g-mono .mine{min-height:0}
.tileSheet,.tradeBox{width:100%;max-width:360px;background:linear-gradient(180deg,#172330,#111a24);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-align:left}
.tsHead{padding:14px 16px;display:flex;flex-direction:column;gap:2px;background:#2c4258;color:#0c1621}
.tsHead b{font-size:19px;color:#0c1621}.tsHead small{color:rgba(12,22,33,.7);font-weight:700}
.tsBody{padding:10px 16px;display:flex;flex-direction:column;gap:3px}
.tsBody p{color:var(--dim);font-size:14px;margin:6px 0}
.tsRow{display:flex;justify-content:space-between;font-size:14px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.04);font-variant-numeric:tabular-nums}
.tsRow.cur{color:var(--gold)}.tsRow.own b{color:var(--green)}
.tsActs{display:flex;flex-direction:column;gap:6px;padding:10px 16px 16px}
.tsActs .btn{max-width:none;flex:0 0 44px}
.tradeBox{padding:14px 0 0;max-width:460px;max-height:86vh;overflow-y:auto}
.tradeBox h2{padding:0 16px;font-size:26px}
.trCols{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px}
.trCol{display:flex;flex-direction:column;gap:5px;min-width:0}
.trTile{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:6px 8px;border-radius:9px;border:1px solid var(--line);background:var(--panel);border-left:4px solid var(--gc);cursor:pointer;min-width:0}
.trTile span{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.trTile small{font-size:11px;color:var(--dim)}
.trTile.on{background:color-mix(in srgb,var(--gc) 22%,var(--panel));border-color:var(--gc)}
.trCash{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--dim);margin-top:4px}
.trCash input{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px;font-size:15px;outline:0;width:100%}
.trMoney{font-weight:700;color:var(--green)}

/* панель обмінів */
.btn.danger{background:linear-gradient(180deg,#e0734a,#c1502c);border-color:#7d3218}
.btn.glow{border-color:var(--gold);box-shadow:0 0 14px rgba(232,185,60,.45);animation:pulseT 1.2s ease-in-out infinite}
.mPanel{width:100%;max-width:420px;max-height:88vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;text-align:left}
.mpHead{display:flex;justify-content:space-between}
.mpCard{background:#231d38;border:1px solid #33294f;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:8px}
.mpTitle{display:flex;justify-content:space-between;align-items:center;font-size:17px;color:#b9aee0;font-weight:700}
.mpHint{font-size:13px;color:#9d93c2;background:#2c2545;border-radius:12px;padding:10px 12px;text-align:center;line-height:1.4}
.mpTrade{background:#2c2545;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.mpTrWho{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px}
.mpTrBody{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12.5px}
.mpTrBody small{display:block;color:#9d93c2;font-size:11px;text-transform:uppercase;letter-spacing:1px}
.mpTrActs{display:flex;gap:6px}
.mpTrActs .btn{flex:1;max-width:none}
.mpGroup{display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:12px;border:1px dashed transparent}
.mpGroup.full{border-color:var(--gold)}
.mpProp{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:0;border-left:4px solid var(--gc);background:#2c2545;cursor:pointer;text-align:left}
.mpProp span{font-size:13.5px}.mpProp small{font-size:12px;color:#9d93c2;white-space:nowrap}
.pDot{display:inline-block;width:18px;height:18px;border-radius:50%;box-shadow:inset 0 -3px 0 rgba(0,0,0,.2),0 0 0 2px rgba(0,0,0,.3);flex:0 0 auto;position:relative}
.pDot::after{content:"";position:absolute;left:4px;top:6px;width:10px;height:4px;background:radial-gradient(circle at 25% 50%,#111 0 1.5px,transparent 2px),radial-gradient(circle at 75% 50%,#111 0 1.5px,transparent 2px),#fff;border-radius:3px}
.tradeBox.wide{max-width:560px;position:relative;background:#16122a;border-color:#2d2548}
.trClose{position:absolute;right:10px;top:10px}
.trPlayers{display:flex;flex-direction:column;gap:8px;padding:6px 14px}
.trPlayer{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;border:0;background:#2c2545;cursor:pointer;font-size:16px;font-weight:700}
.trPlayer small{margin-left:auto;color:var(--green);font-weight:500}
.trPlayer:disabled{opacity:.4}
.trCols3{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;padding:8px 12px;align-items:start}
.trSwap{align-self:stretch;width:30px;border-radius:15px;background:linear-gradient(180deg,#2d2548,transparent);display:flex;justify-content:center;padding-top:10px;color:#fff;font-size:18px}
.trWho{display:flex;align-items:center;gap:6px;justify-content:center;font-size:14px}
.trWho b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trSlider{display:flex;flex-direction:column;align-items:center;gap:2px;margin:6px 0}
.trSlider input{width:100%;accent-color:#7c5cf0}
.trEnds{display:flex;justify-content:space-between;width:100%;font-size:11px;color:#9d93c2}
.trPill{background:#5b3fd6;color:#fff;font-weight:700;border-radius:14px;padding:3px 12px;font-variant-numeric:tabular-nums}
.trProp{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;border-radius:10px;border:1.5px solid #3a3160;background:transparent;cursor:pointer;text-align:left;min-width:0;width:100%}
.trProp span{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.trProp small{font-size:11px;color:#9d93c2}
.trProp.on{background:linear-gradient(135deg,#7a4ee8,#5b3fd6);border-color:#8f6bff}
.trProp.on small{color:#e5dcff}

.winBar{display:flex;align-items:center;gap:6px;padding:10px 12px 6px 16px}
.winBar b{flex:1;font-size:16px;color:#d9d0ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.winBtn{width:34px;height:30px;border-radius:9px;border:1px solid #3a3160;background:#2c2545;color:#fff;font-weight:900;font-size:15px;cursor:pointer;line-height:1}
.winBtn:hover{border-color:var(--gold)}
.dock{position:absolute;left:10px;bottom:calc(env(safe-area-inset-bottom) + 74px);z-index:45;display:flex;flex-direction:column;gap:6px}
.dockPill{background:linear-gradient(135deg,#7a4ee8,#5b3fd6);border:1px solid #8f6bff;color:#fff;font-weight:700;border-radius:18px;padding:8px 14px;box-shadow:0 6px 16px rgba(0,0,0,.5);cursor:pointer;animation:popIn .35s cubic-bezier(.3,1.6,.5,1)}

.artSvg{width:110px;height:66px}
.artSvg svg{display:block;filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}
.gtile .art{width:112px}
@media (min-width:700px){.gtile.hot{grid-column:span 3;min-height:120px}}
.btn.small{white-space:nowrap}
#tableGame{max-width:46vw;overflow:hidden}
#tableGame b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== WEST EAST MERGE ===== */
.gtile.gMerge{background:radial-gradient(120% 140% at 90% 0%,rgba(143,211,154,.2),transparent 55%),linear-gradient(170deg,var(--panel2),var(--panel))}
.artMerge{display:flex;align-items:center;gap:2px;font-size:22px;height:60px;justify-content:flex-end;padding-right:6px}
.artMerge span:nth-child(2),.artMerge span:nth-child(4){font-size:14px;color:var(--dim);font-weight:700}
.artMerge .big{font-size:36px;filter:drop-shadow(0 0 8px rgba(232,185,60,.6))}
.wem{--w-bg:#1e1b29;--w-bg2:#15131d;--w-panel:#2a2638;--w-line:#3a3450;--w-txt:#ece8f7;--w-dim:#9d96b6;--w-acc:#9b7bff;--w-acc2:#6f52e0;--w-cell:#252134;
  background:radial-gradient(120% 70% at 50% 0%,#2b2640,var(--w-bg) 55%,var(--w-bg2));color:var(--w-txt);padding:calc(env(safe-area-inset-top) + 8px) 12px 0;gap:8px;z-index:20}
.wem.light{--w-bg:#fffaf0;--w-bg2:#fff2d6;--w-panel:#fff;--w-line:#f0dfb8;--w-txt:#3a2f1a;--w-dim:#8d7a55;--w-acc:#f0b429;--w-acc2:#d9941a;--w-cell:#fff5dd;
  background:radial-gradient(120% 70% at 50% 0%,#fffdf6,var(--w-bg) 55%,var(--w-bg2))}
.wem .iconbtn{background:var(--w-panel);border-color:var(--w-line);color:var(--w-acc)}
.wTop{display:flex;align-items:center;gap:8px}
.wTitle{flex:1;font-size:17px;font-weight:500;white-space:nowrap}.wTitle b{color:var(--w-acc)}
.wCoins{background:var(--w-panel);border:1px solid var(--w-line);border-radius:18px;padding:5px 12px;font-weight:700;font-variant-numeric:tabular-nums}
.wCoins.bump{animation:popIn .45s cubic-bezier(.3,1.6,.5,1)}
.wStats{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:6px}
.wStat{background:var(--w-panel);border:1px solid var(--w-line);border-radius:12px;padding:6px 10px;display:flex;flex-direction:column;gap:3px;min-width:0}
.wStat small{font-size:11px;color:var(--w-dim)}.wStat>b{font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wStat small b{color:var(--w-txt)}
.wBar{height:7px;border-radius:4px;background:rgba(127,127,127,.2);overflow:hidden}
.wBar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--w-acc2),var(--w-acc));border-radius:4px;transition:width .4s}
.wBar.e i{background:linear-gradient(90deg,#f5b700,#ffe066)}
.wBody{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
.wPage{display:flex;flex-direction:column;gap:10px;align-items:center;padding-bottom:10px}
.wPage h3{font-size:18px;align-self:flex-start}
.wSub{font-size:12.5px;color:var(--w-dim);align-self:flex-start}
.wGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:min(100%,430px);aspect-ratio:1;padding:8px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid var(--w-line);touch-action:none}
.wem.light .wGrid{background:rgba(240,180,41,.1)}
.wCell{position:relative;border-radius:12px;background:var(--w-cell);box-shadow:inset 0 2px 4px rgba(0,0,0,.25);display:grid;place-items:center;min-width:0;min-height:0;transition:box-shadow .15s}
.wCell.over{box-shadow:inset 0 0 0 2px var(--w-dim)}
.wCell.match{box-shadow:inset 0 0 0 3px #8fd39a,0 0 14px rgba(143,211,154,.6)}
.wCell.sel .wItem{transform:scale(1.1);box-shadow:0 0 0 3px var(--w-acc),0 6px 14px rgba(0,0,0,.4)}
.wCell.lifting .wItem{opacity:.25}
.wItem{position:absolute;inset:4%;border-radius:11px;display:grid;place-items:center;cursor:grab;user-select:none;transition:transform .15s;box-shadow:0 3px 8px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.35)}
.wItem.held{transform:scale(1.16);z-index:2}
.wItem .em{font-size:clamp(22px,8.5vw,40px);line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.wItem small{position:absolute;right:5px;bottom:3px;font-size:10px;font-weight:700;opacity:.8}
.m-iron{background:linear-gradient(145deg,#8e949c,#5b6068);color:#f1f3f5}
.m-copper{background:linear-gradient(145deg,#d9895a,#9c522b);color:#fff3e8}
.m-bronze{background:linear-gradient(145deg,#cfa15e,#8a5f2a);color:#fff7e6}
.m-silver{background:linear-gradient(145deg,#eef1f5,#a7b0bb);color:#2b3440}
.m-gold{background:linear-gradient(145deg,#ffe27a,#d39a12);color:#4a3100}
.m-plat{background:linear-gradient(145deg,#e7e4ff,#9f8cf0 55%,#6fd3ff);color:#241a4d}
.wGhost{position:fixed;left:0;top:0;z-index:100;pointer-events:none;border-radius:12px;filter:drop-shadow(0 14px 18px rgba(0,0,0,.5))}
.wGhost .wItem{inset:0}
.wRing{position:absolute;inset:-3px;border-radius:14px;pointer-events:none;background:conic-gradient(#ff6b5e var(--p,0%),transparent 0);animation:ringFill 4.5s linear forwards;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px))}
@property --p{syntax:'<percentage>';inherits:false;initial-value:0%}
@keyframes ringFill{to{--p:100%}}
.wEnergy{width:min(100%,430px);display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:14px}
.wEnergy small{font-size:11.5px;color:var(--w-dim);font-variant-numeric:tabular-nums}
.wSpawn{width:min(100%,430px);height:58px;border-radius:16px;border:0;cursor:pointer;background:linear-gradient(180deg,var(--w-acc),var(--w-acc2));color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 6px 0 rgba(0,0,0,.25),0 10px 20px rgba(0,0,0,.3);transition:transform .08s}
.wSpawn:active{transform:translateY(3px);box-shadow:0 3px 0 rgba(0,0,0,.25)}
.wSpawn small{font-size:14px;opacity:.85}
.wSpawn.off{filter:grayscale(.7);opacity:.6}
.wHint{font-size:12px;color:var(--w-dim);text-align:center;max-width:430px;line-height:1.4}
.wTabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 0 calc(env(safe-area-inset-bottom) + 8px);border-top:1px solid var(--w-line)}
.wTabs button{position:relative;background:none;border:0;color:var(--w-dim);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:20px;padding:4px;border-radius:12px;cursor:pointer}
.wTabs button span{font-size:11px}
.wTabs button.on{color:var(--w-txt);background:var(--w-panel)}
.wTabs button i{position:absolute;top:4px;right:28%;width:9px;height:9px;border-radius:50%;background:#ff6b5e}
.wTask{width:100%;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:var(--w-panel);border:1px solid var(--w-line);border-radius:14px;padding:10px 12px}
.wTask div{display:flex;flex-direction:column;gap:4px}.wTask small{font-size:11px;color:var(--w-dim)}
.wTask.got{opacity:.55}
.wBtn{height:38px;border-radius:12px;border:1px solid var(--w-line);background:var(--w-panel);color:var(--w-txt);font-weight:700;padding:0 14px;cursor:pointer;white-space:nowrap}
.wBtn.hot{background:linear-gradient(180deg,var(--w-acc),var(--w-acc2));color:#fff;border-color:transparent;animation:pulseT 1.2s ease-in-out infinite}
.wBtn.danger,.wPill.danger{background:#c1502c;color:#fff;border-color:transparent}
.wBtn:disabled{opacity:.45;animation:none}
.wShopIt{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:var(--w-panel);border:1px solid var(--w-line);border-radius:14px;padding:10px 12px}
.wShopIt .ico{font-size:30px}.wShopIt div{display:flex;flex-direction:column}.wShopIt small{font-size:12px;color:var(--w-dim)}
.wRankRow{width:100%;display:grid;grid-template-columns:34px 1fr auto auto auto;gap:8px;align-items:center;background:var(--w-panel);border:1px solid var(--w-line);border-radius:12px;padding:8px 10px;font-size:14px}
.wRankRow.me{border-color:var(--w-acc);box-shadow:0 0 12px rgba(155,123,255,.35)}
.wRankRow .pl{text-align:center;font-weight:700}.wRankRow .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wRankRow .lv{font-size:11px;color:var(--w-dim)}
.wRankRow b{font-variant-numeric:tabular-nums}
.wFx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:30}
.wBurst{position:absolute;transform:translate(-50%,-50%);border-radius:50%;animation:wburst .55s ease-out forwards;opacity:.8}
@keyframes wburst{0%{transform:translate(-50%,-50%) scale(.4);opacity:.9}100%{transform:translate(-50%,-50%) scale(2);opacity:0}}
.wSpark{position:absolute;width:9px;height:9px;border-radius:50%}
.wFloat{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:16px;white-space:nowrap;animation:rfloat 1.4s ease-out forwards;text-shadow:0 2px 0 rgba(0,0,0,.4)}
.wFloat.pts{color:#ffe066}.wFloat.c{color:#ffd24a}.wFloat.e{color:#ffe066}.wFloat.good{color:#8fd39a;font-size:13px}
.wCoin{position:absolute;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6c2,#e8b93c 55%,#a87d12);box-shadow:0 1px 3px rgba(0,0,0,.5)}
.wBanner{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);font-size:24px;font-weight:900;white-space:nowrap;padding:12px 22px;border-radius:18px;
  background:linear-gradient(135deg,var(--w-acc),var(--w-acc2));color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.45);animation:wban 2s cubic-bezier(.3,1.4,.5,1) forwards}
@keyframes wban{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}15%{transform:translate(-50%,-50%) scale(1.1);opacity:1}25%{transform:translate(-50%,-50%) scale(1)}85%{opacity:1}100%{transform:translate(-50%,-80%) scale(.95);opacity:0}}
.wConf{position:absolute;width:7px;height:11px;border-radius:2px}
.wToast{position:absolute;left:50%;bottom:120px;transform:translateX(-50%);background:#2a1414;border:1px solid #6e2a22;color:#ffd9d4;border-radius:12px;padding:8px 16px;font-size:14px;animation:up .2s ease}
.wModal{position:absolute;inset:0;z-index:40;background:rgba(10,8,16,.6);display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(3px)}
.wModalBox{background:var(--w-panel);border:1px solid var(--w-line);border-radius:18px;padding:18px;width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;animation:popIn .3s cubic-bezier(.3,1.5,.5,1)}
.wModalBox p{color:var(--w-dim);font-size:14px}
.wBig{font-size:64px;line-height:1}
.wModalBtns{display:flex;gap:8px;width:100%}.wModalBtns .wBtn{flex:1;height:44px}
.wSetRow{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.wSetRow div{display:flex;gap:6px}
.wPill{border-radius:16px;border:1px solid var(--w-line);background:transparent;color:var(--w-txt);padding:6px 11px;cursor:pointer;font-size:13px}
.wPill.on{background:linear-gradient(180deg,var(--w-acc),var(--w-acc2));color:#fff;border-color:transparent}

/* ===== «Мажорна» у стилі richup ===== */
body.wideApp #app{max-width:none}
#table.monoWide .opps{display:none}
.mLayout{position:absolute;inset:0;display:grid;grid-template-columns:minmax(240px,300px) 1fr minmax(260px,340px);gap:12px;padding:6px 12px}
.mSide{display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto}
.mMid{position:relative;min-width:0;min-height:0}
.mono.wide .mStrip{display:none}
.mpCard.players{gap:4px}
.mpPlayer{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#2c2545;border:1px solid transparent;font-size:14px}
.mpPlayer.turn{border-color:var(--gold);box-shadow:0 0 12px rgba(232,185,60,.3)}
.mpPlayer.out{opacity:.4;text-decoration:line-through}
.mpPlayer.click{cursor:pointer}.mpPlayer.click:hover{border-color:#5b4d8a}
.mpPlayer .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mpPlayer .tag{font-size:13px}
.mpPlayer .money{font-variant-numeric:tabular-nums}
.chat .chatList{max-height:320px;min-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}
.mSide .chat{flex:1;min-height:200px}
.mSide .chat .chatList{flex:1;max-height:none}
.chatMsg{display:flex;gap:6px;align-items:flex-start;font-size:13.5px;line-height:1.35;word-break:break-word}
.chatMsg .pDot{width:14px;height:14px;margin-top:2px}
.chatMsg.me b{color:var(--gold)}
.chatForm{display:flex;gap:6px}
.chatForm input{flex:1;min-width:0;background:#2c2545;border:1px solid #3a3160;border-radius:10px;padding:8px 10px;font-size:14px;outline:0}
.chatForm input:focus{border-color:#8f6bff}
.shareRow{display:flex;gap:6px}
.shareRow input{flex:1;min-width:0;background:#0f0c1c;border:1px solid #3a3160;border-radius:10px;padding:8px;font-size:12.5px;color:var(--txt)}
.mTip{position:absolute;left:10px;right:10px;top:8px;z-index:8;background:#2a2410;border:1px solid #6e5a1a;color:#fbe7a8;border-radius:12px;padding:8px 10px;font-size:12.5px;display:flex;gap:8px;align-items:center;line-height:1.35}
.mTip.static{position:static;margin-bottom:4px}
.mTip .btn{flex:0 0 auto}
.mScroll{position:relative;overflow:auto;max-width:100%;border-radius:12px;scrollbar-width:auto;scrollbar-color:#6b5bb0 #1a1530;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.mScroll::-webkit-scrollbar{width:12px;height:12px}
.mScroll::-webkit-scrollbar-thumb{background:#6b5bb0;border-radius:8px;border:2px solid #1a1530}
.mScroll::-webkit-scrollbar-track{background:#1a1530;border-radius:8px}
.mono.zoomed .mScroll{cursor:grab}
.mWrap{flex:none}
.mZoom{display:flex;align-items:center;gap:8px;width:min(100%,360px);flex:0 0 auto}
.mZoom input{flex:1;accent-color:#7c5cf0;height:28px}
.mZoom .zb{width:34px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--panel);font-weight:900;font-size:17px;cursor:pointer}
.mStrip{flex-wrap:wrap;justify-content:center;overflow:visible}
.mChip{padding:3px 8px 3px 4px;font-size:11.5px}
.mTok{background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.45) 0 14%,transparent 16%),var(--tc)}
.mTok .eyes,.tokPick .eyes{display:flex;gap:10%;justify-content:center;align-items:center;width:100%;margin-top:8%}
.mTok .eyes i,.tokPick .eyes i{width:30%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 55% 55%,#111 0 38%,#fff 40%);box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.mTok b{display:none}
.colorPick12{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;max-width:360px}
.tokPick{aspect-ratio:1;border-radius:50%;border:0;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.4) 0 12%,transparent 14%),var(--tc);cursor:pointer;display:grid;place-items:center;box-shadow:inset 0 -4px 0 rgba(0,0,0,.18);transition:transform .15s}
.tokPick:hover{transform:scale(1.08)}
.tokPick.on{box-shadow:0 0 0 3px #fff,0 0 16px var(--tc);transform:scale(1.12)}
.tokPick.taken{opacity:.25;cursor:not-allowed}
.pDot.big{width:26px;height:26px}
.ruleList{display:flex;flex-direction:column;gap:2px}
.ruleRow{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 4px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer}
.ruleRow .ri{font-size:20px;text-align:center}
.ruleRow .rt{display:flex;flex-direction:column;gap:2px}
.ruleRow .rt b{font-size:15px}.ruleRow .rt small{font-size:12.5px;color:#9d93c2;line-height:1.35}
.switch{appearance:none;-webkit-appearance:none;width:48px;height:28px;border-radius:14px;background:#2c2545;border:1px solid #3a3160;position:relative;cursor:pointer;transition:background .2s;flex:0 0 auto}
.switch::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#8a82a8;transition:transform .2s,background .2s}
.switch:checked{background:#5b3fd6;border-color:#7a5cf0}
.switch:checked::after{transform:translateX(20px);background:#fff}
.chatBtn{flex:0 0 auto!important;min-width:56px}
#table.g-mono .actions .btn{font-size:14px;height:44px;white-space:nowrap;padding:0 10px}
#table.g-mono .actions{gap:6px}

/* клітинки масштабуються разом з дошкою */
.mFlag,.mIco{font-size:min(40cqmin,40px)}
.mName{font-size:clamp(6px,17cqmin,16px)}
.mPrice{font-size:clamp(6px,15cqmin,14px)}
.mCorner{font-size:clamp(7px,15cqmin,22px)}
.mCorner.start{font-size:clamp(8px,19cqmin,28px)}
.mTile.left .mIn,.mTile.right .mIn{writing-mode:horizontal-tb;transform:none;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;column-gap:8%;text-align:left;padding:4% 6% 4% 24%}
.mTile.left .mIn{padding:4% 24% 4% 6%}
.mTile.left .mFlag,.mTile.left .mIco,.mTile.right .mFlag,.mTile.right .mIco{grid-row:span 2}
.mTile.left .mName,.mTile.right .mName,.mTile.left .mPrice,.mTile.right .mPrice{justify-self:start;max-width:100%}
.mTile.left.t-prop .mIn::before{left:auto;right:0}
.mTile.left .mCorner,.mTile.right .mCorner{grid-column:1/-1}
@container (max-width:36px){.mName{display:none}}
@container (min-width:37px){.mTile .mName{display:block}}
.mTile.left .mHouses{right:auto;left:4px}.mTile.right .mHouses{left:auto;right:4px}
.mHouses i{width:max(6px,9cqmin);height:max(6px,9cqmin)}
.mHouses i.hotel{width:max(12px,18cqmin)}
.mTok{width:var(--tok,18px);height:var(--tok,18px);margin:calc(var(--tok,18px) / -2) 0 0 calc(var(--tok,18px) / -2)}
.mDice .die{width:clamp(30px,6vmin,64px)}
.mCStat{font-size:clamp(11px,1.6vmin + 6px,18px)}
.mLog{font-size:clamp(9px,1.2vmin + 5px,14px)}
.mName{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;font-size:clamp(6px,17cqmin,17px);line-height:1.08}
.mFlag,.mIco{font-size:min(34cqmin,38px)}
.mTile.left .mFlag,.mTile.left .mIco,.mTile.right .mFlag,.mTile.right .mIco{font-size:min(38cqmin,34px)}
.mTile.left .mName,.mTile.right .mName{font-size:clamp(6px,19cqmin,17px)}
.mTile.left .mIn,.mTile.right .mIn{padding:3% 4% 3% 21%;column-gap:5%}
.mTile.left .mIn{padding:3% 21% 3% 4%}
.mCtrl{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}
.mCtrl .ctrlBtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.mCtrl .ctrlBtns .btn{flex:0 0 auto;max-width:none;height:46px;padding:0 20px;font-size:15px}
.mCtrl .ctrlStat{font-size:clamp(12px,1.4vmin + 6px,17px);color:var(--dim);text-align:center}
.mCtrl .ctrlStat b{color:var(--red2)}.mCtrl .ctrlStat .me{color:var(--gold)}
.mCtrl .mMe{font-size:14px}
#table.monoWide .status,#table.monoWide .actions,#table.monoWide .mine{display:none}
.mName{word-break:normal;overflow-wrap:normal;-webkit-hyphens:auto;hyphens:auto}
.mLayout{grid-template-columns:minmax(210px,270px) 1fr minmax(230px,300px);gap:10px}
@media (min-width:1600px){.mLayout{grid-template-columns:minmax(260px,320px) 1fr minmax(280px,360px)}}
.mTile.left .mFlag,.mTile.left .mIco,.mTile.right .mFlag,.mTile.right .mIco{font-size:min(28cqmin,26px)}
.mTile.left .mName,.mTile.right .mName{font-size:clamp(6px,16cqmin,15px)}
.mTile.left .mIn,.mTile.right .mIn{padding:3% 3% 3% 17%;column-gap:4%}
.mTile.left .mIn{padding:3% 17% 3% 3%}
.mTile.top .mName,.mTile.bottom .mName{font-size:clamp(6px,15.5cqmin,16px)}

/* ===== налаштування: звук / полотно / мова ===== */
.ruleRow.small{grid-template-columns:1fr 0 auto;padding:8px 2px}
.ruleRow.small .rt{font-size:14.5px}
.volRow{display:flex;align-items:center;gap:12px;padding:8px 2px;font-size:14.5px}
.volRow input{flex:1;accent-color:var(--red2)}
.feltRow{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.feltOpt{height:62px;border-radius:12px;border:2px solid rgba(255,255,255,.12);color:#fff;font:inherit;font-size:12px;font-weight:600;display:flex;align-items:flex-end;justify-content:center;padding:6px;cursor:pointer;text-shadow:0 1px 3px #000;box-shadow:inset 0 0 18px rgba(0,0,0,.5)}
.feltOpt.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(255,200,80,.25),inset 0 0 18px rgba(0,0,0,.5)}
/* полотно стола */
#table .felt{background:radial-gradient(110% 85% at 50% 40%,var(--feltA,#16222f),var(--feltB,#0a1119) 80%)}
body[data-felt="wood"] #table .felt{background:repeating-linear-gradient(92deg,rgba(0,0,0,.08) 0 3px,transparent 3px 11px),radial-gradient(110% 85% at 50% 40%,var(--feltA),var(--feltB) 80%)}
body:not([data-felt="navy"]) .pokerFelt::before{background:radial-gradient(80% 80% at 50% 40%,var(--feltA),var(--feltB))}
body:not([data-felt="navy"]) .mBoard{background:var(--feltB)}
/* ===== VHS-фільтр рулетки ===== */
body.vhs .r3d::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px),radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.75));
  mix-blend-mode:multiply;animation:vhsRoll 7s linear infinite}
body.vhs .r3d::before{content:"";position:absolute;inset:-50%;pointer-events:none;z-index:5;opacity:.09;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:vhsGrain .5s steps(4) infinite}
body.vhs .r3d canvas{filter:saturate(.8) contrast(1.12) sepia(.12)}
@keyframes vhsRoll{from{background-position:0 0,0 0}to{background-position:0 300px,0 0}}
@keyframes vhsGrain{0%{transform:translate(0,0)}25%{transform:translate(-5%,3%)}50%{transform:translate(4%,-4%)}75%{transform:translate(-3%,-2%)}100%{transform:translate(2%,4%)}}
.r3dBlood{position:absolute;inset:0;pointer-events:none;z-index:6;opacity:0;background:radial-gradient(90% 80% at 50% 50%,transparent 40%,rgba(140,0,0,.85));transition:opacity .2s}
.r3dBlood.on{animation:bloodV 1.8s ease-out forwards}
@keyframes bloodV{0%{opacity:0}8%{opacity:1}100%{opacity:0}}
/* ===== рейтинг ===== */
.rankTabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.rankTabs .pill{flex:0 0 auto}
.rankList{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.rankRow{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.rankRow.me{border-color:var(--gold)}
.rankRow .rp{font-weight:800;text-align:center;color:var(--dim)}
.rankRow:nth-child(1) .rp{color:#ffd24a}.rankRow:nth-child(2) .rp{color:#d6dde6}.rankRow:nth-child(3) .rp{color:#d08a4a}
.rankRow .rn{display:flex;flex-direction:column;min-width:0}
.rankRow .rn b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rankRow .rn small{color:var(--mute);font-size:12px}
.rankRow .rs{font-weight:800;font-variant-numeric:tabular-nums;color:var(--gold)}
.r3dSplat{position:absolute;z-index:7;pointer-events:none;border-radius:50% 46% 52% 44%;
  background:radial-gradient(circle at 45% 45%,rgba(120,0,0,.92) 0 38%,rgba(90,0,0,.8) 52%,transparent 70%),radial-gradient(circle at 80% 20%,rgba(110,0,0,.8) 0 10%,transparent 12%),radial-gradient(circle at 15% 85%,rgba(110,0,0,.8) 0 8%,transparent 10%);
  animation:splatDrip 3.2s ease-in forwards}
@keyframes splatDrip{0%{opacity:0;scale:.3}6%{opacity:1;scale:1.05}12%{scale:1}70%{opacity:.9;translate:0 8px}100%{opacity:0;translate:0 30px}}
.r3dLow{position:absolute;inset:0;pointer-events:none;z-index:6;opacity:0;background:radial-gradient(100% 90% at 50% 50%,transparent 50%,rgba(120,0,0,.6))}
.r3dLow.on{animation:lowBeat 1.4s ease-in-out infinite}
@keyframes lowBeat{0%,100%{opacity:.25}15%{opacity:.9}30%{opacity:.4}45%{opacity:.8}}

.rankBtn{position:absolute;right:66px;top:calc(env(safe-area-inset-top) + 16px);color:var(--gold)}
html.i18n-wait body{visibility:hidden}
.langGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}
.langOpt{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;font-size:15px;cursor:pointer}
.langOpt span{font-size:22px}.langOpt:hover{border-color:var(--gold)}

/* ===== ШАХИ / ШАШКИ ===== */
.cbWrap{position:absolute;inset:0;display:grid;place-items:center;container-type:size;padding:6px}
.cb{display:grid;grid-template-columns:repeat(var(--W),1fr);grid-template-rows:repeat(var(--H),1fr);width:min(100cqw,100cqh);aspect-ratio:1;border-radius:6px;overflow:visible;
  box-shadow:0 10px 30px rgba(0,0,0,.55)}
.cb.classic{border:6px solid #3a2415;border-radius:8px}
.cSq{position:relative;display:grid;place-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cSq.last::before{content:"";position:absolute;inset:0;background:rgba(255,214,70,.38)}
.cSq.sel::before{content:"";position:absolute;inset:0;background:rgba(120,220,120,.5)}
.cSq.chk::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(255,40,40,.9),rgba(255,40,40,.1) 75%)}
.cPiece{position:relative;width:88%;height:88%;z-index:2;pointer-events:none;filter:drop-shadow(0 2px 1.5px rgba(0,0,0,.45))}
.cPiece svg{width:100%;height:100%;display:block}
.cPiece svg *{fill:var(--pf);stroke:var(--ps);stroke-width:1.6;stroke-linejoin:round}
.cPiece svg .ey{fill:var(--ps);stroke:none}.cPiece svg .ln{fill:none}
.cPiece.can{animation:canPulse 1.6s ease-in-out infinite}
@keyframes canPulse{0%,100%{filter:drop-shadow(0 2px 1.5px rgba(0,0,0,.45))}50%{filter:drop-shadow(0 0 5px rgba(255,230,120,.95))}}
.cPiece.cMini{width:18px;height:18px;display:inline-block;filter:none}
.cGhost{position:absolute !important;inset:6%;z-index:3}
.cHint{position:absolute;width:30%;height:30%;border-radius:50%;background:rgba(20,40,20,.45);z-index:3;pointer-events:none}
.cHint.cap{width:92%;height:92%;background:transparent;border:4px solid rgba(220,40,40,.65);box-sizing:border-box}
.cHint.ghost{opacity:0}
.cSw{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;border:1px solid rgba(0,0,0,.5);vertical-align:-1px}
.os .bad,.status .bad{color:#ff6a5a}
.cPromo{width:60px;padding:4px}.cPromo .cPiece{width:44px;height:44px;margin:auto}
/* шашки */
.cSq.ck.l{background:#e9d6b0}.cSq.ck.d{background:#6b4a33}
.ckBoard{border:6px solid #2a1a0d;border-radius:8px}
.ckPiece{position:relative;width:80%;height:80%;border-radius:50%;z-index:2;pointer-events:none;display:grid;place-items:center}
.ckPiece.w{background:radial-gradient(circle at 40% 35%,#fffaf0,#e6dcc6 55%,#b9ab8c);box-shadow:0 3px 0 #8f8166,0 5px 6px rgba(0,0,0,.5),inset 0 0 0 5px rgba(0,0,0,.06),inset 0 0 0 7px rgba(255,255,255,.5)}
.ckPiece.k{background:radial-gradient(circle at 40% 35%,#6a2a2a,#3a0f12 60%,#1e0608);box-shadow:0 3px 0 #120304,0 5px 6px rgba(0,0,0,.5),inset 0 0 0 5px rgba(255,255,255,.05),inset 0 0 0 7px rgba(0,0,0,.35)}
.ckPiece svg{width:55%;height:55%}.ckPiece svg path{fill:#e3b322;stroke:#5a3f00;stroke-width:1.2}
.ckPiece.taken{opacity:.35;filter:grayscale(1)}
.ckPiece.can{animation:ckPulse 1.6s ease-in-out infinite}
@keyframes ckPulse{50%{outline:3px solid rgba(255,230,120,.9);outline-offset:2px}}
.ckSw{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}.ckSw.w{background:#efe6d0}.ckSw.k{background:#4a1418}
#table.g-chess .felt,#table.g-checkers .felt{overflow:visible}

/* ===== БЕЗЬЄ ===== */
.bzView{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;background:radial-gradient(circle at 50% 40%,#23301f,#101610 75%)}
.bzView:active{cursor:grabbing}
.bzWorld{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.bzTile{position:absolute;width:80px;height:80px;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.bzTile .bzSvg,.bzTile .bzMeeples{position:absolute;inset:0;width:100%;height:100%;display:block}
.bzTile .bzMeeples{overflow:visible;pointer-events:none}
.bzTile.last{outline:2px solid rgba(255,214,70,.9);outline-offset:-1px;z-index:2}
.bzTile.drop{animation:bzDrop .45s cubic-bezier(.3,1.4,.5,1)}
@keyframes bzDrop{from{transform:scale(1.5) translateY(-10px);opacity:0}}
.bzTile.ghost{opacity:.88;outline:3px solid #ffd24a;z-index:4;cursor:pointer;animation:bzGhost 1.2s ease-in-out infinite}
@keyframes bzGhost{50%{outline-color:#fff6c0}}
.bzCand{position:absolute;width:80px;height:80px;border:2px dashed rgba(255,255,255,.28);box-sizing:border-box;border-radius:4px;cursor:pointer}
.bzCand.fit{border-color:rgba(143,230,120,.85);background:rgba(143,230,120,.13)}
.bzCand.quiet{border-color:rgba(255,255,255,.18);background:none}
.bzSpot{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:rgba(255,255,255,.85);box-shadow:0 0 0 3px rgba(255,214,70,.9);z-index:5;cursor:pointer;animation:bzSpot 1.1s ease-in-out infinite}
.bzSpot svg{width:100%;height:100%;opacity:.8}
.bzSpot.f{background:rgba(220,255,200,.85)}
@keyframes bzSpot{50%{transform:scale(1.18)}}
.bzBridge{position:absolute;transform:translate(-50%,-50%);background:#1a2532;border:1px solid #ffd24a;color:#fff;border-radius:10px;padding:1px 5px;font-size:11px;z-index:6;cursor:pointer;white-space:nowrap}
.bzPing{position:absolute;width:90px;height:90px;margin:-45px 0 0 -45px;border-radius:50%;border:3px solid #ffd24a;animation:bzPing 1.2s ease-out infinite;pointer-events:none}
@keyframes bzPing{from{transform:scale(.4);opacity:1}to{transform:scale(1.3);opacity:0}}
.bzFloat{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:22px;text-shadow:0 2px 0 #000,0 0 8px #000;pointer-events:none;z-index:9;animation:bzFloat 1.9s ease-out forwards}
@keyframes bzFloat{0%{transform:translate(-50%,-30%) scale(.5);opacity:0}15%{transform:translate(-50%,-50%) scale(1.2);opacity:1}100%{transform:translate(-50%,-160%) scale(1);opacity:0}}
.bzZoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:6px;z-index:10}
.bzZoom .iconbtn{color:var(--txt);width:38px;height:36px}
.bzMine{display:flex;align-items:center;gap:12px;justify-content:center}
.bzPrev{width:76px;height:76px;flex:0 0 auto;border-radius:6px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.6);transition:transform .2s}
.bzPrev.my{cursor:pointer;outline:2px solid #ffd24a}
.bzPrev.small{width:58px;height:58px;cursor:pointer}
.bzPrev.on{outline:3px solid #ffd24a;transform:translateY(-4px)}
.bzPrev.gone{opacity:.15;background:#000}
.bzPrev svg{width:100%;height:100%;display:block}
.bzStats{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--dim);align-items:center;justify-content:center}
.bzStats b{color:var(--gold);font-size:17px}
.bzMee::before{content:"";display:inline-block;width:11px;height:13px;margin-right:3px;vertical-align:-2px;background:var(--c);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -13 20 24'%3E%3Cpath d='M0 -9a3.6 3.6 0 1 1 0.01 0zM-3 -4.5h6l5.5 3.5-1.5 2.5-3.5-1.5 2.2 9.5h-3.8l-1.9-5-1.9 5h-3.8l2.2-9.5-3.5 1.5-1.5-2.5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -13 20 24'%3E%3Cpath d='M0 -9a3.6 3.6 0 1 1 0.01 0zM-3 -4.5h6l5.5 3.5-1.5 2.5-3.5-1.5 2.2 9.5h-3.8l-1.9-5-1.9 5h-3.8l2.2-9.5-3.5 1.5-1.5-2.5z'/%3E%3C/svg%3E") center/contain no-repeat}
.bzPts{color:var(--gold)}
.bzMarket{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:4px}
.bzScores{display:flex;flex-direction:column;gap:6px;margin:6px 0 12px;min-width:220px}
.bzScRow{display:grid;grid-template-columns:24px 12px 1fr auto;gap:8px;align-items:center;background:var(--panel);border-radius:10px;padding:6px 10px}
.bzScRow i{width:12px;height:12px;border-radius:50%}.bzScRow.me{outline:1px solid var(--gold)}
.bzScRow span:last-child{font-weight:800;color:var(--gold)}
.bzWorld.glide{transition:transform .4s cubic-bezier(.3,.7,.3,1)}

/* ===== Telegram і бета ===== */
.tgBox{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.orLine{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:13px}.orLine::before,.orLine::after{content:"";flex:1;height:1px;background:var(--line)}
.btn.tgBtn{background:linear-gradient(180deg,#34a8e6,#2289c9);color:#fff;border-color:#1f7db8;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.tgWait{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--dim);font-size:14px;margin-top:6px}
.tgWait p{margin:0}
.tgCode{font-size:34px;font-weight:800;letter-spacing:8px;color:var(--gold);font-variant-numeric:tabular-nums}
.accLine{font-size:15px;margin-bottom:8px}
.accRow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.accRow input{flex:1;min-width:150px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--txt);padding:0 10px;font:inherit}
.gBeta{background:repeating-linear-gradient(135deg,rgba(255,210,74,.07) 0 12px,transparent 12px 24px),linear-gradient(170deg,var(--panel2),var(--panel));border-style:dashed}
.gBeta .artBeta{font-size:46px;text-align:right;padding-right:10px}
.gBeta.open{border-color:var(--gold)}
.gtile.beta{border-color:rgba(255,210,74,.45)}
.betaTag{position:absolute;left:10px;top:10px;background:#ffd24a;color:#241a04;font-size:10px;font-weight:800;letter-spacing:1px;border-radius:6px;padding:2px 6px;z-index:2}
