:root{--motion-ease:cubic-bezier(.22,.8,.22,1)}
.hero{background:var(--paper)}
.motion-ready .hero>img{clip-path:inset(0 100% 0 0);opacity:.88;will-change:clip-path,opacity;transition:clip-path 1.28s var(--motion-ease),opacity .8s ease}
.motion-ready .hero.has-entered>img{clip-path:inset(0);opacity:1}
.motion-ready .hero.is-settled>img{clip-path:none;opacity:1;will-change:auto;transition:none}
.motion-ready .hero-copy>*{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform 1s var(--motion-ease)}
.motion-ready .hero.has-entered .hero-place{opacity:1;transform:none;transition-delay:.12s}
.motion-ready .hero.has-entered h1{opacity:1;transform:none;transition-delay:.28s}
.motion-ready .hero.has-entered .hero-date{opacity:1;transform:none;transition-delay:.48s}
.cinema-scene{height:calc(var(--view-height,844px)*.87)}
.cinema-stage{position:sticky;top:0;height:calc(var(--view-height,844px)*.57);display:flex;align-items:center;overflow:hidden}
.gallery .gallery-wide{position:relative;width:100%;height:auto;aspect-ratio:3/2;transform:translate3d(var(--frame-x,22px),0,0) scale(var(--frame-scale,.76));clip-path:inset(0 var(--frame-crop,8%));transform-origin:50% 50%}
.gallery-wide img{transform:none;object-position:center center!important}
.gallery-asym{padding-top:38px;padding-bottom:0}.gallery-portrait.image-reveal{clip-path:none;transform:translateY(12px);transition:opacity .9s ease,transform .9s var(--motion-ease)}
.gallery-portrait.image-reveal.is-visible{transform:none}.gallery-portrait img{transform:none;clip-path:none}
.gallery-layout .image-reveal{clip-path:none;transform:translateY(18px);transition:opacity .85s ease,transform 1s var(--motion-ease)}.gallery-layout .image-reveal.is-visible{transform:none}.gallery-layout .image-reveal img{transform:none;clip-path:none}.gallery-b.image-reveal{transition-delay:.08s}.gallery-c.image-reveal{transition-delay:.12s}
.motion-ready .venue-photo-reveal{opacity:.72;clip-path:inset(0 0 10% 0);transform:scale(1.012);transition:opacity 1s ease,clip-path 1.25s var(--motion-ease),transform 1.35s var(--motion-ease)}
.motion-ready .venue-photo-reveal.is-visible{opacity:1;clip-path:inset(0);transform:none}
.date-scene{height:auto}.date-section{position:relative;min-height:0;padding-top:126px;padding-bottom:118px;overflow:hidden}
.date-section .reveal{opacity:1;transform:none;transition:none}.date-lockup h2 span:last-child{transform:translateY(var(--date-offset,18px))}
.ending{height:auto;min-height:0;background:var(--paper);color:var(--ink);overflow:hidden}
.ending>img{position:relative;inset:auto;height:auto;aspect-ratio:3/2;object-fit:contain!important;object-position:center!important;transform:none!important;clip-path:none!important}
.motion-ready .ending>img{opacity:.35;transition:opacity 1.1s ease}.motion-ready .ending.has-entered>img{opacity:1}
.ending-shade{display:none}.ending-copy{position:relative;left:auto;right:auto;bottom:auto;padding:62px 24px 78px;text-align:center}
.ending-copy.reveal{opacity:1;transform:none;transition:none}.ending-copy p{font-size:24px}.ending-copy span{font:12px var(--sans);letter-spacing:.2em}
.progressive-step{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-12px);transition:grid-template-rows .55s var(--motion-ease),opacity .35s ease,transform .55s var(--motion-ease);overflow-anchor:none}
.progressive-step[hidden]{display:none}.progressive-step.is-open{grid-template-rows:1fr;opacity:1;transform:none}.step-content{min-height:0;overflow:hidden}
#sideField .choice-row{position:relative;isolation:isolate;gap:12px}
#sideField .choice-row:before{content:"";position:absolute;z-index:-1;inset:0 auto 0 0;width:calc((100% - 12px)/2);background:var(--wine);opacity:0;transform:translateX(0);transition:transform .42s var(--motion-ease),opacity .2s ease}
#sideField[data-selected=groom] .choice-row:before{opacity:1}
#sideField[data-selected=bride] .choice-row:before{opacity:1;transform:translateX(calc(100% + 12px))}
.choice-row button{transition:color .25s ease,border-color .25s ease,background-color .25s ease;touch-action:manipulation}
#sideField .choice-row button[aria-pressed=true]{background:transparent;color:var(--paper);border-color:transparent}
.guest-choices button[aria-pressed=true]{background:rgba(100,29,42,.08);color:var(--wine);border-color:var(--wine)}
.choice-row button:focus-visible,.decline-button:focus-visible{outline:1px solid var(--wine);outline-offset:4px}
.rsvp-receipt{position:relative;overflow-anchor:none;transition:height .6s var(--motion-ease)}
.rsvp-form{transition:opacity .35s ease,transform .5s var(--motion-ease)}
.rsvp-receipt.is-confirming .rsvp-form{opacity:0;transform:translateY(-16px);pointer-events:none}
.rsvp-receipt .rsvp-success{position:absolute;top:0;left:0;width:100%;opacity:0}
.rsvp-receipt.is-confirming .rsvp-success{opacity:1;min-height:340px;animation:receipt-in .6s var(--motion-ease) both}
@keyframes receipt-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.cinema-scene{height:auto}.cinema-stage{position:relative;height:auto}.gallery .gallery-wide{transform:none;clip-path:none}.date-lockup h2>*{transform:none!important}.motion-ready .hero>img,.motion-ready .hero.has-entered>img,.motion-ready .hero-copy>*,.motion-ready .ending>img,.motion-ready .venue-photo-reveal{opacity:1;transform:none!important;clip-path:none!important;transition:none!important}.progressive-step,.rsvp-receipt,.rsvp-form{transition:none;transform:none}.reveal,.image-reveal{opacity:1;transform:none;transition:none!important}#sideField .choice-row:before,.choice-row button{transition:none}.rsvp-success{animation:none!important}}
@supports not (position:sticky){.cinema-scene{height:auto}.cinema-stage{height:auto}.gallery .gallery-wide{transform:none;clip-path:none}}
