/* Motion follows the guest's scroll; scrolling itself stays native. */
.scroll-story-active main{overflow-x:clip}
.scroll-story-active .hero-content{translate:0 var(--hero-lift,0px);scale:var(--hero-scale,1);transform-origin:50% 25%;will-change:translate,scale}
.scroll-story-active .marigold-border{translate:0 var(--garland-drift,0px)}
.scroll-story-active .hero:after{content:'';position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(transparent,var(--paper));pointer-events:none;z-index:4}
.scroll-story-active .reveal{opacity:1;transform:none;transition:none}
.scroll-story-active [data-scroll-entry]{opacity:var(--entry-opacity,1);transform:perspective(1000px) translate3d(var(--entry-x,0px),var(--entry-y,0px),0) rotateY(var(--entry-turn,0deg)) scale(var(--entry-scale,1));transition:none;transform-origin:center;backface-visibility:hidden}
.scroll-story-active .families{perspective:1200px}
.scroll-story-active .venue-art{clip-path:inset(0 var(--venue-crop,0%) round 8px);background-size:auto calc(130% * var(--venue-scale,1));transition:none}
.event-scroll-story{position:relative}.event-stage{position:relative}.event-stepper{display:none}
.event-scroll-story.is-pinned{height:400svh;max-width:1120px;margin:55px auto 0;isolation:isolate}
.is-pinned .event-stage{position:sticky;top:24px;height:calc(100svh - 48px);display:grid;grid-template-rows:44px minmax(0,1fr);gap:16px}
.is-pinned .event-stepper{display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative;padding:0 15px}
.is-pinned .event-stepper:before,.is-pinned .event-stepper:after{content:'';position:absolute;left:30px;right:30px;top:50%;height:1px;background:#d6c092;z-index:-1}
.is-pinned .event-stepper:after{background:#8b3932;transform:scaleX(var(--timeline-fill,0));transform-origin:left}
.event-stepper button{background:var(--paper);border:1px solid #cbb17d;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;position:relative;color:#775728;transition:background .2s,color .2s}
.event-stepper button span{font:500 13px var(--sans)}.event-stepper button[aria-current=step]{background:#78372e;color:#fff5df;border-color:#78372e;box-shadow:0 0 0 5px #c9a96d22}.event-stepper i{display:none}
.is-pinned .events{position:relative;margin:0;max-width:none;width:100%;height:100%;overflow:hidden;perspective:1300px;border-radius:9px}
.scroll-story-active .is-pinned .event{position:absolute;inset:0;height:100%;width:100%;margin:0;border:1px solid #c6a775;border-radius:8px;padding:40px;align-content:center;transform-origin:50% 100%;transform:translate3d(0,var(--card-y,110%),0) rotateX(var(--card-tilt,0deg)) scale(var(--card-scale,1));opacity:var(--card-opacity,1);transition:none;box-shadow:0 10px 28px #5d39251a;backface-visibility:hidden}
.is-pinned .event .event-art{margin:auto 0}.is-pinned .event-body{min-width:0}
.is-pinned .event:first-child{--card-y:0%}
.is-pinned .event .event-art:before{border-radius:100px 100px 4px 4px}
.scroll-chapter{display:none}
.scroll-story-active .scroll-chapter{position:fixed;left:22px;bottom:24px;z-index:9;display:flex;align-items:center;gap:10px;background:#fffaf0ed;border:1px solid #cfb67f66;border-radius:3px;padding:12px 15px;color:#62472a;pointer-events:none;box-shadow:0 4px 18px #684b2310}
.scroll-chapter span{font:500 17px var(--serif)}.scroll-chapter i{width:20px;height:1px;background:#a97b3b}.scroll-chapter b{font:400 10px var(--sans);letter-spacing:.4px}
.entrance-locked .scroll-chapter{display:none}
@media(max-width:900px){.scroll-story-active .is-pinned .event{padding:30px 23px;grid-template-columns:160px 1fr;gap:25px}.is-pinned .event-body h3{font-size:36px}.is-pinned .ceremony-slots{gap:14px}.is-pinned .ceremony-slots>div+div{padding-left:14px}.is-pinned .ceremony-slots .event-time{font-size:21px}}
@media(max-width:600px){
 .event-scroll-story.is-pinned{margin-top:30px}.is-pinned .event-stage{top:14px;height:calc(100svh - 28px);grid-template-rows:38px minmax(0,1fr);gap:10px}
 .event-stepper button{width:32px;height:32px}.event-stepper button span{font-size:11px}.is-pinned .event-stepper{padding:0 9px}
 .scroll-story-active .is-pinned .event{padding:23px 19px;grid-template-columns:1fr;gap:12px;align-content:center}
 .is-pinned .event .event-art{width:92px;height:98px;margin:auto}.is-pinned .event .event-art svg{width:57px;height:65px}.is-pinned .event-number{bottom:5px;font-size:11px}
 .is-pinned .event-body h3{font-size:33px}.is-pinned .event-body .eyebrow{font-size:10px}.is-pinned .event-body>p:not(.event-time){font-size:14px}.is-pinned .event-time{font-size:24px}.is-pinned .ceremony-slots{margin:16px 0;gap:12px}.is-pinned .ceremony-slots h4{font-size:23px}.is-pinned .ceremony-slots .event-time{font-size:23px}.is-pinned .ceremony-slots>div+div{padding:12px 0 0}.is-pinned .meal{margin:13px 0 7px}
 .scroll-story-active .scroll-chapter{left:10px;bottom:74px;padding:9px 10px;gap:7px}.scroll-chapter span{font-size:15px}.scroll-chapter i{width:12px}.scroll-chapter b{font-size:8px;max-width:95px}
 .scroll-story-active .venue-art{background-size:auto calc(170% * var(--venue-scale,1))}
}
@media(prefers-reduced-motion:reduce){.scroll-chapter{display:none!important}.hero-content{translate:none!important;scale:1!important}.marigold-border{translate:none!important}}
@media print{
 .event-scroll-story.is-pinned{height:auto;margin-top:20px}.is-pinned .event-stage{position:static;height:auto;display:block}.is-pinned .events{height:auto;overflow:visible}
 .scroll-story-active .is-pinned .event{position:relative;inset:auto;height:auto;margin-bottom:20px;transform:none!important;opacity:1!important;visibility:visible!important;break-inside:avoid}
 .scroll-story-active [data-scroll-entry]{transform:none!important;opacity:1!important}.event-stepper,.scroll-chapter{display:none!important}
}

/* Hanging signboards alternate left/right with each scroll-controlled card. */
.event-scroll-story .event{padding-top:96px}
.event-scroll-story .event-number{display:none}
.event-signboard{position:absolute;top:27px;left:0;max-width:calc(100% - 28px);min-height:51px;display:flex;align-items:center;gap:14px;padding:10px 29px 10px 19px;color:#ffebbe;filter:drop-shadow(0 5px 7px #57331d25);transform:rotate(var(--sign-swing,-1deg));transform-origin:22% -25px;z-index:5}
.event-signboard:before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,#d9ac6b08 0 2px,transparent 3px 6px),linear-gradient(105deg,#743b2a,#512a23);border:1px solid #bc904b;box-shadow:inset 0 0 0 3px #dfba7333;clip-path:polygon(0 0,calc(100% - 17px) 0,100% 50%,calc(100% - 17px) 100%,0 100%)}
.sign-number{font:500 30px/1 var(--serif);min-width:23px;text-align:center;border-right:1px solid #d4ab6655;padding-right:13px}
.sign-label{font:500 17px/1.3 var(--serif);letter-spacing:.2px;max-width:220px}
.sign-chain{position:absolute;top:-29px;width:2px;height:29px;background:repeating-linear-gradient(#aa7c34 0 3px,#f0d598 4px 6px);box-shadow:1px 0 0 #63471e55}.chain-one{left:24px}.chain-two{right:38px}
.event[data-sign-side=right] .event-signboard{left:auto;right:0;padding:10px 19px 10px 29px;transform-origin:78% -25px;flex-direction:row-reverse}
.event[data-sign-side=right] .event-signboard:before{clip-path:polygon(17px 0,100% 0,100% 100%,17px 100%,0 50%)}
.event[data-sign-side=right] .sign-number{border-right:0;border-left:1px solid #d4ab6655;padding-right:0;padding-left:13px}
.event-scroll-story.is-pinned .event-stage{display:block}
.scroll-story-active .is-pinned .event{width:94%;padding:100px 40px 40px;transform:translate3d(var(--card-x,0%),var(--card-y,110%),0) rotateX(var(--card-tilt,0deg)) rotateZ(var(--card-roll,0deg)) scale(var(--card-scale,1))}
.scroll-story-active .is-pinned .event[data-sign-side=left]{left:0;right:auto}
.scroll-story-active .is-pinned .event[data-sign-side=right]{left:auto;right:0}
@media(max-width:900px){.scroll-story-active .is-pinned .event{padding:95px 25px 30px}}
@media(max-width:600px){.event-scroll-story .event{padding-top:86px}.scroll-story-active .is-pinned .event{width:100%;padding:86px 19px 23px}.event-signboard{top:23px;gap:9px;min-height:46px;padding:9px 25px 9px 14px;max-width:calc(100% - 16px)}.event[data-sign-side=right] .event-signboard{padding:9px 14px 9px 25px}.sign-number{font-size:27px;padding-right:9px;min-width:20px}.event[data-sign-side=right] .sign-number{padding-left:9px}.sign-label{font-size:16px;max-width:205px}}
@media print{.scroll-story-active .is-pinned .event{width:100%;transform:none!important}.event-signboard{transform:none!important}}

/* Opening content stays in normal flow and remains after its scroll reveal. */
.hero-scroll-story{position:relative}
.scroll-story-active .hero .hero-content{translate:none;scale:none;animation:none}
.hero-intro-slide .eyebrow{margin:12px auto 0}
.hero-details-slide .hero-line{margin:0 auto}
.hero-details-slide .hero-gathering{margin-top:13px}
.scroll-story-active .hero [data-scroll-entry]{will-change:transform,opacity}
.entrance-just-opened #hero-title>span{animation:portrait-name-arrive 1.3s ease both}
.entrance-just-opened #hero-title>span:last-child{animation-delay:.2s}
@keyframes portrait-name-arrive{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}
