:root{color-scheme:light;--ink:#294f70;--paper:#f7fbff;--line:#abc4d7;font-family:Georgia,'Times New Roman',serif;color:var(--ink);background:#edf5fb;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-width:280px}
.invitation{min-height:100svh;position:relative;display:flex;flex-direction:column;padding:0 6%;background-color:var(--paper);background-image:url('blue-floral.png');background-size:cover;background-position:center}
.masthead{display:flex;align-items:center;justify-content:space-between;padding:27px 0 19px;gap:20px}
.monogram{font-size:2.3rem;letter-spacing:-.12em;font-style:italic;line-height:1}
.monogram span{font-size:1.5rem;margin:0 .18em}
.masthead-note,.eyebrow,.weekday,footer{font-family:Arial,Helvetica,sans-serif;font-size:.875rem;font-weight:400;letter-spacing:.16em}
.masthead-note{letter-spacing:.08em}
.announcement{text-align:center;flex:1;width:68%;margin-left:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 0 55px}
.eyebrow{text-transform:uppercase;letter-spacing:.3em;margin:0 0 33px}
 h1{font-weight:400;font-size:clamp(3rem,5.8vw,6.4rem);line-height:1.13;letter-spacing:-.045em;margin:0;display:flex;flex-direction:column;align-items:center}
 h1 em{font-size:.61em;font-weight:400;line-height:1.15;margin:.05em 0;color:#688ead}
.celebration{font-style:italic;font-size:1.3rem;margin:25px 0 0}
.date-block{margin-top:33px;padding-top:26px;position:relative}
.date-block:before{content:'';position:absolute;top:0;left:calc(50% - 25px);width:50px;height:1px;background:var(--line)}
.weekday{text-transform:uppercase;margin:0 0 12px;font-size:.8125rem}
.date{font-size:clamp(1.8rem,3vw,2.4rem);letter-spacing:-.02em;margin:0}
.closing{font-size:1.0625rem;line-height:1.6;margin:18px 0 0}
footer{padding:21px 0 27px;display:flex;justify-content:center;align-items:center;gap:25px;letter-spacing:.035em;font-size:.8125rem;line-height:1.5;text-align:center;width:68%;margin-left:auto}
.footer-mark{font-size:.75rem;color:#688ead}
@media(min-width:1100px) and (min-height:860px){.announcement{padding-top:60px;padding-bottom:70px}h1{font-size:7rem}.date-block{margin-top:42px}}
@media(max-width:700px){.invitation{padding:0 6%;background-position:57% center}.masthead{padding:22px 0}.masthead-note{font-size:.75rem;letter-spacing:.02em}.monogram{font-size:2rem}.announcement{width:100%;padding:44px 6px 39px;background:radial-gradient(ellipse,rgba(247,251,255,.94) 30%,rgba(247,251,255,.82) 60%,rgba(247,251,255,0) 74%)}.eyebrow{font-size:.8125rem;margin-bottom:31px}h1{font-size:clamp(2.7rem,10.5vw,4.5rem)}.celebration{font-size:1.15rem}.date-block{margin-top:31px}.closing{font-size:1rem;max-width:230px}footer{width:100%;flex-direction:column;gap:7px;padding:21px 0;font-size:.75rem}.footer-mark{display:none}}
@media(prefers-reduced-motion:no-preference){.announcement{animation:arrive .85s ease-out both}@keyframes arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}}
.celebration-layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:center;gap:6%;padding:25px 0 40px}
.portrait{margin:0;width:100%;aspect-ratio:4/5;border-radius:48% 48% 3px 3px;overflow:hidden;border:9px solid #fff;box-shadow:0 14px 55px #294f701c;transform:rotate(-3deg)}
.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:51% 45%}
.announcement{width:100%;padding:15px 0;margin:0}
h1{font-size:clamp(3rem,5.1vw,5.9rem)}
.masthead-note{padding:8px 12px;background:#ffffffc9;border-radius:3px}
.monogram{background:#ffffffdc;border-radius:50%;width:57px;height:57px;display:flex;align-items:center;justify-content:center;padding-right:5px}
footer{width:100%;background:#ffffffb8}
@media(min-width:1400px){.celebration-layout{max-width:1350px;width:100%;margin:auto}.portrait{max-height:650px;width:auto;max-width:100%}}
@media(max-width:700px){.invitation{background-size:auto 100%;background-position:42% top}.celebration-layout{grid-template-columns:1fr;gap:35px;padding:25px 0 30px}.portrait{width:82%;max-width:390px;justify-self:center;aspect-ratio:4/4.7;border-width:7px;transform:rotate(-2deg)}.announcement{padding:22px 5px 29px;background:radial-gradient(ellipse,#f7fbfff5 35%,#f7fbffdc 60%,#f7fbff00 77%)}h1{font-size:clamp(2.8rem,10.7vw,4.7rem)}footer{margin-bottom:14px;padding:15px 8px}}
:root{font-family:'Cormorant Garamond','Palatino Linotype',serif}
h1{font-family:'Cormorant Garamond','Palatino Linotype',serif;font-style:italic;font-weight:500;letter-spacing:-.035em;line-height:1.07}
h1 em{font-weight:400;margin:.02em 0}
.monogram{font-family:'Cormorant Garamond','Palatino Linotype',serif;font-size:1.9rem;font-weight:500;font-style:normal;letter-spacing:-.065em;padding-right:3px}
.monogram span{font-size:1.4rem;margin:0 .08em;font-style:italic}
.celebration{font-size:1.5rem}.closing{font-size:1.25rem}.date{font-weight:500;font-size:2.65rem}
@media(max-width:700px){.celebration{font-size:1.4rem}.closing{font-size:1.2rem}.date{font-size:2.4rem}}
.portrait{transform:none}
.portrait{padding:21px;border:1px solid #b8cfdf;background:#f8fcff url('blue-floral.png') center/cover;box-shadow:0 12px 44px #294f7021}
.portrait img{border-radius:48% 48% 2px 2px;box-shadow:0 0 0 4px #ffffffbd}
@media(max-width:700px){.portrait{padding:16px;border-width:1px}}
.portrait{position:relative;padding:0;border:0;background:none;box-shadow:none;border-radius:0;overflow:visible;aspect-ratio:4/5;transform:none;max-height:none}
.portrait>img.couple-photo{position:absolute;left:13%;top:12%;width:74%;height:78%;border-radius:48% 48% 3px 3px;box-shadow:none;object-position:51% 43%}
.portrait>img.floral-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;border-radius:0;box-shadow:none;pointer-events:none}
.details-link{display:inline-block;margin-top:27px;color:var(--ink);font:500 .875rem Arial,sans-serif;text-underline-offset:6px;text-decoration-thickness:1px}
.guest-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:7%;margin:35px auto 55px;padding:55px 5%;width:100%;max-width:1200px;background:#ffffffed;border:1px solid #c9dce9;border-radius:5px}
.form-intro .eyebrow{font-size:.75rem;letter-spacing:.16em;line-height:1.8;margin-bottom:19px}
h2{font-size:clamp(2.2rem,3vw,3.2rem);font-weight:400;line-height:1.13;letter-spacing:-.025em;margin:0 0 24px}h2 em{font-weight:400}.form-intro>p:last-child{font-size:1.25rem;line-height:1.5;max-width:310px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label,.address-field>label{display:block;font:400 .875rem/1.5 Arial,sans-serif}.form-grid input{display:block;width:100%;margin-top:7px;padding:13px 12px;border:1px solid #b9cfdf;border-radius:4px;background:#fbfdff;color:#233f57;font:400 1rem/1.35 Arial,sans-serif;min-width:0}.form-grid input:focus{outline:2px solid #668fb1;outline-offset:2px}.full{grid-column:1/-1}.optional{color:#627688;font-size:.8125rem}.field-help,.privacy-note,.attribution,.form-status{font-family:Arial,sans-serif;font-size:.8125rem;line-height:1.5;color:#526a7c}.field-help{margin:7px 0 0}.privacy-note{margin:23px 0 17px}.submit-button{padding:15px 25px;border:0;border-radius:4px;background:#294f70;color:white;font:500 1rem/1.4 Arial,sans-serif;cursor:pointer;width:100%}.submit-button:hover{background:#1a3d5b}.submit-button:disabled{opacity:.6;cursor:wait}.submit-button:focus-visible,.details-link:focus-visible{outline:3px solid #6896b9;outline-offset:4px}.attribution{font-size:.75rem;text-align:center;margin-top:15px}.attribution a{color:inherit}.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.address-field{position:relative}#address-results{position:absolute;z-index:20;left:0;right:0;top:78px;list-style:none;margin:0;padding:5px;background:white;border:1px solid #a9c6da;border-radius:5px;box-shadow:0 10px 22px #294f7020;font:400 .875rem/1.45 Arial,sans-serif}#address-results li{padding:11px 9px;cursor:pointer;border-radius:3px}#address-results li:hover,#address-results li[aria-selected=true]{background:#e5f0f8}.form-status{margin-bottom:0;color:#8a3440}.thank-you{align-self:center;text-align:center;padding:30px 10px}.thank-you>span{font-size:2rem;color:#799fbc}.thank-you h3{font-size:2.8rem;font-weight:400;margin:13px 0}.thank-you p{font-size:1.25rem;line-height:1.5}.signoff{font-style:italic}[hidden]{display:none!important}
@media(min-width:1400px){.portrait{width:100%;max-height:none}}
@media(max-width:700px){.portrait{padding:0;width:94%;max-width:420px;aspect-ratio:4/5}.guest-section{grid-template-columns:1fr;gap:22px;padding:32px 7%;margin-top:0}.form-intro>p:last-child{max-width:none}.form-grid{gap:17px 13px}h2{font-size:2.65rem}}
@media(max-width:380px){.form-grid{grid-template-columns:1fr}}
.celebration-layout{gap:5%;padding-top:25px;padding-bottom:50px;grid-template-columns:1fr 1fr}
.announcement{position:relative;padding:40px 25px 35px;background:#ffffffed;border:1px solid #8caec7;outline:1px solid #8caec7;outline-offset:-8px;border-radius:25px 5px 25px 5px;min-height:620px}
.card-monogram{font-size:2.4rem;letter-spacing:-.08em;color:#547b9b;line-height:1;margin:0 0 34px;font-weight:500}.card-monogram span{font-size:1.65rem;font-style:italic;margin:0 .1em}
.script-title{font-family:'Great Vibes','Brush Script MT',cursive;font-size:clamp(2.8rem,4.7vw,5rem);font-weight:400;line-height:1.35;margin:0 0 28px;color:#426e91;white-space:nowrap}.script-title span{font-family:'Cormorant Garamond',serif;text-transform:uppercase;font-size:.28em;letter-spacing:.09em;vertical-align:middle;margin:0 .4em}
.wedding-of{font-size:1.1rem;margin:0 0 23px;color:#52718b}
h1{font-family:'Cormorant Garamond','Palatino Linotype',serif;font-style:normal;font-weight:400;font-size:clamp(2rem,3.4vw,3.4rem);letter-spacing:.025em;line-height:1.2}h1 em{font-family:'Great Vibes',cursive;font-size:.67em;margin:.16em 0}
.date-block{margin-top:28px;padding-top:0}.date-block:before{display:none}.weekday{font-family:'Cormorant Garamond',serif;font-size:1.15rem;letter-spacing:.015em;text-transform:none;margin-bottom:4px}.date{font-size:1.15rem;letter-spacing:.015em;font-weight:400}.closing{font-size:1.05rem;margin-top:20px}.details-link{font-size:.8125rem;margin-top:20px}.masthead-note{display:none}.masthead{padding-top:18px;padding-bottom:0}.masthead .monogram{opacity:.85}
@media(max-width:700px){.celebration-layout{grid-template-columns:1fr;gap:28px;padding-top:12px}.announcement{padding:38px 17px 35px;min-height:580px;width:100%;background:#fffffff0}.script-title{font-size:clamp(2.7rem,11vw,4.3rem);margin-bottom:25px}h1{font-size:clamp(2.15rem,8.5vw,3.2rem)}.card-monogram{margin-bottom:27px}.weekday,.date{font-size:1.1rem}.closing{font-size:1.1rem}.masthead{padding-top:15px}.portrait{width:90%}}

/* A few delicate floral sprigs, matching the shareable card. */
.location{font-size:1.15rem;letter-spacing:.025em;margin:12px 0 0;color:#52718b}
.calendar-link{display:inline-block;margin-top:12px;color:var(--ink);font:400 .8125rem/1.5 Arial,sans-serif;text-underline-offset:4px;padding:5px 8px}.calendar-link:focus-visible{outline:2px solid #6896b9;outline-offset:3px}
.calendar-picker{margin:0 auto;max-width:260px}.calendar-picker summary{cursor:pointer;text-decoration:underline;list-style:none}.calendar-picker summary::-webkit-details-marker{display:none}.calendar-options{margin:8px 0 0;padding:7px;background:#f8fbfe;border:1px solid #bdd1e0;border-radius:8px;text-align:left}.calendar-options a{display:block;padding:11px 13px;border-radius:5px;color:var(--ink);font:500 .875rem/1.4 Arial,sans-serif;text-decoration:none}.calendar-options a:hover{background:#e6eff7}.calendar-options a:focus-visible{outline:2px solid #6896b9;outline-offset:1px}.calendar-options span{display:block;margin-top:3px;color:#526a7c;font-size:.8125rem;font-weight:400}.calendar-options a.calendar-download{font-size:.8125rem;text-align:center;text-decoration:underline;text-underline-offset:3px}
.invitation{background-image:none;background-color:#fafcfe}
.portrait>img.couple-photo{outline:1px solid #a3c0d5;outline-offset:6px}
.portrait>img.floral-sprig{position:absolute;inset:auto;width:30%;height:43%;object-fit:contain;border-radius:0;box-shadow:none;pointer-events:none}
.portrait>img.sprig-top{right:0;top:3%;transform:rotate(-15deg)}
.portrait>img.sprig-bottom{left:0;bottom:2%;transform:rotate(165deg)}
