/* The SVG top inset supplies the gap below the reply button. */
.invitation-main{padding-bottom:0}
.invitation-main .rsvp{padding-bottom:0}
.villa-footer{border-top:0;padding:0 0 calc(96px + env(safe-area-inset-bottom,0px))}
.villa-footer p{margin:26px 26px 0}
.villa-divider{position:relative;--villa-ink:#59625b;--villa-cream:#f6f0df;--villa-terracotta:#b96845;--villa-green:#6f826d}
.villa-divider::before{content:"";position:absolute;left:0;right:0;top:83.333333%;border-top:1px solid var(--line)}
.villa-divider svg{position:relative;display:block;width:100%;max-width:600px;height:auto;margin:auto}
.villa-divider .divider{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.villa-divider .outline{fill:none;stroke:var(--villa-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.villa-divider .soft{fill:none;stroke:var(--line);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.villa-divider .villa-fill{fill:var(--villa-cream)}
.villa-divider .roof-fill{fill:var(--villa-terracotta)}
.villa-divider .green-fill{fill:var(--villa-green)}
.villa-divider .palm-left,.villa-divider .palm-right{transform-box:fill-box;transform-origin:50% 100%}
.villa-divider .shimmer{opacity:.25}
/* A complete still is the default when JavaScript or motion is unavailable. */
@media(prefers-reduced-motion:no-preference){
.villa-divider.is-ready .villa-fill{opacity:0;animation:villa-fill-in 1.2s ease 2.2s forwards}
.villa-divider.is-ready .roof-fill{opacity:0;animation:villa-fill-in .9s ease 2.5s forwards}
.villa-divider.is-ready .green-fill{opacity:0;animation:villa-fill-in .8s ease 3s forwards}
.villa-divider.is-ready .draw{stroke-dasharray:1000;stroke-dashoffset:1000;animation:villa-draw 2.8s cubic-bezier(.45,0,.2,1) .2s forwards}
.villa-divider.is-ready .draw2{stroke-dasharray:700;stroke-dashoffset:700;animation:villa-draw 2.1s cubic-bezier(.45,0,.2,1) 1.2s forwards}
.villa-divider.is-ready .detail{opacity:0;animation:villa-fill-in .8s ease 2.6s forwards}
.villa-divider.is-ready .palm-left{animation:villa-sway-left 4.8s ease-in-out 3.2s infinite}
.villa-divider.is-ready .palm-right{animation:villa-sway-right 5.3s ease-in-out 3.1s infinite}
.villa-divider.is-ready .ripple{stroke-dasharray:56 12;animation:villa-ripple 7s linear infinite}
.villa-divider.is-ready .shimmer{animation:villa-shimmer 3.2s ease-in-out infinite}
.villa-divider.is-ready:not(.is-playing) *{animation-play-state:paused}
}
@keyframes villa-draw{to{stroke-dashoffset:0}}
@keyframes villa-fill-in{to{opacity:1}}
@keyframes villa-sway-left{0%,100%{transform:rotate(0)}50%{transform:rotate(-1.8deg)}}
@keyframes villa-sway-right{0%,100%{transform:rotate(0)}50%{transform:rotate(1.5deg)}}
@keyframes villa-ripple{to{stroke-dashoffset:-136}}
@keyframes villa-shimmer{0%,100%{opacity:.18}50%{opacity:.48}}
