/* Tabletop art direction. Real paper stock, one light source, finite motion
   in the separate stage director. No gameplay geometry or clocks here. */
:root {
  --paper-contact: 1px 2px 1px rgb(24 16 22 / 35%);
  --paper-lift: 4px 7px 4px rgb(24 16 22 / 19%);
}

/* Newly photographed-style flat card cutout. No hollow tube or simulated
   sphere. The ten engine-owned fuse segments are registered to its neck:
   source neck centre (1020,132) on the unchanged 1254px square canvas. */
html[data-zine-material-gate="true"] .bomtafel {
  --table-bomb: url("assets/nachtzine/visual-finish/bomb-flat-v2-delivery.webp");
}
html[data-zine-material-gate="true"] .poster-bomb {
  background-image: url("assets/nachtzine/visual-finish/bomb-flat-v2-delivery.webp");
}
.bomtafel .bomb-wick { translate: 29.3% -23.5%; }
.bomtafel .bomb-spark { margin-left: 29.3%; margin-top: -23.5%; }

/* An initial dialog focus is not a selected poster. Interactive keyboard
   focus remains the visible dashed cut line defined by the release sheet. */
#zineGameMenu.game-gallery:focus { outline: none; }
.game-gallery .game-poster {
  filter: drop-shadow(1px 2px 1px #0009) drop-shadow(5px 9px 4px #0006);
}
.game-gallery .game-poster::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: -9px;
  left: 40%;
  width: 22%;
  height: 19px;
  pointer-events: none;
  background: #dbcfa7 var(--stock) 120px 73px / 360px;
  background-blend-mode: multiply;
  opacity: .76;
  rotate: -4deg;
  clip-path: polygon(2% 0, 99% 4%, 96% 100%, 1% 94%, 4% 52%);
}
.game-gallery .game-poster:nth-child(even)::after { rotate: 5deg; background-position: 23px 130px; }
.game-gallery .game-poster-words .poster-name {
  display: block;
  align-items: normal;
  padding: 0;
  font-size: clamp(37px, 3.25vw, 58px);
  min-height: 1.9em;
  letter-spacing: -.025em;
}
.game-gallery .poster-name > span { display: block; }
.game-gallery .poster-art { filter: drop-shadow(1px 2px 1px #1710184d); }
.game-gallery .poster-wheel { filter: drop-shadow(2px 3px 1px #17101870); }
.game-gallery .poster-select {
  min-height: 55px;
  padding: 11px 15px 12px;
  rotate: -.8deg;
}
.game-gallery .game-poster:nth-child(even) .poster-select { rotate: .6deg; }
.game-gallery .poster-select > span { mask: var(--ink-grain-mask,none) 23px 10px / 192px 160px; }
.game-gallery .poster-select i { width: 23px; height: 16px; }
.game-gallery .poster-format { opacity: .87; }
.game-gallery .gallery-brand { filter: drop-shadow(2px 3px 1px #000a); }
.game-gallery .gallery-intro h2 { mask: var(--ink-grain-mask,none) 33px 71px / 384px 320px; }

@media (min-width: 701px) and (max-width: 1100px) {
  .gallery-games { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 30px; }
  .game-gallery .game-poster { min-height: 380px; grid-template-rows: 140px auto 1fr auto auto; }
  .game-gallery .game-poster-words .poster-name { font-size: 35px; min-height: 1.9em; }
}
@media (max-height: 760px) and (min-width: 1101px) {
  .game-gallery .game-poster-words .poster-name { font-size: 39px; min-height: 1.9em; }
}
@media (max-width: 700px) {
  .game-gallery .game-poster-words .poster-name { font-size: 31px; min-height: 1.9em; }
  .game-gallery .poster-select { min-height: 44px; padding: 9px 11px; }
  .game-gallery .game-poster::after { height: 14px; top: -6px; }
}
@media (forced-colors: active) {
  .game-gallery .game-poster::after { display: none; }
  .game-gallery .game-poster, .game-gallery .gallery-brand { filter: none; }
  .game-gallery .gallery-intro h2, .game-gallery .poster-select > span { mask: none; }
  .game-gallery .poster-select > span {
    forced-color-adjust: none;
    color: HighlightText;
    -webkit-text-fill-color: HighlightText;
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
  }
  .game-gallery .gallery-close::before,
  .game-gallery .gallery-close::after {
    forced-color-adjust: none;
    background: ButtonText;
  }
}
