.gr-wrap{max-width:980px;margin:24px auto;padding:0 14px}
.gr-card{background:#fff;border:1px solid var(--line,#e6dfd0);border-radius:16px;padding:18px;box-shadow:0 6px 24px rgba(17,27,51,.07)}
.gr-center{text-align:center}.gr-small{font-size:12.5px;color:var(--ink-soft,#667);margin:14px 0}
.gr-login{max-width:520px;margin:30px auto;padding:30px 20px}
.gr-head{display:flex;gap:14px;align-items:center;margin-bottom:18px}.gr-head h1{margin:0;font-size:26px;color:var(--wine-dark,#111b33)}.gr-head p{margin:4px 0 0;color:var(--ink-soft,#667)}
.gr-cat{width:72px;height:72px;flex:none}.gr-login .gr-cat{margin:0 auto 10px;width:96px;height:96px}.gr-cat svg{width:100%;height:100%}
.gr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:18px}
.gr-tile{display:flex;flex-direction:column;gap:6px;text-align:left;background:#fff;border:1px solid var(--line,#e6dfd0);border-radius:16px;padding:16px;cursor:pointer;font:inherit;color:inherit;transition:transform .15s,box-shadow .15s,border-color .15s}
.gr-tile:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(17,27,51,.12);border-color:var(--gold,#c9962b)}
.gr-ico{font-size:34px;line-height:1}.gr-tile strong{font-size:17px;color:var(--wine-dark,#111b33)}.gr-tile small{color:var(--ink-soft,#667);line-height:1.35}.gr-tile em{font-style:normal;font-size:12px;color:var(--gold-dark,#9a7014);margin-top:auto;padding-top:6px}
.gr-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.gr-back{border:1px solid var(--line,#ddd);background:#fff;border-radius:20px;padding:6px 12px;cursor:pointer;font:inherit}
.gr-say{margin-left:auto;background:var(--cream,#faf5ea);border:1px solid var(--line,#e6dfd0);border-radius:14px;padding:6px 12px;font-size:13.5px;max-width:100%}
.gr-modes{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:16px 0}
.gr-mode{background:var(--wine-dark,#111b33);color:#fff;border:0;border-radius:24px;padding:10px 22px;font:inherit;font-weight:600;cursor:pointer}.gr-mode:hover{background:var(--gold-dark,#9a7014)}
.gr-info{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;font-size:14px}
.gr-btn{background:var(--gold,#c9962b);color:#fff;border:0;border-radius:20px;padding:8px 18px;font:inherit;font-weight:600;cursor:pointer}.gr-btn:disabled{opacity:.5;cursor:default}
.gr-btn.alt{background:#fff;color:var(--wine-dark,#111b33);border:1px solid var(--line,#ccc)}
.gr-result{text-align:center;margin:12px 0;font-size:18px;font-weight:700;color:var(--wine-dark,#111b33)}
.gr-lb{margin-top:16px;border-top:1px dashed var(--line,#ddd);padding-top:12px}.gr-lb h3{margin:0 0 8px;font-size:15px}
.gr-lb ol{margin:0;padding-left:22px;font-size:14px}.gr-lb li{padding:2px 0}.gr-lb li.me{font-weight:700;color:var(--gold-dark,#9a7014)}
/* chess */
.ch-board{display:grid;grid-template-columns:repeat(8,1fr);width:min(100%,520px);aspect-ratio:1;margin:0 auto;border:3px solid var(--wine-dark,#111b33);border-radius:6px;overflow:hidden;user-select:none}
.ch-sq{position:relative;display:flex;align-items:center;justify-content:center;font-size:min(8.2vw,46px);line-height:1;cursor:pointer}
.ch-sq.l{background:#f0d9b5}.ch-sq.d{background:#b58863}
.ch-sq.sel{outline:4px solid #e7b928;outline-offset:-4px}.ch-sq.last{box-shadow:inset 0 0 0 100px rgba(255,235,59,.35)}.ch-sq.chk{box-shadow:inset 0 0 0 100px rgba(220,40,40,.45)}
.ch-sq.mv::after{content:"";width:28%;height:28%;border-radius:50%;background:rgba(20,80,20,.45)}.ch-sq.mv.cap::after{width:86%;height:86%;background:none;border:5px solid rgba(20,80,20,.45)}
.ch-w{color:#fff;text-shadow:0 0 2px #000,0 0 2px #000,0 0 3px #000}.ch-b{color:#111}
.ch-coord{position:absolute;font-size:9px;opacity:.6;pointer-events:none}.ch-coord.r{left:2px;top:1px}.ch-coord.f{right:2px;bottom:1px}
.ch-promo{display:flex;gap:8px;justify-content:center;margin:10px 0}.ch-promo button{font-size:30px;background:#fff;border:1px solid var(--line,#ccc);border-radius:10px;padding:2px 12px;cursor:pointer}
/* tictactoe */
.tt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,320px);margin:14px auto}
.tt-c{aspect-ratio:1;background:var(--cream,#faf5ea);border:2px solid var(--line,#e6dfd0);border-radius:12px;font-size:min(16vw,60px);font-weight:800;cursor:pointer;color:var(--wine-dark,#111b33)}.tt-c.o{color:var(--gold-dark,#9a7014)}.tt-c.win{background:#dff5df}
/* dice */
.dice{width:56px;height:56px;border-radius:12px;background:#fff;border:2px solid var(--wine-dark,#111b33);display:inline-grid;place-items:center;font-size:32px;font-weight:800}.dice.roll{animation:grroll .5s}
@keyframes grroll{0%{transform:rotate(0)}50%{transform:rotate(200deg) scale(1.15)}100%{transform:rotate(360deg)}}
/* snakes + ludo + cricket canvases */
.gr-canvas{display:block;margin:0 auto;max-width:100%;border-radius:10px;touch-action:manipulation}
.sl-board{display:grid;grid-template-columns:repeat(10,1fr);width:min(100%,480px);aspect-ratio:1;margin:0 auto;border:3px solid var(--wine-dark,#111b33);border-radius:8px;position:relative;overflow:hidden}
.sl-c{font-size:10px;padding:2px;color:#556}.sl-c.a{background:#fdf3d8}.sl-c.b{background:#e9f3ee}
.sl-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sl-tok{position:absolute;width:6%;height:6%;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);transition:left .25s,top .25s}
.lu-wrap{display:flex;flex-direction:column;align-items:center}
@media(max-width:560px){.gr-head h1{font-size:21px}.gr-cat{width:56px;height:56px}}
.gr-wrap [hidden],.ch-promo[hidden]{display:none!important}
.ch-board{grid-template-rows:repeat(8,1fr)}.ch-sq{min-height:0;min-width:0;overflow:hidden}
.sl-board{grid-template-rows:repeat(10,1fr)}.sl-c{min-height:0;overflow:hidden}
.gr-avatar{width:64px;height:64px;flex:none}
.gr-embed-body{background:#faf8f4;margin:0}
.gr-embed{margin:0;padding:10px;max-width:none}
.gr-embed .gr-head h1{font-size:18px}.gr-embed .gr-head{margin-bottom:10px}.gr-embed .gr-cat{width:52px;height:52px}
.gr-embed .gr-grid{grid-template-columns:1fr 1fr;gap:8px}.gr-embed .gr-tile{padding:10px}.gr-embed .gr-tile small{display:none}.gr-embed .gr-ico{font-size:26px}.gr-embed .gr-tile strong{font-size:14px}
.gr-embed .gr-card{padding:10px;box-shadow:none}.gr-embed .gr-avatar{width:54px;height:54px}.gr-embed .gr-say{margin-left:0;flex-basis:100%}
.gr-embed .ch-board,.gr-embed .sl-board{width:100%}.gr-embed .gr-login{margin:10px auto;padding:16px}
.gr-embed .gr-small{margin:8px 0;font-size:11.5px}
/* stick cricket stadium */
.ck-wrap{position:relative;width:min(100%,800px);margin:0 auto}
.ck-canvas{width:100%;height:auto;aspect-ratio:800/520;background:#0b1230;border-radius:12px;cursor:pointer}
.ck-start{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(8,12,30,.62);border-radius:12px;color:#fff;text-align:center;padding:12px}
.ck-start h3{margin:0 0 8px;font-size:22px}.ck-start p{margin:0 0 14px;line-height:1.5;font-size:14px}
.ck-mimi{position:absolute;left:8px;bottom:34px;width:22%;max-width:150px;min-width:84px;transform:translateY(130%) scale(.4);opacity:0;transform-origin:bottom left;pointer-events:none;transition:transform .45s cubic-bezier(.3,1.6,.5,1),opacity .25s;z-index:3}
.ck-mimi.show{transform:none;opacity:1}
.ck-mface{width:100%;aspect-ratio:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5));background:radial-gradient(circle,#fff6 0,#fff0 70%)}
.ck-mbub{background:#fff;color:#111b33;font-size:12px;font-weight:700;line-height:1.25;border-radius:12px;padding:6px 9px;margin-top:-4px;box-shadow:0 3px 10px rgba(0,0,0,.35);text-align:center}
.ck-mbub:empty{display:none}
.ck-ctl{margin-top:10px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.gr-embed .ck-mimi{width:26%}
.gr-after{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:14px 0;animation:grpop .4s}@keyframes grpop{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}
/* boxing controls */
.bx-ctl{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.bx-b{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:92px;padding:12px 14px;border:0;border-radius:14px;background:var(--wine-dark,#111b33);color:#fff;font:inherit;font-weight:700;font-size:15px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 4px 0 rgba(0,0,0,.35)}
.bx-b small{font-size:10px;font-weight:500;opacity:.7}.bx-b.alt{background:var(--gold-dark,#8f6a14)}.bx-b.on,.bx-b:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.35);filter:brightness(1.2)}
@media(max-width:560px){.bx-b{min-width:calc(33% - 8px);padding:14px 6px}}
