:root{--plum:#301d30;--wine:#49283f;--pink:#efc9d1;--paper:#f2e9e9;--mist:#dce8e8;--ink:#293c3c;--gold:#c1a37a;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--plum);color:var(--paper);font-family:var(--sans);font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:6px}img{width:100%;height:100%;object-fit:cover;display:block}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:.98}h2{font-size:clamp(44px,5.8vw,88px);letter-spacing:-.035em}h3{font-size:34px}p{line-height:1.8}button{background:none;border:none}section{position:relative}.chapter{display:block;font-size:12px;letter-spacing:.06em;margin-bottom:30px}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;z-index:30}.skip{position:fixed;top:-100px;background:white;color:black;z-index:99}.skip:focus{top:10px}header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:22px 5%}.monogram{font:italic 500 26px var(--serif);letter-spacing:-.01em;white-space:nowrap}nav{display:flex;gap:35px;font-size:12px}.nav-rsvp{font-size:12px;border-bottom:1px solid #ffffff60;padding:6px 0}.nav-rsvp span{margin-left:25px}.hero{height:max(810px,100svh);overflow:hidden;isolation:isolate}.hero-note,.hero-date{position:absolute;top:145px;font-size:12px;line-height:1.8}.hero-note{left:5%}.hero-date{right:5%;text-align:right}h1{position:absolute;top:24%;width:100%;display:flex;justify-content:center;align-items:center;gap:4%;font-size:clamp(90px,13.4vw,210px);letter-spacing:-.05em;z-index:5;pointer-events:none}h1 i{font-weight:400;font-size:.54em;color:var(--pink)}.hero-arch{position:absolute;left:29%;width:42%;top:29%;height:65%;border-radius:48% 48% 2px 2px;overflow:hidden;z-index:2}.hero-arch img{object-position:50% 28%;transform:scale(1.08)}.floating{position:absolute;width:16%;z-index:6;padding:9px 9px 14px;background:var(--paper);color:var(--plum);box-shadow:0 20px 60px #120b1a50}.floating img{aspect-ratio:4/5;height:auto}.floating figcaption{font:italic clamp(15px,1.5vw,22px) var(--serif);text-align:center;margin-top:9px}.floating-left{left:9%;top:51%;transform:rotate(-10deg)}.floating-right{right:9%;top:55%;transform:rotate(9deg)}.hero-bottom{position:absolute;bottom:24px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;z-index:7}.hero-bottom a{background:var(--plum);padding:9px 20px;border-radius:30px}.down{margin-left:15px}.hero-orbit{position:absolute;width:100%;height:100%;inset:0;fill:none;stroke:var(--gold);stroke-width:.4;opacity:.45;z-index:1}.prologue{padding:130px 12%;background:var(--paper);color:var(--plum)}.prologue h2{font-size:clamp(48px,6.8vw,104px)}.prologue-bottom{display:flex;align-items:center;gap:70px;margin-top:55px}.small-star{font-size:65px;color:var(--wine)}.handwritten{font:italic 42px var(--serif);margin-left:auto;transform:rotate(-9deg)}.film-section{height:230svh;background:#231922}.film-stage{position:sticky;top:0;height:100svh;overflow:hidden}.scene{position:absolute;inset:0;display:block;transform:scale(1.08);will-change:transform,opacity}.scene~.scene{opacity:0}.film-meet .scene:first-child img{object-position:50% 22%}.film-meet{height:300svh}.film-sangeet{height:170svh}.film-shade{position:absolute;inset:0;background:linear-gradient(90deg,#211621d8,#21162160 45%,transparent 80%),linear-gradient(0deg,#211621a0,transparent 60%)}.film-caption{position:absolute;bottom:16%;left:8%;max-width:600px}.film-caption h2{font-size:clamp(56px,7.4vw,110px)}.film-caption p{margin-top:25px}.film-caption~.film-caption{opacity:0}.film-edge{position:absolute;right:5%;bottom:5%;font-size:11px}.distance{padding:110px 8%;background:var(--mist);color:var(--ink);overflow:hidden}.distance-heading{text-align:center}.distance-heading p{margin-top:25px}.distance-pictures{max-width:1100px;margin:65px auto 0;display:flex;align-items:center;justify-content:space-between}.city{width:32%;will-change:transform}.city-image{height:360px;border-radius:160px 160px 3px 3px;overflow:hidden;position:relative}.city-left img{object-position:62% center}.city-right img{object-position:56% center}.city figcaption{display:flex;justify-content:space-between;margin-top:14px}.city figcaption span:first-child{font:italic 28px var(--serif)}.connection{width:32%;text-align:center}.connection svg{width:100%;fill:none;stroke:#6c8683;stroke-width:1;stroke-dasharray:5 8}.connection span{font:40px var(--serif)}.connection i{display:block;font:italic 23px var(--serif);margin-top:8px}.messages{max-width:560px;margin:65px auto 0;display:flex;flex-direction:column;gap:15px}.messages p{padding:15px 24px;background:#f8fcfa;border-radius:18px 18px 18px 0;max-width:85%;align-self:flex-start;box-shadow:0 8px 25px #293c3c05;transition:opacity .6s,transform .6s}.messages p:nth-child(even){background:var(--ink);color:var(--mist);align-self:flex-end;border-radius:18px 18px 0 18px}.messages small{display:block;font-size:9px;opacity:.65;margin-bottom:4px}.journey{padding:120px 8%;background:#bdcdcd;color:var(--ink);overflow:hidden}.journey-title{max-width:550px}.journey-title p{max-width:360px;margin-top:28px}.route{position:absolute;right:7%;top:170px;width:42%;display:flex;align-items:flex-end}.route svg{width:100%;overflow:visible;fill:none;stroke:#607b79;stroke-width:1.4}.route svg text{fill:var(--ink);stroke:none;font:13px var(--sans)}.route>span{font:italic 20px var(--serif)}.route .flight{stroke-dasharray:4 7}.route .origin{fill:#607b79;stroke:none}.route .peaks path{fill:#eef3f2;stroke:#607b79;stroke-width:1.2;stroke-linejoin:round}.route .peaks .snow{fill:#fff;stroke:none}.route .sun{fill:#e9c9a0;stroke:none}.route .plane{fill:var(--ink);stroke:none}.route>span:first-child{margin-right:-60px}.route>span:last-child{margin-left:-40px}.moments{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5%;margin-top:100px;align-items:start}.moments figure{padding:10px 10px 20px;background:#f3eeee;box-shadow:0 15px 30px #293c3c15;transform:rotate(-5deg)}.moments figure:nth-child(2){transform:translateY(45px) rotate(4deg)}.moments figure:nth-child(3){transform:rotate(-3deg)}.moments img{aspect-ratio:1;height:auto}.moments figcaption{font:italic 24px var(--serif);text-align:center;margin-top:15px}.proposal{height:190svh;background:var(--ink)}.proposal-stage{height:100svh;position:sticky;top:0;overflow:hidden}.proposal-stage picture{position:absolute;inset:0;transform:scale(1.2);will-change:transform}.proposal-stage img{object-position:50% 55%}.proposal-vignette{position:absolute;inset:0;background:linear-gradient(180deg,#192e3cb8,#192e3c30 45%,#142b2fb0)}.proposal-title{position:absolute;top:12%;left:8%}.proposal-title p{margin-top:20px}.proposal-yes{position:absolute;top:9%;left:8%;right:8%;text-align:center;opacity:0}.proposal-yes h2{font-style:italic;font-size:clamp(65px,10vw,150px);margin-top:10px}.proposal-yes svg{width:65%;fill:none;stroke:var(--paper);stroke-width:1;stroke-dasharray:260;stroke-dashoffset:260}.blessing{padding:140px 14%;display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center;color:var(--paper);background:linear-gradient(90deg,#1e1420e6 0%,#1e1420a0 30%,#1e142010 48%,#1e142010 60%,#1e142050 100%),url(img/badrinath.webp) 64% 18%/cover no-repeat;background-color:var(--plum)}.blessing h2,.blessing p{text-shadow:0 2px 18px #00000070}.blessing p{margin-top:25px}.blessing figure{transform:rotate(4deg);background:white;padding:12px 12px 24px}.blessing img{height:auto;aspect-ratio:4/5}.blessing figcaption{font:italic 21px var(--serif);text-align:center;margin-top:15px;color:var(--plum)}.blessing figure{max-width:360px;justify-self:end}.diary{padding:110px 0 80px;background:var(--plum);overflow:hidden}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end}.diary .section-heading{padding:0 8%}.section-heading>p{font-size:13px;padding-bottom:8px}.diary-rail{display:flex;gap:40px;overflow-x:auto;scroll-snap-type:x mandatory;padding:70px 8% 45px;scrollbar-width:thin;scrollbar-color:#b593a5 transparent}.diary-rail figure{flex:0 0 300px;scroll-snap-align:center;transform:rotate(-3deg)}.diary-rail figure:nth-child(even){transform:rotate(3deg);margin-top:40px}.diary-rail img{height:365px;border:8px solid var(--paper)}.diary-rail figcaption{font:italic 22px var(--serif);margin-top:17px}.diary-controls{display:flex;justify-content:space-between;margin:25px 8% 0;font-size:12px}.diary-controls button{border:1px solid #d5b9c65c;border-radius:50%;width:48px;height:48px;margin-left:8px}.together{display:grid;grid-template-columns:1fr 1fr;background:var(--wine);min-height:700px;align-items:center}.together-photo{height:100%;min-height:700px}.together-photo img{object-position:center 35%}.together-copy{padding:65px 15%}.together-copy p{margin:35px 0}.text-link{display:inline-block;border-bottom:1px solid;padding-bottom:8px;font-size:12px}.text-link span{margin-left:30px}.celebrate{padding:120px 8%;background:var(--paper);color:var(--plum)}.schedule-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:8%;margin-top:70px;align-items:center}.schedule-photo{height:510px;border-radius:220px 220px 0 0;overflow:hidden;position:relative}.schedule-photo img{object-position:55%}.schedule-photo>span{position:absolute;bottom:25px;left:0;width:100%;text-align:center;color:white;font:italic 40px var(--serif);text-shadow:0 2px 10px #000}.day-tabs{display:flex;gap:10px;border-bottom:1px solid #49283f30}.day-tabs button{padding:18px 12px;font-size:13px;flex:1;opacity:.6}.day-tabs button[aria-selected=true]{border-bottom:2px solid var(--wine);opacity:1}.schedule article{display:flex;align-items:center;gap:22px;padding:30px 0;border-bottom:1px solid #49283f25}.schedule time{font-size:11px;width:85px;flex-shrink:0}.schedule h3{font-size:36px}.schedule article p{font-size:12px;margin-top:8px}.schedule article>span{margin-left:auto;font:italic 24px var(--serif);opacity:.45}.schedule .text-link{margin-top:30px}.families{padding:110px 12%;background:#e6d4df;color:var(--plum);text-align:center}.family-grid{display:grid;grid-template-columns:1fr 90px 1fr;gap:40px;margin-top:70px}.family-grid h3{font-size:32px;margin-bottom:25px}.family-grid p{font-size:14px;margin-top:16px}.family-grid small{display:block;opacity:.65;font-size:11px}.family-amp{font:italic 100px var(--serif);color:#9d788c}.family-note{font:italic 25px var(--serif)!important;padding-top:25px}.travel{padding:110px 8%;background:var(--mist);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.travel p{margin-top:25px}.venues>a{display:flex;align-items:center;justify-content:space-between;padding:30px 0;border-bottom:1px solid #293c3c40}.venues p{margin-top:12px;font-size:12px}.venues>a>span:last-child{font-size:30px}.rsvp{padding:120px 8%;text-align:center;background:var(--plum)}.rsvp>p{margin-top:30px}.rsvp-button{display:inline-flex;align-items:center;gap:40px;margin-top:35px;padding:20px 30px;border:1px solid var(--pink);border-radius:50px;background:var(--pink);color:var(--plum);transition:background .2s,color .2s}.rsvp-button:hover{background:transparent;color:var(--pink)}.rsvp>small{display:block;margin-top:16px;font-size:10px;opacity:.65}.countdown{margin:80px auto 0;display:flex;flex-direction:column;gap:10px}.countdown span:first-child{font:44px var(--serif)}.countdown span:last-child{font-size:11px;opacity:.65}footer{padding:30px 5%;background:var(--plum);border-top:1px solid #ffffff25}.footer-names{display:block;font:clamp(60px,13vw,200px) var(--serif);text-align:center;letter-spacing:-.04em;color:var(--pink)}.footer-names i{font-size:.7em}footer>div{display:flex;justify-content:space-between;padding:30px 0;font-size:10px}.motion-control{position:fixed;bottom:16px;left:18px;background:#301d30de;color:var(--paper);border:1px solid #ffffff40;font-size:10px;padding:8px 13px;border-radius:20px;z-index:25;backdrop-filter:blur(10px)}[hidden]{display:none!important}.motion-paused *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
@media(max-width:760px){header{padding:15px 6%}.monogram{font-size:19px}header nav{display:none}nav{gap:18px;font-size:10px}nav a:nth-child(2){display:none}.hero{height:850px;max-height:1100px}.hero-note,.hero-date{top:105px;font-size:10px}.hero-note{left:6%}.hero-date{right:6%}h1{top:24%;font-size:17vw;gap:3%}.hero-arch{left:15%;width:70%;height:55%;top:31%}.floating{width:26%;padding:5px 5px 10px}.floating-left{left:3%;top:58%}.floating-right{right:3%;top:64%}.floating figcaption{font-size:14px}.hero-bottom{bottom:40px;justify-content:center}.hero-bottom>span{display:none}.prologue{padding:85px 8%}.prologue-bottom{gap:25px;align-items:flex-start;flex-wrap:wrap;margin-top:35px}.small-star{font-size:40px}.prologue-bottom p{font-size:12px}.handwritten{font-size:32px}.film-section{height:190svh}.film-caption{left:7%;bottom:12%;right:7%}.film-caption h2{font-size:58px}.film-caption p{font-size:12px}.scene{object-position:48%}.distance{padding:85px 6%}.distance-pictures{margin-top:40px;gap:15px;position:relative;padding-bottom:90px}.city{width:48%}.city-image{height:240px}.city figcaption{flex-direction:column;gap:0;font-size:11px}.connection{position:absolute;bottom:0;left:20%;width:60%}.connection svg{display:none}.connection span{font-size:30px}.connection i{font-size:20px}.messages{margin-top:35px;font-size:12px}.journey{padding:80px 8%}.journey-title{max-width:100%}.journey-title p{font-size:13px}.route{position:relative;inset:auto;width:100%;margin-top:35px}.route>span{font-size:16px}.moments{gap:20px;margin-top:40px;grid-template-columns:1fr 1fr}.moments figure{padding:6px 6px 12px}.moments figure:nth-child(3){grid-column:1 / 3;width:60%;justify-self:center;margin-top:20px}.moments figcaption{font-size:17px}.proposal{height:170svh}.proposal-stage img{object-position:50% 30%}.proposal-title{top:10%;left:7%}.proposal-title h2{font-size:50px}.proposal-title p{font-size:12px}.proposal-yes{right:5%;left:5%;top:9%}.proposal-yes h2{font-size:75px}.proposal-yes>span{font-size:12px}.blessing{padding:80px 8%;grid-template-columns:1fr;gap:50px;background:linear-gradient(180deg,#1e1420d0 0%,#1e142070 45%,#1e142040 100%),url(img/badrinath.webp) 50% 10%/cover no-repeat}.blessing figure{width:78%;justify-self:center}.diary{padding:80px 0 45px}.section-heading{align-items:flex-start;flex-direction:column;gap:25px}.diary-rail{gap:25px;padding-top:40px}.diary-rail figure{flex-basis:240px}.diary-rail img{height:295px}.diary-controls>span{max-width:160px}.together{grid-template-columns:1fr;min-height:0}.together-photo{height:520px;min-height:0}.together-copy{padding:70px 8%}.celebrate{padding:80px 8%}.schedule-layout{grid-template-columns:1fr;gap:30px;margin-top:40px}.schedule-photo{height:360px;width:85%;margin:auto}.schedule article{gap:15px}.schedule h3{font-size:30px}.schedule time{width:70px}.families{padding:80px 8%}.family-grid{grid-template-columns:1fr;gap:30px;margin-top:45px}.family-amp{font-size:65px;line-height:1}.travel{grid-template-columns:1fr;padding:80px 8%;gap:35px}.rsvp{padding:85px 7%}.rsvp h2{font-size:48px}.rsvp-button{font-size:12px;padding:18px 24px}.countdown span:first-child{font-size:34px}footer>div{gap:20px;flex-wrap:wrap}footer>div>span:nth-child(2){display:none}.motion-control{bottom:10px;left:10px;font-size:9px}}
.cousins{padding:120px 8%;background:var(--paper);color:var(--plum);display:grid;grid-template-columns:.7fr 1.9fr;gap:7%;align-items:center;overflow:hidden}.cousins-copy p{margin-top:25px}.cousins-photos{display:grid;grid-template-columns:1fr 1fr;gap:6%}.cousins-photos figure{background:#fff;padding:10px 10px 20px;box-shadow:0 18px 40px #301d3020;transform:rotate(-3deg)}.cousins-photos figure:nth-child(2){transform:translateY(60px) rotate(3deg)}.cousins-photos img{aspect-ratio:1586/992;height:auto}.cousins-photos figcaption{font:italic 22px var(--serif);text-align:center;margin-top:14px}
.call-frame{max-width:900px;margin:70px auto 0}.call-frame img{height:auto;aspect-ratio:16/9;border-radius:24px;box-shadow:0 25px 60px #293c3c30}.call-frame figcaption{font:italic 24px var(--serif);text-align:center;margin-top:20px}
.diary-rail figure.wide{flex-basis:480px}.engagement{background:var(--plum);border-top:1px solid #ffffff14}.engagement .diary-controls>span{font:italic 20px var(--serif)}
@media(max-width:760px){.film-meet{height:260svh}.film-sangeet{height:150svh}.film-meet .scene:first-child img{object-position:50% 20%}.cousins{grid-template-columns:1fr;padding:80px 8% 120px;gap:40px}.cousins-photos{gap:28px;grid-template-columns:1fr}.cousins-photos figure{padding:6px 6px 12px}.cousins-photos figcaption{font-size:15px}.cousins-photos figure:nth-child(2){transform:rotate(2deg)}.call-frame{margin-top:45px}.call-frame img{border-radius:16px}.call-frame figcaption{font-size:19px}.diary-rail figure.wide{flex-basis:300px}}
.invite{position:fixed;inset:0;z-index:100;display:grid;place-items:center;align-content:center;gap:34px;background:radial-gradient(circle at 50% 42%,#4b2c45 0%,#2a1a29 55%,#1b1119 100%);cursor:pointer;animation:inviteOut .7s ease 3s forwards}
.envelope{position:relative;width:min(80vw,440px);aspect-ratio:3/2;perspective:1400px;animation:envIn .7s ease both,envAway .6s ease 2.45s forwards}
.env-back{position:absolute;inset:0;background:#d9c2b6;border-radius:6px}
.env-card{position:absolute;left:6%;right:6%;top:7%;bottom:7%;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;background:var(--paper);color:var(--plum);border-radius:4px;box-shadow:0 10px 30px #0000002e;animation:cardUp 1s cubic-bezier(.2,.8,.2,1) 1.35s forwards}
.env-card span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;opacity:.7}
.env-card strong{font:400 clamp(28px,7vw,40px)/1 var(--serif);letter-spacing:-.02em}
.env-card strong i{color:#a86c7d}
.env-card small{font-size:10px;letter-spacing:.06em;opacity:.75}
.env-front{position:absolute;inset:0;z-index:2;background:linear-gradient(160deg,#f3e6dc,#e6d3c7);clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);border-radius:6px;box-shadow:0 30px 60px #0000004d}
.env-flap{position:absolute;left:0;right:0;top:0;height:60%;z-index:3;background:linear-gradient(180deg,#ead9ce,#dcc5b8);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;animation:flapOpen .75s ease-in-out .8s forwards}
.env-seal{position:absolute;left:50%;top:60%;z-index:4;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;display:flex;align-items:center;justify-content:center;white-space:nowrap;font:italic 21px var(--serif);color:#f6dfc4;background:radial-gradient(circle at 35% 30%,#c14a5d,#7f1a2e);box-shadow:0 4px 10px #00000059,inset 0 0 0 3px #ffffff1f;animation:sealOff .45s ease .5s forwards}
.env-seal i{font-size:.7em;margin:0 1px}
.invite-hint{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);opacity:.55;animation:envAway .4s ease .6s forwards}
.invite.skip{animation:inviteOut .35s ease forwards}
@keyframes envIn{from{opacity:0;transform:translateY(24px) scale(.95)}}
@keyframes sealOff{to{opacity:0;transform:scale(.5)}}
@keyframes flapOpen{0%{transform:rotateX(0)}60%{z-index:3}100%{transform:rotateX(180deg);z-index:0}}
@keyframes cardUp{to{transform:translateY(-55%)}}
@keyframes envAway{to{opacity:0;transform:translateY(-14px) scale(1.04)}}
@keyframes inviteOut{to{opacity:0;visibility:hidden}}
html.inviting{overflow:hidden}
.motion-paused .invite{display:none}
@media(prefers-reduced-motion:reduce){.invite{display:none}html.inviting{overflow:auto}}
.made-by{display:block;text-align:center;font-size:10px;letter-spacing:.08em;opacity:.5;padding:4px 0 10px}.made-by b{font-weight:600}.made-by:hover{opacity:.85}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.music-toggle{position:fixed;bottom:16px;right:18px;z-index:25;display:flex;align-items:center;gap:8px;background:#301d30de;color:var(--paper);border:1px solid #ffffff40;font-size:10px;padding:8px 14px;border-radius:20px;backdrop-filter:blur(10px)}.music-icon{display:inline-block;font-size:13px;line-height:1}.music-toggle.playing .music-icon{animation:beat 1.2s ease-in-out infinite}@keyframes beat{50%{transform:scale(1.3)}}@media(max-width:760px){.music-toggle{bottom:10px;right:10px;font-size:9px}}
