@import"https://fonts.googleapis.com/css2?family=Pinyon+Script&display=swap";@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:Georgia,serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{width:100%;height:100%;position:fixed;inset:0}.canvas{width:100%;height:100%;overflow:hidden;background:linear-gradient(135deg,#f5e6d3,#d4c5b9);cursor:grab;touch-action:none}.canvas.panning{cursor:grabbing}main{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none}main>*{pointer-events:auto}header{display:block;font-family:Pinyon Script,cursive;font-size:6em;color:#5c1010;text-align:center;font-weight:400;text-shadow:2px 2px 4px rgba(0,0,0,.1);transition:transform .3s ease;transition:all .8s cubic-bezier(.4,0,.2,1)}.open header{transform:translateY(-225px)}footer{font-family:Cormorant Garamond,sans-serif;font-size:3em;color:#5c1010;margin:30px 0 0;text-align:center;font-weight:400;text-transform:uppercase;transition:all .8s cubic-bezier(.4,0,.2,1);opacity:.8}.open footer{opacity:0;visibility:hidden}.flowers{position:absolute;top:50%;z-index:1;opacity:.9;height:350px;width:auto;animation:floatFlower 4s ease-in-out infinite;transform-origin:bottom center}.flowers-left{left:-90px;transform:translateY(-50%) rotate(-15deg)}.flowers-right{right:-90px;transform:translateY(-50%) rotate(15deg)}@keyframes floatFlower{0%,to{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 15px))}}.flowers-left{animation:floatFlowerLeft 4s ease-in-out infinite}.flowers-right{animation:floatFlowerRight 4s ease-in-out infinite}@keyframes floatFlowerLeft{0%,to{transform:translateY(-50%) rotate(-15deg)}50%{transform:translateY(calc(-50% - 15px)) rotate(-13deg)}}@keyframes floatFlowerRight{0%,to{transform:translateY(-50%) rotate(15deg)}50%{transform:translateY(calc(-50% - 15px)) rotate(17deg)}}.open .flowers{opacity:0;transition:opacity .5s ease}.envelope{position:relative;width:500px;height:350px;transition:transform .3s ease}.envelope:hover{transform:scale(1.02)}.open .envelope:hover{transform:none}.envelope-back{position:absolute;width:100%;height:100%;background:linear-gradient(to bottom,#7f1d1d,#5c1010);box-shadow:0 10px 40px #0000004d;overflow:hidden}.envelope-left-triangle{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#8b2020,#7f1d1d);clip-path:polygon(0 0,50% 50%,0 100%)}.envelope-right-triangle{position:absolute;top:0;right:0;width:100%;height:100%;background:linear-gradient(225deg,#8b2020,#7f1d1d);clip-path:polygon(100% 0,100% 100%,50% 50%)}.envelope-bottom-rhombus{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#8b2020,#7f1d1d);clip-path:polygon(0 100%,30% 40%,70% 40%,100% 100%)}.envelope-top-triangle{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#991b1b,#7f1d1d);clip-path:polygon(0 0,100% 0,50% 50%);box-shadow:0 4px 20px #0003;transform-origin:50% 0;transition:transform .8s cubic-bezier(.4,0,.2,1)}.open .envelope-top-triangle{transform:rotateX(-180deg)}.wax-seal{position:absolute;top:137px;left:50%;cursor:pointer;transform:translate(-50%);width:80px;height:80px;background:radial-gradient(circle,#7c2d12,#5c1f0a);border-radius:50%;box-shadow:0 4px 8px #0000004d,inset 0 2px 4px #fff3,inset 0 -2px 4px #0000004d;display:flex;align-items:center;justify-content:center;transition:all .8s cubic-bezier(.4,0,.2,1);border:3px solid #92400e}.open .wax-seal{transform:translate(-50%) scale(.8);opacity:0}.seal-inner{font-size:22px;font-weight:700;color:#fef3c7;text-shadow:1px 1px 2px rgba(0,0,0,.5);font-family:Tangerine,Playfair Display,Georgia,serif}.polaroid{position:absolute;top:50%;padding:12px 12px 40px;background:#fff;opacity:0;box-shadow:0 4px 8px #0000001a,0 6px 20px #0000001a;transition:opacity .8s cubic-bezier(.4,0,.2,1)}.polaroid-left{transform:translateY(-75%) rotate(-5deg);left:-320px}.polaroid-right{transform:translateY(-75%) rotate(5deg);left:600px}.open .polaroid{opacity:.9}.polaroid img{display:block;width:200px;height:auto}.page{position:absolute;width:90%;height:475px;left:5%;top:5%;background:#fff;border-radius:4px;box-shadow:0 4px 20px #00000026;transform:translateY(0);opacity:0;transition:all .8s cubic-bezier(.4,0,.2,1) .3s}.page:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(/border.png) no-repeat bottom center;background-size:100% auto;opacity:.5;pointer-events:none;z-index:-1}.open .page{transform:translateY(-50%);opacity:1}.page.details,.page.rsvp{transition:transform 1.8s cubic-bezier(.4,0,.2,1) .8s,opacity 1s cubic-bezier(.4,0,.2,1) .8s;height:400px}.open .page.details{transform:translateY(65%) translate(-65%)}.open .page.rsvp{transform:translateY(65%) translate(65%)}.surface{visibility:hidden}.open .surface{visibility:visible}.invitation{text-align:center;color:#2c1810;padding:20px;width:100%}.invitation h1{font-size:3em;margin:0 0 .3em;font-family:Tangerine,Playfair Display,Georgia,serif;font-weight:400;font-style:italic;color:#5c1010}.invitation p{font-size:1.3em;margin:0;font-family:Georgia,serif;color:#2c1810}.date{font-size:1.2em!important;margin-bottom:1.5em!important;font-family:Georgia,serif;color:#5c1010;font-weight:400}.join-text{font-size:1em!important;margin-bottom:1.5em!important;font-family:Georgia,serif;color:#2c1810}.bride-name,.ampersand,.groom-name{font-size:3em;margin:.2em 0;font-family:Tangerine,Playfair Display,Georgia,serif;font-weight:400;font-style:italic;color:#5c1010}.details-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}.details-title{font-size:2.5em;margin:0 0 1em;font-family:Tangerine,Playfair Display,Georgia,serif;font-weight:400;font-style:italic;color:#5c1010}.details-section{width:100%;text-align:center}.section-subtitle{font-size:1.3em;margin:0 0 1.5em;font-family:Georgia,serif;font-weight:400;color:#2c1810;text-transform:uppercase;letter-spacing:2px}.event-details{margin-bottom:2em}.event-title{font-size:1.2em!important;margin:0 0 .5em!important;font-family:Georgia,serif;color:#5c1010;font-weight:700}.event-info{font-size:1em!important;margin:0!important;font-family:Georgia,serif;color:#2c1810;line-height:1.5}.event-info a{color:#5c1010;transition:color .2s ease;text-decoration:none}.event-info a:hover{color:#7f1d1d;text-decoration:underline}.rsvp-page{padding:25px 20px!important}.rsvp-page .details-title{margin-bottom:.5em}.rsvp-form{width:100%;max-width:350px;display:flex;flex-direction:column;gap:25px}.form-row{width:100%}.guest-row{display:flex;gap:10px}.guest-row .form-select{flex:1}.form-input{width:100%;padding:10px 14px;font-family:Georgia,serif;font-size:.9em;color:#2c1810;background:#fffc;border:1px solid #d4c5b9;border-radius:4px;outline:none;transition:border-color .3s ease,box-shadow .3s ease;box-sizing:border-box}.form-input::placeholder{color:#8b7355}.form-input:focus{border-color:#5c1010;box-shadow:0 0 0 2px #5c10101a}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235c1010' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-input:disabled{background:#c8c8c84d;color:#999;cursor:not-allowed}.form-label{display:block;font-family:Georgia,serif;font-size:.95em;color:#2c1810;margin-bottom:8px}.attendance-row{text-align:center}.radio-group{display:flex;justify-content:center;gap:30px}.radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-family:Georgia,serif;font-size:.9em;color:#2c1810}.radio-label input[type=radio]{accent-color:#5c1010;cursor:pointer}.submit-btn{margin-top:8px;padding:12px 24px;font-family:Georgia,serif;font-size:1em;color:#fef3c7;background:linear-gradient(to bottom,#7f1d1d,#5c1010);border:none;border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:2px;transition:all .3s ease;box-shadow:0 2px 8px #5c10104d}.submit-btn:hover{background:linear-gradient(to bottom,#991b1b,#7f1d1d);box-shadow:0 4px 12px #5c101066;transform:translateY(-1px)}.submit-btn:active{transform:translateY(0)}.ceremony{position:absolute;bottom:8px;left:50%;transform:translate(-45%)}.ceremony img{height:150px;width:auto;opacity:.8}@media(max-width:480px){header{font-size:2.5em}footer{font-size:1.5em}.open header{transform:translateY(-275px)}.flowers{height:175px}.flowers-left{left:-45px}.flowers-right{right:-45px}.envelope{position:relative;width:250px;height:175px}.wax-seal{top:68px;width:40px;height:40px}.seal-inner{font-size:18px}.page{width:125%;left:-12.5%;top:0;height:500px}.polaroid-left{left:0;transform:translateY(200px) rotate(-5deg)}.page.details,.page.rsvp{height:450px}.open .page.details{transform:translateY(675px)}.polaroid-right{left:0;transform:translateY(1075px) rotate(-5deg)}.open .page.rsvp{transform:translateY(1550px)}.rsvp-form{max-width:100%;gap:15px}.form-input{padding:12px 14px;font-size:16px}.guest-row{flex-direction:column;gap:15px}.radio-label{font-size:1em;padding:8px 0}.submit-btn{width:100%;padding:14px 24px;font-size:.95em}}
