:root{--cream:#fff8f8;--pink:#f5e1e7;--petal:#edd0da;--rose:#a45170;--rose-dark:#833e59;--ink:#69374d;--gold:#af8846;--gold-dark:#86622d;--line:#d9be91;--muted:#826975;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.7 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--gold-dark);outline-offset:5px}::selection{background:#e9bbcc}h1,h2,h3,p{margin-top:0}em{color:var(--rose);font-weight:400}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.announcement{background:var(--rose);color:#fff8ed;text-align:center;padding:11px 15px;font-size:9px;letter-spacing:2.5px}.header{max-width:1440px;margin:auto;padding:20px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:17px;font:34px var(--serif);color:var(--gold-dark);min-height:44px}.brand span{padding:8px 0 8px 17px;border-left:1px solid var(--line);font:9px Arial,sans-serif;letter-spacing:1.8px;color:var(--ink)}nav{display:flex;gap:29px}nav a{display:inline-flex;align-items:center;min-height:44px;font-size:11px;border-bottom:1px solid transparent}nav a:hover{border-color:var(--gold)}.hero{position:relative;max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;padding:38px 6% 50px;gap:55px;overflow:hidden}.hero::before{content:'';position:absolute;top:-42px;right:-96px;width:330px;height:400px;background:url('assets/floral.svg') center/contain no-repeat;pointer-events:none;z-index:2;transform:rotate(19deg)}.hero-copy{align-self:center;padding:25px 0 30px;position:relative;z-index:1}.eyebrow{font-size:9px;font-weight:500;letter-spacing:2.1px;line-height:1.8;color:var(--gold-dark);margin-bottom:22px}.hero .eyebrow{display:flex;align-items:center;gap:12px}.hero .eyebrow>span{width:27px;height:1px;background:var(--gold)}.hero-kicker{font:italic 27px var(--serif);color:var(--rose);margin:32px 0 4px}h1{font:clamp(90px,9.1vw,134px)/1.1 var(--serif);font-weight:400;letter-spacing:-5px;margin-bottom:17px;color:var(--ink)}.hero-motto{max-width:380px;font:32px/1.3 var(--serif);letter-spacing:-.7px;margin-bottom:25px}.hero-message{font-size:14px;color:var(--muted);max-width:340px;line-height:1.9;margin-bottom:22px}.hero-date{display:flex;gap:14px;align-items:center;color:var(--gold-dark);font-size:11px;letter-spacing:1.7px;margin-bottom:26px}.hero-date>span{font:30px var(--serif)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:50px;padding:15px 23px;font-size:12px;line-height:1.4;border:1px solid transparent;transition:transform .2s,background .2s}.button>span{font-size:20px;line-height:1}.button:hover{transform:translateY(-2px)}.button-rose{background:var(--rose);color:white;border-color:var(--rose)}.button-rose:hover{background:var(--rose-dark)}.hero-foot{display:flex;align-items:center;gap:16px;margin-top:38px;font-size:8px;letter-spacing:1.6px;color:var(--muted)}.hero-foot>span{width:45px;height:1px;background:var(--line)}.hero-photo{position:relative;border:1px solid var(--gold);padding:13px 13px 0;border-radius:280px 280px 0 0;background:#f9edf0;margin:10px 12px 0 0;align-self:center;max-width:540px;width:100%}.hero-photo::after{content:'';position:absolute;inset:6px;border:1px solid #d8ba85;border-radius:inherit;pointer-events:none}.portrait-frame{position:relative;display:block;width:100%;aspect-ratio:3/4;padding:0;border:0;background:var(--pink);border-radius:260px 260px 0 0;overflow:hidden;cursor:zoom-in}.portrait-frame img{display:block;width:100%;height:100%;object-fit:contain}.portrait-zoom{position:absolute;bottom:16px;right:16px;width:44px;height:44px;border-radius:50%;background:var(--cream);color:var(--gold-dark);display:grid;place-items:center;font-size:22px}.photo-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:19px 3px;color:var(--gold-dark)}.photo-label>span:first-child{font-size:8px;letter-spacing:1.5px}.photo-label>span:last-child{font:italic 16px var(--serif);color:var(--rose)}.section{max-width:1200px;margin:auto;padding:68px 0 80px}.section-marker{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:9px;letter-spacing:1.8px;color:var(--gold-dark)}.section-marker>span:last-child{font:25px/1 var(--serif)}h2{font:46px/1.22 var(--serif);letter-spacing:-1.3px;font-weight:400;margin-bottom:24px}.invitation-inner{text-align:center;max-width:950px;margin:62px auto 0}.body-copy{font-size:14px;line-height:1.95;color:var(--muted);max-width:540px;margin:0 auto}.family{margin:35px auto 30px}.family .eyebrow{margin-bottom:10px;font-size:8px}.family-names{font:27px/1.35 var(--serif);margin-bottom:0}.event-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:820px;margin:40px auto 28px}.event-details>div{padding:6px 22px;border-right:1px solid var(--line)}.event-details>div:last-child{border:0}.detail-label{display:block;font-size:9px;letter-spacing:1.8px;color:var(--gold-dark);margin-bottom:14px}.event-details strong{font:24px/1.3 var(--serif);font-weight:400}.event-details time{display:inline-block;max-width:235px}.countdown-wrap{max-width:680px;margin:35px auto 0;padding-top:32px;border-top:1px solid var(--line)}.countdown-wrap .eyebrow{margin-bottom:24px}.countdown{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:9px;max-width:560px;margin:auto}.countdown-number{display:block;font:57px/1.1 var(--serif);font-variant-numeric:tabular-nums;color:var(--rose-dark)}.countdown-unit{display:block;font-size:9px;letter-spacing:1.4px;margin-top:12px;color:var(--muted)}.countdown-colon{font:33px/1.5 var(--serif);color:var(--gold)}.countdown-note{font:italic 17px/1.5 var(--serif);color:var(--rose);margin:25px 0 0}.section-heading{text-align:center;margin:52px 0 40px}.section-heading .eyebrow{margin-bottom:20px}.event-cards{display:grid;grid-template-columns:1fr 1fr;gap:27px;max-width:1000px;margin:auto}.event-card{border:1px solid var(--line);position:relative;text-align:center;padding:41px 35px 28px;background:linear-gradient(150deg,#fffdfb,#e2b3ca);display:flex;flex-direction:column;align-items:center}.event-card::before{content:'';position:absolute;inset:7px;border:1px solid #e5d4b6;pointer-events:none}.event-icon{width:57px;height:57px;color:var(--gold);margin-bottom:20px}.event-time{font:56px/1.1 var(--serif);color:var(--rose);margin:5px 0 22px}.event-time span{font-size:22px}h3{font:28px/1.25 var(--serif);font-weight:400;margin-bottom:18px}.event-card>p:not(.detail-label):not(.event-time):not(.copy-status){font-size:14px;line-height:1.8;color:var(--muted)}.ceremony{justify-content:center}.ceremony>p:last-child{margin-bottom:15px}.reception .button{margin-top:10px;max-width:100%}.copy-address{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:44px;padding:8px 0;border:0;border-bottom:1px solid var(--line);background:transparent;font-size:11px;color:var(--rose-dark);cursor:pointer;margin-top:10px}.copy-status{font-size:10px;line-height:1.4;min-height:14px;margin:10px 0 0;color:var(--muted)}.gifts{position:relative;overflow:hidden;background:var(--pink);padding:75px 24px;border-top:1px solid #ead5dd;border-bottom:1px solid #ead5dd}.gifts::before{content:'';position:absolute;left:-115px;bottom:-30px;width:340px;height:400px;background:url('assets/floral.svg') center/contain no-repeat;transform:rotate(28deg);opacity:.55;pointer-events:none}.gifts-inner{position:relative;text-align:center;max-width:650px;margin:auto}.gifts .body-copy{max-width:485px}.gift-options{display:flex;align-items:center;justify-content:center;gap:45px;margin-top:34px}.gift-options>div{display:flex;flex-direction:column;align-items:center;gap:13px;min-width:140px}.gift-options svg{width:50px;height:50px;color:var(--gold-dark)}.gift-options>div>span{font:23px var(--serif)}.gift-or{font:italic 25px var(--serif);color:var(--gold-dark)}.photo-sharing{display:grid;grid-template-columns:1.4fr 1fr;gap:70px;align-items:center;max-width:1000px;margin:57px auto 0}.photo-sharing .body-copy{margin:0;max-width:475px}.photo-sharing h2{font-size:43px}.coming-soon{display:inline-block;margin-top:24px;padding:9px 14px;border:1px solid var(--line);font-size:8px;letter-spacing:1.5px;color:var(--gold-dark)}.album-placeholder{border:1px dashed var(--gold);outline:1px solid #e7d5b9;outline-offset:8px;border-radius:160px 160px 8px 8px;max-width:270px;width:100%;min-height:300px;justify-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f9ebef;padding:25px}.album-placeholder svg{width:55px;height:55px;color:var(--gold);margin-bottom:20px}.album-placeholder>span{font:26px/1.25 var(--serif)}.album-placeholder small{font:italic 16px var(--serif);margin-top:20px;color:var(--rose)}.closing{position:relative;overflow:hidden;text-align:center;padding:60px 24px 55px;background:linear-gradient(#fff8f8,#f4dce5)}.closing::after{content:'';position:absolute;right:-95px;bottom:-100px;width:350px;height:410px;background:url('assets/floral.svg') center/contain no-repeat;opacity:.55;pointer-events:none;transform:rotate(-25deg)}.closing>*{position:relative;z-index:1}.closing-monogram{font:48px var(--serif);color:var(--gold);margin-bottom:22px}.closing .eyebrow{font-size:8px}.closing>p:not(.eyebrow):not(.closing-monogram){font-size:13px;color:var(--muted);margin-bottom:8px}.closing>p>span{font:italic 23px var(--serif);color:var(--rose)}.back-top{display:inline-flex;align-items:center;min-height:44px;font-size:8px;letter-spacing:1.6px;border-bottom:1px solid var(--gold);margin-top:13px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 6%;border-top:1px solid var(--line);color:var(--gold-dark);font-size:8px;letter-spacing:1.3px}.footer-monogram{font:29px var(--serif)}.photo-dialog{padding:52px 20px 20px;background:var(--cream);border:1px solid var(--gold);max-width:94vw;max-height:96dvh;overflow:auto}.photo-dialog::backdrop{background:#3a172ae8}.photo-dialog img{display:block;max-width:100%;max-height:76dvh;width:auto;margin:auto;object-fit:contain}.photo-dialog p{text-align:center;font:italic 17px var(--serif);margin:15px 0 0}.photo-dialog>button{position:absolute;right:14px;top:4px;min-height:44px;min-width:90px;background:transparent;border:0;color:var(--ink);font-size:12px;cursor:pointer}.photo-dialog>button span{font-size:23px;margin-left:12px;vertical-align:middle}body.modal-open{overflow:hidden}
@media(max-width:1350px){.section{margin-left:6%;margin-right:6%}.hero{gap:35px}.hero-photo{max-width:490px}.hero::before{width:275px;right:-100px}.hero-kicker{font-size:25px}.hero-motto{font-size:30px}h2{font-size:42px}}
@media(max-width:1000px){.hero{gap:30px;padding-left:5%;padding-right:5%}h1{font-size:85px;letter-spacing:-4px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}.hero-kicker{font-size:22px;margin-top:25px}.hero-motto{font-size:27px}.hero-message{font-size:13px}.hero-date{font-size:9px;letter-spacing:1px}.hero-photo{padding:10px 10px 0}.photo-label{flex-direction:column;align-items:flex-start;padding:15px 4px;gap:5px}.photo-label>span:last-child{font-size:15px}.hero-foot{font-size:7px;gap:10px}.hero::before{width:230px;height:320px;right:-92px}.event-card{padding-left:24px;padding-right:24px}.photo-sharing{gap:40px}.photo-sharing h2{font-size:36px}h3{font-size:25px}.gifts::before{left:-155px}}
@media(max-width:700px){
html{scroll-padding-top:18px}.announcement{font-size:7px;letter-spacing:1.3px;padding:11px 10px}.header{padding:10px 6%;gap:14px}.brand{font-size:29px;gap:10px}.brand span{font-size:6px;letter-spacing:1px;padding-left:10px}nav{gap:14px}nav a{font-size:11px}nav a:last-child{display:none}.hero{display:flex;flex-direction:column;gap:0;padding:22px 0 36px}.hero-photo{order:-1;max-width:none;width:82%;margin:0 auto 30px;padding:10px 10px 0;border-radius:230px 230px 0 0}.portrait-frame{border-radius:220px 220px 0 0}.hero-photo::after{inset:5px}.photo-label{flex-direction:row;align-items:center;padding:16px 3px}.photo-label>span:first-child{font-size:7px;letter-spacing:1px}.photo-label>span:last-child{font-size:13px}.portrait-zoom{bottom:12px;right:12px}.hero::before{width:230px;height:290px;top:-65px;right:-85px;transform:rotate(5deg)}.hero-copy{padding:0 7%;width:100%}.hero .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:18px}.hero-kicker{font-size:24px;margin:16px 0 0}h1{font-size:clamp(64px,20vw,87px);letter-spacing:-3px;margin:0 0 15px}.hero-motto{font-size:28px;max-width:320px;margin-bottom:20px}.hero-message{font-size:14px;max-width:350px;margin-bottom:17px}.hero-date{font-size:10px;letter-spacing:1.1px;margin-bottom:20px}.hero-date>span{font-size:25px}.button{font-size:12px;min-height:50px;padding:15px 20px;gap:25px}.hero-foot{margin-top:25px;font-size:8px;letter-spacing:1.2px;gap:13px}.section{margin:0 7%;padding:35px 0 47px}.section-marker{font-size:8px;letter-spacing:1.3px;padding-top:17px}.section-marker>span:last-child{font-size:22px}.invitation-inner{margin-top:35px}.eyebrow{font-size:8px;letter-spacing:1.6px;line-height:1.8;margin-bottom:19px}h2{font-size:32px;line-height:1.25;letter-spacing:-.8px}.invitation h2 br{display:none}.invitation h2 em{display:block;margin-top:8px}.body-copy{font-size:14px;line-height:1.9}.family{margin:28px 0}.family-names{font-size:25px;overflow-wrap:break-word}.family .eyebrow{font-size:8px}.event-details{grid-template-columns:1fr 1fr;row-gap:22px;margin:30px auto 25px}.event-details>div{padding:4px 9px;min-width:0}.event-details>div:first-child{grid-column:1/-1;border:0;border-bottom:1px solid var(--line);padding:0 0 20px}.event-details strong{font-size:21px}.event-details time{font-size:19px}.detail-label{font-size:8px;letter-spacing:1.3px;margin-bottom:10px}.countdown-wrap{margin-top:29px;padding-top:26px}.countdown-wrap .eyebrow{font-size:8px;margin-bottom:22px}.countdown{gap:3px}.countdown-number{font-size:clamp(34px,10.4vw,44px)}.countdown-colon{font-size:25px}.countdown-unit{font-size:9px;letter-spacing:.3px;margin-top:10px}.countdown-note{font-size:16px;line-height:1.6;margin-top:23px}.section-heading{margin:34px 0 28px}.section-heading h2{font-size:32px}.event-cards{grid-template-columns:1fr;gap:22px}.event-card{padding:32px 24px 25px}.event-icon{width:48px;height:48px;margin-bottom:18px}.event-time{font-size:52px;margin-bottom:20px}.event-time span{font-size:22px}h3{font-size:28px}.event-card>p:not(.detail-label):not(.event-time):not(.copy-status){font-size:14px}.reception .button{width:100%;max-width:290px;gap:15px}.copy-address{font-size:12px}.gifts{padding:47px 7%}.gifts::before{width:220px;height:280px;left:-130px;bottom:-15px;opacity:.35}.gifts-inner h2{font-size:35px}.gift-options{gap:20px;margin-top:28px}.gift-options>div{min-width:0;flex:1}.gift-options>div>span{font-size:22px;line-height:1.3}.gift-options svg{width:46px;height:46px}.gift-or{font-size:23px}.photo-sharing{display:flex;flex-direction:column;gap:35px;margin:36px auto 5px;text-align:center}.photo-sharing h2{font-size:32px}.photo-sharing .body-copy{margin:auto}.coming-soon{font-size:8px;letter-spacing:1px;margin-top:23px}.album-placeholder{max-width:235px;min-height:265px;margin:6px 0}.album-placeholder>span{font-size:25px}.closing{padding:43px 7% 35px}.closing-monogram{font-size:42px;margin-bottom:20px}.closing h2{font-size:33px}.closing .eyebrow{font-size:7px;letter-spacing:1.3px}.closing::after{width:240px;height:300px;right:-125px;bottom:-55px;opacity:.35}footer{padding:21px 7%;gap:14px;flex-wrap:wrap;font-size:6px;letter-spacing:1px}footer>span:nth-child(2){max-width:145px;line-height:1.8}footer>span:last-child{margin-left:auto}.photo-dialog{padding-left:9px;padding-right:9px;max-width:96vw}}
@media(max-width:380px){.brand span{display:none}nav{gap:18px}nav a{font-size:11px}.hero-date{font-size:9px;letter-spacing:1px}.photo-label{flex-wrap:wrap;gap:7px}.photo-label>span:last-child{font-size:12px}.section-heading h2,.photo-sharing h2{font-size:29px}.event-card{padding-left:20px;padding-right:20px}.gift-options>div>span{font-size:20px}.gift-options{gap:15px}.closing h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.family-connector{display:inline-block;margin:8px 0;font:italic 20px/1.2 var(--serif);color:var(--gold-dark)}.venue-name{display:block;margin-top:9px;font:italic 30px/1.2 var(--serif);color:var(--rose)}
@media(max-width:700px){.family-connector{font-size:18px}.venue-name{font-size:29px}}
