:root{
  --bg:#080b0d;--bg2:#0d1214;--panel:#111719;--panel2:#151d1f;--line:#ffffff12;
  --text:#f6fbf8;--muted:#8b9b94;--green:#72f2a9;--green2:#26cc78;--gold:#ffd86b;--red:#ff667d;
  --safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-family:'Vazirmatn',Tahoma,Arial,sans-serif!important}
html,body{margin:0;width:100%;min-height:100%;background:var(--bg);color:var(--text);overscroll-behavior:none}
body{overflow:hidden;touch-action:manipulation;font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.app-shell{position:fixed;inset:0;overflow:hidden;background:radial-gradient(circle at 85% -10%,#1b3e2d 0,transparent 30%),radial-gradient(circle at -10% 80%,#1d2930 0,transparent 28%),var(--bg)}
.ambient{position:absolute;pointer-events:none;border-radius:50%;opacity:.18}.ambient-a{width:260px;height:260px;right:-110px;top:10%;background:#28df82}.ambient-b{width:220px;height:220px;left:-120px;bottom:5%;background:#3675ff}.noise{position:absolute;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}
.screen{position:absolute;inset:0;display:none;z-index:2}.screen.active{display:block}.tab-screen{overflow-y:auto;overscroll-behavior-y:contain;padding:calc(var(--safe-top) + 14px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 96px) calc(var(--safe-left) + 16px);scrollbar-width:none}.tab-screen::-webkit-scrollbar{display:none}
.glass{background:linear-gradient(145deg,#151c1e,#0f1517);border:1px solid var(--line);box-shadow:0 14px 34px #00000028}
.eyebrow{display:block;color:var(--green);font-size:9px;font-weight:900;letter-spacing:1.7px;direction:ltr;text-align:right}.red-symbol{color:var(--red)!important}
.boot-screen{display:none;place-items:center;text-align:center;padding:30px}.boot-screen.active{display:grid;align-content:center}.brand-orb{width:94px;height:94px;border-radius:31px;display:grid;place-items:center;margin:auto;background:linear-gradient(145deg,#72f2a9,#1ba765);box-shadow:0 20px 60px #26dc8050}.brand-suit{font-size:50px;color:#07100c;line-height:1}.boot-screen h1{font-size:28px;margin:18px 0 1px;letter-spacing:1px;direction:ltr}.boot-screen h1 span{color:var(--green)}.boot-screen p{color:var(--muted);font-size:11px;margin:0}.loader{display:flex;gap:5px;justify-content:center;margin-top:24px;direction:ltr}.loader i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:loadPulse .8s ease-in-out infinite alternate}.loader i:nth-child(2){animation-delay:.12s}.loader i:nth-child(3){animation-delay:.24s}@keyframes loadPulse{to{transform:translateY(-7px);opacity:.35}}
.topbar{height:52px;display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.player-chip{display:flex;align-items:center;gap:10px;min-width:0}.player-chip>div:last-child{display:flex;flex-direction:column;min-width:0}.player-chip strong{font-size:13px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-chip span{font-size:9px;color:var(--muted);direction:ltr;text-align:right}.player-chip span b{color:var(--gold)}.avatar{width:46px;height:46px;flex:0 0 auto;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#23302a,#121917);border:1px solid #ffffff14;background-position:center;background-size:cover;font-weight:900;color:var(--green)}.avatar-sm{width:44px;height:44px;border-radius:15px}.avatar-xs{width:38px;height:38px;border-radius:13px}.avatar-lg{width:62px;height:62px;border-radius:20px;font-size:20px}.live-mini{display:flex;align-items:center;gap:6px;background:#66f0a50d;border:1px solid #66f0a51c;border-radius:99px;padding:6px 9px;color:#71f1aa;font-size:8px;font-weight:900}.live-mini i{width:6px;height:6px;border-radius:50%;background:#67f0a5;box-shadow:0 0 11px #67f0a5}
.hero-card{border-radius:28px;padding:19px;position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:#50eb9c14;left:-80px;top:-80px;pointer-events:none}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative}.hero-copy{}.hero-top h2{font-size:31px;line-height:1.24;margin:7px 0 0;font-weight:900}.hero-top h2 em{font-style:normal;color:var(--green)}.hero-mark{font-size:54px;line-height:1;color:#82f7b638;transform:rotate(-10deg)}.hero-card>p{color:var(--muted);font-size:10px;line-height:1.9;margin:10px 0 16px;position:relative}.hero-actions{display:grid;gap:9px;position:relative}.action-tile{width:100%;height:66px;border:1px solid #ffffff0f;border-radius:20px;background:#ffffff07;color:var(--text);display:grid;grid-template-columns:46px 1fr 20px;gap:10px;align-items:center;padding:0 13px;text-align:right;transition:transform .12s ease,background .12s ease}.action-tile:active{transform:scale(.985);background:#ffffff0c}.action-tile.primary{background:linear-gradient(135deg,#73f0aa,#2ec97c);border:0;color:#07110c}.action-tile>span:nth-child(2){display:flex;flex-direction:column}.action-tile b{font-size:13px}.action-tile small{font-size:8px;opacity:.64;margin-top:3px}.action-tile>i{font-size:25px;font-style:normal;opacity:.5;transform:rotate(180deg)}.tile-icon{width:42px;height:42px;border-radius:14px;background:#07110c14;display:grid;place-items:center;font-size:20px;font-weight:900}.action-tile:not(.primary) .tile-icon{background:#70f2a911;color:var(--green);border:1px solid #70f2a91a}.tile-icon.cpu{font-size:11px;letter-spacing:.3px}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:11px 0 21px}.stat-card{border-radius:18px;padding:12px 10px;display:flex;flex-direction:column}.stat-card span{font-size:8px;color:var(--muted)}.stat-card b{font-size:22px;margin-top:2px}.mini-section{margin-top:5px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:0 3px 10px}.section-title small{font-size:7px;letter-spacing:1px;color:#65736d;direction:ltr;display:block;text-align:right}.section-title h3{font-size:15px;margin:1px 0 0}.link-btn{border:0;background:transparent;color:var(--green);font-size:9px;padding:7px}.podium-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;min-height:96px}.podium-card{border:1px solid var(--line);background:#101719;border-radius:20px;padding:11px 7px;text-align:center;min-width:0}.podium-card:first-child{background:linear-gradient(160deg,#2d2919,#131713);border-color:#ffd66b25}.podium-card .avatar{margin:auto;width:38px;height:38px;border-radius:13px}.podium-card b{font-size:9px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}.podium-card span{font-size:8px;color:var(--gold)}.empty-mini{grid-column:1/-1;border:1px dashed #ffffff12;border-radius:18px;display:grid;place-items:center;color:var(--muted);font-size:10px}
.page-head{display:flex;justify-content:space-between;align-items:center;margin:7px 2px 18px}.page-head h1{margin:4px 0 0;font-size:25px}.page-head p{margin:3px 0 0;color:var(--muted);font-size:9px}.head-icon{width:54px;height:54px;border-radius:18px;background:#72f2a912;color:var(--green);border:1px solid #72f2a91d;display:grid;place-items:center;font-size:26px}.head-icon.gold{color:var(--gold);background:#ffd86b0e;border-color:#ffd86b1b}.mode-stack{display:grid;gap:11px}.mode-card{height:122px;border-radius:25px;color:var(--text);display:grid;grid-template-columns:64px 1fr 24px;gap:13px;align-items:center;text-align:right;padding:15px;border:1px solid var(--line);transition:transform .13s ease}.mode-card:active{transform:scale(.985)}.mode-glyph{width:58px;height:70px;border-radius:19px;display:grid;place-items:center;font-size:22px;font-weight:900;background:#72f2a910;color:var(--green);border:1px solid #72f2a91c}.ai-mode .mode-glyph{font-size:14px}.mode-copy{display:flex;flex-direction:column}.mode-copy small{font-size:7px;letter-spacing:1px;color:#66766f;direction:ltr;text-align:right}.mode-copy b{font-size:18px;margin:5px 0 2px}.mode-copy em{font-size:9px;color:var(--muted);font-style:normal}.mode-arrow{font-size:27px;color:#607069;transform:rotate(180deg)}.online-mode{background:linear-gradient(145deg,#17201d,#0f1517)}.ai-mode{background:linear-gradient(145deg,#171b22,#101417)}.info-strip{margin-top:12px;border-radius:20px;padding:13px;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}.info-strip>span{font-size:20px}.info-strip div{display:flex;flex-direction:column}.info-strip b{font-size:10px}.info-strip small{font-size:8px;color:var(--muted);margin-top:2px}
.ranking-panel{border-radius:25px;padding:8px}.ranking-list{display:grid}.rank-row{height:64px;display:grid;grid-template-columns:36px 42px 1fr auto;gap:9px;align-items:center;border-bottom:1px solid #ffffff09;padding:0 7px}.rank-row:last-child{border-bottom:0}.rank-pos{font-size:13px;font-weight:900;color:#66776f;text-align:center}.rank-row.top1 .rank-pos{color:var(--gold)}.rank-row.top2 .rank-pos{color:#d7e2df}.rank-row.top3 .rank-pos{color:#d7a774}.rank-row .avatar{width:38px;height:38px;border-radius:13px}.rank-name{min-width:0}.rank-name b{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-name small{font-size:8px;color:var(--muted)}.rank-elo{direction:ltr;text-align:left}.rank-elo b{font-size:12px;color:var(--gold)}.rank-elo small{display:block;font-size:7px;color:#68766f}.rank-empty{padding:38px;text-align:center;color:var(--muted);font-size:10px}
.profile-card{border-radius:25px;padding:17px}.profile-name{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid #ffffff0b}.profile-name strong{font-size:16px}.profile-name span{direction:ltr;font-size:9px;color:var(--muted)}.profile-name b{color:var(--gold);font-size:15px}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:14px}.profile-stats div{text-align:center;border-left:1px solid #ffffff0b}.profile-stats div:last-child{border-left:0}.profile-stats span{display:block;font-size:8px;color:var(--muted)}.profile-stats b{font-size:20px}.ai-record{border-radius:21px;margin-top:10px;padding:12px;display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center}.ai-record-icon{width:42px;height:42px;border-radius:14px;background:#72f2a912;color:var(--green);display:grid;place-items:center;font-size:11px;font-weight:900}.ai-record>div:nth-child(2){display:flex;flex-direction:column}.ai-record small{font-size:8px;color:var(--muted)}.ai-record b{font-size:11px;margin-top:3px}.ai-record>span{font-size:8px;color:#6d7b75}.settings-list{border-radius:23px;margin-top:10px;overflow:hidden}.settings-list button{height:63px;width:100%;display:grid;grid-template-columns:36px 1fr 18px;gap:10px;align-items:center;background:transparent;border:0;border-bottom:1px solid #ffffff09;color:var(--text);text-align:right;padding:0 13px}.settings-list button:last-child{border-bottom:0}.settings-list button>span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#ffffff08}.settings-list button div{display:flex;flex-direction:column}.settings-list button b{font-size:10px}.settings-list button small{font-size:8px;color:var(--muted);margin-top:2px}.settings-list button i{font-size:22px;font-style:normal;color:#62716a;transform:rotate(180deg)}
.main-nav{position:fixed;z-index:12;left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);bottom:calc(var(--safe-bottom) + 10px);height:70px;border-radius:24px;background:#121719f2;border:1px solid #ffffff12;box-shadow:0 12px 35px #0009;display:grid;grid-template-columns:repeat(4,1fr);padding:7px;transition:transform .2s ease,opacity .2s ease}.main-nav.hidden{transform:translateY(105px);opacity:0;pointer-events:none}.nav-item{position:relative;border:0;background:transparent;color:#66756e;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0}.nav-item span{font-size:17px;line-height:1}.nav-item b{font-size:8px;font-weight:700}.nav-item.active{background:#72f2a910;color:var(--green)}.nav-item.active:before{content:"";position:absolute;top:-4px;width:20px;height:3px;border-radius:99px;background:var(--green);box-shadow:0 0 12px #72f2a9}
.queue-screen{padding:calc(var(--safe-top) + 20px) 20px calc(var(--safe-bottom) + 20px);align-items:center;justify-content:center}.queue-screen.active{display:flex}.queue-box{text-align:center;width:min(390px,100%)}.radar{width:190px;height:190px;margin:0 auto 20px;position:relative;display:grid;place-items:center}.radar-ring{position:absolute;border:1px solid #6cf2aa25;border-radius:50%;animation:radarPulse 1.8s ease-out infinite}.r1{inset:60px}.r2{inset:31px;animation-delay:.45s}.r3{inset:3px;animation-delay:.9s}@keyframes radarPulse{0%{transform:scale(.78);opacity:.15}55%{opacity:.8}100%{transform:scale(1.05);opacity:.05}}.radar-core{width:78px;height:78px;border-radius:26px;background:linear-gradient(145deg,#72f2a9,#29c476);display:grid;place-items:center;color:#08110d;font-size:39px;box-shadow:0 18px 50px #43e7923c}.radar-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:#85ffc0;box-shadow:0 0 14px #62ffb1}.d1{top:32px;left:40px}.d2{right:22px;bottom:65px}.d3{left:17px;bottom:45px}.live-pill{display:inline-flex;align-items:center;gap:7px;background:#28d98212;border:1px solid #4ce99b24;color:#5ff2a8;border-radius:99px;padding:6px 10px;font-size:9px}.live-pill i{width:6px;height:6px;border-radius:50%;background:#54efa2}.queue-box h2{font-size:23px;margin:15px 0 8px}.queue-box p{font-size:10px;line-height:1.9;color:var(--muted);margin:0 auto;width:90%}.queue-time{margin:24px auto 18px;display:flex;flex-direction:column}.queue-time span{font-size:28px;font-weight:900;color:var(--gold);direction:ltr}.queue-time small{color:var(--muted);font-size:8px}.ghost-btn{height:47px;min-width:150px;border:1px solid #ffffff13;border-radius:16px;background:#ffffff07;color:#d5e9df;font-weight:800;font-size:11px}.ghost-btn:active{transform:scale(.98)}
.game-screen{padding:calc(var(--safe-top) + 4px) calc(var(--safe-right) + 5px) calc(var(--safe-bottom) + 4px) calc(var(--safe-left) + 5px);display:none;grid-template-rows:54px 110px 1fr 184px;gap:2px;background:radial-gradient(circle at 50% 42%,#10291d 0,transparent 45%)}.game-screen.active{display:grid}.game-header{display:grid;grid-template-columns:44px 1fr 48px;align-items:center;gap:8px}.icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid #ffffff10;background:#ffffff08;color:#d5e9df;font-size:20px;display:grid;place-items:center}.icon-btn.danger{color:#ff95a5}.score-board{justify-self:center;display:grid;grid-template-columns:56px 45px 56px;align-items:center;background:#0c1213;border:1px solid #ffffff0e;border-radius:17px;padding:6px 7px;text-align:center}.score-board div{display:flex;align-items:center;justify-content:center;gap:6px}.score-board small{font-size:7px;color:var(--muted);max-width:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-board b{font-size:20px}.score-board>span{font-size:7px;color:#6b8076;border-left:1px solid #ffffff0c;border-right:1px solid #ffffff0c}.trump-badge{width:46px;height:46px;border-radius:15px;border:1px solid #eccb7040;background:#e7c15d0d;display:flex;flex-direction:column;justify-content:center;align-items:center}.trump-badge small{font-size:7px;color:#ad9460}.trump-badge b{font-size:22px;color:var(--gold);line-height:1}.opponent-area{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.opponent-profile{display:grid;grid-template-columns:48px 1fr 44px;align-items:center;gap:9px;width:min(320px,90%)}.opponent-profile>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.opponent-profile strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent-profile span{font-size:8px;color:var(--muted);margin-top:2px}.opponent-profile span b{color:var(--gold)}.opponent-deck{height:48px;position:relative;width:210px;margin-top:3px;direction:ltr}.card-back{position:absolute;width:34px;height:48px;border-radius:7px;background:repeating-linear-gradient(45deg,#16392a 0 4px,#0b2319 4px 8px);border:1px solid #9cf8c32d;box-shadow:0 4px 9px #0005}.card-back:after{content:"♠";position:absolute;inset:3px;border:1px solid #d9ffe724;border-radius:4px;display:grid;place-items:center;color:#7beeb049;font-size:14px}.table-area{position:relative;min-height:0;border-radius:42%/11%;background:radial-gradient(circle at center,#153c2a 0,#0c281c 55%,#07160f 100%);border:1px solid #ffffff0b;box-shadow:inset 0 0 50px #0006;overflow:hidden}.table-area:after{content:"";position:absolute;inset:11px;border:1px solid #ffffff08;border-radius:42%/11%;pointer-events:none}.table-glow{position:absolute;inset:24%;border-radius:50%;background:#52e99b0b}.status-pill{position:absolute;z-index:4;top:9px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#03100bdc;border:1px solid #ffffff10;color:#aac4b7;padding:6px 10px;border-radius:99px;font-size:8px}.status-pill.mine{color:#07170f;background:var(--green);font-weight:900}.trick-area{position:absolute;inset:35px 16px 8px;z-index:3}.played-slot{position:absolute;width:66px;height:91px;left:50%;transform:translateX(-50%)}.played-slot.top{top:4px}.played-slot.bottom{bottom:3px}.center-mark{position:absolute;left:50%;top:50%;width:55px;height:55px;transform:translate(-50%,-50%);display:grid;place-items:center;color:#ffffff08;font-size:34px}.center-mark i{position:absolute;width:9px;height:9px;border:1px solid #ffffff14;transform:rotate(45deg)}.last-trick{position:absolute;z-index:5;bottom:8px;left:10px;color:#799285;font-size:8px}.player-area{display:grid;grid-template-rows:42px 1fr;min-height:0}.player-meta{display:grid;grid-template-columns:42px 1fr 38px;align-items:center;gap:8px}.player-meta>span{text-align:center;color:#9db7aa;font-size:9px}.timer-ring{--p:100;width:40px;height:40px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p)*1%),#ffffff0c 0);display:grid;place-items:center;position:relative}.timer-ring:before{content:"";position:absolute;inset:4px;border-radius:50%;background:#08150f}.timer-ring span{position:relative;z-index:1;font-size:9px;font-weight:800;color:#d5f7e4;direction:ltr}.timer-ring.danger{background:conic-gradient(var(--red) calc(var(--p)*1%),#ffffff0c 0)}
.hand{position:relative;height:140px;direction:ltr;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px;contain:layout paint}.playing-card{position:absolute;width:66px;height:96px;border-radius:11px;background:linear-gradient(150deg,#fff,#edf1ee);color:#111b17;border:1px solid #fff;box-shadow:0 7px 16px #0008;transform-origin:50% 145%;transition:transform .12s ease,filter .12s ease,opacity .12s ease;overflow:hidden;will-change:transform}.playing-card .corner{position:absolute;top:5px;left:6px;display:flex;flex-direction:column;line-height:.9;font-size:13px;font-weight:900}.playing-card .corner i{font-style:normal;font-size:12px;margin-top:2px}.playing-card .suit-big{position:absolute;inset:0;display:grid;place-items:center;font-size:34px}.playing-card.red{color:#d7354e}.playing-card.legal{box-shadow:0 7px 16px #0008,0 0 0 1px #69f5ac5c,0 0 15px #3dec9638}.playing-card.legal:active{transform:translateY(-8px)!important}.playing-card.disabled{filter:brightness(.6) saturate(.55);opacity:.74}.playing-card.pending{opacity:.3;pointer-events:none}.face-label{position:absolute;right:4px;bottom:5px;max-width:43px;padding:2px 4px;border-radius:7px;background:#101915;color:#fff;font-size:7px;font-weight:900;line-height:1.15;text-align:center;direction:rtl}.playing-card.red .face-label{background:#7e1f2c}.face-code{display:block;font-size:6px;opacity:.7;direction:ltr}.played-slot .playing-card{position:relative;left:auto!important;transform:none!important;width:60px;height:86px;animation:cardDrop .14s ease-out}.played-slot .face-label{font-size:6px}@keyframes cardDrop{from{opacity:.15;transform:scale(.86) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.network-badge{position:absolute;z-index:8;right:9px;bottom:calc(var(--safe-bottom) + 7px);display:flex;align-items:center;gap:5px;background:#06100cbd;border:1px solid #ffffff0d;border-radius:99px;padding:4px 7px;color:#789084;font-size:7px}.network-badge i{width:5px;height:5px;border-radius:50%;background:var(--green)}.network-badge.slow i{background:var(--gold)}.network-badge.offline i{background:var(--red)}
.modal{position:fixed;inset:0;z-index:20;display:none;align-items:flex-end;justify-content:center;background:#010604c9;padding:16px calc(var(--safe-right) + 10px) calc(var(--safe-bottom) + 10px) calc(var(--safe-left) + 10px)}.modal.open{display:flex}.modal-card{position:relative;width:min(400px,100%);border-radius:28px;padding:24px 19px;text-align:center;animation:sheetUp .16s ease-out}@keyframes sheetUp{from{transform:translateY(18px);opacity:.3}to{transform:none;opacity:1}}.modal-icon{font-size:28px}.cpu-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:#72f2a912;color:var(--green);font-size:13px;font-weight:900;margin:auto}.modal-card h2{margin:9px 0 6px;font-size:21px}.modal-card p{margin:0;color:var(--muted);font-size:9px;line-height:1.8}.modal-close{position:absolute;top:13px;left:13px;width:34px;height:34px;border-radius:12px;border:1px solid #ffffff10;background:#ffffff08;color:#bcd2c7;font-size:20px}.ai-levels{display:grid;gap:8px;margin-top:17px}.ai-levels button{min-height:62px;border-radius:18px;border:1px solid #ffffff0e;background:#ffffff06;color:var(--text);display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:8px;text-align:right;padding:8px 11px}.ai-levels button>span{font-size:20px}.ai-levels button div{display:flex;flex-direction:column}.ai-levels button b{font-size:11px}.ai-levels button small{font-size:8px;color:var(--muted);margin-top:2px}.ai-levels button em{font-style:normal;color:#07120d;background:var(--green);border-radius:99px;padding:3px 6px;font-size:6px;font-weight:900}.ai-levels button:active{transform:scale(.985)}.suit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:17px}.suit-grid button{height:78px;border-radius:18px;background:#ffffff08;border:1px solid #ffffff0c;color:#eefcf5;display:flex;flex-direction:column;align-items:center;justify-content:center}.suit-grid button b{font-size:30px;line-height:1}.suit-grid button span{font-size:8px;color:#8fa89b;margin-top:6px}.suit-grid button.red b{color:var(--red)}.trump-modal>small{display:block;color:#6e897b;font-size:7px;margin-top:12px}.result-card .match-btn{margin-top:15px}.result-card .ghost-btn{width:100%;margin-top:8px}.result-icon{font-size:50px}.result-card>span{font-size:8px;letter-spacing:1px;color:var(--green)}.result-card h2{font-size:28px}.rating-delta{display:inline-flex;margin-top:13px;background:#49ee9a12;border:1px solid #57f0a22d;color:var(--green);padding:7px 12px;border-radius:99px;font-weight:900;font-size:11px}.rating-delta.negative{color:#ff8192;background:#ff5f7510;border-color:#ff5f7524}.rating-delta.no-rating{color:#b9c7c0;background:#ffffff08;border-color:#ffffff10}.match-btn{width:100%;min-height:58px;border:0;border-radius:18px;background:linear-gradient(135deg,#72f2a9,#28c576);color:#07120d;display:flex;flex-direction:column;align-items:center;justify-content:center}.match-btn b{font-size:12px}.match-btn small{font-size:7px;opacity:.6}.rules-card{text-align:right;max-height:min(650px,85vh);overflow:auto}.rules-card>.modal-icon,.rules-card>h2{text-align:center;display:block}.rules-card ol{padding-right:20px;margin:16px 0;line-height:2;color:#b7cbbf;font-size:9px}.rules-card li{padding-right:4px}.rules-card .ghost-btn{width:100%}.toast{position:fixed;z-index:50;left:50%;top:calc(var(--safe-top) + 9px);transform:translate(-50%,-14px);opacity:0;pointer-events:none;background:#0c1e16f3;border:1px solid #ffffff13;border-radius:14px;padding:9px 12px;font-size:9px;color:#e7fff2;transition:.16s;max-width:88%;text-align:center;box-shadow:0 10px 26px #0006}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{border-color:#ff657937;color:#ffc4cd}.confetti{position:fixed;inset:0;z-index:19;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;width:6px;height:11px;background:var(--green);animation:confettiFall 1.5s linear forwards}.confetti i:nth-child(3n){background:var(--gold)}.confetti i:nth-child(4n){background:var(--red)}@keyframes confettiFall{to{transform:translate(var(--drift),110vh) rotate(650deg);opacity:.2}}
@media(max-height:700px){.game-screen{grid-template-rows:50px 96px 1fr 162px}.opponent-deck{margin-top:0}.hand{height:118px}.playing-card{width:59px;height:85px}.face-label{font-size:6px}.hero-top h2{font-size:27px}.modal-card{padding:20px}.suit-grid button{height:67px}}
@media(min-width:700px){.tab-screen,.game-screen{width:520px;left:50%;right:auto;transform:translateX(-50%)}.main-nav{width:496px;left:50%;right:auto;transform:translateX(-50%)}.main-nav.hidden{transform:translate(-50%,105px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Gameplay clarity patch 1.1.2 */
.playing-card{isolation:isolate}.playing-card .corner{z-index:5;min-width:20px}.playing-card .corner-br{top:auto;left:auto;right:6px;bottom:5px;transform:rotate(180deg)}.rank-line{display:flex;align-items:center;gap:2px}.rank-line em{font-style:normal;font-size:8px;line-height:1;color:currentColor}.court-card{background:linear-gradient(155deg,#fff 0,#f5f2e8 58%,#e9eee9 100%)}.court-card .suit-big{display:none}.court-art{position:absolute;z-index:1;left:50%;top:47%;width:48px;height:58px;transform:translate(-50%,-50%);display:grid;place-items:center;color:#1b2a23}.court-card.red .court-art{color:#bd2d45}.court-art svg{width:100%;height:100%;display:block;fill:currentColor}.court-art .court-accent{fill:#c69224}.court-art .court-line{fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;opacity:.82}.face-name{position:absolute;z-index:4;bottom:6px;left:50%;transform:translateX(-50%);background:#0e1713;color:#fff;border-radius:999px;padding:2px 7px;font-size:7px;font-weight:900;white-space:nowrap;box-shadow:0 2px 8px #0004}.court-card.red .face-name{background:#7a2030}.face-k .rank-line em{color:#b98412}.face-q .rank-line em{color:#b98412}.face-j .rank-line em{font-size:7px}
.played-slot{width:118px;height:120px;display:flex;align-items:center;justify-content:center}.played-slot.top{top:0}.played-slot.bottom{bottom:0}.played-slot .playing-card{position:relative;left:auto!important;transform:none!important;width:76px;height:108px;border-radius:13px;animation:cardDropClear .22s cubic-bezier(.2,.8,.2,1);box-shadow:0 12px 28px #000a}.played-slot .court-art{width:54px;height:64px}.played-slot .face-name{font-size:8px;padding:3px 8px}.played-card-caption{position:absolute;z-index:9;left:50%;transform:translateX(-50%);min-width:118px;max-width:145px;text-align:center;background:#06110ddc;border:1px solid #ffffff14;border-radius:10px;padding:4px 7px;color:#f4fff9;font-size:8px;font-weight:800;white-space:nowrap;box-shadow:0 6px 16px #0007}.played-slot.top .played-card-caption{bottom:-16px}.played-slot.bottom .played-card-caption{top:-16px}.frozen-card{box-shadow:0 12px 30px #000b,0 0 0 2px #ffd86b66!important}@keyframes cardDropClear{0%{opacity:.1;transform:scale(.78) translateY(14px)}65%{opacity:1;transform:scale(1.05) translateY(-2px)}100%{transform:scale(1)}}
.trick-review{position:absolute;z-index:20;inset:31px 10px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#07110ef2,#0b1914f5);border:1px solid #ffffff16;border-radius:28px;box-shadow:0 20px 50px #000b;opacity:0;transform:scale(.96);pointer-events:none;visibility:hidden;transition:opacity .16s ease,transform .16s ease}.trick-review.show{opacity:1;transform:scale(1);visibility:visible;pointer-events:auto}.review-head{text-align:center;margin-bottom:8px}.review-head small{display:block;color:#82998d;font-size:7px;letter-spacing:.7px}.review-head b{display:block;margin-top:2px;font-size:13px}.trick-review.won .review-head b{color:var(--green)}.trick-review.lost .review-head b{color:#ff94a4}.review-duel{width:min(285px,92%);display:grid;grid-template-columns:1fr 34px 1fr;gap:7px;align-items:center}.review-side{text-align:center;min-width:0}.review-side>span{display:block;font-size:8px;color:#9cb1a7;margin-bottom:4px}.review-side>strong{display:block;font-size:8px;color:#f5fff9;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-card-slot{height:106px;display:grid;place-items:center}.review-card-slot .playing-card{position:relative;left:auto!important;transform:none!important;width:72px;height:104px;box-shadow:0 12px 25px #000b}.review-card-slot .court-art{width:52px;height:62px}.review-card-slot .face-name{font-size:8px}.review-vs{font-size:10px;color:#687d73;font-weight:900;direction:ltr}.review-hint{margin-top:8px;color:#6d8579;font-size:7px}.last-trick{bottom:6px;left:12px;background:#06110da8;border-radius:8px;padding:3px 6px}
@media(max-height:700px){.played-slot .playing-card{width:68px;height:96px}.played-slot .court-art{width:48px;height:56px}.trick-review{inset:27px 8px 7px}.review-card-slot{height:92px}.review-card-slot .playing-card{width:64px;height:92px}.review-card-slot .court-art{width:45px;height:53px}.review-hint{display:none}}


/* === Gameplay Clarity Upgrade 1.1.3 === */
.playing-card{background:linear-gradient(180deg,#ffffff 0%,#f7f8f6 58%,#eef2ef 100%)}
.playing-card .corner{z-index:8;min-width:24px}
.pip-card .corner i{font-size:13px}
.pip-layer{position:absolute;inset:15px 11px 15px 11px;display:block}
.pip{position:absolute;transform:translate(-50%,-50%);font-size:18px;line-height:1;font-style:normal;text-shadow:0 1px 0 #fff6}
.played-slot .pip{font-size:20px}.review-card-slot .pip{font-size:19px}
.pip-rank-badge{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);padding:2px 7px;border-radius:999px;background:#0b1411;color:#fff;font-size:7px;font-weight:800;letter-spacing:.1px;opacity:.92}
.playing-card.red .pip-rank-badge{background:#7c1f2e}
.rank-a .pip{font-size:32px}.rank-a .pip-rank-badge{display:none}
.rank-2 .pip,.rank-3 .pip{font-size:21px}.rank-7 .pip,.rank-8 .pip,.rank-9 .pip,.rank-10 .pip{font-size:16px}
.court-card{background:linear-gradient(180deg,#fffdfa 0%,#f8f1df 50%,#eff1ed 100%)}
.court-frame{position:absolute;inset:8px;border-radius:12px;border:1px solid #1d2f2912;background:linear-gradient(180deg,#ffffff66,#ffffff10)}
.court-art{left:50%;top:46%;width:54px;height:64px;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 5px #00000022)}
.played-slot .court-art{width:60px;height:70px}.review-card-slot .court-art{width:57px;height:68px}
.court-card.red .court-art{color:#c5324c}.court-card .court-art{color:#22322b}
.court-ribbon{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;background:#101815;color:#fff;padding:3px 9px;border-radius:999px;font-size:7px;font-weight:900;box-shadow:0 4px 10px #0002}
.court-card.red .court-ribbon{background:#7f2231}
.court-ribbon small{font-size:6px;opacity:.75;direction:ltr}
.court-suit-chip{position:absolute;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#ffffffcf;border:1px solid #00000014;font-size:11px;box-shadow:0 2px 6px #00000012}
.top-chip{right:7px;top:24px}.bottom-chip{left:7px;bottom:24px}
.court-card.red .court-suit-chip{color:#d7354e}
.face-k .court-ribbon,.face-q .court-ribbon,.face-j .court-ribbon{font-size:8px}
.review-waiting{width:68px;height:98px;border-radius:14px;border:1px dashed #ffffff35;display:grid;place-items:center;background:#ffffff06;color:#8ba196;font-size:22px;font-weight:900}
.trick-review{inset:24px 8px 8px;background:linear-gradient(160deg,#06100ef7,#0d1d18fb);border:1px solid #ffffff1b}
.review-head small{font-size:8px}.review-head b{font-size:15px}
.review-duel{width:min(310px,94%);grid-template-columns:1fr 44px 1fr;gap:10px}
.review-vs{font-size:12px;color:#87a092}
.review-side>strong{font-size:9px}
.review-hint{font-size:8px;color:#88a092;line-height:1.7;text-align:center;max-width:250px}
.played-card-caption{font-size:8.5px;min-width:128px;max-width:160px;padding:5px 8px}
.played-slot.top .played-card-caption{bottom:-18px}.played-slot.bottom .played-card-caption{top:-18px}
.status-pill{font-size:8.5px;padding:7px 12px}
.last-trick{font-size:8.5px;padding:4px 7px}
.center-mark{opacity:.9}
@media(max-height:700px){
  .pip-layer{inset:13px 9px}
  .pip{font-size:16px}
  .rank-a .pip{font-size:28px}
  .court-art{width:50px;height:58px}
  .court-ribbon{font-size:6.5px}
  .review-head b{font-size:13px}
}


/* === Classic Deck + Trump Reveal 1.1.4 === */
.classic-card{border-radius:9px;background:#fff;color:#121212;border:1px solid #d9dde2;box-shadow:0 8px 20px #0008, inset 0 0 0 1px #ffffff;overflow:hidden}
.classic-card.red{color:#c9233d}
.classic-corner{top:4px!important;left:5px!important;gap:0!important;line-height:.83!important;align-items:center!important;min-width:17px!important;font-family:Vazirmatn,Tahoma,sans-serif!important}
.classic-corner b{font-size:14px;line-height:.9;font-weight:900;letter-spacing:-.6px}
.classic-corner i{font-size:11px!important;margin-top:2px!important;line-height:1}
.classic-card .corner-br{top:auto!important;left:auto!important;right:5px!important;bottom:4px!important;transform:rotate(180deg)!important}
.pip-layer{position:absolute;inset:13px 10px 13px;z-index:2}
.pip{position:absolute;transform:translate(-50%,-50%);font-size:18px;line-height:1;font-style:normal;font-family:Arial,sans-serif;text-shadow:none}
.pip.flip{transform:translate(-50%,-50%) rotate(180deg)}
.pip.ace-pip{font-size:34px}
.rank-10 .classic-corner b{font-size:11px;letter-spacing:-1px}
.rank-8 .pip,.rank-9 .pip,.rank-10 .pip{font-size:15px}
.rank-7 .pip{font-size:16px}
.rank-2 .pip,.rank-3 .pip,.rank-4 .pip,.rank-5 .pip,.rank-6 .pip{font-size:18px}
.court-card{background:#fff!important}
.court-art{position:absolute;z-index:2;left:50%!important;top:50%!important;width:49px!important;height:71px!important;transform:translate(-50%,-50%)!important;filter:none!important;color:initial!important}
.court-art svg{width:100%;height:100%;display:block}
.court-card.red .court-art{color:initial!important}
.court-name-tag{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;background:#0c1512e8;color:#fff;border:1px solid #ffffff44;font-size:6px;font-weight:900;white-space:nowrap;box-shadow:0 2px 7px #0004}
.court-name-tag small{font-size:5.5px;direction:ltr;opacity:.78}
.court-card.red .court-name-tag{background:#8f2333ea}
.played-slot .classic-card{width:80px!important;height:114px!important;border-radius:10px!important}
.played-slot .classic-corner b{font-size:16px}.played-slot .classic-corner i{font-size:13px!important}.played-slot .rank-10 .classic-corner b{font-size:12px}
.played-slot .pip{font-size:21px}.played-slot .rank-7 .pip{font-size:19px}.played-slot .rank-8 .pip,.played-slot .rank-9 .pip,.played-slot .rank-10 .pip{font-size:18px}.played-slot .pip.ace-pip{font-size:40px}
.played-slot .court-art{width:59px!important;height:86px!important}.played-slot .court-name-tag{font-size:7px;padding:2px 7px}
.review-card-slot .classic-card{width:76px!important;height:110px!important;border-radius:10px!important}
.review-card-slot .classic-corner b{font-size:15px}.review-card-slot .classic-corner i{font-size:12px!important}
.review-card-slot .pip{font-size:20px}.review-card-slot .rank-8 .pip,.review-card-slot .rank-9 .pip,.review-card-slot .rank-10 .pip{font-size:17px}.review-card-slot .pip.ace-pip{font-size:38px}
.review-card-slot .court-art{width:56px!important;height:82px!important}.review-card-slot .court-name-tag{font-size:7px}

.trump-reveal{position:fixed;z-index:48;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-top) + 20px) 18px calc(var(--safe-bottom) + 20px);background:radial-gradient(circle at 50% 45%,#184e34cc 0,#06100ef4 48%,#020605fa 100%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
.trump-reveal.show{opacity:1;visibility:visible;pointer-events:auto}
.trump-reveal-card{width:min(310px,88vw);border-radius:30px;padding:26px 20px 22px;text-align:center;background:linear-gradient(160deg,#111d18f5,#07110df8);border:1px solid #75f3ad2c;box-shadow:0 28px 70px #000c,0 0 45px #3ee79818;transform:scale(.88) translateY(8px);transition:transform .22s cubic-bezier(.2,.85,.2,1)}
.trump-reveal.show .trump-reveal-card{transform:scale(1) translateY(0)}
.trump-reveal-label{display:inline-flex;padding:5px 10px;border-radius:999px;background:#ffffff09;color:#8eaa9c;font-size:8px;letter-spacing:.5px}
.trump-reveal-suit{font-family:Arial,sans-serif;font-size:92px;line-height:1;margin:12px 0 5px;color:#f1f8f4;filter:drop-shadow(0 10px 18px #0008)}
.trump-reveal.red-suit .trump-reveal-suit{color:#f0445d}
.trump-reveal-card h2{margin:0;font-size:28px;color:#f7fff9}.trump-reveal.red-suit .trump-reveal-card h2{color:#ffbac5}
.trump-reveal-card p{margin:5px 0 0;color:#9bb1a6;font-size:10px}
.trump-reveal-line{width:74px;height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,#75f3ad,transparent);margin:16px auto 0}.trump-reveal.red-suit .trump-reveal-line{background:linear-gradient(90deg,transparent,#f0445d,transparent)}
.trump-badge{box-shadow:0 0 0 1px #ffffff05,0 6px 18px #0005}.trump-badge b{font-size:25px}
.review-hint{font-size:8.5px!important;line-height:1.85!important;max-width:280px!important;color:#acc2b7!important;padding:0 8px}
.trick-review.won .review-hint{color:#bff9d7!important}.trick-review.lost .review-hint{color:#ffd0d7!important}

@media(max-height:700px){
  .court-art{width:44px!important;height:64px!important}
  .classic-corner b{font-size:12px}.classic-corner i{font-size:10px!important}
  .pip-layer{inset:12px 9px}.pip{font-size:15px}.rank-8 .pip,.rank-9 .pip,.rank-10 .pip{font-size:13px}.pip.ace-pip{font-size:29px}
  .trump-reveal-suit{font-size:76px}.trump-reveal-card h2{font-size:24px}
}

/* =========================================================
   PRO GAMEPLAY + TRUE CLASSIC DECK — v1.2.0
   ========================================================= */
.game-screen{grid-template-rows:54px 96px minmax(0,1fr) 208px;gap:3px}
.game-context-bar{position:absolute;z-index:7;top:7px;left:50%;transform:translateX(-50%);width:calc(100% - 22px);display:flex;justify-content:center;gap:5px;pointer-events:none}
.context-chip{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 8px;border-radius:999px;background:#05100bd9;border:1px solid #ffffff12;color:#9fb8ac;font-size:7.5px;font-weight:800;white-space:nowrap;box-shadow:0 4px 12px #0005}
.context-chip.red-suit{color:#ff9eac;border-color:#ff667d25}
.status-pill{top:36px;font-size:9px;padding:7px 13px;box-shadow:0 7px 18px #0006}
.trick-area{inset:66px 10px 9px}
.center-mark{opacity:.42}
.center-mark span{font-size:30px}

/* Cards played are deliberately centered and layered, so the trick reads instantly. */
.played-slot{width:132px;height:132px;left:50%;top:50%!important;bottom:auto!important;display:flex;align-items:center;justify-content:center}
.played-slot.bottom{z-index:4;transform:translate(-50%,-28%) rotate(3deg)}
.played-slot.top{z-index:5;transform:translate(-50%,-73%) rotate(-3deg)}
.played-slot .classic-card{width:84px!important;height:120px!important;box-shadow:0 15px 34px #000b!important}
.played-slot.top .played-card-caption{top:-18px!important;bottom:auto!important}
.played-slot.bottom .played-card-caption{top:auto!important;bottom:-18px!important}
.played-card-caption{min-width:132px;max-width:170px;font-size:8.5px;padding:5px 9px;border-radius:11px;background:#06110ef2;border-color:#ffffff1b}

/* Rule coach explains the active rule instead of forcing the player to guess. */
.player-area{grid-template-rows:34px 42px minmax(0,1fr);gap:2px;min-height:0}
.player-meta{height:34px}
.rule-coach{min-height:38px;margin:0 6px;border-radius:13px;background:#0b1512;border:1px solid #ffffff0e;display:grid;grid-template-columns:28px auto 1fr;align-items:center;gap:6px;padding:5px 8px;color:#b5c8be;overflow:hidden}
.rule-coach>span{width:25px;height:25px;border-radius:9px;background:#ffffff08;display:grid;place-items:center;font-family:Georgia,'Times New Roman',serif!important;font-size:15px}
.rule-coach>b{font-size:8.5px;color:#eaf7f0;white-space:nowrap}.rule-coach>small{font-size:7.3px;color:#82998e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rule-coach.mine{border-color:#72f2a928;background:#0b1c14}.rule-coach.mine>span{background:#72f2a913;color:#72f2a9}.rule-coach.choosing{border-color:#ffd86b2d;background:#1c180d}.rule-coach.choosing>span{background:#ffd86b14}.rule-coach.waiting{opacity:.9}.rule-coach.red-rule>span{color:#ff667d}

/* Full-card hand rail: no more hiding the body of a 7 behind the next card. */
.hand{position:relative;height:126px;display:flex;align-items:flex-end;justify-content:flex-start;gap:7px;padding:7px 14px 9px;overflow-x:auto;overflow-y:hidden;direction:ltr;scroll-snap-type:x proximity;scroll-behavior:smooth;contain:layout paint;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}
.hand::-webkit-scrollbar{display:none}.hand{scrollbar-width:none}
.hand .playing-card{position:relative!important;left:auto!important;right:auto!important;flex:0 0 74px;width:74px;height:108px;transform:none!important;transform-origin:center!important;scroll-snap-align:center;transition:transform .13s ease,filter .13s ease,opacity .13s ease,box-shadow .13s ease}
.hand .playing-card.legal{box-shadow:0 8px 20px #0008,0 0 0 2px #6ef2a65a,0 0 18px #48e99a28}
.hand .playing-card.legal:active{transform:translateY(-9px) scale(1.025)!important}
.hand .playing-card.disabled{opacity:.47;filter:grayscale(.18) brightness(.78);box-shadow:0 5px 13px #0006}
.hand .playing-card.pending{opacity:.2;transform:translateY(-14px) scale(.96)!important}

/* True classic card body. Text still uses Vazirmatn; suit glyphs use a card-like serif glyph. */
.classic-card{background:#fff!important;color:#111!important;border:1px solid #d8d8d8!important;border-radius:9px!important;box-shadow:0 8px 20px #0008,inset 0 0 0 1px #fff!important;overflow:hidden}
.classic-card.red{color:#cf1738!important}
.classic-corner{top:4px!important;left:5px!important;min-width:18px!important;line-height:.82!important;align-items:center!important;z-index:12!important}
.classic-corner b{font-family:Vazirmatn,Tahoma,sans-serif!important;font-size:14px!important;font-weight:900!important;line-height:.88!important;letter-spacing:-.7px}
.classic-corner i,.pip{font-family:Georgia,'Times New Roman','DejaVu Serif',serif!important}
.classic-corner i{font-size:12px!important;line-height:1!important;margin-top:2px!important;font-style:normal!important}
.classic-card .corner-br{top:auto!important;left:auto!important;right:5px!important;bottom:4px!important;transform:rotate(180deg)!important}
.rank-10 .classic-corner b{font-size:11px!important;letter-spacing:-1.1px!important}

/* Every numeric card has a fixed pip map. data-pip-count is also emitted by JS for validation. */
.pip-layer{position:absolute!important;z-index:3!important;inset:14px 10px 14px!important;display:block!important}
.pip{position:absolute!important;display:block!important;transform:translate(-50%,-50%);font-size:19px!important;line-height:1!important;font-style:normal!important;text-shadow:none!important}
.pip.flip{transform:translate(-50%,-50%) rotate(180deg)!important}
.pip.ace-pip{font-size:38px!important}
.rank-7 .pip{font-size:17px!important}.rank-8 .pip,.rank-9 .pip,.rank-10 .pip{font-size:15.5px!important}
.hand .rank-7 .pip{font-size:17px!important}.hand .rank-8 .pip,.hand .rank-9 .pip,.hand .rank-10 .pip{font-size:15px!important}
.played-slot .pip{font-size:22px!important}.played-slot .rank-7 .pip{font-size:20px!important}.played-slot .rank-8 .pip,.played-slot .rank-9 .pip,.played-slot .rank-10 .pip{font-size:18px!important}.played-slot .pip.ace-pip{font-size:43px!important}
.review-card-slot .pip{font-size:21px!important}.review-card-slot .rank-8 .pip,.review-card-slot .rank-9 .pip,.review-card-slot .rank-10 .pip{font-size:17.5px!important}.review-card-slot .pip.ace-pip{font-size:41px!important}

/* Court cards are original, double-ended, colourful and much larger than before. */
.court-card{background:#fff!important}.court-art{position:absolute!important;z-index:3!important;left:50%!important;top:50%!important;width:58px!important;height:88px!important;transform:translate(-50%,-50%)!important;filter:none!important;color:initial!important}
.court-art svg{display:block!important;width:100%!important;height:100%!important}
.court-id{position:absolute;z-index:8;left:50%;bottom:5px;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;background:#101719e8;color:#fff;font-family:Vazirmatn,Tahoma,sans-serif!important;font-size:6.5px;font-weight:900;white-space:nowrap;border:1px solid #ffffff66;box-shadow:0 2px 7px #0004}
.court-id small{font-size:6px;opacity:.8;direction:ltr}.court-card.red .court-id{background:#8e1d31e8}
.played-slot .court-art{width:67px!important;height:99px!important}.played-slot .court-id{font-size:7px;padding:2px 7px}
.review-card-slot .court-art{width:64px!important;height:94px!important}.review-card-slot .court-id{font-size:7px}

/* Trick result is readable, not a blink. */
.trick-review{inset:28px 8px 8px;border-radius:26px;background:radial-gradient(circle at 50% 45%,#163026f5 0,#07100dfb 65%);border:1px solid #ffffff1d;box-shadow:0 18px 52px #000c}
.review-head{margin-bottom:7px}.review-head small{font-size:8px}.review-head b{font-size:15px}
.review-duel{width:min(322px,95%);grid-template-columns:1fr 40px 1fr;gap:9px}.review-card-slot{height:116px}.review-card-slot .classic-card{width:80px!important;height:114px!important}
.review-vs{font-size:11px;color:#81968b}.review-side>span{font-size:8px}.review-side>strong{font-size:9px;margin-top:5px}
.review-hint{margin-top:8px!important;max-width:296px!important;font-size:8.2px!important;line-height:1.9!important;color:#b4c9be!important;text-align:center}
.trick-winner{box-shadow:0 12px 28px #000b,0 0 0 3px #62f0a5!important;transform:translateY(-3px)!important}.trick-loser{filter:saturate(.72) brightness(.83)}
.trick-review.won .review-head b{color:#72f2a9}.trick-review.lost .review-head b{color:#ff9baa}

/* Strong trump announcement: actor + hakem + suit + who leads. */
.trump-reveal{background:radial-gradient(circle at 50% 42%,#1b5138e6 0,#07110ef7 50%,#020504fc 100%)}
.trump-reveal-card{width:min(330px,90vw);padding:22px 20px 24px;border-radius:31px;background:linear-gradient(160deg,#13231cf7,#07100dfb);border:1px solid #73f1aa35;box-shadow:0 30px 85px #000d,0 0 58px #46e9971c}
.trump-reveal-label{font-size:8px;font-weight:900}.trump-reveal-hakem{display:inline-flex;margin-top:10px;padding:5px 9px;border-radius:999px;background:#ffd86b10;border:1px solid #ffd86b24;color:#ffe8a5;font-size:9px;font-weight:800}
.trump-reveal-suit{font-family:Georgia,'Times New Roman',serif!important;font-size:96px;margin:6px 0 2px}.trump-reveal-card h2{font-size:29px}.trump-reveal-card p{font-size:10px}.trump-reveal-start{display:block;margin-top:8px;color:#d4e7dd;font-size:9px}.trump-reveal-line{margin-top:14px}
.trump-badge b{font-family:Georgia,'Times New Roman',serif!important;font-size:27px}

@media(max-width:360px){
  .context-chip{font-size:6.8px;padding:3px 6px}.game-context-bar{gap:3px}.rule-coach>small{font-size:6.8px}
  .hand .playing-card{flex-basis:70px;width:70px;height:103px}.hand{gap:6px;padding-left:12px;padding-right:12px}
}
@media(max-height:700px){
  .game-screen{grid-template-rows:48px 82px minmax(0,1fr) 178px}
  .game-context-bar{top:4px}.status-pill{top:31px}.trick-area{inset:58px 8px 7px}
  .player-area{grid-template-rows:30px 36px minmax(0,1fr)}
  .rule-coach{min-height:34px;padding:3px 7px}.rule-coach>small{font-size:6.7px}
  .hand{height:108px;padding-top:4px;padding-bottom:5px}.hand .playing-card{flex-basis:65px;width:65px;height:95px}
  .pip-layer{inset:12px 9px 12px!important}.pip{font-size:16px!important}.rank-7 .pip{font-size:15px!important}.rank-8 .pip,.rank-9 .pip,.rank-10 .pip{font-size:13.5px!important}.pip.ace-pip{font-size:32px!important}
  .court-art{width:51px!important;height:76px!important}.court-id{font-size:5.7px}
  .played-slot .classic-card{width:76px!important;height:108px!important}.played-slot .court-art{width:59px!important;height:88px!important}
  .trump-reveal-suit{font-size:78px}.trump-reveal-card h2{font-size:24px}
}

/* === Emergency visibility + trump preview hotfix 1.2.1 === */
.game-screen{grid-template-rows:52px 86px minmax(0,1fr) 214px!important}
.player-area{grid-template-rows:32px 40px 136px!important;gap:3px!important;min-height:211px!important;overflow:visible!important;position:relative;z-index:7;padding:0 2px 3px;background:linear-gradient(180deg,transparent,#07100c88 22%,#07100ce8 100%)}
.player-meta{height:32px!important;min-height:32px!important}
.rule-coach{min-height:38px!important;height:38px!important}
.hand{height:136px!important;min-height:136px!important;width:100%!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;padding:10px 14px 12px!important;overflow-x:auto!important;overflow-y:hidden!important;direction:ltr!important;mask-image:none!important;-webkit-mask-image:none!important;contain:none!important;scroll-snap-type:x proximity;background:linear-gradient(180deg,#ffffff04,#00000014);border-top:1px solid #ffffff08;border-radius:14px 14px 0 0;visibility:visible!important;opacity:1!important}
.hand .playing-card{position:relative!important;display:block!important;visibility:visible!important;opacity:1;flex:0 0 76px!important;width:76px!important;height:112px!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;z-index:1!important;scroll-snap-align:center}
.hand .playing-card.resting{opacity:1!important;filter:none!important;box-shadow:0 9px 22px #0009!important;pointer-events:none!important}
.hand .playing-card.illegal{opacity:.46!important;filter:grayscale(.12) brightness(.78)!important;box-shadow:0 5px 14px #0007!important}
.hand .playing-card.legal{opacity:1!important;filter:none!important;box-shadow:0 9px 23px #0009,0 0 0 2px #6ef2a66b,0 0 20px #48e99a34!important}
.hand-empty-state{width:100%;height:112px;border:1px dashed #ffffff18;border-radius:16px;display:grid;place-items:center;color:#91a79b;font-size:10px;direction:rtl}

/* Trump selection is now a real decision screen with the five opening cards visible. */
.trump-modal{width:min(430px,100%)!important;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 18px)!important;overflow-y:auto!important;padding:18px 15px 16px!important;overscroll-behavior:contain}
.trump-modal h2{margin-top:5px!important}.trump-modal>p{font-size:9px!important;line-height:1.8!important}
.trump-preview-block{margin-top:12px;padding:10px 8px 9px;border-radius:18px;background:#07100cf2;border:1px solid #ffffff12;box-shadow:inset 0 0 24px #0004}
.trump-preview-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 3px 8px;text-align:right}.trump-preview-title b{font-size:9px;color:#f3fff8}.trump-preview-title small{font-size:6.8px;color:#7e9488}
.trump-hand-preview{display:flex;align-items:center;justify-content:center;gap:5px;direction:ltr;min-height:82px;width:100%;overflow:visible}
.trump-hand-preview .playing-card{position:relative!important;display:block!important;visibility:visible!important;opacity:1!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;flex:0 0 54px!important;width:54px!important;height:80px!important;border-radius:7px!important;pointer-events:none!important;box-shadow:0 8px 18px #000a!important}
.trump-hand-preview .classic-corner{top:3px!important;left:4px!important}.trump-hand-preview .classic-corner b{font-size:10px!important}.trump-hand-preview .classic-corner i{font-size:8px!important}.trump-hand-preview .corner-br{right:4px!important;bottom:3px!important;left:auto!important;top:auto!important}
.trump-hand-preview .pip-layer{inset:11px 7px 11px!important}.trump-hand-preview .pip{font-size:12px!important}.trump-hand-preview .rank-7 .pip{font-size:11px!important}.trump-hand-preview .rank-8 .pip,.trump-hand-preview .rank-9 .pip,.trump-hand-preview .rank-10 .pip{font-size:9.5px!important}.trump-hand-preview .pip.ace-pip{font-size:25px!important}
.trump-hand-preview .court-art{width:42px!important;height:63px!important}.trump-hand-preview .court-id{font-size:5px!important;padding:1px 4px!important;bottom:3px!important}.trump-preview-empty{width:100%;height:76px;border:1px dashed #ffffff18;border-radius:12px;display:grid;place-items:center;color:#8aa093;font-size:8px;direction:rtl}
.trump-suit-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px}.trump-suit-summary>span{min-height:32px;border-radius:10px;background:#ffffff06;border:1px solid #ffffff0b;display:grid;grid-template-columns:16px 1fr 16px;align-items:center;gap:2px;padding:3px 5px;color:#dcebe3}.trump-suit-summary>span>b{font-family:Georgia,'Times New Roman',serif!important;font-size:15px}.trump-suit-summary>span.red>b{color:#ff667d}.trump-suit-summary>span>em{font-style:normal;font-size:6.7px;color:#90a499}.trump-suit-summary>span>strong{font-size:10px;color:#fff}
.trump-choice-label{margin:11px 0 3px;color:#ffd86b;font-size:8.5px;font-weight:900}
.trump-modal .suit-grid{margin-top:7px!important}.trump-modal .suit-grid button{height:62px!important;border-radius:15px!important}.trump-modal .suit-grid button b{font-size:27px!important}.trump-modal .suit-grid button span{font-size:7.5px!important;margin-top:4px!important}

@media(max-width:360px){
  .hand .playing-card{flex-basis:72px!important;width:72px!important;height:106px!important}.hand{gap:7px!important;padding-left:11px!important;padding-right:11px!important}
  .trump-hand-preview{gap:3px}.trump-hand-preview .playing-card{flex-basis:50px!important;width:50px!important;height:74px!important}.trump-hand-preview .pip{font-size:10.5px!important}.trump-hand-preview .rank-8 .pip,.trump-hand-preview .rank-9 .pip,.trump-hand-preview .rank-10 .pip{font-size:8.7px!important}.trump-hand-preview .court-art{width:39px!important;height:58px!important}
}
@media(max-height:700px){
  .game-screen{grid-template-rows:46px 74px minmax(0,1fr) 190px!important}.player-area{grid-template-rows:29px 34px 121px!important;min-height:188px!important}.rule-coach{height:34px!important;min-height:34px!important}.hand{height:121px!important;min-height:121px!important;padding-top:7px!important;padding-bottom:8px!important}.hand .playing-card{flex-basis:69px!important;width:69px!important;height:101px!important}.trump-modal{padding-top:12px!important}.trump-preview-block{margin-top:8px!important}.trump-hand-preview{min-height:72px}.trump-hand-preview .playing-card{width:48px!important;flex-basis:48px!important;height:70px!important}.trump-modal .suit-grid button{height:54px!important}
}

/* === Hand Fan Control Patch v1.2.2 === */
.player-area{overflow:visible!important}
.hand{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:136px!important;
  min-height:136px!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  direction:ltr!important;
  scroll-snap-type:none!important;
  scroll-behavior:auto!important;
  scrollbar-width:none!important;
  mask-image:none!important;
  -webkit-mask-image:none!important;
  contain:none!important;
  background:linear-gradient(180deg,#ffffff025,#00000012)!important;
  border-top:1px solid #ffffff07!important;
  border-radius:16px 16px 0 0!important;
  touch-action:manipulation;
}
.hand .playing-card{
  position:absolute!important;
  display:block!important;
  flex:none!important;
  width:var(--hand-card-width,68px)!important;
  height:104px!important;
  left:var(--fan-x,0px)!important;
  right:auto!important;
  top:auto!important;
  bottom:10px!important;
  margin:0!important;
  opacity:1;
  transform:translateY(var(--fan-y,0px)) rotate(var(--fan-angle,0deg))!important;
  transform-origin:50% 122%!important;
  transition:transform .13s cubic-bezier(.2,.8,.2,1),filter .12s ease,opacity .12s ease,box-shadow .12s ease!important;
  box-shadow:0 8px 19px #0009,0 0 0 1px #ffffff95!important;
  scroll-snap-align:none!important;
  touch-action:manipulation;
  will-change:transform;
}
.hand .playing-card .corner{
  top:4px!important;
  left:4px!important;
  min-width:18px!important;
  z-index:15!important;
  font-size:14px!important;
  line-height:.86!important;
  text-shadow:0 1px 0 #fff!important;
}
.hand .playing-card .corner i{font-size:12px!important;margin-top:3px!important}
.hand .playing-card .corner-br{top:auto!important;left:auto!important;right:4px!important;bottom:4px!important}
.hand .playing-card.resting{
  opacity:1!important;
  filter:none!important;
  pointer-events:none!important;
  box-shadow:0 8px 19px #0009,0 0 0 1px #ffffff95!important;
}
.hand .playing-card.legal{
  opacity:1!important;
  filter:none!important;
  box-shadow:0 9px 22px #000a,0 0 0 2px #6ef2a678,0 0 17px #48e99a30!important;
  cursor:pointer!important;
}
.hand .playing-card.legal:active{
  transform:translateY(calc(var(--fan-y,0px) - 13px)) rotate(var(--fan-angle,0deg)) scale(1.035)!important;
  z-index:40!important;
}
.hand .playing-card.illegal{
  opacity:.66!important;
  filter:saturate(.78) brightness(.86)!important;
  box-shadow:0 6px 15px #0008,0 0 0 1px #ffffff6e!important;
  cursor:not-allowed!important;
}
.hand .playing-card.pending{
  opacity:.24!important;
  transform:translateY(calc(var(--fan-y,0px) - 16px)) rotate(var(--fan-angle,0deg)) scale(.96)!important;
  pointer-events:none!important;
}
.hand-empty-state{position:absolute!important;inset:8px!important;height:auto!important}

@media(max-width:360px){
  .hand{height:128px!important;min-height:128px!important}
  .hand .playing-card{height:99px!important;bottom:9px!important}
  .hand .playing-card .corner{font-size:13px!important}
  .hand .playing-card .corner i{font-size:11px!important}
}
@media(max-height:700px){
  .hand{height:118px!important;min-height:118px!important}
  .hand .playing-card{height:94px!important;bottom:7px!important}
  .hand .playing-card .corner{font-size:12.5px!important}
  .hand .playing-card .corner i{font-size:10.5px!important}
}

/* === Professional Icon + FX + Color Glass Upgrade v1.2.3 === */
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{width:1em;height:1em;display:inline-block;fill:currentColor;vertical-align:-.14em;flex:none}
.ui-icon.inline-icon{font-size:1.05em;margin-left:4px}.ui-icon.chip-icon{font-size:10px;margin-left:3px}
.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.status-pill .ui-icon{font-size:12px}.rule-coach>span .ui-icon{font-size:15px}.trump-reveal-hakem .ui-icon{font-size:12px;margin-left:4px}
.result-icon .ui-icon{font-size:49px}.head-icon .ui-icon{font-size:26px}.tile-icon .ui-icon,.mode-glyph .ui-icon{font-size:22px}.info-icon .ui-icon{font-size:20px}
.setting-icon{display:grid!important;place-items:center!important}.setting-icon .ui-icon{font-size:18px}.nav-item span .ui-icon{font-size:18px}.ai-levels button>span .ui-icon{font-size:22px}
.modal-close .ui-icon{font-size:17px}.match-btn b .ui-icon{font-size:13px;margin-left:4px}
.context-chip .ui-icon{font-size:9px}

/* Rich color glass buttons. No expensive permanent blur animation. */
.action-tile,.mode-card,.settings-list button,.ghost-btn,.match-btn,.link-btn,.ai-levels button,.suit-grid button,.icon-btn{
  position:relative;overflow:hidden;isolation:isolate;
  transition:transform .14s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease,border-color .18s ease,filter .18s ease!important;
}
.action-tile:before,.mode-card:before,.settings-list button:before,.ghost-btn:before,.match-btn:before,.ai-levels button:before,.suit-grid button:before{
  content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(120deg,#ffffff14,transparent 46%,#ffffff08);pointer-events:none
}
.action-tile:active,.mode-card:active,.settings-list button:active,.ghost-btn:active,.match-btn:active,.ai-levels button:active,.suit-grid button:active{transform:scale(.975)!important;filter:brightness(1.08)}
.action-tile.primary{background:linear-gradient(135deg,#1ccf87 0%,#159f88 52%,#15709e 100%)!important;border:1px solid #78ffd04f!important;color:#f4fffb!important;box-shadow:0 10px 28px #0bc9812e,inset 0 1px #ffffff31!important}
.action-tile.primary .tile-icon{background:#ffffff1c!important;color:#eafff5!important}
.action-tile:not(.primary){background:linear-gradient(135deg,#7657e8 0%,#5148bd 48%,#293c8f 100%)!important;border:1px solid #c6baff39!important;box-shadow:0 10px 28px #624fe12e,inset 0 1px #ffffff22!important}
.action-tile:not(.primary) .tile-icon{background:#ffffff16!important;color:#efeaff!important}
.online-mode{background:linear-gradient(135deg,#0c3b35f2,#0c5b58e8 55%,#126e8ae0)!important;border-color:#59e8d63d!important;box-shadow:0 12px 32px #04c9aa1e,inset 0 1px #ffffff16!important}
.ai-mode{background:linear-gradient(135deg,#261d51f2,#403485ed 54%,#2b4a89e8)!important;border-color:#9b8dff3d!important;box-shadow:0 12px 32px #6b55ff1c,inset 0 1px #ffffff14!important}
.mode-card .mode-glyph{background:#ffffff10!important;border:1px solid #ffffff14;color:#f7fffb!important}
.settings-list button{border:1px solid #ffffff10!important}
.settings-list button:nth-child(1){background:linear-gradient(135deg,#14334ce8,#174f64d9)!important}.settings-list button:nth-child(1) .setting-icon{background:#33b8de20;color:#61d8ff!important}
.settings-list button:nth-child(2){background:linear-gradient(135deg,#203857e8,#284b78d9)!important}.settings-list button:nth-child(2) .setting-icon{background:#5c9dff20;color:#8abaff!important}
.settings-list button:nth-child(3){background:linear-gradient(135deg,#22402de8,#2f6543d9)!important}.settings-list button:nth-child(3) .setting-icon{background:#61e58a20;color:#83f4a5!important}
.ghost-btn{background:linear-gradient(135deg,#1a2734e8,#223e58d9)!important;border:1px solid #6ca8dc2f!important;color:#dcecff!important;box-shadow:0 8px 20px #0718274a!important}
.match-btn{background:linear-gradient(135deg,#72f2a9 0%,#24c67e 55%,#12a7a0 100%)!important;border:1px solid #b0ffd063!important;box-shadow:0 12px 30px #36de8d2a,inset 0 1px #ffffff5c!important}
.link-btn{background:linear-gradient(135deg,#1bbf9d26,#37a4d426)!important;border:1px solid #55d9c02e!important;color:#91f3d1!important;border-radius:999px;padding:5px 10px!important}
.ai-levels button:nth-child(1){background:linear-gradient(135deg,#214838e8,#2e6f52d9)!important;border-color:#69e6a32c!important}.ai-levels button:nth-child(1)>span{color:#75efa9}
.ai-levels button:nth-child(2){background:linear-gradient(135deg,#5d4615e8,#8a651cd9)!important;border-color:#ffd66b38!important}.ai-levels button:nth-child(2)>span{color:#ffe083}
.ai-levels button:nth-child(3){background:linear-gradient(135deg,#332263e8,#493998d9)!important;border-color:#b399ff32!important}.ai-levels button:nth-child(3)>span{color:#c4b4ff}
.suit-grid button[data-suit="S"]{background:linear-gradient(155deg,#1b242de8,#263747e8)!important;border-color:#8ba6bc24!important}.suit-grid button[data-suit="C"]{background:linear-gradient(155deg,#123b2be8,#1a6340e8)!important;border-color:#62dd9630!important}.suit-grid button[data-suit="H"]{background:linear-gradient(155deg,#5a1d2be8,#8d2940e8)!important;border-color:#ff829937!important}.suit-grid button[data-suit="D"]{background:linear-gradient(155deg,#612235e8,#a23250e8)!important;border-color:#ff8aa136!important}
.main-nav{background:linear-gradient(180deg,#0c1214f6,#080d0ffb)!important;border-top-color:#ffffff10!important}.nav-item{border-radius:14px!important}.nav-item.active{background:linear-gradient(135deg,#29c98724,#289eb52a)!important;color:#8ff3c0!important;box-shadow:inset 0 0 0 1px #5de5ad24!important}.nav-item.active span{color:#86efba!important}
.icon-btn.danger{background:linear-gradient(135deg,#541e2be8,#7b2639d9)!important;border-color:#ff667d30!important;color:#ffb0bc!important}

/* Gameplay micro-interactions */
.table-area{transition:box-shadow .22s ease,border-color .22s ease,filter .22s ease}
.table-area.fx-turn-pulse{animation:turnPulse .86s ease-out}.table-area.fx-opponent-pulse{animation:opponentPulse .75s ease-out}.table-area.fx-win-pulse{animation:winPulse .9s ease-out}
@keyframes turnPulse{0%{box-shadow:inset 0 0 50px #0006,0 0 0 0 #65f1a300}38%{box-shadow:inset 0 0 42px #31d78924,0 0 0 4px #65f1a329,0 0 34px #34d98b24}100%{box-shadow:inset 0 0 50px #0006,0 0 0 10px #65f1a300}}
@keyframes opponentPulse{0%{box-shadow:inset 0 0 50px #0006}42%{box-shadow:inset 0 0 48px #6d60e82d,0 0 28px #6757df1c}100%{box-shadow:inset 0 0 50px #0006}}
@keyframes winPulse{0%{filter:brightness(1)}40%{filter:brightness(1.13);box-shadow:inset 0 0 54px #41d98e25,0 0 30px #4be8a01b}100%{filter:brightness(1)}}
.played-slot .classic-card{animation:proCardImpact .28s cubic-bezier(.15,.82,.2,1)}
@keyframes proCardImpact{0%{opacity:.15;transform:translateY(17px) scale(.78) rotate(-5deg)}70%{opacity:1;transform:translateY(-3px) scale(1.045) rotate(1deg)}100%{transform:translateY(0) scale(1) rotate(0)}}
.trick-winner{animation:winnerCardGlow 1.05s ease-in-out infinite alternate!important}
@keyframes winnerCardGlow{from{box-shadow:0 12px 28px #000b,0 0 0 2px #62f0a5!important}to{box-shadow:0 12px 28px #000b,0 0 0 3px #a7ffcc,0 0 25px #46e99b5c!important}}
.trump-badge{transition:transform .2s ease,box-shadow .2s ease}.trump-badge:not(:empty){box-shadow:0 7px 20px #e7c15d13}

/* One-shot cinematic FX layer; pointer-events none so gameplay stays responsive. */
.game-fx{position:fixed;z-index:45;inset:0;pointer-events:none;opacity:0;visibility:hidden;display:grid;place-items:center;overflow:hidden}
.game-fx.show{opacity:1;visibility:visible}.game-fx .fx-aura{position:absolute;width:150px;height:150px;border-radius:50%;opacity:0;background:radial-gradient(circle,#70f2aa38 0,#33d98d16 40%,transparent 72%)}
.game-fx .fx-slash{position:absolute;width:min(430px,115vw);height:5px;border-radius:99px;opacity:0;transform:rotate(-26deg) scaleX(.2);background:linear-gradient(90deg,transparent,#ffffff,#74f3ac,#ffffff,transparent);box-shadow:0 0 16px #72f2a9,0 0 40px #47e99a80}
.game-fx .fx-symbol{position:absolute;top:43%;font-family:Georgia,'Times New Roman',serif!important;font-size:78px;font-weight:900;line-height:1;color:#f4fff8;opacity:0;text-shadow:0 0 28px #65efaa85}
.game-fx.red-suit .fx-symbol{color:#ff5f7b;text-shadow:0 0 28px #ff476a8f}.game-fx .fx-title{position:absolute;top:56%;padding:7px 14px;border-radius:999px;background:#06100eea;border:1px solid #ffffff22;color:#f5fff9;font-size:12px;font-weight:900;letter-spacing:.2px;opacity:0;box-shadow:0 8px 24px #0008}
.game-fx .fx-sparks{position:absolute;inset:0}.game-fx .fx-sparks i{position:absolute;left:50%;top:48%;width:5px;height:5px;border-radius:50%;background:#8ff5ba;opacity:0;box-shadow:0 0 10px currentColor}.game-fx.red-suit .fx-sparks i{background:#ff738d}
.game-fx.animate.fx-cut .fx-slash{animation:fxSlash .72s cubic-bezier(.13,.9,.18,1) forwards}.game-fx.animate.fx-cut .fx-aura{animation:fxAura .9s ease-out forwards}.game-fx.animate.fx-cut .fx-symbol{animation:fxSymbol .88s ease-out forwards}.game-fx.animate.fx-cut .fx-title{animation:fxTitle .92s ease-out forwards}
.game-fx.animate.fx-trump .fx-aura{animation:fxAura .88s ease-out forwards}.game-fx.animate.fx-trump .fx-symbol{animation:fxTrumpSymbol .82s ease-out forwards}.game-fx.animate.fx-trump .fx-title{animation:fxTitle .84s ease-out forwards}
.game-fx.animate .fx-sparks i:nth-child(1){--x:-88px;--y:-54px}.game-fx.animate .fx-sparks i:nth-child(2){--x:-63px;--y:61px}.game-fx.animate .fx-sparks i:nth-child(3){--x:-22px;--y:-92px}.game-fx.animate .fx-sparks i:nth-child(4){--x:34px;--y:-80px}.game-fx.animate .fx-sparks i:nth-child(5){--x:85px;--y:-35px}.game-fx.animate .fx-sparks i:nth-child(6){--x:79px;--y:54px}.game-fx.animate .fx-sparks i:nth-child(7){--x:26px;--y:91px}.game-fx.animate .fx-sparks i:nth-child(8){--x:-36px;--y:82px}.game-fx.animate .fx-sparks i{animation:fxSpark .72s ease-out forwards}
@keyframes fxSlash{0%{opacity:0;transform:rotate(-26deg) scaleX(.08) translateX(-36%)}22%{opacity:1}65%{opacity:1;transform:rotate(-26deg) scaleX(1.08) translateX(0)}100%{opacity:0;transform:rotate(-26deg) scaleX(1.2) translateX(15%)}}
@keyframes fxAura{0%{opacity:0;transform:scale(.3)}35%{opacity:1}100%{opacity:0;transform:scale(2.1)}}
@keyframes fxSymbol{0%{opacity:0;transform:scale(.35) rotate(-14deg)}35%{opacity:1;transform:scale(1.12) rotate(4deg)}72%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.92)}}
@keyframes fxTrumpSymbol{0%{opacity:0;transform:scale(.25) rotate(-24deg)}42%{opacity:1;transform:scale(1.18) rotate(5deg)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
@keyframes fxTitle{0%,20%{opacity:0;transform:translateY(8px) scale(.94)}42%,72%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-6px) scale(.98)}}
@keyframes fxSpark{0%{opacity:0;transform:translate(0,0) scale(.5)}25%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(.15)}}

/* Trump reveal polish */
.trump-reveal.show .trump-reveal-card{animation:trumpCardEntrance .48s cubic-bezier(.12,.85,.2,1)}
.trump-reveal.show .trump-reveal-suit{animation:trumpSuitBeat .75s ease-out}
@keyframes trumpCardEntrance{0%{opacity:0;transform:translateY(18px) scale(.9)}70%{opacity:1;transform:translateY(-3px) scale(1.02)}100%{transform:none}}
@keyframes trumpSuitBeat{0%{transform:scale(.35) rotate(-15deg);opacity:.2}55%{transform:scale(1.16) rotate(4deg);opacity:1}100%{transform:scale(1)}}

@media(prefers-reduced-motion:reduce){
  .game-fx,.game-fx *,.table-area,.played-slot .classic-card,.trick-winner,.trump-reveal-card,.trump-reveal-suit{animation:none!important;transition:none!important}
}

/* === Viral Growth Suite 1.3.0 === */
.growth-hub{border-radius:26px;padding:15px;margin:0 0 20px;position:relative;overflow:hidden;background:linear-gradient(145deg,#141d1a,#0d1414)}
.growth-hub:before{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:#795cff18;left:-70px;top:-85px;pointer-events:none}
.growth-head{position:relative;display:grid;grid-template-columns:52px 1fr 38px;gap:10px;align-items:center}.level-orb{width:50px;height:50px;border-radius:17px;background:linear-gradient(145deg,#7059ff,#4b2fd4);display:grid;place-items:center;position:relative;box-shadow:0 8px 22px #4f35db42}.level-orb .ui-icon{width:23px;height:23px;color:#fff;opacity:.4}.level-orb b{position:absolute;font-size:15px;color:#fff}.growth-copy{display:flex;flex-direction:column;min-width:0}.growth-copy small{font-size:6.5px;color:#8775ff;letter-spacing:1px;direction:ltr;text-align:right}.growth-copy strong{font-size:13px;margin-top:1px}.growth-copy span{font-size:8px;color:var(--muted);margin-top:2px}.growth-copy span b{color:#9c8dff}.mini-icon-btn{width:36px;height:36px;border:1px solid #ffffff10;border-radius:12px;background:#ffffff07;color:#adbbb4;display:grid;place-items:center}.mini-icon-btn .ui-icon{width:16px;height:16px}.xp-track{height:7px;border-radius:99px;background:#ffffff09;overflow:hidden;margin-top:13px}.xp-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#765dff,#56c7ff);box-shadow:0 0 14px #6e64ff77;transition:width .3s ease}.xp-caption{display:flex;justify-content:space-between;margin-top:5px;font-size:7px;color:#718078;direction:ltr}.xp-caption small{direction:rtl}.growth-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.growth-action{border:1px solid #ffffff10;border-radius:17px;min-height:62px;color:#fff;display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;text-align:right;padding:9px;background:#ffffff07}.growth-action .ui-icon{width:22px;height:22px}.growth-action span{display:flex;flex-direction:column}.growth-action b{font-size:9.5px}.growth-action small{font-size:6.5px;opacity:.65;margin-top:2px;line-height:1.5}.growth-action.invite{background:linear-gradient(145deg,#173326,#10231b);border-color:#55efa429}.growth-action.invite .ui-icon{color:#67efaa}.growth-action.duel{background:linear-gradient(145deg,#272044,#17172b);border-color:#8573ff2c}.growth-action.duel .ui-icon{color:#9c8cff}.challenge-live{margin-top:9px;border-radius:15px;padding:9px 10px;background:#5d4cff12;border:1px solid #7e6cff25;display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center}.challenge-live[hidden]{display:none}.challenge-live>i{width:7px;height:7px;border-radius:50%;background:#8c7bff;box-shadow:0 0 12px #8c7bff;animation:challengePulse .8s ease-in-out infinite alternate}.challenge-live div{display:flex;flex-direction:column}.challenge-live b{font-size:8px}.challenge-live small{font-size:6.5px;color:#899990;margin-top:1px}.challenge-live button{border:0;border-radius:10px;background:#7b69ff;color:#fff;padding:6px 8px;font-size:7px;font-weight:800}@keyframes challengePulse{to{opacity:.35;transform:scale(.7)}}
.mission-head{display:flex;justify-content:space-between;align-items:end;margin:15px 2px 8px}.mission-head>div{display:flex;flex-direction:column}.mission-head small{font-size:6px;color:#6e7c75;letter-spacing:1px;direction:ltr;text-align:right}.mission-head b{font-size:11px}.mission-head>span{font-size:8px;color:#9a8aff;background:#745eff12;border:1px solid #745eff20;border-radius:99px;padding:4px 7px}.daily-missions{display:grid;gap:7px}.mission-card{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;border:1px solid #ffffff0d;background:#ffffff05;border-radius:16px;padding:9px}.mission-card.ready{border-color:#54e99f2e;background:#54e99f0b}.mission-card.claimed{opacity:.72}.mission-icon{width:32px;height:32px;border-radius:11px;background:#ffffff07;display:grid;place-items:center;color:#88a098}.mission-icon .ui-icon{width:17px;height:17px}.mission-card.ready .mission-icon{color:#66efaa;background:#63efab0d}.mission-main{min-width:0;display:flex;flex-direction:column}.mission-main b{font-size:8.5px}.mission-main small{font-size:6.4px;color:#829189;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mission-track{height:3px;border-radius:99px;background:#ffffff09;margin-top:6px;overflow:hidden}.mission-track i{display:block;height:100%;background:linear-gradient(90deg,#65efaa,#65bfff)}.mission-action{display:grid;place-items:center}.mission-progress-num,.mission-done{font-size:7px;color:#87968e}.mission-done{color:#63dda0}.mission-claim{border:0;border-radius:10px;background:linear-gradient(135deg,#6bf0aa,#34c980);color:#07120d;padding:6px 7px;font-size:6.5px;font-weight:900;white-space:nowrap}.mission-empty{padding:14px;text-align:center;color:#819088;font-size:8px;border:1px dashed #ffffff10;border-radius:14px}
.profile-growth{border-radius:20px;margin-top:10px;padding:12px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.profile-growth>div{display:flex;flex-direction:column}.profile-growth small{font-size:7px;color:var(--muted)}.profile-growth b{font-size:10px;margin-top:2px}.profile-growth>button{border:0;border-radius:12px;background:linear-gradient(135deg,#765fff,#4d8fff);color:#fff;height:36px;padding:0 10px;display:flex;align-items:center;gap:5px;font-size:8px;font-weight:800}.profile-growth>button .ui-icon{width:14px;height:14px}
.result-rewards{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.xp-delta{display:inline-flex;margin-top:13px;background:#745fff13;border:1px solid #8a77ff2d;color:#a89cff;padding:7px 12px;border-radius:99px;font-weight:900;font-size:11px}.rematch-btn{margin-top:12px;background:linear-gradient(135deg,#735eff,#4a8cff)!important;color:#fff!important}.rematch-btn.waiting{filter:saturate(.75)}.rematch-btn.incoming{box-shadow:0 0 0 2px #67efaa33,0 0 24px #55e79d25}.result-share-btn{width:100%;min-height:54px;border-radius:17px;border:1px solid #ffffff12;background:linear-gradient(145deg,#1b2b25,#121a18);color:#fff;margin-top:8px;display:grid;grid-template-columns:35px 1fr;gap:8px;align-items:center;text-align:right;padding:8px 11px}.result-share-btn .ui-icon{width:20px;height:20px;color:#67efaa}.result-share-btn span{display:flex;flex-direction:column}.result-share-btn b{font-size:9px}.result-share-btn small{font-size:6.5px;color:#829189;margin-top:2px}
@media(max-width:360px){.growth-actions{grid-template-columns:1fr}.mission-card{grid-template-columns:30px 1fr auto}.mission-main small{max-width:150px}.growth-hub{padding:12px}}

/* === Ultra Smooth Gameplay v1.3.1 ===
   Keep the game WebView on cheap compositor-friendly operations.
   Visual style is preserved, but hot gameplay elements avoid animated filters / huge paint areas. */
.game-screen .playing-card{
  transition:transform .10s cubic-bezier(.2,.8,.2,1),opacity .10s ease!important;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.hand .playing-card{
  transition:transform .10s cubic-bezier(.2,.8,.2,1),opacity .10s ease!important;
}
.hand .playing-card.illegal{
  filter:none!important;
  opacity:.68!important;
}
.table-area{
  contain:layout paint;
  transition:border-color .14s ease!important;
  filter:none!important;
}
.table-area.fx-turn-pulse,
.table-area.fx-opponent-pulse,
.table-area.fx-win-pulse{
  animation:perfTablePulse .58s ease-out!important;
}
@keyframes perfTablePulse{
  0%{border-color:#ffffff0b}
  45%{border-color:#65f1a36b}
  100%{border-color:#ffffff0b}
}
.trick-winner{
  animation:perfWinnerPulse .62s ease-out 1!important;
}
@keyframes perfWinnerPulse{
  0%{transform:scale(.985);opacity:.9}
  55%{transform:scale(1.025);opacity:1}
  100%{transform:scale(1);opacity:1}
}
.game-fx,.game-fx *{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.game-fx .fx-slash{box-shadow:0 0 14px #72f2a968!important}
.game-fx .fx-sparks i{box-shadow:none!important}
.played-slot .classic-card{animation-duration:.18s!important}
.network-badge{contain:layout paint style}
@media(max-width:380px){
  .game-screen .playing-card{box-shadow:0 6px 14px #0008!important}
  .hand .playing-card.legal{box-shadow:0 7px 16px #0009,0 0 0 1px #6ef2a66b!important}
}
