/* Interstitial only — side/bottom ads removed. Triple-defense so a stray
   AdSense iframe / no-fill auction can never leave a hidden interstitial
   partially visible as a thin strip across the game. */
#snax-interstitial {
  display: none; position: fixed; inset: 0; z-index: 150;
  background: rgba(0,0,0,0.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  align-items: center; justify-content: center; flex-direction: column; gap: 16px;
  /* NOTE: `contain: strict` was here as a belt-and-braces for the OLD thin-
     bar bug — turned out to be Google Auto Ads. `contain: size` on a fixed
     inset:0 element sometimes computes width as intrinsic (0) leaving the
     background rendering as a narrow strip; removed. */
}
#snax-interstitial:not(.active) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.snax-inter-lbl { font-size: 10px; color: var(--muted); letter-spacing: 2px; text-transform: uppercase; }
#snax-inter-slot { display: flex; align-items: center; justify-content: center; }
#snax-inter-close {
  display: none; background: var(--surface2); border: 1px solid var(--border);
  border-radius: 12px; color: var(--text); font-size: 13px; font-weight: 700;
  cursor: pointer; padding: 12px 28px; touch-action: manipulation;
}

/* Dev-mode filler shown when the interstitial container has no real ad yet
   (SnaxAds uses .snax-inter-ph inside #snax-inter-slot to distinguish "no
   fill" from "not yet requested"). */
.snax-inter-ph { min-height: 260px; width: 300px; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.025); border: 1px dashed rgba(255,255,255,0.1); border-radius: 6px; }

/* A failed/no-fill AdSense auction can render as a 1px-wide iframe. Never
   let an ad element escape its placeholder and render inside the game box. */
#snax-game-wrap ins.adsbygoogle,
#snax-game-wrap iframe { display: none !important; }

/* Same defense inside the interstitial. Google no-fill iframes can be
   1-30px wide and render as a narrow strip in the middle of the (dark)
   overlay; force them to the intended 300x250 or hide them entirely. */
#snax-interstitial ins.adsbygoogle { display: block !important; min-width: 300px !important; min-height: 250px !important; }
#snax-interstitial iframe:not([data-google-container-id]) { min-width: 300px !important; min-height: 250px !important; }
#snax-interstitial:not(.active) ins.adsbygoogle,
#snax-interstitial:not(.active) iframe { display: none !important; }

/* ── Paused game: freeze CSS animations + dim input ─────────── */
body.snax-game-paused #snax-game-wrap,
body.snax-game-paused #snax-game-wrap * {
  animation-play-state: paused !important;
  transition: none !important;
}
body.snax-game-paused #snax-game-wrap {
  pointer-events: none !important;
  user-select: none !important;
}
