.gfpub-app{
  --gfpub-bg-top:#051330;--gfpub-bg-mid:#081d46;--gfpub-bg-bottom:#051330;
  --gfpub-panel:#171a20;--gfpub-card:#1d2128;--gfpub-max:1420px;--gfpub-side:16px;
  --gfpub-navy:#071b57;--gfpub-blue:#1235a6;--gfpub-red:#ff2845;--gfpub-line:rgba(255,255,255,.08);--gfpub-muted:#aeb7c6;--gfpub-green:#168a5b;
  width:100vw;margin-left:calc(50% - 50vw);background:linear-gradient(180deg,var(--gfpub-bg-top) 0%,var(--gfpub-bg-mid) 48%,var(--gfpub-bg-bottom) 100%);color:#f2f5fb;padding:22px 0 44px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.gfpub-app *{box-sizing:border-box}.gfpub-app button,.gfpub-app input,.gfpub-app select{font:inherit}
.gfpub-shell{width:min(var(--gfpub-max),calc(100% - (var(--gfpub-side) * 2)));margin:0 auto}
.gfpub-top{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--gfpub-panel);border:1px solid var(--gfpub-line);border-radius:18px;padding:15px 18px;margin-bottom:14px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.gfpub-title{display:flex;align-items:center;gap:12px;min-width:0}.gfpub-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#071b57,#1235a6);color:#fff;font-weight:1000}.gfpub-title h1{margin:0;color:#f2f5fb;font-size:1.28rem;letter-spacing:-.02em}.gfpub-title p{margin:3px 0 0;color:var(--gfpub-muted);font-size:.77rem}
.gfpub-actions{display:flex;gap:8px;align-items:center}.gfpub-pill{border:1px solid var(--gfpub-line);background:#21252d;border-radius:999px;padding:8px 11px;color:#c4ccda;font-size:.68rem;font-weight:900}
.gfpub-intro{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:16px 18px;margin-bottom:14px;background:#1b1f26;border:1px solid var(--gfpub-line);border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.gfpub-intro h2{margin:0 0 5px;color:#f2f5fb;font-size:1.08rem}.gfpub-intro p{margin:0;color:var(--gfpub-muted);font-size:.8rem;line-height:1.5}.gfpub-mini-stats{display:flex;gap:8px}.gfpub-stat{min-width:88px;text-align:center;background:#21252d;border:1px solid var(--gfpub-line);border-radius:12px;padding:8px 10px}.gfpub-stat small{display:block;font-size:.56rem;text-transform:uppercase;font-weight:900;color:#aab4c3}.gfpub-stat strong{display:block;margin-top:2px;color:#f2f5fb;font-size:1rem}
.gfpub-layout{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:14px;align-items:start}.gfpub-layout.gfpub-no-ranking{grid-template-columns:1fr}.gfpub-panel{background:var(--gfpub-panel);border:1px solid var(--gfpub-line);border-radius:18px;padding:16px;box-shadow:0 12px 30px rgba(0,0,0,.18)}.gfpub-panel-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.gfpub-panel-head h3{margin:0 0 3px;color:#f2f5fb;font-size:1.15rem}.gfpub-panel-head p{margin:0;color:var(--gfpub-muted);font-size:.74rem}
.gfpub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.gfpub-game{aspect-ratio:1/1;border:1px solid var(--gfpub-line);border-radius:18px;overflow:hidden;background:var(--gfpub-card);transition:.18s ease;position:relative;box-shadow:0 12px 28px rgba(3,18,58,.18);display:flex;flex-direction:column;min-width:0}.gfpub-game:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 18px 34px rgba(0,0,0,.28)}.gfpub-cover{height:42%;min-height:94px;padding:13px;display:flex;align-items:flex-end;justify-content:space-between;color:#fff;position:relative;overflow:hidden}.gfpub-cover:after{content:"";position:absolute;right:-25px;top:-34px;width:120px;height:120px;border:18px solid rgba(255,255,255,.12);border-radius:50%}.gfpub-cover .icon{font-size:2rem;position:relative;z-index:2}.gfpub-cover .tag{font-style:normal;font-size:.58rem;font-weight:1000;letter-spacing:.04em;background:rgba(255,255,255,.17);padding:6px 8px;border-radius:999px;position:relative;z-index:2}.gfpub-cover.flash{background:linear-gradient(135deg,#4030a8,#7654e8)}.gfpub-cover.memory{background:linear-gradient(135deg,#70219d,#b649d8)}.gfpub-cover.wordbuilder{background:linear-gradient(135deg,#0f7a72,#21b99d)}.gfpub-cover.hangman{background:linear-gradient(135deg,#294772,#5879aa)}.gfpub-cover.snake{background:linear-gradient(135deg,#14784d,#45b96c)}
.gfpub-body{padding:11px 12px 12px;display:flex;flex-direction:column;flex:1;min-height:0}.gfpub-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:7px}.gfpub-meta span{padding:4px 7px;border-radius:999px;background:#2a3040;color:#8fb1ff;font-size:.58rem;font-weight:900}.gfpub-body h4{margin:0 0 4px;color:#f2f5fb;font-size:.92rem}.gfpub-body p{margin:0;color:var(--gfpub-muted);font-size:.67rem;line-height:1.35;min-height:36px}.gfpub-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px}.gfpub-bottom small{color:#a7b0bf;font-size:.67rem}.gfpub-play{border:0;background:#0b2c79;color:#fff;border-radius:9px;padding:7px 9px;font-size:.64rem;font-weight:1000;cursor:pointer}.gfpub-play:hover{background:#1235a6}
.gfpub-rank-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:11px}.gfpub-rank-tabs button{border:1px solid var(--gfpub-line);background:#242932;color:#dbe4f5;border-radius:999px;padding:6px 9px;font-size:.62rem;font-weight:900;cursor:pointer}.gfpub-rank-tabs button.active{background:#1235a6;border-color:#1235a6;color:#fff}.gfpub-ranking{display:grid;gap:7px}.gfpub-rank{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border-radius:11px;background:#20242c}.gfpub-rank.top{background:#242a34;border:1px solid var(--gfpub-line)}.gfpub-pos{font-weight:1000;color:#8fb1ff;font-size:.76rem}.gfpub-person strong{display:block;color:#f2f5fb;font-size:.74rem}.gfpub-person small{display:block;color:#aab4c3;font-size:.6rem;margin-top:1px}.gfpub-score{font-weight:1000;color:#f2f5fb;font-size:.74rem}.gfpub-rank-note{margin-top:11px;padding:10px 11px;background:#1f232b;border:1px solid var(--gfpub-line);border-radius:11px;color:var(--gfpub-muted);font-size:.66rem;line-height:1.45}.gfpub-empty-rank{padding:15px;border:1px dashed rgba(255,255,255,.12);border-radius:11px;text-align:center;color:#aab4c3;font-size:.72rem}.gfpub-foot{margin-top:14px;text-align:center;color:#a6b0bf;font-size:.64rem}
/* game modal */
.gfpub-modal[hidden]{display:none!important}.gfpub-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:20px}.gfpub-modal-backdrop{position:absolute;inset:0;background:rgba(2,8,24,.78);backdrop-filter:blur(3px)}.gfpub-dialog{position:relative;width:min(980px,100%);max-height:92vh;overflow:auto;background:#161a22;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.48);color:#f2f5fb}.gfpub-close{position:sticky;float:right;top:0;z-index:5;width:34px;height:34px;border:0;border-radius:9px;background:#2a3039;color:#fff;cursor:pointer;font-size:20px}.gfpub-game-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:3px 42px 12px 2px}.gfpub-kicker{font-size:.58rem;letter-spacing:.1em;font-weight:900;color:#8fb1ff}.gfpub-game-head h3{margin:3px 0 0;color:#fff;font-size:1.3rem}.gfpub-live-score{min-width:88px;text-align:center;background:#222833;border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:8px}.gfpub-live-score small{display:block;font-size:.54rem;color:#9ea9bb;font-weight:900}.gfpub-live-score strong{display:block;font-size:1.1rem;color:#fff}.gfpub-game-stage{min-height:420px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#10141b;padding:16px}
/* shared controls */
.gfpub-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:13px;padding:9px 10px;border-radius:11px;background:#1d232d;color:#b9c3d4;font-size:.72rem}.gfpub-toolbar button,.gfpub-action{border:0;border-radius:9px;background:#1235a6;color:#fff;padding:8px 10px;font-weight:900;cursor:pointer}.gfpub-toolbar select{background:#252b35;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:7px 8px}.gfpub-result{margin-top:13px;padding:12px;border-radius:11px;background:#1d2d55;color:#dfe9ff;text-align:center;font-weight:900}.gfpub-game-note{text-align:center;color:#aab4c3;font-size:.72rem;margin:6px 0 12px}
/* flashcards */
.gfpub-flash-wrap{display:grid;place-items:center;min-height:320px}.gfpub-flashcard{width:min(520px,100%);min-height:240px;perspective:1000px;cursor:pointer}.gfpub-flash-inner{position:relative;width:100%;height:240px;transform-style:preserve-3d;transition:transform .45s}.gfpub-flashcard.is-flipped .gfpub-flash-inner{transform:rotateY(180deg)}.gfpub-flash-face{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;border-radius:18px;backface-visibility:hidden;background:linear-gradient(145deg,#25325a,#4e5f9a);border:1px solid rgba(255,255,255,.12);font-size:2rem;font-weight:1000}.gfpub-flash-back{transform:rotateY(180deg);background:linear-gradient(145deg,#184e47,#257d6d)}.gfpub-flash-actions{display:flex;justify-content:center;gap:8px;margin-top:12px}.gfpub-flash-actions button{border:0;border-radius:9px;padding:9px 12px;background:#242b36;color:#fff;font-weight:900;cursor:pointer}.gfpub-flash-actions button.is-main{background:#1235a6}
/* memory */
.gfpub-memory-grid{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:9px;max-width:720px;margin:0 auto}.gfpub-memory-card{aspect-ratio:1;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:linear-gradient(145deg,#26356d,#7051b5);color:#fff;font-weight:1000;cursor:pointer;overflow:hidden}.gfpub-memory-card span{display:none;padding:8px}.gfpub-memory-card::before{content:"?";font-size:1.45rem}.gfpub-memory-card.is-open,.gfpub-memory-card.is-match{background:#222a34}.gfpub-memory-card.is-open::before,.gfpub-memory-card.is-match::before{display:none}.gfpub-memory-card.is-open span,.gfpub-memory-card.is-match span{display:block}.gfpub-memory-card.is-match{outline:2px solid #3bbf79;color:#bdf2d0}
/* word builder */
.gfpub-builder{max-width:700px;margin:0 auto;text-align:center}.gfpub-builder-prompt{padding:12px;color:#d7e4ff;font-weight:900}.gfpub-builder-current{min-height:58px;margin:8px 0 14px;display:grid;place-items:center;border:1px dashed rgba(255,255,255,.16);border-radius:12px;font-size:1.4rem;font-weight:1000;letter-spacing:.08em}.gfpub-builder-letters{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.gfpub-builder-letter{width:48px;height:48px;border:0;border-radius:10px;background:#24355f;color:#fff;font-size:1.15rem;font-weight:1000;cursor:pointer}.gfpub-builder-letter:disabled{opacity:.32}.gfpub-builder-actions{display:flex;justify-content:center;gap:8px;margin-top:14px}.gfpub-builder-message{min-height:28px;margin-top:10px;color:#b9c3d4;font-weight:800}
/* hangman */
.gfpub-hangman{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:center;max-width:800px;margin:0 auto}.gfpub-hang-figure{height:260px;border-radius:14px;background:#171d26;display:grid;place-items:center}.gfpub-hang-figure svg{width:190px;height:230px}.gfpub-hang-figure line,.gfpub-hang-figure circle{stroke:#d8e0ef;stroke-width:6;fill:none;stroke-linecap:round}.gfpub-hang-hint{color:#9fb4e6;font-weight:900}.gfpub-hang-word{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.gfpub-hang-letter{min-width:28px;padding:4px 3px;border-bottom:2px solid #8d99ae;text-align:center;font-size:1.15rem;font-weight:1000}.gfpub-hang-keys{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}.gfpub-hang-key{border:1px solid rgba(255,255,255,.08);background:#242b35;color:#fff;border-radius:7px;padding:7px 3px;font-weight:900;cursor:pointer}.gfpub-hang-key:disabled{opacity:.28}.gfpub-hang-feedback{min-height:24px;color:#c1c9d7;font-size:.76rem}
/* snake */
.gfpub-snake-layout{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px}.gfpub-snake-wrap{position:relative;min-width:0}.gfpub-snake-canvas{width:100%;aspect-ratio:16/9;display:block;background:#08110e;border:1px solid rgba(255,255,255,.08);border-radius:14px}.gfpub-snake-side{background:#171d24;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px}.gfpub-snake-side strong{display:block;margin-bottom:8px;color:#fff}.gfpub-snake-side ol{margin:0;padding-left:19px;color:#b9c3d4;font-size:.7rem;max-height:290px;overflow:auto}.gfpub-snake-mission{text-align:center;margin-bottom:10px}.gfpub-snake-mission small{display:block;color:#92a2b8;font-size:.6rem;font-weight:900}.gfpub-snake-mission strong{font-size:1.15rem;color:#fff}.gfpub-snake-controls{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:10px}.gfpub-snake-controls button{border:0;border-radius:9px;background:#23332d;color:#fff;padding:9px 12px;font-weight:900;cursor:pointer}
/* save score */
.gfpub-save{margin-top:14px;padding:14px;border-radius:15px;background:#171a20;border:1px solid var(--gfpub-line)}.gfpub-save h4{margin:0 0 4px;color:#f2f5fb;font-size:.95rem}.gfpub-save p{margin:0 0 10px;color:var(--gfpub-muted);font-size:.69rem}.gfpub-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px}.gfpub-fields input{width:100%;padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#22272f;color:#f3f6fb;font-size:.7rem;outline:none}.gfpub-fields input:last-child{grid-column:1/-1}.gfpub-consent{display:flex;align-items:flex-start;gap:7px;margin:9px 0;color:#aeb7c6;font-size:.66rem}.gfpub-save>button{width:100%;padding:9px 12px;border:0;border-radius:9px;background:var(--gfpub-green);color:#fff;font-weight:1000;font-size:.72rem;cursor:pointer}.gfpub-save-status{margin:7px 0 0!important;text-align:center;min-height:18px}
@media(max-width:1100px){.gfpub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gfpub-layout{grid-template-columns:1fr}.gfpub-ranking-panel{order:2}}
@media(max-width:760px){.gfpub-shell{width:min(100% - 20px,var(--gfpub-max))}.gfpub-top,.gfpub-intro{grid-template-columns:1fr;display:grid}.gfpub-actions{justify-content:flex-start}.gfpub-mini-stats{justify-content:flex-start;flex-wrap:wrap}.gfpub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gfpub-game{aspect-ratio:1/1}.gfpub-dialog{padding:13px}.gfpub-game-stage{min-height:360px;padding:11px}.gfpub-hangman{grid-template-columns:1fr}.gfpub-hang-figure{height:190px}.gfpub-hang-figure svg{height:170px}.gfpub-hang-keys{grid-template-columns:repeat(7,1fr)}.gfpub-snake-layout{grid-template-columns:1fr}.gfpub-snake-side{display:none}}
@media(max-width:480px){.gfpub-grid{grid-template-columns:1fr 1fr;gap:9px}.gfpub-game{border-radius:14px}.gfpub-body p{font-size:.61rem}.gfpub-cover{min-height:82px}.gfpub-panel{padding:11px}.gfpub-fields{grid-template-columns:1fr}.gfpub-fields input:last-child{grid-column:auto}.gfpub-memory-grid{grid-template-columns:repeat(4,minmax(50px,1fr));gap:6px}.gfpub-hang-keys{grid-template-columns:repeat(6,1fr)}}


/* v1.0.4 — ajustes exclusivos da página Public Games.
   Não altera cards, ranking, margens laterais ou jogos. */
body.gfpub-page-active .gf-notice-bar{display:none!important;}

/* Oculta somente o título "Games" gerado pelo template do WordPress. */
body.gfpub-page-active #main-content .page-primary > article > h1{display:none!important;}

/* Remove apenas os espaços verticais brancos do template para o fundo azul
   começar junto ao cabeçalho e terminar junto ao rodapé. */
body.gfpub-page-active #main-content.page-content{padding-top:0!important;padding-bottom:0!important;}
body.gfpub-page-active #main-content .page-layout,
body.gfpub-page-active #main-content .page-primary,
body.gfpub-page-active #main-content .page-primary > article{margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;}


/* v1.1.0 — levels, TTS, card images, Word Search and logo bubble */
.gfpub-logo-mark{background:transparent!important;border-radius:0!important;width:48px!important;height:48px!important;padding:0!important;overflow:visible!important}
.gfpub-logo-mark img{display:block;width:48px;height:48px;object-fit:contain}
.gfpub-cover.has-image{background-size:cover!important;background-position:center!important}
.gfpub-cover.has-image .icon{background:rgba(6,14,34,.58);width:42px;height:42px;border-radius:12px;display:grid;place-items:center;backdrop-filter:blur(3px)}
.wordsearch{background:linear-gradient(135deg,#0c5687,#16a7b7)}
.gfpub-game-head-actions{display:flex;align-items:center;gap:8px}
.gfpub-audio-toggle{border:1px solid rgba(255,255,255,.1);background:#272d37;color:#c9d2df;border-radius:10px;padding:8px 10px;font-weight:900;cursor:pointer}
.gfpub-audio-toggle.is-on{background:#17355f;color:#fff;border-color:#2d5fa1}
.gfpub-audio-toggle:disabled{opacity:.45;cursor:not-allowed}
.gfpub-level-picker{min-height:380px;display:grid;place-items:center;align-content:center;text-align:center;padding:20px}
.gfpub-level-picker h4{margin:6px 0 4px;font-size:1.7rem;color:#fff}
.gfpub-level-picker p{margin:0 0 18px;color:#aeb7c6}
.gfpub-level-kicker{font-size:.62rem;letter-spacing:.12em;color:#8fb1ff;font-weight:1000}
.gfpub-level-buttons{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:9px;width:min(700px,100%)}
.gfpub-level-buttons button{border:1px solid rgba(255,255,255,.1);background:#1d2531;color:#fff;border-radius:13px;padding:14px 10px;cursor:pointer;transition:.16s}
.gfpub-level-buttons button:hover{transform:translateY(-2px);background:#243a66;border-color:#486ea9}
.gfpub-level-buttons strong{display:block;font-size:1.3rem}
.gfpub-level-buttons small{display:block;margin-top:3px;color:#aeb7c6;font-size:.63rem}
.gfpub-tts-note{margin-top:16px;color:#9eacc0;font-size:.7rem}
.gfpub-subbar{margin-top:-3px}
.gfpub-hear{border:1px solid rgba(255,255,255,.1);background:#273140;color:#fff;border-radius:9px;padding:7px 10px;font-weight:900;cursor:pointer;margin:6px 0}
.gfpub-flash-rating{display:flex;justify-content:center;gap:8px;margin-top:10px}
.gfpub-flash-rating button{border:1px solid rgba(255,255,255,.1);border-radius:9px;background:#222a34;color:#fff;padding:9px 11px;font-weight:900;cursor:pointer}
.gfpub-flash-rating button:last-child{background:#1f704d}
.gfpub-wordsearch-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;max-width:880px;margin:0 auto}
.gfpub-wordsearch-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;background:#0c1118;padding:9px;border-radius:13px;border:1px solid rgba(255,255,255,.08)}
.gfpub-ws-cell{aspect-ratio:1;border:1px solid rgba(255,255,255,.06);border-radius:5px;background:#202833;color:#fff;font-weight:900;font-size:.72rem;cursor:pointer;padding:0}
.gfpub-ws-cell:hover,.gfpub-ws-cell.is-start{background:#335b8d}
.gfpub-ws-cell.is-found{background:#176f50;color:#dffff0;border-color:#2ba775}
.gfpub-wordsearch-help{text-align:center;color:#98a6ba;font-size:.68rem;margin-top:8px}
.gfpub-wordsearch-list{background:#171d26;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px}
.gfpub-wordsearch-list>strong{display:block;margin-bottom:9px;color:#fff}
.gfpub-ws-word{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 8px;margin-bottom:5px;background:#202731;border-radius:8px;font-size:.69rem;font-weight:900;color:#dbe3ef}
.gfpub-ws-word button{border:0;background:#2b3a50;color:#fff;border-radius:7px;padding:4px 6px;cursor:pointer}
.gfpub-ws-word.is-found{text-decoration:line-through;opacity:.5;background:#173a2d}
@media(max-width:760px){.gfpub-level-buttons{grid-template-columns:repeat(3,1fr)}.gfpub-wordsearch-layout{grid-template-columns:1fr}.gfpub-wordsearch-list{order:-1}.gfpub-ws-cell{font-size:.6rem}.gfpub-game-head-actions{align-items:flex-end;flex-direction:column}}
@media(max-width:480px){.gfpub-level-buttons{grid-template-columns:repeat(2,1fr)}.gfpub-wordsearch-grid{gap:2px;padding:6px}.gfpub-ws-cell{border-radius:3px;font-size:.53rem}}


/* v1.1.1 — logo spacing, card fit and adjustable card photography */
.gfpub-logo-mark{
  width:54px!important;
  height:54px!important;
  flex:0 0 54px!important;
  display:grid!important;
  place-items:center!important;
  margin-right:2px!important;
}
.gfpub-logo-mark img{
  width:44px!important;
  height:44px!important;
  object-fit:contain!important;
  object-position:center!important;
  flex:none!important;
}
.gfpub-title{overflow:visible!important}
.gfpub-title>div:last-child{min-width:0}

/* Keep square cards, but make the internal spacing more balanced. */
.gfpub-cover{height:45%;min-height:0;padding:11px 12px}
.gfpub-body{padding:9px 11px 10px}
.gfpub-meta{gap:4px;margin-bottom:5px}
.gfpub-meta span{padding:3px 6px;font-size:.54rem;line-height:1.15}
.gfpub-body h4{font-size:.88rem;line-height:1.15;margin-bottom:3px}
.gfpub-body p{
  font-size:.63rem;
  line-height:1.28;
  min-height:0;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.gfpub-bottom{padding-top:6px;gap:6px}
.gfpub-bottom small{font-size:.61rem;line-height:1.15}
.gfpub-play{padding:6px 8px;font-size:.61rem}

/* Card image is independent from the overlay, so position and zoom can be adjusted safely. */
.gfpub-cover.has-image{background:var(--gfpub-card)!important}
.gfpub-card-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  transform-origin:center center;
  will-change:transform;
}
.gfpub-cover.has-image:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(2,8,24,.06),rgba(2,8,24,.68));
}
.gfpub-cover.has-image:after{z-index:1}
.gfpub-cover.has-image .icon,
.gfpub-cover.has-image .tag{z-index:2}

@media(max-width:480px){
  .gfpub-logo-mark{width:48px!important;height:48px!important;flex-basis:48px!important}
  .gfpub-logo-mark img{width:40px!important;height:40px!important}
  .gfpub-cover{height:44%;padding:9px}
  .gfpub-body{padding:8px 9px 9px}
  .gfpub-meta span{font-size:.49rem;padding:3px 5px}
  .gfpub-body h4{font-size:.78rem}
  .gfpub-body p{-webkit-line-clamp:2;font-size:.57rem}
  .gfpub-bottom small{display:none}
}


/* v1.1.2 — definitive logo anti-clipping fix */
.gfpub-top,
.gfpub-title,
.gfpub-logo-mark{
  overflow:visible!important;
}
.gfpub-logo-mark{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  padding:0!important;
  margin:0 4px 0 0!important;
}
.gfpub-logo-mark img{
  display:block!important;
  width:52px!important;
  height:52px!important;
  max-width:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  transform:none!important;
}
@media(max-width:480px){
  .gfpub-logo-mark{
    width:52px!important;
    height:52px!important;
    flex-basis:52px!important;
  }
  .gfpub-logo-mark img{
    width:46px!important;
    height:46px!important;
  }
}


/* v1.2.0 — large uncropped logo + stable game layouts */
.gfpub-top{overflow:visible!important}
.gfpub-title{overflow:visible!important;align-items:center!important;gap:14px!important}
.gfpub-logo-mark{
  width:84px!important;
  height:84px!important;
  flex:0 0 84px!important;
  min-width:84px!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
  padding:0!important;
  margin:0 2px 0 0!important;
  background:transparent!important;
  border-radius:0!important;
}
.gfpub-logo-mark img{
  display:block!important;
  width:78px!important;
  height:78px!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  overflow:visible!important;
}
.gfpub-title>div:last-child{min-width:0;padding-left:0!important}

/* Modal and game stage should remain usable on smaller screens. */
.gfpub-dialog{width:min(1040px,calc(100vw - 24px));max-height:94vh}
.gfpub-game-stage{overflow:auto;overscroll-behavior:contain}
.gfpub-toolbar button,.gfpub-action,.gfpub-hear,.gfpub-flash-actions button,.gfpub-flash-rating button{touch-action:manipulation}
.gfpub-memory-card span{word-break:break-word;line-height:1.15}
.gfpub-builder-current{word-break:break-word}
.gfpub-hang-word{flex-wrap:wrap}
.gfpub-snake-side hr{border:0;border-top:1px solid rgba(255,255,255,.08);margin:12px 0}
.gfpub-snake-side ol{max-height:180px}
.gfpub-snake-side li{margin:4px 0;word-break:break-word}
.gfpub-snake-side li b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#1f6f54;color:#fff;margin-right:4px}
.gfpub-wordsearch-grid{min-width:420px}
.gfpub-wordsearch-layout>div:first-child{overflow:auto}
.gfpub-ws-cell{touch-action:manipulation}

@media(max-width:760px){
  .gfpub-logo-mark{width:72px!important;height:72px!important;flex-basis:72px!important;min-width:72px!important}
  .gfpub-logo-mark img{width:68px!important;height:68px!important}
  .gfpub-dialog{width:calc(100vw - 12px);max-height:96vh;border-radius:14px}
  .gfpub-game-head{align-items:flex-start}
  .gfpub-game-stage{min-height:340px}
  .gfpub-memory-grid{grid-template-columns:repeat(4,minmax(58px,1fr))}
  .gfpub-flashcard,.gfpub-flash-inner{min-height:220px;height:220px}
  .gfpub-snake-controls button{min-width:52px;min-height:42px}
}
@media(max-width:480px){
  .gfpub-title{gap:10px!important}
  .gfpub-logo-mark{width:64px!important;height:64px!important;flex-basis:64px!important;min-width:64px!important}
  .gfpub-logo-mark img{width:60px!important;height:60px!important}
  .gfpub-game-head{padding-right:36px}
  .gfpub-game-head-actions{width:100%;flex-direction:row!important;justify-content:space-between}
  .gfpub-memory-grid{grid-template-columns:repeat(4,minmax(46px,1fr))}
  .gfpub-memory-card{font-size:.67rem}
  .gfpub-builder-letter{width:42px;height:42px}
  .gfpub-wordsearch-grid{min-width:390px}
}

/* v2.0.0 — Practice Games bridge */
.gfpub-practice-dialog{
  width:min(1180px,calc(100vw - 24px))!important;
  height:min(860px,94vh)!important;
  padding:44px 10px 10px!important;
  overflow:hidden!important;
  background:#11161f!important;
}
.gfpub-practice-frame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  border-radius:12px;
  background:#10141b;
}
.gfpub-practice-dialog .gfpub-close{z-index:5}
.gfpub-practice-dialog .gfpub-save{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  width:min(620px,calc(100% - 36px));
  z-index:6;
  box-shadow:0 18px 50px rgba(0,0,0,.34);
  background:#171d27;
}
.gfpub-practice-dialog .gfpub-save[hidden]{display:none!important}
.gfpub-game .gfpub-cover.has-image .tag{position:relative;z-index:3}
.gfpub-game .gfpub-cover.has-image .gfpub-card-photo{z-index:0}
.gfpub-game .gfpub-cover.has-image:before{z-index:1}
.gfpub-game .gfpub-cover.has-image:after{z-index:2}
.gfpub-game .gfpub-cover.has-image .tag{align-self:flex-end;margin-left:auto}
.gfpub-game h4{overflow-wrap:anywhere}
html.gfpub-modal-open,html.gfpub-modal-open body{overflow:hidden!important}
@media(max-width:760px){
  .gfpub-practice-dialog{width:calc(100vw - 8px)!important;height:96vh!important;padding:42px 4px 4px!important}
  .gfpub-practice-dialog .gfpub-save{bottom:8px;width:calc(100% - 16px)}
}

/* v2.1.0 — configurable header image + advertising slots */
.gfpub-logo-mark{
  width:var(--gfpub-header-image,84px)!important;
  height:var(--gfpub-header-image,84px)!important;
  flex:0 0 var(--gfpub-header-image,84px)!important;
  min-width:var(--gfpub-header-image,84px)!important;
  padding:0!important;
  overflow:visible!important;
  display:grid!important;
  place-items:center!important;
}
.gfpub-logo-mark img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  display:block!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
}
.gfpub-ad{
  width:100%;
  margin:14px 0;
  border-radius:14px;
  overflow:hidden;
  text-align:center;
  line-height:0;
}
.gfpub-ad img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  margin:0 auto;
}
.gfpub-ad iframe{max-width:100%}
.gfpub-ad>*{max-width:100%}
.gfpub-ad-grid-break{grid-column:1/-1;min-width:0}
.gfpub-ad-grid-break .gfpub-ad{margin:0 0 2px}
.gfpub-ranking-panel>.gfpub-ad:first-child{margin-top:0}
.gfpub-ranking-panel>.gfpub-ad:last-child{margin-bottom:0}
@media(max-width:760px){
  .gfpub-logo-mark{
    width:min(var(--gfpub-header-image,84px),72px)!important;
    height:min(var(--gfpub-header-image,84px),72px)!important;
    flex-basis:min(var(--gfpub-header-image,84px),72px)!important;
    min-width:min(var(--gfpub-header-image,84px),72px)!important;
  }
  .gfpub-ad img{max-width:100%;}
}


/* v2.1.2 — consistent responsive layout, readable cards, and useful modal loading UI. */
.gfpub-app,.gfpub-shell,.gfpub-layout,.gfpub-layout > *,
.gfpub-panel,.gfpub-top,.gfpub-intro,.gfpub-title,
.gfpub-title > div:last-child,.gfpub-panel-head,.gfpub-panel-head > *,
.gfpub-grid,.gfpub-rank-tabs,.gfpub-ranking-panel{min-width:0}
.gfpub-app{overflow-x:clip}
.gfpub-title{flex:1 1 280px}
.gfpub-top{flex-wrap:wrap}
.gfpub-actions{flex-wrap:wrap;min-width:0}
.gfpub-title h1,.gfpub-title p,.gfpub-intro h2,.gfpub-intro p,
.gfpub-panel-head h3,.gfpub-panel-head p{white-space:normal;overflow-wrap:anywhere;word-break:normal;max-width:100%}
.gfpub-game .gfpub-body{min-width:0}
.gfpub-game .gfpub-body h4{white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:normal;line-height:1.28;max-width:100%;display:block}
.gfpub-game .gfpub-body p{overflow-wrap:anywhere;word-break:normal}
.gfpub-rank{grid-template-columns:34px minmax(0,1fr) auto;min-width:0}
.gfpub-person{min-width:0}
.gfpub-person strong,.gfpub-person small{white-space:normal;overflow-wrap:anywhere}
.gfpub-rank-tabs button{max-width:100%;overflow-wrap:anywhere;white-space:normal}
.gfpub-practice-dialog{
  display:flex!important;flex-direction:column!important;
  width:min(1180px,calc(100vw - 24px))!important;
  height:min(860px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  padding:0!important;overflow:hidden!important;
}
.gfpub-modal-bar{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 10px 8px 18px;background:#182130;border-bottom:1px solid rgba(255,255,255,.12)}
.gfpub-modal-bar-copy{min-width:0;display:grid;gap:3px}
.gfpub-modal-eyebrow{font-size:10px;font-weight:900;letter-spacing:.08em;color:#8eaeec}
.gfpub-modal-bar-copy strong{font-size:clamp(.86rem,2vw,1rem);font-weight:850;line-height:1.3;color:#fff;overflow-wrap:anywhere}
.gfpub-practice-dialog .gfpub-close{position:static!important;float:none!important;flex:0 0 38px;width:38px;height:38px;font-size:23px;margin:0!important}
.gfpub-frame-holder{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:#f3f6fb}
.gfpub-practice-frame{display:block;width:100%;height:100%;border:0;border-radius:0;background:#f3f6fb;visibility:hidden}
.gfpub-practice-frame.is-ready{visibility:visible}
.gfpub-frame-loader[hidden]{display:none!important}
.gfpub-frame-loader{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;background:#f3f6fb;color:#203358;padding:26px 18px}
.gfpub-frame-loader strong{font-size:clamp(1.02rem,3vw,1.3rem)}
.gfpub-frame-loader p{color:#64758f;margin:0;max-width:440px;line-height:1.5;font-size:.88rem}
.gfpub-loader-spinner{width:42px;height:42px;display:block;border-radius:50%;border:4px solid #dbe5f7;border-top-color:#2356d8;animation:gfpub-spin .85s linear infinite}
@keyframes gfpub-spin{to{transform:rotate(360deg)}}
.gfpub-frame-loader button{border:0;border-radius:9px;background:#1235a6;color:#fff;padding:10px 15px;cursor:pointer;font-weight:800}
.gfpub-frame-loader.has-issue{background:#f7f9ff}
.gfpub-frame-loader.has-issue .gfpub-loader-spinner{animation:none;border-color:#e7b365;border-top-color:#b05c15}
.gfpub-practice-dialog .gfpub-save{max-height:min(75dvh,620px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:1100px){
  .gfpub-layout{grid-template-columns:minmax(0,1fr)}
  .gfpub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gfpub-game{aspect-ratio:auto;min-height:270px}
  .gfpub-game .gfpub-cover{flex:0 0 43%;height:auto}
}
@media(max-width:900px){
  .gfpub-intro{grid-template-columns:1fr}
  .gfpub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gfpub-mini-stats{justify-content:flex-start;flex-wrap:wrap}
  .gfpub-game{min-height:300px}
  .gfpub-game .gfpub-cover{flex-basis:42%}
  .gfpub-game .gfpub-body p{-webkit-line-clamp:3}
}
@media(max-width:620px){
  .gfpub-app{--gfpub-side:10px;max-width:100vw}
  .gfpub-shell{width:calc(100% - 20px)!important;max-width:100%}
  .gfpub-top,.gfpub-intro{padding:12px!important;gap:10px!important;border-radius:14px}
  .gfpub-title{align-items:center!important;gap:10px!important;flex:1 1 100%}
  .gfpub-title h1{font-size:1.15rem;line-height:1.22}
  .gfpub-title p{font-size:.75rem;line-height:1.4}
  .gfpub-logo-mark{width:60px!important;height:60px!important;flex-basis:60px!important;min-width:60px!important}
  .gfpub-logo-mark img{width:100%!important;height:100%!important}
  .gfpub-actions{gap:5px}
  .gfpub-pill{font-size:.65rem;padding:6px 9px}
  .gfpub-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:7px}
  .gfpub-stat{min-width:0;padding:7px 4px}
  .gfpub-stat small{font-size:.55rem}
  .gfpub-stat strong{font-size:.9rem;overflow-wrap:anywhere}
  .gfpub-layout{gap:10px}
  .gfpub-panel{padding:11px}
  .gfpub-grid{grid-template-columns:1fr;gap:10px}
  .gfpub-game{display:grid;grid-template-columns:minmax(0,41%) minmax(0,1fr);aspect-ratio:auto;min-height:178px;align-items:stretch}
  .gfpub-game .gfpub-cover{height:100%!important;min-height:176px!important;padding:8px}
  .gfpub-cover .tag{white-space:normal;overflow-wrap:anywhere;line-height:1.15;font-size:.56rem;text-align:center}
  .gfpub-game .gfpub-body{padding:11px!important;min-height:176px}
  .gfpub-game .gfpub-body h4{font-size:clamp(.86rem,3.7vw,1rem);line-height:1.28;margin-bottom:6px}
  .gfpub-game .gfpub-body p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:.68rem;line-height:1.35}
  .gfpub-game .gfpub-meta span{font-size:.58rem;padding:3px 6px}
  .gfpub-game .gfpub-bottom small{display:none}
  .gfpub-game .gfpub-play{font-size:.72rem;padding:8px 12px}
  .gfpub-ad img{height:auto;max-width:100%}
  .gfpub-modal{padding:5px!important}
  .gfpub-practice-dialog{width:calc(100vw - 10px)!important;height:calc(100dvh - 10px)!important;max-height:calc(100dvh - 10px)!important;border-radius:12px!important}
  .gfpub-modal-bar{padding:7px 8px 7px 12px;min-height:52px}
  .gfpub-practice-dialog .gfpub-save{bottom:8px;width:calc(100% - 16px)}
}
@media(max-width:375px){
  .gfpub-shell{width:calc(100% - 14px)!important}
  .gfpub-grid{gap:8px}
  .gfpub-game{grid-template-columns:minmax(0,37%) minmax(0,1fr)}
  .gfpub-game .gfpub-body{padding:9px!important}
  .gfpub-game .gfpub-body p{-webkit-line-clamp:2}
  .gfpub-title h1{font-size:1.07rem}
  .gfpub-rank{grid-template-columns:27px minmax(0,1fr) auto;gap:5px;padding:8px 7px}
}
@media(prefers-reduced-motion:reduce){.gfpub-loader-spinner{animation:none}}


/* v2.1.4 — Mobile/tablet card artwork: show the *whole* source image.
 * Keep the existing image-left / details-right mobile layout, and leave
 * editor-selected fit, position and zoom untouched on desktop. */
@media (max-width:900px){
  .gfpub-game .gfpub-cover.has-image{background:#122044!important}
  .gfpub-game .gfpub-cover.has-image .gfpub-card-photo{
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
    will-change:auto!important;
  }
  .gfpub-game:hover .gfpub-cover.has-image .gfpub-card-photo{transform:none!important}
  .gfpub-game .gfpub-cover.has-image:before{background:none!important}
  .gfpub-game .gfpub-cover.has-image:after{display:none!important}
}
