/* ── Manifesto — full-screen scroll-snap party rules sequence ── */
/* Reuses the poster engine (assets/js/poster.js) blown up to fill the viewport. */

body.page-manifesto {
  background: var(--black);
}

.manifesto-scroll {
  scrollbar-width: none;
}

.manifesto-scroll::-webkit-scrollbar { display: none; }

@media (prefers-reduced-motion: no-preference) {
  .manifesto-scroll {
    height: 100dvh;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
  }
  .manifesto-slide {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

.manifesto-slide {
  min-height: 100dvh;
  display: flex;
}

.manifesto-slide .poster {
  min-height: 100dvh;
  width: 100%;
  border-radius: 0;
  padding: clamp(24px, 5vw, 72px);
}

/* Blow the rule poster's type up to full-screen scale */
.manifesto-slide .poster-wordmark--rule {
  font-size: clamp(40px, 8.5vw, 140px);
  line-height: 0.94;
}

.manifesto-slide .poster-kicker { font-size: clamp(12px, 1.4vw, 18px); }
.manifesto-slide .poster-tickets,
.manifesto-slide .poster-venue-name { font-size: clamp(12px, 1.4vw, 18px); }
.manifesto-slide .poster-starburst { width: clamp(84px, 9vw, 150px); }
.manifesto-slide .poster-script { font-size: clamp(20px, 2.2vw, 32px); }
.manifesto-slide .poster-logo span { width: clamp(22px, 2.6vw, 34px); height: clamp(22px, 2.6vw, 34px); font-size: clamp(8px, 1vw, 12px); }
.manifesto-slide .poster-footer-line { font-size: clamp(9px, 1vw, 13px); }

/* ── Progress rail ── */
.manifesto-progress {
  position: fixed;
  top: 50%;
  right: clamp(10px, 2vw, 22px);
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 20;
}

.manifesto-progress-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  transition: background 0.2s, transform 0.2s;
}

.manifesto-progress-dot--active {
  background: var(--white);
  transform: scale(1.4);
}

/* ── Artist-contract closing slide ── */
.poster--contract {
  background: var(--black);
  color: var(--white);
  align-items: stretch;
  justify-content: space-between;
}

.poster--contract .poster-starburst { fill: var(--white); }
.poster--contract .poster-footer { border-top-color: rgba(255, 255, 255, 0.2); }

.contract-split {
  display: flex;
  gap: clamp(24px, 6vw, 80px);
  margin-top: auto;
}

.contract-side {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.contract-side--label { opacity: 0.55; }

.contract-num {
  font-family: var(--font-main);
  font-weight: 600;
  font-size: clamp(60px, 14vw, 220px);
  line-height: 0.86;
  letter-spacing: -0.03em;
}

@media (max-width: 640px) {
  .contract-split { gap: 32px; }
}
