:root{--forest:#17243e;--forest-2:#263a5a;--ivory:#f8f5ed;--paper:#fffdf7;--blush:#ead9d0;--ink:#253149;--muted:#6e7584;--gold:#b99a67;--line:#d8d6c9}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:'Jost',sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:inherit}
::selection{background:#c5ad83;color:#17243e}
.skip-link{position:absolute;left:16px;top:-60px;z-index:100;padding:12px 16px;background:var(--paper);color:var(--forest)}
.skip-link:focus{top:16px}
.section{padding:clamp(80px,9vw,150px) clamp(24px,7vw,112px)}
.eyebrow{margin:0 0 18px;color:var(--gold);font-size:11px;font-weight:600;letter-spacing:.27em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
h2{font:400 clamp(3.4rem,6.5vw,6.8rem)/.98 'Cormorant Garamond',serif;letter-spacing:-.045em}
h2 em,.closing h2 em{font:italic 400 .56em/1.1 'Rosarivo',serif;letter-spacing:-.01em;color:#8e7269}
.site-header{position:absolute;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:28px clamp(24px,6vw,92px);color:#fff9e9}
.wordmark{text-decoration:none;font:500 clamp(24px,2.7vw,34px)/1 'Cormorant Garamond',serif;letter-spacing:-.03em;white-space:nowrap}
.wordmark span{font:italic 400 .65em 'Rosarivo',serif;color:#e1c49b;margin:0 4px}
.site-nav{display:flex;align-items:center;gap:clamp(20px,2.8vw,43px)}
.site-nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:600;transition:color .25s}
.site-nav a:hover,.site-nav a:focus-visible{color:#e5c492}
.menu-button{display:none}
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(750px,100svh,1050px);display:flex;align-items:center;padding:125px clamp(27px,10vw,160px) 115px;color:#fff9ee;background:#17243e}
.hero-photo{position:absolute;inset:-6% 0;z-index:-3;background:url('moonlit-mandap.png') center 52%/cover no-repeat;will-change:transform}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(12,21,41,.9) 0%,rgba(16,26,47,.72) 34%,rgba(17,27,50,.22) 68%,rgba(17,27,50,.12)),linear-gradient(180deg,rgba(9,17,35,.28),transparent 32%,rgba(9,17,35,.5))}
.hero-content{position:relative;z-index:1;width:min(720px,58vw)}
.hero-overline{font-size:10px;font-weight:600;letter-spacing:.29em;text-transform:uppercase;color:#e8d6bc;margin-bottom:44px}
.hero-blessing{font:400 15px/1.4 'Noto Sans Devanagari',sans-serif;color:#d9c08c;margin:0 0 18px}
.hero h1{font:400 clamp(6rem,10.5vw,11rem)/.73 'Cormorant Garamond',serif;letter-spacing:-.075em;margin:0}
.hero h1 span,.hero h1 em{display:block}
.hero h1 em{font:italic 400 clamp(31px,3.8vw,48px)/1.2 'Rosarivo',serif;color:#e6cfa6;letter-spacing:0;margin:16px 0 20px 4px}
.hero-rule{display:flex;align-items:center;gap:14px;width:185px;margin:33px 0 23px;color:#dbbf8f}
.hero-rule span{height:1px;flex:1;background:currentColor;opacity:.7}.hero-rule i{font-style:normal;font-size:16px}
.hero-date{font:500 clamp(18px,2vw,23px)/1.4 'Cormorant Garamond',serif;letter-spacing:.03em;margin-bottom:6px}
.hero-place{font-size:11px;letter-spacing:.11em;color:#eee1c9;margin-bottom:31px}
.hero-place span{padding:0 6px;color:#d8b985}
.hero-cta,.submit-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:57px;padding:0 25px;text-decoration:none;border:1px solid #dfc59b;background:#ead9b9;color:#243450;text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.18em;cursor:pointer;transition:background .3s,transform .3s,box-shadow .3s}
.hero-cta:hover,.hero-cta:focus-visible,.submit-button:hover,.submit-button:focus-visible{background:#fff2d8;transform:translateY(-3px);box-shadow:0 14px 30px #0c173460}
.hero-cta svg,.submit-button svg,.text-link svg{width:20px;height:20px;flex:none}
.hero-side-note{position:absolute;right:clamp(25px,5vw,65px);bottom:56px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:#f1e6d4}
.hero-scroll{position:absolute;left:clamp(27px,10vw,160px);bottom:33px;display:grid;place-items:center;width:52px;height:52px;border:1px solid #e4ceaa99;border-radius:50%;transition:transform .3s,background .3s}
.hero-scroll:hover,.hero-scroll:focus-visible{transform:translateY(4px);background:#fff5dd29}
.hero-scroll svg{width:19px;height:19px}
.story{background:var(--paper)}
.story-intro{max-width:800px;margin:0 auto 88px;text-align:center}
.story-intro h2{margin-bottom:31px}
.story-lede{font:400 clamp(20px,2.2vw,27px)/1.5 'Cormorant Garamond',serif;color:#586276}
.story-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(50px,8vw,130px);align-items:center;max-width:1250px;margin:auto}
.story-visual{position:relative;min-height:650px;box-shadow:0 25px 50px #263b6017}
.story-visual img{display:block;width:100%;height:650px;object-fit:cover}
.story-visual:after{content:'';position:absolute;inset:16px;border:1px solid #fff9edaf;pointer-events:none}
.story-visual-caption{position:absolute;left:0;bottom:0;padding:22px 28px;background:#fffdf1ed;color:#6a7180;font:italic 400 15px 'Rosarivo',serif}
.story-timeline{position:relative;padding:13px 0}
.timeline-line{position:absolute;left:27px;top:40px;bottom:42px;width:1px;background:#d8d6ca}
.timeline-progress{display:block;width:1px;height:100%;background:#a98257;transform:scaleY(0);transform-origin:top}
.story-step{display:grid;grid-template-columns:55px 1fr;gap:24px;position:relative;padding:38px 0}
.story-step+.story-step{border-top:1px solid #e5e4d9}
.step-number{z-index:1;display:grid;place-items:center;width:54px;height:54px;border:1px solid #b49b70;border-radius:50%;background:var(--paper);font:500 12px 'Jost',sans-serif;letter-spacing:.08em;color:#8a704d}
.step-kicker{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#a17f58;margin:0 0 9px}
.story-step h3{font:400 clamp(2.2rem,3vw,3.4rem)/1 'Cormorant Garamond',serif;margin-bottom:10px}
.story-step p:last-child{font-size:15px;line-height:1.7;color:#697284;margin-bottom:0;max-width:420px}
.moments{background:#efeae5;overflow:hidden}
.moments-heading{max-width:1180px;margin:0 auto 54px}
.moments-heading h2{max-width:700px;margin-bottom:0}
.moments-gallery{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:start;gap:clamp(20px,3.8vw,58px);max-width:1180px;margin:0 auto}
.moment-photo{min-width:0;margin:0}
.moment-photo--garden{margin-top:85px}
.moment-photo img{display:block;width:100%;height:auto;object-fit:cover;background:#ded9d3}
.moment-photo--portrait img{aspect-ratio:4/5;object-position:center 42%}
.moment-photo--garden img{aspect-ratio:1/1;object-position:center 50%}
.moment-photo figcaption{display:flex;gap:12px;align-items:center;padding:19px 0 0;border-top:1px solid #c9beb0;margin-top:18px;color:#6e6870;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.moment-photo figcaption span{color:#aa8b5d}
.celebrations{background:var(--forest);color:#f9f5e9;position:relative;overflow:hidden}
.celebrations:before{content:'';position:absolute;width:700px;height:700px;right:-350px;top:-350px;border:1px solid #c6ac7b33;border-radius:50%;box-shadow:0 0 0 85px #c6ac7b08,0 0 0 170px #c6ac7b06;pointer-events:none}
.section-heading{max-width:760px;margin:0 auto 63px;text-align:center}
.section-heading h2{margin-bottom:19px}
.section-heading>p:last-child{font:400 21px/1.55 'Cormorant Garamond',serif;color:#d9dce4}
.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:940px;margin:auto}
.event-card{display:flex;flex-direction:column;min-height:460px;padding:30px clamp(24px,3vw,42px) 37px;background:#f9f6ee;color:var(--forest);border:1px solid #e5dccb;transition:transform .4s cubic-bezier(.2,.75,.2,1),box-shadow .4s}
.event-card:hover,.event-card:focus-within{transform:translateY(-9px);box-shadow:0 28px 40px #0c17346b}
.event-top{display:flex;justify-content:space-between;color:#7b8190;font-size:10px;letter-spacing:.19em;text-transform:uppercase}
.event-day{font:400 clamp(5rem,7vw,7rem)/.9 'Cormorant Garamond',serif;letter-spacing:-.06em;margin:50px 0 24px}
.event-day small{font:italic 400 .28em 'Rosarivo',serif;letter-spacing:0;color:#a78358;margin-left:4px}
.event-rule{height:1px;width:100%;background:#c2b99e;margin-bottom:25px}
.event-card h3{font:400 clamp(2rem,2.8vw,3rem)/1 'Cormorant Garamond',serif;margin-bottom:17px;min-height:55px}
.event-card>p:last-child{margin-bottom:0;color:#687184;font-size:14px}
.event-card ul{list-style:none;padding:0;margin:auto 0 0}
.event-card li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #dedccf;font-size:12px;color:#687184}
.event-card li span:first-child{font-weight:600;color:#293b58}.event-card li span:last-child{text-align:right}
.event-year{text-align:center;margin:42px 0 0;color:#d2bb94;font:400 19px 'Cormorant Garamond',serif;letter-spacing:.07em}
.event-year span{padding:0 12px}
.venue{display:grid;grid-template-columns:1.1fr .9fr;min-height:660px;background:#ece8e7;padding-top:0;padding-bottom:0;align-items:center}
.venue-copy{max-width:620px;padding:90px 6vw 90px 0}
.venue h2{margin-bottom:48px}.venue h2 em{display:block;margin-top:12px}
.venue-name{font:500 28px/1.2 'Cormorant Garamond',serif;margin-bottom:4px}
.venue-location{color:#7b8190;font-size:13px;letter-spacing:.07em;margin-bottom:31px}
.text-link{display:inline-flex;align-items:center;gap:20px;padding-bottom:8px;text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:600;letter-spacing:.16em;border-bottom:1px solid #a58457;transition:gap .3s,color .3s}
.text-link:hover,.text-link:focus-visible{gap:28px;color:#a17b4d}
.venue-art{align-self:stretch;display:grid;place-items:center;background:radial-gradient(circle at 50% 43%,#354a70,#1c2d4e 72%);padding:35px;overflow:hidden}
.venue-arch{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(100%,430px);height:min(82%,520px);border:1px solid #d7c69f8f;border-radius:50% 50% 0 0;color:#e4d2a8}
.venue-arch:before{content:'';position:absolute;inset:16px;border:1px solid #d7c69f65;border-radius:50% 50% 0 0}
.venue-star{font-size:45px;line-height:1}.venue-big-letter{font:400 clamp(10rem,17vw,18rem)/.8 'Cormorant Garamond',serif}.venue-art-date{margin-top:18px;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.rsvp{position:relative;background:#faf7f0;text-align:center}
.rsvp-intro{max-width:740px;margin:0 auto 48px}
.rsvp-intro h2{margin-bottom:24px}.rsvp-intro>p:last-child{font:400 22px/1.45 'Cormorant Garamond',serif;color:#697284}
.rsvp-invite{max-width:620px;margin:auto;padding:42px clamp(24px,5vw,60px);background:#fffefa;border:1px solid #ded7c8;box-shadow:0 25px 65px #25355510}
.rsvp-flourish{display:block;margin-bottom:10px;color:#aa8b5d;font-size:28px}
.rsvp-invite p{font:italic 400 21px/1.45 'Rosarivo',serif;color:#5f687b;margin-bottom:28px}
.rsvp-direct{display:flex;align-items:center;justify-content:center;gap:22px;width:min(100%,260px);min-height:58px;margin:auto;background:var(--forest);border:1px solid var(--forest);color:#fffaf0;text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.2em;transition:transform .3s,background .3s,box-shadow .3s}
.rsvp-direct svg{width:21px;height:21px;flex:none}
.rsvp-direct:hover,.rsvp-direct:focus-visible{transform:translateY(-3px);background:#2d4264;box-shadow:0 15px 28px #25395b30}
.rsvp-invite small{display:block;margin-top:16px;color:#7b8190;font-size:11px;line-height:1.5}
.closing{background:#e9dce0;text-align:center;padding-top:100px;padding-bottom:100px}
.closing h2{max-width:860px;margin:0 auto 24px}
.closing p:not(.eyebrow){font:400 22px/1.5 'Cormorant Garamond',serif;color:#5c6576}
.closing span{display:block;margin-top:28px;font:italic 400 22px 'Rosarivo',serif;color:#8c7360}
.closing strong{display:block;margin-top:8px;font:400 clamp(3rem,5vw,4.7rem)/1.15 'La Belle Aurore',cursive}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px clamp(24px,7vw,112px);background:#121d33;color:#e6dcc8;font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.site-footer a{text-decoration:none}.site-footer a:hover{text-decoration:underline}
.music-toggle{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:11px;min-height:50px;padding:5px 18px 5px 6px;border:1px solid #d8c39f;border-radius:50px;background:#fffaf0ed;backdrop-filter:blur(12px);color:#233452;font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 25px #101a3345;transition:transform .25s,box-shadow .25s}
.music-toggle:hover{transform:translateY(-3px);box-shadow:0 13px 28px #101a3350}.music-toggle__icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:#25395b;color:#fffaf0}.music-toggle__icon svg{width:18px;height:18px}.music-pause{display:none}.music-toggle.playing .music-play{display:none}.music-toggle.playing .music-pause{display:block}
.music-toggle:focus-visible,.hero-cta:focus-visible,.hero-scroll:focus-visible,.text-link:focus-visible,.site-nav a:focus-visible{outline:2px solid #edcf99;outline-offset:4px}
@media(max-width:900px){
 .story-layout{gap:45px}.story-visual,.story-visual img{min-height:550px;height:550px}.event-card{padding:27px 24px}.event-card h3{font-size:2.4rem}
}
@media(max-width:700px){
 .section{padding:75px 24px}.site-header{padding:20px 23px}.wordmark{font-size:26px}
 .menu-button{display:flex;flex-direction:column;justify-content:center;gap:6px;width:43px;height:43px;border:1px solid #fff8e78c;background:#17243e66;color:#fff;cursor:pointer;padding:0 11px}
 .menu-button span{height:1px;width:100%;background:currentColor;transition:transform .25s}
 .menu-button[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .site-nav{display:none;position:absolute;top:74px;left:19px;right:19px;flex-direction:column;align-items:stretch;gap:0;padding:10px 24px;background:#f9f6ee;color:var(--forest);box-shadow:0 17px 30px #0d183499}
 .site-nav.open{display:flex}.site-nav a{padding:14px 0;border-bottom:1px solid #dfdfd2;font-size:11px}.site-nav a:last-child{border:0}
 .hero{min-height:100svh;padding:111px 27px 90px;align-items:center}.hero-photo{inset:-6% 0;background-position:62% center}
 .hero-shade{background:linear-gradient(90deg,#0d1937e8 0%,#111e3bc8 62%,#111e3b9a),linear-gradient(180deg,#09142da8,transparent 38%,#09142dc4)}
 .hero-content{width:100%;max-width:520px}.hero-overline{font-size:9px;letter-spacing:.19em;margin-bottom:35px}
 .hero h1{font-size:clamp(5.4rem,20vw,8.4rem)}.hero h1 em{font-size:clamp(27px,7vw,38px);margin:12px 0 15px}
 .hero-rule{margin:25px 0 18px}.hero-date{font-size:21px}.hero-place{font-size:10px;line-height:1.6}.hero-cta{min-height:53px}
 .hero-side-note{display:none}.hero-scroll{left:27px;right:auto;bottom:27px;width:45px;height:45px}
 .story-intro{text-align:left;margin-bottom:40px}.story-intro h2{font-size:clamp(3.6rem,13vw,5rem)}.story-lede{font-size:22px;line-height:1.45}
 .story-layout{grid-template-columns:1fr;gap:26px}.story-visual,.story-visual img{height:390px;min-height:390px}.story-visual img{object-position:center 58%}
 .story-step{padding:26px 0;gap:16px}.story-step h3{font-size:2.55rem}.timeline-line{left:26px}
 .moments-heading{margin-bottom:30px}.moments-heading h2{font-size:clamp(3.6rem,12vw,5rem)}.moments-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.moment-photo--garden{margin-top:0}.moment-photo--portrait img,.moment-photo--garden img{aspect-ratio:4/5;object-fit:cover}.moment-photo--portrait img{object-position:center 38%}.moment-photo--garden img{object-position:center 38%}.moment-photo figcaption{margin-top:10px;padding-top:10px;gap:5px;font-size:8px;line-height:1.4;letter-spacing:.09em}
 .section-heading{text-align:left;margin-bottom:36px}.section-heading h2{font-size:clamp(3.8rem,13vw,5rem)}.section-heading>p:last-child{font-size:20px}
 .event-grid{grid-template-columns:1fr;gap:14px}.event-card{min-height:0;padding:25px 28px 30px}.event-day{font-size:5.7rem;margin:25px 0 15px}.event-card h3{font-size:2.6rem;min-height:0}.event-year{font-size:16px;margin-top:32px}
 .venue{grid-template-columns:1fr;padding:0}.venue-copy{padding:75px 24px 70px}.venue h2{font-size:clamp(3.7rem,12vw,5rem);margin-bottom:35px}.venue-art{height:420px}.venue-arch{width:min(100%,350px);height:350px}.venue-big-letter{font-size:13rem}
 .rsvp-intro{text-align:left;margin-bottom:31px}.rsvp-intro h2{font-size:clamp(3.6rem,12vw,5rem)}.rsvp-intro>p:last-child{font-size:20px}
 .rsvp-invite{padding:32px 23px}.rsvp-invite p{font-size:18px}
 .closing{text-align:center}.closing h2{font-size:clamp(3.7rem,12vw,5rem)}.closing strong{font-size:clamp(2.7rem,11vw,3.7rem)}
 .site-footer{flex-direction:column;text-align:center;padding:30px 24px 95px}.music-toggle{bottom:max(15px,env(safe-area-inset-bottom));right:15px}
}
@media(max-width:390px){.hero h1{font-size:19vw}.hero{padding-top:99px}.hero-overline{margin-bottom:23px}.hero-blessing{margin-bottom:11px}.hero-rule{margin:18px 0 13px}.hero-place{margin-bottom:22px}.hero-cta{padding:0 17px;font-size:9px}.story-visual,.story-visual img{height:340px;min-height:340px}}
@media(max-width:350px){.closing strong{font-size:2.3rem}.music-toggle{right:12px}.hero-scroll{left:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo{will-change:auto}.event-card,.hero-cta,.hero-scroll,.text-link,.rsvp-direct,.music-toggle{transition:none}}
