/* A fixed portrait cabinet, uniformly fitted to the safe visual viewport.
   Artwork uses 1000 x 1777.778 design coordinates; the DOM shell stays in
   physical CSS pixels, so overlays retain accessible viewport-sized targets. */
:root {
  --slot-safe-top: env(safe-area-inset-top, 0px);
  --slot-safe-right: env(safe-area-inset-right, 0px);
  --slot-safe-bottom: env(safe-area-inset-bottom, 0px);
  --slot-safe-left: env(safe-area-inset-left, 0px);
}
html[data-slot-orientation] body { display:block; padding:0; min-height:0; }
html[data-slot-orientation] #gameShell {
  position:fixed;
  left:var(--slot-cabinet-center-x);
  top:var(--slot-cabinet-center-y);
  width:var(--slot-cabinet-width);
  height:var(--slot-cabinet-height);
  max-width:none;
  max-height:none;
  aspect-ratio:auto;
  transform:translate(-50%, -50%);
  container-type:size;
}
#portraitCanvas, #portraitCelebrationCanvas { display:none; }
html[data-slot-orientation="portrait"] body { background:#020c0d; }
html[data-slot-orientation="portrait"] #gameShell { background:#041d20; box-shadow:none; overflow:hidden; }
html[data-slot-orientation="portrait"] #gameCanvas { visibility:hidden; pointer-events:none; }
/* Portrait uses the clean reel frame shared by the other games. */
html[data-slot-orientation="portrait"] .paylineRail { display:none; }
html[data-slot-orientation="portrait"] :is(#portraitCanvas, #portraitCelebrationCanvas) {
  display:block; position:absolute; inset:0; width:100%; height:100%; pointer-events:none;
}
html[data-slot-orientation="portrait"] #portraitCanvas { z-index:1; }
html[data-slot-orientation="portrait"] #portraitCelebrationCanvas { z-index:24; }
/* Replace the old rotation-only mobile gate once the responsive shell is live. */
html[data-slot-orientation] #orientationHint { display:none!important; }
html[data-slot-orientation="portrait"] dialog[open] { visibility:visible; }
