.game-ending {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; inset: 0; z-index: 120; background: transparent;
  overflow: hidden; pointer-events: auto;
}
.game-ending[hidden], .game-ending-page[hidden] { display: none; }
.game-ending-page { position: absolute; top: 0; right: 0; bottom: 0; left: 0; inset: 0; }
.game-ending-background {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; inset: 0; width: 100%; height: 100%;
  object-fit: contain; background: #000; pointer-events: none; image-rendering: auto;
}
.game-ending-background[hidden] { display: none; }
.timeout-death-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; inset: 0; z-index: 110; background: #000; }
.timeout-death-overlay[hidden] { display: none; }
.timeout-death-overlay video { display: block; width: 100%; height: 100%; object-fit: contain; opacity: 0; image-rendering: auto; }
.game-ending-page > :is(img, canvas[data-raster-art]), .game-ending-page > canvas {
  display: block; width: 100%; height: 100%; object-fit: fill;
  image-rendering: auto; user-select: none; pointer-events: none;
}
.ending-button {
  position: absolute; left: 27.2%; width: 45.6%; height: 4.6%;
  padding: 0; border: 0; border-radius: 1.8vw; border-radius: 1.8cqw; background: transparent;
  cursor: pointer; touch-action: manipulation;
}
.ending-retry { top: 54.2%; }
.ending-story { top: 62.8%; }
.ending-story-retry { top: 70.8%; }
.ending-over-invite { top: 71.4%; }
.ending-story-invite { top: 79.4%; }
/* Preserve appearance if a future host temporarily disables this action. */
.ending-invite:disabled, .ending-invite:disabled:hover { opacity: 1; cursor: default; box-shadow: none; }
.ending-invite > :is(img, canvas[data-raster-art]) { display: block; width: 100%; height: 100%; pointer-events: none; }
.ending-button:focus-visible { outline: 2px solid white; outline-offset: 4px; }
.ending-button:hover { box-shadow: 0 0 14px #21f70066; }
.game-ending-page > :is(img, canvas[data-raster-art])[hidden] { display: none; }
.game-viewport[data-ending="true"] > :not(#gameEnding):not(#orangeDeathOverlay):not(#hookahDeathOverlay):not(#elderDeathOverlay):not(#neonDeathOverlay) { visibility: hidden; }
/* Retry has no title/START, selection, warning or opening-video interstitial. */
.is-quick-retry .loading-frame { background: #000; }
.is-quick-retry .loading-frame > :not(.loading-error) { visibility: hidden !important; }
.game-ending-page.is-revealing { animation: ending-rise .65s ease-out both; }
@keyframes ending-rise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .game-ending-page.is-revealing { animation-duration: .01s; }
}
