:root{--blue:#17354b;--blue2:#244d66;--mist:#dce7ea;--ice:#edf3f3;--gold:#d7bd84;--ink:#102532;--white:#fff;--serif:'Cormorant Garamond',serif;--display:'Italiana',serif;--sans:'Montserrat',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ice);color:var(--ink);font-family:var(--sans);font-weight:300;overflow-x:hidden}.vj-cover{height:100svh;min-height:680px;position:relative;background-image:var(--cover);background-size:cover;background-position:center;display:grid;align-items:center;color:#fff}.vj-coverShade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,25,38,.78) 0%,rgba(8,30,45,.46) 48%,rgba(8,25,36,.15) 100%)}.vj-coverInner{position:relative;z-index:2;width:min(1280px,88vw);margin:auto}.eyebrow,.sectionTitle span{font:500 10px/1.4 var(--sans);letter-spacing:.46em}.vj-cover h1{font:400 clamp(58px,8vw,130px)/.78 var(--display);margin:24px 0 34px;max-width:850px;text-shadow:0 2px 30px rgba(0,0,0,.15)}.vj-cover h1 i{display:block;font:italic 400 .48em/1 var(--serif);color:var(--gold);margin:18px 0}.date{letter-spacing:.32em;font-size:11px}.guest{margin-top:50px;display:grid;gap:8px}.guest small{letter-spacing:.28em;font-size:9px}.guest strong{font:400 25px var(--serif)}button,.vj-event a{border:0;cursor:pointer;font:500 10px var(--sans);letter-spacing:.18em}.vj-cover button{margin-top:26px;padding:17px 24px;background:rgba(239,246,247,.94);color:var(--blue);border-radius:2px}.vj-main{background:var(--ice)}.vj-verse{min-height:500px;padding:110px 20px;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 50% 0,#fff 0,#edf4f4 56%,#dce8e9 100%);position:relative;overflow:hidden}.vj-verse:before,.vj-verse:after{content:'❀  ❧  ❀';position:absolute;color:#7fa3b2;opacity:.17;font-size:120px;transform:rotate(-20deg)}.vj-verse:before{left:-50px;bottom:0}.vj-verse:after{right:-50px;top:20px;transform:rotate(160deg)}.orn{color:var(--gold);font-size:20px}.quote{font:italic 400 clamp(25px,3vw,42px)/1.4 var(--serif);max-width:820px;margin:28px auto}.vj-verse span{font-size:10px;letter-spacing:.2em;color:#67808e}.vj-couple{padding:120px 6vw;background:#dfe9ea}.sectionTitle{text-align:center;margin-bottom:65px}.sectionTitle span{color:#648899}.sectionTitle h2{font:400 clamp(48px,6vw,84px)/.95 var(--display);margin:14px 0}.sectionTitle h2 em{font-family:var(--serif);font-weight:400;color:#55798c}.people{max-width:1120px;margin:auto;display:grid;grid-template-columns:1fr 90px 1fr;align-items:center}.person{display:grid;grid-template-columns:minmax(180px,320px) 1fr;gap:28px;align-items:end}.person.reverse{grid-template-columns:1fr minmax(180px,320px)}.person.reverse figure{order:2}.person figure{margin:0;aspect-ratio:3/4;overflow:hidden;border-radius:48% 48% 4px 4px;box-shadow:0 22px 50px rgba(20,53,72,.14)}.person img{width:100%;height:100%;object-fit:cover}.person small{font-size:9px;letter-spacing:.35em;color:#658494}.person h3{font:400 43px var(--serif);margin:10px 0}.person p{font:300 12px/1.8 var(--sans);color:#58707c}.amp{text-align:center;font:italic 70px var(--serif);color:#7a9aab}.vj-event{padding:120px 6vw;background:linear-gradient(rgba(15,48,67,.91),rgba(14,43,61,.96)),url('images/couple-sunset.jpg') center/cover fixed;color:#fff}.sectionTitle.light span{color:#a9c8d4}.sectionTitle.light h2{color:#fff}.eventGrid{max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:24px}.eventCard{position:relative;padding:55px 40px;border:1px solid rgba(220,238,242,.35);background:rgba(14,49,69,.55);backdrop-filter:blur(8px);text-align:center}.eventNo{position:absolute;top:18px;left:20px;font:italic 22px var(--serif);color:var(--gold)}.eventCard h3{font:400 38px var(--serif);margin:12px}.eventDate,.eventTime{font-size:10px;letter-spacing:.14em;margin:8px}.eventCard strong{display:block;font:400 20px var(--serif);margin-top:24px}.eventCard p{font-size:11px;opacity:.75}.eventCard a{display:inline-block;margin-top:20px;padding:13px 18px;border:1px solid rgba(255,255,255,.45);color:#fff;text-decoration:none}.vj-story{padding:120px 6vw;background:#f3f7f6}.storyLine{max-width:1100px;margin:auto;display:flex;position:relative;gap:30px}.storyLine:before{content:'';position:absolute;top:10px;left:0;right:0;height:1px;background:#9bb5bf}.storyItem{flex:1;padding-top:42px;position:relative}.storyItem i{position:absolute;top:4px;left:0;width:13px;height:13px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px #dce7ea}.storyItem time{font-size:10px;letter-spacing:.2em;color:#7594a2}.storyItem h3{font:400 29px var(--serif);margin:12px 0}.storyItem p{font-size:12px;line-height:1.8;color:#58707c}.vj-gallery{padding:110px 4vw;background:#17384d}.galleryGrid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:180px;gap:10px}.galleryGrid figure{margin:0;overflow:hidden}.galleryGrid img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.galleryGrid figure:hover img{transform:scale(1.04)}.g1{grid-column:span 5;grid-row:span 2}.g2{grid-column:span 3;grid-row:span 2}.g3{grid-column:span 4}.g4{grid-column:span 4}.g5{grid-column:span 4}.g6{grid-column:span 4}.vj-rsvp{padding:110px 8vw;background:#dfe9ea;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center}.vj-rsvp h2,.vj-gift h2{font:400 55px var(--serif);margin:10px 0}.vj-rsvp p,.center{font-size:12px;line-height:1.8}.vj-rsvp form{display:grid;gap:10px}.vj-rsvp input,.vj-rsvp select{width:100%;padding:16px;border:1px solid #abc0c8;background:#edf4f4;font:300 12px var(--sans)}.vj-rsvp button,.outline{padding:16px;background:var(--blue);color:#fff}.vj-gift{padding:110px 20px;text-align:center;background:#f4f7f6}.center{max-width:620px;margin:0 auto 25px}.outline{border:1px solid var(--blue);background:transparent;color:var(--blue)}.vj-wishes{padding:110px 8vw;background:#244c64}.wishCards{max-width:900px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px}.wishCards blockquote{margin:0;padding:35px;background:rgba(230,242,244,.1);border:1px solid rgba(230,242,244,.22);color:#fff;font:italic 25px/1.4 var(--serif)}.wishCards small{display:block;margin-top:20px;font:300 10px var(--sans);letter-spacing:.15em;color:#b9d1da}.vj-closing{height:80vh;min-height:600px;background:linear-gradient(rgba(7,31,45,.3),rgba(7,31,45,.7)),var(--close) center/cover;display:grid;place-items:center;text-align:center;color:#fff}.vj-closing span{font-size:10px;letter-spacing:.5em}.vj-closing h2{font:400 clamp(45px,7vw,90px) var(--display);margin:20px}.vj-closing h2 i{font-family:var(--serif);color:var(--gold)}.music{position:fixed;z-index:30;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;background:#edf4f4;color:#17384d;box-shadow:0 6px 24px rgba(0,0,0,.2);font-size:18px}.reveal{opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}#vj-fireflies{position:fixed;inset:0;z-index:20;pointer-events:none;overflow:hidden}.firefly{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff6b7;box-shadow:0 0 7px 2px #ffe78a,0 0 18px 6px rgba(255,220,104,.35);animation:fly var(--dur) ease-in-out infinite alternate,blink var(--blink) ease-in-out infinite;opacity:0}@keyframes fly{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--dx),var(--dy),0)}}@keyframes blink{0%,100%{opacity:.05}35%{opacity:.85}55%{opacity:.18}75%{opacity:1}}
@media(max-width:900px){.vj-coverInner{width:86vw}.vj-cover h1{font-size:clamp(54px,13vw,92px)}.people{grid-template-columns:1fr;gap:50px}.amp{display:none}.person,.person.reverse{max-width:650px;margin:auto;grid-template-columns:1fr 1fr}.eventGrid{grid-template-columns:1fr}.vj-rsvp{grid-template-columns:1fr;gap:30px}.galleryGrid{grid-auto-rows:150px}.storyLine{overflow-x:auto;padding-bottom:20px}.storyItem{min-width:250px}}
@media(max-width:600px){.vj-cover{min-height:620px;background-position:58% center}.vj-coverShade{background:linear-gradient(0deg,rgba(7,31,45,.78),rgba(7,31,45,.12) 70%)}.vj-coverInner{align-self:end;padding-bottom:70px}.vj-cover h1{font-size:54px;line-height:.88;margin:18px 0}.guest{margin-top:28px}.vj-verse,.vj-couple,.vj-event,.vj-story,.vj-gallery,.vj-rsvp,.vj-gift,.vj-wishes{padding-top:80px;padding-bottom:80px}.sectionTitle{margin-bottom:42px}.sectionTitle h2{font-size:46px}.person,.person.reverse{grid-template-columns:1fr}.person.reverse figure{order:0}.person figure{width:82%;margin:auto}.person div{text-align:center}.galleryGrid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:210px}.galleryGrid figure{grid-column:auto!important;grid-row:auto!important}.galleryGrid .g1,.galleryGrid .g6{grid-column:span 2!important}.wishCards{grid-template-columns:1fr}.vj-closing{height:70vh}.firefly:nth-child(n+19){display:none}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.firefly{animation:none;opacity:.35}}
