@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght,SOFT,WONK@9..144,400,15,1;9..144,500,15,1&display=swap');
:root{--cream:#f7f5ee;--paper:#fffdf7;--ink:#324737;--muted:#687367;--line:#d9ddd1;--clay:#a87b60;--serif:Fraunces,Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}img{max-width:100%}button,input,textarea,select{font:inherit}a{color:inherit}button{cursor:pointer}.container{width:min(100% - 72px,1280px);margin-inline:auto}.skip-link{position:absolute;top:-100px;left:12px;z-index:999;background:#fff;padding:12px}.skip-link:focus{top:12px}:focus-visible{outline:2px solid var(--clay);outline-offset:4px}em{font-weight:400}.eyebrow{font:500 10px/1.5 var(--mono);letter-spacing:.17em;color:var(--clay);text-transform:uppercase}.eyebrow-line{display:inline-block;width:26px;border-top:1px solid currentColor;vertical-align:middle;margin-right:10px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:52px;padding:14px 21px;text-decoration:none;border:1px solid transparent;font:600 12px var(--sans);transition:background .2s,color .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:17px;font-weight:400}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#49654c}.button-outline{border-color:var(--ink);color:var(--ink);background:transparent}.button-outline:hover{background:var(--ink);color:#fff}.button-light{background:var(--paper);color:var(--ink)}.underlined,.text-arrow{display:inline-flex;align-items:center;gap:20px;border-bottom:1px solid currentColor;padding-bottom:5px;text-decoration:none;font-size:12px;font-weight:700}.text-arrow span{font-size:18px;color:var(--clay)}
.site-header{position:relative;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{min-height:88px;display:flex;justify-content:space-between;align-items:center;gap:24px}.site-brand,.footer-brand{display:inline-flex;align-items:center}.brand-logo,.brand-custom{display:block;width:192px;height:auto;max-height:60px;object-fit:contain}.site-nav{display:flex;align-items:center;gap:35px}.site-nav a{text-decoration:none;font-size:12px;font-weight:600;transition:color .2s}.site-nav a:hover{color:var(--clay)}.site-nav .nav-contact{padding:12px 18px;border:1px solid var(--ink);border-radius:2px}.nav-contact span{font-size:16px;margin-left:14px}.menu-toggle{display:none;background:none;border:0;padding:10px}.menu-toggle span{display:block;width:23px;height:1px;background:var(--ink);margin:6px 0}
.home-hero{background:var(--cream);overflow:hidden}.hero-grid{min-height:680px;display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:6vw}.hero-copy{padding:72px 0 78px;position:relative;z-index:2}.hero-copy h1{max-width:650px;margin:30px 0 24px;font:400 clamp(54px,5.6vw,91px)/.98 var(--serif);letter-spacing:-.065em}.hero-copy h1 em{color:var(--clay)}.hero-intro{max-width:490px;color:#5d6c5c;font-size:16px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:34px}.hero-footnote{margin-top:55px;font:10px var(--mono);letter-spacing:.08em;color:#7a8677}.spark{font-size:22px;vertical-align:middle;color:var(--clay);margin-right:9px}.hero-visual{position:relative;height:680px;display:flex;align-items:center;justify-content:center}.hero-photo-frame{position:relative;width:min(84%,510px);height:570px;margin-top:48px;background:#d8dfd3;padding:11px;z-index:2;box-shadow:0 25px 55px rgba(40,54,43,.12)}.hero-photo-frame img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.78) sepia(.08)}.hero-photo-caption{position:absolute;left:30px;bottom:27px;right:30px;display:flex;justify-content:space-between;color:#fff;font:italic 18px var(--serif);text-shadow:0 2px 9px #213226}.hero-photo-caption span{font-size:25px}.hero-arch{position:absolute;width:80%;height:74%;border:1px solid #c1cbbd;border-radius:48% 48% 0 0;transform:translate(28px,-28px)}.hero-bloom{position:absolute;z-index:3;right:3%;top:12%;font:110px var(--serif);color:#ac8067;transform:rotate(-12deg)}
.intro-band{background:#dfe7dc;border-block:1px solid #cad6c8}.intro-band-inner{min-height:104px;display:flex;justify-content:space-between;align-items:center;gap:20px}.intro-band span{font:9px var(--mono);letter-spacing:.12em;color:#6c816c}.intro-band p{font:400 clamp(23px,2.5vw,36px) var(--serif);margin:0;text-align:center}.intro-band em{color:#997a5f}.section{padding:115px 0}.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:42px}.section-title-row h2,.story-copy h2,.process-section h2,.final-cta h2,.gallery-end h2{font:400 clamp(46px,5vw,75px)/.98 var(--serif);letter-spacing:-.055em;margin:14px 0 0}.section-title-row h2 em,.story-copy h2 em,.process-section h2 em,.final-cta h2 em,.gallery-end h2 em{color:var(--clay)}.section-title-row>p{max-width:370px;color:var(--muted);font-size:14px;line-height:1.8}.featured-section{background:#fffdf8}.featured-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.feature-card{text-decoration:none;background:var(--card-paper);color:var(--card-ink);min-width:0;transition:transform .25s,box-shadow .25s}.feature-card:hover{transform:translateY(-6px);box-shadow:0 20px 30px #2b39231e}.feature-image{position:relative;aspect-ratio:.83;overflow:hidden}.feature-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s;filter:saturate(.8)}.feature-card:hover img{transform:scale(1.04)}.feature-image:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#17201966)}.feature-image span{position:absolute;bottom:17px;left:17px;z-index:1;color:#fff;font:10px var(--mono);letter-spacing:.1em}.feature-info{padding:23px 20px 26px}.feature-info>span{font:9px var(--mono);letter-spacing:.13em;color:var(--card-accent)}.feature-info h3{font:400 34px var(--serif);margin:10px 0}.feature-info p{font-size:12px;line-height:1.7;margin:0;min-height:42px}.section-tail{text-align:center;margin-top:45px}
.story-section{background:#ecefe6;padding:100px 0}.story-grid{display:grid;grid-template-columns:1fr .9fr;gap:9vw;align-items:center}.story-image{position:relative;height:560px;padding:10px;background:#fff;box-shadow:0 14px 35px #1f392017;transform:rotate(-2deg)}.story-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}.image-stamp{position:absolute;right:-30px;bottom:48px;width:110px;height:110px;border-radius:50%;background:#7d986e;color:#fff;display:grid;place-items:center;text-align:center;transform:rotate(12deg);font:15px var(--serif);letter-spacing:.1em}.story-copy h2{margin-bottom:26px}.story-copy>p:not(.eyebrow){font-size:14px;line-height:1.9;color:#536454}.story-copy ul{list-style:none;margin:30px 0 36px;padding:0;border-top:1px solid #c7d0c3}.story-copy li{border-bottom:1px solid #c7d0c3;padding:16px 0;font:13px var(--sans)}.story-copy li span{font:10px var(--mono);color:var(--clay);margin-right:20px}.process-section{text-align:center}.process-section h2{max-width:800px;margin:15px auto 50px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left}.process-grid article{border:1px solid var(--line);padding:35px 30px 40px;background:#f9f8f3}.process-grid article>span{font:10px var(--mono);letter-spacing:.1em;color:var(--clay)}.process-grid h3{font:400 28px var(--serif);margin:40px 0 14px}.process-grid p{font-size:13px;line-height:1.75;color:var(--muted);margin:0}.final-cta{background:#314936;color:#fff;text-align:center;padding:100px 0}.final-cta .eyebrow{color:#c5b9a6}.final-cta h2{max-width:800px;margin:15px auto 18px}.final-cta h2 em{color:#d6b498}.final-cta p{color:#e0e7de;font-size:14px;margin-bottom:28px}
.site-footer{background:#e9eee6;padding:70px 0 25px}.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:70px}.footer-grid p{font-size:12px;line-height:1.8;color:#657566;max-width:260px}.footer-grid h2{font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 19px;color:var(--clay)}.footer-grid a:not(.footer-brand){display:block;text-decoration:none;font-size:12px;margin:0 0 14px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #cdd6c9;margin-top:55px;padding-top:20px;font:10px var(--mono);color:#71806d}
.demo-index-hero{background:#e8ede4;padding:90px 0 65px;border-bottom:1px solid #d5ddce}.demo-index-hero h1{font:400 clamp(56px,7vw,108px)/.95 var(--serif);letter-spacing:-.064em;max-width:940px;margin:25px 0 40px}.demo-index-hero h1 em{color:var(--clay)}.demo-index-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.demo-index-bottom p{max-width:550px;font-size:15px;line-height:1.8;color:#5b6e5d}.demo-index-bottom span{font:10px var(--mono);letter-spacing:.1em;color:#6b826b;white-space:nowrap}.demo-gallery{padding-top:46px;padding-bottom:110px}.gallery-tools{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:30px}.gallery-tools>p{font:italic 24px var(--serif);margin:0}.gallery-filters{display:flex;flex-wrap:wrap;gap:6px}.gallery-filters button{border:1px solid #d2d8cc;background:transparent;color:#516050;border-radius:100px;padding:9px 15px;font:11px var(--sans)}.gallery-filters button.is-active,.gallery-filters button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.gallery-filters span{font-size:9px;margin-left:3px;opacity:.65}.demo-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:38px 18px}.demo-tile{text-decoration:none;color:var(--tile-ink);background:var(--tile-paper);border:1px solid #e7e6dd;min-width:0;transition:transform .25s,box-shadow .25s}.demo-tile[hidden]{display:none}.demo-tile:hover{transform:translateY(-5px);box-shadow:0 16px 28px #2d3f2b20}.demo-tile-photo{position:relative;aspect-ratio:.91;overflow:hidden}.demo-tile-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82);transition:transform .35s}.demo-tile:hover img{transform:scale(1.05)}.demo-tile-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(#0005,transparent 22%,transparent 70%,#0006);pointer-events:none}.demo-tile-number,.demo-tile-open{position:absolute;z-index:1;color:#fff;font:9px var(--mono);letter-spacing:.1em}.demo-tile-number{left:15px;top:15px}.demo-tile-open{left:15px;bottom:16px}.demo-tile-body{display:flex;justify-content:space-between;gap:10px;padding:22px 18px 25px}.demo-tile-location{font:8px var(--mono);letter-spacing:.1em;color:var(--tile-accent)}.demo-tile h2{font:400 28px var(--serif);margin:9px 0}.demo-tile p{font-size:11px;line-height:1.65;opacity:.78;margin:0}.demo-tile-arrow{font-size:20px;color:var(--tile-accent)}.gallery-end{text-align:center;padding:90px 0;background:#f0ede3}.gallery-end h2{max-width:720px;margin:15px auto}.gallery-end p:not(.eyebrow){font-size:14px;color:var(--muted);margin:20px 0 28px}
.wedding-demo{background:var(--demo-paper);color:var(--demo-ink);font-family:var(--sans)}.demo-preview-bar{position:sticky;top:0;z-index:60;background:#1f2522;color:#f9f5eb;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px max(24px,calc((100vw - 1280px)/2));font:10px var(--mono);letter-spacing:.08em}.demo-preview-bar a{text-decoration:none;opacity:.9}.demo-preview-bar a:hover{text-decoration:underline}.demo-preview-bar b{color:#bfb8a5}.wedding-hero{min-height:675px;display:grid;grid-template-columns:52% 48%;position:relative}.wedding-hero-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 5vw}.demo-overline{font:10px var(--mono);letter-spacing:.22em;color:var(--demo-accent)}.hero-monogram{font:400 23px var(--serif);border:1px solid var(--demo-accent);width:92px;height:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:26px 0 28px}.hero-monogram span{font-size:10px;color:var(--demo-accent);margin:0 5px}.wedding-hero h1{font:400 clamp(58px,6vw,100px)/.95 var(--serif);letter-spacing:-.07em;margin:0;max-width:650px}.wedding-ornament{color:var(--demo-accent);font-size:20px;letter-spacing:.2em;margin:17px 0}.wedding-storyline{font:italic 23px/1.35 var(--serif);max-width:450px;margin:0 auto 24px}.wedding-date{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;display:flex;flex-wrap:wrap;justify-content:center;gap:13px}.wedding-date span{height:12px;border-left:1px solid var(--demo-accent)}.demo-button{display:inline-flex;gap:34px;align-items:center;background:var(--demo-ink);color:var(--demo-paper);border:1px solid var(--demo-ink);padding:15px 20px;text-decoration:none;font:600 11px var(--sans);margin-top:25px;cursor:pointer}.demo-button:hover{background:var(--demo-accent);border-color:var(--demo-accent);color:#fff}.demo-button span{font-size:16px}.wedding-hero-image{position:relative;overflow:hidden;min-height:600px}.wedding-hero-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:saturate(.83)}.image-label{position:absolute;bottom:26px;right:32px;color:#fff;font:10px var(--mono);letter-spacing:.16em;text-shadow:0 2px 5px #000}.image-label span{color:#e5d4c3}.demo-container{width:min(100% - 64px,1120px);margin-inline:auto}.wedding-intro{padding:110px 0;text-align:center}.wedding-intro .demo-container{max-width:790px}.wedding-intro h2,.wedding-section-heading h2,.venue-section h2,.rsvp-section h2{font:400 clamp(42px,5vw,70px)/1 var(--serif);letter-spacing:-.055em;margin:20px 0}.wedding-intro h2 em,.wedding-section-heading h2 em,.venue-section h2 em,.rsvp-section h2 em{color:var(--demo-accent)}.wedding-intro p{font-size:15px;line-height:1.85;opacity:.8;max-width:650px;margin:25px auto}.intro-signature{font:italic 27px var(--serif);color:var(--demo-accent)}.wedding-details{padding:100px 0;background:color-mix(in srgb,var(--demo-paper) 82%,var(--demo-accent))}.wedding-section-heading{text-align:center;max-width:700px;margin:0 auto 50px}.wedding-section-heading p{opacity:.75;font-size:14px}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--demo-accent);border-bottom:1px solid var(--demo-accent)}.event-grid article{padding:32px 30px 40px;border-right:1px solid var(--demo-accent)}.event-grid article:last-child{border-right:0}.event-number{float:right;font:11px var(--mono);color:var(--demo-accent)}.event-time{font:11px var(--mono);color:var(--demo-accent)}.event-grid h3{font:400 31px var(--serif);margin:36px 0 14px}.event-grid p{font-size:13px;line-height:1.75;opacity:.76;max-width:280px}.venue-section{padding:110px 0}.venue-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:center}.venue-section h3{font:400 28px var(--serif);margin:30px 0 5px}.venue-section p{font-size:14px;line-height:1.8;opacity:.76}.venue-link{display:inline-flex;gap:25px;border-bottom:1px solid var(--demo-accent);padding-bottom:8px;text-decoration:none;font-size:12px;font-weight:700;margin-top:18px}.venue-visual{min-height:390px}.venue-visual iframe{border:0;width:100%;height:390px;filter:saturate(.7)}.venue-visual small{display:block;font:10px var(--mono);opacity:.7;margin-top:9px}.venue-art{height:390px;border:1px solid var(--demo-accent);background:color-mix(in srgb,var(--demo-paper) 70%,var(--demo-accent));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative}.venue-art:before{content:'';position:absolute;inset:13px;border:1px solid var(--demo-accent);opacity:.65}.venue-art span{font-size:30px;color:var(--demo-accent)}.venue-art strong{font:400 58px var(--serif);margin:15px}.venue-art em{font:11px var(--mono);letter-spacing:.2em;text-transform:uppercase}.guest-notes{padding:95px 0;background:color-mix(in srgb,var(--demo-paper) 85%,var(--demo-ink))}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.notes-grid article{padding:26px 0;border-top:1px solid var(--demo-accent)}.notes-grid article>span{color:var(--demo-accent);font-size:24px}.notes-grid h3{font:400 26px var(--serif);margin:15px 0 10px}.notes-grid p{font-size:13px;line-height:1.75;opacity:.75}.rsvp-section{padding:110px 0;text-align:center}.rsvp-inner{max-width:640px}.rsvp-section p{line-height:1.7;font-size:13px;opacity:.8}.demo-rsvp{text-align:left;display:grid;gap:18px;margin-top:35px}.demo-rsvp label,.contact-form label{display:grid;gap:9px;font-size:11px;font-weight:700}.demo-rsvp input[type=text],.demo-rsvp select,.contact-form input,.contact-form textarea{width:100%;border:1px solid #b9c4b5;background:#ffffffaa;padding:14px;color:inherit;border-radius:0;outline-color:var(--demo-accent)}.demo-rsvp fieldset{border:1px solid #b9c4b5;display:flex;gap:30px;padding:15px}.demo-rsvp legend{font-size:11px;font-weight:700}.demo-rsvp fieldset label{display:flex;align-items:center;gap:7px}.demo-rsvp .demo-button{justify-self:start}.rsvp-result{background:color-mix(in srgb,var(--demo-paper) 70%,var(--demo-accent));padding:18px;margin:5px 0!important;font-weight:700}.demo-footer{text-align:center;padding:60px 0 35px;background:var(--demo-ink);color:var(--demo-paper)}.demo-footer p{font:400 42px var(--serif);margin:0 0 10px}.demo-footer span{font:10px var(--mono);letter-spacing:.12em}.demo-footer div div{display:flex;justify-content:center;gap:25px;margin:36px 0}.demo-footer a{font-size:11px;text-decoration:none;border-bottom:1px solid;padding-bottom:5px}.demo-footer small{font:9px var(--mono);opacity:.6}
.family-minimal .wedding-hero{grid-template-columns:1fr}.family-minimal .wedding-hero-copy{min-height:530px}.family-minimal .wedding-hero-image{height:460px;min-height:0}.family-minimal .wedding-hero h1{font-size:clamp(70px,9vw,132px)}.family-minimal .hero-monogram{border:0;margin:5px 0 15px}.family-minimal .wedding-ornament{display:none}.family-ornate .wedding-hero-copy{outline:1px solid var(--demo-accent);outline-offset:-22px}.family-ornate .wedding-hero h1{font-style:italic}.family-ornate .wedding-ornament{font-size:29px}.family-ornate .event-grid article{background:var(--demo-paper)}.family-editorial .wedding-hero{grid-template-columns:47% 53%}.family-editorial .wedding-hero-copy{align-items:flex-start;text-align:left;padding-left:max(6vw,calc((100vw - 1280px)/2))}.family-editorial .hero-monogram{border-radius:0;width:auto;height:auto;border:0;margin:0 0 35px}.family-editorial .wedding-storyline{margin-left:0}.family-editorial .wedding-date{justify-content:flex-start}.family-editorial .wedding-ornament{letter-spacing:.5em}.family-colorful .wedding-hero{grid-template-columns:55% 45%}.family-colorful .wedding-hero-copy{background:var(--demo-accent);color:#fff}.family-colorful .wedding-hero-copy .demo-overline,.family-colorful .wedding-ornament{color:#fff}.family-colorful .hero-monogram{border-color:#fff}.family-colorful .demo-button{background:var(--demo-ink);color:#fff;border-color:var(--demo-ink)}
.contact-hero{padding:90px 0 75px;background:#e8ede4}.contact-hero h1,.content-page h1,.not-found h1{font:400 clamp(55px,7vw,100px)/.98 var(--serif);letter-spacing:-.06em;max-width:900px;margin:17px 0}.contact-hero h1 em,.not-found h1 em{color:var(--clay)}.contact-hero p:last-child{font-size:15px;color:var(--muted);line-height:1.7}.contact-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:9vw;padding-top:85px;padding-bottom:115px}.contact-form-wrap h2,.contact-aside h2{font:400 38px var(--serif);margin:0 0 12px}.contact-form-wrap>p,.contact-aside p{font-size:13px;color:var(--muted);line-height:1.8}.contact-form{display:grid;gap:22px;margin-top:35px}.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form label span{color:var(--clay)}.contact-form .button{justify-self:start}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-message{background:#f8e9e3;border-left:3px solid #a04839;padding:15px;margin:20px 0;font-size:13px}.form-message.success{background:#e8f1e6;border-color:#567d53}.contact-aside{background:#eff2e9;padding:45px;align-self:start}.contact-aside-star{font-size:38px;color:var(--clay)}.contact-aside h2{margin-top:25px}.contact-aside-rule{border-top:1px solid #cbd5c6;margin:35px 0}.contact-aside>span:not(.contact-aside-star){display:block;font:9px var(--mono);color:var(--clay);letter-spacing:.12em;margin:20px 0 7px}.contact-aside a{display:block;font-size:13px;text-decoration:none;border-bottom:1px solid;width:max-content;max-width:100%;overflow-wrap:anywhere;padding-bottom:4px}.content-page{padding-top:90px;padding-bottom:130px;min-height:60vh}.content-page h1{margin-bottom:50px}.content-prose{max-width:740px;font-size:15px;line-height:1.85;color:#546454}.content-prose h2,.content-prose h3{font-family:var(--serif);font-weight:400;color:var(--ink)}.content-prose a{color:var(--clay)}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.post-grid article{border-top:1px solid var(--line);padding-top:25px}.post-grid h2{font:400 30px var(--serif)}.post-grid h2 a{text-decoration:none}.post-grid p{font-size:13px;line-height:1.7}.not-found{padding-top:110px;padding-bottom:140px;min-height:60vh}.not-found p:not(.eyebrow){font-size:15px;color:var(--muted)}
@media(max-width:1050px){.container{width:min(100% - 48px,1280px)}.featured-grid,.demo-gallery-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{gap:20px}.hero-visual{height:600px}.hero-photo-frame{height:500px}.hero-copy h1{font-size:clamp(51px,6vw,75px)}.intro-band-inner span{display:none}.intro-band-inner{justify-content:center}.story-grid{gap:5vw}.wedding-hero{min-height:590px}.wedding-hero h1{font-size:clamp(52px,6vw,80px)}}
@media(max-width:760px){.site-header .header-inner{min-height:72px}.brand-logo,.brand-custom{width:166px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);padding:20px 24px 26px;border-bottom:1px solid var(--line);box-shadow:0 16px 22px #27362415;flex-direction:column;align-items:stretch;gap:0}.site-nav.is-open{display:flex}.site-nav a{padding:13px 0}.site-nav .nav-contact{margin-top:8px;padding:14px}.hero-grid,.story-grid,.venue-grid,.contact-layout{grid-template-columns:1fr}.home-hero .hero-copy{padding:68px 0 35px}.hero-copy h1{font-size:clamp(56px,10vw,84px)}.hero-visual{height:470px}.hero-photo-frame{height:410px;width:75%;margin:0}.hero-bloom{font-size:75px;right:5%;top:0}.section{padding:80px 0}.section-title-row{display:block}.section-title-row>p{margin-top:20px}.story-section{padding:75px 0}.story-image{height:400px;margin-right:20px}.story-copy{padding-top:30px}.process-grid{grid-template-columns:1fr;gap:12px}.process-grid h3{margin-top:22px}.footer-grid{grid-template-columns:1fr 1fr;gap:45px}.footer-grid>div:first-child{grid-column:1/-1}.demo-index-bottom{align-items:start;flex-direction:column}.gallery-tools{align-items:start;flex-direction:column}.wedding-hero,.family-editorial .wedding-hero,.family-colorful .wedding-hero{grid-template-columns:1fr}.wedding-hero-copy{min-height:540px}.family-editorial .wedding-hero-copy{padding:80px 7vw}.wedding-hero-image{min-height:430px}.family-minimal .wedding-hero-image{height:420px}.event-grid,.notes-grid{grid-template-columns:1fr}.event-grid article{border-right:0;border-bottom:1px solid var(--demo-accent)}.event-grid article:last-child{border-bottom:0}.venue-grid{gap:35px}.contact-aside{padding:35px}.demo-preview-bar span{display:none}}
@media(max-width:520px){.container{width:min(100% - 36px,1280px)}.home-hero .hero-copy{padding-top:52px}.hero-copy h1{font-size:clamp(49px,13vw,68px);letter-spacing:-.06em}.hero-intro{font-size:14px}.hero-actions{gap:20px}.hero-footnote{margin-top:35px}.hero-visual{height:385px}.hero-photo-frame{height:350px;width:83%}.hero-arch{height:85%}.hero-bloom{font-size:55px}.intro-band-inner{min-height:83px}.intro-band p{font-size:25px}.featured-grid,.demo-gallery-grid{grid-template-columns:1fr}.feature-image{aspect-ratio:1.08}.demo-tile-photo{aspect-ratio:1.1}.section-title-row h2,.story-copy h2,.process-section h2,.final-cta h2,.gallery-end h2{font-size:50px}.story-image{height:330px}.image-stamp{right:-12px;width:90px;height:90px}.footer-grid{gap:35px}.footer-bottom{display:block;line-height:2}.demo-index-hero{padding:62px 0 45px}.demo-index-hero h1{font-size:58px}.demo-index-bottom span{white-space:normal}.gallery-filters{gap:7px}.gallery-filters button{padding:8px 13px}.demo-gallery{padding-bottom:75px}.wedding-hero-copy{min-height:515px;padding:65px 25px}.wedding-hero h1,.family-minimal .wedding-hero h1{font-size:clamp(52px,12vw,75px)}.wedding-storyline{font-size:20px}.wedding-hero-image{min-height:330px}.family-minimal .wedding-hero-image{height:330px}.demo-container{width:min(100% - 36px,1120px)}.wedding-intro,.wedding-details,.venue-section,.guest-notes,.rsvp-section{padding:75px 0}.wedding-intro h2,.wedding-section-heading h2,.venue-section h2,.rsvp-section h2{font-size:46px}.venue-visual,.venue-art,.venue-visual iframe{height:300px;min-height:300px}.demo-rsvp fieldset{flex-direction:column;gap:12px}.contact-hero{padding:60px 0}.contact-hero h1,.content-page h1,.not-found h1{font-size:58px}.contact-layout{padding-top:55px;padding-bottom:75px}.contact-form .form-row{grid-template-columns:1fr}.contact-aside{padding:28px}.site-footer{padding-top:55px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

body.modal-open{overflow:hidden}.contact-modal-backdrop[hidden]{display:none}.contact-modal-backdrop{position:fixed;inset:0;z-index:1000;background:#152319af;backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.contact-modal-panel{position:relative;width:min(100%,660px);max-height:min(92vh,900px);overflow-y:auto;background:var(--paper);padding:48px 52px 34px;box-shadow:0 28px 80px #111e1599}.contact-modal-panel h2{font:400 clamp(42px,5vw,64px)/.98 var(--serif);letter-spacing:-.055em;margin:12px 0 15px}.contact-modal-panel h2 em{color:var(--clay)}.contact-modal-intro{font-size:13px;line-height:1.65;color:var(--muted);max-width:490px}.contact-modal-close{position:absolute;right:17px;top:14px;border:0;background:transparent;font:300 34px/1 var(--sans);color:var(--ink);width:40px;height:40px}.contact-modal-panel .contact-form{margin-top:22px;gap:15px}.contact-modal-panel .contact-form input,.contact-modal-panel .contact-form textarea{padding:11px;background:#fff}.contact-modal-panel .contact-form textarea{resize:vertical}.contact-modal-panel .contact-form .button{margin-top:3px}.modal-email{border-top:1px solid var(--line);padding-top:17px;margin:24px 0 0;font-size:11px;color:var(--muted)}.modal-email a{color:var(--ink)}
@media(max-width:520px){.contact-modal-backdrop{padding:10px}.contact-modal-panel{padding:42px 23px 25px;max-height:calc(100dvh - 20px)}.contact-modal-panel h2{font-size:43px}.contact-modal-panel .contact-form .form-row{grid-template-columns:1fr}}

/* Twenty-image story: one hero photograph and nineteen editorial gallery photographs. */
.demo-photo-story{padding:105px 0 120px;background:var(--demo-ink);color:var(--demo-paper)}
.photo-story-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;flex-wrap:wrap;margin-bottom:36px}
.photo-story-heading .demo-overline{flex-basis:100%;color:var(--demo-accent)}
.photo-story-heading h2{font:400 clamp(43px,5vw,76px)/.98 var(--serif);letter-spacing:-.055em;margin:0;max-width:720px}
.photo-story-heading h2 em{color:var(--demo-accent)}
.photo-story-heading p{font:12px/1.7 var(--sans);max-width:260px;opacity:.78;margin:0}
.demo-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:12px}
.demo-photo{position:relative;overflow:hidden;margin:0;aspect-ratio:1;background:#485449}
.demo-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.8);transition:transform .5s,filter .5s}
.demo-photo:hover img{transform:scale(1.04);filter:saturate(1)}
.demo-photo figcaption{position:absolute;inset:auto 0 0;padding:30px 14px 14px;color:#fff;background:linear-gradient(transparent,#101b16ac);display:flex;justify-content:space-between;gap:10px;align-items:end;font:9px/1.45 var(--mono);letter-spacing:.03em;text-shadow:0 1px 3px #0008}
.demo-photo figcaption span:last-child{max-width:66%;text-align:right}
.gallery-layout-0 .demo-photo:nth-child(1),.gallery-layout-0 .demo-photo:nth-child(8),.gallery-layout-0 .demo-photo:nth-child(14){grid-column:span 2;grid-row:span 2}
.gallery-layout-1 .demo-photo:nth-child(2),.gallery-layout-1 .demo-photo:nth-child(9),.gallery-layout-1 .demo-photo:nth-child(17){grid-column:span 2;grid-row:span 2}
.gallery-layout-2 .demo-photo:nth-child(3),.gallery-layout-2 .demo-photo:nth-child(10),.gallery-layout-2 .demo-photo:nth-child(15){grid-column:span 2;grid-row:span 2}
.gallery-layout-3 .demo-photo:nth-child(4),.gallery-layout-3 .demo-photo:nth-child(11),.gallery-layout-3 .demo-photo:nth-child(18){grid-column:span 2;grid-row:span 2}
.gallery-layout-4 .demo-photo:nth-child(5),.gallery-layout-4 .demo-photo:nth-child(12),.gallery-layout-4 .demo-photo:nth-child(19){grid-column:span 2;grid-row:span 2}
.demo-photo-grid .demo-photo:nth-child(7n+2) img{filter:saturate(.65) contrast(1.04)}
.demo-photo-grid .demo-photo:nth-child(5n+4) img{object-position:30% 50%}
.wedding-demo{display:flex;flex-direction:column}
.wedding-demo>.demo-preview-bar{order:0}
.wedding-demo>.wedding-hero{order:1}
.wedding-demo>.wedding-intro{order:2}
.wedding-demo>.demo-photo-story{order:3}
.wedding-demo>.wedding-details{order:4}
.wedding-demo>.venue-section{order:5}
.wedding-demo>.guest-notes{order:6}
.wedding-demo>.rsvp-section{order:7}
.wedding-demo>.demo-footer{order:8}
.gallery-layout-1>.wedding-details{order:3}.gallery-layout-1>.demo-photo-story{order:4}
.gallery-layout-2>.demo-photo-story{order:2}.gallery-layout-2>.wedding-intro{order:3}
.gallery-layout-3>.wedding-details{order:3}.gallery-layout-3>.venue-section{order:4}.gallery-layout-3>.demo-photo-story{order:5}
.gallery-layout-4>.wedding-details{order:2}.gallery-layout-4>.wedding-intro{order:3}.gallery-layout-4>.demo-photo-story{order:4}

/* Each destination has a distinct hero composition, frame and gallery finish. */
.demo-kyoto{--demo-display:'Times New Roman',serif}.demo-kyoto .wedding-hero{grid-template-columns:40% 60%;min-height:780px}.demo-kyoto .wedding-hero-copy{align-items:flex-start;text-align:left;padding-left:9vw}.demo-kyoto .wedding-hero h1{font-family:var(--demo-display);writing-mode:vertical-rl;max-height:440px;letter-spacing:.06em;font-size:70px}.demo-kyoto .hero-monogram{border-radius:3px;background:var(--demo-accent);color:#fff;width:66px;height:66px}.demo-kyoto .wedding-date{justify-content:flex-start}.demo-kyoto .demo-photo-grid{gap:24px}.demo-kyoto .demo-photo img{filter:saturate(.45)}
.demo-jaipur .wedding-hero-copy{background:#fff0d6;outline:3px double var(--demo-accent);outline-offset:-24px}.demo-jaipur .wedding-hero-image{clip-path:polygon(0 8%,5% 0,95% 0,100% 8%,100% 100%,0 100%)}.demo-jaipur .wedding-hero h1{font-family:Georgia,serif;font-style:italic;color:#8c1d3f}.demo-jaipur .hero-monogram{border:3px double var(--demo-accent);border-radius:46% 46% 4px 4px}.demo-jaipur .demo-photo-story{background:#8c1d3f}.demo-jaipur .demo-photo{border:7px solid #f0d09a}
.demo-amalfi .wedding-hero{grid-template-columns:44% 56%}.demo-amalfi .wedding-hero-copy{justify-content:flex-end;align-items:flex-start;text-align:left;padding:90px 5vw 95px 8vw}.demo-amalfi .wedding-hero h1{font-size:clamp(70px,8vw,130px);font-style:italic}.demo-amalfi .wedding-date{justify-content:flex-start}.demo-amalfi .hero-monogram{border:0;border-bottom:5px solid var(--demo-accent);border-radius:0;width:auto}.demo-amalfi .demo-photo-story{background:#123f4a}.demo-amalfi .demo-photo:nth-child(odd){transform:rotate(-1deg)}
.demo-marrakech .wedding-hero{grid-template-columns:1fr;min-height:0}.demo-marrakech .wedding-hero-copy{min-height:570px;background:radial-gradient(circle at center,#fff8ed 0,#f1dfc8 100%);border:18px solid #c96f43}.demo-marrakech .wedding-hero-image{height:490px;min-height:0;clip-path:polygon(0 0,100% 0,100% 85%,50% 100%,0 85%)}.demo-marrakech .wedding-hero h1{font-family:Georgia,serif;font-style:italic}.demo-marrakech .hero-monogram{border-radius:50% 50% 3px 3px}.demo-marrakech .demo-photo-story{background:#3a2317}.demo-marrakech .demo-photo{border:4px solid #b17d59}
.demo-stockholm .wedding-hero{grid-template-columns:1fr 1fr;min-height:600px}.demo-stockholm .wedding-hero-copy{align-items:flex-start;text-align:left;padding:55px 8vw}.demo-stockholm .wedding-hero h1{font-family:Arial,sans-serif;font-size:clamp(54px,5vw,83px);font-weight:400;letter-spacing:-.09em}.demo-stockholm .hero-monogram{border:0;margin:0 0 65px}.demo-stockholm .wedding-ornament{display:none}.demo-stockholm .wedding-date{justify-content:flex-start}.demo-stockholm .demo-photo-story{background:#eceeed;color:#20242a}.demo-stockholm .photo-story-heading .demo-overline{color:#697987}.demo-stockholm .demo-photo-grid{gap:4px}
.demo-oaxaca .wedding-hero-copy{background:#e0245e;color:#fff;box-shadow:inset 0 0 0 15px #12124a}.demo-oaxaca .wedding-hero h1{font-family:Georgia,serif;font-weight:700;text-shadow:4px 4px 0 #12124a}.demo-oaxaca .hero-monogram{background:#12a594;color:#fff;border:0}.demo-oaxaca .wedding-ornament{color:#fff}.demo-oaxaca .demo-photo-story{background:#12124a}.demo-oaxaca .demo-photo:nth-child(3n){border:6px solid #e0245e}.demo-oaxaca .demo-photo:nth-child(4n){border:6px solid #12a594}
.demo-lagos .wedding-hero{grid-template-columns:60% 40%}.demo-lagos .wedding-hero-copy{background:#0b3d2e;color:#f7f2e7;align-items:flex-start;text-align:left;padding-left:9vw}.demo-lagos .wedding-hero h1{font-family:Georgia,serif;font-style:italic;font-size:clamp(66px,7vw,115px)}.demo-lagos .wedding-date{justify-content:flex-start}.demo-lagos .hero-monogram{border:3px solid #c9a227;color:#c9a227}.demo-lagos .demo-photo-story{background:#073729}.demo-lagos .demo-photo{outline:1px solid #c9a227;outline-offset:-8px}
.demo-paris .wedding-hero{grid-template-columns:1fr;min-height:0;background:#14110f;color:#f4efe6}.demo-paris .wedding-hero-copy{min-height:550px;outline:1px solid #b99653;outline-offset:-30px}.demo-paris .wedding-hero-image{height:400px;min-height:0;filter:grayscale(1)}.demo-paris .wedding-hero h1{text-transform:uppercase;font-family:Georgia,serif;letter-spacing:.08em;font-size:clamp(44px,5vw,78px)}.demo-paris .hero-monogram{border-radius:0;transform:rotate(45deg)}.demo-paris .hero-monogram span{transform:rotate(-45deg)}.demo-paris .demo-photo-story{background:#14110f}.demo-paris .demo-photo img{filter:grayscale(1)}
.demo-santorini .wedding-hero{grid-template-columns:55% 45%}.demo-santorini .wedding-hero-copy{background:#fdfdfc;border-bottom:22px solid #0f4c81}.demo-santorini .wedding-hero h1{font-family:Arial,sans-serif;font-weight:300;letter-spacing:-.09em}.demo-santorini .hero-monogram{border-radius:50% 50% 0 0;border:3px solid #0f4c81}.demo-santorini .demo-photo-story{background:#0f4c81}.demo-santorini .demo-photo{border:5px solid #fdfdfc}
.demo-seoul .wedding-hero{grid-template-columns:48% 52%}.demo-seoul .wedding-hero-copy{background:#fbf7f5;border:22px solid #e4a7ae}.demo-seoul .wedding-hero h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em}.demo-seoul .hero-monogram{background:#e4a7ae;border:0}.demo-seoul .demo-photo-story{background:#2b2b33}.demo-seoul .demo-photo:nth-child(even){border-radius:50% 50% 0 0}
.demo-udaipur .wedding-hero{grid-template-columns:1fr;min-height:0}.demo-udaipur .wedding-hero-copy{min-height:490px;background:#253d55;color:#f6efe5}.demo-udaipur .wedding-hero-image{height:570px;min-height:0;clip-path:ellipse(75% 100% at 50% 0)}.demo-udaipur .wedding-hero h1{font-family:Georgia,serif;font-style:italic}.demo-udaipur .hero-monogram{border:3px double #c58b59}.demo-udaipur .demo-photo-story{background:#253d55}.demo-udaipur .demo-photo{border:8px solid #decbb3}
.demo-tuscany .wedding-hero{grid-template-columns:43% 57%}.demo-tuscany .wedding-hero-copy{align-items:flex-start;text-align:left;padding-left:8vw}.demo-tuscany .wedding-hero h1{font-family:Georgia,serif;font-style:italic;font-size:clamp(72px,7vw,115px)}.demo-tuscany .hero-monogram{border:0;border-left:3px solid #b48a61;border-radius:0;width:90px}.demo-tuscany .wedding-date{justify-content:flex-start}.demo-tuscany .demo-photo-story{background:#394b37}.demo-tuscany .demo-photo:nth-child(3n){border-radius:50% 50% 0 0}
.demo-cape-town .wedding-hero{grid-template-columns:1fr;min-height:0}.demo-cape-town .wedding-hero-image{height:520px;min-height:0;order:-1}.demo-cape-town .wedding-hero-copy{min-height:470px;background:#f2f3ed}.demo-cape-town .wedding-hero h1{font-family:Arial,sans-serif;font-weight:700;letter-spacing:-.09em}.demo-cape-town .hero-monogram{border:0;color:#d28b70}.demo-cape-town .demo-photo-story{background:#244c48}.demo-cape-town .demo-photo:nth-child(odd){border-bottom:8px solid #d28b70}
.demo-new-york .wedding-hero{grid-template-columns:1fr;min-height:0;background:#222029;color:#f4eee7}.demo-new-york .wedding-hero-image{height:660px;min-height:0;order:-1;filter:grayscale(.9)}.demo-new-york .wedding-hero-copy{min-height:360px}.demo-new-york .wedding-hero h1{font-family:Arial,sans-serif;font-size:clamp(62px,8vw,120px);text-transform:uppercase}.demo-new-york .hero-monogram{display:none}.demo-new-york .demo-photo-story{background:#222029}.demo-new-york .demo-photo img{filter:grayscale(.85)}
.demo-bali .wedding-hero{grid-template-columns:40% 60%}.demo-bali .wedding-hero-copy{background:#29463d;color:#f3f0e5;outline:2px solid #d29d69;outline-offset:-25px}.demo-bali .wedding-hero h1{font-family:Georgia,serif;font-style:italic}.demo-bali .hero-monogram{border-radius:50% 0 50% 0;border:2px solid #d29d69}.demo-bali .demo-photo-story{background:#29463d}.demo-bali .demo-photo:nth-child(4n){border-radius:50% 0 50% 0}
.demo-lisbon .wedding-hero{grid-template-columns:55% 45%}.demo-lisbon .wedding-hero-copy{background:linear-gradient(90deg,#faf6ed 50%,#e8eee9 50%);background-size:52px 52px}.demo-lisbon .wedding-hero h1{font-family:Georgia,serif;color:#174968}.demo-lisbon .hero-monogram{border:3px solid #174968;border-radius:0;transform:rotate(45deg)}.demo-lisbon .demo-photo-story{background:#174968}.demo-lisbon .demo-photo{border:5px solid #faf6ed}
.demo-napa .wedding-hero{grid-template-columns:48% 52%}.demo-napa .wedding-hero-copy{align-items:flex-start;text-align:left;padding-left:8vw;background:#f8f4eb}.demo-napa .wedding-hero h1{font-family:Georgia,serif;font-style:italic}.demo-napa .hero-monogram{border:0;border-bottom:1px solid #a86d54;border-radius:0;width:auto}.demo-napa .wedding-date{justify-content:flex-start}.demo-napa .demo-photo-story{background:#4c4937}.demo-napa .demo-photo:nth-child(2n){border:8px solid #f8f4eb;transform:rotate(1deg)}
.demo-istanbul .wedding-hero{grid-template-columns:1fr;min-height:0}.demo-istanbul .wedding-hero-copy{min-height:600px;background:#234558;color:#f7f0e7}.demo-istanbul .wedding-hero-image{height:430px;min-height:0;clip-path:polygon(0 0,100% 0,100% 100%,50% 86%,0 100%)}.demo-istanbul .wedding-hero h1{font-family:Georgia,serif;font-style:italic}.demo-istanbul .hero-monogram{border-radius:50% 50% 0 0;border:3px double #c58d67}.demo-istanbul .demo-photo-story{background:#234558}.demo-istanbul .demo-photo:nth-child(5n){border-radius:50% 50% 0 0}
.demo-queenstown .wedding-hero{grid-template-columns:1fr;min-height:0}.demo-queenstown .wedding-hero-image{height:650px;min-height:0;order:-1}.demo-queenstown .wedding-hero-copy{min-height:340px;background:#f5f6f3}.demo-queenstown .wedding-hero h1{font-family:Arial,sans-serif;font-weight:300;letter-spacing:-.08em}.demo-queenstown .hero-monogram{display:none}.demo-queenstown .demo-photo-story{background:#2b4649}.demo-queenstown .demo-photo-grid{gap:5px}.demo-queenstown .demo-photo img{filter:saturate(.55)}
.demo-rio .wedding-hero{grid-template-columns:53% 47%}.demo-rio .wedding-hero-copy{background:#e89c50;color:#164a57}.demo-rio .wedding-hero h1{font-family:Arial,sans-serif;font-weight:700;letter-spacing:-.09em;text-transform:uppercase}.demo-rio .hero-monogram{border:0;background:#fff7e8}.demo-rio .wedding-ornament{font-size:32px}.demo-rio .demo-photo-story{background:#164a57}.demo-rio .demo-photo:nth-child(3n){border:7px solid #e89c50}

@media(max-width:760px){.demo-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.demo-photo-grid .demo-photo{grid-column:auto!important;grid-row:auto!important}.demo-photo-grid .demo-photo:nth-child(1),.demo-photo-grid .demo-photo:nth-child(7),.demo-photo-grid .demo-photo:nth-child(14){grid-column:span 2!important;aspect-ratio:1.5}.demo-photo-story{padding:75px 0}.wedding-demo .wedding-hero{grid-template-columns:1fr}.wedding-demo .wedding-hero-copy{align-items:center;text-align:center;padding:70px 7vw;min-height:440px}.wedding-demo .wedding-hero-image{height:360px;min-height:0;order:0}.demo-cape-town .wedding-hero-image,.demo-new-york .wedding-hero-image,.demo-queenstown .wedding-hero-image{order:-1}.demo-kyoto .wedding-hero h1{writing-mode:horizontal-tb;font-size:62px;max-height:none}.wedding-demo .wedding-date{justify-content:center}.wedding-demo .hero-monogram{margin:0 0 24px}}
@media(max-width:520px){.photo-story-heading h2{font-size:45px}.demo-photo figcaption{font-size:8px;padding:20px 8px 8px}.demo-photo figcaption span:last-child{max-width:60%}.demo-photo-grid{gap:5px}.demo-photo-story{padding:65px 0}}
