/* Use one stable viewport and scroll timeline for all cinematic layers. */
.journey{height:620svh}.journey-stage{height:100svh}
.scene{will-change:opacity,transform;filter:none;transition:none}
.journey-stage{transform:translateZ(0);backface-visibility:hidden}
.scene::before{filter:none}
.music-control{backdrop-filter:none;-webkit-backdrop-filter:none}
.scene h1{line-height:1.02}.scene h1 em{line-height:1}
.scene-two p,.scene-four p{line-height:1.12}.scene-five h2{line-height:1.06}
.scene-three strong{line-height:1}.scene-three{gap:.8rem}
.scene .eyebrow{font-family:"DM Sans",sans-serif;font-size:.875rem;line-height:1.6;margin-bottom:1.5rem}
.reveal{transform:none;transition:opacity .65s ease}.reveal.in-view{transform:none}
.closing-section{min-height:420px;display:grid;place-items:center;border-top:0;padding:5rem 2rem 7rem;background:#f5e7cb;isolation:isolate}
.closing-section::before{background:linear-gradient(to bottom,#f5e7cb,transparent 18%),url("assets/closing-art.webp") center bottom/100% 100% no-repeat;opacity:1}
.closing-copy{position:relative;text-align:center;max-width:700px;width:60%}
.closing-quote{font:italic 400 clamp(1.5rem,2.3vw,2.1rem)/1.5 "Cormorant Garamond",serif;color:#63462b;margin:0 auto 1.2rem}
.closing-rule{height:1px;width:9rem;margin:1.5rem auto;background:linear-gradient(90deg,transparent,#9b793e,transparent)}
.closing-love{font:italic 400 1.4rem/1.5 "Cormorant Garamond",serif;color:#63462b;margin:0}
.closing-section h2{font:italic 400 clamp(2.2rem,3.5vw,3.3rem)/1.2 "Cormorant Garamond",serif;color:#63462b;margin:.5rem 0}
@media(max-width:760px){.scene h1{font-size:19vw;line-height:1.02}.scene h1 em{margin:0}.scene-two p,.scene-four p{font-size:11vw;line-height:1.15}.scene-five h2{font-size:18vw}.scene-three strong{font-size:38vw}.scene{padding:5rem 1.5rem}.closing-section{min-height:470px;padding:3rem 1.5rem 12rem}.closing-section::before{background-size:100% 100%,100% auto;background-position:center,bottom center}.closing-copy{width:100%;max-width:390px}.closing-quote{font-size:1.65rem}.closing-section h2{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){.journey-image{transform:none!important}.scene{transform:none!important}.reveal{opacity:1}}

/* Feather artwork on its own bounds, not on a taller empty container. */
.topbar,.in-invitation .topbar{background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.in-invitation .topbar{color:var(--ink);text-shadow:0 1px 8px #f5e7cb,0 0 18px #f5e7cb}
.floral-invitation{margin-top:-18svh;background:linear-gradient(to bottom,transparent 0,#f5e7cb 18svh);position:relative;z-index:5}
.blessings-section{padding-top:calc(18svh + clamp(12rem,25vw,22rem));background:transparent}
.blessings-section::before{top:8svh;bottom:auto;height:auto;aspect-ratio:3/2;background:url("assets/floral-frame.webp") center/100% 100% no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 56%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 56%,transparent 100%)}
.continue-note{bottom:23svh;color:#fff;text-shadow:0 1px 8px #211b18}
.closing-section{background:transparent}
.closing-section::before{inset:auto 0 0;height:auto;aspect-ratio:3/1;background:url("assets/closing-art.webp") center/100% 100% no-repeat;opacity:.9;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 45%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 45%,#000 100%)}
@media(max-width:760px){.blessings-section{padding-top:calc(18svh + clamp(10rem,42vw,18rem))}.blessings-section::before{height:auto;background-size:100% 100%}.closing-section{min-height:430px;padding-bottom:clamp(9rem,38vw,14rem)}.closing-section::before{background-size:100% 100%;height:auto;aspect-ratio:3/1}.continue-note{right:1.2rem}}
/* Small traditional blessing icon occupies the existing space, without adding a section. */
.ganesha-mark{position:absolute;left:50%;top:calc(18svh + clamp(12rem,25vw,22rem) - 9rem);transform:translateX(-50%);display:block;width:4.75rem;height:auto;mix-blend-mode:multiply;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse,#000 58%,transparent 74%);mask-image:radial-gradient(ellipse,#000 58%,transparent 74%)}
@media(max-width:760px){.ganesha-mark{top:calc(18svh + clamp(10rem,42vw,18rem) - 8rem);width:4.5rem}}
/* Keep the arrival readable while petals bridge the two visual chapters. */
.blessings-heading.reveal{opacity:1;transform:none}
.petal-transition{position:fixed;inset:0;z-index:70;overflow:hidden;pointer-events:none;opacity:0;contain:strict}
.petal-transition img{position:absolute;top:-8%;height:auto;will-change:transform;animation:petal-fall 7s linear infinite;animation-play-state:paused;opacity:.8}
.petal-transition.is-active img{animation-play-state:running}
@keyframes petal-fall{0%{transform:translate3d(0,-8svh,0) rotate(0deg);opacity:0}12%{opacity:.8}80%{opacity:.7}100%{transform:translate3d(var(--drift),115svh,0) rotate(var(--turn));opacity:0}}
@media(prefers-reduced-motion:reduce){.petal-transition{display:none}}
/* Shared overlap: the invitation is already entering before the temple unpins. */
.floral-invitation{margin-top:-48svh;background:linear-gradient(to bottom,transparent 0,#f5e7cb 32svh)}
.blessings-section{--arrival-space:clamp(14rem,30svh,22rem);padding-top:var(--arrival-space)}
.blessings-section::before{top:0}
.ganesha-mark{top:calc(var(--arrival-space) - 8rem)}
.continue-note{bottom:1.5rem}
.journey-image{will-change:transform,opacity}
@media(max-width:760px){.blessings-section{padding-top:var(--arrival-space)}.ganesha-mark{top:calc(var(--arrival-space) - 8rem)}.continue-note{bottom:1.5rem}}
