/* v61 Flyer Wall push-in. Phone portrait first. No glow boxes on
   tap targets. Reduced motion: no zoom, no tilt animation. html.tab-hidden pauses. */
body.push-page { margin: 0; min-height: 100vh; min-height: 100dvh; color: #ece6f5; overflow-x: hidden; }
.push-intro { position: fixed; inset: 0; z-index: 60; overflow: hidden; background: #000; pointer-events: none; animation: push-out .7s ease-out 1.45s forwards; }
/* v92: the zoom lives on .push-zoom (Flyer Wall). */
.push-intro .push-zoom { position: absolute; inset: 0; transform-origin: var(--origin, 50% 50%); animation: push-zoom 1.2s cubic-bezier(.55,.05,.7,.4) forwards; }
.push-intro img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }
.push-intro .push-zoom > img { animation: none; }
/* Cover the plate's baked window (planet/blue sky) with a purple live-sky match so the zoom does not flash the old plate sky. */
.push-intro .intro-sky { position: absolute; pointer-events: none; z-index: 1;
  background:
    radial-gradient(ellipse 70% 55% at 35% 60%, rgba(10, 36, 90, .22), transparent 70%),
    radial-gradient(ellipse 60% 50% at 70% 35%, rgba(100, 40, 160, .28), transparent 65%),
    linear-gradient(to top, rgb(19, 7, 32), rgb(8, 3, 16));
  -webkit-mask-image: url("../assets/main-floor-window-mask-mf25d-v1.png");
          mask-image: url("../assets/main-floor-window-mask-mf25d-v1.png");
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: left top; mask-position: left top;
}
.push-intro .black { position: absolute; inset: 0; background: #000; opacity: 0; animation: push-black .5s ease-in .8s forwards; z-index: 2; }
@keyframes push-zoom { to { transform: scale(2.6); } }
@keyframes push-black { to { opacity: 1; } }
@keyframes push-out { to { opacity: 0; visibility: hidden; } }
.push-intro.done { display: none; }
.rtitle { font: 400 2.1rem/1.15 "Tilt Neon", system-ui, sans-serif; text-align: center; margin: 0 0 .3rem; animation: r-flicker 18s ease-in-out infinite; }
.rline { text-align: center; font: italic .95rem/1.5 Georgia, serif; color: #a59bb5; margin: 0 0 1.6rem; }
@keyframes r-flicker { 0%, 82%, 100% { opacity: 1; } 86% { opacity: .8; } 89% { opacity: .95; } }
.r-wrap { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; box-sizing: border-box;
  padding: calc(env(safe-area-inset-top, 0px) + 2rem) 1.1rem calc(env(safe-area-inset-bottom, 0px) + 2.4rem); }
.r-step { display: block; width: max-content; margin: 2rem auto 0; font: 400 1rem/1 system-ui, -apple-system, sans-serif; letter-spacing: .08em; color: #a59bb5;
  background: none; border: 0; padding: .8rem .4rem; min-height: 44px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; -webkit-tap-highlight-color: transparent; }
.r-empty { text-align: center; color: #a59bb5; font-style: italic; }

/* ---------- Flyer Wall ---------- */
body.flyer-page { background: #0b0809 url("../assets/textures/rock_08_diff_1k.webp") center / 520px; background-blend-mode: multiply; }
body.flyer-page::before { content: ""; position: fixed; inset: 0; background: radial-gradient(ellipse 90% 60% at 50% 20%, rgba(80, 40, 90, .25), rgba(0, 0, 0, .78) 75%); pointer-events: none; }
.flyers { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem .9rem; align-items: start; padding-top: .6rem; }
@media (min-width: 900px) { .flyers { grid-template-columns: repeat(3, 1fr); gap: 2.2rem 1.6rem; } }
.flyers .entry.flyer { position: relative; margin: 0; padding: 1.3rem .8rem .9rem; border-radius: 2px; cursor: pointer; -webkit-tap-highlight-color: transparent;
  background: #efe9dc linear-gradient(170deg, rgba(255,255,255,.5), rgba(0,0,0,.07)); color: #1d1720; border: 0;
  box-shadow: 0 10px 18px rgba(0,0,0,.65), 0 2px 3px rgba(0,0,0,.4); transform: rotate(var(--tilt, -1.5deg));
  transition: transform .35s cubic-bezier(.22,.8,.3,1), box-shadow .35s; max-height: 15rem; overflow: hidden; }
.flyers .entry.flyer:nth-child(4n+2) { --tilt: 1.8deg; } .flyers .entry.flyer:nth-child(4n+3) { --tilt: 1deg; } .flyers .entry.flyer:nth-child(4n) { --tilt: -2.2deg; }
.flyers .entry.flyer::before { /* the gold pin */
  content: ""; position: absolute; left: 50%; top: 7px; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 50%; transform: none; opacity: 1;
  background: radial-gradient(circle at 35% 30%, #fff4c2, #e6b23c 40%, #8a5e10 85%); box-shadow: 0 3px 3px rgba(0,0,0,.5); right: auto; }
.flyers .entry.flyer::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2.6rem; background: linear-gradient(transparent, #e9e2d3); pointer-events: none; }
.flyers .entry.flyer h2 { font: 400 1.15rem/1.2 "Tilt Neon", system-ui, sans-serif; color: #b3122b; margin: .2rem 0 .25rem; overflow-wrap: anywhere; }
.flyers .entry.flyer .subtitle { font-size: .82rem; color: #4a3f4f; margin: 0 0 .2rem; }
.flyers .entry.flyer .meta { font-size: .72rem; color: #5d5260; font-style: italic; margin: 0 0 .5rem; }
.flyers .entry.flyer p:not(.meta):not(.subtitle) { font: .86rem/1.45 Georgia, serif; margin: 0 0 .5rem; overflow-wrap: anywhere; }
.flyers .entry.flyer:focus-visible { outline: 2px dashed #ffcf70; outline-offset: 4px; }
.flyer-shade { position: fixed; inset: 0; z-index: 40; background: rgba(2,1,4,.72); opacity: 0; transition: opacity .3s; }
.flyer-shade.on { opacity: 1; }
.flyer-shade[hidden] { display: none; }
.flyers .entry.flyer.lifted { position: fixed; z-index: 41; left: 50%; top: 50%; width: min(86vw, 520px); max-height: 78vh; overflow-y: auto;
  transform: translate(-50%, -50%) rotate(-.6deg) scale(1); box-shadow: 0 30px 60px rgba(0,0,0,.8); padding: 2rem 1.4rem 1.2rem; cursor: default; }
.flyers .entry.flyer.lifted::after { display: none; }
.flyers .entry.flyer.lifted h2 { font-size: 1.7rem; }
.flyers .entry.flyer.lifted p:not(.meta):not(.subtitle) { font-size: 1.02rem; }
.flyer-hold { visibility: hidden; }
.flyer-close { position: fixed; z-index: 42; left: 50%; bottom: calc(env(safe-area-inset-bottom, 0px) + 1.6rem); transform: translateX(-50%);
  min-height: 44px; padding: 0 1.4rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: none; color: #f3ecfb; font: .95rem system-ui, sans-serif; cursor: pointer; }
.flyer-close[hidden] { display: none; }

.r-step:focus-visible { outline: 1px dashed #dcb6ff; outline-offset: 3px; }

html.tab-hidden .push-intro, html.tab-hidden .push-intro *, html.tab-hidden .push-zoom, html.tab-hidden .rtitle { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .push-intro { display: none; }
  .rtitle { animation: none !important; }
  .flyers .entry.flyer, .flyer-shade { transition: none !important; }
}
body.flyer-page .r-wrap { z-index: auto; }

.r-gold { color: #ffd479; text-shadow: 0 0 1px #fff3cf, 0 0 5px #ffcf5e, 0 0 14px #ffa733, 0 0 28px rgba(255, 140, 20, .5); }
/* v61c: on the wall a flyer shows only its title + one line; the lifted flyer shows everything */
.flyers .entry.flyer:not(.lifted) { max-height: none; }
.flyers .entry.flyer:not(.lifted)::after { display: none; }
.flyers .entry.flyer:not(.lifted) > :not(h2):not(.wall-line) { display: none; }
.flyers .entry.flyer:not(.lifted) > .wall-line { display: block; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: .84rem/1.4 Georgia, serif; color: #4a3f4f; }
