/* play.aglasem.com — shared styles (aglasem.com branding) */
:root{
  --brand:#3F51B5; --brand-dark:#303f9f; --brand-light:#5c6bc0;
  --page:#f4f6fb; --card:#fff; --border:#e7eaf3;
  --ink:#2b2f3a; --muted:#7b839b; --grid:#cdd3ea; --cell:#e2e6f3; --gold:#ffce33;
  --soft:#fafbff; --hi:#eef1fb;
}
:root[data-theme="dark"]{
  --page:#0f1422; --card:#172033; --border:#27324c;
  --ink:#e7ecf5; --muted:#93a1bd; --grid:#1f2a40; --cell:#26344f;
  --soft:#1b2540; --hi:#202c4a; --overlay:rgba(15,20,34,.93);
}
:root{ --overlay:rgba(255,255,255,.93); }
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:'Roboto',system-ui,-apple-system,sans-serif;background:var(--page);color:var(--ink);min-height:100vh}
a{color:var(--brand)}

/* app bar */
.appbar{background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;box-shadow:0 2px 10px rgba(48,63,159,.25);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:baseline;gap:8px}
.brand a{font-family:'Pacifico',cursive;font-size:1.6rem;color:#fff;text-decoration:none;line-height:1}
.brand .play{font-weight:700;font-size:.7rem;letter-spacing:1px;text-transform:uppercase;background:rgba(255,255,255,.18);padding:3px 8px;border-radius:20px}
.auth-slot{display:flex;align-items:center;gap:10px;font-size:13.5px;min-height:34px}
.userchip{display:flex;align-items:center;gap:8px}
.uname{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avatar{position:relative;display:inline-grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.25);font-weight:700;overflow:hidden;flex:0 0 auto}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lnk{color:#fff;cursor:pointer;opacity:.92;text-decoration:underline;text-underline-offset:2px}
.lnk:hover{opacity:1}

.btn{background:var(--brand);color:#fff;border:none;border-radius:9px;padding:10px 16px;font-weight:600;font-size:13.5px;cursor:pointer;font-family:inherit;text-decoration:none;display:inline-block;text-align:center}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:var(--card);color:var(--brand);border:1.5px solid var(--brand)}
.btn.white{background:#fff;color:var(--brand)}
.btn.sm{padding:7px 12px;font-size:12.5px}

.wrap{max-width:480px;margin:0 auto;padding:16px 14px 50px}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 16px rgba(40,53,147,.05)}
.crumb{font-size:12.5px;color:var(--muted);margin:14px 2px 6px}
.crumb a{text-decoration:none}

/* hub / hero */
.hero{padding:20px 4px 6px}
.hero h1{font-size:22px;line-height:1.25;margin-bottom:6px}
.hero p{color:var(--muted);font-size:13.5px;line-height:1.55}
.how{display:flex;gap:8px;margin:14px 0 4px;flex-wrap:wrap}
.chip{background:var(--hi);color:var(--brand);border-radius:20px;padding:6px 12px;font-size:12px;font-weight:600}

.games{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}
@media(min-width:560px){.games{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.games{gap:16px}}

/* responsive hub (home page) */
.hub{max-width:1080px;margin:0 auto;padding:4px 16px 30px}
.hub-hero{text-align:center;padding:40px 18px 30px;margin:0 -16px 6px;background:radial-gradient(125% 150% at 50% -10%, rgba(63,81,181,.12), rgba(63,81,181,0) 58%);border-radius:0 0 26px 26px}
.hero-kicker{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--brand);background:var(--hi);padding:5px 12px;border-radius:20px;margin-bottom:14px}
.hub-hero h1{font-size:clamp(25px,4.4vw,40px);line-height:1.18;margin-bottom:10px}
.hub-hero p{color:var(--muted);font-size:clamp(13.5px,1.5vw,16px);line-height:1.55;max-width:620px;margin:0 auto}
.hub-hero .how{justify-content:center;margin-top:16px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.hub-h{font-size:16px;margin:20px 2px 4px}
.hub-cols{display:grid;grid-template-columns:1fr;gap:14px;margin-top:18px}
@media(min-width:820px){.hub-cols{grid-template-columns:1fr 1fr;align-items:start}}
.hub-cols .panel{margin-top:0}
.game-card .thumb{height:clamp(96px,11vw,124px)}
.game-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:0;overflow:hidden}
.game-card .thumb{height:96px;display:grid;place-items:center;font-size:34px;color:#fff}
.game-card .body{padding:12px}
.game-card h4{font-size:15px;margin-bottom:3px}
.game-card p{font-size:12px;color:var(--muted);line-height:1.4;min-height:32px}
.game-card .go{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--brand)}
.game-card.soon{opacity:.6}
.tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;background:var(--hi);color:var(--brand);border-radius:5px;padding:2px 6px;margin-left:6px}

/* game shell */
.sub{color:var(--muted);font-size:13px;margin:10px 2px 12px}
.sub b{color:var(--brand)}
.toprow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.scores{display:flex;gap:10px}
.score-box{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:7px 14px;min-width:80px;text-align:center}
.score-box .label{font-size:10px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase}
.score-box .val{font-size:20px;font-weight:700;color:var(--brand)}
.daily-pill{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;margin-bottom:12px;font-size:12.5px;color:var(--muted)}
.daily-pill b{color:var(--brand)}

/* 2048 board */
.board-wrap{position:relative;width:100%}
.board{background:var(--grid);border-radius:14px;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:12px;aspect-ratio:1/1;touch-action:none;user-select:none}
.cell-bg{background:var(--cell);border-radius:10px}
.tiles{position:absolute;inset:12px;pointer-events:none}
.tile{position:absolute;display:grid;place-items:center;border-radius:10px;font-weight:700;transition:transform .11s ease;will-change:transform;box-shadow:0 2px 6px rgba(40,53,147,.12)}
.tile.pop{animation:pop .16s ease both}@keyframes pop{0%{scale:0}60%{scale:1.12}100%{scale:1}}
.tile.merge{animation:merge .18s ease}@keyframes merge{0%{scale:1}45%{scale:1.22}100%{scale:1}}
.t2{background:var(--hi);color:#5a6285}.t4{background:#dde3f7;color:#454e7a}
.t8{background:#ffd9a3;color:#7a4a00}.t16{background:#ffb774;color:#6a3c00}
.t32{background:#ff9d57;color:#fff}.t64{background:#ff7a3c;color:#fff}
.t128{background:var(--brand-light);color:#fff;font-size:.86em}.t256{background:var(--brand);color:#fff;font-size:.86em}
.t512{background:var(--brand-dark);color:#fff;font-size:.86em}.t1024{background:#283593;color:#fff;font-size:.7em}
.t2048{background:linear-gradient(135deg,#ffce33,#ff9d4d);color:#5a3500;font-size:.7em;box-shadow:0 0 20px rgba(255,200,60,.7)}
.tbig{background:#1a237e;color:#fff;font-size:.64em}

.overlay{position:absolute;inset:0;border-radius:14px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:13px;background:var(--overlay);backdrop-filter:blur(2px);text-align:center;padding:22px}
.overlay.show{display:flex}
.overlay h2{font-size:26px;color:var(--brand)}
.overlay p{color:var(--muted);max-width:300px;font-size:13.5px;line-height:1.5}

.help{margin-top:14px;color:var(--muted);font-size:12.5px;text-align:center;line-height:1.6}
.kbd{background:#fff;border:1px solid var(--border);border-radius:6px;padding:1px 7px;color:var(--ink);font-size:11.5px}

/* GK quiz */
.quiz{padding:16px}
.q-meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-bottom:10px}
.q-meta b{color:var(--brand)}
.q-text{font-size:17px;font-weight:500;line-height:1.4;margin-bottom:16px}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{text-align:left;background:var(--soft);border:1.5px solid var(--border);border-radius:11px;padding:13px 14px;font-size:14.5px;cursor:pointer;font-family:inherit;color:var(--ink);transition:.12s}
.opt:hover{border-color:var(--brand-light)}
.opt.correct{background:#e6f7ee;border-color:#34c77b;color:#176c41}
.opt.wrong{background:#fdeaea;border-color:#e25c5c;color:#a02525}
.opt:disabled{cursor:default}
.bar{height:6px;background:var(--border);border-radius:6px;overflow:hidden;margin-bottom:14px}
.bar>i{display:block;height:100%;background:var(--brand);transition:width .25s}

/* audience / class tags on game cards */
.audience{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;border-radius:6px;padding:2px 7px;margin-top:8px}
.audience.all{background:#e6f7ee;color:#1c7a4a}
.audience.level{background:#fff0e0;color:#b25a00}
.rec-banner{background:var(--hi);border:1px solid #d6ddf6;border-radius:10px;padding:9px 12px;font-size:12.5px;color:var(--brand);margin-bottom:8px}

/* Queens */
.qgrid{display:grid;gap:3px;background:#aab3da;padding:3px;border-radius:12px;aspect-ratio:1/1;user-select:none;touch-action:manipulation}
.qcell{display:grid;place-items:center;border-radius:4px;cursor:pointer;border:2px solid transparent;font-size:clamp(16px,6.5vw,32px);line-height:1;overflow:hidden;min-width:0;min-height:0}
.qcell .mk{font-size:.55em;color:#5a6285;opacity:.7}
.qcell.bad{border-color:#e25c5c;box-shadow:inset 0 0 0 2px rgba(226,92,92,.5)}
.qcell.win{animation:qwin .5s ease}
@keyframes qwin{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

/* Zip */
.zgrid{position:relative;display:grid;gap:4px;background:#cdd3ea;padding:4px;border-radius:12px;aspect-ratio:1/1;user-select:none;touch-action:none}
.zcell{position:relative;display:grid;place-items:center;aspect-ratio:1/1;border-radius:6px;background:#fff;font-weight:800;font-size:clamp(15px,5.5vw,26px);color:#2b2f3a}
.zcell.on{background:#e7edff}
.zcell .dot{display:grid;place-items:center;width:78%;height:78%;border-radius:50%;background:var(--hi);color:var(--brand);border:2px solid var(--brand)}
.zcell.start .dot{background:var(--brand);color:#fff}
.zcell.endpt .dot{background:#0097a7;color:#fff;border-color:#0097a7}
#zsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
#zsvg polyline{fill:none;stroke:var(--brand);stroke-opacity:.55;stroke-linecap:round;stroke-linejoin:round}

/* Periodic Table memory match */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pcard{aspect-ratio:3/4;border-radius:11px;display:grid;place-items:center;cursor:pointer;font-weight:700;text-align:center;padding:4px;
  background:linear-gradient(135deg,#66bb6a,#388e3c);color:#fff;font-size:clamp(20px,7vw,30px);transition:transform .12s,background .2s;user-select:none}
.pcard .face{opacity:0;transform:scale(.6);transition:.15s}
.pcard.flip .face{opacity:1;transform:scale(1)}
.pcard.flip{background:#fff;border:2px solid var(--brand);color:var(--brand)}
.pcard.flip .hint{display:none}
.pcard.matched{background:#e6f7ee;border:2px solid #34c77b;color:#176c41;cursor:default}
.pcard .nm{font-size:clamp(12px,3.6vw,15px);line-height:1.15}
.pcard .hint{font-size:30px;opacity:.85}

/* leaderboard / profile widgets */
.panel{margin-top:18px;padding:14px}
.panel h3{font-size:14px;margin-bottom:10px;display:flex;align-items:center;gap:7px}
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tab{flex:1;text-align:center;padding:8px 4px;border-radius:9px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border);color:var(--muted);background:var(--soft)}
.tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.lb-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px solid var(--border);font-size:13.5px}
.lb-row:last-child{border-bottom:none}
.lb-row.me{background:var(--hi);border-radius:8px}
.lb-row .avatar{background:#dde3f7;color:#454e7a}
.rank{width:26px;text-align:center;font-weight:700;color:var(--muted)}
.rank.top{color:var(--gold)}
.lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-score{font-weight:700;color:var(--brand)}
.empty{color:var(--muted);font-size:13px;text-align:center;padding:16px 0}
.stats{display:flex;gap:10px;margin-top:4px}
.stat{flex:1;text-align:center;background:var(--soft);border:1px solid var(--border);border-radius:10px;padding:10px 6px}
.stat .n{font-size:19px;font-weight:700;color:var(--brand)}
.stat .l{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}
.freeze-row{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:var(--ink);flex-wrap:wrap}
.freeze-row .btn{padding:5px 10px;font-size:12px}
.freeze-hint{font-size:11.5px;color:var(--muted)}
.badges-head{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-top:14px;margin-bottom:8px}
.badges-head span{color:var(--muted);font-weight:400}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;font-size:20px;background:var(--hi);border:1px solid var(--border)}
.badge.off{filter:grayscale(1);opacity:.32}
.badge.on{background:#fff7e6;border-color:#ffce33;box-shadow:0 2px 6px rgba(255,200,60,.25)}
.footer{margin-top:24px;color:#9aa2bb;font-size:11px;text-align:center}

/* theme/sound toggle buttons in the app bar */
.icon-btn{background:rgba(255,255,255,.16);border:none;border-radius:9px;width:34px;height:34px;cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center;padding:0}
.icon-btn:active{transform:translateY(1px)}

/* share sheet (bottom sheet) */
.share-ov{position:fixed;inset:0;background:rgba(15,20,34,.5);display:flex;align-items:flex-end;justify-content:center;z-index:1000}
.share-card{background:var(--card);color:var(--ink);width:100%;max-width:480px;border-radius:20px 20px 0 0;padding:8px 18px 22px;box-shadow:0 -8px 34px rgba(0,0,0,.28)}
.share-grab{width:40px;height:4px;border-radius:4px;background:var(--border);margin:6px auto 12px}
.share-title{font-weight:700;font-size:15px;margin-bottom:16px;text-align:center}
.share-row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 16px}
.share-ic{display:flex;flex-direction:column;align-items:center;gap:7px;text-decoration:none;color:var(--ink);font-size:11.5px;background:none;border:none;font-family:inherit;cursor:pointer;width:58px}
.share-ic .c{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;transition:transform .1s}
.share-ic:active .c{transform:scale(.92)}
.share-ic .c svg{width:24px;height:24px;fill:#fff}
.share-ic.wa .c{background:#25D366}.share-ic.tg .c{background:#229ED9}.share-ic.x .c{background:#111}
.share-ic.cp .c{background:#64748b}.share-ic.more .c{background:var(--brand-light)}.share-ic.chal .c{background:#ff7a3c}
.share-link{display:flex;align-items:center;gap:8px;background:var(--soft);border:1px solid var(--border);border-radius:11px;padding:5px 5px 5px 12px;margin-top:18px}
.share-link input{flex:1;border:none;background:none;color:var(--muted);font-family:inherit;font-size:12.5px;min-width:0;outline:none}
.share-link button{background:var(--brand);color:#fff;border:none;border-radius:8px;padding:9px 13px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}

/* challenge banner */
.chl-banner{background:linear-gradient(135deg,#fff4e0,#ffe6c7);border:1px solid #ffcf99;color:#7a4a00;border-radius:12px;padding:11px 14px;font-size:13.5px;margin:14px 0 4px;line-height:1.4}
:root[data-theme="dark"] .chl-banner{background:#33291a;border-color:#5a4424;color:#ffd9a3}

/* gem icon — Playground gaming currency = 💎 emoji (matches auth user-panel). .coin kept as alias. */
.gem,.coin{font-style:normal;display:inline-block;line-height:1;vertical-align:-0.08em}
.gem::before,.coin::before{content:"💎"}

/* game card SVG thumbnails */
.game-card .thumb svg{width:100%;height:100%;display:block}

/* game-page content (about / how-to / faqs) */
.gameinfo h3{font-size:15px;margin-bottom:8px}
.gameinfo h4{font-size:13.5px;margin:16px 0 7px;color:var(--brand)}
.gameinfo p{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:8px}
.gameinfo ul{margin:0 0 4px 18px;font-size:13px;color:var(--muted);line-height:1.7}
.gameinfo details{border-top:1px solid var(--border);padding:9px 0}
.gameinfo details summary{font-size:13.5px;font-weight:600;cursor:pointer;list-style:none}
.gameinfo details summary::-webkit-details-marker{display:none}
.gameinfo details summary::before{content:"＋ ";color:var(--brand);font-weight:700}
.gameinfo details[open] summary::before{content:"− "}
.gameinfo details p{margin-top:7px;margin-bottom:0}

/* ===== aglasem.com-style header (shared nav) ===== */
.ag-header{position:sticky;top:0;z-index:30;background:var(--brand);color:#fff;box-shadow:0 2px 10px rgba(40,53,147,.25)}
.ag-bar{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:9px 16px}
.ag-burger{display:grid;place-items:center;background:none;border:none;cursor:pointer;padding:5px;color:#fff;border-radius:8px}
.ag-burger:hover{background:rgba(255,255,255,.16)}
.ag-brand{font-family:'Pacifico',cursive;font-size:1.5rem;color:#fff;text-decoration:none;line-height:1}
.ag-header .play{font-weight:700;font-size:.6rem;letter-spacing:1px;text-transform:uppercase;background:rgba(255,255,255,.2);padding:3px 8px;border-radius:20px;margin-left:4px}
.ag-nav{display:flex;gap:2px;margin-left:16px}
.ag-nav a{color:#fff;text-decoration:none;font-size:14px;font-weight:500;padding:7px 12px;border-radius:8px;opacity:.92;white-space:nowrap}
.ag-nav a:hover{background:rgba(255,255,255,.16);opacity:1}
.ag-nav a.active{background:rgba(255,255,255,.24);opacity:1}
.ag-spacer{flex:1}
.ag-sheet{display:none;flex-direction:column;background:var(--brand-dark);padding:4px 16px 12px}
.ag-sheet a{color:#fff;text-decoration:none;padding:12px 6px;border-bottom:1px solid rgba(255,255,255,.12);font-size:15px}
.ag-sheet a:last-child{border-bottom:none}
.ag-sheet.open{display:flex}
@media(max-width:430px){.ag-header .play{display:none}.ag-brand{font-size:1.32rem}.ag-bar{gap:6px;padding:9px 12px}}

/* profile icon + dropdown (right of header, like main site) */
.ag-prof{position:relative}
.ag-avatar{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.2);border:none;cursor:pointer;color:#fff;font-size:14px;font-weight:700;display:grid;place-items:center;overflow:hidden;padding:0}
.ag-avatar:hover{background:rgba(255,255,255,.3)}
.ag-avatar img{width:100%;height:100%;object-fit:cover}
.ag-avatar svg{width:18px;height:18px;fill:#fff}
.ag-dd{position:absolute;right:0;top:46px;background:var(--card);color:var(--ink);border:1px solid var(--border);border-radius:13px;box-shadow:0 12px 34px rgba(0,0,0,.2);min-width:218px;padding:6px;display:none;z-index:50}
.ag-dd.open{display:block}
.ag-dd .u{display:flex;align-items:center;gap:9px;padding:9px 10px 11px;border-bottom:1px solid var(--border);margin-bottom:4px}
.ag-dd .u b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-dd a,.ag-dd button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:13.5px;color:var(--ink);padding:10px;border-radius:9px;cursor:pointer;text-decoration:none}
.ag-dd a:hover,.ag-dd button:hover{background:var(--soft)}
.ag-dd .sep{height:1px;background:var(--border);margin:4px 2px}
.ag-dd .danger{color:#d9534f}

/* ===== aglasem.com-style footer ===== */
.ag-footer{background:#1d2640;color:#c2cae0;margin-top:36px}
.ag-foot-top{max-width:1120px;margin:0 auto;padding:34px 16px 22px;display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr 1fr;gap:26px}
.ag-fbrand{font-family:'Pacifico',cursive;font-size:1.5rem;color:#fff;text-decoration:none}
.ag-tagline{font-size:13px;line-height:1.6;margin:10px 0 14px;color:#9aa6c4;max-width:300px}
.ag-social{display:flex;gap:10px}
.ag-social a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff;text-decoration:none}
.ag-social a:hover{background:var(--brand)}
.ag-social svg{width:16px;height:16px;fill:currentColor}
.ag-foot-h{color:#fff;font-weight:700;font-size:14px;margin-bottom:12px}
.ag-foot-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.ag-foot-list a{color:#c2cae0;text-decoration:none;font-size:13px}
.ag-foot-list a:hover{color:#fff}
.ag-foot-bottom{border-top:1px solid rgba(255,255,255,.1)}
.ag-foot-bottom .inner{max-width:1120px;margin:0 auto;padding:15px 16px;display:flex;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;font-size:12px;color:#9aa6c4;line-height:1.5}
.ag-legal{list-style:none;display:flex;gap:16px;flex-wrap:wrap}
.ag-legal a{color:#9aa6c4;text-decoration:none}.ag-legal a:hover{color:#fff}
@media(max-width:780px){.ag-foot-top{grid-template-columns:1fr 1fr;gap:22px}.ag-foot-brand{grid-column:1/-1}}

/* cover-style game cards (design B) */
.game-card.cover{position:relative;display:block;height:clamp(176px,26vw,206px);overflow:hidden;border:1px solid var(--border)}
.game-card.cover .thumb{position:absolute;inset:0;height:100%;width:100%}
.game-card.cover .thumb svg{width:100%;height:100%;display:block}
.game-card.cover .cov-ov{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 13px;background:linear-gradient(to top,rgba(16,20,38,.92),rgba(16,20,38,.5) 50%,rgba(16,20,38,0));color:#fff}
.game-card.cover h4{font-size:17px;margin:0 0 3px;color:#fff}
.game-card.cover .cov-aud{font-size:11.5px;opacity:.95;display:flex;align-items:center;gap:5px}
.game-card.cover .cov-play{position:absolute;top:10px;right:10px;background:#fff;color:var(--brand);border-radius:20px;padding:5px 14px;font-size:12px;font-weight:700}
.game-card.cover:hover{transform:translateY(-2px);transition:transform .12s}
.game-card.cover.soon{opacity:.6}

/* replay: daily (ranked) vs practice (unranked) indicator + result buttons */
.practice-tag{display:inline-block;font-size:11.5px;font-weight:700;color:#a35a00;background:#fff3e0;border:1px solid #ffe0b2;border-radius:20px;padding:3px 10px}
:root[data-theme="dark"] .practice-tag{color:#ffcc80;background:#3a2e1a;border-color:#5a4423}
.daily-tag{display:inline-block;font-size:11.5px;font-weight:700;color:var(--brand);background:var(--hi);border-radius:20px;padding:3px 10px}

/* Word Guess (wordle) */
.wboard{display:flex;flex-direction:column;gap:6px;align-items:center;margin-bottom:14px}
.wrow{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.wtile{width:clamp(44px,13.5vw,58px);height:clamp(44px,13.5vw,58px);display:grid;place-items:center;border:2px solid var(--border);border-radius:8px;font-size:clamp(20px,6vw,26px);font-weight:800;text-transform:uppercase;color:var(--ink);background:var(--card)}
.wtile.filled{border-color:var(--grid)}
.wtile.correct{background:#3aa757;border-color:#3aa757;color:#fff}
.wtile.present{background:#e3b341;border-color:#e3b341;color:#fff}
.wtile.absent{background:#7b839b;border-color:#7b839b;color:#fff}
.wstatus{text-align:center;color:var(--muted);font-size:13px;font-weight:600;margin-bottom:14px;min-height:18px}
.wkeys{display:flex;flex-direction:column;gap:6px}
.wkrow{display:flex;gap:5px;justify-content:center}
.wkey{flex:1 1 0;max-width:34px;height:50px;border:none;border-radius:7px;background:var(--hi);color:var(--ink);font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;text-transform:uppercase}
.wkey.wide{max-width:60px;font-size:12px}
.wkey.correct{background:#3aa757;color:#fff}.wkey.present{background:#e3b341;color:#fff}.wkey.absent{background:#5a6275;color:#fff}
.wkey:active{transform:translateY(1px)}

/* Connections */
.cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.ctile{min-height:62px;display:grid;place-items:center;text-align:center;padding:4px 3px;border:none;border-radius:8px;background:var(--hi);color:var(--ink);font-weight:700;font-size:clamp(10px,2.7vw,13px);cursor:pointer;font-family:inherit;line-height:1.12;text-transform:uppercase;word-break:break-word}
.ctile.sel{background:var(--brand);color:#fff}
.ctile:active{transform:translateY(1px)}
.cgroup{border-radius:10px;padding:9px 10px;margin-bottom:8px;text-align:center;color:#231a00}
.cgroup b{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.4px}
.cgroup span{font-size:11.5px;opacity:.8}
.cmsg{text-align:center;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px;min-height:18px}
.cmistakes{text-align:center;font-size:12.5px;color:var(--muted);margin-bottom:12px}
.cmistakes #cmist{letter-spacing:2px;color:var(--brand)}
.crow-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* Sudoku 6x6 */
.sgrid{display:grid;grid-template-columns:repeat(6,1fr);background:var(--card);border:2.5px solid var(--grid);border-radius:10px;overflow:hidden;aspect-ratio:1/1;width:100%}
.scell{display:grid;place-items:center;border:1px solid var(--border);font-size:clamp(18px,6.5vw,28px);font-weight:600;color:var(--brand);cursor:pointer;user-select:none}
.scell.given{color:var(--ink);font-weight:800;background:var(--soft)}
.scell.sel{background:var(--hi);box-shadow:inset 0 0 0 2px var(--brand)}
.scell.bad{color:#fff;background:#e25c5c}
.scell.br{border-right:2.5px solid var(--brand-light)}
.scell.bb{border-bottom:2.5px solid var(--brand-light)}
.spad{display:flex;gap:6px;justify-content:center;margin-top:14px;flex-wrap:wrap}
.snum{width:46px;height:50px;border:none;border-radius:9px;background:var(--hi);color:var(--brand);font-size:20px;font-weight:700;cursor:pointer;font-family:inherit}
.snum.erase{color:var(--muted)}
.snum:active{transform:translateY(1px)}
