/* Big games inside the VSH page (2026-10-21). Ads stay hidden until html.ads-on; gaps keep ads away from the play area. */
.gf-page h1{margin-bottom:.3rem}
.gf-frame{position:relative;width:100%;aspect-ratio:16/9;max-height:calc(100svh - 150px);background:#07080c;border-radius:14px;overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.25)}
.gf-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.gf-tip{margin:.6rem 0 0}
@media (max-width:760px){.gf-frame{aspect-ratio:auto;height:calc(100svh - 140px);min-height:480px;border-radius:10px}}
.gf-related{margin-top:2rem}
.gf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.gf-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--card)}
.gf-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.gf-card b{padding:0 10px}.gf-card span{padding:0 10px 10px;color:var(--muted);font-size:.85rem}
@media (max-width:480px){.gf-grid{grid-template-columns:1fr 1fr;gap:10px}}
/* Policy gaps: >=150px between any ad and the game frame */
html.ads-on .gf-ad-top{margin-bottom:150px}
html.ads-on .gf-ad-below,html.ads-on .vsh-play-wrap + .vsh-ad-below{margin-top:150px}
html.ads-on .gf-wrap{column-gap:48px}
html.ads-on .vsh-play-wrap > .vsh-ad-below{margin-top:150px}
