.hero{isolation:isolate}
.hero-content>*{animation:heroRise .95s cubic-bezier(.2,.75,.25,1) both}
.verse-reference{font-size:9px;letter-spacing:2.7px;color:#d9bd82;margin:11px auto 0}
.hero-content>.eyebrow{animation-delay:.08s}.hero-content>.save-date{animation-delay:.2s}.hero-content>h1{animation-delay:.32s}.hero-content>.divider{animation:dividerDraw 1.1s .52s cubic-bezier(.22,.8,.25,1) both}.hero-content>.hero-message{animation-delay:.64s}.hero-content>.verse-reference{animation-delay:.76s}.hero-content>.invite-line{animation-delay:.88s}.hero-content>.scroll-cue{animation-delay:1.02s}
.hero h1 span{display:block;animation:nameReveal 1.2s cubic-bezier(.16,1,.3,1) both}.hero h1 span:last-child{animation-delay:.18s}
.divider span{transform-origin:center;animation:ruleGrow .9s .8s ease-out both}
.orb-one{animation:orbDrift 24s ease-in-out infinite alternate}.orb-two{animation:orbDrift 19s ease-in-out infinite alternate-reverse}
.ring-left{animation:rotateRing 32s linear infinite}.ring-right{animation:rotateRing 38s linear infinite reverse}
.hero:before,.hero:after{animation:starPulse 4.8s ease-in-out infinite}.hero:after{animation-delay:2.1s}
.detail-card{position:relative;overflow:hidden}.detail-card:after{content:"";position:absolute;inset:-100% auto -100% -35%;width:25%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,#fff7e877,transparent);transition:left .7s ease}.detail-card:hover:after{left:125%}
.map-link,.rsvp-form button{transition:transform .3s ease,color .3s ease,background-color .3s ease,box-shadow .3s ease}.map-link:hover{transform:translateY(-2px);color:#9a6d38}.rsvp-form button:hover{box-shadow:0 10px 24px #351c2730}
.quote-mark{animation:quoteFloat 5s ease-in-out infinite}
.motion-ready .reveal-on-scroll:not(.is-visible){opacity:0;transform:translateY(28px);filter:blur(3px)}
.reveal-on-scroll{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.75,.25,1),filter .9s ease}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}
.details-grid .detail-card:nth-child(2){transition-delay:.14s}
@keyframes heroRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes nameReveal{from{opacity:0;transform:translateY(34px);letter-spacing:3px;filter:blur(5px)}to{opacity:1;transform:translateY(0);letter-spacing:inherit;filter:blur(0)}}
@keyframes dividerDraw{from{opacity:0;transform:scaleX(.45)}to{opacity:1;transform:scaleX(1)}}
@keyframes ruleGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes orbDrift{from{transform:translate3d(-9px,-7px,0) scale(.98)}to{transform:translate3d(12px,10px,0) scale(1.04)}}
@keyframes starPulse{0%,100%{opacity:.38;transform:scale(.82) rotate(0)}50%{opacity:1;transform:scale(1.12) rotate(22deg)}}
@keyframes quoteFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-content>*,.hero h1 span,.divider span,.orb-one,.orb-two,.ring-left,.ring-right,.hero:before,.hero:after,.quote-mark,.scroll-cue span{animation:none!important}.motion-ready .reveal-on-scroll:not(.is-visible){opacity:1;transform:none;filter:none}.reveal-on-scroll,.detail-card,.map-link,.rsvp-form button{transition:none!important}}
