@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600&family=Italianno&display=swap');
:root{--sage:#a8bba2;--sage-deep:#71836b;--sage-dark:#536653;--ivory:#f4efe5;--paper:#fbf8f1;--ink:#263028;--muted:#70766e;--white:#fffdf8;--line:rgba(38,48,40,.14);--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;--script:'Italianno',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6}body,button,input,select,textarea{font:inherit}a{color:inherit}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--sage-dark);outline-offset:3px}.grain{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E")}.progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:100}.progress span{display:block;height:100%;width:0;background:var(--sage-dark)}
.site-nav{position:fixed;top:18px;left:50%;transform:translateX(-50%);width:min(1180px,calc(100% - 28px));z-index:40;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid rgba(255,255,255,.3);background:rgba(30,42,33,.2);backdrop-filter:blur(16px);color:#fff;border-radius:999px;transition:.3s}.nav-mark{font:600 1.2rem var(--serif);text-decoration:none}.nav-mark span{font-style:italic}.nav-links{display:flex;gap:1.8rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.16em}.nav-links a,.nav-cta{text-decoration:none}.nav-cta{display:inline-flex;gap:.55rem;align-items:center;border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:.45rem .75rem;font-size:.61rem;text-transform:uppercase;letter-spacing:.1em}
.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;background:#889982}.photo-slot{background-position:center;background-size:cover;background-repeat:no-repeat}.hero-photo{position:absolute;inset:-5%;transform:scale(1.04);background-image:linear-gradient(180deg,rgba(25,34,27,.08),rgba(25,34,27,.4)),linear-gradient(135deg,#71836b,#d7d0bd);background-position:center 32%;will-change:transform}.hero-photo::after{content:"";position:absolute;inset:auto 0 17%;text-align:center;color:rgba(255,255,255,.0);font-size:.6rem;letter-spacing:.25em}.hero-tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,25,18,.1),transparent 45%,rgba(16,25,18,.38))}.hero-content{position:relative;z-index:3;text-align:center;color:#fff;padding:5rem 1.5rem 3rem}.hero-eyebrow{margin-bottom:1.4rem}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.23em;font-weight:600}.hero h1{font:500 clamp(4.3rem,12vw,9.5rem)/.78 var(--serif);letter-spacing:-.065em;margin:0;text-shadow:0 2px 25px rgba(0,0,0,.12)}.hero h1 i{display:block;font-size:.47em;line-height:1.15;font-style:italic}.hero-divider{display:flex;align-items:center;gap:.8rem;justify-content:center;margin:1.6rem 0 1rem}.hero-divider span{width:42px;height:1px;background:rgba(255,255,255,.65)}.hero-divider b{font-size:.68rem;font-weight:500;letter-spacing:.3em}.script-line{font:400 clamp(2rem,5vw,3rem)/1 var(--script);margin:0}.script-line.dark{color:var(--sage-dark)}.hero-button{display:inline-flex;align-items:center;gap:1rem;padding:.8rem 1.05rem;border:1px solid rgba(255,255,255,.65);border-radius:999px;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:.59rem;background:rgba(255,255,255,.08);backdrop-filter:blur(7px);transition:.25s}.hero-button:hover{transform:translateY(-3px);background:rgba(255,255,255,.18)}.hero-corner{position:absolute;bottom:2rem;z-index:3;color:rgba(255,255,255,.78);font-size:.55rem;line-height:1.8;text-transform:uppercase;letter-spacing:.16em}.hero-corner-left{left:2rem}.hero-corner-right{right:2rem;text-align:right}.botanical{position:absolute;z-index:2;opacity:.65;pointer-events:none}.botanical svg{width:100%;height:100%;fill:none;stroke:#f6f0df;stroke-width:1.25;stroke-linecap:round}.botanical-a{left:-1rem;bottom:2rem;width:180px;height:420px;transform:rotate(-7deg)}.botanical-b{right:-1rem;top:10rem;width:180px;height:420px;transform:rotate(7deg)}
.intro-panel{position:relative;display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:2.5rem;padding:4rem max(5vw,2rem);background:var(--ivory);text-align:center;overflow:hidden}.intro-date h2{font:500 clamp(2.4rem,5vw,4rem)/.9 var(--serif);letter-spacing:-.04em;margin:0}.intro-date h2 small{display:block;font:600 .32em var(--sans);letter-spacing:.25em;margin:0}.intro-time strong{display:block;font:500 clamp(3rem,6vw,5rem)/1 var(--serif);color:var(--sage-dark)}.intro-time span{margin-top:20px;}.intro-place span{margin-top:10px;}.intro-place strong{margin-top:20px;}.intro-panel span{display:block;color:var(--muted);font-size:.72rem}.intro-place strong{font:600 1.55rem/1 var(--serif);display:block}.intro-line{height:72px;width:1px;background:var(--line)}.paper-leaf{position:absolute;font:3rem var(--serif);color:var(--sage);opacity:.55}.leaf-left{left:1.5rem;top:1.2rem}.leaf-right{right:1.5rem;bottom:1.2rem}
.section{padding:7rem max(1.25rem,5vw)}.story-section{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.08fr .92fr;align-items:center}.story-photo{min-height:600px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;);overflow:hidden}.photo-label{font:500 3rem var(--serif);z-index:1}.photo-hint{font-size:.63rem;text-transform:uppercase;letter-spacing:.14em;z-index:1;margin-top:.3rem}.story-copy{padding:4rem 5rem}.story-copy h2,.section-intro h2,.gift-copy h2,.faq-heading h2{font:500 clamp(3.1rem,6vw,5.6rem)/.84 var(--serif);letter-spacing:-.045em;margin:.5rem 0 1.4rem}.story-copy h2 em,.section-intro h2 em,.gift-copy h2 em,.faq-heading h2 em{font-style:italic;color:var(--sage-dark)}.story-copy p{max-width:420px;color:var(--muted);font-size:4.2rem;text-align:center;}.ornament{display:block;color:#b77d68;}.ornamentRight{width:100%;text-align:right}
.countdown-section{min-height:430px;position:relative;display:grid;place-items:center;background:#667960}.countdown-section::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(35,45,37,.58),rgba(35,45,37,.46)),var(--bg-image,none);background-size:cover;background-position:center}.countdown-overlay{position:absolute;inset:0}.countdown-content{position:relative;z-index:2;color:#fff;text-align:center;width:min(850px,92%)}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:1.8rem}.countdown-grid div{padding:0 1rem;border-right:1px solid rgba(255,255,255,.32)}.countdown-grid div:last-child{border-right:0}.countdown-grid strong{display:block;font:500 clamp(2.8rem,7vw,5.4rem)/.9 var(--serif)}.countdown-grid span{display:block;margin-top:1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;opacity:.78}
.details-section{background:var(--paper);max-width:1240px;margin:auto}.section-intro{text-align:center;margin-bottom:4rem}.detail-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.detail-card{position:relative;background:var(--white);min-height:390px;padding:2.5rem;display:flex;flex-direction:column}.detail-card.sage-card{background:var(--sage)}.card-number{position:absolute;right:1.6rem;top:1.5rem;font-size:.55rem;letter-spacing:.16em;color:var(--muted)}.card-icon{font:2.1rem var(--serif);color:var(--sage-dark);margin-bottom:2rem}.detail-card h3{font:500 clamp(2.4rem,4vw,3.5rem)/.85 var(--serif);letter-spacing:-.04em;margin:.3rem 0 1.1rem}.detail-card p:not(.eyebrow){max-width:300px;color:#353734;font-size:.82rem}.mini-swatches{display:flex;gap:.5rem;margin-top:auto}.mini-swatches i{width:25px;height:25px;border-radius:50%;border:1px solid rgba(0,0,0,.1)}.mini-swatches i:nth-child(1){background:#a8bba2}.mini-swatches i:nth-child(2){background:#f4efe5}.mini-swatches i:nth-child(3){background:#ddc2b7}.mini-swatches i:nth-child(4){background:#b77d68}.arrow-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;width:max-content;color:var(--sage-dark);font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.3rem}
.rsvp-section{background:#f1ede4}.rsvp-wrap{max-width:980px;margin:auto}.rsvp-card{background:rgba(255,253,248,.96);padding:clamp(1.4rem,4vw,3rem);box-shadow:0 28px 90px rgba(67,73,63,.13);position:relative;border-radius:0 0 28px 28px}.rsvp-card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(38,48,40,.08);pointer-events:none;border-radius:0 0 22px 22px}.rsvp-card-top{position:relative;text-align:center;font:400 clamp(2.6rem,6vw,4.8rem)/.9 var(--script);color:var(--sage-dark);margin:.5rem 0 1rem}.rsvp-card-top span:last-child{display:none}.rsvp-intro{position:relative;text-align:center;color:#5f655f;font:400 1.1rem/1.45 var(--serif);margin:0 auto 1.8rem;max-width:680px}.rsvp-group{position:relative;border:1px solid rgba(38,48,40,.12);border-radius:14px;padding:1.1rem 1.2rem;margin:.8rem 0;background:rgba(255,255,255,.28)}.rsvp-group-title{display:block;font:600 1.35rem/1.1 var(--serif);margin-bottom:.25rem}.rsvp-group-help{display:block;color:#777c76;font:400 .82rem/1.35 var(--serif);margin-bottom:.65rem}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.choice{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(38,48,40,.12);border-radius:9px;padding:.8rem .9rem;color:#343a34;font:400 1rem var(--serif);cursor:pointer;transition:.2s}.choice:hover{background:rgba(168,187,162,.12)}.choice input{appearance:none;width:24px;height:24px;min-width:24px;border:1.5px solid #8a9088;border-radius:50%;margin:0;position:relative}.choice input:checked{border-color:var(--sage-dark);box-shadow:inset 0 0 0 6px var(--white);background:var(--sage-dark)}.rsvp-group select,.rsvp-group textarea,.rsvp-group input[type=text]{width:100%;border:1px solid rgba(38,48,40,.12);border-radius:9px;background:rgba(255,255,255,.45);padding:.75rem .9rem;color:#3e443e;outline:none}.rsvp-group select{appearance:auto}.names-list{display:grid;gap:.55rem}.name-row{display:flex;gap:.55rem}.name-row input{flex:1}.remove-name{width:42px;border:0;background:transparent;color:#747a73;font-size:1.25rem;cursor:pointer}.add-name{border:0;background:rgba(168,187,162,.24);border-radius:999px;padding:.55rem .85rem;margin-top:.6rem;color:#3e493e;font:500 .95rem var(--serif);cursor:pointer}.add-name span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--sage-dark);color:#fff;margin-right:.35rem}.inline-choices{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.75rem}.inline-choices .field-label{margin-right:.4rem}.inline-choices .choice{border:0;padding:.2rem .3rem;background:transparent}.field-label{font:400 .95rem var(--serif);color:#424842}.form-button{position:relative;margin:1rem auto .2rem;border:0;border-radius:999px;background:var(--sage-dark);color:#fff;padding:.95rem 2rem;text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;cursor:pointer;display:flex;justify-content:center;gap:1rem;transition:.25s;min-width:min(520px,100%)}.form-button:hover{transform:translateY(-2px);background:#465746}.form-button:disabled{opacity:.5;cursor:wait;transform:none}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.success{position:relative;display:grid;gap:.2rem;padding:1rem;margin-top:1rem;border-radius:10px}
.success strong{font:600 1.5rem var(--serif)}
.gift-section{background:var(--paper)}.gift-paper{max-width:1120px;margin:auto;background:var(--ivory);display:grid;grid-template-columns:1.25fr .75fr;min-height:470px;position:relative;overflow:hidden}.gift-paper::after{content:"";position:absolute;inset:18px;border:1px solid rgba(38,48,40,.09);pointer-events:none}.gift-copy{padding:5rem;position:relative;z-index:1}.gift-copy>p:not(.eyebrow){max-width:470px;color:var(--muted)}.iban-box{margin-top:2rem;padding:1.25rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.iban-box>span{display:block;font-size:.56rem;letter-spacing:.18em;color:var(--muted)}.iban-box button{border:0;background:none;padding:.4rem 0;color:var(--ink);font-size:clamp(.8rem,2vw,1.05rem);letter-spacing:.05em;cursor:pointer}.iban-box small{display:block;color:var(--muted);font-size:.65rem;line-height:1.7}.iban-box i{display:block;min-height:1rem;color:var(--sage-dark);font-style:normal;font-size:.65rem;margin-top:.25rem}.gift-art{position:relative;background:linear-gradient(145deg,#d4dfcf,#b6c6ae);display:grid;place-items:center;overflow:hidden}.gift-art span{font:3rem var(--script);color:rgba(255,255,255,.72);z-index:1}.gift-art .span1{font:2rem var(--script);color:var(--sage-dark);}.gift-art small{position:absolute;bottom:1rem;right:1rem;font:1.8rem var(--script);color:#fff;transform:rotate(-7deg)}
.faq-section{max-width:1120px;margin:auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:5rem}.faq-list details{border-top:1px solid var(--line);padding:1.25rem 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;font:600 1.3rem var(--serif)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+'}.faq-list details[open] summary::after{content:'−'}.faq-list details p{color:var(--muted);max-width:620px;font-size:.85rem}.final-section{min-height:780px;position:relative;display:grid;place-items:center;background:#60735d;overflow:hidden}.final-section::before{content:"";position:absolute;inset:-5%;background-image:var(--bg-image,linear-gradient(135deg,#5b6d57,#9aaa90));background-size:cover;background-position:center;transform:scale(1.04)}.final-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,43,34,.18),rgba(20,28,22,.62))}.final-content{position:relative;z-index:2;color:#fff;text-align:center}.final-date{font:500 clamp(2.8rem,7vw,5.5rem) var(--serif);margin:.6rem 0}.final-rule{height:1px;width:80px;background:rgba(255,255,255,.55);margin:1.5rem auto}.final-script{font:400 clamp(2.1rem,5vw,3.7rem)/.95 var(--script);margin:1.2rem 0 2rem}footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.3rem max(1.25rem,5vw);font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}footer a{text-decoration:none}.reveal{animation:reveal both linear;animation-timeline:view(block 78% 10%)}@keyframes reveal{0%{opacity:0;transform:translateY(35px)}45%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:translateY(0)}}@supports not (animation-timeline:view()){.reveal{animation:none;opacity:1;transform:none}}
@media (max-width:900px){.nav-links{display:none}.site-nav{width:calc(100% - 20px)}.intro-panel{grid-template-columns:1fr 1fr;gap:1.5rem}.story-section,.faq-section{grid-template-columns:1fr;gap:0}.story-copy{padding:4rem 1rem 1rem}.story-photo{min-height:480px}.detail-cards{grid-template-columns:1fr}.detail-card{min-height:330px}.gift-paper{grid-template-columns:1fr}.gift-art{min-height:280px}.gift-copy{padding:4rem 2rem}.faq-heading{margin-bottom:2rem}}
@media (max-width:768px){.intro-line{width: 150px;height:1px;background:var(--line);margin:0 auto}}
@media (max-width:560px){.site-nav{top:10px}.nav-cta{padding:.4rem .65rem}.hero-content{padding-top:6rem}.hero h1{font-size:clamp(3.7rem,18vw,5.7rem)}.hero-corner{display:none}.botanical-a{left:-45px;opacity:.5}.botanical-b{right:-45px;opacity:.5}.intro-panel{grid-template-columns:1fr;padding:4.5rem 1.5rem}.intro-place{padding-bottom:1rem}.section{padding:5rem 1.25rem}.story-photo{min-height:420px}.countdown-section{min-height:390px}.countdown-grid div{padding:0 .4rem}.countdown-grid strong{font-size:2.6rem}.countdown-grid span{font-size:.5rem}.rsvp-card{padding:1.2rem .9rem;border-radius:0 0 22px 22px}.rsvp-card::before{inset:7px;border-radius:0 0 17px 17px}.rsvp-card-top{font-size:3rem}.rsvp-intro{font-size:1rem;padding:0 .5rem}.choice-grid{grid-template-columns:1fr}.rsvp-group{padding:.9rem}.rsvp-group-title{font-size:1.2rem}.choice{font-size:.98rem}.form-button{min-width:100%}.gift-copy{padding:3.5rem 1.5rem}.gift-art{min-height:240px}.faq-list summary{font-size:1.12rem}.final-section{min-height:650px}.final-script{font-size:2.5rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-photo{transform:none!important}}
