/* ============================================================
   13.2.0 — FEEDBACK PACING PASS
   Keeps every section and all invitation content, but removes dead scroll,
   makes chapter order obvious, and gives every scroll movement feedback.
   Loaded last intentionally so these pacing values win the cascade.
   ============================================================ */

/* The original opening cue is replaced by one persistent, calmer guide. */
.opening-stage .scroll-cue{display:none!important}

/* Chapter meta now reads 01 / 06, so the old generated slash is redundant. */
.scene-meta small::after{display:none!important;content:none!important}
.scene-meta{
  --chapter-progress:0;
  padding-bottom:12px;
  opacity:.88!important;
}
.scene-meta .scene-progress{
  position:absolute;
  left:0;
  bottom:0;
  width:min(190px,31vw);
  height:1px;
  overflow:hidden;
  background:rgba(181,154,114,.22);
}
.scene-meta .scene-progress b{
  display:block;
  width:100%;height:100%;
  background:currentColor;
  transform-origin:left center;
  transform:scaleX(var(--chapter-progress,0));
  will-change:transform;
}

/* Persistent guide: subtle enough for the design, visible enough to tell the
   guest that the page is responding to their movement. */
.journey-guide{
  --chapter-progress:0;
  position:absolute;
  left:50%;
  bottom:clamp(18px,3.4vh,40px);
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:9px;
  color:rgba(238,224,202,.78);
  opacity:.76;
  transition:opacity .35s ease,transform .45s var(--ease);
  will-change:opacity,transform;
}
.journey-guide>span{
  font:500 .54rem/1 var(--sans);
  letter-spacing:.24em;
  text-transform:uppercase;
  white-space:nowrap;
  text-shadow:0 1px 16px rgba(0,0,0,.16);
}
.journey-guide>i{
  position:relative;
  width:1px;height:34px;
  background:rgba(238,224,202,.23);
  overflow:hidden;
}
.journey-guide>i>b{
  display:block;width:100%;height:100%;
  background:currentColor;
  transform-origin:top center;
  transform:scaleY(var(--chapter-progress,0));
  will-change:transform;
}
.journey-guide.is-hidden{opacity:0;transform:translate(-50%,12px)}
.journey-guide.on-light{color:rgba(87,72,52,.72)}
body.locked .journey-guide{opacity:0}

/* Desktop: ~26% shorter overall invitation runway. */
@media(min-width:901px){
  .opening-sequence{height:235vh!important}
  .story-sequence{height:325vh!important}
  .day-sequence{height:245vh!important}
  .gallery-sequence{height:275vh!important}
  .rsvp-section,.rsvp-section:not(.has-answer){height:155vh!important}
  .finale-sequence{height:195vh!important}
}

/* Tablet gets the same quicker rhythm without becoming abrupt. */
@media(max-width:900px) and (min-width:681px){
  .opening-sequence{height:225svh!important}
  .story-sequence{height:300svh!important}
  .day-sequence{height:225svh!important}
  .gallery-sequence{height:250svh!important}
  .rsvp-section,.rsvp-section:not(.has-answer){height:150svh!important}
  .finale-sequence{height:165svh!important}
}

/* Phones: the strongest pacing correction. Gallery remains native horizontal
   touch scrolling, while vertical cinematic sections stop feeling "stuck". */
@media(max-width:680px){
  .opening-sequence{height:225svh!important}
  .story-sequence{height:330svh!important}
  .day-sequence{height:220svh!important}
  .gallery-sequence{height:auto!important}
  .rsvp-section,.rsvp-section:not(.has-answer){height:140svh!important}
  .finale-sequence{height:165svh!important}

  .gallery-stage{padding-top:76px!important;padding-bottom:48px!important}
  .gallery-intro{margin-bottom:22px!important}
  .mobile-gallery-exit{min-height:58svh!important;margin-top:22px!important}
  .mobile-gallery-exit>.mobile-exit-copy{padding:9vh 24px 10vh!important}

  .scene-meta{left:16px!important;bottom:16px!important;padding-bottom:10px;gap:7px!important}
  .scene-meta .scene-progress{width:132px}
  .journey-guide{bottom:18px;gap:7px}
  .journey-guide>span{font-size:.49rem;letter-spacing:.19em}
  .journey-guide>i{height:27px}
}

/* Once the RSVP has been answered, natural form/closing layout must win. */
.rsvp-section.has-answer{height:auto!important;min-height:0!important}

@media(prefers-reduced-motion:reduce){
  .journey-guide{display:none!important}
  .scene-meta .scene-progress{display:none!important}
}
