/* One ticket per game, one paper stage. Artwork illustrates; it is never UI. */
.gallery-programme { display: contents; }
.gallery-feature { display: none; }
@media (min-width:1000px) and (min-height:561px) {
  #zineGameMenu.game-gallery { background-size:1100px; }
  #zineGameMenu .gallery-inner { width:min(100%,1800px); min-height:100svh; height:100svh; padding:clamp(22px,3.3vh,38px) clamp(36px,4.6vw,88px) 62px; grid-template-rows:clamp(115px,17vh,175px) minmax(0,1fr) 36px; gap:clamp(18px,2.8vh,30px); }
  #zineGameMenu .gallery-heading { gap:clamp(24px,3vw,56px); }
  #zineGameMenu .gallery-brand { width:clamp(220px,18vw,290px); }
  #zineGameMenu .gallery-intro h2 { font-size:clamp(42px,4.7vw,78px); }
  #zineGameMenu .gallery-intro p { font-size:clamp(21px,2vw,30px); }
  #zineGameMenu .gallery-programme { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(34px,5vw,90px); align-items:center; min-height:0; }
  #zineGameMenu .gallery-games { grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(4,minmax(0,1fr)); gap:clamp(17px,2.5vh,26px); height:100%; max-height:590px; padding:7px 0; counter-reset:game-ticket; }
  #zineGameMenu .game-poster { --poster-angle:-1deg; min-height:0; height:100%; padding:14px 23px 13px 80px; grid-template-columns:1fr auto; grid-template-rows:1fr auto; align-content:center; align-items:center; gap:2px 18px; transform:rotate(var(--poster-angle)); transition:translate 140ms steps(2,end); filter:drop-shadow(1px 2px 1px #0008) drop-shadow(5px 9px 3px #0005); }
  #zineGameMenu .game-poster:nth-child(2) { --poster-angle:.7deg; }
  #zineGameMenu .game-poster:nth-child(3) { --poster-angle:-.4deg; }
  #zineGameMenu .game-poster:nth-child(4) { --poster-angle:.9deg; }
  #zineGameMenu .game-poster::before { background-size:510px; clip-path:polygon(0 5%,22% 2%,47% 3%,73% 0,99% 4%,100% 34%,99% 68%,100% 95%,74% 100%,39% 98%,1% 100%,0 59%); }
  #zineGameMenu .game-poster::after { counter-increment:game-ticket; content:'0' counter(game-ticket); position:absolute; top:50%; left:20px; width:43px; height:auto; rotate:-5deg; transform:translateY(-50%); background:none; border:0; opacity:.58; box-shadow:none; clip-path:none; color:var(--release-paper); font:900 clamp(30px,3.2vw,48px)/1 var(--print-face); mask:var(--ink-grain-mask,none) 0 0 / 192px 160px; }
  #zineGameMenu .game-poster .poster-art { display:none; }
  #zineGameMenu .game-poster .poster-name { display:block; min-height:0; padding:0; font-size:clamp(31px,3.3vw,51px); line-height:.93; letter-spacing:-.025em; grid-column:1; grid-row:1; mask-size:384px 320px; }
  #zineGameMenu .poster-name > span { display:inline; }
  #zineGameMenu .poster-name br { display:none; }
  #zineGameMenu .game-poster-royale .poster-name { max-width:10ch; font-size:clamp(30px,3vw,48px); }
  #zineGameMenu .game-poster-story .poster-name,#zineGameMenu .game-poster-case .poster-name { white-space:nowrap; }
  #zineGameMenu .poster-description { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  #zineGameMenu .poster-format { grid-column:1; grid-row:2; padding:0; font-size:clamp(16px,1.4vw,21px); opacity:.88; }
  #zineGameMenu .poster-select { grid-column:2; grid-row:1 / 3; background:none; clip-path:none; padding:0; min-height:44px; width:34px; rotate:0deg; box-shadow:none; color:var(--poster-accent); }
  #zineGameMenu .poster-select > span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  #zineGameMenu .poster-select i { width:31px; height:22px; }
  #zineGameMenu .game-poster:not(:disabled):is(:hover,:focus-visible) { translate:10px 0; }
  #zineGameMenu .game-poster:focus-visible { outline-offset:5px; }
  #zineGameMenu .game-poster[data-previewed='true'] .poster-select i { color:var(--release-paper); }
  #zineGameMenu .game-poster[data-previewed='true']::after { opacity:1; }
  #zineGameMenu .game-poster:disabled .poster-format { visibility:hidden; }
  #zineGameMenu .game-poster:disabled .poster-select { grid-column:1 / 3; grid-row:2; width:auto; min-height:0; font-size:18px; color:var(--release-paper); }
  #zineGameMenu .game-poster:disabled .poster-select > span { position:static; width:auto; height:auto; clip-path:none; text-transform:none; }
  #zineGameMenu .game-poster:disabled .poster-select i { display:none; }
  #zineGameMenu .gallery-feature { --feature-color:#7952b3; display:block; position:relative; isolation:isolate; width:auto; max-width:100%; aspect-ratio:.89; height:100%; max-height:650px; min-height:0; justify-self:center; transform:rotate(1.5deg); pointer-events:none; filter:drop-shadow(2px 4px 1px #0009) drop-shadow(12px 18px 9px #0006); }
  #zineGameMenu[data-gallery-scene='hot-potato'] .gallery-feature { --feature-color:#df3f76; }
  #zineGameMenu[data-gallery-scene='story-reactor'] .gallery-feature { --feature-color:#187e86; }
  #zineGameMenu[data-gallery-scene='case-closed'] .gallery-feature { --feature-color:#3058c4; }
  .gallery-feature-stock { position:absolute; inset:0; background:var(--release-paper) var(--stock) 50px 20px / 650px; clip-path:polygon(0 1%,31% 0,60% 1%,99% 0,100% 44%,99% 72%,100% 99%,49% 100%,0 99%,1% 39%); }
  .gallery-feature-art { position:absolute; inset:10px 10px 108px; background:var(--feature-color) var(--stock) center / 700px; overflow:hidden; }
  .gallery-feature-art[hidden] { display:none!important; }
  .gallery-feature-art > img { display:block; width:100%; height:100%; object-fit:contain; opacity:0; position:relative; }
  .gallery-feature-art[data-image-ready='true'] > img { opacity:1; }
  .gallery-feature-art[data-image-ready='true'] .feature-fallback { display:none; }
  .gallery-caption { position:absolute; left:24px; right:24px; bottom:18px; height:72px; display:grid; place-items:center; color:var(--release-ink); font:900 clamp(25px,2.2vw,34px)/1.08 var(--print-face); text-align:center; text-wrap:balance; }
  .gallery-caption span { mask:var(--ink-grain-mask,none) 38px 29px / 384px 320px; }
  .feature-fallback { position:absolute; inset:8%; }
  .feature-paper { position:absolute; inset:15% 6% 5% 20%; background:var(--release-paper) var(--stock) center / 600px; rotate:7deg; }
  .feature-wheel { position:absolute; width:65%; aspect-ratio:1; left:-7%; bottom:9%; background:url('assets/nachtzine/release/wheel-v1.webp') center / contain no-repeat; }
  .feature-bomb { position:absolute; inset:8% 5% 0; background:url('assets/nachtzine/visual-finish/bomb-flat-v2-delivery.webp') center / contain no-repeat; }
  .feature-spark { position:absolute; width:35%; aspect-ratio:1; right:0; top:0; background:url('assets/nachtzine/release/spark-a-v1.webp') center / contain no-repeat; }
  .feature-fallback-story b { position:absolute; top:12%; right:22%; font:900 260px/.95 var(--print-face); color:#e46133; rotate:8deg; }
  .feature-folder { position:absolute; inset:8% 2%; background:url('assets/nachtzine/release/folder-cover.webp') center / contain no-repeat; rotate:-9deg; }
  #zineGameMenu .gallery-footer { padding:0; align-items:center; }
  #zineGameMenu .gallery-footer p { font-size:clamp(22px,2vw,30px); }
  #zineGameMenu .gallery-edition { font-size:18px; }
}
@media (min-width:1000px) and (max-height:780px) and (min-height:561px) {
  #zineGameMenu .gallery-inner { grid-template-rows:105px minmax(0,1fr) 28px; gap:17px; padding-top:20px; padding-bottom:54px; }
  #zineGameMenu .gallery-brand { width:220px; }
  #zineGameMenu .gallery-intro h2 { font-size:49px; }
  #zineGameMenu .gallery-games { gap:14px; }
  #zineGameMenu .game-poster { padding-block:8px; padding-left:68px; }
  #zineGameMenu .game-poster .poster-name { font-size:33px; }
  #zineGameMenu .game-poster-royale .poster-name { font-size:30px; }
  #zineGameMenu .game-poster::after { left:17px; font-size:34px; }
  #zineGameMenu .poster-format { font-size:16px; }
  .gallery-feature-art { bottom:88px; }
  .gallery-caption { height:58px; font-size:27px; bottom:14px; }
}
@media (prefers-reduced-motion:reduce) { #zineGameMenu .game-poster:not(:disabled):is(:hover,:focus-visible) { translate:none; } }
@media (forced-colors:active) {
  #zineGameMenu .gallery-feature { display:none; }
  #zineGameMenu .gallery-programme { grid-template-columns:1fr; }
  #zineGameMenu .game-poster { color:ButtonText; background:ButtonFace; filter:none; transform:none; }
  #zineGameMenu .game-poster::after { color:ButtonText; mask:none; }
  #zineGameMenu .poster-select { color:ButtonText; }
  #zineGameMenu .poster-description { position:static; width:auto; height:auto; clip-path:none; grid-column:1; }
  #zineGameMenu .game-poster { grid-template-rows:auto auto auto; }
}
