@font-face{font-family:'Cormorant Garamond';src:url('fonts/cormorant-garamond.ttf') format('truetype');font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('fonts/cormorant-garamond-italic.ttf') format('truetype');font-style:italic;font-weight:300 700;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--ink:#294553;--muted:#617782;--line:#ced9dd;--background:#f4f6f5}body{font-family:Manrope,Arial,sans-serif;background:#edf1f2}h1,h2,.invite-copy,.receipt strong,.attendance-card strong,.panel-footer{font-family:'Cormorant Garamond',Georgia,serif}h1{font-weight:400}h2{font-size:48px;line-height:1.05;font-weight:500;letter-spacing:-1px}button,input,textarea{font-family:Manrope,Arial,sans-serif}a:focus-visible{outline:3px solid #44667d;outline-offset:6px}.cover-page{max-width:1600px;margin:auto;padding:0 40px}.cover-header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 12px}.wordmark{font:italic 32px/1 'Cormorant Garamond',Georgia,serif;text-decoration:none;color:var(--ink)}.wordmark span{font:500 9px/1.6 Manrope,sans-serif;letter-spacing:2.4px;display:block;margin-top:9px}.header-date{font-size:12px;letter-spacing:3px}.cover{min-height:740px;height:calc(100svh - 162px);max-height:1000px;position:relative;background:#f8f9f6;overflow:hidden;box-shadow:0 15px 60px #3c5a6a09;display:flex;justify-content:center;align-items:center;text-align:center}.botanical{position:absolute;inset:0;pointer-events:none}.botanical:before,.botanical:after{content:'';position:absolute;top:-2%;bottom:-2%;width:39%;background:url('wedding-florals.png') center/cover no-repeat;opacity:.86;animation:botanical-arrive 2.3s ease-out both}.botanical:before{left:-3%;mask-image:linear-gradient(to right,#000 65%,transparent)}.botanical:after{right:-3%;transform:rotate(180deg);mask-image:linear-gradient(to right,#000 65%,transparent)}.cover-outline{position:absolute;inset:25px;border:1px solid #7897a33b;pointer-events:none}.cover-content{position:relative;padding:60px 24px;width:100%;max-width:800px;z-index:1}.cover .eyebrow{font-size:11px;letter-spacing:3.2px;color:#4f6b7b;font-weight:500;margin:0 0 20px}.cover-ornament{font:36px/1 'Cormorant Garamond',serif;color:#7c99aa;margin:0 auto 17px}.cover h1{font-size:clamp(60px,6.3vw,96px);line-height:.99;letter-spacing:-2.9px;color:#294957}.cover h1 em{font-weight:400;color:#728d9e}.cover-subtitle{font-family:'Cormorant Garamond',Georgia,serif;font-size:25px;font-style:italic;margin:23px 0 28px;color:#556f7c}.wedding-date{display:flex;flex-direction:column;align-items:center;gap:7px}.wedding-date>span{font-size:10px;letter-spacing:3px;color:#526f7d}.wedding-date time{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;line-height:1.5}.wedding-date b{font-weight:500}.wedding-date>span:last-child{font-size:9px;letter-spacing:2px;color:#6c818b}.cover-rsvp{display:inline-flex;align-items:center;justify-content:center;gap:38px;background:#527389;color:#fff;text-decoration:none;min-height:54px;padding:15px 32px;margin-top:31px;font-size:13px;font-weight:500;letter-spacing:1px;border:1px solid #527389;transition:background .2s,box-shadow .2s}.cover-rsvp:hover{background:#3e6076;box-shadow:0 7px 22px #52738929}.cover-rsvp>span{font-size:21px;font-weight:400;line-height:1}.cover-note{font-size:11px;color:#657e8b;margin-top:16px}.cover-bottom{position:absolute;left:49px;right:49px;bottom:43px;display:flex;justify-content:space-between;color:#526d7b;font-size:9px;letter-spacing:2px}.cover-footer{min-height:62px;display:flex;justify-content:space-between;align-items:center;padding:15px 12px;gap:20px}.cover-footer>span:first-child{font:italic 18px/1.4 'Cormorant Garamond',serif;color:#657b86}.cover-footer>span:last-child{font-size:9px;letter-spacing:2px;color:#657b86}.reveal{animation:invitation-reveal 1.3s cubic-bezier(.2,.7,.3,1) both}.reveal-one{animation-delay:.12s}.reveal-two{animation-delay:.3s}.reveal-three{animation-delay:.5s}.reveal-four{animation-delay:.7s}@keyframes invitation-reveal{from{opacity:0;transform:translateY(17px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes botanical-arrive{from{opacity:0;scale:1.045}to{opacity:.86;scale:1}}
.wedding-shell{padding:24px;gap:0;grid-template-columns:45% 55%;max-width:1500px;margin:auto}.invitation{min-height:calc(100svh - 48px);background:#eff2ef url('wedding-florals.png') center/cover;color:var(--ink);padding:36px 40px}.invitation-inner{padding:120px 15px;margin:auto 0}.invitation h1{font-size:clamp(46px,4.6vw,70px);letter-spacing:-1.8px;line-height:1.02}.invitation h1 em{color:#708c9e}.invitation .eyebrow{font-size:10px;letter-spacing:2px}.brand{font-size:10px;letter-spacing:2px}.invitation .fine-rule{background:#9eb2bb}.invitation-note,.event-note p{color:#526a76}.invite-copy{font-size:25px}.event-note{border-color:#97aeba}.event-note span{font-size:11px}.invite-footer{font-size:9px;letter-spacing:1px}.response-panel{background:#fcfdfb;padding:35px 50px}.response-content{padding:45px 0;max-width:440px}.panel-header{font-size:10px;letter-spacing:1.5px}.stepper{margin-bottom:38px;font-size:12px}.intro{font-size:15px;line-height:1.85}.primary[data-slot=button]{background:#527389;border-radius:2px;font-family:Manrope,sans-serif;font-size:13px;letter-spacing:.8px;min-height:54px}.primary[data-slot=button]:hover{background:#3e6076}input[data-slot=input],textarea{border-radius:3px;font-family:Manrope,sans-serif;background:#fcfdfb}.attendance-card{border-radius:3px}.attendance-card strong{font-size:25px}.option-detail{font-family:Manrope,sans-serif;font-size:13px}.panel-footer{font-size:17px}.response-content>.error{font-size:14px}.receipt{border-radius:3px}.receipt strong{font-size:30px}
@media(max-width:1000px){.cover-page{padding:0 22px}.cover{min-height:720px}.botanical:before,.botanical:after{width:36%;opacity:.75}.cover-content{max-width:650px}.cover h1{font-size:76px}.wedding-shell{padding:15px}.response-panel{padding:30px}.invitation{padding:30px 25px}.invitation-inner{padding:90px 0}.invitation h1{font-size:53px}}
@media(max-width:700px){.cover-page{padding:0 13px}.cover-header{height:82px;padding:0 8px}.wordmark{font-size:27px}.wordmark span{font-size:8px;letter-spacing:1.5px}.header-date{font-size:10px;letter-spacing:1.8px}.cover{min-height:650px;height:calc(100svh - 135px);max-height:none}.cover-outline{inset:12px}.botanical:before{inset:0;width:100%;background-size:cover;mask-image:none;opacity:.7}.botanical:after{display:none}.cover-content{padding:90px 22px 75px}.cover .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:18px}.cover-ornament{font-size:30px;margin-bottom:19px}.cover h1{font-size:clamp(45px,11.8vw,67px);line-height:1.03;letter-spacing:-1.5px}.cover-subtitle{font-size:21px;max-width:240px;margin:20px auto 25px;line-height:1.2}.wedding-date time{font-size:29px}.wedding-date>span{font-size:9px;letter-spacing:2.5px}.cover-rsvp{margin-top:28px;min-width:195px;min-height:53px;font-size:12px}.cover-note{font-size:10px;max-width:240px;margin:15px auto 0}.cover-bottom{left:25px;right:25px;bottom:27px;font-size:7px;letter-spacing:1px;gap:15px}.cover-bottom>span:last-child{white-space:nowrap}.cover-footer{min-height:53px;justify-content:center;text-align:center}.cover-footer>span:first-child{font-size:16px}.cover-footer>span:last-child{display:none}.wedding-shell{padding:0;display:block}.invitation{min-height:0;padding:22px 26px;background-position:center 42%;background-size:cover}.invitation-inner{padding:22px 0 9px}.invitation .eyebrow{font-size:9px;margin-bottom:14px}.invitation h1{font-size:39px;line-height:1}.invitation .event-note{display:block;margin-top:20px;padding:0;border:0}.event-note span{font-size:10px;letter-spacing:2px}.event-note p{display:none}.response-panel{padding:25px 26px}.panel-header{font-size:9px}.response-content{padding:30px 0}.stepper{margin-bottom:32px}h2{font-size:40px}.intro{font-size:15px}.attendance-card strong{font-size:23px}.option-detail{font-size:13px}.invitation .brand{font-size:9px}.panel-footer{font-size:16px}}
@media(prefers-reduced-motion:reduce){.reveal,.botanical:before,.botanical:after{animation:none!important}.cover-rsvp{transition:none!important}}

/* Keep the live invitation text clear over the watercolor detail. */
.cover-content{isolation:isolate}.cover-content:before{content:'';position:absolute;z-index:-1;inset:35px 5%;background:radial-gradient(ellipse,#f8f9f6e8 25%,#f8f9f699 57%,transparent 73%);pointer-events:none}.invitation{background-image:linear-gradient(#f8f9f659,#f8f9f659),url('wedding-florals.png')}.invitation-inner{position:relative;isolation:isolate}.invitation-inner:before{content:'';position:absolute;inset:40px -12px;background:radial-gradient(ellipse,#f8f9f6c9 25%,#f8f9f670 62%,transparent 77%);z-index:-1;pointer-events:none}@media(max-width:700px){.cover-content:before{inset:55px 0 35px}.invitation-inner:before{inset:0 -10px}}
