@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap");:root{--burgundy:#641c2d;--burgundy-deep:#45131f;--ivory:#fff9f0;--paper:#fffdf7;--gold:#c9a45c;--gold-pale:#e7d2a5;--rose:#d9a6a6;--sage:#89947a;--charcoal:#252222;--sans:"DM Sans",sans-serif;--serif:"Playfair Display",Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--ivory)}body{margin:0;color:var(--charcoal);font:15px/1.55 var(--sans)}button,input,textarea{font:inherit}button{cursor:pointer}main{min-height:100vh;overflow:hidden;position:relative}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:500}.eyebrow{color:var(--gold);font-size:9px;font-weight:600;letter-spacing:2.5px;margin:0 0 17px}.botanical{display:block;width:150px;height:auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.05;color:var(--gold);margin:0 auto 22px}.sound{align-items:center;background:#fff9f0e8;border:1px solid #c9a45c70;border-radius:99px;color:var(--burgundy);display:flex;gap:7px;padding:7px 12px;position:fixed;right:18px;top:17px;z-index:8;box-shadow:0 5px 18px #641c2d14}.sound span{color:var(--gold);font-size:17px;line-height:1}.sound small{font-size:9px;letter-spacing:.8px;text-transform:uppercase}.petals{pointer-events:none;position:fixed;z-index:6;inset:0;overflow:hidden}.petals i{animation:drift linear infinite;background:var(--rose);border-radius:100% 0 100% 0;height:7px;opacity:.4;position:absolute;top:-12px;width:9px}.petals i:nth-child(3n){background:var(--gold);height:4px;width:4px}.petals i:nth-child(2n){opacity:.25}@keyframes drift{to{transform:translate3d(32px,110vh,0) rotate(280deg)}}.hero{align-items:center;display:flex;justify-content:center;min-height:100svh;padding:72px 24px 36px;text-align:center}.entry{background:radial-gradient(ellipse at 50% 42%,#fffefaaa,transparent 45%),radial-gradient(circle at 8% 8%,#d9a6a632,transparent 24%),var(--ivory);position:relative}.entry:after,.entry:before{border:1px solid #c9a45c45;border-radius:50%;content:"";height:400px;position:absolute;width:400px}.entry:before{left:-280px;top:-100px}.entry:after{bottom:-260px;right:-280px}.cover{max-width:420px;position:relative;width:100%;z-index:1}.cover h1{color:var(--burgundy);font-size:clamp(48px,13vw,67px);letter-spacing:-2.4px;line-height:.91;margin:0 auto 18px;max-width:370px;text-wrap:balance}.cover h1 span{color:var(--gold);display:block;font-size:.56em;font-style:italic;letter-spacing:0;line-height:.7;margin:8px 0}.family-line{color:#685e59;font:italic 17px var(--serif);margin:0 0 42px}.phone-card{margin:auto;max-width:340px;text-align:left}.phone-card label{color:#786b62;display:block;font-size:11px;letter-spacing:.3px;margin:0 0 9px 15px}.phone-card>div{align-items:center;border-bottom:1px solid #c9a45c99;display:flex;gap:11px;padding:8px 14px 11px}.phone-card span{color:var(--gold);font:18px var(--serif)}.phone-card input{background:transparent;border:0;color:var(--charcoal);outline:0;width:100%}.phone-card input::placeholder{color:#aa9d94}.gold-button,.phone-card button{background:var(--burgundy);border:1px solid var(--burgundy);color:var(--ivory);margin-top:20px;min-height:50px;padding:14px 20px;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.phone-card button{width:100%}.gold-button b,.phone-card button b{color:var(--gold-pale);float:right;font-size:18px;line-height:.9}.gold-button:hover,.phone-card button:hover{box-shadow:0 10px 24px #641c2d30;transform:translateY(-2px) scale(1.01)}.error{color:#a13750;font-size:11px;line-height:1.4;margin:11px 0 0;text-align:center}.welcome{background:radial-gradient(circle at center,#fffdf6 0,var(--ivory) 55%,#f2e3d3 130%)}.envelope-scene{max-width:390px;position:relative;width:100%}.corner-botanical{margin-bottom:10px;opacity:.75;transform:rotate(180deg);width:118px}.envelope{background:#f8eddf;border:1px solid var(--gold);box-shadow:0 25px 55px #641c2d25;height:220px;margin:0 auto 37px;max-width:310px;overflow:hidden;position:relative;transform-style:preserve-3d}.envelope:after{border-color:#dfc49a transparent transparent;border-style:solid;border-width:110px 155px 0;bottom:0;content:"";z-index:2}.envelope-flap,.envelope:after{height:0;left:0;position:absolute;width:0}.envelope-flap{border-color:#f4e2cc transparent transparent;border-style:solid;border-width:118px 155px 0;top:0;transform-origin:top;z-index:3}.envelope-card{align-items:center;background:var(--paper);border:1px solid #dcc18d;color:var(--burgundy);display:flex;flex-direction:column;height:150px;justify-content:center;left:27px;position:absolute;top:21px;width:254px}.envelope-card p{font:16px var(--serif);letter-spacing:1px;margin:0}.envelope-card span{color:var(--gold);font:italic 13px var(--serif)}.envelope-card i{border:1px solid var(--gold);border-radius:50%;color:var(--burgundy);font:12px var(--serif);font-style:normal;height:27px;line-height:25px;margin-top:9px;width:27px}.wax-seal{background:var(--burgundy);border:3px double var(--gold-pale);border-radius:50%;bottom:34px;color:var(--gold-pale);font:11px/11px var(--serif);height:39px;left:calc(50% - 19px);padding-top:8px;position:absolute;width:39px;z-index:5}.welcome h2{color:var(--burgundy);font-size:clamp(38px,11vw,49px);letter-spacing:-1px;line-height:.98;margin-bottom:13px}.bless h2 em,.intro h2 span,.section h2 em,.story h2 em,.venue h2 em,.welcome h2 em{color:var(--gold);font-weight:500}.waiting{color:#6e625b;font:italic 16px/1.5 var(--serif);margin:0 auto 26px;max-width:275px}.gold-button{font-weight:500;min-width:213px}.experience{background:var(--ivory);color:var(--charcoal)}.intro{background:radial-gradient(ellipse at 50% 0,#86394c 0,var(--burgundy) 52%,var(--burgundy-deep) 120%);color:var(--ivory);min-height:610px;overflow:hidden;padding:115px 24px 62px;position:relative;text-align:center}.intro:after,.intro:before{border:1px solid #e7d2a542;border-radius:50%;content:"";height:470px;position:absolute;width:470px}.intro:before{left:-335px;top:80px}.intro:after{bottom:-360px;right:-340px}.intro>div{position:relative;z-index:1}.intro-ornament{color:var(--gold-pale);margin-bottom:30px;opacity:.9}.intro h2{cursor:pointer;font-size:clamp(51px,14vw,72px);letter-spacing:-2.9px;line-height:.88;margin:0 auto 20px;max-width:530px}.intro h2 span{display:block;font-size:.52em;font-style:italic;line-height:.7;margin:12px 0}.intro-copy{color:#f5dde0;font:italic 17px var(--serif);margin:0 auto;max-width:285px}.date-line{align-items:center;display:flex;gap:12px;justify-content:center;margin:34px 0}.date-line b{color:var(--gold-pale);font:60px/.8 var(--serif)}.date-line span{color:var(--gold-pale);font-size:10px;letter-spacing:2px;line-height:1.5;text-align:left}.date-line i{border-left:1px solid #e7d2a577;height:34px}.countdown{display:flex;gap:7px;justify-content:center}.countdown div{border:1px solid #e7d2a54f;min-width:63px;padding:10px 4px}.countdown b{color:var(--gold-pale);display:block;font:25px var(--serif)}.countdown span{color:#f1d6da;font-size:8px;letter-spacing:1.1px;text-transform:uppercase}.paper-wrap{background:linear-gradient(135deg,#f5eadc,var(--ivory) 48%,#f2e5d5);padding:61px 20px 55px;text-align:center}.invitation-card{background:var(--paper);border:1px solid var(--gold);box-shadow:0 15px 35px #641c2d1f;color:var(--burgundy);margin:auto;max-width:485px;outline:6px solid #fffaf0;padding:33px 23px}.invitation-card .botanical{margin-bottom:10px;width:120px}.invitation-card>p{color:var(--gold);font-size:9px;letter-spacing:2.5px;margin:0 0 21px}.invitation-card h3{font-size:45px;letter-spacing:-1.8px;line-height:.87;margin:0}.invitation-card h3 span{color:var(--gold);display:block;font-size:15px;font-style:italic;letter-spacing:0;line-height:.9;margin:9px 0}.ornament{color:var(--gold);margin:17px}.invitation-card h4{color:#594440;font:17px/1.5 var(--serif);margin:0 0 24px}.details{border-bottom:1px solid #d9bf8c;border-top:1px solid #d9bf8c;padding:11px 0}.details div+div{margin-top:13px}.details b,.details span{display:block}.details b{color:var(--burgundy);font-size:9px;letter-spacing:1.7px}.details span{color:#796966;font-size:11px;margin-top:3px}.custom-note{color:#966270;font:italic 14px/1.45 var(--serif);margin-top:21px}.card-caption{color:#786a63;font-size:11px;margin:18px 0 14px}.actions{display:flex;gap:9px;justify-content:center}.actions button{background:transparent;border:1px solid #c9a45c88;color:var(--burgundy);flex:1 1;font-size:11px;max-width:210px;padding:12px 9px;transition:background .2s ease,transform .2s ease}.actions button:hover{background:#fff8e9;transform:translateY(-2px)}.story{background:#f2dfdc;padding:76px 28px 70px;position:relative}.bless h2,.section h2,.story h2,.venue h2{color:var(--burgundy);font-size:clamp(35px,10vw,48px);letter-spacing:-1.4px;line-height:1;margin-bottom:22px}.story-copy{color:#655754;font:17px/1.7 var(--serif);max-width:500px}.story-rule{align-items:center;color:var(--burgundy);display:flex;gap:20px;margin-top:42px}.story-rule span{color:var(--gold);font:17px var(--serif)}.story-rule .botanical{flex:1 1;margin:0;width:auto}.section{padding:76px 24px}.celebrations{margin:auto;max-width:740px}.timeline{margin-top:31px}.event{background:transparent;border:0;border-bottom:1px solid #d9c9ba;color:var(--charcoal);display:flex;gap:15px;padding:19px 0;text-align:left;width:100%}.event:first-child{border-top:1px solid #d9c9ba}.number{color:var(--gold);font:20px var(--serif)}.event b,.event small{display:block}.event b{color:var(--burgundy);font:22px var(--serif)}.event small{color:#857872;font-size:10px;margin-top:2px}.event p{color:#70625b;font-size:12px;line-height:1.55;margin:9px 0 0;overflow:hidden}.event i{color:var(--gold);font-size:21px;font-style:normal;margin-left:auto}.venue{background:var(--sage);color:var(--ivory);display:flex;gap:18px;padding:70px 24px}.venue>div{width:50%}.venue .eyebrow{color:#f4dfb1}.venue h2{color:var(--ivory);font-size:clamp(31px,9vw,44px)}.venue h2 em{color:#f4dfb1}.venue>div>p:not(.eyebrow){color:#f5eee2;font-size:12px;margin-bottom:22px}.venue button{background:transparent;border:1px solid #fff9f08a;color:var(--ivory);font-size:11px;padding:11px 12px}.venue button b{color:#f4dfb1;margin-left:8px}.map-art{background:#f5ecdc;border-radius:50% 50% 12% 50%;min-height:205px;overflow:hidden;position:relative;transform:rotate(6deg)}.map-art:after,.map-art:before{background:#d3c5ab;content:"";height:13px;left:-15%;position:absolute;top:77px;transform:rotate(-36deg);width:135%}.map-art:after{top:143px;transform:rotate(28deg)}.map-art span{color:var(--gold);font-size:23px;position:absolute;right:22px;top:25px}.map-art i{color:var(--burgundy);font-size:22px;font-style:normal;left:42%;position:absolute;top:86px;z-index:1}.map-art b{bottom:15px;color:var(--sage);font-size:8px;letter-spacing:1px;position:absolute;right:12px}.bless{background:var(--ivory);padding:79px 24px;text-align:center}.bless .botanical{margin-bottom:28px}.bless>p:not(.eyebrow){color:#786a63;margin:0 auto 25px;max-width:285px}.modal-back{align-items:flex-end;background:#45131fb8;display:flex;inset:0;justify-content:center;position:fixed;z-index:10}.wish-modal{background:var(--ivory);color:var(--charcoal);max-width:510px;padding:38px 25px;position:relative;text-align:center;width:100%}.wish-modal h2{color:var(--burgundy);font-size:37px}.wish-modal textarea{background:#fffdf8;border:1px solid #c9a45c88;color:var(--charcoal);height:110px;margin:8px 0;outline-color:var(--gold);padding:12px;resize:vertical;width:100%}.wish-modal .gold-button{min-width:0;width:100%}.close{background:transparent;border:0;color:var(--burgundy);font-size:28px;position:absolute;right:13px;top:9px}.big-heart{color:var(--rose);font-size:43px}footer{background:var(--burgundy-deep);color:var(--ivory);padding:59px 24px;text-align:center;font:31px var(--serif);letter-spacing:-1px}footer .botanical{color:var(--gold-pale);margin-bottom:17px;width:116px}footer p{color:var(--gold-pale);font:italic 18px var(--serif);margin-bottom:3px}footer span{color:var(--gold)}footer small{color:#ead6b2;font:9px var(--sans);letter-spacing:2px}@media (min-width:700px){.entry:before{left:calc(50% - 650px)}.entry:after{right:calc(50% - 650px)}.intro{min-height:690px;padding-top:135px}.paper-wrap{padding:80px 24px 65px}.section,.story{padding-left:max(9vw,40px);padding-right:max(9vw,40px)}.venue{justify-content:center;padding:80px max(11vw,55px)}.venue>div{max-width:310px}.bless{padding:100px 24px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.envelope-card .monogram{align-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--burgundy);display:flex;font:12px var(--serif);font-style:normal;height:29px;justify-content:center;letter-spacing:0;margin-top:9px;width:29px}.envelope-card .monogram b,.wax-seal b{font-weight:500}.envelope-card .monogram em{color:var(--gold);font-size:12px;font-style:normal;line-height:1;margin:0 2px}.wax-seal{align-items:center;display:flex;font:12px var(--serif);height:40px;justify-content:center;left:calc(50% - 20px);padding-top:0;width:40px}.wax-seal span{color:var(--gold-pale);font-size:11px;line-height:1;margin:0 2px}.reveal-card{align-items:center;background:var(--paper);border:1px solid var(--gold);box-shadow:0 24px 55px #641c2d28,inset 0 0 0 7px var(--paper),inset 0 0 0 8px #dcc18d;color:var(--burgundy);display:flex;flex-direction:column;justify-content:center;margin:0 auto 37px;max-width:315px;min-height:265px;padding:28px;position:relative}.reveal-card:after,.reveal-card:before{color:var(--gold);content:"✦";font-size:11px;position:absolute}.reveal-card:before{left:17px;top:14px}.reveal-card:after{bottom:14px;right:17px}.reveal-card small,.reveal-card>p{color:var(--gold);font:8px var(--sans);letter-spacing:2px;text-align:center}.reveal-card>p{margin:0 0 14px}.reveal-card small{margin-top:14px}.reveal-card .monogram{align-items:center;border:1px solid var(--gold);border-radius:50%;display:flex;font:16px var(--serif);height:46px;justify-content:center;margin:8px 0 12px;width:46px}.reveal-card .monogram b{font-weight:500}.reveal-card .monogram em{color:var(--gold);font-size:14px;font-style:normal;margin:0 3px}.reveal-card h3{font-size:30px;letter-spacing:-1px;line-height:.92;margin:0;text-align:center}.reveal-card h3 span{color:var(--gold);font-size:.68em;font-style:italic}.card-rule{background:linear-gradient(90deg,transparent,var(--gold),transparent);height:1px;width:115px}