/* Movement follows the reader; reduced-motion remains a full static experience. */
.scroll-hero-layer{position:relative;z-index:3;width:100%;translate:0 var(--hero-shift,0px);opacity:var(--hero-opacity,1);will-change:translate,opacity}.wedding .scroll-hero-layer{width:65%}.wedding .scroll-hero-layer .hero-copy{width:100%}.event-hero>.hero-photo{translate:0 var(--photo-shift,0px);will-change:translate}.event-hero>.orbit-system{translate:0 var(--orbit-shift,0px)}.event-hero>.disco-ball{translate:0 var(--disco-shift,0px)}.scroll-word{display:inline-block;opacity:0;translate:0 1.1em;rotate:3deg;filter:blur(5px);transition:opacity .75s,translate .95s cubic-bezier(.2,.7,.15,1),rotate .95s,filter .75s;transition-delay:var(--word-delay,0ms);will-change:translate,opacity}.scroll-title-in .scroll-word{opacity:1;translate:0 0;rotate:0deg;filter:blur(0)}.scroll-item{opacity:0;translate:0 45px;transition:opacity .8s,translate .9s cubic-bezier(.2,.7,.15,1);transition-delay:var(--item-delay,0ms)}.scroll-item-in{opacity:1;translate:0 0}.read-word{opacity:var(--read-opacity,.22);transition:opacity .18s}.wedding .image-story>img{clip-path:inset(var(--image-inset,15%) 0 var(--image-inset,15%) 0 round 200px 200px 0 0);translate:0 var(--image-drift,0px);will-change:clip-path,translate}.love-letter{translate:0 var(--letter-drift,0px);rotate:var(--letter-rotate,0deg)}.memory-desk .polaroid:nth-child(1){rotate:var(--fan-left,0deg)}.memory-desk .polaroid:nth-child(3){rotate:var(--fan-right,0deg)}.wish-lines path{stroke-dasharray:1000;stroke-dashoffset:var(--constellation-offset,1000);transition:stroke-dashoffset .1s linear}.wish-sky{translate:0 var(--sky-drift,0px)}.record-player{perspective:1000px}.record{rotate:y var(--record-tilt,0deg);translate:0 var(--record-drift,0px)}.agenda{position:relative}.agenda:after{content:'';position:absolute;left:112px;top:10px;width:2px;height:var(--agenda-fill,0%);max-height:calc(100% - 60px);background:var(--accent);pointer-events:none;opacity:.6}.birthday .agenda:after{display:none}.ribbon{translate:var(--ribbon-drift,0px) 0;width:calc(100% + 100px);margin-left:-50px}.story-rail{position:fixed;z-index:35;right:16px;top:50%;translate:0 -50%;display:flex;flex-direction:column;gap:12px;padding:14px 9px;border:1px solid #9b948333;border-radius:30px;background:#fff8eddb;backdrop-filter:blur(15px);opacity:0;pointer-events:none;transition:opacity .4s}.story-rail.shown{opacity:1;pointer-events:auto}.story-dot{width:15px;height:15px;border:0;border-radius:50%;padding:0;background:transparent;display:grid;place-items:center;position:relative}.story-dot:before{content:'';width:5px;height:5px;border-radius:50%;background:#6a6a61;opacity:.4;transition:transform .4s,opacity .4s}.story-dot.active:before{transform:scale(1.65);opacity:1;background:#8a6e46}.story-dot.active:after{content:'';position:absolute;inset:-3px;border:1px solid #8a6e4666;border-radius:50%}.story-dot .dot-label{position:absolute;right:32px;white-space:nowrap;pointer-events:none;opacity:0;translate:7px 0;transition:.3s;background:#fff8ed;color:#4d493e;padding:6px 12px;font-size:9px;letter-spacing:1px;border-radius:15px;box-shadow:0 5px 20px #0001}.story-dot:hover .dot-label,.story-dot:focus-visible .dot-label{opacity:1;translate:0 0}.xv .story-rail{background:#201732df;border-color:#ead6aa33}.xv .story-dot:before{background:#e9c990}.xv .story-dot.active:after{border-color:#e9c99066}.birthday .story-rail{background:#f8ed76ed;border:1px solid #35205e}.birthday .story-dot:before{background:#35205e}.birthday .story-dot.active:after{border-color:#35205e66}@media(max-width:700px){.wedding .scroll-hero-layer{width:100%}.scroll-item{translate:0 28px}.story-rail{right:auto;left:50%;top:auto;bottom:12px;translate:-50% 0;flex-direction:row;padding:9px 14px;gap:12px;box-shadow:0 5px 25px #0001}.story-dot{width:12px;height:12px}.story-dot .dot-label{display:none}.agenda:after{left:88px}.record{rotate:y var(--record-tilt,0deg)}}@media(prefers-reduced-motion:reduce){.scroll-hero-layer,.event-hero>.hero-photo,.event-hero>.disco-ball,.event-hero>.orbit-system,.wedding .image-story>img,.love-letter,.wish-sky,.record,.ribbon{translate:0 0!important;rotate:none!important;opacity:1!important}.scroll-word,.scroll-item{opacity:1;translate:0 0;rotate:0deg;filter:none;will-change:auto}.read-word{opacity:1!important}.wedding .image-story>img{clip-path:none}.memory-desk .polaroid{rotate:none!important}.wish-lines path{stroke-dashoffset:0}.story-rail{display:none}.agenda:after{display:none}}
.story-rail{visibility:hidden}.story-rail.shown{visibility:visible}
