/* AdSense remains outside Flutter's canvas and never overlays game input. */
body {
  --critical-ad-left-space: 0px;
  --critical-ad-right-space: 0px;
}

#critical-dice-host {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--critical-ad-left-space);
  right: var(--critical-ad-right-space);
  isolation: isolate;
  z-index: 0;
}

.critical-ad-rail {
  display: none;
  position: absolute;
  top: 50%;
  width: 160px;
  height: 620px;
  margin-top: -310px;
  z-index: 1;
  color: #ada59a;
  font: 10px/20px Arial, sans-serif;
  text-align: center;
  /* No sparkle, glow, fake ad frame, scaling or click handlers on ads. */
}

#game-ad-left { left: 14px; }
#game-ad-rail { right: 14px; }
.critical-ad-rail .adsbygoogle { display: inline-block; width: 160px; height: 600px; }

@media (min-width: 1500px) and (min-height: 680px) {
  body[data-ad-surface="game"][data-ad-right="on"] {
    /* 14px outside margin + 160px ad + Google's recommended 150px game gap. */
    --critical-ad-right-space: 324px;
  }
  body[data-ad-surface="game"][data-ad-right="on"] #game-ad-rail { display: block; }
}

@media (min-width: 1680px) and (min-height: 680px) {
  body:is([data-ad-surface="lobby"], [data-ad-surface="waiting"])[data-ad-left="on"] {
    --critical-ad-left-space: 198px;
  }
  body:is([data-ad-surface="lobby"], [data-ad-surface="waiting"])[data-ad-right="on"] {
    --critical-ad-right-space: 198px;
  }
  body:is([data-ad-surface="lobby"], [data-ad-surface="waiting"])[data-ad-left="on"] #game-ad-left,
  body:is([data-ad-surface="lobby"], [data-ad-surface="waiting"])[data-ad-right="on"] #game-ad-rail {
    display: block;
  }
}

/* Keep the game's dimensions stable while a Flutter modal is open. */
body[data-ad-suspended="true"] .critical-ad-rail { visibility: hidden; pointer-events: none; }

/* Loading always covers the whole page; no ads are requested before app-ready. */
#loading { z-index: 10; }
