@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .6s ease-out forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-down{animation:fadeInDown .6s ease-out forwards}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-left{animation:fadeInLeft .6s ease-out forwards}@keyframes fadeInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-right{animation:fadeInRight .6s ease-out forwards}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.animate-zoom-in{animation:zoomIn .5s ease-out forwards}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}.animate-bounce-in{animation:bounceIn .6s ease-out forwards}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.animate-typewriter{overflow:hidden;white-space:nowrap;border-right:3px solid;animation:typewriter 3s steps(40) forwards,blink .75s step-end infinite}@keyframes textReveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.animate-text-reveal{animation:textReveal 1s ease-out forwards}@keyframes letterSpacing{0%{letter-spacing:.5em;opacity:0}to{letter-spacing:normal;opacity:1}}.animate-letter-spacing{animation:letterSpacing .8s ease-out forwards}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.animate-pulse-soft{animation:pulse 2s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes glow{0%,to{box-shadow:0 0 5px currentColor,0 0 10px currentColor}50%{box-shadow:0 0 20px currentColor,0 0 30px currentColor}}.animate-glow{animation:glow 2s ease-in-out infinite}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient{background-size:200% 200%;animation:gradientShift 5s ease infinite}.parallax-container{perspective:1000px;overflow:hidden}.parallax-slow{transform:translateZ(-100px) scale(1.1)}.parallax-medium{transform:translateZ(-50px) scale(1.05)}.parallax-fast{transform:translateZ(0)}@keyframes confettiFall{0%{transform:translateY(-100vh) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.confetti-particle{position:fixed;width:10px;height:10px;animation:confettiFall linear forwards;pointer-events:none}@keyframes heartFloat{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-100px) scale(.5);opacity:0}}.heart-particle{animation:heartFloat 2s ease-out forwards}.scroll-animate{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-animate.is-visible{opacity:1;transform:translateY(0)}.scroll-animate-left{opacity:0;transform:translateX(-30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-animate-left.is-visible{opacity:1;transform:translateX(0)}.scroll-animate-right{opacity:0;transform:translateX(30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-animate-right.is-visible{opacity:1;transform:translateX(0)}.scroll-animate-zoom{opacity:0;transform:scale(.9);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-animate-zoom.is-visible{opacity:1;transform:scale(1)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.delay-900{animation-delay:.9s}.delay-1000{animation-delay:1s}.stagger-children>:first-child{animation-delay:.1s}.stagger-children>:nth-child(2){animation-delay:.2s}.stagger-children>:nth-child(3){animation-delay:.3s}.stagger-children>:nth-child(4){animation-delay:.4s}.stagger-children>:nth-child(5){animation-delay:.5s}.stagger-children>:nth-child(6){animation-delay:.6s}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 30px rgba(0,0,0,.15)}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px currentColor}.paper-texture{position:relative;background-color:#f5f0e8}.paper-texture:before{content:"";position:absolute;inset:0;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");pointer-events:none}.paper-linen{background-color:#faf8f5;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.02) 0,rgba(0,0,0,.02) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.02) 0,rgba(0,0,0,.02) 4px)}.paper-cotton{background-color:#fffef9;background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='cotton'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='5'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23cotton)' opacity='0.08'/%3E%3C/svg%3E")}.paper-kraft{background-color:#c4a77d;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='kraft'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23kraft)' opacity='0.15'/%3E%3C/svg%3E"),linear-gradient(180deg,#c9ac82,#b89b6a)}.paper-envelope{background:linear-gradient(180deg,#f5e6d3,#eed9c4 50%,#e8ceb5);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23paper)' opacity='0.06'/%3E%3C/svg%3E"),linear-gradient(180deg,#f5e6d3,#e8ceb5)}.text-embossed{color:transparent;background:linear-gradient(180deg,#e8e8e8,#d0d0d0);-webkit-background-clip:text;background-clip:text;text-shadow:0 1px 1px hsla(0,0%,100%,.9),0 -1px 1px rgba(0,0,0,.2);filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))}.text-debossed{color:rgba(0,0,0,.15);text-shadow:1px 1px 0 hsla(0,0%,100%,.8),-1px -1px 0 rgba(0,0,0,.05)}.text-letterpress{color:#444;text-shadow:0 1px 0 hsla(0,0%,100%,.6),0 -1px 0 rgba(0,0,0,.1)}@keyframes goldShimmer{0%{background-position:-200%}to{background-position:200%}}.gold-foil{background:linear-gradient(90deg,#bf953f,#fcf6ba 25%,#b38728 50%,#fbf5b7 75%,#aa771c);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:goldShimmer 4s linear infinite}.gold-foil-static{background:linear-gradient(135deg,#bf953f,#fcf6ba 20%,#b38728 40%,#fbf5b7 60%,#aa771c 80%,#bf953f);-webkit-background-clip:text;background-clip:text;color:transparent}.rose-gold-foil{background:linear-gradient(90deg,#b76e79,#eecfd4 25%,#b76e79 50%,#f0d4d8 75%,#9e5c64);background-size:200% auto;-webkit-background-clip:text;background-clip:text}.rose-gold-foil,.silver-foil{color:transparent;animation:goldShimmer 4s linear infinite}.silver-foil{background:linear-gradient(90deg,#757575,#e8e8e8 25%,#9e9e9e 50%,#f5f5f5 75%,#616161);background-size:200% auto;-webkit-background-clip:text;background-clip:text}.deckled-edge{--deckle-size:8px;mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,0 Q5,2 10,0 T20,0 T30,0 T40,0 T50,0 T60,0 T70,0 T80,0 T90,0 T100,0 L100,100 Q95,98 90,100 T80,100 T70,100 T60,100 T50,100 T40,100 T30,100 T20,100 T10,100 T0,100 Z' fill='black'/%3E%3C/svg%3E");mask-size:100% 100%;-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,0 Q5,2 10,0 T20,0 T30,0 T40,0 T50,0 T60,0 T70,0 T80,0 T90,0 T100,0 L100,100 Q95,98 90,100 T80,100 T70,100 T60,100 T50,100 T40,100 T30,100 T20,100 T10,100 T0,100 Z' fill='black'/%3E%3C/svg%3E");-webkit-mask-size:100% 100%}.deckled-edge-subtle{clip-path:polygon(0 2%,3% 0,6% 1%,9% 0,12% 2%,15% 0,18% 1%,21% 0,24% 2%,27% 0,30% 1%,33% 0,36% 2%,39% 0,42% 1%,45% 0,48% 2%,51% 0,54% 1%,57% 0,60% 2%,63% 0,66% 1%,69% 0,72% 2%,75% 0,78% 1%,81% 0,84% 2%,87% 0,90% 1%,93% 0,96% 2%,100% 0,100% 98%,97% 100%,94% 99%,91% 100%,88% 98%,85% 100%,82% 99%,79% 100%,76% 98%,73% 100%,70% 99%,67% 100%,64% 98%,61% 100%,58% 99%,55% 100%,52% 98%,49% 100%,46% 99%,43% 100%,40% 98%,37% 100%,34% 99%,31% 100%,28% 98%,25% 100%,22% 99%,19% 100%,16% 98%,13% 100%,10% 99%,7% 100%,4% 98%,0 100%)}.shadow-realistic{box-shadow:0 1px 1px rgba(0,0,0,.04),0 2px 2px rgba(0,0,0,.04),0 4px 4px rgba(0,0,0,.04),0 8px 8px rgba(0,0,0,.04),0 16px 16px rgba(0,0,0,.04),0 32px 32px rgba(0,0,0,.04)}.shadow-lifted{box-shadow:0 2px 4px rgba(0,0,0,.06),0 4px 8px rgba(0,0,0,.06),0 8px 16px rgba(0,0,0,.06),0 16px 32px rgba(0,0,0,.08),0 32px 64px rgba(0,0,0,.1)}.shadow-float{box-shadow:0 10px 20px rgba(0,0,0,.08),0 20px 40px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.1)}.shadow-envelope{box-shadow:0 2px 4px rgba(0,0,0,.1),0 8px 16px rgba(0,0,0,.1),0 16px 32px rgba(0,0,0,.08),inset 0 -2px 4px rgba(0,0,0,.05)}@keyframes envelopeFlapOpen{0%{transform:rotateX(0deg)}to{transform:rotateX(-180deg)}}@keyframes letterSlideOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(-120%);opacity:1}}@keyframes waxSealBreak{0%{transform:scale(1) rotate(0deg);opacity:1}50%{transform:scale(1.3) rotate(15deg)}to{transform:scale(0) rotate(45deg);opacity:0}}@keyframes envelopeFloat{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-5px) rotate(.5deg)}75%{transform:translateY(-3px) rotate(-.5deg)}}.envelope-float{animation:envelopeFloat 4s ease-in-out infinite}.invitation-border-classic{border:1px solid rgba(0,0,0,.1);box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 5px rgba(0,0,0,.1)}.invitation-border-double{border:2px solid;box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 6px currentColor}.invitation-border-ornate{border:1px solid rgba(0,0,0,.1);background-image:linear-gradient(45deg,transparent 48%,currentColor 0,currentColor 52%,transparent 0),linear-gradient(-45deg,transparent 48%,currentColor 0,currentColor 52%,transparent 0);background-size:8px 8px;background-position:0 0,4px 0;background-repeat:repeat-x;background-clip:padding-box}.corner-ornaments{position:relative}.corner-ornaments:after,.corner-ornaments:before{content:"❧";position:absolute;font-size:24px;color:currentColor;opacity:.6}.corner-ornaments:before{top:12px;left:12px}.corner-ornaments:after{bottom:12px;right:12px;transform:rotate(180deg)}