:root{
  --bg:#080910;--panel:rgba(17,18,29,.72);--panel-solid:#11131e;--text:#f7f5ff;--muted:#9695aa;--line:rgba(255,255,255,.09);
  --accent:#a58cff;--accent2:#7d5cff;--accent-soft:rgba(165,140,255,.16);--success:#78e6ae;--danger:#ff7d90;
  --sq-light:#b8a8d7;--sq-dark:#554570;--piece-white:#fffdf8;--piece-black:#17131f;--board-edge:#17131f;
  --radius:26px;--shadow:0 28px 90px rgba(0,0,0,.45);--ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 50% -15%,#1c1830 0,#0b0c14 43%,#07080d 100%);color:var(--text);overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");z-index:-1}.aurora{position:fixed;border-radius:999px;filter:blur(90px);opacity:.16;pointer-events:none;z-index:-2}.aurora-a{width:380px;height:380px;background:#896dff;top:6%;left:-120px}.aurora-b{width:520px;height:520px;background:#3743b9;right:-180px;bottom:-100px}.app-shell{width:min(1500px,calc(100% - 42px));margin:auto;padding:18px 0 90px}.glass{background:linear-gradient(180deg,rgba(25,27,42,.77),rgba(13,14,23,.7));border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 18px 60px rgba(0,0,0,.24);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}button{font:inherit;color:inherit}.topbar{height:74px;border-radius:22px;display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 16px;position:sticky;top:14px;z-index:40}.brand{display:flex;align-items:center;gap:11px;background:none;border:0;cursor:pointer;padding:0}.brand-mark{width:42px;height:42px;border-radius:50%;display:block;position:relative;background:linear-gradient(145deg,#c9bbff,#7557f1);box-shadow:0 0 30px rgba(146,116,255,.24)}.moon-cut{position:absolute;width:34px;height:34px;border-radius:50%;background:#12131e;top:2px;left:10px}.brand-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.brand-copy strong{font-size:17px;letter-spacing:-.02em}.brand-copy small{font-size:8px;letter-spacing:.32em;color:#aaa6c6;margin-top:5px}.desktop-nav{display:flex;gap:5px}.nav-link{background:transparent;border:0;color:var(--muted);padding:10px 14px;border-radius:12px;cursor:pointer;transition:.25s}.nav-link:hover,.nav-link.active{color:#fff;background:rgba(255,255,255,.06)}.top-actions{display:flex;align-items:center;gap:10px}.network-badge{display:flex;align-items:center;gap:8px;color:#a7a6b8;font-size:12px}.network-badge i{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 14px var(--success)}.network-badge.online i{background:#7fd1ff;box-shadow:0 0 14px #7fd1ff}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);cursor:pointer}.page{display:none;animation:pageIn .5s var(--ease)}.page.active-page{display:block}@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hero-grid{min-height:620px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px;padding:62px 36px 36px}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:10px;font-weight:800;letter-spacing:.24em;color:#bcb8d6}.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px var(--accent)}.hero-copy h1{font-size:clamp(54px,7vw,104px);line-height:.92;letter-spacing:-.067em;margin:22px 0 26px;max-width:860px}.hero-copy h1 span{font-weight:400;color:#a9a5be}.hero-copy p{max-width:650px;color:#a19fb1;font-size:18px;line-height:1.65;margin:0}.hero-actions{display:flex;gap:12px;margin-top:34px}.primary-btn,.secondary-btn,.ghost-btn{height:52px;border-radius:15px;padding:0 20px;border:0;cursor:pointer;font-weight:700;transition:transform .2s var(--ease),box-shadow .2s}.primary-btn{background:linear-gradient(135deg,#b2a0ff,#7958ef);color:#0d0c14;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 12px 32px rgba(117,87,241,.25)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(117,87,241,.34)}.primary-btn b{font-size:20px}.secondary-btn{background:rgba(255,255,255,.055);border:1px solid var(--line);color:#eee}.secondary-btn:hover,.ghost-btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.08)}.ghost-btn{background:transparent;border:1px solid var(--line);color:#c1bfd0}.full{width:100%}.trust-row{display:flex;gap:35px;margin-top:42px}.trust-row div{display:flex;flex-direction:column}.trust-row strong{font-size:17px}.trust-row span{color:#817f92;font-size:11px;margin-top:4px}.hero-visual{position:relative;height:520px;display:grid;place-items:center;perspective:1100px}.mini-board{width:min(390px,78%);aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);transform:rotateX(57deg) rotateZ(-29deg);border-radius:18px;overflow:hidden;border:10px solid #171822;box-shadow:0 65px 80px rgba(0,0,0,.55),0 0 80px rgba(134,104,255,.12);animation:boardFloat 7s ease-in-out infinite}.mini-board span:nth-child(16n + 1),.mini-board span:nth-child(16n + 3),.mini-board span:nth-child(16n + 5),.mini-board span:nth-child(16n + 7),.mini-board span:nth-child(16n + 10),.mini-board span:nth-child(16n + 12),.mini-board span:nth-child(16n + 14),.mini-board span:nth-child(16n + 16){background:#afa0c8}.mini-board span{background:#4c405f}.orbit{position:absolute;border:1px solid rgba(168,144,255,.15);border-radius:50%;animation:spin 16s linear infinite}.orbit-one{width:450px;height:450px}.orbit-two{width:330px;height:330px;animation-direction:reverse;animation-duration:12s}.floating-piece{position:absolute;font-family:Georgia,serif;font-size:84px;color:#bcaaff;text-shadow:0 20px 35px rgba(0,0,0,.45);filter:drop-shadow(0 0 25px rgba(159,128,255,.23));z-index:2}.fp-king{right:9%;top:7%;animation:floatA 5s ease-in-out infinite}.fp-knight{left:6%;bottom:13%;font-size:70px;animation:floatB 5.7s ease-in-out infinite}.hero-rating{position:absolute;right:0;bottom:3%;border-radius:17px;padding:16px 22px;display:flex;flex-direction:column;min-width:160px}.hero-rating span{font-size:8px;letter-spacing:.2em;color:#9895ab}.hero-rating strong{font-size:30px;margin:3px 0}.hero-rating small{color:#77768b}.section-heading{display:flex;justify-content:space-between;align-items:end;padding:32px 14px 20px}.section-heading h2{font-size:36px;letter-spacing:-.04em;margin:8px 0 0}.section-heading p{color:#858397;max-width:420px;text-align:right}.section-heading.compact{padding-top:10px}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mode-card{position:relative;min-height:255px;padding:26px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(155deg,rgba(23,24,38,.9),rgba(13,14,23,.9));overflow:hidden;cursor:pointer;transition:.35s var(--ease)}.mode-card:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-110px;top:-130px;background:var(--accent);filter:blur(60px);opacity:0;transition:.35s}.mode-card:hover{transform:translateY(-7px);border-color:rgba(168,143,255,.25);box-shadow:0 26px 70px rgba(0,0,0,.35)}.mode-card:hover:before{opacity:.13}.mode-card.featured{background:linear-gradient(145deg,rgba(45,39,74,.95),rgba(15,15,27,.96));border-color:rgba(170,145,255,.22)}.mode-card.locked{opacity:.72}.card-top{display:flex;justify-content:space-between;align-items:center}.mode-icon{font-family:Georgia,serif;font-size:38px;color:#cbbcff}.pill{font-size:8px;font-weight:900;letter-spacing:.16em;color:#86e7b7;background:rgba(78,206,141,.1);border:1px solid rgba(90,220,151,.16);padding:7px 9px;border-radius:999px}.pill.subtle{color:#b5b3c5;background:rgba(255,255,255,.05);border-color:var(--line)}.pill.phase{color:#c4b5ff;background:rgba(155,127,255,.09);border-color:rgba(155,127,255,.15)}.mode-card h3{font-size:23px;margin:28px 0 9px;letter-spacing:-.03em}.mode-card p{color:#8e8c9f;line-height:1.55;font-size:14px;max-width:88%}.mode-meta{display:flex;gap:16px;color:#6f6e7e;font-size:10px;margin-top:20px}.card-arrow{position:absolute;right:22px;bottom:22px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.045);cursor:pointer}.feature-strip{margin-top:16px;border-radius:22px;padding:18px;display:grid;grid-template-columns:repeat(4,1fr)}.feature-strip>div{display:flex;align-items:center;gap:13px;padding:8px 20px;border-right:1px solid var(--line)}.feature-strip>div:last-child{border:0}.feature-strip>div>span{font-size:22px;color:#aa94ff}.feature-strip p{display:flex;flex-direction:column;margin:0}.feature-strip b{font-size:12px}.feature-strip small{font-size:10px;color:#747386;margin-top:3px}
.play-layout{display:grid;grid-template-columns:250px minmax(480px,760px) 300px;justify-content:center;gap:20px;padding:30px 0}.player-panel,.game-panel{border-radius:22px;padding:18px;height:fit-content;position:sticky;top:106px}.player-card{display:flex;align-items:center;gap:12px}.player-card>div:not(.avatar){display:flex;flex-direction:column}.player-card small{font-size:8px;letter-spacing:.18em;color:#858397}.player-card strong{margin:3px 0;font-size:15px}.player-card span{font-size:10px;color:#777589}.avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#2a243e,#161620);border:1px solid var(--line);font-weight:800}.moon-avatar{color:#c4b2ff;font-family:Georgia,serif;font-size:24px}.clock-card{margin:24px 0 16px;padding:17px;border-radius:16px;background:#0d0e16;border:1px solid var(--line);display:flex;justify-content:space-between;align-items:end}.clock-card span{font-size:8px;letter-spacing:.18em;color:#706e80}.clock-card strong{font-size:32px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.clock-card.active-clock{box-shadow:inset 0 0 0 1px rgba(168,143,255,.35),0 0 30px rgba(132,103,242,.08)}.match-info{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0;margin-bottom:14px}.match-info div{display:flex;justify-content:space-between;padding:8px 3px}.match-info span{color:#777589;font-size:10px}.match-info strong{font-size:11px}.player-panel .ghost-btn{width:100%;height:42px}.board-stage{display:flex;flex-direction:column;align-items:center;gap:14px}.board-frame{width:min(100%,760px);aspect-ratio:1;position:relative;border:10px solid var(--board-edge);border-radius:22px;background:var(--board-edge);box-shadow:0 38px 85px rgba(0,0,0,.5),0 0 60px rgba(136,104,255,.08);transition:.3s}.board-glow{position:absolute;inset:-18px;border-radius:30px;z-index:-1;background:radial-gradient(circle at 50% 20%,rgba(146,115,255,.12),transparent 62%);filter:blur(12px)}.chessboard{width:100%;height:100%;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);overflow:hidden;border-radius:12px;user-select:none;touch-action:manipulation}.square{position:relative;display:grid;place-items:center;cursor:pointer;font-family:"DejaVu Sans",Georgia,serif;transition:filter .15s}.square.light{background:var(--sq-light)}.square.dark{background:var(--sq-dark)}.square:hover{filter:brightness(1.06)}.piece{font-size:clamp(33px,5.2vw,68px);line-height:1;z-index:3;transition:transform .15s var(--ease),filter .2s;filter:drop-shadow(0 7px 7px rgba(0,0,0,.2));animation:pieceIn .18s var(--ease)}.piece.white{color:var(--piece-white);text-shadow:0 1px 0 rgba(0,0,0,.8),0 0 1px #000}.piece.black{color:var(--piece-black);text-shadow:0 1px 0 rgba(255,255,255,.22)}.square.selected:after{content:"";position:absolute;inset:7%;border:3px solid rgba(255,255,255,.72);border-radius:12px;z-index:1}.square.legal:before{content:"";position:absolute;width:22%;aspect-ratio:1;border-radius:50%;background:rgba(21,17,31,.24);z-index:2}.square.capture:before{width:76%;background:transparent;border:5px solid rgba(30,21,44,.24)}.square.lastmove{box-shadow:inset 0 0 0 999px rgba(209,188,74,.2)}.square.check{animation:checkPulse 1s ease-in-out infinite}.coord{position:absolute;font-family:Inter,sans-serif;font-size:8px;font-weight:800;opacity:.58;z-index:1}.coord.file{right:5px;bottom:3px}.coord.rank{left:5px;top:3px}.thinking-badge{position:absolute;left:50%;bottom:18px;transform:translate(-50%,12px);display:flex;align-items:center;gap:8px;background:rgba(9,10,16,.84);border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-size:10px;opacity:0;pointer-events:none;transition:.25s;z-index:5}.thinking-badge.show{opacity:1;transform:translate(-50%,0)}.thinking-badge span{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1s infinite}.board-controls{display:flex;gap:8px}.round-btn{width:46px;height:46px;border-radius:15px;border:1px solid var(--line);background:rgba(255,255,255,.045);cursor:pointer;font-size:17px;transition:.2s}.round-btn:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}.danger-soft{color:#ff99a8}.game-panel{min-height:470px}.panel-tabs{display:grid;grid-template-columns:1fr 1fr;background:rgba(255,255,255,.035);padding:4px;border-radius:12px}.panel-tab{height:36px;border:0;background:transparent;color:#7f7d90;border-radius:9px;font-size:11px;cursor:pointer}.panel-tab.active{background:rgba(255,255,255,.07);color:#fff}.tab-content{display:none}.tab-content.active{display:block}.moves-head{display:flex;justify-content:space-between;color:#8d8b9e;font-size:10px;padding:20px 2px 12px;border-bottom:1px solid var(--line)}.move-list{max-height:405px;overflow:auto;padding:10px 0}.move-row{display:grid;grid-template-columns:28px 1fr 1fr;gap:5px;align-items:center;min-height:36px;border-radius:9px;padding:0 6px;font-size:11px}.move-row:hover{background:rgba(255,255,255,.035)}.move-row .num{color:#616072}.move-pill{background:rgba(255,255,255,.04);padding:7px 8px;border-radius:7px}.empty-state{text-align:center;color:#666577;padding-top:90px}.empty-state span{font-size:40px;display:block;color:#89829f}.empty-state p{font-size:11px}.coach-card{padding:28px 4px 22px}.coach-orb{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 35%,#d5c9ff,#7558e7 60%,#2f225d);box-shadow:0 0 35px rgba(145,111,255,.28);font-size:26px;color:#17121f;margin-bottom:20px}.coach-card>span{font-size:8px;letter-spacing:.18em;color:#8b879c}.coach-card h3{font-size:20px;margin:10px 0 9px}.coach-card p{font-size:12px;color:#858397;line-height:1.65}.mobile-only{display:none}
.profile-wrap,.settings-wrap{padding:38px 0;max-width:1150px;margin:auto}.profile-hero{border-radius:25px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:28px}.profile-avatar{width:86px;height:86px;border-radius:28px;display:grid;place-items:center;background:linear-gradient(145deg,#c5b5ff,#6d4fe0);color:#15101c;font-weight:900;font-size:32px}.profile-hero h2{font-size:34px;margin:8px 0 5px}.profile-hero p{color:#7f7d90;margin:0}.rating-orb{width:160px;height:120px;border-radius:24px;background:rgba(255,255,255,.035);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center}.rating-orb small{font-size:8px;letter-spacing:.17em;color:#7e7b90}.rating-orb strong{font-size:37px;line-height:1;margin:8px}.rating-orb span{font-size:9px;color:#8e8ba0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}.stat-card{border-radius:20px;padding:22px;display:flex;flex-direction:column}.stat-card span{font-size:10px;color:#858397}.stat-card strong{font-size:31px;margin:8px 0}.stat-card small{font-size:9px;color:#666577}.roadmap-card{border-radius:24px;margin-top:14px;padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:45px}.roadmap-card h3{font-size:28px;margin:8px 0}.roadmap-card p{color:#838193;line-height:1.6}.dna-bars{display:flex;flex-direction:column;gap:15px}.dna-bars label{display:grid;grid-template-columns:86px 1fr;gap:12px;align-items:center;font-size:10px;color:#9a98aa}.dna-bars i{height:8px;background:rgba(255,255,255,.05);border-radius:99px;position:relative;overflow:hidden}.dna-bars i:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w);background:linear-gradient(90deg,#6c50d7,#b49fff);border-radius:99px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-card{border-radius:22px;padding:22px}.settings-card h3{margin:0 0 5px;font-size:16px}.settings-card p{margin:0;color:#7b798c;font-size:11px}.settings-card:first-child{grid-column:1/-1}.theme-options{display:flex;gap:10px;margin-top:20px}.theme-chip{border:1px solid var(--line);background:rgba(255,255,255,.035);height:46px;border-radius:13px;padding:0 13px;display:flex;align-items:center;gap:8px;cursor:pointer;color:#9a98aa}.theme-chip.active{border-color:rgba(168,143,255,.38);color:#fff;background:rgba(168,143,255,.08)}.swatch{width:22px;height:22px;border-radius:7px;border:3px solid #181824}.swatch.eclipse{background:linear-gradient(135deg,#b8a8d7 50%,#554570 50%)}.swatch.ivory{background:linear-gradient(135deg,#e6d4ad 50%,#9b6849 50%)}.swatch.midnight{background:linear-gradient(135deg,#78889f 50%,#26313f 50%)}.row-setting{display:flex;align-items:center;justify-content:space-between;gap:20px}.toggle{width:50px;height:28px;padding:3px;border-radius:99px;border:1px solid var(--line);background:#222331;cursor:pointer}.toggle span{display:block;width:20px;height:20px;border-radius:50%;background:#77778a;transition:.25s}.toggle.on{background:rgba(138,108,245,.25);border-color:rgba(168,143,255,.25)}.toggle.on span{transform:translateX(21px);background:#b5a3ff;box-shadow:0 0 15px rgba(173,149,255,.3)}
.modal-backdrop{position:fixed;inset:0;display:none;place-items:center;background:rgba(3,4,8,.72);backdrop-filter:blur(16px);z-index:100;padding:20px}.modal-backdrop.open{display:grid;animation:fadeIn .25s}.modal-card{width:min(480px,100%);border-radius:28px;padding:30px;position:relative}.modal-close{position:absolute;right:17px;top:17px;width:35px;height:35px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.04);cursor:pointer;color:#aaa}.modal-card h2{font-size:32px;margin:10px 0 8px}.modal-card>p{color:#817f92;margin:0 0 25px;line-height:1.5}.setup-block{margin:20px 0}.setup-block>label{font-size:10px;color:#858397;display:block;margin-bottom:8px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.setup-block:nth-of-type(2) .segmented{grid-template-columns:repeat(4,1fr)}.segmented button{min-height:48px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.035);color:#9e9caf;cursor:pointer}.segmented button small{display:block;font-size:8px;color:#666577}.segmented button.active{border-color:rgba(167,143,255,.42);background:rgba(162,136,255,.1);color:#fff}.promotion-card{padding:20px;border-radius:22px;text-align:center}.promotion-card>span{font-size:11px;color:#aaa7ba}.promotion-card>div{display:flex;gap:8px;margin-top:14px}.promotion-card button{width:72px;height:72px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.05);font-size:39px;cursor:pointer}.result-card{text-align:center}.result-icon{font-family:Georgia,serif;font-size:72px;color:#c3b2ff;text-shadow:0 0 35px rgba(169,141,255,.28)}.result-card h2{font-size:42px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0}.result-stats div{padding:13px;border-radius:14px;background:rgba(255,255,255,.035);display:flex;flex-direction:column}.result-stats span{font-size:8px;color:#777589}.result-stats strong{font-size:17px;margin-top:4px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);padding:11px 16px;border-radius:999px;z-index:120;font-size:11px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-nav{display:none}.hidden-coords .coord{display:none}
body.theme-ivory{--sq-light:#e7d7b2;--sq-dark:#9c6f52;--board-edge:#241d1a;--accent:#e2bd83;--accent2:#be8c51}.theme-midnight{--sq-light:#7d8da2;--sq-dark:#283441;--board-edge:#0b1118;--accent:#78b6ff;--accent2:#3b7ccc}.theme-midnight .brand-mark{background:linear-gradient(145deg,#aad1ff,#4b84d7)}
@keyframes boardFloat{50%{transform:rotateX(57deg) rotateZ(-29deg) translateY(-10px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes floatA{50%{transform:translateY(-12px) rotate(4deg)}}@keyframes floatB{50%{transform:translateY(12px) rotate(-5deg)}}@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}@keyframes pieceIn{from{transform:scale(.84);opacity:.55}to{transform:scale(1);opacity:1}}@keyframes checkPulse{0%,100%{box-shadow:inset 0 0 0 999px rgba(218,53,78,.16)}50%{box-shadow:inset 0 0 0 999px rgba(218,53,78,.36)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@media(max-width:1180px){.play-layout{grid-template-columns:minmax(480px,720px) 290px}.player-panel{display:none}.game-panel{position:static}.hero-grid{gap:15px}.hero-visual{transform:scale(.9)}.feature-strip{grid-template-columns:1fr 1fr}.feature-strip>div:nth-child(2){border-right:0}.feature-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:880px){.app-shell{width:min(100% - 22px,760px);padding-top:10px}.topbar{height:64px;top:8px}.desktop-nav,.network-badge{display:none}.hero-grid{grid-template-columns:1fr;min-height:auto;padding:58px 10px 25px}.hero-copy h1{font-size:clamp(54px,14vw,82px)}.hero-copy p{font-size:16px}.hero-visual{height:440px;margin-top:-10px}.mode-grid{grid-template-columns:1fr}.mode-card{min-height:220px}.section-heading{align-items:start;flex-direction:column}.section-heading p{text-align:left}.feature-strip{grid-template-columns:1fr 1fr}.play-layout{display:block;padding:18px 0}.game-panel{margin-top:15px;min-height:360px}.board-frame{width:min(100%,680px)}.desktop-only{display:none!important}.mobile-only{display:flex}.mobile-opponent,.mobile-player{width:100%;align-items:center;justify-content:space-between;border-radius:16px;padding:10px 14px}.mobile-opponent>strong,.mobile-player>strong{font-size:24px;font-variant-numeric:tabular-nums}.board-controls{margin:2px 0 6px}.stats-grid{grid-template-columns:1fr 1fr}.roadmap-card{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.settings-card:first-child{grid-column:auto}.profile-hero{grid-template-columns:auto 1fr}.rating-orb{grid-column:1/-1;width:100%;height:100px}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:12px;right:12px;bottom:10px;height:62px;border-radius:20px;z-index:50;padding:5px}.mobile-nav button{border:0;background:transparent;color:#777589;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mobile-nav button span{font-size:16px}.mobile-nav button small{font-size:8px}.mobile-nav button.active{background:rgba(255,255,255,.06);color:#fff}}
@media(max-width:560px){.app-shell{width:100%;padding:7px 9px 82px}.topbar{border-radius:17px;padding-left:12px}.brand-mark{width:36px;height:36px}.moon-cut{width:30px;height:30px}.brand-copy strong{font-size:14px}.hero-grid{padding:47px 8px 10px}.hero-copy h1{font-size:52px}.hero-copy p{font-size:14px}.hero-actions{display:grid;grid-template-columns:1fr}.trust-row{gap:18px;justify-content:space-between}.hero-visual{height:320px}.mini-board{width:270px}.orbit-one{width:320px;height:320px}.orbit-two{width:240px;height:240px}.floating-piece{font-size:57px}.fp-knight{font-size:50px}.hero-rating{right:4%;min-width:135px;padding:12px 16px}.section-heading h2{font-size:28px}.feature-strip{grid-template-columns:1fr}.feature-strip>div{border-right:0;border-bottom:1px solid var(--line)}.feature-strip>div:last-child{border-bottom:0}.board-frame{border-width:6px;border-radius:16px}.chessboard{border-radius:9px}.piece{font-size:clamp(34px,11vw,54px)}.square.selected:after{border-width:2px;border-radius:8px}.game-panel{padding:13px}.modal-card{padding:24px}.segmented{gap:5px}.segmented button{font-size:11px;padding:4px}.theme-options{flex-wrap:wrap}.profile-wrap,.settings-wrap{padding:20px 0}.profile-hero{padding:18px}.profile-avatar{width:66px;height:66px;border-radius:20px}.profile-hero h2{font-size:25px}.stats-grid{gap:8px}.stat-card{padding:17px}.roadmap-card{padding:20px}.modal-actions{grid-template-columns:1fr}.promotion-card button{width:60px;height:60px}.mobile-opponent,.mobile-player{padding:8px 10px}.avatar{width:40px;height:40px}.mobile-opponent>strong,.mobile-player>strong{font-size:21px}}

/* Phase 2 — Online identity, multiplayer, profiles and rankings */
.hidden{display:none!important}.account-btn{height:40px;border-radius:12px;border:1px solid rgba(165,140,255,.2);background:rgba(165,140,255,.09);padding:0 14px;color:#ddd5ff;font-weight:750;font-size:11px;cursor:pointer;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-btn:hover{background:rgba(165,140,255,.15)}
.online-wrap,.leader-wrap{padding:28px 0}.online-hero{border-radius:26px;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:30px}.online-hero h2{font-size:44px;letter-spacing:-.045em;margin:9px 0}.online-hero p{color:var(--muted);max-width:700px;line-height:1.6}.online-status{min-width:220px;padding:20px;border-radius:20px;background:rgba(255,255,255,.035);display:grid;grid-template-columns:12px 1fr;column-gap:10px;align-items:center}.online-status>span{width:9px;height:9px;border-radius:50%;background:#787689}.online-status>span.ok{background:var(--success);box-shadow:0 0 15px var(--success)}.online-status strong{font-size:13px}.online-status small{grid-column:2;color:#7e7c90;margin-top:4px}.guest-gate{border-radius:26px;margin-top:18px;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:25px}.guest-gate h3{font-size:26px;margin:8px 0}.guest-gate p{color:var(--muted);max-width:650px}.online-lobby{display:grid;grid-template-columns:1.45fr .75fr;gap:18px;margin-top:18px}.queue-panel,.private-panel,.leader-card,.online-side,.online-playerbar,.online-profile-card{border-radius:24px;padding:25px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-title h3,.private-panel h3{font-size:25px;margin:8px 0}.rating-chip{min-width:74px;text-align:center;padding:11px 14px;border-radius:999px;background:rgba(165,140,255,.12);border:1px solid rgba(165,140,255,.2);font-weight:850;color:#cdbfff}.time-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:20px 0}.time-grid button{min-height:76px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.035);cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:4px}.time-grid button b{font-size:15px}.time-grid button span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.time-grid button.active,.time-grid button:hover{background:rgba(165,140,255,.12);border-color:rgba(165,140,255,.28)}.queue-panel>.full+.full{margin-top:8px}.queue-state{display:flex;align-items:center;gap:13px;margin-top:18px;padding:14px;border-radius:16px;background:rgba(255,255,255,.035)}.queue-state>div{display:flex;flex-direction:column}.queue-state strong{font-size:12px}.queue-state small{color:var(--muted);margin-top:4px}.search-orbit{width:28px;height:28px;border-radius:50%;border:2px solid rgba(165,140,255,.18);border-top-color:var(--accent);animation:spin 1s linear infinite}.private-panel p{color:var(--muted);line-height:1.5}.private-code{margin:14px 0;padding:16px;border-radius:16px;background:rgba(165,140,255,.08);display:flex;flex-direction:column;align-items:center}.private-code span,.private-code small{font-size:9px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.private-code strong{font-size:28px;letter-spacing:.18em;margin:7px 0}.code-join{display:grid;grid-template-columns:1fr 74px;gap:8px;margin-top:10px}.code-join input,.auth-form input{width:100%;height:48px;border-radius:13px;border:1px solid var(--line);background:rgba(0,0,0,.18);color:#fff;padding:0 14px;outline:0}.code-join input{text-transform:uppercase;letter-spacing:.16em;font-weight:800}.code-join button,.history-row button,.leader-tabs button,.auth-switch button,.online-message button,.history-head button{border:1px solid var(--line);background:rgba(255,255,255,.05);color:#ddd;border-radius:12px;cursor:pointer}.online-game{margin-top:18px;max-width:1060px;margin-left:auto;margin-right:auto}.online-game-grid{display:grid;grid-template-columns:minmax(480px,720px) 290px;gap:18px;margin:12px 0}.online-board-shell{position:relative}.online-board{width:100%;aspect-ratio:1;border:10px solid var(--board-edge);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.online-playerbar{padding:13px 18px;display:flex;align-items:center;justify-content:space-between}.online-playerbar>div{display:flex;flex-direction:column}.online-playerbar span{font-size:8px;color:var(--muted);letter-spacing:.16em}.online-playerbar strong{font-size:15px;margin:3px 0}.online-playerbar small{color:#757386}.online-playerbar>b{font-size:28px;font-variant-numeric:tabular-nums}.online-side{align-self:start;position:sticky;top:106px}.online-side h3{margin:8px 0 15px}.online-moves{height:390px;overflow:auto}.online-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.online-actions+.full{margin-top:8px}.online-message{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:8;min-width:260px;max-width:82%;padding:18px;border-radius:18px;background:rgba(9,10,16,.92);border:1px solid rgba(165,140,255,.28);box-shadow:0 25px 80px rgba(0,0,0,.55);backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.online-message strong{font-size:20px}.online-message span{font-size:11px;color:var(--muted)}.online-message>div{display:flex;gap:7px}.online-message button{padding:9px 14px}.leader-card{margin-top:4px}.leader-tabs,.auth-switch{display:flex;gap:7px;flex-wrap:wrap}.leader-tabs button,.auth-switch button{padding:9px 13px;color:var(--muted)}.leader-tabs button.active,.auth-switch button.active{color:#fff;background:rgba(165,140,255,.13);border-color:rgba(165,140,255,.22)}.leader-list{margin-top:18px}.leader-row{display:grid;grid-template-columns:48px 44px 1fr 80px 54px;align-items:center;gap:12px;padding:12px 10px;border-top:1px solid var(--line)}.leader-row:first-child{border-top:0}.leader-row.me{background:rgba(165,140,255,.06);border-radius:14px}.leader-row .rank{font-size:12px;color:#89879a}.leader-avatar{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#3b3155,#181821);font-weight:850;color:#cabaff}.leader-person{display:flex;flex-direction:column}.leader-person strong{font-size:13px}.leader-person small{color:var(--muted);font-size:10px;margin-top:3px}.leader-row>b{font-size:18px;text-align:right}.leader-row .rd{font-size:9px;color:#777589;text-align:right}.online-profile-card{margin-top:14px}.online-profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.online-profile-stats>div{padding:14px;border-radius:15px;background:rgba(255,255,255,.035);display:flex;flex-direction:column}.online-profile-stats span{font-size:9px;color:var(--muted)}.online-profile-stats strong{font-size:20px;margin-top:4px}.online-profile-stats small{font-size:8px;color:#777589;margin-top:2px}.history-head{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-bottom:8px}.history-head span{font-size:11px;font-weight:800}.history-head button{padding:6px 9px;font-size:9px}.history-list{border-top:1px solid var(--line)}.history-row{display:grid;grid-template-columns:1fr 56px 64px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.history-row>div{display:flex;flex-direction:column}.history-row strong{font-size:11px}.history-row strong span{color:#6f6d7d;font-weight:500}.history-row small{font-size:9px;color:var(--muted);margin-top:4px}.history-row button{padding:7px 9px;font-size:9px}.outcome{text-align:center;font-size:10px}.outcome.win{color:var(--success)}.outcome.loss{color:var(--danger)}.outcome.draw{color:#aaa8b8}.muted-copy{color:var(--muted);font-size:11px}.auth-modal-card{max-width:460px}.auth-switch{margin:18px 0}.auth-form{display:grid;gap:12px}.auth-form label{display:flex;flex-direction:column;gap:6px;color:#9d9bad;font-size:10px}.auth-form .primary-btn{margin-top:4px}.form-error{color:#ff91a1;font-size:10px;min-height:14px}.review-modal-card{max-width:650px}.review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.review-grid>div{padding:14px;border-radius:14px;background:rgba(255,255,255,.035);display:flex;flex-direction:column}.review-grid span{font-size:9px;color:var(--muted)}.review-grid strong{font-size:19px;margin-top:4px}.review-note{padding:16px;border-radius:16px;background:rgba(165,140,255,.07)}.review-note p{color:var(--muted);font-size:11px;line-height:1.55}.review-moves{margin-top:12px;max-height:210px;overflow:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.review-moves span{padding:8px;border-radius:9px;background:rgba(255,255,255,.03);font-size:10px}.review-moves small{color:#777589;float:right}.review-loading{padding:30px;text-align:center;color:var(--muted)}.online-promo{z-index:200}.online-promo .promotion-card>div{display:flex;gap:8px}.online-promo button{width:64px;height:64px;border-radius:15px;border:1px solid var(--line);background:rgba(255,255,255,.06);font-size:34px;cursor:pointer}
@media(max-width:1000px){.online-lobby{grid-template-columns:1fr}.online-game-grid{grid-template-columns:1fr}.online-side{position:static}.online-moves{height:230px}.time-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:880px){.online-hero,.guest-gate{align-items:flex-start;flex-direction:column}.online-status{width:100%}.mobile-nav{grid-template-columns:repeat(5,1fr)}.online-profile-stats{grid-template-columns:1fr 1fr}.leader-row{grid-template-columns:38px 40px 1fr 64px}.leader-row .rd{display:none}}
@media(max-width:560px){.online-wrap,.leader-wrap{padding:15px 0}.online-hero,.guest-gate,.queue-panel,.private-panel,.leader-card,.online-side{padding:18px;border-radius:19px}.online-hero h2{font-size:32px}.time-grid{grid-template-columns:repeat(3,1fr)}.time-grid button{min-height:66px}.online-game-grid{display:block}.online-side{margin-top:10px}.online-board{border-width:6px;border-radius:14px}.online-profile-stats{grid-template-columns:1fr 1fr}.history-row{grid-template-columns:1fr 42px 54px}.leader-row{gap:7px;padding-left:4px;padding-right:4px}.leader-person small{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-grid{grid-template-columns:1fr 1fr}.review-moves{grid-template-columns:1fr}.account-btn{max-width:94px;padding:0 9px}.online-playerbar>b{font-size:23px}}

/* Phase 2 realtime hotfix */
.online-board.waiting-turn .square{cursor:default}
.online-board.my-turn{box-shadow:var(--shadow),0 0 0 2px rgba(120,230,174,.16)}
#onlineGameTitle.your-turn:after{content:'  • YOUR TURN';color:var(--success);font-size:10px;letter-spacing:.1em;margin-left:8px}
.online-board .piece-w{color:var(--piece-white);text-shadow:0 1px 0 rgba(0,0,0,.8),0 0 1px #000}
.online-board .piece-b{color:var(--piece-black);text-shadow:0 1px 0 rgba(255,255,255,.22)}

/* =========================================================
   SATRANJ FOCUS ARENA — IMMERSIVE ONLINE MATCH UI
   ========================================================= */
body.online-match-mode{overflow:hidden!important;overscroll-behavior:none;background:#070810}
body.online-match-mode .topbar,body.online-match-mode .mobile-nav{opacity:0!important;pointer-events:none!important;transform:translateY(-18px);transition:opacity .22s var(--ease),transform .22s var(--ease)}
body.online-match-mode .app-shell{width:100%;max-width:none;margin:0;padding:0}
body.online-match-mode main{min-height:100dvh}

.online-game{margin:0;max-width:none}
.online-game:not(.hidden){position:fixed;inset:0;z-index:110;display:block;background:radial-gradient(circle at 50% -10%,#1b1831 0,#0b0c14 38%,#06070c 100%);overflow:hidden;isolation:isolate}
.online-game:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 22%,transparent 78%,rgba(0,0,0,.18));z-index:-1}
.arena-ambient{position:absolute;border-radius:999px;filter:blur(110px);pointer-events:none;opacity:.16;z-index:-2}
.arena-ambient-a{width:44vw;height:44vw;min-width:420px;min-height:420px;background:#8266ff;left:-18vw;top:-22vw}
.arena-ambient-b{width:38vw;height:38vw;min-width:380px;min-height:380px;background:#2945b9;right:-15vw;bottom:-18vw;opacity:.12}
.arena-shell{height:100dvh;max-width:1680px;margin:0 auto;padding:14px 22px 18px;display:grid;grid-template-rows:48px minmax(0,1fr);gap:10px}
.arena-topline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-width:0}
.arena-brand{display:flex;align-items:center;gap:9px;color:#f5f2ff}.arena-brand-moon{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#c7b9ff,#7958ef);color:#17131f;font-family:Georgia,serif;font-size:18px;box-shadow:0 8px 26px rgba(121,88,239,.2)}.arena-brand>div{display:flex;flex-direction:column;line-height:1}.arena-brand strong{font-size:12px}.arena-brand small{font-size:7px;letter-spacing:.22em;color:#76748a;margin-top:4px}
.arena-match-meta{justify-self:center;display:flex;align-items:center;gap:10px;color:#8f8da2;font-size:10px;font-weight:700;white-space:nowrap}.arena-match-meta>i{width:4px;height:4px;border-radius:50%;background:#605e70}.arena-match-meta #onlineTurnText{color:#d7d2eb}
.arena-live-meta{justify-self:end;display:flex;align-items:center;gap:8px}.arena-connection{height:30px;padding:0 11px;border:1px solid var(--line);border-radius:999px;display:inline-flex;align-items:center;gap:7px;font-size:8px;font-weight:850;letter-spacing:.11em;color:#89879a;background:rgba(255,255,255,.025)}.arena-connection i{width:6px;height:6px;border-radius:50%;background:#777}.arena-connection.ok{color:#9be8bf;border-color:rgba(120,230,174,.14)}.arena-connection.ok i{background:var(--success);box-shadow:0 0 11px var(--success)}.arena-connection.bad{color:#ffacb8}.arena-connection.bad i{background:var(--danger);box-shadow:0 0 10px rgba(255,125,144,.45)}
.arena-icon-btn,.arena-side-close{border:1px solid var(--line);background:rgba(255,255,255,.035);color:#b8b5ca;cursor:pointer}.arena-icon-btn{width:34px;height:34px;border-radius:10px;display:none}.arena-side-close{width:31px;height:31px;border-radius:10px;font-size:17px;display:none}

.arena-main{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:18px;align-items:stretch}
.arena-board-column{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-items:center;justify-items:center;gap:8px}
.arena-playerbar,.arena-board-shell{width:min(100%,calc(100dvh - 218px),820px)}
.arena-playerbar{min-height:56px;padding:9px 13px 9px 15px;border-radius:17px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);box-shadow:0 12px 35px rgba(0,0,0,.16)}
.arena-playerbar.active-turn{border-color:rgba(165,140,255,.22);background:linear-gradient(180deg,rgba(35,32,55,.82),rgba(16,17,27,.78));box-shadow:inset 0 0 0 1px rgba(165,140,255,.055),0 14px 36px rgba(0,0,0,.2),0 0 32px rgba(128,97,240,.06)}
.arena-player-identity{display:flex!important;flex-direction:column}.arena-player-identity>span{font-size:7px!important;letter-spacing:.18em!important;color:#706e82!important}.arena-player-identity>strong{font-size:13px!important;margin:2px 0!important}.arena-player-identity>small{font-size:9px!important;color:#777589!important}
.arena-clock-wrap{display:flex;align-items:flex-end;gap:9px}.arena-clock-wrap small{font-size:7px!important;color:#626071!important;letter-spacing:.13em}.arena-playerbar .arena-clock-wrap>b{min-width:82px;text-align:right;font-size:25px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.045em;transition:color .18s}.arena-playerbar .arena-clock-wrap>b.low-time{color:#ff94a4;text-shadow:0 0 18px rgba(255,125,144,.22)}
.arena-turn-indicator{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;color:#777589;pointer-events:none}.arena-turn-indicator>span{width:7px;height:7px;border-radius:50%;background:#5c5a6a;transition:.2s}.arena-turn-indicator>span.active{background:var(--success);box-shadow:0 0 13px rgba(120,230,174,.48)}.arena-turn-indicator strong{font-size:9px;letter-spacing:.04em;font-weight:750}.arena-youbar{position:relative}

.arena-board-shell{position:relative;aspect-ratio:1;min-height:0;align-self:center;border-radius:22px;transform:translateZ(0);will-change:transform;filter:drop-shadow(0 35px 60px rgba(0,0,0,.42))}
.arena-board-halo{position:absolute;inset:-20px;border-radius:36px;z-index:-1;background:radial-gradient(circle at 50% 35%,rgba(157,129,255,.13),transparent 62%);filter:blur(17px);pointer-events:none}
.online-board{width:100%;height:100%;border:8px solid #15151d;border-radius:20px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 0 0 1px rgba(0,0,0,.6),0 26px 55px rgba(0,0,0,.3);contain:layout paint style;transform:translateZ(0);transition:box-shadow .22s var(--ease)}
.online-board.my-turn{box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 0 0 2px rgba(120,230,174,.12),0 26px 55px rgba(0,0,0,.3),0 0 44px rgba(120,230,174,.055)}
.online-board .square{border:0;padding:0;outline:0;overflow:hidden;transition:filter .12s ease,box-shadow .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.online-board .square:focus-visible{box-shadow:inset 0 0 0 3px rgba(255,255,255,.45)}
.online-board .square.light{background:#e2d4ac}.online-board .square.dark{background:#9b7052}
[data-theme="midnight"] .online-board .square.light{background:#9294a6}[data-theme="midnight"] .online-board .square.dark{background:#434757}
.online-board .piece{font-size:clamp(36px,calc((100dvh - 174px)/10.8),70px);animation:none!important;transition:none!important;will-change:transform,opacity;filter:drop-shadow(0 7px 7px rgba(0,0,0,.2));pointer-events:none}
.online-board .piece-w{color:#fffdf5;text-shadow:0 1px 0 rgba(0,0,0,.8),0 0 1px #000,0 6px 10px rgba(0,0,0,.18)}.online-board .piece-b{color:#1c1720;text-shadow:0 1px 0 rgba(255,255,255,.2),0 6px 10px rgba(0,0,0,.16)}
.online-board .square.selected:after{content:"";position:absolute;inset:6%;border:2px solid rgba(255,255,255,.82);border-radius:11px;z-index:1;box-shadow:0 0 15px rgba(255,255,255,.1)}
.online-board .square.legal-target:before{content:"";position:absolute;width:21%;aspect-ratio:1;border-radius:50%;background:rgba(33,27,31,.26);z-index:2;box-shadow:0 0 0 4px rgba(255,255,255,.04)}
.online-board .square.capture-target:before{content:"";position:absolute;inset:9%;border-radius:50%;border:5px solid rgba(42,31,34,.22);z-index:2}
.online-board .square.last-move{box-shadow:inset 0 0 0 999px rgba(231,207,91,.20)}
.online-board .square.move-arrival{animation:arenaArrival .34s var(--ease)}.online-board .square.move-departure{filter:brightness(.96)}
.online-board.waiting-turn .square{cursor:default}.online-board.board-locked .square{pointer-events:none}
.arena-flying-piece{position:absolute!important;z-index:25!important;display:grid!important;place-items:center!important;margin:0!important;line-height:1!important;pointer-events:none!important;transition:transform 180ms cubic-bezier(.22,.8,.25,1)!important;animation:none!important;will-change:transform;filter:drop-shadow(0 10px 12px rgba(0,0,0,.28))!important}
.captured-fade{opacity:.14!important;transform:scale(.78)!important;transition:opacity .16s ease,transform .16s ease!important}
@keyframes arenaArrival{0%{box-shadow:inset 0 0 0 999px rgba(255,255,255,.15)}100%{box-shadow:inset 0 0 0 999px rgba(231,207,91,.20)}}

.arena-side{height:100%;min-height:0;position:static;align-self:stretch;padding:18px;border-radius:21px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:12px;background:linear-gradient(180deg,rgba(21,22,34,.80),rgba(11,12,19,.74));overflow:hidden}
.arena-side-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.arena-side-head h3{margin:6px 0 0;font-size:21px;letter-spacing:-.03em}
.arena-status-card{padding:13px 14px;border-radius:14px;background:rgba(255,255,255,.032);border:1px solid rgba(255,255,255,.055);display:flex;flex-direction:column;gap:3px}.arena-status-card>span{font-size:7px;letter-spacing:.16em;color:#666477}.arena-status-card>strong{font-size:12px}.arena-status-card>small{font-size:9px;color:#747284;line-height:1.35}
.arena-side .online-moves{height:auto;min-height:0;max-height:none;overflow:auto;padding:2px 2px 8px;scrollbar-width:thin;scrollbar-color:#343140 transparent}.arena-side .move-row{transition:background .18s}.arena-side .move-row.latest{background:rgba(165,140,255,.055)}.arena-side .move-pill{background:rgba(255,255,255,.035)}.compact-empty{padding-top:72px!important}
.arena-side .online-actions{margin:0}.arena-side #backToLobbyBtn{height:42px}
.arena-mobile-actions{display:none;width:min(100%,calc(100dvh - 218px),820px);grid-template-columns:1fr 1fr 1fr;gap:7px}.arena-mobile-actions button{height:42px}

.online-message{background:rgba(8,9,14,.9);border-color:rgba(165,140,255,.2);box-shadow:0 25px 75px rgba(0,0,0,.48);backdrop-filter:blur(24px)}
.online-message.hidden{display:none!important}

@media(max-width:1100px){
  .arena-shell{padding:10px 14px 14px;grid-template-rows:42px minmax(0,1fr)}
  .arena-main{grid-template-columns:minmax(0,1fr) 270px;gap:12px}
  .arena-playerbar,.arena-board-shell{width:min(100%,calc(100dvh - 190px),760px)}
  .arena-playerbar{min-height:49px;padding:7px 11px}.arena-playerbar .arena-clock-wrap>b{font-size:22px}
  .arena-side{padding:14px}
}
@media(max-width:900px){
  .arena-topline{grid-template-columns:1fr auto}.arena-match-meta{display:none}.arena-icon-btn{display:grid;place-items:center}
  .arena-main{grid-template-columns:1fr;position:relative}.arena-playerbar,.arena-board-shell,.arena-mobile-actions{width:min(100%,calc(100dvh - 240px),calc(100vw - 24px),760px)}
  .arena-side{position:absolute;right:0;top:0;bottom:0;width:min(330px,92vw);z-index:40;transform:translateX(calc(100% + 22px));opacity:0;pointer-events:none;transition:transform .28s var(--ease),opacity .22s ease;box-shadow:-24px 0 70px rgba(0,0,0,.42)}.arena-side.mobile-open{transform:none;opacity:1;pointer-events:auto}.arena-side-close{display:grid;place-items:center}
  .arena-mobile-actions{display:grid}.arena-board-column{grid-template-rows:auto minmax(0,1fr) auto auto;gap:6px}
}
@media(max-width:560px){
  .arena-shell{padding:7px 6px 8px;grid-template-rows:38px minmax(0,1fr);gap:5px}.arena-brand-moon{width:28px;height:28px}.arena-brand strong{font-size:11px}.arena-live-meta{gap:5px}.arena-connection{padding:0 8px;height:28px;font-size:7px}.arena-icon-btn{width:30px;height:30px}
  .arena-board-column{gap:5px}.arena-playerbar,.arena-board-shell,.arena-mobile-actions{width:min(calc(100vw - 12px),calc(100dvh - 205px))}.arena-playerbar{min-height:44px;border-radius:13px;padding:6px 9px}.arena-player-identity>span{font-size:6px!important}.arena-player-identity>strong{font-size:11px!important}.arena-player-identity>small{font-size:8px!important}.arena-clock-wrap small{display:none}.arena-playerbar .arena-clock-wrap>b{font-size:20px;min-width:64px}.arena-turn-indicator{display:none}
  .online-board{border-width:5px;border-radius:13px}.online-board .piece{font-size:clamp(30px,10.2vw,52px)}.arena-board-shell{border-radius:14px}.arena-board-halo{inset:-10px}.arena-mobile-actions{gap:5px}.arena-mobile-actions button{height:37px;padding:0 10px;border-radius:11px;font-size:10px}
  .arena-side{top:0;width:min(320px,96vw);padding:14px;border-radius:18px 0 0 18px}
  .online-message{min-width:235px;padding:15px}.online-message strong{font-size:18px}
}
@media(max-height:700px) and (min-width:700px){
  .arena-shell{padding-top:7px;padding-bottom:8px;grid-template-rows:36px minmax(0,1fr)}.arena-playerbar,.arena-board-shell{width:min(100%,calc(100dvh - 160px),760px)}.arena-playerbar{min-height:42px;padding:5px 10px}.arena-player-identity>small{display:none}.arena-playerbar .arena-clock-wrap>b{font-size:20px}.arena-board-column{gap:4px}
}

@media(prefers-reduced-motion:reduce){.arena-flying-piece{transition-duration:1ms!important}.online-board .square.move-arrival{animation:none!important}}

/* ============================================================
   Satranj Phase 2.2 — Focus Arena sizing + polished end state
   Board sizing is independent of host/join path and side panel.
   ============================================================ */
.field-hint{font-size:9px;color:#777589;line-height:1.4;margin-top:2px}
.auth-form input:invalid:not(:placeholder-shown){border-color:rgba(255,125,144,.36)}
.auth-form input:focus,.code-join input:focus{border-color:rgba(165,140,255,.46);box-shadow:0 0 0 3px rgba(165,140,255,.08)}

body.online-match-mode{overflow:hidden;overscroll-behavior:none}
body.online-match-mode .online-game{height:100dvh;min-height:100dvh}
.arena-shell{max-width:none;padding:10px 18px 12px;grid-template-rows:42px minmax(0,1fr);gap:6px}
.arena-main{position:relative!important;display:block!important;height:100%;min-height:0;overflow:hidden}
.arena-board-column{height:100%;min-height:0;display:grid;grid-template-rows:50px minmax(0,1fr) 50px;align-items:center;justify-items:center;gap:5px}
.arena-playerbar,.arena-board-shell{width:min(calc(100dvh - 154px),calc(100dvw - 46px),900px)!important}
.arena-board-shell{max-height:min(calc(100dvh - 154px),900px);filter:drop-shadow(0 30px 52px rgba(0,0,0,.38))}
.arena-playerbar{min-height:48px!important;padding:7px 12px!important;border-radius:15px}
.arena-playerbar .arena-clock-wrap>b{font-size:24px}
.online-board{border-width:7px;border-radius:18px}
.online-board .piece{font-size:clamp(38px,calc((100dvh - 154px)/10.6),76px)}

/* Side information floats instead of shrinking one player's board. */
.arena-side{position:absolute!important;right:8px;top:4px;bottom:4px;width:248px;height:auto!important;z-index:35;padding:14px;border-radius:18px;background:linear-gradient(180deg,rgba(18,19,30,.88),rgba(9,10,16,.84));box-shadow:-18px 0 55px rgba(0,0,0,.24);transition:transform .25s var(--ease),opacity .2s ease}
.arena-side-head h3{font-size:17px}.arena-status-card{padding:10px 11px}.arena-side .online-actions{gap:6px}.arena-side #backToLobbyBtn{height:38px}
.arena-side-close{display:none}
.arena-icon-btn{display:grid;place-items:center}

/* Finished-game card no longer blocks the middle of the board. */
.online-message.result-message{left:auto;right:15px;top:15px;transform:none;min-width:210px;max-width:270px;padding:14px 15px;border-radius:16px;align-items:flex-start;text-align:left;gap:5px;background:rgba(9,10,16,.92)}
.online-message.result-message strong{font-size:18px}.online-message.result-message span{font-size:10px}.online-message.result-message button{width:100%;margin-top:5px;padding:9px 12px;background:rgba(165,140,255,.12);border-color:rgba(165,140,255,.22)}
.review-modal-card{max-width:720px;width:min(720px,calc(100vw - 24px));max-height:min(82dvh,760px);overflow:auto}

@media(max-width:1360px){
  .arena-side{transform:translateX(calc(100% + 28px));opacity:0;pointer-events:none;width:min(290px,88vw)}
  .arena-side.mobile-open{transform:none;opacity:1;pointer-events:auto}.arena-side-close{display:grid;place-items:center}
  .arena-playerbar,.arena-board-shell{width:min(calc(100dvh - 154px),calc(100dvw - 30px),900px)!important}
}
@media(max-width:900px){
  .arena-shell{padding:7px 8px 9px;grid-template-rows:38px minmax(0,1fr)}
  .arena-board-column{grid-template-rows:45px minmax(0,1fr) 45px auto;gap:4px}
  .arena-playerbar,.arena-board-shell,.arena-mobile-actions{width:min(calc(100dvw - 16px),calc(100dvh - 180px),850px)!important}
  .arena-playerbar{min-height:43px!important;padding:5px 9px!important}.arena-playerbar .arena-clock-wrap>b{font-size:21px}
  .arena-mobile-actions{display:grid}
  .online-message.result-message{right:10px;top:10px;min-width:190px;max-width:240px}
}
@media(max-width:560px){
  .arena-shell{padding:5px 5px 7px;grid-template-rows:34px minmax(0,1fr)}
  .arena-board-column{grid-template-rows:42px minmax(0,1fr) 42px auto;gap:3px}
  .arena-playerbar,.arena-board-shell,.arena-mobile-actions{width:min(calc(100dvw - 10px),calc(100dvh - 170px))!important}
  .online-board{border-width:4px;border-radius:12px}.online-board .piece{font-size:clamp(30px,10.8vw,55px)}
  .arena-playerbar .arena-clock-wrap>b{font-size:19px;min-width:60px}
  .online-message.result-message{right:7px;top:7px;min-width:170px;max-width:210px;padding:11px 12px}
}
@media(max-height:700px) and (min-width:700px){
  .arena-shell{padding:5px 12px 7px;grid-template-rows:34px minmax(0,1fr)}
  .arena-board-column{grid-template-rows:40px minmax(0,1fr) 40px;gap:3px}
  .arena-playerbar,.arena-board-shell{width:min(calc(100dvh - 126px),calc(100dvw - 36px),820px)!important}
  .arena-playerbar{min-height:38px!important;padding:4px 9px!important}.arena-playerbar .arena-clock-wrap>b{font-size:19px}
}

/* ============================================================
   Satranj Phase 2.3 — Offline Focus Arena + responsive polish
   Stable persistent board, viewport-safe sizing, no board blink.
   ============================================================ */
body.offline-match-mode{overflow:hidden!important;overscroll-behavior:none;background:#070810}
body.offline-match-mode .topbar,body.offline-match-mode .mobile-nav{opacity:0!important;pointer-events:none!important;transform:translateY(-18px);transition:opacity .22s var(--ease),transform .22s var(--ease)}
body.offline-match-mode .app-shell{width:100%;max-width:none;margin:0;padding:0}
body.offline-match-mode main{min-height:100dvh}
body.offline-match-mode #page-play{height:100dvh;min-height:100dvh;overflow:hidden;animation:none}
body.offline-match-mode .offline-game{height:100dvh;min-height:100dvh;position:relative;isolation:isolate;background:radial-gradient(circle at 18% 10%,rgba(125,92,255,.11),transparent 30%),radial-gradient(circle at 82% 84%,rgba(41,75,170,.08),transparent 34%),#070810}

.offline-focus-shell{height:100dvh;min-height:0;display:grid;grid-template-rows:42px minmax(0,1fr);gap:6px;padding:10px 18px 12px;position:relative}
.offline-topline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;min-height:0;z-index:8}
.offline-brand{display:flex;align-items:center;gap:9px;min-width:0}.offline-brand-moon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#c5b4ff,#6f51e5);color:#16111e;font-family:Georgia,serif;font-size:19px;box-shadow:0 8px 25px rgba(114,83,228,.2)}.offline-brand>div{display:flex;flex-direction:column;line-height:1}.offline-brand strong{font-size:12px;letter-spacing:-.02em}.offline-brand small{font-size:6px;letter-spacing:.22em;color:#787589;margin-top:4px}
.offline-match-meta{height:30px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);display:flex;align-items:center;gap:8px;color:#858396;font-size:8px;font-weight:760;letter-spacing:.05em}.offline-match-meta i{width:3px;height:3px;border-radius:50%;background:#655f78}.offline-live-meta{display:flex;justify-content:flex-end;align-items:center;gap:7px}.offline-badge{height:29px;padding:0 9px;border-radius:999px;border:1px solid rgba(120,230,174,.11);background:rgba(120,230,174,.035);display:flex;align-items:center;gap:6px;font-size:7px;letter-spacing:.12em;font-weight:850;color:#91dcb4}.offline-badge i{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 11px rgba(120,230,174,.55)}.offline-icon-btn,.offline-side-close{border:1px solid var(--line);background:rgba(255,255,255,.035);color:#b8b5ca;cursor:pointer}.offline-icon-btn{width:31px;height:31px;border-radius:9px;display:grid;place-items:center}#offlineMovesToggle{display:none}.offline-side-close{width:31px;height:31px;border-radius:10px;font-size:17px;display:none}

.offline-arena-main{height:100%;min-height:0;position:relative;overflow:hidden}
.offline-board-column{height:100%;min-height:0;display:grid;grid-template-rows:50px minmax(0,1fr) 50px;align-items:center;justify-items:center;gap:5px}
.offline-playerbar,.offline-board-shell{width:min(calc(100dvh - 180px),calc(100dvw - 46px),860px)!important}
.offline-playerbar{min-height:48px!important;height:48px;padding:7px 12px!important;border-radius:15px;display:flex;align-items:center;justify-content:space-between;position:relative;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;box-shadow:0 12px 34px rgba(0,0,0,.16)}
.offline-playerbar.active-clock{border-color:rgba(165,140,255,.20);background:linear-gradient(180deg,rgba(34,31,53,.82),rgba(15,16,26,.78));box-shadow:inset 0 0 0 1px rgba(165,140,255,.045),0 14px 36px rgba(0,0,0,.2),0 0 28px rgba(128,97,240,.05)}
.offline-player-identity{display:flex;flex-direction:column;min-width:0}.offline-player-identity>span{font-size:6px;letter-spacing:.18em;color:#706e82}.offline-player-identity>strong{font-size:12px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.offline-player-identity>small{font-size:8px;color:#777589}
.offline-clock-wrap{display:flex;align-items:flex-end;gap:8px;margin-left:auto}.offline-clock-wrap small{font-size:6px;color:#626071;letter-spacing:.13em}.offline-clock-wrap>b{min-width:77px;text-align:right;font-size:23px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.045em}.offline-clock-wrap>b.low-time{color:#ff94a4;text-shadow:0 0 18px rgba(255,125,144,.18)}
.offline-turn-indicator{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;color:#777589;pointer-events:none;white-space:nowrap}.offline-turn-indicator>span{width:7px;height:7px;border-radius:50%;background:#5c5a6a;transition:.18s}.offline-turn-indicator>span.active{background:var(--success);box-shadow:0 0 12px rgba(120,230,174,.42)}.offline-turn-indicator strong{font-size:8px;letter-spacing:.04em;font-weight:750}

.offline-board-shell{aspect-ratio:1;min-height:0;align-self:center;border-width:7px!important;border-radius:18px!important;background:#15151d!important;box-shadow:0 28px 54px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.025)!important;filter:drop-shadow(0 22px 42px rgba(0,0,0,.18));transition:none!important;transform:translateZ(0);contain:layout style}
.offline-board{width:100%;height:100%;border-radius:11px!important;overflow:hidden;contain:layout paint style;transform:translateZ(0)}
.offline-board .square{border:0;padding:0;outline:0;overflow:hidden;transition:filter .11s ease,box-shadow .16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.offline-board .square:focus-visible{box-shadow:inset 0 0 0 3px rgba(255,255,255,.42)}
.offline-board .piece{font-size:clamp(34px,calc((100dvh - 154px)/10.7),72px);animation:none!important;transition:none!important;pointer-events:none;will-change:auto}
.offline-board .square.check{animation:none!important;box-shadow:inset 0 0 0 999px rgba(255,88,110,.16),inset 0 0 0 3px rgba(255,119,137,.38)}
.offline-board .square.move-arrival{animation:offlineArrival .30s var(--ease)}
.offline-board .square.move-departure{filter:brightness(.96)}
.offline-flying-piece{position:fixed!important;z-index:160!important;display:grid!important;place-items:center!important;margin:0!important;line-height:1!important;pointer-events:none!important;transition:transform 180ms cubic-bezier(.22,.8,.25,1)!important;animation:none!important;will-change:transform;filter:drop-shadow(0 10px 12px rgba(0,0,0,.27))!important}
@keyframes offlineArrival{0%{box-shadow:inset 0 0 0 999px rgba(255,255,255,.13)}100%{box-shadow:inset 0 0 0 999px rgba(209,188,74,.2)}}

.offline-side{position:absolute!important;right:8px;top:4px;bottom:4px;width:248px;height:auto!important;min-height:0!important;z-index:35;padding:14px!important;border-radius:18px!important;background:linear-gradient(180deg,rgba(18,19,30,.90),rgba(9,10,16,.86))!important;box-shadow:-18px 0 55px rgba(0,0,0,.24)!important;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:10px;overflow:hidden;transition:transform .25s var(--ease),opacity .2s ease}
.offline-side-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.offline-side-head h3{font-size:17px;margin:5px 0 0;letter-spacing:-.03em}.offline-status-card{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.offline-status-card>div{padding:9px 7px;border-radius:10px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.045);display:flex;flex-direction:column;min-width:0}.offline-status-card span{font-size:6px;letter-spacing:.13em;color:#626071}.offline-status-card strong{font-size:9px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offline-tab-zone{min-height:0;overflow:hidden}.offline-tab-zone .tab-content.active{height:100%;display:flex;flex-direction:column}.offline-tab-zone .move-list{height:100%;min-height:0;max-height:none;overflow:auto;padding:8px 0;scrollbar-width:thin;scrollbar-color:#343140 transparent}.offline-tab-zone .empty-state{padding-top:58px}.offline-tab-zone .coach-card{padding:17px 3px 12px}.offline-tab-zone .coach-orb{width:44px;height:44px;font-size:21px;margin-bottom:13px}.offline-tab-zone .coach-card h3{font-size:17px}.offline-tab-zone .coach-card p{font-size:10px;line-height:1.5}.offline-controls-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.offline-controls-grid .round-btn{width:auto;height:38px;border-radius:10px;font-size:13px;display:flex;align-items:center;justify-content:center;gap:4px}.offline-controls-grid .round-btn span{font-size:7px}.offline-controls-grid .offline-resign-wide{grid-column:1/-1}
.offline-mobile-actions{display:none;width:min(calc(100dvw - 16px),calc(100dvh - 180px),820px);grid-template-columns:repeat(5,1fr);gap:5px}.offline-mobile-actions button{height:37px;padding:0 7px;border-radius:10px;font-size:9px}

/* Stable, non-janky board feedback. Only the moved piece travels. */
body.offline-match-mode .thinking-badge{bottom:12px;background:rgba(8,9,14,.88);box-shadow:0 12px 32px rgba(0,0,0,.28)}
body.offline-match-mode .thinking-badge span{animation:none;box-shadow:0 0 10px rgba(165,140,255,.55)}
body.offline-match-mode .board-glow{inset:-12px;filter:blur(13px);opacity:.7}

@media(max-width:1180px){
  #offlineMovesToggle{display:grid}
  .offline-side{transform:translateX(calc(100% + 28px));opacity:0;pointer-events:none;width:min(300px,88vw)}
  .offline-side.mobile-open{transform:none;opacity:1;pointer-events:auto}.offline-side-close{display:grid;place-items:center}
  .offline-playerbar,.offline-board-shell{width:min(calc(100dvh - 180px),calc(100dvw - 30px),860px)!important}
}
@media(max-width:760px){
  .offline-focus-shell{padding:7px 8px 9px;grid-template-rows:38px minmax(0,1fr);gap:4px}.offline-topline{grid-template-columns:1fr auto}.offline-match-meta{display:none}.offline-brand-moon{width:28px;height:28px}.offline-badge{height:27px}.offline-icon-btn{width:29px;height:29px}
  .offline-board-column{grid-template-rows:45px minmax(0,1fr) 45px auto;gap:4px}.offline-playerbar,.offline-board-shell,.offline-mobile-actions{width:min(calc(100dvw - 16px),calc(100dvh - 205px),800px)!important}.offline-playerbar{height:43px;min-height:43px!important;padding:5px 9px!important}.offline-player-identity>small{display:none}.offline-clock-wrap small{display:none}.offline-clock-wrap>b{font-size:20px;min-width:61px}.offline-turn-indicator{display:none}.offline-mobile-actions{display:grid}
  .offline-board-shell{border-width:5px!important;border-radius:13px!important}.offline-board .piece{font-size:clamp(29px,10.6vw,54px)}
}
@media(max-width:480px){
  .offline-focus-shell{padding:5px 5px 7px;grid-template-rows:34px minmax(0,1fr)}.offline-brand>div small{display:none}.offline-brand>div strong{font-size:11px}.offline-badge{display:none}.offline-board-column{grid-template-rows:42px minmax(0,1fr) 42px auto;gap:3px}.offline-playerbar,.offline-board-shell,.offline-mobile-actions{width:min(calc(100dvw - 10px),calc(100dvh - 182px))!important}.offline-playerbar{height:40px;min-height:40px!important;border-radius:12px}.offline-player-identity>strong{font-size:10px}.offline-player-identity>span{font-size:5px}.offline-clock-wrap>b{font-size:18px}.offline-board-shell{border-width:4px!important;border-radius:11px!important}.offline-board .piece{font-size:clamp(28px,10.6vw,50px)}.offline-mobile-actions button{height:34px;font-size:8px;padding:0 4px}.offline-side{width:min(300px,94vw);right:3px;top:2px;bottom:2px}
}
@media(max-height:700px) and (min-width:761px){
  .offline-focus-shell{padding:6px 12px 8px;grid-template-rows:34px minmax(0,1fr)}.offline-board-column{grid-template-rows:40px minmax(0,1fr) 40px;gap:3px}.offline-playerbar,.offline-board-shell{width:min(calc(100dvh - 140px),calc(100dvw - 36px),800px)!important}.offline-playerbar{height:38px;min-height:38px!important;padding:4px 9px!important}.offline-player-identity>small{display:none}.offline-clock-wrap>b{font-size:19px}.offline-board-shell{border-width:5px!important}.offline-board .piece{font-size:clamp(31px,calc((100dvh - 126px)/10.7),61px)}
}
@media(max-height:600px) and (min-width:761px){
  .offline-focus-shell{padding-top:4px;padding-bottom:5px;grid-template-rows:30px minmax(0,1fr)}.offline-board-column{grid-template-rows:36px minmax(0,1fr) 36px;gap:2px}.offline-playerbar,.offline-board-shell{width:min(calc(100dvh - 122px),calc(100dvw - 30px),720px)!important}.offline-playerbar{height:34px;min-height:34px!important;padding:3px 8px!important}.offline-player-identity>span,.offline-player-identity>small{display:none}.offline-clock-wrap>b{font-size:17px}.offline-board-shell{border-width:4px!important}.offline-match-meta{height:26px}.offline-brand-moon{width:25px;height:25px}.offline-brand small{display:none}
}
@media(prefers-reduced-motion:reduce){.offline-flying-piece{transition-duration:1ms!important}.offline-board .square.move-arrival{animation:none!important}}

/* Broader responsive polish outside live matches. */
@media(max-width:1280px){body:not(.online-match-mode):not(.offline-match-mode) .app-shell{width:min(1180px,calc(100% - 28px))}.mode-grid{gap:12px}.mode-card{min-height:235px;padding:22px}.feature-strip>div{padding:8px 14px}.profile-wrap,.settings-wrap{padding-left:8px;padding-right:8px}}
@media(max-width:980px){.mode-grid{grid-template-columns:1fr 1fr}.mode-card:last-child{grid-column:1/-1}.feature-strip{grid-template-columns:1fr 1fr}.feature-strip>div:nth-child(2){border-right:0}.feature-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.stats-grid{grid-template-columns:1fr 1fr}.roadmap-card{grid-template-columns:1fr;gap:20px}}
@media(max-width:620px){body:not(.online-match-mode):not(.offline-match-mode) .app-shell{width:calc(100% - 14px)}.mode-grid{grid-template-columns:1fr}.mode-card:last-child{grid-column:auto}.feature-strip{grid-template-columns:1fr}.feature-strip>div{border-right:0!important;border-bottom:1px solid var(--line)}.feature-strip>div:last-child{border-bottom:0}.stats-grid,.settings-grid{grid-template-columns:1fr}.settings-card:first-child{grid-column:auto}.profile-hero{grid-template-columns:auto 1fr;padding:18px}.rating-orb{grid-column:1/-1;width:100%;height:94px}.profile-avatar{width:66px;height:66px;border-radius:20px}.profile-hero h2{font-size:26px}}

/* Compact end-of-game treatment keeps the board visible for review. */
body.offline-match-mode #gameOverModal.open{display:grid;place-items:start end;background:linear-gradient(90deg,transparent 55%,rgba(3,4,8,.32));backdrop-filter:none;-webkit-backdrop-filter:none;padding:64px 22px 22px;pointer-events:none}
body.offline-match-mode #gameOverModal .result-card{width:min(340px,calc(100vw - 28px));padding:20px;border-radius:20px;pointer-events:auto;text-align:left;background:linear-gradient(180deg,rgba(22,23,36,.94),rgba(10,11,18,.94));box-shadow:0 24px 70px rgba(0,0,0,.48)}
body.offline-match-mode #gameOverModal .result-icon{font-size:38px;margin-bottom:4px}body.offline-match-mode #gameOverModal .result-card h2{font-size:28px;margin:7px 0 4px}body.offline-match-mode #gameOverModal .result-card>p{font-size:11px;margin-bottom:12px}body.offline-match-mode #gameOverModal .result-stats{margin:13px 0;gap:6px}body.offline-match-mode #gameOverModal .result-stats div{padding:9px;border-radius:10px}body.offline-match-mode #gameOverModal .result-stats span{font-size:7px}body.offline-match-mode #gameOverModal .result-stats strong{font-size:14px}body.offline-match-mode #gameOverModal .modal-actions{gap:7px}body.offline-match-mode #gameOverModal .modal-actions button{height:42px;border-radius:12px;font-size:10px}
@media(max-width:760px){body.offline-match-mode #gameOverModal.open{place-items:end center;background:linear-gradient(180deg,transparent 45%,rgba(3,4,8,.50));padding:12px}body.offline-match-mode #gameOverModal .result-card{width:min(100%,390px)}}


/* Phase 2.4 — premium carved wooden pieces + reliable review layer */
#reviewModal{z-index:520!important}
body.review-open{overflow:hidden!important}
.review-modal-card{background:linear-gradient(180deg,rgba(20,21,33,.985),rgba(8,9,15,.985));box-shadow:0 38px 100px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.055)}
.review-loading{min-height:180px;display:grid;place-items:center;align-content:center;gap:9px}.review-loading strong{font-size:14px;color:#e9e6f4}.review-loading small{font-size:9px;color:#777589}.review-spinner{width:28px;height:28px;border-radius:50%;border:2px solid rgba(165,140,255,.16);border-top-color:#a58cff;animation:spin .8s linear infinite}
.review-error{padding:26px 18px;text-align:center;border-radius:16px;background:rgba(255,91,112,.055);border:1px solid rgba(255,91,112,.12)}.review-error strong{display:block;font-size:15px}.review-error p{font-size:10px;color:#a8a5b4;line-height:1.5}.review-error button{height:38px;padding:0 16px;border-radius:11px;border:1px solid rgba(165,140,255,.24);background:rgba(165,140,255,.11);color:#efeaff;cursor:pointer}.review-empty{grid-column:1/-1;padding:24px;text-align:center;color:#777589;font-size:10px}

/* The board remains flat/readable; only the pieces carry the sculpted 3D treatment. */
.chessboard .piece,.online-board .piece{
  position:relative;
  font-family:"DejaVu Sans","Segoe UI Symbol","Noto Sans Symbols 2",Georgia,serif;
  font-weight:700;
  transform:perspective(360px) rotateX(-4deg) translateY(-1%);
  transform-origin:50% 78%;
  background-size:100% 100%,7px 100%;
  background-blend-mode:soft-light,normal;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  paint-order:stroke fill;
  pointer-events:none;
  backface-visibility:hidden;
}
.chessboard .piece.white,.online-board .piece-w{
  color:#d8ad6f;
  background-image:
    linear-gradient(90deg,#8e5c31 0%,#d8aa68 11%,#f7ddb0 28%,#c88e4d 49%,#ffe6b8 67%,#b8793f 84%,#754725 100%),
    repeating-linear-gradient(90deg,rgba(78,43,18,.15) 0 1px,rgba(255,244,218,.08) 1px 3px,transparent 3px 7px);
  -webkit-text-stroke:1px rgba(77,43,21,.72);
  text-shadow:0 1px 0 #8e5d32,0 2px 0 #754825,0 3px 0 #5e391e,0 5px 5px rgba(22,12,7,.34),-1px -1px 0 rgba(255,244,215,.32);
  filter:drop-shadow(0 8px 6px rgba(35,20,10,.25)) drop-shadow(0 1px 0 rgba(255,243,213,.22));
}
.chessboard .piece.black,.online-board .piece-b{
  color:#4d2b1c;
  background-image:
    linear-gradient(90deg,#1a100c 0%,#4a2b1b 12%,#825335 29%,#321b13 48%,#6c422a 66%,#291711 84%,#100907 100%),
    repeating-linear-gradient(90deg,rgba(246,206,153,.055) 0 1px,rgba(0,0,0,.16) 1px 3px,transparent 3px 7px);
  -webkit-text-stroke:1px rgba(8,5,4,.86);
  text-shadow:0 1px 0 #2b180f,0 2px 0 #20110b,0 3px 0 #120a07,0 5px 6px rgba(0,0,0,.42),-1px -1px 0 rgba(204,143,91,.18);
  filter:drop-shadow(0 8px 7px rgba(0,0,0,.35)) drop-shadow(0 1px 0 rgba(222,158,99,.08));
}
.chessboard .square.selected>.piece,.online-board .square.selected>.piece{transform:perspective(360px) rotateX(-4deg) translateY(-7%) scale(1.035);filter:drop-shadow(0 12px 8px rgba(0,0,0,.30)) brightness(1.05)}
.chessboard .square:hover>.piece,.online-board .square:hover>.piece{filter:drop-shadow(0 9px 7px rgba(0,0,0,.27)) brightness(1.025)}
.offline-flying-piece,.arena-flying-piece{transform-style:preserve-3d!important}

/* Subtle timber tone on the board frame, without noisy textures. */
body:not(.theme-midnight) .offline-board-shell,body:not(.theme-midnight) .arena-board-shell .online-board{box-shadow:inset 0 1px 0 rgba(255,232,193,.10),0 28px 58px rgba(0,0,0,.39)}

@media(max-width:760px){.chessboard .piece,.online-board .piece{-webkit-text-stroke-width:.7px;text-shadow:0 1px 0 rgba(70,40,22,.75),0 2px 0 rgba(52,29,16,.72),0 4px 5px rgba(0,0,0,.26)}}
@media(prefers-reduced-motion:reduce){.review-spinner{animation:none}.chessboard .piece,.online-board .piece{transform:none!important}}

/* ============================================================
   Satranj Phase 2.5 — Royal Wood Edition
   Premium carved SVG pieces, timber board, warm Focus Arena UI.
   ============================================================ */
:root{
  --royal-gold:#d6a45e;
  --royal-gold-soft:rgba(214,164,94,.16);
  --royal-amber:#b67839;
  --royal-ink:#090705;
  --royal-panel:rgba(22,17,14,.84);
  --royal-line:rgba(236,196,137,.12);
}

/* Home gets a warmer luxury accent without losing Satranj's dark identity. */
body:not(.online-match-mode):not(.offline-match-mode){
  background:
    radial-gradient(circle at 77% 8%,rgba(170,102,43,.11),transparent 24%),
    radial-gradient(circle at 20% -10%,rgba(165,140,255,.15),transparent 31%),
    radial-gradient(circle at 50% -15%,#1c1830 0,#0b0c14 43%,#07080d 100%);
}
.hero-copy h1 span{background:linear-gradient(100deg,#c8c1dc 10%,#e5ba7a 72%,#9b7343);-webkit-background-clip:text;background-clip:text;color:transparent}
.mode-card.featured{background:linear-gradient(145deg,rgba(56,40,28,.94),rgba(18,15,20,.97));border-color:rgba(214,164,94,.23)}
.mode-card.featured:before{background:#c17a36}.mode-card.featured .mode-icon{color:#efc37f}
.feature-strip>div:first-child>span{color:#e2b56f}

/* Premium hero board now renders the same carved piece system used in games. */
.mini-board{border-color:#2b1b12;box-shadow:0 68px 90px rgba(0,0,0,.60),0 0 0 1px rgba(255,222,171,.07),0 0 90px rgba(155,91,38,.11);background:#291a12}
.mini-board>.mini-square{position:relative;display:grid;place-items:center;overflow:visible}
.mini-board>.mini-square:nth-child(16n + 1),.mini-board>.mini-square:nth-child(16n + 3),.mini-board>.mini-square:nth-child(16n + 5),.mini-board>.mini-square:nth-child(16n + 7),.mini-board>.mini-square:nth-child(16n + 10),.mini-board>.mini-square:nth-child(16n + 12),.mini-board>.mini-square:nth-child(16n + 14),.mini-board>.mini-square:nth-child(16n + 16){background:linear-gradient(135deg,#e5ca94,#cfaa72)}
.mini-board>.mini-square{background:linear-gradient(135deg,#8b5937,#6a4029)}
.mini-piece{width:86%;height:86%;display:grid;place-items:center;filter:drop-shadow(0 5px 4px rgba(0,0,0,.28));transform:translateY(-7%)}
.mini-piece .wood-piece-svg{width:100%;height:100%}
.floating-piece{width:94px;height:94px;display:grid;place-items:center;font-size:0!important;color:transparent!important;text-shadow:none!important;filter:none!important}
.fp-knight{width:82px;height:82px}.floating-piece .wood-piece-svg{width:100%;height:100%;filter:drop-shadow(0 20px 20px rgba(0,0,0,.34))}

/* Shared Focus Arena background: cinematic, warm, subtle and performance-safe. */
body.online-match-mode,body.offline-match-mode{background:#080604!important}
body.online-match-mode .aurora,body.offline-match-mode .aurora,body.online-match-mode .noise,body.offline-match-mode .noise{display:none}
.arena-shell,.offline-focus-shell{
  background:
    radial-gradient(circle at 11% 14%,rgba(219,159,78,.105) 0 1.5%,transparent 7%),
    radial-gradient(circle at 87% 11%,rgba(255,190,96,.08) 0 1.2%,transparent 6%),
    radial-gradient(circle at 77% 81%,rgba(155,83,31,.09),transparent 20%),
    linear-gradient(145deg,#090706 0%,#100b08 42%,#080707 100%);
}
.arena-shell:before,.offline-focus-shell:before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    linear-gradient(90deg,transparent,rgba(255,218,163,.018) 46%,transparent 56%),
    radial-gradient(ellipse at 50% 104%,rgba(156,87,37,.12),transparent 48%);
}
.arena-topline,.arena-main,.offline-topline,.offline-arena-main{position:relative;z-index:1}
.arena-ambient-a{background:#bf7531!important;opacity:.12!important}.arena-ambient-b{background:#5a301d!important;opacity:.16!important}

/* Topline / brand refinement. */
.arena-brand-moon,.offline-brand-moon{background:radial-gradient(circle at 35% 30%,#ffe1a4,#bd783b 58%,#5f341d)!important;color:#120b06!important;box-shadow:0 0 28px rgba(202,128,54,.20),inset 0 1px 0 rgba(255,255,255,.35)!important}
.arena-brand small,.offline-brand small{color:#a88968!important;letter-spacing:.24em!important}
.arena-match-meta,.offline-match-meta{background:rgba(36,26,20,.54)!important;border-color:rgba(226,180,116,.10)!important}
.arena-match-meta i,.offline-match-meta i{background:#c99554!important}
.arena-connection.ok,.offline-badge{background:rgba(104,78,43,.20)!important;border-color:rgba(222,175,109,.14)!important;color:#d8c4a5!important}
.arena-connection.ok i,.offline-badge i{background:#8ee3ae!important}

/* Player bars feel like a modern broadcast desk rather than generic glass cards. */
.arena-playerbar,.offline-playerbar{
  background:linear-gradient(180deg,rgba(35,27,23,.88),rgba(14,11,10,.86))!important;
  border-color:rgba(229,188,132,.105)!important;
  box-shadow:inset 0 1px 0 rgba(255,237,204,.035),0 12px 38px rgba(0,0,0,.24)!important;
}
.arena-playerbar:before,.offline-playerbar:before{content:"";position:absolute;left:9px;top:10px;bottom:10px;width:2px;border-radius:999px;background:linear-gradient(#e7b96f,#6e3c20);opacity:.45}
.arena-playerbar.active-turn,.offline-playerbar.active-clock{
  border-color:rgba(225,172,92,.26)!important;
  background:linear-gradient(180deg,rgba(48,34,25,.94),rgba(18,13,11,.92))!important;
  box-shadow:inset 0 0 0 1px rgba(222,166,84,.04),0 14px 38px rgba(0,0,0,.28),0 0 30px rgba(187,112,45,.065)!important;
}
.arena-player-identity>span,.offline-player-identity>span{color:#9a7c5d!important}.arena-player-identity>small,.offline-player-identity>small{color:#827468!important}
.arena-clock-wrap>b,.offline-clock-wrap>b{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace!important;color:#fff4e4;letter-spacing:-.065em!important;text-shadow:0 1px 18px rgba(228,168,88,.06)}
.arena-turn-indicator>span.active,#offlineTurnDot.active{background:#e0aa61!important;box-shadow:0 0 13px rgba(224,170,97,.42)!important}

/* Handcrafted walnut board frame. */
.arena-board-shell,.offline-board-shell{filter:drop-shadow(0 32px 48px rgba(0,0,0,.42))!important;isolation:isolate}
.arena-board-shell:before,.offline-board-shell:before{
  content:"";position:absolute;inset:-8px;z-index:-1;border-radius:25px;
  background:
    linear-gradient(90deg,rgba(255,221,169,.15),transparent 11%,rgba(255,210,144,.07) 26%,transparent 42%,rgba(255,213,150,.11) 68%,transparent 82%),
    linear-gradient(135deg,#7d4a28 0%,#2d190f 17%,#8f5530 38%,#351d12 58%,#6b3d22 77%,#24130c 100%);
  box-shadow:inset 0 0 0 1px rgba(255,224,177,.15),inset 0 0 0 5px rgba(20,10,6,.38),0 28px 70px rgba(0,0,0,.48);
}
.arena-board-shell:after,.offline-board-shell:after{
  content:"SATRANJ";position:absolute;left:50%;bottom:-6px;transform:translate(-50%,50%);z-index:8;
  padding:2px 9px;border-radius:99px;background:#1c100a;border:1px solid rgba(226,177,111,.15);color:#9d7448;font-size:5px;font-weight:900;letter-spacing:.32em;pointer-events:none;
}
.arena-board-halo,.board-glow{background:radial-gradient(circle at 50% 40%,rgba(206,132,58,.13),transparent 61%)!important;filter:blur(18px)!important}
.online-board,.offline-board{border-color:#1d120c!important;background:#24150e!important;box-shadow:inset 0 0 0 1px rgba(255,239,211,.035),inset 0 0 28px rgba(43,20,9,.18),0 0 0 1px rgba(0,0,0,.72)!important}
.online-board .square.light,.offline-board .square.light{
  background:
    linear-gradient(128deg,rgba(255,255,255,.075),transparent 34%,rgba(111,62,24,.035) 70%),
    repeating-linear-gradient(4deg,rgba(91,51,23,.045) 0 1px,transparent 1px 8px),
    #d7b77e!important;
}
.online-board .square.dark,.offline-board .square.dark{
  background:
    linear-gradient(128deg,rgba(255,235,203,.055),transparent 34%,rgba(19,9,5,.09) 72%),
    repeating-linear-gradient(4deg,rgba(244,199,142,.028) 0 1px,transparent 1px 8px),
    #765037!important;
}
.theme-midnight .online-board .square.light,.theme-midnight .offline-board .square.light{background:#9b917d!important}.theme-midnight .online-board .square.dark,.theme-midnight .offline-board .square.dark{background:#4a3a31!important}
.online-board .square.last-move,.offline-board .square.lastmove{box-shadow:inset 0 0 0 999px rgba(241,194,80,.19)!important}
.online-board .square.selected:after,.offline-board .square.selected:after{border-color:rgba(255,229,184,.88)!important;box-shadow:0 0 16px rgba(220,155,74,.18)!important}
.online-board .square.legal-target:before,.offline-board .square.legal:before{background:rgba(43,25,16,.28)!important;box-shadow:0 0 0 4px rgba(255,239,211,.045)!important}
.online-board .square.capture-target:before,.offline-board .square.capture:before{border-color:rgba(58,31,17,.28)!important}
.online-board .square.check,.offline-board .square.check{animation:none!important;box-shadow:inset 0 0 0 999px rgba(176,54,39,.23),inset 0 0 28px rgba(228,63,40,.20)!important}

/* True custom vector pieces: no font glyphs. */
.chessboard .piece,.online-board .piece{
  width:92%;height:94%;font-size:0!important;display:grid;place-items:center;
  background:none!important;background-image:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;
  -webkit-text-fill-color:initial!important;-webkit-text-stroke:0!important;text-shadow:none!important;color:initial!important;
  transform:perspective(440px) rotateX(-5deg) translateY(-2%);transform-origin:50% 80%;
  filter:none!important;overflow:visible;transition:transform .16s var(--ease),filter .18s ease,opacity .16s ease!important;
}
.wood-piece-svg{width:100%;height:100%;overflow:visible;display:block;filter:drop-shadow(0 8px 5px rgba(24,12,6,.30)) drop-shadow(0 2px 1px rgba(0,0,0,.20));transform:translateZ(0)}
.wood-maple{filter:drop-shadow(0 8px 5px rgba(57,31,13,.30)) drop-shadow(0 2px 1px rgba(61,31,12,.18)) brightness(1.02)}
.wood-walnut{filter:drop-shadow(0 8px 6px rgba(0,0,0,.43)) drop-shadow(0 2px 1px rgba(0,0,0,.30))}
.wood-body .piece-cut,.wood-body .piece-carve{fill:none!important;stroke-width:2.1!important;opacity:.82}.wood-maple .wood-body .piece-cut,.wood-maple .wood-body .piece-carve{stroke:#6b391b!important}.wood-walnut .wood-body .piece-cut,.wood-walnut .wood-body .piece-carve{stroke:#090605!important}
.wood-body .piece-eye{stroke:none!important}.wood-maple .wood-body .piece-eye{fill:#4c2712!important}.wood-walnut .wood-body .piece-eye{fill:#d09a6c!important}
.wood-gloss .piece-cut,.wood-gloss .piece-carve,.wood-gloss .piece-eye,.wood-grain .piece-cut,.wood-grain .piece-carve,.wood-grain .piece-eye{display:none}
.square:hover>.piece{transform:perspective(440px) rotateX(-5deg) translateY(-5%) scale(1.018)!important}.square.selected>.piece{transform:perspective(440px) rotateX(-7deg) translateY(-10%) scale(1.055)!important;filter:drop-shadow(0 14px 8px rgba(0,0,0,.22))!important}
.square.move-arrival>.piece{animation:royalPieceSettle .30s cubic-bezier(.2,.78,.25,1)}
@keyframes royalPieceSettle{0%{transform:perspective(440px) rotateX(-6deg) translateY(-12%) scale(1.07)}55%{transform:perspective(440px) rotateX(-5deg) translateY(1%) scale(.99)}100%{transform:perspective(440px) rotateX(-5deg) translateY(-2%) scale(1)}}
.arena-flying-piece,.offline-flying-piece{filter:drop-shadow(0 18px 12px rgba(0,0,0,.34))!important;transition:transform 215ms cubic-bezier(.16,.84,.2,1),filter 215ms ease!important}.arena-flying-piece .wood-piece-svg,.offline-flying-piece .wood-piece-svg{filter:drop-shadow(0 13px 8px rgba(0,0,0,.30)) brightness(1.035)}
.captured-fade{opacity:.08!important;transform:scale(.68) translateY(8%)!important;filter:blur(.3px)!important}

/* Side panels and move feed get a restrained leather/wood desk character. */
.arena-side,.offline-side{background:linear-gradient(180deg,rgba(31,24,21,.91),rgba(12,10,9,.88))!important;border-color:rgba(225,181,122,.10)!important;box-shadow:inset 0 1px 0 rgba(255,236,204,.025),-18px 0 65px rgba(0,0,0,.18)!important}
.arena-status-card,.offline-status-card{background:rgba(126,77,39,.065)!important;border-color:rgba(221,172,105,.085)!important}
.arena-side .move-pill,.offline-side .move-pill{background:rgba(255,227,190,.035)!important;color:#ddd0bf}.arena-side .move-row.latest{background:rgba(205,135,65,.065)!important}
.panel-tab.active{background:rgba(195,124,57,.12)!important;color:#f4e3ca!important}
.coach-orb{background:radial-gradient(circle at 35% 35%,#ffe0a4,#b66e32 58%,#3e2112)!important;box-shadow:0 0 35px rgba(173,99,40,.18)!important;color:#1b0e07!important}

/* Result + review feel like the same premium product, without covering the board. */
body.offline-match-mode #gameOverModal .result-card,body.online-match-mode #onlineGameMessage{
  background:linear-gradient(180deg,rgba(36,27,22,.96),rgba(12,10,9,.96))!important;border-color:rgba(231,187,127,.13)!important;box-shadow:0 28px 90px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,239,215,.04)!important
}
.result-icon{color:#d9aa68!important;text-shadow:0 0 30px rgba(201,128,55,.18)!important}.review-modal-card{background:linear-gradient(180deg,rgba(31,23,20,.99),rgba(10,9,8,.99))!important;border-color:rgba(228,181,116,.12)!important}.review-spinner{border-color:rgba(212,152,83,.16)!important;border-top-color:#d4a05f!important}

/* Promotion choices now use the real carved set. */
.promotion-piece-btn{display:grid!important;place-items:center!important;padding:0!important;overflow:visible}.promotion-piece-btn .piece{width:86%;height:86%;font-size:0!important}.promotion-piece-btn:hover .piece{transform:translateY(-5%) scale(1.055)!important}

/* Royal Wood label treatment on settings and lobby controls. */
.theme-chip.active,.time-grid button.active{border-color:rgba(219,169,98,.26)!important;background:rgba(178,104,45,.11)!important}.rating-chip{background:rgba(187,112,47,.11)!important;border-color:rgba(226,174,105,.16)!important;color:#e4bb82!important}.search-orbit{border-color:rgba(219,164,93,.14)!important;border-top-color:#d8a35e!important}

@media(max-width:760px){
  .chessboard .piece,.online-board .piece{width:94%;height:96%;transform:perspective(320px) rotateX(-4deg) translateY(-1%)}
  .arena-board-shell:before,.offline-board-shell:before{inset:-5px;border-radius:17px}.arena-board-shell:after,.offline-board-shell:after{display:none}
  .wood-piece-svg{filter:drop-shadow(0 5px 3px rgba(0,0,0,.28))}
}
@media(prefers-reduced-motion:reduce){.square.move-arrival>.piece{animation:none!important}.chessboard .piece,.online-board .piece{transform:none!important}}


/* ============================================================
   SATRANJ PHASE 2.6 — MONOCHROME EDITION (DEFAULT)
   Premium black / white system. Royal Wood remains opt-in.
   ============================================================ */
:root{
  --bg:#050505;--panel:rgba(15,15,16,.80);--panel-solid:#0d0d0e;--text:#f7f7f5;--muted:#939397;--line:rgba(255,255,255,.105);
  --accent:#f1f1ef;--accent2:#bfc0c3;--accent-soft:rgba(255,255,255,.095);--success:#f2f2f0;--danger:#d5d5d5;
  --sq-light:#deded9;--sq-dark:#27282a;--piece-white:#fff;--piece-black:#050505;--board-edge:#050505;
}
body:not(.theme-royalwood){background:radial-gradient(circle at 74% 0%,rgba(255,255,255,.055),transparent 26%),radial-gradient(circle at 20% -15%,rgba(255,255,255,.04),transparent 31%),linear-gradient(155deg,#030303 0%,#09090a 52%,#030303 100%)!important;color:#f5f5f3}
body:not(.theme-royalwood) .aurora{filter:blur(110px);opacity:.10}
body:not(.theme-royalwood) .aurora-a{background:#d8d8da!important}.theme-monochrome .aurora-b,.theme-midnight .aurora-b{background:#6d6e72!important}
body:not(.theme-royalwood) .noise{opacity:.028}
body:not(.theme-royalwood) .glass{background:linear-gradient(180deg,rgba(20,20,21,.82),rgba(8,8,9,.78))!important;border-color:rgba(255,255,255,.10)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 20px 70px rgba(0,0,0,.38)!important}
body:not(.theme-royalwood) .brand-mark{background:radial-gradient(circle at 34% 28%,#fff,#c7c8cb 48%,#6d6f73 78%,#171719)!important;box-shadow:0 0 30px rgba(255,255,255,.09)!important}
body:not(.theme-royalwood) .moon-cut{background:#0b0b0c!important}
body:not(.theme-royalwood) .brand-copy small{color:#88898d!important}
body:not(.theme-royalwood) .nav-link:hover,body:not(.theme-royalwood) .nav-link.active{background:rgba(255,255,255,.075)!important;color:#fff!important}
body:not(.theme-royalwood) .network-badge i,body:not(.theme-royalwood) .network-badge.online i{background:#f0f0ed!important;box-shadow:0 0 13px rgba(255,255,255,.34)!important}
body:not(.theme-royalwood) .eyebrow{color:#b6b6b8!important}body:not(.theme-royalwood) .eyebrow i{background:#f2f2ef!important;box-shadow:0 0 14px rgba(255,255,255,.30)!important}
body:not(.theme-royalwood) .hero-copy h1 span{background:linear-gradient(100deg,#f4f4f2,#a9aaad 78%,#686a6e)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
body:not(.theme-royalwood) .hero-copy p{color:#a0a0a4!important}
body:not(.theme-royalwood) .primary-btn{background:linear-gradient(145deg,#fff,#d4d4d2)!important;color:#090909!important;box-shadow:0 13px 34px rgba(255,255,255,.08),inset 0 1px 0 #fff!important}
body:not(.theme-royalwood) .primary-btn:hover{box-shadow:0 17px 42px rgba(255,255,255,.13),inset 0 1px 0 #fff!important}
body:not(.theme-royalwood) .secondary-btn,body:not(.theme-royalwood) .ghost-btn{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.13)!important;color:#ededeb!important}
body:not(.theme-royalwood) .secondary-btn:hover,body:not(.theme-royalwood) .ghost-btn:hover{background:rgba(255,255,255,.075)!important}
body:not(.theme-royalwood) .mode-card{background:linear-gradient(155deg,rgba(19,19,20,.96),rgba(7,7,8,.97))!important;border-color:rgba(255,255,255,.095)!important}
body:not(.theme-royalwood) .mode-card.featured{background:linear-gradient(145deg,rgba(34,34,35,.96),rgba(8,8,9,.98))!important;border-color:rgba(255,255,255,.18)!important}
body:not(.theme-royalwood) .mode-card:before,body:not(.theme-royalwood) .mode-card.featured:before{background:#fff!important}
body:not(.theme-royalwood) .mode-card:hover{border-color:rgba(255,255,255,.21)!important;box-shadow:0 28px 74px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.025)!important}
body:not(.theme-royalwood) .mode-icon,body:not(.theme-royalwood) .mode-card.featured .mode-icon{color:#f1f1ef!important}
body:not(.theme-royalwood) .pill,body:not(.theme-royalwood) .pill.phase{color:#e8e8e6!important;background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.11)!important}
body:not(.theme-royalwood) .feature-strip>div>span,body:not(.theme-royalwood) .feature-strip>div:first-child>span{color:#e8e8e6!important}

/* Hero: high-contrast monochrome board, same pieces used in live play. */
body:not(.theme-royalwood) .hero-visual:before{content:"";position:absolute;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.08),rgba(255,255,255,.025) 36%,transparent 68%);filter:blur(7px);pointer-events:none}
body:not(.theme-royalwood) .mini-board{border-color:#050505!important;background:#080808!important;box-shadow:0 70px 95px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.17),0 0 0 5px rgba(255,255,255,.018),0 0 100px rgba(255,255,255,.055)!important}
body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 1),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 3),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 5),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 7),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 10),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 12),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 14),body:not(.theme-royalwood) .mini-board>.mini-square:nth-child(16n + 16){background:linear-gradient(135deg,#f2f2ee,#cbccca)!important}
body:not(.theme-royalwood) .mini-board>.mini-square{background:linear-gradient(135deg,#333437,#141516)!important}
body:not(.theme-royalwood) .orbit{border-color:rgba(255,255,255,.10)!important}
body:not(.theme-royalwood) .hero-rating{border-color:rgba(255,255,255,.13)!important}

/* Focus Arena: professional broadcast-grade monochrome. */
body:not(.theme-royalwood).online-match-mode,body:not(.theme-royalwood).offline-match-mode{background:#020202!important}
body:not(.theme-royalwood) .arena-shell,body:not(.theme-royalwood) .offline-focus-shell{background:radial-gradient(circle at 50% -15%,rgba(255,255,255,.055),transparent 31%),radial-gradient(circle at 86% 76%,rgba(255,255,255,.025),transparent 22%),linear-gradient(145deg,#030303 0%,#0a0a0b 48%,#020202 100%)!important}
body:not(.theme-royalwood) .arena-shell:before,body:not(.theme-royalwood) .offline-focus-shell:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.015) 48%,transparent 55%),radial-gradient(ellipse at 50% 104%,rgba(255,255,255,.035),transparent 48%)!important}
body:not(.theme-royalwood) .arena-ambient-a,body:not(.theme-royalwood) .arena-ambient-b{background:#fff!important;opacity:.04!important}
body:not(.theme-royalwood) .arena-brand-moon,body:not(.theme-royalwood) .offline-brand-moon{background:radial-gradient(circle at 34% 28%,#fff,#d0d0cf 48%,#77787b 76%,#171719)!important;color:#070707!important;box-shadow:0 0 28px rgba(255,255,255,.09),inset 0 1px 0 rgba(255,255,255,.72)!important}
body:not(.theme-royalwood) .arena-brand small,body:not(.theme-royalwood) .offline-brand small{color:#8c8d90!important}
body:not(.theme-royalwood) .arena-match-meta,body:not(.theme-royalwood) .offline-match-meta{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.10)!important}
body:not(.theme-royalwood) .arena-match-meta i,body:not(.theme-royalwood) .offline-match-meta i{background:#e5e5e3!important}
body:not(.theme-royalwood) .arena-connection.ok,body:not(.theme-royalwood) .offline-badge{background:rgba(255,255,255,.045)!important;border-color:rgba(255,255,255,.11)!important;color:#d5d5d4!important}
body:not(.theme-royalwood) .arena-connection.ok i,body:not(.theme-royalwood) .offline-badge i{background:#f1f1ef!important;box-shadow:0 0 12px rgba(255,255,255,.30)!important}
body:not(.theme-royalwood) .arena-playerbar,body:not(.theme-royalwood) .offline-playerbar{background:linear-gradient(180deg,rgba(22,22,23,.94),rgba(8,8,9,.92))!important;border-color:rgba(255,255,255,.105)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 14px 42px rgba(0,0,0,.34)!important}
body:not(.theme-royalwood) .arena-playerbar:before,body:not(.theme-royalwood) .offline-playerbar:before{background:linear-gradient(#fff,#55575a)!important;opacity:.38!important}
body:not(.theme-royalwood) .arena-playerbar.active-turn,body:not(.theme-royalwood) .offline-playerbar.active-clock{border-color:rgba(255,255,255,.29)!important;background:linear-gradient(180deg,rgba(35,35,36,.96),rgba(10,10,11,.94))!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 16px 45px rgba(0,0,0,.38),0 0 32px rgba(255,255,255,.035)!important}
body:not(.theme-royalwood) .arena-player-identity>span,body:not(.theme-royalwood) .offline-player-identity>span{color:#9c9da0!important}body:not(.theme-royalwood) .arena-player-identity>small,body:not(.theme-royalwood) .offline-player-identity>small{color:#737477!important}
body:not(.theme-royalwood) .arena-clock-wrap>b,body:not(.theme-royalwood) .offline-clock-wrap>b{color:#f7f7f5!important;text-shadow:0 1px 18px rgba(255,255,255,.045)!important}
body:not(.theme-royalwood) .arena-turn-indicator>span.active,body:not(.theme-royalwood) #offlineTurnDot.active{background:#f2f2ef!important;box-shadow:0 0 14px rgba(255,255,255,.38)!important}

/* Piano-black board frame with a satin silver edge. */
body:not(.theme-royalwood) .arena-board-shell:before,body:not(.theme-royalwood) .offline-board-shell:before{background:linear-gradient(135deg,#5c5d60 0%,#0d0d0e 9%,#242527 22%,#030303 48%,#313235 72%,#090909 90%,#66676a 100%)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),inset 0 0 0 5px rgba(0,0,0,.75),0 30px 76px rgba(0,0,0,.62)!important}
body:not(.theme-royalwood) .arena-board-shell:after,body:not(.theme-royalwood) .offline-board-shell:after{background:#050505!important;border-color:rgba(255,255,255,.18)!important;color:#8f9093!important}
body:not(.theme-royalwood) .arena-board-halo,body:not(.theme-royalwood) .board-glow{background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.075),transparent 61%)!important}
body:not(.theme-royalwood) .online-board,body:not(.theme-royalwood) .offline-board{border-color:#030303!important;background:#060606!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 0 28px rgba(0,0,0,.30),0 0 0 1px rgba(255,255,255,.08)!important}
body:not(.theme-royalwood) .online-board .square.light,body:not(.theme-royalwood) .offline-board .square.light{background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 37%,rgba(0,0,0,.025) 72%),#deded9!important}
body:not(.theme-royalwood) .online-board .square.dark,body:not(.theme-royalwood) .offline-board .square.dark{background:linear-gradient(135deg,rgba(255,255,255,.045),transparent 38%,rgba(0,0,0,.14) 76%),#252628!important}
body.theme-midnight .online-board .square.light,body.theme-midnight .offline-board .square.light{background:#b7b8b8!important}body.theme-midnight .online-board .square.dark,body.theme-midnight .offline-board .square.dark{background:#111214!important}
body:not(.theme-royalwood) .online-board .square.last-move,body:not(.theme-royalwood) .offline-board .square.lastmove{box-shadow:inset 0 0 0 999px rgba(255,255,255,.15)!important}
body:not(.theme-royalwood) .online-board .square.selected:after,body:not(.theme-royalwood) .offline-board .square.selected:after{border-color:rgba(255,255,255,.92)!important;box-shadow:0 0 18px rgba(255,255,255,.14)!important}
body:not(.theme-royalwood) .online-board .square.legal-target:before,body:not(.theme-royalwood) .offline-board .square.legal:before{background:rgba(255,255,255,.28)!important;box-shadow:0 0 0 4px rgba(255,255,255,.055)!important}
body:not(.theme-royalwood) .online-board .square.capture-target:before,body:not(.theme-royalwood) .offline-board .square.capture:before{border-color:rgba(255,255,255,.42)!important}
body:not(.theme-royalwood) .online-board .square.check,body:not(.theme-royalwood) .offline-board .square.check{animation:none!important;box-shadow:inset 0 0 0 999px rgba(255,255,255,.13),inset 0 0 0 3px rgba(255,255,255,.72),inset 0 0 28px rgba(255,255,255,.10)!important}

/* Monochrome sculpted piece finishing. */
body:not(.theme-royalwood) .wood-maple{filter:drop-shadow(0 9px 6px rgba(0,0,0,.32)) drop-shadow(0 2px 1px rgba(0,0,0,.24)) brightness(1.025) contrast(1.02)!important}
body:not(.theme-royalwood) .wood-walnut{filter:drop-shadow(0 10px 7px rgba(0,0,0,.58)) drop-shadow(0 2px 1px rgba(0,0,0,.45)) contrast(1.10)!important}
body:not(.theme-royalwood) .wood-maple .wood-body .piece-cut,body:not(.theme-royalwood) .wood-maple .wood-body .piece-carve{stroke:#4a4b4d!important}
body:not(.theme-royalwood) .wood-walnut .wood-body .piece-cut,body:not(.theme-royalwood) .wood-walnut .wood-body .piece-carve{stroke:#000!important}
body:not(.theme-royalwood) .wood-maple .wood-body .piece-eye{fill:#363739!important}body:not(.theme-royalwood) .wood-walnut .wood-body .piece-eye{fill:#d8d8d8!important}
body:not(.theme-royalwood) .wood-grain{opacity:.10!important}

/* Side panels, reviews, profile and controls stay monochrome. */
body:not(.theme-royalwood) .arena-side,body:not(.theme-royalwood) .offline-side{background:linear-gradient(180deg,rgba(18,18,19,.94),rgba(6,6,7,.91))!important;border-color:rgba(255,255,255,.10)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025),-18px 0 65px rgba(0,0,0,.25)!important}
body:not(.theme-royalwood) .arena-status-card,body:not(.theme-royalwood) .offline-status-card{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.08)!important}
body:not(.theme-royalwood) .arena-side .move-pill,body:not(.theme-royalwood) .offline-side .move-pill{background:rgba(255,255,255,.045)!important;color:#d8d8d8!important}
body:not(.theme-royalwood) .arena-side .move-row.latest{background:rgba(255,255,255,.06)!important}
body:not(.theme-royalwood) .theme-chip.active,body:not(.theme-royalwood) .time-grid button.active{border-color:rgba(255,255,255,.27)!important;background:rgba(255,255,255,.08)!important}
body:not(.theme-royalwood) .rating-chip{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.12)!important;color:#e7e7e5!important}
body:not(.theme-royalwood) .search-orbit{border-color:rgba(255,255,255,.12)!important;border-top-color:#fff!important}
body:not(.theme-royalwood) .profile-avatar{background:linear-gradient(145deg,#fff,#77787c)!important;color:#080808!important}
body:not(.theme-royalwood) .dna-bars i:after{background:linear-gradient(90deg,#55575b,#f3f3f1)!important}
body:not(.theme-royalwood) .toggle.on{background:rgba(255,255,255,.13)!important;border-color:rgba(255,255,255,.20)!important}body:not(.theme-royalwood) .toggle.on span{background:#f5f5f3!important;box-shadow:0 0 15px rgba(255,255,255,.16)!important}

/* Theme picker */
.swatch.monochrome{background:linear-gradient(135deg,#eeeeea 50%,#1f2022 50%)!important;border-color:#09090a!important}
.swatch.royalwood{background:linear-gradient(135deg,#ddb77b 50%,#5d3825 50%)!important;border-color:#160e09!important}
body:not(.theme-royalwood) .theme-chip.active{color:#fff!important}

/* Royal Wood option restores its warm identity. */
body.theme-royalwood .swatch.royalwood{box-shadow:0 0 0 2px rgba(224,179,114,.14)}

@media(max-width:720px){
  body:not(.theme-royalwood) .hero-visual:before{width:320px;height:320px}
  body:not(.theme-royalwood) .mini-board{box-shadow:0 45px 62px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.15),0 0 65px rgba(255,255,255,.04)!important}
}

/* Monochrome coverage for setup/auth/review/leaderboard surfaces. */
body:not(.theme-royalwood) .account-btn{border-color:rgba(255,255,255,.16)!important;background:rgba(255,255,255,.055)!important;color:#eeeeec!important}
body:not(.theme-royalwood) .account-btn:hover{background:rgba(255,255,255,.095)!important}
body:not(.theme-royalwood) .modal-backdrop{background:rgba(0,0,0,.76)!important}
body:not(.theme-royalwood) .modal-card,body:not(.theme-royalwood) .review-modal-card{background:linear-gradient(180deg,rgba(22,22,23,.985),rgba(7,7,8,.985))!important;border-color:rgba(255,255,255,.11)!important;box-shadow:0 38px 100px rgba(0,0,0,.68),inset 0 1px 0 rgba(255,255,255,.045)!important}
body:not(.theme-royalwood) .modal-card>p,body:not(.theme-royalwood) .setup-block>label{color:#8f9093!important}
body:not(.theme-royalwood) .segmented button,body:not(.theme-royalwood) .time-grid button{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.105)!important;color:#aaaeb2!important}
body:not(.theme-royalwood) .segmented button.active,body:not(.theme-royalwood) .time-grid button.active{background:rgba(255,255,255,.095)!important;border-color:rgba(255,255,255,.28)!important;color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important}
body:not(.theme-royalwood) .panel-tab.active{background:rgba(255,255,255,.075)!important;color:#f4f4f2!important}
body:not(.theme-royalwood) .coach-orb{background:linear-gradient(145deg,#efefed,#77797c)!important;color:#060606!important;box-shadow:0 12px 30px rgba(0,0,0,.24)!important}
body:not(.theme-royalwood) .round-btn:hover,body:not(.theme-royalwood) .offline-icon-btn:hover{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.18)!important}
body:not(.theme-royalwood) .review-spinner{border-color:rgba(255,255,255,.13)!important;border-top-color:#f5f5f2!important}
body:not(.theme-royalwood) .review-error{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.10)!important}
body:not(.theme-royalwood) .review-error button{border-color:rgba(255,255,255,.16)!important;background:rgba(255,255,255,.07)!important;color:#f3f3f1!important}
body:not(.theme-royalwood) .result-icon{color:#f0f0ed!important;text-shadow:0 0 30px rgba(255,255,255,.10)!important}
body:not(.theme-royalwood).offline-match-mode #gameOverModal .result-card,body:not(.theme-royalwood).online-match-mode #onlineGameMessage{background:linear-gradient(180deg,rgba(24,24,25,.97),rgba(7,7,8,.96))!important;border-color:rgba(255,255,255,.13)!important;box-shadow:0 28px 80px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.035)!important}
body:not(.theme-royalwood) .auth-form input,body:not(.theme-royalwood) .code-join input{background:#0a0a0b!important;border-color:rgba(255,255,255,.11)!important;color:#f4f4f2!important}
body:not(.theme-royalwood) .auth-form input:focus,body:not(.theme-royalwood) .code-join input:focus{border-color:rgba(255,255,255,.36)!important;box-shadow:0 0 0 3px rgba(255,255,255,.055)!important}
body:not(.theme-royalwood) .online-status>span.ok{background:#efefec!important;box-shadow:0 0 15px rgba(255,255,255,.30)!important}
body:not(.theme-royalwood) .private-code strong,body:not(.theme-royalwood) .leader-rank.top{color:#f2f2ef!important}
body:not(.theme-royalwood) .leader-row:hover,body:not(.theme-royalwood) .history-row:hover{background:rgba(255,255,255,.035)!important}
body:not(.theme-royalwood) .toast{background:#111112!important;border-color:rgba(255,255,255,.12)!important;color:#eee!important;box-shadow:0 18px 55px rgba(0,0,0,.48)!important}
body:not(.theme-royalwood) .promotion-piece-btn{background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.10)!important}
body:not(.theme-royalwood) .promotion-piece-btn:hover{background:rgba(255,255,255,.075)!important;border-color:rgba(255,255,255,.22)!important}
body:not(.theme-royalwood) .low-time{color:#f5f5f2!important;text-shadow:0 0 16px rgba(255,255,255,.13)!important}

/* ============================================================
   Satranj Phase 2.7 — Mobile & Tablet Responsive Edition
   Dedicated touch-first responsive system for 360px–1024px.
   This block intentionally lives last so it resolves older
   breakpoint conflicts without changing chess/game logic.
   ============================================================ */
:root{
  --mm-safe-top:env(safe-area-inset-top,0px);
  --mm-safe-right:env(safe-area-inset-right,0px);
  --mm-safe-bottom:env(safe-area-inset-bottom,0px);
  --mm-safe-left:env(safe-area-inset-left,0px);
  --mm-app-height:100dvh;
  --mm-app-width:100dvw;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,input{touch-action:manipulation}
button,.square,.theme-chip,.nav-link,.mobile-nav button{-webkit-tap-highlight-color:transparent}
.chessboard .square,.online-board .square{touch-action:manipulation;user-select:none;-webkit-user-select:none}
img,svg{max-width:100%}

/* Tablet shell + global surfaces */
@media (max-width:1024px){
  body:not(.online-match-mode):not(.offline-match-mode) .app-shell{
    width:min(100% - 24px,900px);
    padding-top:max(10px,var(--mm-safe-top));
    padding-bottom:calc(92px + var(--mm-safe-bottom));
  }
  .topbar{top:max(8px,var(--mm-safe-top));height:64px;padding:0 12px 0 13px;border-radius:18px}
  .desktop-nav,.network-badge{display:none!important}
  .mobile-nav{
    display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));
    left:max(10px,var(--mm-safe-left));right:max(10px,var(--mm-safe-right));
    bottom:max(8px,var(--mm-safe-bottom));height:62px;padding:5px;
    border-radius:20px;z-index:80;
    box-shadow:0 18px 58px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.045);
  }
  .mobile-nav button{min-width:0;border:0;background:transparent;color:#77797d;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:50px}
  .mobile-nav button span{font-size:17px;line-height:1}.mobile-nav button small{font-size:8px;letter-spacing:.01em}.mobile-nav button.active{background:rgba(255,255,255,.075);color:#fff}
  .hero-grid{grid-template-columns:1fr;gap:6px;min-height:0;padding:52px 18px 24px}
  .hero-copy{max-width:760px}.hero-copy h1{font-size:clamp(56px,10vw,84px);max-width:720px}.hero-copy p{font-size:16px;max-width:680px}
  .hero-visual{height:430px;margin-top:-18px;transform:none!important}.mini-board{width:min(360px,57vw)}
  .mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-card:last-child{grid-column:1/-1}.mode-card{min-height:218px}
  .online-lobby{grid-template-columns:1fr}.online-hero,.guest-gate{align-items:flex-start;flex-direction:column}.online-status{width:100%;min-width:0}
  .profile-wrap,.settings-wrap,.online-wrap,.leader-wrap{padding-left:4px;padding-right:4px}
  .roadmap-card{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.settings-card:first-child{grid-column:auto}
  .review-modal-card{width:min(720px,calc(100vw - 28px))}
}

/* Phone-first non-game UI */
@media (max-width:700px){
  body:not(.online-match-mode):not(.offline-match-mode) .app-shell{width:100%;padding:calc(6px + var(--mm-safe-top)) 8px calc(82px + var(--mm-safe-bottom))}
  .topbar{height:56px;top:max(5px,var(--mm-safe-top));border-radius:16px;padding:0 8px 0 10px}
  .brand{gap:8px}.brand-mark{width:34px;height:34px}.moon-cut{width:28px;height:28px;left:8px}.brand-copy strong{font-size:14px}.brand-copy small{font-size:6px;letter-spacing:.26em;margin-top:4px}
  .top-actions{gap:6px}.account-btn{height:36px!important;max-width:78px;padding:0 9px!important;border-radius:11px!important;font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{width:36px;height:36px;border-radius:11px}
  .hero-grid{padding:38px 7px 12px;gap:4px}.eyebrow{font-size:8px;letter-spacing:.18em}.hero-copy h1{font-size:clamp(43px,13.5vw,66px);line-height:.94;margin:16px 0 16px;letter-spacing:-.058em}.hero-copy p{font-size:13px;line-height:1.58}
  .hero-actions{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.hero-actions .primary-btn,.hero-actions .secondary-btn{height:46px;padding:0 13px;border-radius:13px;font-size:11px}.hero-actions .primary-btn{gap:12px}
  .trust-row{margin-top:22px;gap:8px;justify-content:space-between}.trust-row div{min-width:0}.trust-row strong{font-size:14px}.trust-row span{font-size:8px;white-space:nowrap}
  .hero-visual{height:310px;margin-top:-4px;overflow:hidden}.mini-board{width:min(286px,72vw);border-width:7px;border-radius:14px}.orbit-one{width:300px;height:300px}.orbit-two{width:220px;height:220px}.floating-piece{width:66px;height:66px}.fp-knight{width:58px;height:58px}.hero-rating{right:3px;bottom:7px;min-width:116px;padding:10px 12px;border-radius:13px}.hero-rating strong{font-size:22px}.hero-rating span{font-size:6px}.hero-rating small{font-size:8px}
  .section-heading{padding:22px 7px 13px;gap:8px}.section-heading h2{font-size:27px;margin-top:6px}.section-heading p{font-size:11px;line-height:1.45;margin:0}
  .mode-grid{grid-template-columns:1fr;gap:9px}.mode-card:last-child{grid-column:auto}.mode-card{min-height:184px;padding:18px;border-radius:19px}.mode-icon{font-size:31px}.mode-card h3{font-size:20px;margin:20px 0 7px}.mode-card p{font-size:12px;max-width:90%}.mode-meta{font-size:8px;margin-top:14px}.card-arrow{width:34px;height:34px;right:16px;bottom:16px}
  .feature-strip{grid-template-columns:1fr;padding:7px 13px;border-radius:18px}.feature-strip>div{padding:11px 2px;border-right:0!important;border-bottom:1px solid var(--line)!important}.feature-strip>div:last-child{border-bottom:0!important}.feature-strip>div>span{font-size:19px}.feature-strip b{font-size:11px}.feature-strip small{font-size:9px}
  .online-wrap,.leader-wrap{padding:14px 0}.online-hero,.guest-gate,.queue-panel,.private-panel,.leader-card,.online-profile-card{padding:16px!important;border-radius:18px!important}.online-hero{gap:16px}.online-hero h2{font-size:30px;margin:7px 0}.online-hero p,.guest-gate p{font-size:11px;line-height:1.5}.online-status{padding:13px;border-radius:14px}.online-status strong{font-size:11px}.online-status small{font-size:9px}.guest-gate h3{font-size:21px}.guest-gate .primary-btn{width:100%}
  .online-lobby{gap:10px;margin-top:10px}.panel-title{gap:8px}.panel-title h3{font-size:19px}.time-grid{grid-template-columns:repeat(3,1fr);gap:6px}.time-grid button{min-height:58px;border-radius:12px}.time-grid button b{font-size:12px}.time-grid button span{font-size:8px}.private-code strong{font-size:27px;letter-spacing:.14em}.code-join{grid-template-columns:minmax(0,1fr) 72px}.code-join input{min-width:0}
  .profile-wrap,.settings-wrap{padding:14px 0}.profile-hero{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:15px;border-radius:18px}.profile-avatar{width:58px;height:58px;border-radius:17px;font-size:22px}.profile-hero h2{font-size:23px;margin:5px 0 3px}.profile-hero p{font-size:10px;line-height:1.45}.rating-orb{grid-column:1/-1;height:78px;border-radius:16px}.rating-orb strong{font-size:29px;margin:5px}.stats-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.stat-card{padding:14px;border-radius:16px}.stat-card strong{font-size:25px;margin:5px 0}.roadmap-card{padding:16px;border-radius:18px;gap:18px}.roadmap-card h3{font-size:22px}.roadmap-card p{font-size:10px}.dna-bars{gap:11px}.dna-bars label{grid-template-columns:68px 1fr;font-size:9px}
  .online-profile-stats{grid-template-columns:1fr 1fr;gap:6px}.online-profile-stats>div{padding:11px}.history-row{grid-template-columns:minmax(0,1fr) 42px 52px;gap:5px}.history-row strong{font-size:9px}.history-row small{font-size:8px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .settings-card{padding:16px;border-radius:17px}.settings-card h3{font-size:14px}.settings-card p{font-size:10px}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.theme-chip{height:43px;padding:0 10px;font-size:10px}.row-setting{gap:12px}.toggle{flex:0 0 auto}
  .leader-card{overflow:hidden}.leader-tabs{display:flex;overflow-x:auto;gap:5px;padding-bottom:4px;scrollbar-width:none}.leader-tabs::-webkit-scrollbar{display:none}.leader-tabs button{flex:0 0 auto;min-width:72px}.leader-row{grid-template-columns:32px 34px minmax(0,1fr) 48px!important;gap:6px!important;padding:10px 2px!important}.leader-avatar{width:34px;height:34px}.leader-person strong{font-size:10px}.leader-person small{font-size:7px;max-width:120px!important}.leader-row>b{font-size:11px}.leader-row .rd{display:none!important}
  .mobile-nav{left:max(7px,var(--mm-safe-left));right:max(7px,var(--mm-safe-right));bottom:max(6px,var(--mm-safe-bottom));height:58px;border-radius:18px;padding:4px}.mobile-nav button{min-height:48px}.mobile-nav button span{font-size:15px}.mobile-nav button small{font-size:7px}
  .toast{bottom:calc(72px + var(--mm-safe-bottom));max-width:calc(100vw - 24px);white-space:normal;text-align:center}

  /* Mobile modals behave as sheets and survive the software keyboard. */
  .modal-backdrop{align-items:end;justify-items:stretch;padding:8px max(8px,var(--mm-safe-right)) max(8px,var(--mm-safe-bottom)) max(8px,var(--mm-safe-left));overflow:hidden}
  .modal-card{width:100%!important;max-width:none!important;max-height:calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - 16px);overflow:auto;overscroll-behavior:contain;border-radius:24px 24px 16px 16px;padding:22px 18px 18px}
  .modal-close{position:sticky;float:right;right:auto;top:0;z-index:3;margin:-5px -2px 0 8px}.modal-card h2{font-size:27px;margin:8px 0 6px}.modal-card>p{font-size:11px;margin-bottom:18px}.setup-block{margin:15px 0}.segmented{gap:5px}.segmented button{min-height:45px;font-size:10px;padding:4px}.setup-block:nth-of-type(2) .segmented{grid-template-columns:repeat(4,1fr)}
  .auth-form{gap:10px}.auth-form label{font-size:9px}.auth-form input,.code-join input{font-size:16px!important} /* Prevent iOS zoom */
  .review-modal-card{max-height:calc(var(--mm-app-height,100dvh) - 12px)!important}.review-grid{grid-template-columns:1fr 1fr;gap:6px}.review-grid>div{padding:11px}.review-grid strong{font-size:17px}.review-moves{grid-template-columns:1fr;max-height:38dvh}.review-note{padding:13px}.review-note p{font-size:10px}
  .promotion-card{width:100%;padding:16px;border-radius:20px}.promotion-card>div{justify-content:center;flex-wrap:wrap}.promotion-card button,.online-promo button{width:58px;height:58px;font-size:31px}
}

/* Touch-first live arena: portrait phone & tablet */
@media (max-width:1024px){
  body.online-match-mode,body.offline-match-mode{position:fixed;inset:0;width:100%;height:var(--mm-app-height,100dvh);overflow:hidden!important;overscroll-behavior:none}
  body.online-match-mode #appShell,body.offline-match-mode #appShell{width:100%!important;height:100%!important;padding:0!important;margin:0!important}
  body.online-match-mode .online-game,body.offline-match-mode .offline-game{height:var(--mm-app-height,100dvh)!important;min-height:0!important}
  .arena-shell,.offline-focus-shell{
    height:var(--mm-app-height,100dvh)!important;
    padding:calc(6px + var(--mm-safe-top)) max(8px,var(--mm-safe-right)) calc(7px + var(--mm-safe-bottom)) max(8px,var(--mm-safe-left))!important;
    grid-template-rows:36px minmax(0,1fr)!important;gap:4px!important;
  }
  .arena-topline,.offline-topline{height:36px;min-height:36px;grid-template-columns:1fr auto!important;gap:6px}.arena-match-meta,.offline-match-meta{display:none!important}
  .arena-brand-moon,.offline-brand-moon{width:28px!important;height:28px!important}.arena-brand strong,.offline-brand strong{font-size:11px!important}.arena-brand small,.offline-brand small{font-size:6px!important}.arena-live-meta,.offline-live-meta{gap:5px}.arena-connection,.offline-badge{height:28px!important;padding:0 8px!important;font-size:7px!important}.arena-icon-btn,.offline-icon-btn{width:30px!important;height:30px!important;border-radius:9px!important}
  .arena-main,.offline-arena-main{height:100%;min-height:0;overflow:hidden!important}
  .arena-board-column,.offline-board-column{height:100%;min-height:0;grid-template-rows:44px minmax(0,1fr) 44px auto!important;gap:4px!important;align-content:center!important}
  .arena-playerbar,.offline-playerbar,.arena-board-shell,.offline-board-shell,.arena-mobile-actions,.offline-mobile-actions{
    width:min(calc(100dvw - var(--mm-safe-left) - var(--mm-safe-right) - 16px),calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 176px),820px)!important;
    max-width:100%!important;
  }
  .arena-playerbar,.offline-playerbar{height:44px!important;min-height:44px!important;padding:5px 9px!important;border-radius:12px!important}
  .arena-player-identity>span,.offline-player-identity>span{font-size:6px!important;letter-spacing:.12em}.arena-player-identity>strong,.offline-player-identity>strong{font-size:11px!important}.arena-player-identity>small,.offline-player-identity>small{font-size:7px!important}.arena-clock-wrap small,.offline-clock-wrap small{display:none!important}.arena-clock-wrap>b,.offline-clock-wrap>b{font-size:19px!important;min-width:61px!important}.arena-turn-indicator,.offline-turn-indicator{display:none!important}
  .arena-board-shell,.offline-board-shell{border-radius:13px!important}.online-board,.offline-board{border-width:4px!important;border-radius:10px!important}.online-board .piece,.offline-board .piece{font-size:clamp(28px,10.5vw,60px)!important}
  .arena-mobile-actions,.offline-mobile-actions{display:grid!important;gap:5px!important}.arena-mobile-actions{grid-template-columns:repeat(3,1fr)!important}.offline-mobile-actions{grid-template-columns:repeat(5,1fr)!important}.arena-mobile-actions button,.offline-mobile-actions button{height:38px!important;min-height:38px!important;padding:0 7px!important;border-radius:10px!important;font-size:9px!important;white-space:nowrap}
  .thinking-badge{font-size:8px!important;padding:7px 9px!important}

  /* Side panels become bottom sheets on touch devices; board never shrinks. */
  .arena-side,.offline-side{
    position:fixed!important;left:max(7px,var(--mm-safe-left))!important;right:max(7px,var(--mm-safe-right))!important;top:auto!important;bottom:max(7px,var(--mm-safe-bottom))!important;
    width:auto!important;height:auto!important;max-height:min(60dvh,520px)!important;z-index:450!important;
    padding:14px!important;border-radius:20px 20px 14px 14px!important;
    transform:translateY(calc(100% + 28px))!important;opacity:0!important;pointer-events:none!important;
    box-shadow:0 -24px 80px rgba(0,0,0,.62)!important;transition:transform .28s var(--ease),opacity .2s ease!important;
  }
  .arena-side.mobile-open,.offline-side.mobile-open{transform:translateY(0)!important;opacity:1!important;pointer-events:auto!important}
  .arena-side-close,.offline-side-close{display:grid!important;place-items:center!important;width:32px!important;height:32px!important}
  .arena-side .online-moves,.offline-tab-zone .move-list{max-height:28dvh!important;min-height:120px!important}.offline-tab-zone{max-height:34dvh}
  .online-message.result-message{position:fixed!important;left:10px!important;right:10px!important;top:auto!important;bottom:calc(10px + var(--mm-safe-bottom))!important;max-width:none!important;min-width:0!important;transform:none!important;border-radius:18px!important;z-index:470!important}

  body.offline-match-mode #gameOverModal.open{place-items:end center!important;padding:8px max(8px,var(--mm-safe-right)) max(8px,var(--mm-safe-bottom)) max(8px,var(--mm-safe-left))!important;background:linear-gradient(180deg,transparent 38%,rgba(0,0,0,.72))!important}
  body.offline-match-mode #gameOverModal .result-card{width:100%!important;max-width:460px!important;border-radius:20px 20px 14px 14px!important;padding:18px!important}
}

/* 600px and under is treated as a true phone UI. */
@media (max-width:600px){
  .arena-shell,.offline-focus-shell{padding-left:max(5px,var(--mm-safe-left))!important;padding-right:max(5px,var(--mm-safe-right))!important}
  .arena-brand small,.offline-brand small{display:none!important}.arena-connection{padding:0 7px!important}.offline-badge{display:none!important}
  .arena-board-column,.offline-board-column{grid-template-rows:41px minmax(0,1fr) 41px auto!important;gap:3px!important}
  .arena-playerbar,.offline-playerbar,.arena-board-shell,.offline-board-shell,.arena-mobile-actions,.offline-mobile-actions{
    width:min(calc(100dvw - var(--mm-safe-left) - var(--mm-safe-right) - 10px),calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 164px))!important;
  }
  .arena-playerbar,.offline-playerbar{height:41px!important;min-height:41px!important;padding:4px 8px!important}.arena-player-identity>small,.offline-player-identity>small{display:none!important}.arena-clock-wrap>b,.offline-clock-wrap>b{font-size:18px!important;min-width:56px!important}
  .arena-board-shell,.offline-board-shell{border-width:4px!important;border-radius:11px!important}.online-board,.offline-board{border-width:3px!important;border-radius:8px!important}.online-board .piece,.offline-board .piece{font-size:clamp(27px,10.8vw,52px)!important}
  .arena-mobile-actions button,.offline-mobile-actions button{height:35px!important;min-height:35px!important;padding:0 4px!important;font-size:8px!important}.offline-mobile-actions{gap:3px!important}
  .arena-side,.offline-side{max-height:min(66dvh,500px)!important;padding:13px!important}.arena-side-head h3,.offline-side-head h3{font-size:16px!important}.arena-status-card,.offline-status-card{padding:9px!important}
}

/* Very small phones: preserve board first, reduce non-essential chrome. */
@media (max-width:390px){
  .hero-actions{grid-template-columns:1fr}.trust-row span{white-space:normal}.theme-options{grid-template-columns:1fr}
  .arena-connection{display:none!important}.arena-player-identity>span,.offline-player-identity>span{display:none!important}.arena-player-identity>strong,.offline-player-identity>strong{font-size:10px!important}.arena-clock-wrap>b,.offline-clock-wrap>b{font-size:17px!important}
  .arena-playerbar,.offline-playerbar,.arena-board-shell,.offline-board-shell,.arena-mobile-actions,.offline-mobile-actions{
    width:min(calc(100dvw - var(--mm-safe-left) - var(--mm-safe-right) - 8px),calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 158px))!important;
  }
  .offline-mobile-actions button:nth-child(3){display:none!important}.offline-mobile-actions{grid-template-columns:repeat(4,1fr)!important}
}

/* Landscape phones: dedicate height to the board and move actions to the side. */
@media (orientation:landscape) and (max-height:520px) and (max-width:980px){
  .arena-shell,.offline-focus-shell{grid-template-rows:30px minmax(0,1fr)!important;padding:calc(3px + var(--mm-safe-top)) max(6px,var(--mm-safe-right)) calc(3px + var(--mm-safe-bottom)) max(6px,var(--mm-safe-left))!important;gap:2px!important}
  .arena-topline,.offline-topline{height:30px;min-height:30px}.arena-brand-moon,.offline-brand-moon{width:24px!important;height:24px!important}.arena-brand small,.offline-brand small,.arena-connection,.offline-badge{display:none!important}.arena-icon-btn,.offline-icon-btn{width:27px!important;height:27px!important}
  .arena-board-column,.offline-board-column{
    grid-template-columns:minmax(0,1fr) 88px!important;grid-template-rows:32px minmax(0,1fr) 32px!important;column-gap:6px!important;row-gap:2px!important;align-items:center!important;
  }
  .arena-playerbar,.offline-playerbar{grid-column:1!important;width:min(calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 72px),calc(100dvw - 112px),560px)!important;height:32px!important;min-height:32px!important;padding:2px 7px!important;border-radius:9px!important}
  .arena-opponentbar,.offline-opponentbar{grid-row:1!important}.arena-board-shell,.offline-board-shell{grid-column:1!important;grid-row:2!important;width:min(calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 72px),calc(100dvw - 112px),560px)!important}.arena-youbar,.offline-youbar{grid-row:3!important}
  .arena-clock-wrap>b,.offline-clock-wrap>b{font-size:15px!important;min-width:48px!important}.arena-player-identity>span,.arena-player-identity>small,.offline-player-identity>span,.offline-player-identity>small{display:none!important}.arena-player-identity>strong,.offline-player-identity>strong{font-size:9px!important}
  .arena-mobile-actions,.offline-mobile-actions{grid-column:2!important;grid-row:1/4!important;width:84px!important;display:grid!important;grid-template-columns:1fr!important;align-content:center!important;gap:4px!important}
  .arena-mobile-actions button,.offline-mobile-actions button{height:31px!important;min-height:31px!important;font-size:7px!important;padding:0 4px!important}.online-board .piece,.offline-board .piece{font-size:clamp(24px,9.2vh,43px)!important}
  .arena-side,.offline-side{left:auto!important;right:max(5px,var(--mm-safe-right))!important;top:34px!important;bottom:max(5px,var(--mm-safe-bottom))!important;width:min(310px,46vw)!important;max-height:none!important;border-radius:16px!important;transform:translateX(calc(100% + 18px))!important}.arena-side.mobile-open,.offline-side.mobile-open{transform:translateX(0)!important}
}

@media (hover:none) and (pointer:coarse){
  .mode-card:hover,.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover{transform:none!important}
  .mode-card:active,.primary-btn:active,.secondary-btn:active,.ghost-btn:active,.theme-chip:active{transform:scale(.985)!important}
  button{cursor:default}
}


/* ============================================================
   Satranj Phase 2.8 — Live Social + AI Motion
   Secure match chat, quick reactions and richer Moon AI motion.
   ============================================================ */
.arena-side{display:flex!important;flex-direction:column!important;min-height:0}
.arena-social-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:9px 0 7px;border-radius:12px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.055)}
.arena-social-tabs button{position:relative;height:33px;border:0;border-radius:9px;background:transparent;color:#777a7f;font-size:10px;font-weight:800;letter-spacing:.02em;cursor:pointer;transition:.18s ease}
.arena-social-tabs button.active{background:rgba(255,255,255,.085);color:#f7f7f4;box-shadow:inset 0 1px 0 rgba(255,255,255,.055)}
.chat-unread{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;margin-left:3px;border-radius:999px;background:#f2f2ef;color:#080809;font-size:8px;font-weight:900;vertical-align:middle}.chat-unread.hidden{display:none!important}
.arena-pane{display:none;min-height:0;flex:1}.arena-pane.active{display:flex;flex-direction:column}.arena-pane .online-moves{flex:1;min-height:0;max-height:none!important}
.arena-chat-pane{gap:7px;overflow:hidden}.arena-chat-note{display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:10px;background:rgba(255,255,255,.025);color:#777a80;font-size:8px;letter-spacing:.04em}.arena-chat-note i{width:6px;height:6px;border-radius:50%;background:#8de4b0;box-shadow:0 0 10px rgba(141,228,176,.32)}
.arena-chat-list{flex:1;min-height:110px;overflow:auto;padding:5px 2px 7px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}
.chat-empty{text-align:center;color:#6d6f74;padding:24px 10px 12px}.chat-empty span{display:block;font-size:24px;color:#a3a5a8}.chat-empty p{margin:6px auto 0;max-width:190px;font-size:9px;line-height:1.5}
.chat-message{display:flex;flex-direction:column;gap:3px;margin:7px 0;max-width:92%}.chat-message.mine{margin-left:auto;align-items:flex-end}.chat-message.theirs{margin-right:auto;align-items:flex-start}.chat-message-meta{display:flex;align-items:center;gap:7px;padding:0 3px;color:#66696e;font-size:7px}.chat-message-meta strong{font-size:7px;color:#96999d;font-weight:800}.chat-message p{margin:0;padding:8px 10px;border-radius:12px 12px 12px 4px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.065);color:#e7e7e4;font-size:10px;line-height:1.38;overflow-wrap:anywhere;white-space:pre-wrap}.chat-message.mine p{border-radius:12px 12px 4px 12px;background:#efefec;color:#0a0a0b;border-color:#fff}
.reaction-strip,.chat-emoji-row{display:flex;align-items:center;gap:4px;overflow-x:auto;padding:1px;scrollbar-width:none}.reaction-strip::-webkit-scrollbar,.chat-emoji-row::-webkit-scrollbar{display:none}.reaction-strip button,.chat-emoji-row button{flex:0 0 auto;width:31px;height:31px;border-radius:10px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);cursor:pointer;font-size:15px;transition:.16s ease}.reaction-strip button:hover,.chat-emoji-row button:hover{transform:translateY(-2px);background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.15)}.chat-emoji-row button{width:auto;min-width:29px;height:27px;padding:0 7px;border-radius:8px;font-size:11px;color:#d4d4d1}
.arena-chat-form{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:5px}.arena-chat-form input{width:100%;height:38px;border-radius:11px;border:1px solid rgba(255,255,255,.10);background:#09090a;color:#f4f4f2;padding:0 10px;font:inherit;font-size:10px;outline:none}.arena-chat-form input:focus{border-color:rgba(255,255,255,.28);box-shadow:0 0 0 3px rgba(255,255,255,.045)}.arena-chat-form button{height:38px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:#f1f1ee;color:#080809;font-size:17px;font-weight:900;cursor:pointer}.arena-chat-form button:hover{transform:translateY(-1px)}
.arena-reaction-layer{position:absolute;inset:0;pointer-events:none;z-index:28;overflow:hidden;border-radius:inherit}.arena-reaction-bubble{position:absolute;display:flex;align-items:center;gap:7px;min-width:72px;padding:8px 10px;border-radius:14px;background:rgba(12,12,13,.91);border:1px solid rgba(255,255,255,.13);box-shadow:0 18px 45px rgba(0,0,0,.38);opacity:0;transform:translateY(9px) scale(.86);transition:opacity .18s ease,transform .26s cubic-bezier(.18,.9,.25,1)}.arena-reaction-bubble.show{opacity:1;transform:translateY(0) scale(1)}.arena-reaction-bubble strong{font-size:24px;line-height:1}.arena-reaction-bubble span{font-size:8px;color:#a4a6aa;font-weight:800;max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena-reaction-bubble.theirs{left:12px;top:12px}.arena-reaction-bubble.mine{right:12px;bottom:12px;background:rgba(242,242,239,.95);border-color:#fff}.arena-reaction-bubble.mine span{color:#333}.arena-reaction-bubble.mine strong{filter:none}

/* Moon AI now reads as an intentional in-game actor, not a generic spinner. */
.ai-thinking-card{left:50%!important;bottom:14px!important;min-width:196px!important;justify-content:flex-start!important;gap:9px!important;padding:8px 11px!important;border-radius:15px!important;background:rgba(9,9,10,.92)!important;border:1px solid rgba(255,255,255,.11)!important;box-shadow:0 18px 50px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.04)!important;backdrop-filter:blur(16px)}
.thinking-badge.ai-thinking-card>span{width:auto;height:auto;border-radius:0;background:none;animation:none}
.ai-orbit{position:relative!important;display:grid!important;place-items:center!important;width:30px!important;height:30px!important;border:1px solid rgba(255,255,255,.11)!important;border-radius:50%!important;background:radial-gradient(circle at 35% 32%,#fafaf7,#808286 58%,#242527)!important;color:#080809!important;overflow:visible}.ai-orbit:before{content:"";position:absolute;inset:-4px;border:1px dashed rgba(255,255,255,.20);border-radius:50%;animation:mmAiOrbit 1.65s linear infinite}.ai-orbit i{position:absolute;top:-5px;left:50%;width:5px!important;height:5px!important;margin-left:-2.5px;border-radius:50%!important;background:#fff!important;box-shadow:0 0 9px rgba(255,255,255,.45)}.ai-orbit b{font-size:14px;font-family:Georgia,serif}.ai-thinking-copy{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0;flex:1}.ai-thinking-copy strong{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#f4f4f1}.ai-thinking-copy small{font-size:8px;color:#8d9095;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-thinking-dots{display:flex!important;gap:3px!important;align-items:center!important}.ai-thinking-dots i{width:3px!important;height:3px!important;border-radius:50%!important;background:#a9abad!important;animation:mmAiDot 1s infinite ease-in-out}.ai-thinking-dots i:nth-child(2){animation-delay:.14s}.ai-thinking-dots i:nth-child(3){animation-delay:.28s}.ai-thinking-card.found .ai-orbit:before{animation-duration:.6s}.ai-thinking-card.found .ai-thinking-copy small{color:#d7d8d8}
.ai-preview-lift>.piece{transform:perspective(440px) rotateX(-7deg) translateY(-11%) scale(1.055)!important;filter:drop-shadow(0 15px 10px rgba(0,0,0,.34))!important}.ai-source-glow:after{content:"";position:absolute;inset:9%;border-radius:12px;border:2px solid rgba(255,255,255,.45);box-shadow:0 0 22px rgba(255,255,255,.11);z-index:2;pointer-events:none}.ai-flying-piece{filter:drop-shadow(0 22px 14px rgba(0,0,0,.40)) brightness(1.035)!important;transition:transform 235ms cubic-bezier(.12,.82,.18,1),filter 235ms ease!important}
@keyframes mmAiOrbit{to{transform:rotate(360deg)}}@keyframes mmAiDot{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}

@media(max-width:720px){
  .arena-mobile-actions{grid-template-columns:repeat(4,1fr)!important}.arena-mobile-actions button{padding:0 5px!important;font-size:8px!important}.chat-unread{min-width:14px;height:14px;font-size:7px}
  .arena-side{display:flex!important}.arena-chat-list{min-height:100px}.reaction-strip button{width:34px;height:34px;font-size:16px}.arena-chat-form input{font-size:16px;height:42px}.arena-chat-form button{height:42px}
  .arena-reaction-bubble.theirs{left:8px;top:8px}.arena-reaction-bubble.mine{right:8px;bottom:8px}.arena-reaction-bubble strong{font-size:22px}
  .ai-thinking-card{min-width:min(210px,72vw)!important;bottom:8px!important;padding:7px 9px!important}.ai-orbit{width:26px!important;height:26px!important}.ai-thinking-copy small{max-width:130px}
}
@media(max-width:380px){.arena-mobile-actions button{font-size:7px!important}.arena-chat-note{display:none}.reaction-strip button{width:31px;height:31px}.chat-emoji-row{display:none}}
@media(max-height:520px) and (orientation:landscape){.arena-chat-list{min-height:70px}.arena-chat-note,.chat-emoji-row{display:none}.reaction-strip button{width:28px;height:28px}.arena-chat-form input,.arena-chat-form button{height:34px}.ai-thinking-card{left:12px!important;bottom:8px!important;transform:translate(0,12px)!important}.ai-thinking-card.show{transform:translate(0,0)!important}}
@media(prefers-reduced-motion:reduce){.ai-orbit:before,.ai-thinking-dots i{animation:none!important}.ai-flying-piece{transition-duration:1ms!important}.arena-reaction-bubble{transition-duration:1ms!important}}

/* ============================================================
   Satranj Phase 2.9 — Social Suite + Mobile Chat Fix
   ============================================================ */
:root{--mm-live:#55e89a;--mm-live-soft:rgba(85,232,154,.14)}
.arena-connection.ok{color:var(--mm-live)!important;border-color:rgba(85,232,154,.20)!important;background:rgba(85,232,154,.055)!important}
.arena-connection.ok i,.arena-chat-note i,.social-live-pill i{background:var(--mm-live)!important;box-shadow:0 0 12px rgba(85,232,154,.62)!important}
body:not(.theme-royalwood) .arena-connection.ok i,body:not(.theme-royalwood) .arena-chat-note i{background:var(--mm-live)!important;box-shadow:0 0 12px rgba(85,232,154,.62)!important}
.arena-chat-note b{color:var(--mm-live);font-size:7px;letter-spacing:.12em;margin-right:2px}

/* Social lobby */
.friends-panel{grid-column:1/-1;border-radius:24px;padding:22px 24px;min-width:0}
.friends-panel .panel-title h3{font-size:24px;margin:7px 0 0}.friends-copy{margin:8px 0 14px;color:var(--muted);font-size:10px;line-height:1.55}
.social-live-pill{display:inline-flex;align-items:center;gap:7px;height:29px;padding:0 10px;border-radius:999px;border:1px solid rgba(85,232,154,.16);background:rgba(85,232,154,.055);color:var(--mm-live);font-size:8px;font-weight:900;letter-spacing:.13em}.social-live-pill i{width:6px;height:6px;border-radius:50%}
.friend-add{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:7px;max-width:440px}.friend-add input{height:42px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.19);color:#fff;padding:0 12px;outline:0;font-size:11px}.friend-add input:focus{border-color:rgba(255,255,255,.24);box-shadow:0 0 0 3px rgba(255,255,255,.035)}.friend-add button{border:1px solid rgba(255,255,255,.15);border-radius:12px;background:#f1f1ee;color:#080809;font-weight:850;cursor:pointer}
.friend-requests{margin-top:13px;display:grid;gap:7px}.friend-request-row,.friend-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid rgba(255,255,255,.065);border-radius:14px;background:rgba(255,255,255,.025)}
.friend-avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(145deg,#efefec,#8f9093);color:#0a0a0b;font-weight:900}.friend-person{display:flex;min-width:0;flex-direction:column}.friend-person strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-person small{font-size:8px;color:#777a80;margin-top:2px}.friend-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.friend-actions button{height:29px;padding:0 9px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.04);color:#d7d7d4;font-size:8px;font-weight:800;cursor:pointer}.friend-actions button.primary-mini{background:#efefec;color:#09090a;border-color:#fff}.friend-actions button:disabled{opacity:.42;cursor:default}.friend-online{display:inline-flex;align-items:center;gap:5px;color:#777a80}.friend-online:before{content:"";width:6px;height:6px;border-radius:50%;background:#5a5c61}.friend-online.live{color:var(--mm-live)}.friend-online.live:before{background:var(--mm-live);box-shadow:0 0 9px rgba(85,232,154,.48)}.friend-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}.friend-empty{grid-column:1/-1;padding:15px;border:1px dashed rgba(255,255,255,.08);border-radius:13px;color:#707277;font-size:9px;text-align:center}

/* In-arena social safety */
.arena-opponent-social{display:flex;gap:5px;flex-wrap:wrap;margin-top:-2px}.arena-opponent-social button{height:27px;padding:0 8px;border:1px solid rgba(255,255,255,.07);border-radius:9px;background:rgba(255,255,255,.025);color:#9b9da1;font-size:7px;font-weight:800;cursor:pointer}.arena-opponent-social button.active{background:rgba(255,255,255,.10);color:#fff}.arena-opponent-social .danger-link{color:#e79ca8}.arena-opponent-social .danger-link.active{background:rgba(255,99,120,.10);border-color:rgba(255,99,120,.18);color:#ffadba}

/* Chat composer must always stay reachable. */
.arena-chat-pane{min-height:0!important;overflow:hidden!important}.arena-chat-list{min-height:0!important}.arena-chat-form{flex:0 0 auto;position:relative;z-index:4;background:linear-gradient(180deg,rgba(8,8,9,0),rgba(8,8,9,.92) 26%);padding-top:3px}.reaction-strip,.chat-emoji-row{flex:0 0 auto}

/* Result/rematch actions */
.result-actions{display:flex!important;gap:7px!important;flex-wrap:wrap!important;justify-content:center!important}.result-actions button{min-width:104px}.result-actions .rematch-primary{background:#f2f2ef!important;color:#080809!important;border-color:#fff!important}.rematch-pending{opacity:.7;pointer-events:none}

/* Mobile social drawer becomes a bottom-sheet so the keyboard/composer stay visible. */
@media(max-width:700px) and (orientation:portrait){
  .friends-panel{padding:16px!important;border-radius:18px!important}.friend-list{grid-template-columns:1fr}.friend-add{max-width:none}.friend-request-row,.friend-row{grid-template-columns:auto minmax(0,1fr)}.friend-actions{grid-column:1/-1;justify-content:flex-start;padding-left:44px}
  #onlineSidePanel.arena-side{position:fixed!important;left:max(5px,var(--mm-safe-left))!important;right:max(5px,var(--mm-safe-right))!important;top:auto!important;bottom:max(5px,var(--mm-safe-bottom))!important;width:auto!important;height:min(78dvh,680px)!important;max-height:calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 14px)!important;border-radius:21px!important;padding:12px!important;transform:translateY(calc(100% + 26px))!important;opacity:0!important;pointer-events:none!important;transition:transform .28s cubic-bezier(.18,.85,.25,1),opacity .18s ease!important;box-shadow:0 -24px 70px rgba(0,0,0,.58)!important}
  #onlineSidePanel.arena-side.mobile-open{transform:translateY(0)!important;opacity:1!important;pointer-events:auto!important}
  .arena-side-head{flex:0 0 auto}.arena-side-head h3{font-size:16px!important}.arena-status-card{flex:0 0 auto;padding:8px 10px!important}.arena-status-card small{display:none}.arena-social-tabs{flex:0 0 auto;margin:4px 0!important}.arena-social-tabs button{height:34px}.arena-opponent-social{flex:0 0 auto;overflow-x:auto;flex-wrap:nowrap;padding-bottom:1px;scrollbar-width:none}.arena-opponent-social::-webkit-scrollbar{display:none}.arena-opponent-social button{flex:0 0 auto;height:29px}
  .arena-pane{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}.arena-chat-pane{gap:5px!important}.arena-chat-note{flex:0 0 auto;padding:6px 8px!important}.arena-chat-list{flex:1 1 0!important;min-height:0!important;padding-bottom:4px!important}.reaction-strip{flex:0 0 auto;gap:5px}.reaction-strip button{width:35px!important;height:35px!important;font-size:17px!important}.chat-emoji-row{flex:0 0 auto;min-height:31px}.chat-emoji-row button{height:30px!important;min-width:34px!important;font-size:13px!important}.arena-chat-form{flex:0 0 auto!important;position:sticky!important;bottom:0!important;padding:5px 0 0!important;background:#080809!important;grid-template-columns:minmax(0,1fr) 44px!important}.arena-chat-form input{height:44px!important;font-size:16px!important;border-radius:12px!important}.arena-chat-form button{width:44px!important;height:44px!important;border-radius:12px!important}
  #backToLobbyBtn{flex:0 0 auto!important;height:38px!important;margin-top:3px!important}
}
@media(max-width:390px) and (orientation:portrait){.arena-chat-note{display:flex!important}.chat-emoji-row{display:flex!important}.reaction-strip button{width:33px!important;height:33px!important}.friend-actions{padding-left:0}}
@media(max-height:520px) and (orientation:landscape){
  #onlineSidePanel.arena-side{height:auto!important;max-height:none!important}.arena-chat-form{position:sticky!important;bottom:0!important;background:#080809!important}.arena-chat-list{min-height:0!important}.chat-emoji-row{display:flex!important;max-width:100%}.arena-chat-note{display:none!important}
}
.social-prompt-backdrop{z-index:260!important}.social-prompt-card{width:min(430px,calc(100vw - 24px));padding:24px;border-radius:22px}.social-prompt-card .eyebrow{display:flex;align-items:center;gap:7px;color:var(--mm-live)}.social-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mm-live);box-shadow:0 0 12px rgba(85,232,154,.6)}.social-prompt-card h3{font-size:25px;margin:12px 0 4px}.social-prompt-card p{color:var(--muted);font-size:11px;line-height:1.5}.social-prompt-card>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:17px}@media(max-width:520px){.social-prompt-card{padding:18px;border-radius:18px}.social-prompt-card>div{grid-template-columns:1fr}.social-prompt-card .primary-btn,.social-prompt-card .secondary-btn{width:100%}}
.safety-card label{display:flex;flex-direction:column;gap:6px;margin-top:11px;color:#a2a4a8;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.safety-card select,.safety-card textarea{width:100%;border:1px solid rgba(255,255,255,.10);border-radius:11px;background:#09090a;color:#f3f3f1;padding:10px 11px;outline:0;font:inherit;font-size:11px;text-transform:none;letter-spacing:0}.safety-card textarea{min-height:86px;resize:vertical}.safety-card select:focus,.safety-card textarea:focus{border-color:rgba(255,255,255,.27);box-shadow:0 0 0 3px rgba(255,255,255,.04)}

/* =========================================================
   Satranj Phase 3.0 — Satranj Coins / My Studio / Progression
   ========================================================= */
.coin-pill{height:38px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025));color:#f8f8f6;display:flex;align-items:center;gap:7px;padding:0 11px;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.06)}
.coin-pill:hover{border-color:rgba(255,255,255,.25);transform:translateY(-1px)}.coin-pill strong{font-size:13px}.coin-pill small{font-size:8px;letter-spacing:.12em;color:#8e8e93}.coin-glyph{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 36% 30%,#fff,#c7c7c9 42%,#5d5e63 72%,#151619 100%);color:#0b0b0c;font-size:12px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),0 3px 14px rgba(255,255,255,.08)}
.hero-economy-card{margin:22px 0 0;padding:12px 14px;border-radius:17px;display:flex;align-items:center;gap:11px;max-width:480px}.hero-economy-card>div{display:flex;flex-direction:column;gap:2px;flex:1}.hero-economy-card small{font-size:8px;letter-spacing:.15em;color:#747579}.hero-economy-card strong{font-size:12px;color:#d8d8da}.hero-economy-card b{color:#fff}.hero-economy-card button{border:0;background:transparent;color:#fff;font-size:10px;font-weight:700;cursor:pointer}
.profile-wallet-card{margin-top:14px;border-radius:22px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.profile-wallet-card h3{font-size:28px;margin:7px 0 4px;display:flex;align-items:center;gap:9px}.profile-wallet-card p{margin:0;color:#797a80;font-size:11px;line-height:1.5}
.coin-arena-head{display:flex;justify-content:space-between;align-items:end;margin:17px 0 9px}.coin-arena-head strong{display:block;font-size:12px;margin-top:4px}.coin-arena-head>small{font-size:9px;color:#6f7075}.coin-stake-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:12px}.coin-stake-grid button{min-height:58px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);border-radius:13px;color:#8f9095;padding:8px 6px;display:flex;flex-direction:column;justify-content:center;gap:4px;cursor:pointer;transition:.18s ease}.coin-stake-grid button b{font-size:12px;color:#d9d9dc}.coin-stake-grid button span{font-size:8px}.coin-stake-grid button.active{background:linear-gradient(160deg,#f2f2f1,#b9babd);color:#26272a;border-color:#fff;box-shadow:0 8px 25px rgba(255,255,255,.08)}.coin-stake-grid button.active b{color:#09090a}.coin-stake-grid button.insufficient,.coin-stake-grid button:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.3)}
.arena-coin-pot{padding:5px 8px;border-radius:99px;border:1px solid rgba(255,255,255,.13);font-size:8px;letter-spacing:.09em;color:#ededed;background:rgba(255,255,255,.04);white-space:nowrap}.coin-result{display:block;margin-top:7px;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.055);font-size:10px;color:#d0d1d4}.coin-result.win{color:#c9ffd9;background:rgba(74,207,126,.08)}.coin-result.loss{color:#ffb8b8;background:rgba(255,85,85,.07)}
.review-share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.review-share-row button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.055);color:#f5f5f5;border-radius:10px;padding:8px 11px;cursor:pointer}.review-share-row small{font-size:8px;color:#717278}
.studio-wrap{padding:38px 0 50px;max-width:1180px;margin:auto}.studio-hero{border-radius:28px;padding:30px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;position:relative;overflow:hidden}.studio-hero:after{content:"";position:absolute;width:280px;height:280px;border:1px solid rgba(255,255,255,.05);border-radius:50%;right:-120px;top:-150px;box-shadow:0 0 80px rgba(255,255,255,.025)}.studio-hero h2{font-size:42px;margin:8px 0 7px}.studio-hero p{max-width:700px;color:#86878d;line-height:1.65;font-size:12px}.studio-wallet{min-width:260px;border:1px solid rgba(255,255,255,.11);border-radius:20px;padding:18px;background:rgba(255,255,255,.025);display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}.studio-wallet>small{font-size:8px;letter-spacing:.16em;color:#737479}.studio-wallet>strong{display:flex;align-items:center;gap:9px;font-size:29px}.studio-wallet button{height:38px;border:0;border-radius:11px;background:#f0f0ef;color:#080809;font-weight:800;cursor:pointer}.studio-wallet button:disabled{opacity:.45}.studio-wallet>span{font-size:8px;color:#77787e;line-height:1.4}
.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.studio-panel{border-radius:24px;padding:22px;min-width:0}.studio-ledger,.studio-roadmap{grid-column:1/-1}.studio-panel-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:16px}.studio-panel-head h3{margin:5px 0 0;font-size:20px}.studio-panel-head>small{font-size:8px;letter-spacing:.1em;color:#73747a}.studio-panel-head>button{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);color:#c5c5c7;border-radius:10px;padding:8px 10px;cursor:pointer}
.achievement-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.achievement-card{border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.018);border-radius:16px;padding:14px;min-height:156px;display:flex;flex-direction:column}.achievement-card>div{display:flex;justify-content:space-between;align-items:center}.achievement-card>div span{font-size:17px}.achievement-card>div small{font-size:7px;letter-spacing:.12em;color:#68696e}.achievement-card>strong{margin-top:12px;font-size:13px}.achievement-card p{color:#717278;font-size:9px;line-height:1.5;flex:1}.achievement-card button{border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.04);color:#d7d7d9;height:33px;font-size:9px}.achievement-card.ready{border-color:rgba(255,255,255,.22);box-shadow:inset 0 0 30px rgba(255,255,255,.025)}.achievement-card.ready button{background:#eee;color:#0a0a0b;font-weight:800;cursor:pointer}.achievement-card.claimed{opacity:.62}.achievement-card.claimed button{opacity:.5}
.studio-items{display:flex;flex-direction:column;gap:8px}.studio-item{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.075);border-radius:15px;padding:10px;background:rgba(255,255,255,.018)}.studio-item.selected{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.04)}.studio-item-visual{width:54px;height:54px;border-radius:13px;background:radial-gradient(circle at 35% 30%,#e9e9e9,#5b5c60 52%,#121315 100%);display:grid;place-items:center;color:#09090a;font-size:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}.studio-item-visual.trail{background:linear-gradient(135deg,#17181a,#77797f,#f6f6f5)}.studio-item-visual.board{background:conic-gradient(#e5e5e2 0 25%,#38393d 0 50%,#e5e5e2 0 75%,#38393d 0)}.studio-item-copy small{font-size:7px;letter-spacing:.14em;color:#65666b}.studio-item-copy strong{display:block;font-size:12px;margin:3px 0}.studio-item-copy p{font-size:8.5px;line-height:1.45;color:#717278;margin:0}.studio-item-action button{min-width:82px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.04);color:#e7e7e7;font-size:9px;cursor:pointer}.studio-item:not(.owned) .studio-item-action button{background:#ededec;color:#0b0b0c;font-weight:800}.studio-item-action button:disabled{opacity:.48;cursor:default}
.wallet-history{display:flex;flex-direction:column}.wallet-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto 78px;gap:10px;align-items:center;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.055)}.wallet-tx-icon{width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.04);display:grid;place-items:center;font-size:12px}.wallet-row strong{font-size:10px}.wallet-row small{display:block;margin-top:3px;font-size:8px;color:#62636a}.wallet-row>b{font-size:11px}.wallet-row>em{font-style:normal;font-size:9px;color:#77787e;text-align:right}.wallet-row .plus{color:#a7efbd}.wallet-row .minus{color:#ffabab}.studio-empty{padding:24px;text-align:center;color:#696a70;font-size:10px;border:1px dashed rgba(255,255,255,.07);border-radius:14px}
.platform-upgrades{display:grid;grid-template-columns:1fr 1fr;gap:8px}.platform-upgrades article{display:grid;grid-template-columns:31px 1fr auto;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.065);padding:12px;border-radius:14px;background:rgba(255,255,255,.015)}.platform-upgrades article>b{font-size:9px;color:#56575d}.platform-upgrades article strong{display:block;font-size:10px}.platform-upgrades article span{display:block;margin-top:3px;font-size:8px;color:#696a70}.platform-upgrades article em{font-size:7px;letter-spacing:.12em;font-style:normal;color:#77787c}.platform-upgrades article.done em{color:#bdf8cf}.platform-upgrades article.done{border-color:rgba(168,255,196,.1)}
body.studio-board-lunar .chessboard .square.light{background:#e7e8e8!important}body.studio-board-lunar .chessboard .square.dark{background:#303237!important}body.studio-board-lunar .board-frame,body.studio-board-lunar .arena-board-shell{box-shadow:0 24px 70px rgba(0,0,0,.48),inset 0 0 0 1px rgba(255,255,255,.12)!important}
body.studio-trail-silver .arena-flying-piece,body.studio-trail-silver .offline-flying-piece{filter:drop-shadow(-12px 3px 8px rgba(235,240,255,.23)) drop-shadow(-4px 1px 3px rgba(255,255,255,.18))!important}body.studio-frame-moonring .profile-avatar{box-shadow:0 0 0 2px #e8e8e8,0 0 0 7px rgba(255,255,255,.08),0 0 28px rgba(255,255,255,.12)!important}body.studio-flair-founder #onlineProfileName:after{content:"  ✦ FOUNDER";font-size:8px;letter-spacing:.1em;color:#cfcfd2}

@media(max-width:900px){.studio-wrap{padding:18px 0 85px}.studio-hero{grid-template-columns:1fr;padding:20px;border-radius:20px}.studio-hero h2{font-size:31px}.studio-wallet{min-width:0}.studio-grid{grid-template-columns:1fr}.studio-ledger,.studio-roadmap{grid-column:auto}.platform-upgrades{grid-template-columns:1fr}.coin-stake-grid{grid-template-columns:repeat(3,1fr)}.coin-stake-grid button:last-child{grid-column:2/3}.profile-wallet-card{flex-direction:column;align-items:stretch}.profile-wallet-card button{width:100%}}
@media(max-width:600px){.top-actions .coin-pill{display:none}.hero-economy-card{padding:10px;margin-top:14px}.hero-economy-card button{font-size:9px}.coin-arena-head{align-items:flex-start;flex-direction:column;gap:4px}.coin-stake-grid{grid-template-columns:repeat(5,minmax(66px,1fr));overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.coin-stake-grid::-webkit-scrollbar{display:none}.coin-stake-grid button{min-width:66px}.studio-wrap{padding-top:10px}.studio-hero{padding:16px}.studio-hero h2{font-size:27px}.studio-hero p{font-size:10px}.studio-wallet>strong{font-size:25px}.studio-panel{padding:14px;border-radius:18px}.achievement-grid{grid-template-columns:1fr}.studio-item{grid-template-columns:48px 1fr}.studio-item-visual{width:48px;height:48px}.studio-item-action{grid-column:1/-1}.studio-item-action button{width:100%}.wallet-row{grid-template-columns:30px minmax(0,1fr) auto}.wallet-row>em{grid-column:2/-1;text-align:left}.platform-upgrades article{grid-template-columns:26px 1fr auto;padding:10px}.mobile-nav{grid-template-columns:repeat(6,1fr)!important}.mobile-nav button{min-width:0;padding-left:2px!important;padding-right:2px!important}.mobile-nav small{font-size:7px!important}}
.daily-puzzle-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:18px;align-items:center}.puzzle-copy small{font-size:8px;letter-spacing:.14em;color:#707177}.puzzle-copy strong{display:block;font-size:18px;margin:8px 0 6px}.puzzle-copy p{font-size:10px;line-height:1.55;color:#73747a;margin:0 0 12px}.puzzle-copy>span{font-size:8px;color:#727379}.puzzle-solved{color:#aef0c1!important}.daily-puzzle-board{aspect-ratio:1;width:100%;display:grid;grid-template-columns:repeat(8,1fr);border-radius:13px;overflow:hidden;border:7px solid #141518;box-shadow:0 18px 40px rgba(0,0,0,.35)}.puzzle-square{position:relative;border:0;padding:0;display:grid;place-items:center;min-width:0;cursor:pointer}.puzzle-square.light{background:#d8d8d5}.puzzle-square.dark{background:#3e4045}.puzzle-square.selected{box-shadow:inset 0 0 0 3px #fff}.puzzle-square .piece{width:88%;height:88%;display:grid;place-items:center;pointer-events:none}.puzzle-square .piece svg{width:100%;height:100%;filter:drop-shadow(0 3px 3px rgba(0,0,0,.22))}
@media(max-width:900px){.daily-puzzle-card{grid-template-columns:1fr}.daily-puzzle-board{max-width:340px;margin:auto}}@media(max-width:600px){.daily-puzzle-board{max-width:100%}}
.season-progress-card{border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:16px;background:rgba(255,255,255,.018)}.season-progress-card>div:first-child{display:flex;justify-content:space-between;gap:14px;align-items:center}.season-progress-card strong{font-size:20px}.season-progress-card span{font-size:8px;color:#77787d}.season-track{height:9px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden;margin:14px 0}.season-track i{display:block;height:100%;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,#686a70,#f2f2f1);box-shadow:0 0 16px rgba(255,255,255,.12)}.season-sources{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.season-sources span{border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:7px;text-align:center;background:rgba(255,255,255,.015)}@media(max-width:600px){.season-sources{grid-template-columns:1fr 1fr}.season-progress-card>div:first-child{align-items:flex-start;flex-direction:column;gap:4px}}

/* ========================================================================== */
/* Phase 3.1 — Chromatic UI / Monochrome Chessboard                           */
/* Product rule: the board stays black & white; surrounding UI gets color.    */
/* ========================================================================== */
body.satranj-game-ui{
  --ui-blue:#4f8cff;--ui-cyan:#27d3c2;--ui-violet:#8b6cff;--ui-magenta:#d96cff;
  --ui-green:#43d68f;--ui-gold:#f1bf5b;--ui-coral:#ff788b;
  --ui-panel:#101a2b;--ui-panel-2:#0c1423;--ui-line:rgba(148,174,224,.14);
  --accent:var(--ui-blue);--accent2:var(--ui-violet);--accent-soft:rgba(79,140,255,.15);
  --success:var(--ui-green);--danger:var(--ui-coral);
  background:
    radial-gradient(circle at 11% 4%,rgba(79,140,255,.17),transparent 31%),
    radial-gradient(circle at 90% 12%,rgba(139,108,255,.15),transparent 27%),
    radial-gradient(circle at 53% 94%,rgba(39,211,194,.07),transparent 29%),
    linear-gradient(155deg,#06101d 0%,#091424 48%,#070d18 100%)!important;
  color:#f6f8ff;
}
body.satranj-game-ui .noise{opacity:.018!important}
body.satranj-game-ui .aurora{filter:blur(115px)!important;opacity:.16!important}
body.satranj-game-ui .aurora-a{background:#327ef7!important}
body.satranj-game-ui .aurora-b{background:#7354e8!important}

/* Glass surfaces: slightly tinted, not rainbow. */
body.satranj-game-ui .glass,
body.satranj-game-ui:not(.theme-royalwood) .glass{
  background:linear-gradient(180deg,rgba(17,29,49,.88),rgba(8,15,28,.82))!important;
  border-color:rgba(135,164,218,.15)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 22px 70px rgba(0,0,0,.34)!important;
}
body.satranj-game-ui .topbar{border-color:rgba(115,151,219,.17)!important;background:linear-gradient(180deg,rgba(14,26,45,.93),rgba(9,17,31,.90))!important}
body.satranj-game-ui .brand-mark,
body.satranj-game-ui:not(.theme-royalwood) .brand-mark{
  background:linear-gradient(145deg,#63d8ff 0%,#5f8dff 42%,#9a6fff 100%)!important;
  box-shadow:0 0 30px rgba(86,143,255,.28)!important;
}
body.satranj-game-ui .moon-cut,
body.satranj-game-ui:not(.theme-royalwood) .moon-cut{background:#0b1525!important}
body.satranj-game-ui .brand-copy small{color:#8fa7d0!important}
body.satranj-game-ui .nav-link{color:#8e9db8!important}
body.satranj-game-ui .nav-link:hover,body.satranj-game-ui .nav-link.active,
body.satranj-game-ui:not(.theme-royalwood) .nav-link:hover,body.satranj-game-ui:not(.theme-royalwood) .nav-link.active{
  color:#fff!important;background:linear-gradient(135deg,rgba(79,140,255,.15),rgba(139,108,255,.11))!important;
}
body.satranj-game-ui .network-badge i,body.satranj-game-ui .network-badge.online i,
body.satranj-game-ui:not(.theme-royalwood) .network-badge i,body.satranj-game-ui:not(.theme-royalwood) .network-badge.online i{
  background:var(--ui-green)!important;box-shadow:0 0 15px rgba(67,214,143,.58)!important;
}
body.satranj-game-ui .network-badge{color:#9ba9c0!important}
body.satranj-game-ui .icon-btn,body.satranj-game-ui .account-btn{background:rgba(255,255,255,.035)!important;border-color:rgba(142,168,218,.16)!important}
body.satranj-game-ui .icon-btn:hover,body.satranj-game-ui .account-btn:hover{background:rgba(79,140,255,.10)!important;border-color:rgba(79,140,255,.26)!important}

/* Hero — cinematic color around a pure monochrome board. */
body.satranj-game-ui .eyebrow,body.satranj-game-ui:not(.theme-royalwood) .eyebrow{color:#a8c2ee!important}
body.satranj-game-ui .eyebrow i,body.satranj-game-ui:not(.theme-royalwood) .eyebrow i{background:var(--ui-cyan)!important;box-shadow:0 0 16px rgba(39,211,194,.54)!important}
body.satranj-game-ui .hero-copy h1 span{background:linear-gradient(90deg,#8fb8ff,#a98cff 55%,#67daca);-webkit-background-clip:text;background-clip:text;color:transparent!important}
body.satranj-game-ui .hero-copy p{color:#93a1bb!important}
body.satranj-game-ui .primary-btn,
body.satranj-game-ui:not(.theme-royalwood) .primary-btn{
  background:linear-gradient(135deg,#43b4ff 0%,#587cff 48%,#916bff 100%)!important;
  color:#fff!important;box-shadow:0 14px 34px rgba(71,118,255,.27)!important;
}
body.satranj-game-ui .primary-btn:hover{box-shadow:0 18px 44px rgba(71,118,255,.37)!important}
body.satranj-game-ui .secondary-btn{background:rgba(32,56,91,.34)!important;border-color:rgba(104,148,218,.18)!important;color:#e8efff!important}
body.satranj-game-ui .secondary-btn:hover{background:rgba(53,87,137,.35)!important;border-color:rgba(103,157,239,.27)!important}
body.satranj-game-ui .trust-row strong{color:#e9effc}.trust-row span{color:#71829d}
body.satranj-game-ui .hero-rating{border-color:rgba(106,149,224,.17)!important;background:linear-gradient(160deg,rgba(18,36,63,.88),rgba(12,20,38,.84))!important}
body.satranj-game-ui .hero-rating strong{color:#dbe7ff}
body.satranj-game-ui .hero-visual:before{background:radial-gradient(circle,rgba(86,137,255,.16),rgba(133,95,255,.055) 47%,transparent 70%)!important}
body.satranj-game-ui .orbit{border-color:rgba(99,143,228,.16)!important}
body.satranj-game-ui .floating-piece{color:#dbe6ff!important;text-shadow:0 20px 35px rgba(0,0,0,.55),0 0 26px rgba(84,142,255,.24)!important}

/* Home mode cards use distinct but disciplined product colors. */
body.satranj-game-ui .mode-card{background:linear-gradient(155deg,rgba(15,29,50,.96),rgba(8,16,29,.95))!important;border-color:rgba(128,158,214,.13)!important}
body.satranj-game-ui .mode-card:nth-child(1){--card-accent:#47d3b2}
body.satranj-game-ui .mode-card:nth-child(2){--card-accent:#5b8dff}
body.satranj-game-ui .mode-card:nth-child(3){--card-accent:#aa72ff}
body.satranj-game-ui .mode-card:before{background:var(--card-accent,var(--ui-blue))!important}
body.satranj-game-ui .mode-card:hover{border-color:color-mix(in srgb,var(--card-accent,var(--ui-blue)) 38%,transparent)!important;box-shadow:0 28px 72px rgba(0,0,0,.36),0 0 0 1px color-mix(in srgb,var(--card-accent,var(--ui-blue)) 10%,transparent)!important}
body.satranj-game-ui .mode-card.featured{background:linear-gradient(145deg,rgba(22,48,70,.96),rgba(12,20,37,.98))!important}
body.satranj-game-ui .mode-icon{color:var(--card-accent,var(--ui-blue))!important;filter:drop-shadow(0 0 15px color-mix(in srgb,var(--card-accent,var(--ui-blue)) 25%,transparent))}
body.satranj-game-ui .pill{color:#75edb9!important;background:rgba(53,206,139,.09)!important;border-color:rgba(70,221,157,.16)!important}
body.satranj-game-ui .pill.phase{color:#bda9ff!important;background:rgba(145,107,255,.10)!important;border-color:rgba(158,126,255,.18)!important}
body.satranj-game-ui .feature-strip>div>span{color:#6ba1ff!important}

/* Online/social UI. */
body.satranj-game-ui .online-hero,body.satranj-game-ui .queue-panel,body.satranj-game-ui .private-panel,body.satranj-game-ui .friends-panel{border-color:rgba(109,151,223,.15)!important}
body.satranj-game-ui .online-status,body.satranj-game-ui .social-live-pill{color:#67e7aa!important;background:rgba(52,207,136,.09)!important;border-color:rgba(67,214,143,.17)!important}
body.satranj-game-ui .social-live-pill:before,body.satranj-game-ui .arena-connection i{background:var(--ui-green)!important;box-shadow:0 0 13px rgba(67,214,143,.55)!important}
body.satranj-game-ui .rating-chip{background:rgba(79,140,255,.10)!important;border-color:rgba(85,143,244,.17)!important;color:#a9c7ff!important}
body.satranj-game-ui .search-orbit{border-color:rgba(79,140,255,.13)!important;border-top-color:#5f9bff!important}
body.satranj-game-ui .reaction-strip button:hover{background:rgba(79,140,255,.12)!important;border-color:rgba(79,140,255,.25)!important}
body.satranj-game-ui .chat-emoji-row button:hover{background:rgba(39,211,194,.09)!important}
body.satranj-game-ui .chat-unread{background:#ff5f82!important;color:#fff!important}

/* Profile / stats / settings. */
body.satranj-game-ui .profile-avatar,body.satranj-game-ui:not(.theme-royalwood) .profile-avatar{background:linear-gradient(145deg,#5ed8df,#5c86ff 52%,#9b72ff)!important;color:#07121e!important;box-shadow:0 14px 38px rgba(72,125,255,.22)!important}
body.satranj-game-ui .rating-orb{background:linear-gradient(160deg,rgba(79,140,255,.10),rgba(139,108,255,.07))!important;border-color:rgba(102,146,224,.17)!important}
body.satranj-game-ui .stat-card:nth-child(4n+1){border-top:2px solid rgba(79,140,255,.45)!important}
body.satranj-game-ui .stat-card:nth-child(4n+2){border-top:2px solid rgba(39,211,194,.40)!important}
body.satranj-game-ui .stat-card:nth-child(4n+3){border-top:2px solid rgba(139,108,255,.42)!important}
body.satranj-game-ui .stat-card:nth-child(4n){border-top:2px solid rgba(241,191,91,.42)!important}
body.satranj-game-ui .dna-bars i:after,body.satranj-game-ui:not(.theme-royalwood) .dna-bars i:after{background:linear-gradient(90deg,#4f8cff,#8b6cff,#27d3c2)!important}
body.satranj-game-ui .theme-chip.active,body.satranj-game-ui .time-grid button.active{border-color:rgba(88,145,255,.36)!important;background:rgba(79,140,255,.12)!important;color:#fff!important}
body.satranj-game-ui .toggle.on,body.satranj-game-ui:not(.theme-royalwood) .toggle.on{background:rgba(79,140,255,.24)!important;border-color:rgba(79,140,255,.33)!important}
body.satranj-game-ui .toggle.on span,body.satranj-game-ui:not(.theme-royalwood) .toggle.on span{background:#72dbe0!important;box-shadow:0 0 16px rgba(69,212,211,.36)!important}

/* Satranj Coin economy + My Studio — gold only where currency/progression benefits. */
body.satranj-game-ui .coin-pill{border-color:rgba(241,191,91,.23)!important;background:linear-gradient(180deg,rgba(241,191,91,.11),rgba(241,191,91,.035))!important;color:#fff4d6!important}
body.satranj-game-ui .coin-pill:hover{border-color:rgba(241,191,91,.42)!important}
body.satranj-game-ui .coin-glyph{background:radial-gradient(circle at 34% 28%,#fff9d8 0%,#f7d175 35%,#c5842f 72%,#5f3616 100%)!important;color:#3a210c!important;box-shadow:inset 0 0 0 1px rgba(255,247,204,.68),0 5px 17px rgba(229,166,63,.18)!important}
body.satranj-game-ui .hero-economy-card{border-color:rgba(241,191,91,.16)!important;background:linear-gradient(135deg,rgba(223,162,53,.08),rgba(31,53,85,.19))!important}
body.satranj-game-ui .hero-economy-card b{color:#ffd986!important}
body.satranj-game-ui .coin-stake-grid button.active{background:linear-gradient(145deg,#ffd980,#d79a37)!important;color:#28190a!important;border-color:#ffe5a7!important;box-shadow:0 9px 27px rgba(218,159,57,.20)!important}
body.satranj-game-ui .studio-hero{background:radial-gradient(circle at 90% 15%,rgba(139,108,255,.13),transparent 34%),linear-gradient(160deg,rgba(18,34,59,.95),rgba(9,17,31,.94))!important}
body.satranj-game-ui .studio-wallet{border-color:rgba(241,191,91,.18)!important;background:linear-gradient(155deg,rgba(241,191,91,.08),rgba(20,36,61,.34))!important}
body.satranj-game-ui .studio-wallet button{background:linear-gradient(135deg,#ffd479,#eba945)!important;color:#28190a!important}
body.satranj-game-ui .achievement-card.ready{border-color:rgba(67,214,143,.25)!important;background:rgba(52,207,136,.04)!important;box-shadow:inset 0 0 34px rgba(52,207,136,.025)!important}
body.satranj-game-ui .achievement-card.ready button{background:linear-gradient(135deg,#5ee0a0,#31bd87)!important;color:#062418!important}
body.satranj-game-ui .studio-item.selected{border-color:rgba(139,108,255,.31)!important;background:rgba(139,108,255,.07)!important}
body.satranj-game-ui .season-track i{background:linear-gradient(90deg,#4f8cff,#8b6cff 52%,#27d3c2)!important;box-shadow:0 0 18px rgba(91,134,255,.24)!important}
body.satranj-game-ui .puzzle-solved{color:#6ee7a9!important}

/* Modal inputs and focus states get useful color feedback. */
body.satranj-game-ui .modal-backdrop{background:rgba(2,8,18,.78)!important}
body.satranj-game-ui .modal-card,body.satranj-game-ui .review-modal-card{background:linear-gradient(180deg,rgba(18,32,54,.99),rgba(7,14,26,.99))!important;border-color:rgba(112,151,218,.18)!important}
body.satranj-game-ui .auth-form input,body.satranj-game-ui .code-join input{background:#091526!important;border-color:rgba(113,149,209,.18)!important;color:#f4f8ff!important}
body.satranj-game-ui .auth-form input:focus,body.satranj-game-ui .code-join input:focus{border-color:rgba(79,140,255,.63)!important;box-shadow:0 0 0 3px rgba(79,140,255,.10)!important}
body.satranj-game-ui .form-error{color:#ff8fa0!important}
body.satranj-game-ui .ok{color:#66e5a7!important}

/* Live arena surrounds can use color, but the chessboard stays B&W. */
body.satranj-game-ui .arena-shell,body.satranj-game-ui .offline-focus-shell{background:radial-gradient(circle at 48% 42%,rgba(60,108,190,.10),transparent 35%),linear-gradient(150deg,#06101d,#091523 55%,#060d18)!important}
body.satranj-game-ui .arena-brand-moon,body.satranj-game-ui .offline-brand-moon{background:linear-gradient(145deg,#61d6df,#5c86ff 55%,#8c6cff)!important;box-shadow:0 0 24px rgba(74,132,255,.23)!important}
body.satranj-game-ui .arena-playerbar.active,body.satranj-game-ui .offline-playerbar.active{border-color:rgba(79,140,255,.33)!important;box-shadow:inset 0 0 30px rgba(79,140,255,.045),0 0 0 1px rgba(79,140,255,.07)!important}
body.satranj-game-ui .arena-turn-indicator,body.satranj-game-ui .offline-turn-indicator{color:#76ddeb!important}
body.satranj-game-ui .arena-side,body.satranj-game-ui .offline-side{background:linear-gradient(180deg,rgba(15,28,48,.95),rgba(7,14,26,.94))!important;border-color:rgba(104,145,213,.16)!important}
body.satranj-game-ui .panel-tab.active{background:rgba(79,140,255,.12)!important;color:#eaf2ff!important}
body.satranj-game-ui .coach-orb{background:linear-gradient(145deg,#69d8de,#5c86ff 55%,#9b70ff)!important;color:#07121e!important}

/* -------- Monochrome board lock: these stay black & white regardless of UI. -------- */
body.satranj-game-ui .mini-board{border-color:#07090d!important;box-shadow:0 55px 80px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.12),0 0 65px rgba(78,136,255,.08)!important}
body.satranj-game-ui .mini-board span{background:#181b21!important}
body.satranj-game-ui .mini-board span:nth-child(16n + 1),body.satranj-game-ui .mini-board span:nth-child(16n + 3),body.satranj-game-ui .mini-board span:nth-child(16n + 5),body.satranj-game-ui .mini-board span:nth-child(16n + 7),body.satranj-game-ui .mini-board span:nth-child(16n + 10),body.satranj-game-ui .mini-board span:nth-child(16n + 12),body.satranj-game-ui .mini-board span:nth-child(16n + 14),body.satranj-game-ui .mini-board span:nth-child(16n + 16){background:#ecece8!important}
body.satranj-game-ui .online-board .square.light,body.satranj-game-ui .offline-board .square.light,body.satranj-game-ui .daily-puzzle-board .puzzle-square.light{background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 38%,rgba(0,0,0,.025) 75%),#e5e5e1!important}
body.satranj-game-ui .online-board .square.dark,body.satranj-game-ui .offline-board .square.dark,body.satranj-game-ui .daily-puzzle-board .puzzle-square.dark{background:linear-gradient(135deg,rgba(255,255,255,.04),transparent 38%,rgba(0,0,0,.15) 76%),#202328!important}
body.satranj-game-ui .online-board,body.satranj-game-ui .offline-board,body.satranj-game-ui .daily-puzzle-board{border-color:#06080c!important;background:#080a0e!important}
body.satranj-game-ui .arena-board-shell,body.satranj-game-ui .offline-board-shell{background:linear-gradient(145deg,#171b22,#05070a)!important;border-color:rgba(255,255,255,.13)!important}
/* Interaction hints may use restrained blue/cyan while the board squares stay monochrome. */
body.satranj-game-ui .online-board .square.last-move,body.satranj-game-ui .offline-board .square.lastmove{box-shadow:inset 0 0 0 999px rgba(74,136,255,.15)!important}
body.satranj-game-ui .online-board .square.selected:after,body.satranj-game-ui .offline-board .square.selected:after{border-color:#6ad9e3!important;box-shadow:0 0 18px rgba(81,203,218,.22)!important}
body.satranj-game-ui .online-board .square.legal-target:before,body.satranj-game-ui .offline-board .square.legal:before{background:rgba(82,156,255,.32)!important;box-shadow:0 0 0 4px rgba(82,156,255,.07)!important}
body.satranj-game-ui .online-board .square.check,body.satranj-game-ui .offline-board .square.check{box-shadow:inset 0 0 0 999px rgba(255,78,104,.17),inset 0 0 0 3px rgba(255,108,129,.72)!important}

/* Mobile keeps color hierarchy but avoids excess visual noise. */
@media(max-width:620px){
  body.satranj-game-ui{background:linear-gradient(165deg,#06101d,#0a1525 55%,#070e19)!important}
  body.satranj-game-ui .aurora{opacity:.08!important}
  body.satranj-game-ui .mode-card{box-shadow:none!important}
  body.satranj-game-ui .primary-btn{box-shadow:0 10px 26px rgba(75,119,242,.20)!important}
}


/* ========================================================================== */
/* Satranj Phase 3.2 — Competitive Gaming Identity                            */
/* Black/white board stays sacred; surrounding product feels like a game.     */
/* ========================================================================== */
body.satranj-game-ui{
  --game-blue:#4f7cff;--game-cyan:#22d3ee;--game-violet:#8b5cf6;--game-pink:#e64f9c;
  --game-green:#35d99a;--game-amber:#f5b942;--game-red:#ff5f7d;
  background:
    radial-gradient(circle at 12% 8%,rgba(59,110,255,.20),transparent 29%),
    radial-gradient(circle at 88% 10%,rgba(158,70,255,.17),transparent 26%),
    radial-gradient(circle at 72% 82%,rgba(0,210,220,.075),transparent 29%),
    linear-gradient(145deg,#050b17 0%,#071426 50%,#08101d 100%)!important;
}
body.satranj-game-ui:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;opacity:.16;background-image:linear-gradient(rgba(88,125,190,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(88,125,190,.09) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent 70%)}
body.satranj-game-ui .brand-mark{border-radius:13px!important;display:grid!important;place-items:center!important;overflow:hidden;background:linear-gradient(145deg,#2fd6e9 0%,#5577ff 40%,#8a5cff 72%,#e454a4 100%)!important;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 10px 30px rgba(77,113,255,.28)!important}
body.satranj-game-ui .satranj-knight{font-family:Georgia,serif;font-size:25px;line-height:1;color:#fff;text-shadow:0 6px 16px rgba(2,7,20,.42);transform:translateY(-1px)}
body.satranj-game-ui .brand-copy strong{font-weight:900;letter-spacing:.01em;text-transform:uppercase}
body.satranj-game-ui .brand-copy small{letter-spacing:.16em!important;font-size:6.5px!important;color:#8ca4cd!important}
body.satranj-game-ui .topbar{box-shadow:0 16px 54px rgba(0,0,0,.28),inset 0 -1px 0 rgba(82,121,255,.08)!important}
body.satranj-game-ui .topbar:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,#32d4e6 18%,#5577ff 42%,#9b5cff 67%,#e44c9a 82%,transparent);opacity:.55;pointer-events:none}
body.satranj-game-ui .nav-link.active{box-shadow:inset 0 0 0 1px rgba(98,137,255,.12),0 8px 24px rgba(65,99,225,.08)!important}
body.satranj-game-ui .hero-grid{position:relative}
body.satranj-game-ui .hero-grid:before{content:"RANKED  •  OFFLINE  •  SOCIAL";position:absolute;right:36px;top:35px;font-size:7px;letter-spacing:.28em;color:#60769a;opacity:.9}
body.satranj-game-ui .hero-copy h1 span{background:linear-gradient(92deg,#6da5ff 0%,#a778ff 45%,#eb66ac 72%,#53e0d6 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
body.satranj-game-ui .primary-btn{background:linear-gradient(120deg,#3d7cff 0%,#775bff 48%,#bd4fe4 100%)!important;color:#fff!important;box-shadow:0 13px 38px rgba(79,91,255,.28)!important}
body.satranj-game-ui .primary-btn:hover{box-shadow:0 18px 46px rgba(91,84,255,.38)!important}
body.satranj-game-ui .secondary-btn{background:linear-gradient(180deg,rgba(25,45,76,.65),rgba(13,25,47,.58))!important}
body.satranj-game-ui .hero-economy-card{position:relative;overflow:hidden}
body.satranj-game-ui .hero-economy-card:after{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,#f6bf4f,#ff7a5f,#e155a8);opacity:.8}
body.satranj-game-ui .mode-card{isolation:isolate;box-shadow:0 18px 56px rgba(0,0,0,.22)!important}
body.satranj-game-ui .mode-card:nth-child(1){--card-accent:#28d4cc!important}
body.satranj-game-ui .mode-card:nth-child(2){--card-accent:#527dff!important}
body.satranj-game-ui .mode-card:nth-child(3){--card-accent:#c050e8!important}
body.satranj-game-ui .mode-card:after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--card-accent),transparent 82%);opacity:.85}
body.satranj-game-ui .mode-card:hover{transform:translateY(-5px) scale(1.006)!important}
body.satranj-game-ui .card-arrow{border-color:color-mix(in srgb,var(--card-accent) 35%,transparent)!important;color:var(--card-accent)!important}
body.satranj-game-ui .feature-strip>div:nth-child(1)>span{color:#28d4cc!important}
body.satranj-game-ui .feature-strip>div:nth-child(2)>span{color:#5e8bff!important}
body.satranj-game-ui .feature-strip>div:nth-child(3)>span{color:#c66cff!important}
body.satranj-game-ui .feature-strip>div:nth-child(4)>span{color:#f2b64d!important}
body.satranj-game-ui .online-hero{background:radial-gradient(circle at 83% 15%,rgba(188,76,232,.12),transparent 34%),linear-gradient(150deg,rgba(13,31,57,.95),rgba(7,15,29,.95))!important}
body.satranj-game-ui .queue-panel{border-top:2px solid rgba(74,129,255,.44)!important}
body.satranj-game-ui .private-panel{border-top:2px solid rgba(188,80,232,.38)!important}
body.satranj-game-ui .friends-panel{border-top:2px solid rgba(38,210,192,.38)!important}
body.satranj-game-ui .leader-tabs button.active{background:linear-gradient(135deg,rgba(80,124,255,.2),rgba(143,87,255,.16))!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(103,144,255,.15)!important}
body.satranj-game-ui .leader-row.me{background:linear-gradient(90deg,rgba(78,126,255,.10),rgba(147,82,255,.07),transparent)!important;border-color:rgba(95,137,255,.16)!important}
body.satranj-game-ui .studio-panel:nth-child(1){border-top:2px solid rgba(43,211,190,.34)!important}
body.satranj-game-ui .studio-panel:nth-child(2){border-top:2px solid rgba(93,139,255,.38)!important}
body.satranj-game-ui .studio-panel:nth-child(3){border-top:2px solid rgba(198,93,245,.34)!important}
body.satranj-game-ui .studio-panel:nth-child(4){border-top:2px solid rgba(245,185,66,.34)!important}
body.satranj-game-ui .settings-card{position:relative;overflow:hidden}
body.satranj-game-ui .settings-card:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;background:linear-gradient(#39d1df,#677fff,#b55ce8);opacity:.7}
body.satranj-game-ui .offline-brand-moon,body.satranj-game-ui .arena-brand-moon{font-family:Georgia,serif!important;color:#fff!important}
body.satranj-game-ui .offline-badge{color:#54e0aa!important;border-color:rgba(64,220,160,.17)!important;background:rgba(45,206,145,.055)!important}
body.satranj-game-ui .arena-connection{color:#55dfa8!important}
/* Brand rule: every playable chessboard remains black/white. */
body.satranj-game-ui .chessboard .square.light,body.satranj-game-ui .online-board .square.light,body.satranj-game-ui .offline-board .square.light,body.satranj-game-ui .daily-puzzle-board .puzzle-square.light{background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 38%,rgba(0,0,0,.02) 76%),#ecece8!important}
body.satranj-game-ui .chessboard .square.dark,body.satranj-game-ui .online-board .square.dark,body.satranj-game-ui .offline-board .square.dark,body.satranj-game-ui .daily-puzzle-board .puzzle-square.dark{background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 38%,rgba(0,0,0,.17) 78%),#1d2025!important}
body.satranj-game-ui.theme-royalwood .chessboard .square.light,body.satranj-game-ui.theme-midnight .chessboard .square.light{background:#ecece8!important}
body.satranj-game-ui.theme-royalwood .chessboard .square.dark,body.satranj-game-ui.theme-midnight .chessboard .square.dark{background:#1d2025!important}
@media(max-width:720px){body.satranj-game-ui .hero-grid:before{display:none}body.satranj-game-ui .mode-card:hover{transform:none!important}body.satranj-game-ui:before{opacity:.09;background-size:36px 36px}}
@media(prefers-reduced-motion:reduce){body.satranj-game-ui .orbit,body.satranj-game-ui .floating-piece,body.satranj-game-ui .mini-board{animation:none!important}}


/* ========================================================================== */
/* Satranj Phase 3.3 — Mobile Performance Pass                                */
/* Keep desktop richness; reduce GPU compositing and scroll-time repainting.  */
/* ========================================================================== */
@media (max-width:760px), (hover:none) and (pointer:coarse){
  html{scroll-behavior:auto!important}
  body.satranj-game-ui{
    background:linear-gradient(165deg,#06111f 0%,#09192c 55%,#07111e 100%)!important;
    background-attachment:scroll!important;
  }
  body.satranj-game-ui:before,
  body.satranj-game-ui .noise,
  body.satranj-game-ui .aurora{display:none!important}

  body.satranj-game-ui .glass,
  body.satranj-game-ui:not(.theme-royalwood) .glass,
  body.satranj-game-ui .modal-backdrop{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  body.satranj-game-ui .glass{
    background:#0b1728!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
  }
  body.satranj-game-ui .topbar{
    background:#0a1627!important;
    box-shadow:0 6px 20px rgba(0,0,0,.16)!important;
  }
  body.satranj-game-ui .topbar:after{opacity:.32!important}
  body.satranj-game-ui .mobile-nav{
    background:#091522!important;
    box-shadow:0 8px 26px rgba(0,0,0,.22)!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }

  body.satranj-game-ui .hero-visual{perspective:none!important}
  body.satranj-game-ui .orbit,
  body.satranj-game-ui .floating-piece{display:none!important}
  body.satranj-game-ui .mini-board{
    animation:none!important;
    transform:rotate(-4deg) scale(.94)!important;
    box-shadow:0 20px 38px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.10)!important;
  }
  body.satranj-game-ui .hero-rating{box-shadow:0 10px 24px rgba(0,0,0,.20)!important}

  body.satranj-game-ui .mode-card:before{display:none!important;filter:none!important}
  body.satranj-game-ui .mode-card,
  body.satranj-game-ui .primary-btn,
  body.satranj-game-ui .secondary-btn,
  body.satranj-game-ui .ghost-btn,
  body.satranj-game-ui .nav-link,
  body.satranj-game-ui .card-arrow,
  body.satranj-game-ui .theme-chip,
  body.satranj-game-ui .page{
    transition:none!important;
    animation:none!important;
  }
  body.satranj-game-ui .mode-card{box-shadow:none!important}
  body.satranj-game-ui .primary-btn{box-shadow:0 7px 18px rgba(72,103,238,.18)!important}

  #page-home>.section-heading,
  #page-home>.mode-grid,
  #page-home>.feature-strip,
  .profile-wrap>*,
  .settings-wrap>*,
  .online-wrap>*,
  .leader-wrap>*,
  .studio-wrap>*{
    content-visibility:auto;
    contain-intrinsic-size:auto 220px;
  }
  #page-home>.mode-grid{contain-intrinsic-size:auto 610px}

  .board-glow{display:none!important}
  body.satranj-game-ui .arena-board-shell,
  body.satranj-game-ui .offline-board-shell{
    box-shadow:0 10px 26px rgba(0,0,0,.24)!important;
  }
  .chessboard .piece,.online-board .piece,.daily-puzzle-board .piece{
    filter:none!important;
    text-shadow:0 1px 1px rgba(0,0,0,.32)!important;
  }
  .ai-orbit:before,.ai-thinking-dots i,.search-orbit{animation:none!important}

  button,[role="button"],.square,.puzzle-square{touch-action:manipulation}
  .move-list,.online-moves,.arena-chat-list,.history-list{-webkit-overflow-scrolling:touch}
}
@media (max-width:420px){
  body.satranj-game-ui .hero-visual{height:270px!important}
  body.satranj-game-ui .mini-board{width:min(250px,70vw)!important}
}

/* ========================================================================== */
/* Satranj Phase 3.4 — Lightweight Board Renderer                              */
/* Mobile keeps vector-quality pieces but removes per-piece compositor costs.  */
/* ========================================================================== */
.wood-piece-svg{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}

@media (max-width:900px), (hover:none) and (pointer:coarse){
  /* A filtered board shell forces the browser to rasterize the complete 8x8
     subtree into an offscreen texture during scroll. Keep depth via one cheap
     box shadow instead. */
  body.satranj-game-ui .arena-board-shell,
  body.satranj-game-ui .offline-board-shell{
    filter:none!important;
    box-shadow:0 12px 30px rgba(0,0,0,.28)!important;
    isolation:auto!important;
  }
  body.satranj-game-ui .arena-board-shell:before,
  body.satranj-game-ui .offline-board-shell:before{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 8px 22px rgba(0,0,0,.24)!important;
  }

  /* The SVG already contains its own floor shadow and gloss. CSS drop-shadow
     filters on 32 pieces are redundant and expensive on mobile GPUs. */
  body.satranj-game-ui .wood-piece-svg,
  body.satranj-game-ui .wood-maple,
  body.satranj-game-ui .wood-walnut,
  body.satranj-game-ui .mini-piece,
  body.satranj-game-ui .mini-piece .wood-piece-svg,
  body.satranj-game-ui .arena-flying-piece,
  body.satranj-game-ui .offline-flying-piece,
  body.satranj-game-ui .arena-flying-piece .wood-piece-svg,
  body.satranj-game-ui .offline-flying-piece .wood-piece-svg{
    filter:none!important;
  }

  /* Avoid promoting every piece into its own 3D/composited layer. */
  body.satranj-game-ui .chessboard .piece,
  body.satranj-game-ui .online-board .piece,
  body.satranj-game-ui .offline-board .piece,
  body.satranj-game-ui .daily-puzzle-board .piece{
    transform:none!important;
    perspective:none!important;
    transition:opacity .12s linear!important;
  }
  body.satranj-game-ui .square:hover>.piece{transform:none!important}
  body.satranj-game-ui .square.selected>.piece{
    transform:translateY(-2%) scale(1.025)!important;
    filter:none!important;
  }
  body.satranj-game-ui .square.move-arrival>.piece{animation:none!important}
  body.satranj-game-ui .captured-fade{filter:none!important;transform:scale(.82)!important}

  /* The board identity stays black/white; solid surfaces are visually cleaner
     on a phone and avoid 64 independent gradient paints while scrolling. */
  body.satranj-game-ui .chessboard .square.light,
  body.satranj-game-ui .online-board .square.light,
  body.satranj-game-ui .offline-board .square.light,
  body.satranj-game-ui .daily-puzzle-board .puzzle-square.light,
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 1),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 3),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 5),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 7),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 10),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 12),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 14),
  body.satranj-game-ui .mini-board>.mini-square:nth-child(16n + 16){
    background:#ecece8!important;
  }
  body.satranj-game-ui .chessboard .square.dark,
  body.satranj-game-ui .online-board .square.dark,
  body.satranj-game-ui .offline-board .square.dark,
  body.satranj-game-ui .daily-puzzle-board .puzzle-square.dark,
  body.satranj-game-ui .mini-board>.mini-square{
    background:#1d2025!important;
  }

  /* Contain board paint damage to the board itself and avoid transition work on
     64 cells whenever selection/last-move classes change. */
  body.satranj-game-ui .chessboard,
  body.satranj-game-ui .online-board,
  body.satranj-game-ui .offline-board,
  body.satranj-game-ui .daily-puzzle-board,
  body.satranj-game-ui .mini-board{
    contain:layout paint style!important;
  }
  body.satranj-game-ui .chessboard .square,
  body.satranj-game-ui .online-board .square,
  body.satranj-game-ui .offline-board .square,
  body.satranj-game-ui .daily-puzzle-board .puzzle-square{
    transition:none!important;
  }
}

/* ========================================================================== */
/* Satranj Phase 3.5 — Device-fit Arena Geometry                               */
/* Keep the board + player bars perfectly centered inside the visual viewport. */
/* ========================================================================== */
@media (max-width:1024px){
  body.online-match-mode .arena-main,
  body.offline-match-mode .offline-arena-main,
  body.online-match-mode .arena-board-column,
  body.offline-match-mode .offline-board-column{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  body.online-match-mode .arena-board-column,
  body.offline-match-mode .offline-board-column{
    justify-items:center!important;
    margin-inline:auto!important;
  }

  body.online-match-mode .arena-playerbar,
  body.offline-match-mode .offline-playerbar,
  body.online-match-mode .arena-board-shell,
  body.offline-match-mode .offline-board-shell,
  body.online-match-mode .arena-mobile-actions,
  body.offline-match-mode .offline-mobile-actions{
    justify-self:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
    min-width:0!important;
  }
}

/* Portrait phones: use the measured visual viewport instead of 100dvw. Chrome's
   browser chrome and some OEM WebViews can report a slightly wider dynamic VW,
   which previously pushed the final file / h-file outside the visible screen. */
@media (max-width:600px) and (orientation:portrait){
  body.online-match-mode .arena-playerbar,
  body.offline-match-mode .offline-playerbar,
  body.online-match-mode .arena-board-shell,
  body.offline-match-mode .offline-board-shell,
  body.online-match-mode .arena-mobile-actions,
  body.offline-match-mode .offline-mobile-actions{
    width:min(
      calc(var(--mm-app-width,100vw) - var(--mm-safe-left) - var(--mm-safe-right) - 24px),
      calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 164px),
      820px
    )!important;
    max-width:calc(100% - 14px)!important;
  }

  /* Reserve room for the visual board frame that extends outside the shell. */
  body.online-match-mode .arena-board-shell,
  body.offline-match-mode .offline-board-shell{
    contain:layout paint style!important;
  }
  body.online-match-mode .arena-board-shell:before,
  body.offline-match-mode .offline-board-shell:before{
    inset:-4px!important;
  }
}

@media (max-width:390px) and (orientation:portrait){
  body.online-match-mode .arena-playerbar,
  body.offline-match-mode .offline-playerbar,
  body.online-match-mode .arena-board-shell,
  body.offline-match-mode .offline-board-shell,
  body.online-match-mode .arena-mobile-actions,
  body.offline-match-mode .offline-mobile-actions{
    width:min(
      calc(var(--mm-app-width,100vw) - var(--mm-safe-left) - var(--mm-safe-right) - 20px),
      calc(var(--mm-app-height,100dvh) - var(--mm-safe-top) - var(--mm-safe-bottom) - 158px)
    )!important;
    max-width:calc(100% - 12px)!important;
  }
}


/* ========================================================================== */
/* Satranj Phase 3.6 — Exact 8x8 Device-Fit Grid                              */
/* Prevent intrinsic piece/image sizing from expanding the final grid track.   */
/* ========================================================================== */
.chessboard,
.online-board,
.offline-board,
.daily-puzzle-board,
.mini-board{
  grid-template-columns:repeat(8,minmax(0,1fr))!important;
  grid-template-rows:repeat(8,minmax(0,1fr))!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
}

.chessboard>.square,
.online-board>.square,
.offline-board>.square,
.daily-puzzle-board>.puzzle-square,
.mini-board>.mini-square{
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
}

/* Images have intrinsic dimensions. Without these constraints a CSS-grid item
   may contribute a non-zero min-content width and make the h-file overflow. */
.chessboard .piece,
.online-board .piece,
.offline-board .piece,
.daily-puzzle-board .piece,
.mini-board .mini-piece,
.wood-piece-svg{
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
}

@media (max-width:600px){
  /* Keep a little breathing room inside every phone-sized square while
     preserving the premium vector artwork. */
  body.satranj-game-ui .online-board .piece,
  body.satranj-game-ui .offline-board .piece{
    width:90%!important;
    height:92%!important;
  }
  body.satranj-game-ui .online-board,
  body.satranj-game-ui .offline-board{
    overflow:hidden!important;
  }
}
