@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Manrope:wght@400;500;600;700&family=Prata&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;color:var(--ink,#30362d);background:var(--paper,#f6f4ed);font:13px/1.9 Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}header{display:flex;justify-content:space-between;align-items:center;padding:24px 6%;border-bottom:1px solid var(--line,#d8dbcf);font-size:9px;letter-spacing:1.4px}header>span{font-style:italic}h1,h2,h3,p,figure{margin:0}h1,h2,h3,.sign{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:1.05}h2{font-size:clamp(44px,6vw,76px);letter-spacing:-1.5px}h2 i{font-weight:400}h3{font-size:30px}p{margin-top:20px}.overline{font-size:9px;letter-spacing:2.2px;font-weight:600}img{display:block;width:100%;height:100%;object-fit:cover}button{font:inherit;cursor:pointer}small{font-size:10px;opacity:.65}footer{text-align:center;padding:60px 20px;border-top:1px solid var(--line,#d8dbcf)}footer>span{font:40px 'Cormorant Garamond',Georgia}footer p,footer>a{font-size:9px;letter-spacing:1.4px}footer>a{display:inline-block;margin-top:22px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:5px}.cover{position:relative}.cover-type{text-align:center}.cover h1{font-size:clamp(64px,9vw,130px)}.cover h1 span{display:block}.cover h1 i{font-size:.6em}.cover-date{letter-spacing:2px;font-size:12px}.cover figure{position:relative}.cover figcaption{position:absolute;color:white}.cover-bottom{display:block;text-align:center;font-size:8px;letter-spacing:2px;padding:25px}.welcome{text-align:center;max-width:700px;margin:auto;padding:90px 25px}.welcome h2{margin:25px 0}.welcome>p:not(.overline){max-width:470px;margin:25px auto}.sign{font-size:28px;font-style:italic;margin-top:30px}.ornament{font-size:40px}.timer{padding:45px 20px;text-align:center;background:var(--panel)}.digits{display:flex;justify-content:center;gap:45px;margin-top:25px}.digits b{display:block;font:64px 'Cormorant Garamond',Georgia;line-height:1.1;min-width:65px}.digits span{font-size:8px;text-transform:uppercase;letter-spacing:2px}.schedule{max-width:1100px;margin:auto;padding:100px 40px;display:grid;grid-template-columns:1fr 1.2fr;gap:60px}.section-title h2{margin-top:25px}ol{list-style:none;padding:0;margin:0}li{display:flex;gap:22px;padding:25px 0;border-bottom:1px solid var(--line)}li p{font-size:11px;margin-top:12px}.event-number{font-size:9px;opacity:.5}time{font:24px 'Cormorant Garamond',Georgia;min-width:50px}.location{display:grid;grid-template-columns:1fr 1fr;background:var(--panel)}.location-photo{height:580px;position:relative}.location-photo>span{position:absolute;bottom:30px;left:30px;color:white;font-size:10px;letter-spacing:3px}.location-copy{padding:70px 13%;align-self:center}.location-copy h2{margin:25px 0;font-size:56px}.location-rule{width:60px;border-top:1px solid currentColor;margin-top:30px}.location-copy small{display:block;margin-top:25px}.dress{text-align:center;padding:100px 25px}.dress h2{margin:25px 0}.dress>p:not(.overline){max-width:470px;margin:25px auto}.colors{display:flex;justify-content:center;gap:15px;margin:35px 0}.colors span{width:65px;height:65px;background:var(--swatch);border-radius:50%}.response{padding:80px 40px 100px;max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line)}.response h2{margin:25px 0}.response label,.response legend{font-size:11px;display:block;margin-bottom:10px}form>input,textarea{border:0;border-bottom:1px solid var(--line);padding:13px 0;background:transparent;color:inherit;width:100%;font:12px Manrope,Arial;border-radius:0}fieldset{border:0;padding:0;margin:28px 0}fieldset label{margin:15px 0!important}input[type=radio]{accent-color:var(--ink);margin-right:8px}textarea{resize:vertical}button{margin-top:25px;display:flex;justify-content:space-between;width:100%;padding:18px 22px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);transition:opacity .25s}button:hover{opacity:.8}form>small{display:block;margin-top:13px;font-size:9px}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.js .reveal.visible{opacity:1;transform:none}
/* Mediterranean postcard: sun yellow, scalloped paper, a circular portrait. */
.italian-summer{--paper:#fff5eb;--ink:#235b70;--panel:#f0d4bc;--line:#d5b391}.italian-summer header{border-bottom:0}.italian-summer .cover{padding:40px 5% 0;background:#e5a176;overflow:hidden}.italian-summer .cover-type{position:relative;z-index:1}.italian-summer .cover h1{font-style:italic;letter-spacing:-4px}.italian-summer .cover h1 span{display:inline}.italian-summer .cover h1 i{padding:0 15px}.italian-summer .cover figure{width:68%;max-width:800px;height:430px;margin:35px auto 0;border-radius:48% 48% 0 0;overflow:hidden;border:10px solid #fff5eb;border-bottom:0}.italian-summer .cover figcaption{bottom:25px;left:0;width:100%;text-align:center;font:italic 45px 'Cormorant Garamond',Georgia}.italian-summer .cover-bottom{background:var(--paper);margin:0 -6%;padding:25px}.lemon-art{position:absolute;inset:0;pointer-events:none}.lemon-art span{position:absolute;font-size:110px;transform:rotate(-25deg);left:4%;top:170px}.lemon-art span:nth-child(2){left:auto;right:2%;top:50px;transform:rotate(30deg);font-size:85px}.lemon-art i{position:absolute;right:5%;bottom:120px;font-size:180px;color:#647749}.italian-summer .timer{border-top:8px dotted var(--paper);border-bottom:8px dotted var(--paper)}.italian-summer .location{margin:0 5%;border-radius:180px 0 0 0;overflow:hidden}.italian-summer .colors span:nth-child(even){transform:translateY(14px)}.italian-summer footer{background:#e5a176}
/* Engraved stationery: symmetrical invitation, inset borders and fine rules. */
.royal-classic{--paper:#fbf5e9;--ink:#672b3f;--panel:#f0e2d5;--line:#ccb295}.royal-classic h1,.royal-classic h2,.royal-classic h3{font-family:Prata,Georgia,serif}.royal-classic header{margin:0 5%}.royal-classic .cover{margin:30px auto 0;max-width:1100px;padding:65px 40px 0;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-9px}.royal-classic .cover h1{font-size:clamp(46px,6vw,76px);line-height:1.4;margin:25px 0}.royal-classic .cover h1 i{display:block;font:italic 50px 'Cormorant Garamond',Georgia}.royal-classic .cover figure{height:450px;max-width:780px;margin:45px auto 0;padding:8px;border:1px solid var(--line)}.royal-classic .cover figcaption{bottom:30px;text-align:center;width:100%;left:0;font:italic 36px 'Cormorant Garamond',Georgia}.royal-classic .welcome{padding-top:75px}.royal-classic h2{font-size:clamp(34px,4vw,52px);line-height:1.35;letter-spacing:-1px}.royal-classic .schedule{display:block;text-align:center;max-width:780px}.royal-classic ol{margin-top:50px}.royal-classic li{text-align:left;padding:28px 20px;align-items:center}.royal-classic .event-number{display:none}.royal-classic time{min-width:100px}.royal-classic .location{margin:0 auto;max-width:1100px;padding:30px;border:1px solid var(--line);background:transparent;gap:30px}.royal-classic .location-photo{height:460px}.royal-classic .location-copy{padding:20px;text-align:center}.royal-classic .location-rule{margin:30px auto}.royal-classic .colors span{border-radius:50% 50% 0 0;height:80px}.royal-classic .response{border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-9px;margin:0 auto 70px;padding:60px}.royal-classic footer{background:var(--panel)}
/* Magazine spread: oversize grotesque, offset photography and numbered rows. */
.modern-editorial{--paper:#f6f5f1;--ink:#192f9c;--panel:#dce1f1;--line:#a3acd2}.modern-editorial h1,.modern-editorial h2{font-family:Manrope,Arial,sans-serif;font-weight:500;letter-spacing:-5px;line-height:.98}.modern-editorial h2 i{font-family:'Cormorant Garamond',Georgia;font-weight:400;letter-spacing:-2px}.modern-editorial header{border-color:var(--ink)}.modern-editorial .cover{padding:40px 5% 0;display:grid;grid-template-columns:1fr 1fr;min-height:750px}.modern-editorial .cover-type{text-align:left;z-index:1;padding-top:20px;align-self:start}.modern-editorial .cover h1{font-size:clamp(80px,12vw,175px);text-transform:uppercase;margin:45px -180px 35px 0}.modern-editorial .cover h1 i{display:block;font:italic .55em 'Cormorant Garamond',Georgia;line-height:.7}.modern-editorial .cover figure{height:640px;margin:70px 0 0 -30px}.modern-editorial .cover img{filter:grayscale(1);object-position:65% center}.modern-editorial .cover figcaption{bottom:22px;right:20px;font-size:8px;letter-spacing:3px;writing-mode:vertical-rl}.modern-editorial .cover-bottom{grid-column:1/-1;text-align:left;border-bottom:1px solid var(--ink)}.modern-editorial .welcome{margin:0;max-width:950px;text-align:left;padding:110px 8%}.modern-editorial .welcome .ornament{display:none}.modern-editorial .welcome h2{font-size:clamp(55px,7vw,100px)}.modern-editorial .welcome>p:not(.overline){margin:30px 0 30px auto}.modern-editorial .sign{text-align:right}.modern-editorial .timer{background:var(--ink);color:var(--paper);padding:65px 20px}.modern-editorial .digits b{font-family:Manrope;font-size:80px;letter-spacing:-5px}.modern-editorial .schedule{display:block;max-width:none;padding:100px 7%}.modern-editorial .section-title{display:flex;justify-content:space-between;align-items:start}.modern-editorial .section-title h2{margin:0 10% 45px 0}.modern-editorial li{align-items:center;gap:35px;padding:30px 0;border-color:var(--ink)}.modern-editorial .event-number{font-size:40px;opacity:1;min-width:90px}.modern-editorial time{min-width:90px}.modern-editorial h3{font:24px Manrope;letter-spacing:-1px}.modern-editorial .location{grid-template-columns:1.2fr 1fr;background:transparent;gap:40px;margin:0 7%;align-items:end}.modern-editorial .location-photo{height:650px}.modern-editorial .location-photo img{filter:grayscale(1)}.modern-editorial .location-copy{padding:35px 0;align-self:end}.modern-editorial .location-copy h2{font-size:65px;letter-spacing:-4px;overflow-wrap:anywhere}.modern-editorial .dress{margin:80px 7%;padding:60px 0;display:grid;grid-template-columns:1fr 1fr;text-align:left;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.modern-editorial .dress h2{grid-column:1;grid-row:2/5;margin:20px 0}.modern-editorial .dress>p:not(.overline){margin:20px 0}.modern-editorial .colors{justify-content:start}.modern-editorial .colors span{border-radius:0}.modern-editorial .response{border:0;max-width:none;margin:0 7%;padding:20px 0 100px}.modern-editorial footer{background:var(--ink);color:var(--paper)}
.gallery{--paper:#f6f4ed;--ink:#34372f}.gallery main{max-width:1300px;padding:65px 6%;margin:auto}.gallery h1{font-size:clamp(60px,8vw,110px);letter-spacing:-3px;margin:25px 0}.gallery h1 i{color:#858b73}.gallery-intro{color:#7b7c70}.cards{display:grid;grid-template-columns:1fr 1fr;gap:55px 35px;margin-top:60px}.card{display:block}.preview{height:480px;position:relative;overflow:hidden;background:#e6e7db}.preview img{transition:transform .7s;object-position:center 65%}.card:hover img{transform:scale(1.035)}.preview-name{position:absolute;top:35px;left:20px;right:20px;font:45px 'Cormorant Garamond',Georgia;text-align:center;color:white}.preview>small{position:absolute;bottom:25px;left:0;right:0;text-align:center;color:white;font-size:8px;letter-spacing:2px;opacity:1}.romantic .preview{padding:75px 65px 0}.romantic .preview img{border-radius:180px 180px 0 0}.romantic .preview-name{color:#39432f;font-size:29px;top:20px}.italian-summer.card .preview{background:#e5a176;padding:95px 35px 0}.italian-summer.card img{border-radius:200px 200px 0 0}.italian-summer.card .preview-name{color:#235b70;font-style:italic}.royal-classic.card .preview{padding:100px 30px 30px;background:#f1ebe0;border:1px solid #d1c5ae;outline:1px solid #d1c5ae;outline-offset:-10px}.royal-classic.card .preview-name{color:#75674f;font-size:32px}.modern-editorial.card .preview{padding:0 0 0 100px;background:#d5d2c9}.modern-editorial.card img{filter:grayscale(1)}.modern-editorial.card .preview-name{font:600 55px/.95 Manrope;text-align:left;top:35px;left:20px;color:#222;max-width:200px;letter-spacing:-4px}.card-caption{display:flex;align-items:center;justify-content:space-between;padding-top:20px}.card-caption h2{font-size:28px;letter-spacing:-.5px}.card-caption p{margin:5px 0;font-size:11px;color:#858678}.card-caption>span{font-size:25px}.gallery footer{font-size:8px;letter-spacing:2px}
@media(max-width:700px){header{padding:20px 6%;font-size:8px;letter-spacing:1px}header>span{display:none}.cover h1{font-size:65px}.welcome{padding:65px 25px}.digits{gap:18px}.digits b{font-size:45px;min-width:45px}.digits span{font-size:7px}.schedule{grid-template-columns:1fr;padding:65px 25px;gap:25px}li{gap:13px}.event-number{display:none}h3{font-size:27px}.location{grid-template-columns:1fr}.location-photo{height:400px}.location-copy{padding:45px 28px}.location-copy h2{font-size:48px}.dress{padding:65px 25px}.response{grid-template-columns:1fr;gap:35px;padding:65px 25px}.colors span{width:55px;height:55px}.italian-summer .cover{padding-top:35px}.italian-summer .cover h1 span{display:block}.italian-summer .cover h1{line-height:.95;letter-spacing:-2px;font-size:77px;margin-top:25px}.italian-summer .cover h1 i{font-size:.45em;display:block;padding:8px}.italian-summer .cover figure{width:88%;height:390px;margin-top:25px;border-width:6px}.lemon-art span{font-size:60px;top:220px;left:-10px}.lemon-art span:nth-child(2){font-size:48px;top:100px;right:-10px}.lemon-art i{font-size:80px;right:-8%;bottom:170px}.italian-summer .location{border-radius:110px 0 0 0}.royal-classic .cover{margin:20px 16px 0;padding:45px 18px 0}.royal-classic .cover h1{font-size:38px;margin:25px 0;letter-spacing:-1px}.royal-classic .cover h1 i{font-size:34px}.royal-classic .cover figure{height:360px;margin-top:25px;padding:5px}.royal-classic .cover figcaption{font-size:27px}.royal-classic .cover-bottom{font-size:7px}.royal-classic .schedule{padding:65px 25px}.royal-classic li{padding:25px 0}.royal-classic time{min-width:60px}.royal-classic h3{font-size:21px;line-height:1.4}.royal-classic .location{margin:0 16px;padding:14px;gap:15px}.royal-classic .location-photo{height:350px}.royal-classic .location-copy{padding:25px 10px}.royal-classic .response{margin:0 16px 45px;padding:40px 25px}.modern-editorial .cover{display:block;padding:30px 6% 0;min-height:0}.modern-editorial .cover h1{font-size:clamp(76px,21vw,145px);margin:30px 0 -40px;position:relative;z-index:2}.modern-editorial .cover h1 i{padding-left:18px}.modern-editorial .cover-type{text-align:left;padding:0}.modern-editorial .cover-date{position:absolute;bottom:95px;left:25px;writing-mode:vertical-rl;font-size:9px}.modern-editorial .cover figure{margin:0 0 0 17%;height:440px}.modern-editorial .cover-bottom{padding:23px 0;font-size:7px}.modern-editorial .cover-date{color:var(--ink)}.modern-editorial .welcome{padding:70px 6%}.modern-editorial .welcome h2{font-size:57px;letter-spacing:-3px}.modern-editorial .welcome>p:not(.overline){margin-left:15%}.modern-editorial .timer{padding:45px 15px}.modern-editorial .digits b{font-size:48px;letter-spacing:-3px}.modern-editorial .schedule{padding:65px 6%}.modern-editorial .section-title{display:block}.modern-editorial .section-title h2{margin:25px 0 35px;font-size:60px}.modern-editorial li{gap:17px;align-items:start}.modern-editorial .event-number{display:block;font-size:22px;min-width:30px}.modern-editorial time{min-width:45px;font-size:20px}.modern-editorial h3{font-size:20px}.modern-editorial .location{grid-template-columns:1fr;margin:0 6%;gap:0}.modern-editorial .location-photo{height:440px}.modern-editorial .location-copy h2{font-size:55px;letter-spacing:-3px}.modern-editorial .dress{display:block;margin:20px 6% 65px;padding:45px 0}.modern-editorial .dress h2{font-size:60px}.modern-editorial .response{margin:0 6%;padding-bottom:65px}.modern-editorial .response h2{font-size:70px}.gallery main{padding:40px 6%}.gallery h1{font-size:63px}.gallery .overline{font-size:8px}.cards{grid-template-columns:1fr;gap:38px;margin-top:40px}.preview{height:440px}.card-caption h2{font-size:29px}.gallery header span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.preview img,button{transition:none}}

.romantic .preview{background:#f3dfe5}.romantic .preview-name{color:#633e50}.modern-editorial .cover img,.modern-editorial .location-photo img{filter:grayscale(1)}

.italian-summer.card .preview{background:#e5a176}.italian-summer.card .preview-name{color:#235b70}.royal-classic.card .preview-name{color:#672b3f}.modern-editorial.card .preview-name{color:#192f9c}

.create-invitation{display:inline-flex;align-items:center;gap:28px;margin-top:28px;padding:16px 24px;background:#633e50;color:#fff5f7;border-radius:3px;font-size:12px;transition:background .25s}.create-invitation:hover{background:#925c73}.create-invitation:focus-visible{outline:2px solid #633e50;outline-offset:5px}@media(max-width:480px){.create-invitation{display:flex;justify-content:space-between;width:100%}}

/* Demo thumbnails keep the subjects in view independently of invitation crops. */
.gallery .wildflower-meadow .preview img { object-position: center 56%; }
.gallery .newspaper-wedding .preview img { object-position: center 73%; }
.gallery .french-chateau .preview img { object-position: center 62%; }
.gallery .retro-love .preview img { object-position: 61% 48%; }

/* Print-inspired gallery entries */
.gallery .print-preview {isolation:isolate;display:grid;place-content:center;gap:.7rem;padding:2.8rem 15%;text-align:center;color:#71394c;background:url('/art/print-grain.svg'),#53553b}
.gallery .print-preview::before {content:"";position:absolute;z-index:-1;inset:10% 13%;background:url('/art/ribbon-lace.svg') center/100% 100% no-repeat;filter:drop-shadow(2px 8px 7px #29271d85)}
.gallery .print-preview::after {content:"";position:absolute;inset:6% auto auto 25%;width:50%;height:25%;background:url('/art/print-bow.svg') center/contain no-repeat;pointer-events:none}
.gallery .print-preview span {font:italic clamp(1.4rem,3vw,2.4rem)/1.1 Georgia,serif;overflow-wrap:anywhere}
.gallery .print-preview small {position:static;color:inherit;font-size:.6rem;text-transform:uppercase;letter-spacing:.12em}
.gallery .blue-heirloom .print-preview {background:url('/art/print-grain.svg'),linear-gradient(125deg,#4f687b,#94a8b6 42%,#4b657b);color:#385769}
.gallery .blue-heirloom .print-preview::before {inset:17% 7%;background-image:url('/art/heirloom-lace.svg')}
.gallery .blue-heirloom .print-preview::after {inset:5% auto auto 1%;width:35%;height:43%;background-image:url('/art/heirloom-flowers.svg')}

.gallery .illustrated-preview {
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;
  padding:1rem 15%;text-align:center;
  color:#76513f;background:url("/art/print-grain.svg"),#f0e3cf;
}
.gallery .illustrated-preview span {font:italic clamp(1.6rem,3vw,2.55rem)/1.13 Georgia,serif}
.gallery .sepia-romance .illustrated-preview::before,.gallery .sepia-romance .illustrated-preview::after {
  content:"";position:absolute;inset:6% auto 6% 0;width:23%;
  background:url("/art/sepia-botanical.svg") center/contain no-repeat;pointer-events:none;
}
.gallery .sepia-romance .illustrated-preview::after {left:auto;right:0;transform:scaleX(-1)}
.gallery .sepia-romance .illustrated-preview img {
  position:static;width:90%;height:auto;aspect-ratio:1.5;object-fit:cover;
  border:3px double #a98667;border-radius:50%;filter:grayscale(.92) sepia(.62);
}
.gallery .love-doodles .illustrated-preview {background:url("/art/print-grain.svg"),#efc8c8;color:#923e55}
.gallery .love-doodles .illustrated-preview svg {width:min(105%,19rem);height:auto;display:block}

.gallery .ca-preview {display:grid;place-items:center;padding:1rem 18%;text-align:center;color:#234f88}
.gallery .ca-preview span {font:italic clamp(1.5rem,3vw,2.4rem)/1.2 Georgia,serif}
.gallery .blue-porcelain .ca-preview {
  background:url("/art/porcelain-rim.svg") center/94% auto no-repeat,radial-gradient(ellipse,#fff 38%,#ceddea);
}
.gallery .wedding-atlas .ca-preview {background:url("/art/atlas-map.svg") center/cover no-repeat;color:#844631}
.gallery .wedding-atlas .ca-preview span {background:#fff3d9;padding:.55rem .8rem;border:3px double #a19070;transform:rotate(-3deg)}

/* Keep both faces in frame when the portrait is placed in a wide landscape slot. */
.royal-classic main :is(.cover,.location) img[src$="/royal-classic.webp"] { object-position: 50% 4%; }
