@font-face{font-family:Vazir;src:local("Vazirmatn"),local("Vazir");font-display:swap}
:root{--bg:#10091f;--bg2:#18102a;--panel:#211536;--panel2:#2a1a44;--purple:#9b63ff;--purple2:#6d31dc;--mint:#37f5c8;--text:#f8f5ff;--muted:#a99fba;--danger:#ff5d8b;--gold:#ffd166;--safe-top:max(var(--tg-content-safe-area-inset-top,0px),env(safe-area-inset-top));--safe-bottom:max(var(--tg-content-safe-area-inset-bottom,0px),env(safe-area-inset-bottom));color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Vazir,Tahoma,Arial,sans-serif}
body{overscroll-behavior:none;user-select:none;touch-action:manipulation}
button{font:inherit;color:inherit;border:0;cursor:pointer}
.app-shell{height:100vh;min-height:100vh;height:var(--tg-viewport-stable-height,100dvh);min-height:100dvh;max-width:720px;margin:auto;display:grid;grid-template-rows:auto 1fr auto;padding:calc(var(--safe-top) + 6px) max(12px,var(--tg-content-safe-area-inset-right,0px)) calc(var(--safe-bottom) + 4px) max(12px,var(--tg-content-safe-area-inset-left,0px));background:radial-gradient(circle at 50% -10%,#39205d 0,transparent 38%),linear-gradient(180deg,#130b25,#0c0815);position:relative}
.app-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(155,99,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(155,99,255,.12) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,#000,transparent 52%)}
.topbar{height:48px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}
.avatar-btn,.icon-btn{width:40px;height:40px;border-radius:14px;background:#25173b;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);overflow:hidden}
.avatar-btn{font-weight:900;color:var(--mint)}.avatar-btn img{width:100%;height:100%;object-fit:cover}.icon-btn svg{width:21px;fill:#cdbdf0}
.brand{direction:ltr;display:flex;align-items:center;gap:5px;font-family:Arial,sans-serif;font-size:18px;font-weight:950;letter-spacing:1.6px}.brand i{width:9px;height:9px;border-radius:3px;background:var(--mint);box-shadow:0 0 14px rgba(55,245,200,.75);transform:rotate(45deg)}.brand small{font-size:8px;color:var(--mint);background:rgba(55,245,200,.12);padding:2px 4px;border-radius:4px;letter-spacing:0}
main{min-height:0;position:relative;z-index:2}.view{display:none;height:100%}.view.active{display:flex;flex-direction:column}.panel-view{overflow:auto;padding:14px 2px 18px}
.match-strip{height:58px;display:flex;align-items:center;justify-content:space-between;gap:6px}.player-card{display:flex;align-items:center;gap:7px;min-width:0}.player-card.user{text-align:left}.player-card strong{font-size:.76rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.player-card small{font-size:.61rem;color:var(--muted);display:block;margin-top:2px}.player-avatar{flex:0 0 34px;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#7840e6,#b884ff);font-weight:900;box-shadow:0 5px 18px rgba(116,52,223,.3)}.bot-mark{background:linear-gradient(145deg,#1c3742,#1d806d);color:var(--mint);font-size:.7rem}
.score-center{text-align:center;display:flex;flex-direction:column;align-items:center}.score-center span{font-size:.62rem;color:#d9cdf0;background:rgba(255,255,255,.06);border-radius:20px;padding:3px 8px}.score-center b{font-family:Arial;font-size:.62rem;color:var(--gold);margin-top:2px}
.board-wrap{flex:1;min-height:0;display:grid;place-items:center;padding:2px 0}
.board{direction:ltr;width:min(100%,490px);aspect-ratio:1/1.1;max-height:100%;position:relative;border:7px solid #41276a;border-radius:16px;background:#1b112d;box-shadow:0 18px 45px rgba(0,0,0,.34),inset 0 0 0 2px rgba(255,255,255,.05);overflow:hidden}
.board:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 20%,rgba(255,255,255,.04) 35%,transparent 50%)}
.board-half{position:absolute;top:0;bottom:0;width:calc(50% - 11px);background:linear-gradient(135deg,#2b1945,#211337);border:1px solid rgba(255,255,255,.035)}.board-half.left{left:0}.board-half.right{right:0}
.points{position:absolute;inset:0;display:grid;grid-template-columns:repeat(13,1fr);grid-template-rows:1fr 1fr;gap:0 1px;padding:0 15px 0 4px}
.point{position:relative;background:none;padding:0;display:flex;justify-content:center;z-index:3;min-width:0}.point.top{align-items:flex-start}.point.bottom{align-items:flex-end}.point:nth-child(odd):before{border-color:#7441bb transparent transparent}.point:nth-child(even):before{border-color:#b182f7 transparent transparent}.point.top:before{content:"";position:absolute;top:0;width:0;height:0;border-left:calc((min(100vw,490px) - 50px)/26) solid transparent;border-right:calc((min(100vw,490px) - 50px)/26) solid transparent;border-top:clamp(90px,26vw,165px) solid}.point.bottom:before{content:"";position:absolute;bottom:0;width:0;height:0;border-left:calc((min(100vw,490px) - 50px)/26) solid transparent;border-right:calc((min(100vw,490px) - 50px)/26) solid transparent;border-bottom:clamp(90px,26vw,165px) solid}.point.bottom:nth-child(odd):before{border-color:transparent transparent #7441bb}.point.bottom:nth-child(even):before{border-color:transparent transparent #b182f7}.point:nth-child(7){grid-column:8}.point:nth-child(19){grid-column:8}
.point.legal:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--mint);box-shadow:0 0 18px rgba(55,245,200,.7);z-index:9;opacity:.9}.point.top.legal:after{top:42%}.point.bottom.legal:after{bottom:42%}.point.selectable{filter:brightness(1.22)}.point.selected{filter:drop-shadow(0 0 8px var(--mint))}
.stack{position:absolute;display:flex;flex-direction:column;align-items:center;width:100%;z-index:5}.top .stack{top:4px}.bottom .stack{bottom:4px;flex-direction:column-reverse}.checker{width:clamp(24px,7.6vw,36px);height:clamp(24px,7.6vw,36px);max-height:9.3%;aspect-ratio:1;border-radius:50%;border:2px solid rgba(255,255,255,.3);box-shadow:0 2px 5px rgba(0,0,0,.38),inset 0 0 0 3px rgba(0,0,0,.12);margin-top:-1px;display:grid;place-items:center;font:bold 10px Arial}.checker.player{background:linear-gradient(145deg,#d9c3ff,#8d56ef);color:#25143d}.checker.ai{background:linear-gradient(145deg,#73ffe0,#1ac19e);color:#062b22}.bottom .checker{margin-top:0;margin-bottom:-1px}.checker.extra{font-size:.65rem;border-color:#fff}
.bar-zone{position:absolute;left:calc(50% - 11px);width:22px;height:44%;z-index:7;background:transparent;display:flex;align-items:center;justify-content:center}.bar-zone.ai{top:2%}.bar-zone.player{bottom:2%}.bar-zone .checker{position:absolute}.bar-zone .checker:nth-child(2){transform:translateY(12px)}.bar-zone.player .checker:nth-child(2){transform:translateY(-12px)}.bar-zone.selectable{background:rgba(55,245,200,.1)}
.off-zone{position:absolute;right:1px;width:12px;height:48%;z-index:8;background:#120a20;border-radius:5px}.off-zone.ai{top:1%}.off-zone.player{bottom:1%}.off-zone span{writing-mode:vertical-rl;color:#8f80a9;font:bold 9px Arial}.off-zone.legal{background:rgba(55,245,200,.28);box-shadow:inset 0 0 0 1px var(--mint)}
.board-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);font:bold 11px Arial;letter-spacing:3px;color:rgba(255,255,255,.16);z-index:2}.board-logo span{color:rgba(55,245,200,.28)}
.dice-tray{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:5px;z-index:10;pointer-events:none}.die{width:29px;height:29px;border-radius:8px;background:#f0e6ff;color:#311956;display:grid;place-items:center;font:900 17px Arial;box-shadow:0 5px 12px rgba(0,0,0,.35);transition:transform .18s ease}.die.used{opacity:.28;transform:scale(.8)}.die.rolling{animation:roll .5s ease}
@keyframes roll{0%{transform:rotate(0) scale(.6)}50%{transform:rotate(130deg) scale(1.18)}100%{transform:rotate(360deg) scale(1)}}
.game-console{padding:8px 2px 6px}.status-line{display:flex;align-items:center;gap:7px;height:28px}.status-line p{font-size:.72rem;color:#d8cfea;margin:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px rgba(55,245,200,.8)}.text-btn{background:transparent;color:var(--purple);font-size:.68rem;padding:5px}.text-btn:disabled{opacity:.35}
.action-row{display:grid;grid-template-columns:1fr 2.25fr;gap:9px}.primary-action,.secondary-action{height:48px;border-radius:15px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:9px}.primary-action{background:linear-gradient(135deg,#ab75ff,#7937e4);box-shadow:0 9px 24px rgba(126,53,226,.35)}.primary-action:disabled{filter:grayscale(.7);opacity:.55}.secondary-action{background:#281a40;border:1px solid rgba(255,255,255,.08);font-size:.8rem}.secondary-action:disabled{opacity:.35}.cube-mini{font:bold 11px Arial;color:var(--gold);border:1px solid rgba(255,209,102,.35);padding:3px;border-radius:5px}.dice-icon{font-size:1.2rem}
.bottom-nav{height:58px;background:rgba(28,17,46,.92);border:1px solid rgba(255,255,255,.07);border-radius:18px;display:grid;grid-template-columns:repeat(3,1fr);position:relative;z-index:8;backdrop-filter:blur(12px)}.bottom-nav button{background:transparent;color:#766c88;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:.61rem}.bottom-nav svg{width:21px;height:21px;fill:currentColor}.bottom-nav button.active{color:var(--purple)}.bottom-nav button.active svg{filter:drop-shadow(0 0 8px rgba(155,99,255,.55))}
.section-heading{display:flex;align-items:center;justify-content:space-between;margin:2px 6px 16px}.section-heading small{color:var(--mint);font-size:.68rem}.section-heading h1{font-size:1.5rem;margin:2px 0}.tech-chip{font:bold 10px Arial;color:var(--mint);padding:5px 8px;border-radius:8px;background:rgba(55,245,200,.1);border:1px solid rgba(55,245,200,.2)}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.stat-grid article{background:linear-gradient(145deg,#26183e,#1d132f);border:1px solid rgba(255,255,255,.06);border-radius:15px;padding:12px 8px;text-align:center}.stat-grid small{font-size:.62rem;color:var(--muted);display:block}.stat-grid strong{font:bold 1.2rem Arial;display:block;margin-top:5px}
.leaderboard{background:#1d132f;border-radius:18px;padding:7px}.leader-row{display:grid;grid-template-columns:28px 38px 1fr auto;align-items:center;gap:9px;padding:10px 7px;border-bottom:1px solid rgba(255,255,255,.05)}.leader-row:last-child{border:0}.leader-row>strong{font:bold .8rem Arial;color:#8f80a8}.leader-row img,.leader-avatar{width:36px;height:36px;border-radius:12px;background:#39245b;display:grid;place-items:center;object-fit:cover;font-weight:800;color:var(--mint)}.leader-row b{font-size:.76rem;display:block}.leader-row small{font-size:.61rem;color:var(--muted)}.leader-score{font:bold .78rem Arial;color:var(--gold)}.skeleton{height:54px;margin:5px;border-radius:10px;background:linear-gradient(90deg,#271a3b,#352151,#271a3b);background-size:200%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200%}}
.profile-hero{text-align:center;padding:18px 0}.profile-orbit{display:grid;place-items:center;width:92px;height:92px;margin:auto;border-radius:50%;border:1px dashed rgba(55,245,200,.45);animation:orbit 14s linear infinite}.profile-orbit b{width:70px;height:70px;display:grid;place-items:center;border-radius:23px;background:linear-gradient(145deg,#ad7bff,#6130c2);font-size:1.5rem;animation:orbit 14s linear reverse infinite}.profile-hero h1{font-size:1.25rem;margin:12px 0 2px}.profile-hero p{font:12px Arial;color:var(--muted);margin:0}@keyframes orbit{to{transform:rotate(360deg)}}
.settings-card{background:#1d132f;border-radius:18px;padding:5px}.settings-card button{display:block;width:100%;background:transparent;text-align:right;padding:13px;border-bottom:1px solid rgba(255,255,255,.06)}.settings-card button:last-child{border:0}.settings-card span{display:block;font-size:.82rem;font-weight:800}.settings-card small{font-size:.65rem;color:var(--muted)}.version{text-align:center;color:#6e647e;font:10px Arial;margin-top:22px}
.modal{width:min(92%,430px);border:1px solid rgba(255,255,255,.09);border-radius:24px 24px 18px 18px;background:#1d132f;color:var(--text);padding:10px 18px 18px;box-shadow:0 25px 80px #000;direction:rtl}.modal::backdrop{background:rgba(5,2,10,.72);backdrop-filter:blur(4px)}.modal-grip{width:38px;height:4px;border-radius:4px;background:#544865;margin:0 auto 14px}.modal h2{font-size:1.1rem}.modal p,.modal li{font-size:.76rem;line-height:1.9;color:#c8bdd8}.modal .primary-action{width:100%;margin-top:12px}.toast{position:fixed;z-index:50;left:50%;bottom:calc(var(--safe-bottom) + 78px);transform:translate(-50%,20px);background:#f3ecff;color:#201130;padding:9px 14px;border-radius:11px;font-size:.7rem;font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-height:700px){.topbar{height:42px}.match-strip{height:48px}.player-avatar{width:30px;height:30px;flex-basis:30px}.game-console{padding-top:3px}.primary-action,.secondary-action{height:42px}.bottom-nav{height:52px}.board{border-width:5px;border-radius:13px}}
@media (min-width:660px) and (orientation:landscape){.app-shell{max-width:100%;grid-template-columns:60px 1fr;grid-template-rows:48px 1fr;padding-right:max(12px,var(--safe-right))}.topbar{grid-column:2}.bottom-nav{grid-column:1;grid-row:1/3;height:auto;grid-template-columns:1fr;grid-template-rows:repeat(3,1fr);margin-left:10px}.view.active{max-width:860px;margin:auto}.board{aspect-ratio:1.45/1;max-width:720px}.game-console{max-width:720px;width:100%;margin:auto}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v1.2 — home hub, readable dice and move feedback */
html,body,button,input,.profile-hero p,.version,.leader-score,.score-center b{font-family:Vazirmatn,Tahoma,Arial,sans-serif}
.bottom-nav{grid-template-columns:repeat(4,1fr)}
.home-view{gap:12px;padding-top:6px;scrollbar-width:none}.home-view::-webkit-scrollbar{display:none}
.welcome-hero{position:relative;min-height:245px;padding:25px 22px 20px;border-radius:26px;overflow:hidden;background:radial-gradient(circle at 10% 5%,rgba(55,245,200,.2),transparent 34%),linear-gradient(145deg,#39205f,#1c1130 67%);border:1px solid rgba(255,255,255,.09);box-shadow:0 20px 45px rgba(0,0,0,.26)}
.welcome-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.055),transparent 65%)}
.welcome-hero .eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--mint);font-size:.67rem;font-weight:800;background:rgba(55,245,200,.1);border:1px solid rgba(55,245,200,.16);border-radius:20px;padding:5px 9px}.welcome-hero .eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint)}
.welcome-hero h1{font-size:clamp(1.55rem,7vw,2.15rem);margin:15px 0 4px;max-width:70%}.welcome-hero h1 span{color:#c5a3ff}.welcome-hero>p{font-size:.73rem;line-height:1.9;color:#bdb2ca;margin:0;max-width:68%}
.hero-orb{position:absolute;left:-7px;top:15px;width:138px;height:138px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#9b63ff33,transparent 65%);border:1px solid rgba(255,255,255,.06)}.hero-orb:before,.hero-orb:after{content:"";position:absolute;border-radius:50%;border:1px dashed rgba(55,245,200,.24);inset:13px;animation:orbit 15s linear infinite}.hero-orb:after{inset:31px;border-color:rgba(174,119,255,.3);animation-direction:reverse}.hero-orb span{font-size:3rem;color:var(--mint);filter:drop-shadow(0 0 17px rgba(55,245,200,.42));transform:rotate(-12deg)}.hero-orb i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--mint);top:17px;right:31px;box-shadow:0 0 12px var(--mint)}
.hero-play{position:relative;z-index:2;width:100%;height:61px;margin-top:20px;border-radius:18px;display:flex;align-items:center;gap:12px;text-align:right;padding:0 14px;background:linear-gradient(135deg,#a56eff,#7435dc);box-shadow:0 12px 28px rgba(111,46,210,.4)}.hero-play .play-symbol{width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.17);display:grid;place-items:center;font-size:.8rem}.hero-play b,.hero-play small{display:block}.hero-play b{font-size:.88rem}.hero-play small{font-size:.62rem;color:#e0d4f3;margin-top:2px}
.home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.home-stats article{position:relative;overflow:hidden;border-radius:18px;padding:12px 11px;background:linear-gradient(145deg,#24163a,#1a102a);border:1px solid rgba(255,255,255,.06)}.home-stats article:after{content:"";position:absolute;width:45px;height:45px;border-radius:50%;left:-15px;bottom:-18px;background:rgba(155,99,255,.11)}.home-stats small,.home-stats strong,.home-stats span{display:block}.home-stats small{font-size:.61rem;color:var(--muted)}.home-stats strong{font-size:1.15rem;margin:4px 0 1px;color:#fff}.home-stats span{direction:ltr;font:600 .48rem Arial;color:#6f647d;letter-spacing:.7px}
.home-menu{border-radius:19px;padding:4px;background:#1c122e;border:1px solid rgba(255,255,255,.055)}.home-menu button{width:100%;display:grid;grid-template-columns:40px 1fr 18px;align-items:center;gap:10px;text-align:right;padding:11px 9px;background:transparent;border-bottom:1px solid rgba(255,255,255,.055)}.home-menu button:last-child{border:0}.home-menu .menu-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center}.menu-icon.trophy{color:var(--gold);background:rgba(255,209,102,.1)}.menu-icon.person{color:var(--mint);background:rgba(55,245,200,.1)}.home-menu b,.home-menu small{display:block}.home-menu b{font-size:.76rem}.home-menu small{font-size:.61rem;color:var(--muted);margin-top:2px}.home-menu button>i{font-style:normal;font-size:1.35rem;color:#655b73;transform:rotate(180deg)}
.home-tip{display:flex;align-items:center;gap:10px;border-radius:16px;padding:10px 12px;background:linear-gradient(90deg,rgba(55,245,200,.08),rgba(155,99,255,.07));border:1px solid rgba(55,245,200,.1)}.home-tip>span{width:34px;height:34px;flex:0 0 34px;border-radius:11px;display:grid;place-items:center;background:#37f5c81a;color:var(--mint);font:bold .64rem Arial}.home-tip p{font-size:.61rem;color:#9f94ae;line-height:1.7;margin:0}.home-tip b{display:block;color:#dcd2e8;font-size:.66rem}
.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.profile-stats article{padding:11px;text-align:center;border-radius:15px;background:#1d132f;border:1px solid rgba(255,255,255,.06)}.profile-stats small,.profile-stats b{display:block}.profile-stats small{font-size:.61rem;color:var(--muted)}.profile-stats b{margin-top:4px;font-size:1rem;color:#d9c3ff}
.profile-info{padding:4px 13px;margin-bottom:10px;border-radius:16px;background:#1d132f;border:1px solid rgba(255,255,255,.06)}.profile-info div{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}.profile-info div:last-child{border:0}.profile-info span{font-size:.69rem;color:var(--muted)}.profile-info b{font-size:.68rem}.connection{display:inline-flex;align-items:center;gap:5px}.connection:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}.connection.ok{color:var(--mint)}.connection.ok:before{background:var(--mint);box-shadow:0 0 8px rgba(55,245,200,.65)}.connection.offline{color:#a99fba}.connection.offline:before{background:#71677f}
.dice-tray{gap:10px}.die{width:46px;height:46px;border-radius:0;background:transparent;color:transparent;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);place-items:center;padding:3px;box-shadow:none}.die .pip{width:9px;height:9px;border-radius:50%;background:#f6f0ff;box-shadow:0 0 7px rgba(155,99,255,.75);opacity:0}.die[data-value="1"] .pip-5,.die[data-value="2"] .pip-1,.die[data-value="2"] .pip-9,.die[data-value="3"] .pip-1,.die[data-value="3"] .pip-5,.die[data-value="3"] .pip-9,.die[data-value="4"] .pip-1,.die[data-value="4"] .pip-3,.die[data-value="4"] .pip-7,.die[data-value="4"] .pip-9,.die[data-value="5"] .pip-1,.die[data-value="5"] .pip-3,.die[data-value="5"] .pip-5,.die[data-value="5"] .pip-7,.die[data-value="5"] .pip-9,.die[data-value="6"] .pip-1,.die[data-value="6"] .pip-3,.die[data-value="6"] .pip-4,.die[data-value="6"] .pip-6,.die[data-value="6"] .pip-7,.die[data-value="6"] .pip-9{opacity:1}.die.used{opacity:.2;transform:scale(.78)}
.point.ai-from:after,.point.ai-to:after{content:"";position:absolute;z-index:10;width:25px;height:25px;border-radius:50%;pointer-events:none;animation:movePulse .75s ease-in-out infinite alternate}.point.top.ai-from:after,.point.top.ai-to:after{top:40%}.point.bottom.ai-from:after,.point.bottom.ai-to:after{bottom:40%}.point.ai-from:after{border:2px solid var(--gold);background:rgba(255,209,102,.17);box-shadow:0 0 18px rgba(255,209,102,.6)}.point.ai-to:after{border:2px solid var(--mint);background:rgba(55,245,200,.18);box-shadow:0 0 20px rgba(55,245,200,.7)}.bar-zone.ai-from{background:rgba(255,209,102,.2);box-shadow:0 0 15px rgba(255,209,102,.45)}.off-zone.ai-to{background:rgba(55,245,200,.32);box-shadow:0 0 15px rgba(55,245,200,.5)}.point.ai-to .checker.ai{animation:checkerLand .55s ease}.status-line p{transition:color .2s}.ai-from,.ai-to{filter:brightness(1.18)}
@keyframes movePulse{to{transform:scale(1.25);opacity:.55}}@keyframes checkerLand{0%{transform:scale(.55) translateY(-14px);filter:brightness(1.8)}100%{transform:none}}
@media(max-height:700px){.welcome-hero{min-height:215px;padding-top:18px}.hero-orb{width:115px;height:115px}.hero-play{height:54px;margin-top:13px}.home-view{gap:8px}.home-tip{display:none}}
@media(min-width:660px) and (orientation:landscape){.bottom-nav{grid-template-rows:repeat(4,1fr)}.home-view{max-width:720px!important}.welcome-hero{min-height:220px}}
.boot-error{position:fixed;z-index:100;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);max-width:560px;margin:auto;padding:14px 15px;border-radius:16px;background:#311529;border:1px solid rgba(255,103,143,.45);box-shadow:0 15px 45px rgba(0,0,0,.55);direction:rtl}.boot-error[hidden]{display:none}.boot-error b{display:block;color:#ffb4c8;font-size:.82rem}.boot-error p{margin:5px 0 10px;color:#d5bdca;font-size:.67rem;line-height:1.8;overflow-wrap:anywhere}.boot-error a{display:inline-flex;min-height:35px;align-items:center;padding:0 12px;border-radius:10px;background:#ff678f22;color:#ffd4df;text-decoration:none;font-size:.68rem;font-weight:800}

/* v2.0.2 — immersive game screen, stable home hero and tactile 2D dice */
.home-view>*{flex:0 0 auto}.welcome-hero{height:auto;min-height:0;flex:none;padding-bottom:22px}.bottom-nav{grid-template-columns:repeat(3,1fr)}
.app-shell.game-mode{grid-template-columns:1fr;grid-template-rows:1fr;padding-top:max(var(--safe-top),4px);padding-bottom:max(var(--safe-bottom),4px)}.game-mode .topbar,.game-mode .bottom-nav{display:none}.game-mode main{width:100%;height:100%;min-height:0;grid-column:1;grid-row:1}.game-mode .toast{bottom:calc(var(--safe-bottom) + 14px)}
.match-strip{position:relative}.game-back{width:34px;height:34px;flex:0 0 34px;border-radius:11px;display:grid;place-items:center;background:#25173b;border:1px solid rgba(255,255,255,.08);color:#cdbdf0}.game-back svg{width:17px;height:17px;fill:currentColor}.game-back:active{transform:scale(.94);background:#33204f}
.dice-tray{gap:12px}.die{position:relative;width:46px;height:46px;padding:6px;border-radius:12px;background:linear-gradient(145deg,#fff 0%,#f5f0e9 52%,#d7d0c7 100%);border:1px solid rgba(255,255,255,.88);box-shadow:0 7px 12px rgba(0,0,0,.42),inset 2px 2px 4px rgba(255,255,255,.9),inset -3px -3px 5px rgba(76,57,90,.22);color:transparent;overflow:hidden}.die:before{content:"";position:absolute;inset:3px;border-radius:9px;border:1px solid rgba(92,72,105,.13);pointer-events:none}.die .pip{position:relative;z-index:1;width:8px;height:8px;background:radial-gradient(circle at 38% 32%,#5a3a7b 0 18%,#24152e 48%,#0d0712 100%);box-shadow:inset 0 1px 1px rgba(255,255,255,.35),0 1px 1px rgba(255,255,255,.35);opacity:0}.die:nth-child(2){background:linear-gradient(145deg,#f5fffd 0%,#e4f5f0 55%,#bcd6cf 100%)}.die.used{opacity:.28;transform:scale(.82)}
@media(max-height:700px){.welcome-hero{min-height:0}.game-mode .match-strip{height:46px}.game-mode .game-console{padding-bottom:2px}}
@media(min-width:660px) and (orientation:landscape){.app-shell.game-mode{grid-template-columns:1fr;grid-template-rows:1fr}.bottom-nav{grid-template-rows:repeat(3,1fr)}}

/* v3.0 — online lobby, timed turns and cinematic match states */
.online-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.online-actions button{min-height:76px;padding:11px;border-radius:17px;text-align:right;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:8px;background:linear-gradient(145deg,#261740,#1b112d);border:1px solid rgba(255,255,255,.07)}.online-actions .online-icon{grid-row:1/3;width:34px;height:34px;align-self:center;border-radius:11px;display:grid;place-items:center;background:#37f5c814;color:var(--mint);font:bold 1rem Arial}.online-actions b{font-size:.73rem;align-self:end}.online-actions small{font-size:.56rem;color:var(--muted);align-self:start}.score-center em{display:grid;place-items:center;width:25px;height:25px;margin-top:2px;border-radius:50%;font:800 .62rem Arial;font-style:normal;color:var(--mint);background:conic-gradient(var(--mint) var(--timer-progress,100%),#312342 0);box-shadow:inset 0 0 0 4px #160d25}.score-center em.danger{color:#fff;background:conic-gradient(var(--danger) var(--timer-progress,25%),#312342 0);animation:timerBeat .55s ease-in-out infinite alternate}@keyframes timerBeat{to{transform:scale(1.13);box-shadow:0 0 16px #ff5d8b88,inset 0 0 0 4px #160d25}}
.player-card.active-turn{position:relative;filter:brightness(1.16)}.player-card.active-turn:after{content:"";position:absolute;inset:-6px;border-radius:16px;border:2px solid var(--mint);box-shadow:0 0 15px #37f5c888;animation:turnGlow .75s ease-in-out infinite alternate;pointer-events:none}@keyframes turnGlow{to{opacity:.34;transform:scale(1.045)}}.player-card.fault small{color:var(--danger)}
.match-loader{position:fixed;z-index:120;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;background:radial-gradient(circle at 50% 35%,#38205f 0,#130a23 44%,#09050f 100%);text-align:center}.match-loader[hidden],.result-celebration[hidden]{display:none}.loader-arena{position:relative;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#37f5c81b,transparent 64%);border:1px solid #ffffff12}.loader-arena:before,.loader-arena:after{content:"";position:absolute;inset:18px;border:1px dashed #37f5c855;border-radius:50%;animation:loaderOrbit 4s linear infinite}.loader-arena:after{inset:43px;border-color:#ad78ff66;animation-direction:reverse;animation-duration:2.8s}.loader-arena>i{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:0 0 20px var(--mint);top:25px}.loader-die{position:absolute;width:64px;height:64px;border-radius:17px;display:grid;place-items:center;font:2.4rem Arial;background:linear-gradient(145deg,#fff,#ddd2e7);color:#2c1645;box-shadow:0 18px 35px #0008}.die-a{transform:translate(-28px,-12px) rotate(-15deg);animation:diceFloat 1s ease-in-out infinite alternate}.die-b{transform:translate(30px,28px) rotate(18deg);animation:diceFloatB 1.1s ease-in-out infinite alternate}.match-loader small{margin-top:22px;color:var(--mint);font-weight:800}.match-loader h2{font-size:1.25rem;margin:7px}.color-reveal{display:flex;align-items:center;gap:9px;margin:13px;padding:10px 16px;border-radius:20px;background:#ffffff0b;border:1px solid #ffffff12}.color-reveal span{width:28px;height:28px;border-radius:50%;background:linear-gradient(145deg,#d9c3ff,#8d56ef);box-shadow:0 0 18px #9b63ff99}.color-reveal span.mint{background:linear-gradient(145deg,#73ffe0,#1ac19e);box-shadow:0 0 18px #37f5c899}.color-reveal p{margin:0;font-size:.75rem}.loader-bar{width:min(280px,78vw);height:4px;margin-top:17px;border-radius:4px;background:#ffffff12;overflow:hidden}.loader-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--mint));animation:loadProgress 3s ease forwards}@keyframes loaderOrbit{to{transform:rotate(360deg)}}@keyframes diceFloat{to{transform:translate(-35px,0) rotate(18deg) scale(1.06)}}@keyframes diceFloatB{to{transform:translate(39px,18px) rotate(-18deg) scale(.94)}}@keyframes loadProgress{from{width:0}to{width:100%}}
.player-mint .checker.player{background:linear-gradient(145deg,#73ffe0,#1ac19e);color:#062b22}.player-mint .checker.ai{background:linear-gradient(145deg,#d9c3ff,#8d56ef);color:#25143d}.player-mint #miniAvatar{background:linear-gradient(145deg,#167b69,#37f5c8)}.player-mint .bot-mark{background:linear-gradient(145deg,#7840e6,#b884ff);color:#fff}
.result-celebration{position:fixed;z-index:130;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,#59319a88,transparent 42%),#09050feF;overflow:hidden}.result-card{position:relative;z-index:2;width:min(360px,92vw);padding:31px 23px 22px;text-align:center;border-radius:30px;background:linear-gradient(145deg,#33204f,#1c102e);border:1px solid #ffffff18;box-shadow:0 30px 90px #000}.result-card>span{font-size:4rem;display:block;filter:drop-shadow(0 0 22px #ffd16688);animation:trophyPop .8s cubic-bezier(.2,1.7,.3,1)}.result-card small{color:var(--mint);font-weight:800}.result-card h2{font-size:2rem;margin:6px 0}.result-card p{color:#c9bdd8;font-size:.76rem;line-height:1.9}.result-card button{width:100%;margin-top:12px}.result-celebration.loss .result-card>span{filter:grayscale(.3);animation:lossDrop .7s ease}.confetti{position:absolute;inset:-20%;background-image:radial-gradient(circle,#ffd166 0 3px,transparent 4px),radial-gradient(circle,#37f5c8 0 3px,transparent 4px),radial-gradient(circle,#9b63ff 0 3px,transparent 4px);background-size:73px 83px,97px 67px,61px 101px;animation:confettiFall 5s linear infinite}.result-celebration.loss .confetti{opacity:.14;filter:grayscale(1)}@keyframes trophyPop{from{transform:scale(0) rotate(-25deg)}to{transform:scale(1) rotate(0)}}@keyframes lossDrop{from{transform:translateY(-60px);opacity:0}}@keyframes confettiFall{to{transform:translateY(180px) rotate(6deg)}}
.room-sheet{display:grid;gap:10px}.room-sheet .room-code{direction:ltr;font:900 1.7rem Arial;letter-spacing:6px;text-align:center;padding:14px;border-radius:15px;background:#10091f;color:var(--mint);user-select:text}.room-sheet input{width:100%;height:49px;border-radius:14px;border:1px solid #ffffff18;background:#10091f;color:#fff;text-align:center;direction:ltr;text-transform:uppercase;font:800 1rem Arial;letter-spacing:4px;outline:none}.room-sheet .room-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.room-sheet button{min-height:44px;border-radius:13px;background:#312047;font-size:.72rem}.room-sheet button.accent{background:linear-gradient(135deg,#a56eff,#7435dc)}.room-sheet button.danger{color:#ff9ab5;background:#ff5d8b18}.room-list{display:grid;gap:7px;max-height:170px;overflow:auto}.room-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:7px;padding:8px;background:#ffffff08;border-radius:11px}.room-row b{font:800 .8rem Arial;letter-spacing:2px}.room-row small{font-size:.58rem;color:var(--muted)}
@media(max-height:700px){.online-actions button{min-height:64px}.match-loader .loader-arena{width:155px;height:155px}.loader-die{width:50px;height:50px;font-size:1.8rem}.match-loader small{margin-top:12px}}

/* v3.0.1 — one typography system for static, dynamic and native form controls */
html,body,.app-shell,.app-shell *,dialog,dialog *,button,input,textarea,select,option,label,
.match-loader,.match-loader *,.result-celebration,.result-celebration *,.toast,.boot-error,.boot-error *{
  font-family:Vazirmatn,Tahoma,Arial,sans-serif!important;
}
button,input,textarea,select{font:inherit;color:inherit}
input::placeholder,textarea::placeholder{font-family:Vazirmatn,Tahoma,Arial,sans-serif!important;opacity:.62}
.brand,.room-code,.room-row b,.score-center em,.leader-score,.version{font-variant-numeric:tabular-nums}
.matchmaking-sheet #retryMatchAction{background:#37f5c816;border:1px solid #37f5c833;color:var(--mint)}

/* v3.0.2 — resilient anonymous-search loading state */
.matchmaking-sheet{text-align:center;justify-items:center;padding:4px 0}.matchmaking-sheet>small{color:var(--mint);font-weight:850}.matchmaking-sheet h2{margin:2px 0;font-size:1.12rem}.matchmaking-sheet p{min-height:44px;margin:0;max-width:310px}.matchmaking-orbit{position:relative;width:112px;height:112px;margin:3px auto 6px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#37f5c820,transparent 66%);border:1px solid #ffffff12}.matchmaking-orbit:before,.matchmaking-orbit:after{content:"";position:absolute;inset:10px;border-radius:50%;border:1px dashed #37f5c877;animation:loaderOrbit 2.7s linear infinite}.matchmaking-orbit:after{inset:27px;border-color:#9b63ff99;animation-direction:reverse;animation-duration:1.8s}.matchmaking-orbit span{font-size:2.7rem;filter:drop-shadow(0 0 15px #9b63ffaa);animation:diceSearch 1s ease-in-out infinite alternate}.matchmaking-orbit i{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--mint);top:8px;box-shadow:0 0 14px var(--mint)}.matchmaking-sheet .loader-bar i{animation:searchSweep 1.25s ease-in-out infinite}.matchmaking-sheet #retryMatchAction{width:100%;margin-top:2px}@keyframes diceSearch{to{transform:rotate(25deg) scale(1.1)}}@keyframes searchSweep{0%{width:12%;transform:translateX(0)}50%{width:48%}100%{width:12%;transform:translateX(-700%)}}

/* v3.2 — live private lobby and low-latency multiplayer feedback */
.lobby-sheet h2{margin:0 0 2px}.lobby-presence{display:flex;align-items:center;gap:11px;padding:12px;border-radius:15px;background:#ffffff08;border:1px solid #ffffff0d}.lobby-presence>i{width:11px;height:11px;flex:0 0 11px;border-radius:50%;background:#746984;box-shadow:0 0 0 5px #74698418}.lobby-presence.ready>i{background:var(--mint);box-shadow:0 0 0 5px #37f5c81c,0 0 14px #37f5c8;animation:turnGlow .65s ease-in-out infinite alternate}.lobby-presence span{display:block;text-align:right}.lobby-presence b,.lobby-presence small{display:block}.lobby-presence b{font-size:.76rem}.lobby-presence small{margin-top:2px;color:var(--muted);font-size:.59rem}.lobby-hint{margin:0;padding:10px 12px;border-radius:13px;background:#37f5c80b;color:#bdb2ca;font-size:.65rem;line-height:1.8;text-align:center}.room-sheet .lobby-start{font-weight:900;box-shadow:0 9px 23px #7435dc55;animation:lobbyReady 1s ease-in-out infinite alternate}.room-sheet .lobby-start:disabled{opacity:.65;animation:none}@keyframes lobbyReady{to{filter:brightness(1.18);transform:translateY(-1px)}}
