@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/cormorant-regular.ttf') format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('assets/fonts/cormorant-italic.ttf') format('truetype')}
:root{--navy:#09142c;--deep:#070e20;--gold:#ddc18a;--pale:#f5efe3;--muted:#b9bdcb;--line:rgba(221,193,138,.27);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;background:var(--navy);color:var(--pale);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.7}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.5}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:1.1}em{font-weight:400;color:var(--gold)}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;background:var(--deep);border-bottom:1px solid var(--line)}.monogram{font:italic 33px Georgia,serif;color:var(--gold)}.monogram span{font:12px Arial;vertical-align:top;margin-left:5px}.topnote,.nav-rsvp{font-size:10px;letter-spacing:2.5px}.topnote{color:var(--gold)}.nav-rsvp{border-bottom:1px solid var(--gold);padding:6px 0}.nav-rsvp span{margin-left:14px}.hero{min-height:740px;height:calc(100svh - 78px);max-height:1050px;position:relative;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.hero-photo{height:100%;position:relative;order:2;overflow:hidden}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--navy),transparent 18%),linear-gradient(0deg,rgba(9,20,44,.5),transparent 35%)}.hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 0%}.hero-copy{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 20px 80px;isolation:isolate}.sky{background-color:var(--navy);background-image:radial-gradient(1px 1px at 8% 21%,#e9d8b5 99%,transparent),radial-gradient(1px 1px at 83% 15%,#e9d8b5 99%,transparent),radial-gradient(1px 1px at 92% 65%,#e9d8b5 99%,transparent),radial-gradient(1px 1px at 17% 78%,#e9d8b5 99%,transparent),radial-gradient(1px 1px at 73% 88%,#e9d8b5 99%,transparent),radial-gradient(1px 1px at 34% 9%,#e9d8b5 99%,transparent),radial-gradient(ellipse at 50% 55%,#17274777,transparent 70%);background-size:337px 309px,457px 391px,363px 437px,499px 469px,421px 419px,547px 489px,100% 100%}.orbit{position:absolute;border:1px solid var(--line);width:76%;height:88%;border-radius:50% 50% 0 0;top:6%;z-index:-1;opacity:.5}.hero-star{font-size:46px;line-height:1;color:var(--gold);margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:2.8px;line-height:1.8;color:var(--gold);font-weight:400}.xv{font-size:12px;letter-spacing:5px;margin-top:32px;margin-bottom:19px;color:var(--gold)}h1{font-size:clamp(58px,6vw,96px);letter-spacing:-3px}h1 em{display:block}.surname{font-size:10px;letter-spacing:4px;margin-top:22px}.gold-rule{display:flex;align-items:center;gap:16px;justify-content:center;color:var(--gold);width:140px;margin:25px auto}.gold-rule:before,.gold-rule:after{content:'';height:1px;flex:1;background:var(--line)}.gold-rule span{font-size:12px}.hero-date{font:27px Georgia,serif;letter-spacing:3px}.hero-date span{color:var(--gold);margin:0 5px}.hero-place{font-size:9px;letter-spacing:2.5px;color:var(--muted);margin:16px 0 30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:50px;padding:13px 25px;font-size:12px;letter-spacing:.6px;border:1px solid var(--gold);border-radius:2px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.gold{background:var(--gold);color:var(--navy)}.gold:hover{background:#ead4ac}.outline{color:var(--gold);background:transparent}.outline:hover{background:#ddc18a12}.song-link{font-size:11px;color:var(--pale);margin-top:20px}.song-link>span:first-child{color:var(--gold);font-size:17px;margin-right:7px}.song-link .small{font-size:9px;color:var(--muted);margin-left:5px}.scroll-cue{position:absolute;bottom:20px;left:25%;transform:translateX(-50%);font-size:8px;letter-spacing:2px;color:var(--muted);white-space:nowrap}.scroll-cue span{display:block;text-align:center;font-size:17px;margin-top:3px;color:var(--gold)}.section{text-align:center;padding:100px 24px}.intro{border-top:1px solid var(--line)}h2{font-size:clamp(39px,4.3vw,58px);letter-spacing:-1.5px}.intro h2{margin:25px 0}.intro-text{max-width:470px;margin:auto;color:var(--muted);font-size:14px;line-height:1.9}.small-star{display:block;font-size:35px;color:var(--gold);margin:32px auto 27px}.countdown-label{font-size:9px;letter-spacing:2px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:24px;margin-top:27px}.countdown div{min-width:66px}.countdown strong{display:block;font:52px Georgia,serif;color:var(--gold);font-variant-numeric:tabular-nums;line-height:1.2}.countdown span{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:10px}.countdown b{font:25px Georgia,serif;line-height:2.3;color:var(--line);font-weight:400}.details{background:#0d1933;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.details h2{margin-top:17px}.event-grid{max-width:800px;margin:55px auto 46px;display:grid;grid-template-columns:1fr 1fr}.event-grid>div{padding:8px 25px}.date-block{border-right:1px solid var(--line)}.line-icon{font-size:37px;color:var(--gold);height:44px;display:block;line-height:44px}.pin{width:31px;height:44px;color:var(--gold)}h3{font-size:28px;margin:15px 0 27px}.date-word{font-size:10px;letter-spacing:2px;color:var(--muted)}.date-number{font:74px Georgia,serif;line-height:1.2;color:var(--gold);margin:5px 0}.time{font:23px Georgia,serif;margin-top:22px}.venue-name{font:34px Georgia,serif;color:var(--gold);margin-top:36px}.venue-type{font-size:12px;margin-top:5px}.city{font-size:12px;color:var(--muted);margin-top:13px}.venue-block .button{margin-top:28px}.dresscode{max-width:750px;margin:0 auto;border-top:1px solid var(--line);padding-top:35px;display:flex;justify-content:center;align-items:center;gap:45px}.dresscode>span{font-size:15px;color:var(--gold)}.dresscode .eyebrow{font-size:9px;letter-spacing:2px}.dresscode p:last-child{font:30px Georgia,serif;margin-top:10px}.rsvp{padding:80px 24px}.rsvp-frame{max-width:830px;margin:auto;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:8px;padding:30px 25px 48px;position:relative;background:rgba(7,14,32,.4)}.rsvp .small-star{margin:0 auto 18px}.rsvp h2{margin:21px 0 25px}.rsvp p:not(.eyebrow){color:var(--muted);font-size:13px}.rsvp strong{color:var(--pale);font-weight:400}.rsvp .button{margin:28px 0 12px}.rsvp .rsvp-note{font-size:10px!important;letter-spacing:.5px}.footer{text-align:center;background:var(--deep);padding:55px 20px 35px}.footer .eyebrow{font-size:8px;letter-spacing:2px}.signature{font:23px Georgia,serif;margin-top:22px}.signature em{font-size:46px;display:block;margin-top:7px}.footer-date{font-size:8px;letter-spacing:2px;color:var(--muted)}.footer .gold-rule{margin:20px auto}dialog{border:1px solid var(--gold);background:var(--navy);color:var(--pale);border-radius:4px;max-width:460px;width:calc(100% - 32px);max-height:90svh;padding:38px 30px;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#030816bd;backdrop-filter:blur(7px)}dialog h2{margin:13px 0 18px;font-size:43px}dialog>p:not(.eyebrow){font-size:13px;color:var(--muted)}.close{position:absolute;right:14px;top:8px;background:none;border:0;color:var(--gold);font-size:30px;min-width:40px;min-height:40px}form{margin-top:24px}label{display:block;font-size:12px;margin:18px 0 7px}input{background:#111f3b;border:1px solid #6e6c69;border-radius:2px;color:var(--pale);padding:12px;width:100%;min-height:48px;font-size:16px}input::placeholder{color:#a2aabc}.message-preview{background:#ffffff06;border-left:1px solid var(--gold);padding:12px 15px;margin:20px 0;font-size:12px;overflow-wrap:anywhere;color:var(--muted)}form .button{width:100%}.form-note{font-size:10px;color:var(--muted);margin-top:12px;text-align:center;line-height:1.6}.skip{position:fixed;top:-100px;left:10px;z-index:5;background:var(--gold);color:var(--navy);padding:10px}.skip:focus{top:10px}
@media(min-width:1500px){.hero{max-width:1600px;margin:auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}}
@media(max-width:700px){html{scroll-padding-top:20px}.topbar{height:61px;padding:0 22px}.topnote{font-size:7px;letter-spacing:1.6px}.nav-rsvp{font-size:9px;letter-spacing:.8px}.nav-rsvp span{margin-left:4px}.monogram{font-size:27px}.hero{display:block;height:auto;min-height:0;max-height:none;background:var(--navy)}.hero-photo{position:relative;height:83svh;min-height:550px;max-height:780px}.hero-photo img{object-position:center 22%;object-fit:cover}.hero-photo:after{background:linear-gradient(0deg,var(--navy) 0%,rgba(9,20,44,.75) 12%,transparent 43%)}.hero-copy{margin-top:-190px;padding:0 20px 56px;background:none;position:relative}.hero-copy .orbit,.hero-star,.hero-copy>.eyebrow{display:none}.xv{margin:0 0 15px;font-size:10px;letter-spacing:4px;text-shadow:0 1px 10px #000}h1{font-size:65px;letter-spacing:-2px;line-height:1.05;text-shadow:0 2px 20px #0006}h1 em{display:inline}h1 em:before{content:' '}.surname{margin-top:14px;font-size:9px;letter-spacing:3px}.hero-copy .gold-rule{margin:25px auto}.hero-date{font-size:25px}.hero-place{margin-bottom:28px}.scroll-cue{display:none}.section{padding:70px 24px}.intro .eyebrow{font-size:8px;letter-spacing:1.7px}h2{font-size:39px;letter-spacing:-1px}.intro h2{margin:22px 0}.intro-text{font-size:13px;max-width:340px}.countdown{gap:12px}.countdown div{min-width:49px}.countdown strong{font-size:39px}.countdown span{font-size:7px;letter-spacing:1px}.countdown b{font-size:18px;line-height:2.5}.countdown-label{font-size:8px!important;letter-spacing:1px!important}.details>.eyebrow{font-size:8px;letter-spacing:1.5px}.event-grid{grid-template-columns:1fr;margin:36px auto}.event-grid>div{padding:15px 10px 36px}.date-block{border-right:0;border-bottom:1px solid var(--line);margin:0 22px 25px}.event-grid h3{margin-bottom:20px}.venue-name{margin-top:20px}.dresscode{gap:25px;padding-top:30px}.rsvp{padding:65px 25px}.rsvp-frame{padding:28px 18px 34px}.rsvp .eyebrow{font-size:8px;letter-spacing:1.4px}.rsvp h2{font-size:38px}.rsvp p:not(.eyebrow){font-size:12px}.desktop-break{display:none}.footer{padding:42px 20px 30px}dialog{padding:36px 23px}}
@media(max-width:360px){h1{font-size:55px}.topnote{font-size:6px;letter-spacing:1px}.countdown{gap:8px}.countdown div{min-width:45px}.rsvp h2{font-size:33px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}

/* Classic floral stationery, with an uninterrupted full-name heading. */
h1#title{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:clamp(46px,5.1vw,82px);line-height:1.03;letter-spacing:-1.5px;color:#f0d9a5;margin:0;width:100%;text-shadow:0 2px 16px #030b1ddd}
h1#title span{display:block;white-space:nowrap;font:inherit;color:inherit}
h2{font-size:clamp(43px,4.6vw,65px);line-height:1.08}h2 em{font-weight:500}h3{font-size:34px}.signature,.venue-name,.dresscode p:last-child{font-family:'Cormorant Garamond',Georgia,serif}.signature em{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}
.hero-copy{padding:60px 24px 80px;background-color:#09142c;background-image:linear-gradient(#09142c12,#09142c12),url('assets/floral-night.jpg');background-size:cover;background-position:center}
.hero-copy .orbit{width:90%;height:92%;top:4%;border-radius:46% 46% 0 0;opacity:.7;border-color:#ddc18a5c;background:radial-gradient(ellipse at center,#09142c25 0%,transparent 70%)}
.hero-star{font-size:36px;margin-bottom:20px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:2.5px}.xv{margin-top:27px;margin-bottom:24px;font-size:10px;letter-spacing:5px}.hero-copy .gold-rule{margin:27px auto}.hero-place{margin-bottom:25px}.hero-photo:after{background:linear-gradient(90deg,#09142c,transparent 15%),linear-gradient(0deg,#09142c77,transparent 30%)}
.intro.sky,.rsvp.sky{background-image:linear-gradient(#09142c33,#09142c33),url('assets/floral-night.jpg');background-size:100% 100%,cover;background-position:center}.intro{padding-top:112px;padding-bottom:112px}.intro-text{color:#d3d6df}.intro h2{margin:26px 0}.rsvp-frame{background:#09142ce8}.details{background:radial-gradient(ellipse at 50% 25%,#1a2c4d66,transparent 65%),#0b162f}.footer{padding-bottom:95px}
.song-link{background:none;border:0;padding:7px 12px;margin-top:12px;color:var(--pale);font-size:11px;min-height:40px}.song-link>span:first-child{color:var(--gold);font-size:16px;margin-right:7px}.music-note{font-size:9px;color:#c5c9d5;letter-spacing:.25px;min-height:17px;max-width:300px;text-wrap:balance}.music-float{position:fixed;z-index:4;right:22px;bottom:22px;display:flex;align-items:center;gap:10px;min-height:46px;border:1px solid #ddc18a80;border-radius:30px;background:#09142cf0;color:#edd6a4;padding:8px 16px 8px 10px;box-shadow:0 4px 24px #0004;font-size:11px;backdrop-filter:blur(10px)}.music-disc{display:grid;place-items:center;width:28px;height:28px;border:1px solid #ddc18a55;border-radius:50%;font-size:16px}.music-float:hover{background:#162440}body.music-playing .music-disc{box-shadow:0 0 0 3px #ddc18a0b}.music-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
@media(min-width:701px) and (max-width:1000px){h1#title{font-size:clamp(42px,5.6vw,56px);letter-spacing:-1px}.hero-copy{padding-left:15px;padding-right:15px}.hero-copy>.eyebrow{font-size:7px;letter-spacing:1.7px}}
@media(max-width:700px){.hero-copy{background:none;padding:0 22px 55px;margin-top:-170px}.hero-copy:before{content:'';position:absolute;z-index:-1;inset:30px 0 0;background-image:linear-gradient(#09142c30,#09142c20),url('assets/floral-night.jpg');background-size:cover;background-position:center;-webkit-mask-image:linear-gradient(transparent,#000 40%);mask-image:linear-gradient(transparent,#000 40%)}.hero-photo:after{background:linear-gradient(0deg,#09142c 0%,#09142cbb 15%,transparent 42%)}h1#title{font-size:clamp(43px,11.6vw,70px);line-height:1.07;letter-spacing:-.5px}.xv{margin:0 0 22px}.hero-copy .gold-rule{margin:25px auto}.intro.sky,.rsvp.sky{background-size:100% 100%,100% 100%;background-image:linear-gradient(#09142c40,#09142c40),url('assets/floral-night.jpg')}.intro{padding-top:85px;padding-bottom:85px}.intro h2{font-size:43px}.intro-text{font-size:14px}.rsvp h2{font-size:43px}.music-float{bottom:14px;right:14px;padding-right:13px;font-size:10px;min-height:44px}.footer{padding-bottom:100px}}
@media(max-width:360px){h1#title{font-size:42px}.hero-copy{padding-left:16px;padding-right:16px}.rsvp h2{font-size:38px}}
.countdown{width:fit-content;margin:27px auto 0;padding:18px 24px 20px;background:#09142ce8;border:1px solid #ddc18a38;border-radius:2px;box-shadow:0 8px 32px #09142c33}
@media(max-width:700px){.countdown{padding:18px 12px 20px;max-width:100%}.intro.sky{background-image:linear-gradient(#09142c66,#09142c44),url('assets/floral-night.jpg')}}
.intro.sky{background-image:linear-gradient(#09142cb8,#09142c99),url('assets/floral-night.jpg')}.music-note{background:#09142cd9;padding:3px 8px;border-radius:3px}
/* Subtler floral borders: retain the artwork while lowering its brightness. */
.hero-copy{background-image:linear-gradient(#09142c55,#09142c55),url('assets/floral-night.jpg')}
.rsvp.sky{background-image:linear-gradient(#09142c70,#09142c70),url('assets/floral-night.jpg')}
.intro.sky{background-image:linear-gradient(#09142ccc,#09142cb0),url('assets/floral-night.jpg')}
@media(max-width:700px){.hero-copy{background:none}.hero-copy:before{background-image:linear-gradient(#09142c70,#09142c70),url('assets/floral-night.jpg')}}

/* One continuous navy canvas: artwork fades away before section edges. */
main,.topbar{background:var(--navy)}
.topbar{border-bottom:0}
.hero{background:var(--navy);border:0}
.hero-copy{background:none}
.hero-copy::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#09142c55,#09142c55),url('assets/floral-night.jpg') center/cover no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 70px,#000 66%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 70px,#000 66%,transparent)}
.hero-photo img{-webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent 100%);mask-image:linear-gradient(to bottom,#000 65%,transparent 100%)}
.intro.sky,.rsvp.sky,.details,.footer{position:relative;isolation:isolate;background:var(--navy);border-top:0;border-bottom:0}
.intro::before,.rsvp::before,.details::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 140px,#000 calc(100% - 140px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 140px,#000 calc(100% - 140px),transparent)}
.intro::before{background:linear-gradient(#09142ccc,#09142cb0),url('assets/floral-night.jpg') center/cover no-repeat}
.rsvp::before{background:linear-gradient(#09142c70,#09142c70),url('assets/floral-night.jpg') center/cover no-repeat}
.details::before{background:radial-gradient(ellipse at 50% 50%,#1a2c4d55,transparent 72%)}
@media(max-width:700px){
 .hero-copy::before{inset:30px 0 0;background:linear-gradient(#09142c70,#09142c70),url('assets/floral-night.jpg') center/cover no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 65%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 65%,transparent)}
 .intro::before,.rsvp::before{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 120px,#000 calc(100% - 120px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 120px,#000 calc(100% - 120px),transparent);background-size:100% 100%}
}

.gifts{position:relative;isolation:isolate;background:var(--navy);padding-top:75px;padding-bottom:65px}
.gifts::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,#23345440,transparent 70%)}
.gift-icon{display:block;width:43px;height:43px;color:var(--gold);margin:0 auto 25px}
.gifts h2{margin:20px 0 24px}
@media(max-width:700px){.gifts{padding-top:55px;padding-bottom:45px}.gifts h2{font-size:42px}}

/* The original portraits blend into the same navy canvas. */
.hero-photo img{object-position:50% 32%;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 6%,#000 68%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 6%,#000 68%,transparent)}
.hero-photo:after{background:linear-gradient(90deg,var(--navy),transparent 18%,transparent 93%,var(--navy)),linear-gradient(0deg,var(--navy),transparent 32%)}
.portrait-section{background:var(--navy);padding:0 24px;overflow:hidden}
.portrait-photo{position:relative;max-width:650px;margin:0 auto;isolation:isolate}
.portrait-photo img{display:block;width:100%;height:auto;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 76%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 76%,transparent)}
.portrait-photo:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--navy),transparent 16%,transparent 84%,var(--navy))}
@media(max-width:700px){.hero-photo img{object-position:50% 25%}.hero-photo:after{background:linear-gradient(90deg,#09142c80,transparent 10%,transparent 90%,#09142c80),linear-gradient(0deg,var(--navy) 0%,#09142cbb 15%,transparent 42%)}.portrait-section{padding:0}.portrait-photo{max-width:560px}}
