@font-face{font-family:CelebrationScript;src:url("assets/wedding-calligraphy.woff") format("woff");font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:WeddingHand;src:url('assets/romantic-wedding.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Haveli;src:url('assets/serif.woff') format('woff');font-display:swap}@font-face{font-family:Signature;src:url('assets/script.woff') format('woff');font-display:swap}
:root{--paper:#faf5e9;--ink:#482c21;--muted:#796650;--gold:#b18a42;--burgundy:#542c34;--serif:Haveli,Palatino,'Palatino Linotype',Georgia,serif;--sans:Arial,Helvetica,sans-serif;--shell:600px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:#251b14;color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #d9952b;outline-offset:5px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}h2{font-size:clamp(2.1rem,7.7vw,2.8rem);line-height:1.22;font-weight:400;letter-spacing:-.035em}h2 em{font-weight:400}h3{font-weight:400}img{max-width:100%;display:block}button{border:0} [hidden]{display:none!important}.invitation-shell{position:relative;max-width:var(--shell);margin:0 auto;background:var(--paper);overflow:clip;box-shadow:0 0 120px #0005}main{position:relative}.section{padding:78px 32px;text-align:center}.paper{background-color:var(--paper);background-image:radial-gradient(#8a6b4614 .65px,transparent .65px);background-size:5px 5px}.eyebrow{display:block;font-family:var(--sans);font-size:12px;line-height:1.8;letter-spacing:.17em;font-weight:500}.hindi{font-family:'Noto Serif Devanagari','Kohinoor Devanagari','Nirmala UI',serif}.body-copy{font-size:18px;line-height:1.85;max-width:410px;margin:24px auto 0}.section-caption{font-size:17px;color:var(--muted);margin-top:17px}.section h2{margin-top:16px}.tiny-note{font-family:var(--sans);font-size:13px;color:var(--muted);line-height:1.7}.text-button{background:transparent;padding:12px 4px;border-bottom:1px solid #b9925266;color:var(--ink);font-family:var(--sans);font-size:14px}.text-button span{margin-left:8px}.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .85s ease,transform .85s ease}.motion-ready .reveal.visible{opacity:1;transform:none}
/* User-supplied video entrance, keyed and composited before delivery. */
.gate{position:fixed;z-index:100;inset:0 auto 0 50%;width:min(100%,var(--shell));height:100svh;min-height:640px;transform:translateX(-50%);overflow:hidden;background:#28170d}
.entrance-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.gate.opening{z-index:2}
.gate-shade{position:absolute;inset:0;background:linear-gradient(#1d100b5c,transparent 30%,transparent 55%,#160905ac 100%);transition:opacity .5s}.gate-heading{position:absolute;inset:5.5% 15px auto;text-align:center;color:#fff0c8;text-shadow:0 2px 12px #241007;transition:opacity .4s}.gate-heading .eyebrow{font-size:12px}.gate-monogram{display:flex;align-items:center;justify-content:center;gap:9px;font-size:40px;line-height:1.3;margin-top:8px}.gate-monogram i{font:32px Signature,serif}.gate-action{position:absolute;bottom:13%;left:20px;right:20px;text-align:center;color:#fff4da;transition:opacity .4s,transform .6s}.gate-action>.hindi{font-size:clamp(1.04rem,4.3vw,1.35rem);text-shadow:0 1px 8px #32180d}.open-invitation{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:55px;margin-top:16px;padding:10px 26px;border:1px solid #e8c88e99;border-radius:40px;color:#fff5d8;background:#301b12c7;backdrop-filter:blur(5px);font-family:var(--sans);font-size:14px;letter-spacing:.07em;box-shadow:0 3px 22px #1b0d0640;animation:invitation-pulse 3s ease-in-out infinite}.knock-icon{font-size:24px;color:#f4d18c}.sound-note{font-family:var(--sans);font-size:12px;letter-spacing:.05em;margin-top:13px;color:#f2e2c4}.gate-preview{position:absolute;left:0;right:0;bottom:max(19px,env(safe-area-inset-bottom));font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-align:center;color:#eadac5;transition:opacity .4s}.gate.opening .gate-heading,.gate.opening .gate-action,.gate.opening .gate-preview,.gate.opening .gate-shade{opacity:0;pointer-events:none}.gate.opening .gate-action{transform:translateY(15px)}@keyframes invitation-pulse{50%{box-shadow:0 0 0 7px #e9ce9312,0 3px 25px #1b0d0660}}
/* Invitation cover. */
.hero{position:relative;min-height:760px;height:100svh;max-height:1150px;color:#fff1d1;display:flex;flex-direction:column;text-align:center;overflow:hidden;background:#46321e}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#2a201856 0%,#24160f6b 22%,#26140e99 42%,#24170f70 64%,#26180baa 100%)}.hero-top{position:relative;padding:34px 20px 0;font-family:var(--sans);font-size:12px;letter-spacing:.17em;display:flex;flex-direction:column;align-items:center;gap:14px}.small-monogram{font:26px var(--serif);border:1px solid #f2dcaa66;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:1px}.small-monogram span{font:18px Signature,serif}.hero-content{position:relative;margin:auto 0;padding:30px 26px 100px}.hero-content>.hindi{font-size:23px;margin-bottom:19px;color:#f6d88c}.hero-content .eyebrow{font-size:12px;letter-spacing:.19em}h1{font:clamp(4.25rem,18vw,6.1rem)/.98 var(--serif);font-weight:400;letter-spacing:-.055em;margin:28px 0 17px;text-shadow:0 3px 20px #29170866}h1 span{display:block}h1 em{display:block;font:italic 36px/1.1 Signature,var(--serif);color:#edcda0;margin:11px 0 7px}.fine-rule{display:flex;align-items:center;justify-content:center;gap:15px;margin:26px auto 21px;width:190px;color:#f4d391;font-size:13px}.fine-rule:before,.fine-rule:after{content:'';height:1px;width:70px;background:linear-gradient(90deg,transparent,#dcc590)}.fine-rule:after{transform:rotate(180deg)}.hero-date{font-size:22px;letter-spacing:.025em}.hero-location{font-family:var(--sans);font-size:12px;margin-top:7px;letter-spacing:.09em}.scroll-cue{position:absolute;bottom:24px;left:0;right:0;display:flex;flex-direction:column;align-items:center;font-family:var(--sans);font-size:12px;letter-spacing:.18em;gap:14px;padding:12px}.scroll-cue i{height:32px;width:1px;background:linear-gradient(#fce4b6,transparent);animation:scroll-line 2.8s ease-in-out infinite}@keyframes scroll-line{50%{transform:translateY(5px);opacity:.5}}.gold-dust{position:absolute;inset:0;pointer-events:none}.gold-dust i{position:absolute;top:-20px;width:3px;height:3px;background:#ffe4a2;border-radius:50%;box-shadow:0 0 5px #f7d58d99;animation:dust-fall 15s linear infinite}@keyframes dust-fall{0%{transform:translate(0,-10px);opacity:0}15%,80%{opacity:.65}100%{transform:translate(50px,1000px);opacity:0}}
.ornament{color:var(--gold);font-size:30px;line-height:1;margin:24px 0}.script-line{font:31px/1.35 Signature,var(--serif);margin-top:24px;color:#78522f}.date-section{padding-top:39px;border-top:1px solid #af915b26}.date-section h2{font-size:32px;letter-spacing:0;color:#795223}.date-card{position:relative;margin:32px auto 10px;max-width:380px;aspect-ratio:1.23;overflow:hidden;border:1px solid #bd9a5866;box-shadow:0 12px 28px #7352230c;background:#fffcf6}.date-content{height:100%;padding:26px 20px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #ac85414d;outline:1px solid #ac854129;outline-offset:6px;margin:10px;height:calc(100% - 20px)}.date-content>.eyebrow{color:#927140}.date-content>strong{font-size:clamp(1.7rem,7vw,2.5rem);line-height:1.25;font-weight:400;color:#66343a;margin:15px 0 8px}.date-content>span:not(.eyebrow):not(.date-initials){font-size:15px}.date-initials{font-size:28px;line-height:1;margin-top:23px;letter-spacing:.06em}.date-initials i{font-family:Signature;font-size:24px}.date-card canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;transition:opacity .7s ease;cursor:crosshair}.date-card.uncovered canvas{opacity:0;pointer-events:none}.date-section>.reveal>.tiny-note{margin-top:11px}.countdown{display:flex;align-items:flex-start;justify-content:space-between;max-width:365px;margin:44px auto 16px;gap:8px}.countdown div{flex:1;display:flex;flex-direction:column;align-items:center}.countdown strong{font:35px/1.3 var(--serif);font-variant-numeric:tabular-nums}.countdown span{font:12px/2 var(--sans);letter-spacing:.14em;color:var(--muted);margin-top:5px}.countdown i{font-style:normal;color:#bca47c;font-size:24px}.countdown-note{font-size:16px;font-style:italic;color:var(--muted)}
.families{background:#542c34;color:#f8ebd4;position:relative}.families:before,.families:after{content:'';position:absolute;pointer-events:none;inset:15px;border:1px solid #dbb57840}.families:after{inset:20px;border-color:#dbb57818}.families .eyebrow{color:#dec198}.families h2{font-size:35px}.family-grid{display:grid;grid-template-columns:1fr;gap:21px;margin:39px auto 27px}.family-label{font:12px/1.7 var(--sans);letter-spacing:.16em;color:#d7b888}.family-grid h3{font-size:35px;line-height:1.2;margin:6px 0 9px}.family-grid p{font-size:16px;max-width:240px;margin:auto;color:#ebd9cc}.family-amp{font:37px/1 Signature,var(--serif);color:#d6b482}.family-bottom{font-family:serif;font-size:17px;line-height:1.9;color:#e7d6be;max-width:380px;margin:auto}.celebrations{padding-top:80px}.event-list{display:flex;flex-direction:column;gap:25px;margin:37px auto 0;max-width:400px}.event-card{position:relative;min-height:370px;perspective:1000px;overflow:hidden;border:1px solid #98774975;background:#f3e6cb;box-shadow:0 8px 21px #3a210b0c;border-radius:170px 170px 2px 2px}.event-detail{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:370px;padding:56px 30px 28px;background:radial-gradient(at 50% 0,#fff7df,#f2e7d3)}.event-detail>.eyebrow{color:#8a683a;font-size:12px}.event-detail h3{font-size:35px;line-height:1.3;margin:10px 0 4px}.event-detail .event-note{font-size:16px;line-height:1.6;margin:13px 0;max-width:250px}.event-time{font:13px/1.6 var(--sans);color:#756046}.dress-code{font:12px/1.7 var(--sans);padding-top:14px;border-top:1px solid #ac854140;color:#665444}.dress-code span{display:block;letter-spacing:.12em;font-size:12px;color:#8b785c;margin-bottom:5px}.event-close{position:absolute;right:26px;bottom:15px;border-bottom:1px solid #917c5560;background:transparent;color:#705633;font:12px/1.6 var(--sans);padding:5px}.event-front{position:absolute;inset:0;width:100%;height:100%;background:transparent;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:0;color:#fff0c9;overflow:hidden}.event-half{position:absolute;inset:0 auto 0 0;width:50%;background-image:linear-gradient(#32170844,#2e18066b),url('assets/entrance.webp');background-size:200% 100%;background-position:0 center;transform-origin:left;transition:transform 1s cubic-bezier(.3,.05,.25,1),opacity 1s}.event-half.right{left:50%;background-position:100% center;transform-origin:right}.event-title{position:relative;font-size:34px;text-shadow:0 2px 9px #210a03;line-height:1.3;transition:opacity .3s}.event-number{position:relative;font:12px var(--sans);letter-spacing:.16em;color:#f3d9a5;margin-bottom:16px;transition:opacity .3s}.event-hindi{position:relative;font:20px/1.7 serif;transition:opacity .3s}.event-open-label{position:relative;font:12px var(--sans);letter-spacing:.15em;margin-top:34px;border-bottom:1px solid #e3c78b6b;padding-bottom:7px;transition:opacity .3s}.event-card.is-open .event-half{transform:perspective(700px) rotateY(-108deg);opacity:0}.event-card.is-open .event-half.right{transform:perspective(700px) rotateY(108deg)}.event-card.is-open .event-number,.event-card.is-open .event-title,.event-card.is-open .event-hindi,.event-card.is-open .event-open-label{opacity:0}.event-card.is-open .event-front{pointer-events:none}.event-card[data-tone="green"] .event-detail{background:radial-gradient(at 50% 0,#f9f9e8,#e5e6ce)}.event-card[data-tone="plum"] .event-detail{background:#552f41;color:#fff0d4}.event-card[data-tone="plum"] .event-detail .eyebrow,.event-card[data-tone="plum"] .event-time,.event-card[data-tone="plum"] .dress-code,.event-card[data-tone="plum"] .dress-code span,.event-card[data-tone="plum"] .event-close{color:#e4cfae}.quote-scene{position:relative;height:530px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#fff0d4}.quote-scene>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 62%}.quote-shade{position:absolute;inset:0;background:#281b15a3}.quote-content{position:relative;padding:30px}.quote-content>.eyebrow{color:#edcb95}.quote-content>p[lang]{font-family:serif;font-size:32px;line-height:1.8;margin:30px 0 22px}.quote-content>span{font-size:19px;font-style:italic}.moments{padding-top:76px}.photo-gallery{margin-top:34px}.photo-placeholder{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 25px 25px;background:#e8dfcf;border:1px solid #b7996866;box-shadow:inset 0 0 0 8px var(--paper),inset 0 0 0 9px #b7996855;max-width:320px;margin:auto}.arch{border-radius:160px 160px 0 0}.placeholder-initials{font:72px/1.2 var(--serif);color:#9c7e50;letter-spacing:-.05em}.placeholder-initials>span{font:45px Signature,var(--serif);padding:0 9px}.photo-placeholder p{font-size:21px;font-style:italic;margin-top:18px}.photo-placeholder small{font:12px var(--sans);color:#857154;margin-top:8px}.memory-note{padding:38px 10px 0}.quote-mark{display:block;color:#ad884a;font:70px/1 var(--serif);height:53px}.memory-note>p{font-size:23px;line-height:1.5;font-style:italic;max-width:280px;margin:auto}.memory-note>.eyebrow{font-size:12px;margin-top:24px;color:#947749}.gallery-button{background:transparent;padding:0;width:100%;margin:8px 0;overflow:hidden;border-radius:150px 150px 0 0;max-width:360px}.gallery-button img{width:100%;aspect-ratio:4/5;object-fit:cover}.venue{background:#e8dec9}.venue h2{margin-bottom:29px}.venue-image{position:relative;aspect-ratio:1.1;overflow:hidden;border-radius:180px 180px 0 0;max-width:400px;margin:auto;box-shadow:0 6px 17px #40311915}.venue-image>img{width:100%;height:100%;object-fit:cover;object-position:center 64%}.venue-image:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#201307aa)}.venue-image span{position:absolute;z-index:1;bottom:16px;left:10px;right:10px;color:#fff0cf;font:12px var(--sans);letter-spacing:.18em}.venue h3{font-size:28px;line-height:1.3;margin:26px 0 12px}.venue #venue-address{font-size:17px;max-width:310px;margin:auto}.outline-button{display:inline-block;border:1px solid #8e7546;padding:12px 22px;font:13px/1.6 var(--sans);margin-top:24px}.venue-footnote{font-size:16px;font-style:italic;color:#78664b;margin-top:26px}.closing{padding-top:78px;padding-bottom:55px}.closing-hindi{font-size:38px;color:#997542;margin-bottom:22px}.closing .eyebrow{font-size:12px;letter-spacing:.13em}.closing h2{font-size:34px;margin-top:23px}.closing .body-copy{font-size:17px;max-width:300px}.sign-off{font:43px/1.2 Signature,var(--serif);color:#7d4440;margin-top:30px}.sign-off i{font-family:var(--serif);font-size:22px;padding:0 7px}.closing-rule{display:block;width:60px;height:1px;background:#b49662;margin:26px auto 18px}.closing .text-button{margin-top:28px;font-size:12px;color:#856a44}footer{text-align:center;background:#ede4d3;padding:28px 20px 80px;font-family:var(--sans);color:#806d50}footer>.footer-mark{font-size:12px;letter-spacing:.2em}footer p{font:16px/1.8 var(--serif);font-style:italic;margin-top:5px}footer small{display:block;font-size:12px;line-height:1.7;margin-top:14px;color:#897c67}.music-toggle{position:fixed;z-index:50;bottom:max(18px,env(safe-area-inset-bottom));right:max(18px,calc((100vw - var(--shell))/2 + 18px));width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:1px solid #c7a76999;border-radius:50%;background:#42272aee;color:#f7dfab;box-shadow:0 3px 16px #0002;backdrop-filter:blur(5px)}.music-bars{display:flex;align-items:center;gap:3px;height:18px}.music-bars i{width:2px;height:6px;background:#f4d796;transition:height .2s}.music-toggle[aria-pressed="true"] .music-bars i{animation:equaliser 1.1s ease-in-out infinite alternate}.music-bars i:nth-child(2){animation-delay:-.6s!important;height:14px}.music-bars i:nth-child(3){animation-delay:-.2s!important;height:10px}.music-bars i:nth-child(4){animation-delay:-.9s!important;height:16px}@keyframes equaliser{from{height:4px}to{height:17px}}.toast{position:fixed;z-index:110;left:50%;bottom:80px;transform:translate(-50%,10px);max-width:calc(100% - 38px);width:max-content;padding:10px 18px;border:1px solid #d3b27b55;background:#3c2526;color:#ffefd5;border-radius:3px;font:13px/1.6 var(--sans);opacity:0;pointer-events:none;transition:.3s}.toast.shown{opacity:1;transform:translate(-50%,0)}dialog{max-width:min(90vw,600px);max-height:90svh;padding:12px;background:var(--paper);border:0;color:var(--ink)}dialog::backdrop{background:#1b100de6}dialog img{max-height:75svh;object-fit:contain}dialog button{position:absolute;right:18px;top:18px;width:40px;height:40px;border-radius:50%;background:#3c2326;color:white;font:26px sans-serif}dialog p{padding-top:7px;font-size:14px;text-align:center}
@media(min-width:601px){.invitation-shell{margin:24px auto;border:1px solid #d8b47a33;border-radius:8px}.gate{top:24px;bottom:24px;height:calc(100svh - 48px);border-radius:8px}.hero{height:calc(100svh - 48px);min-height:800px}.section{padding-left:55px;padding-right:55px}.family-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:15px}.family-grid p{font-size:15px}.family-grid h3{font-size:33px}.family-amp{font-size:30px}.gate-action{bottom:12%}.gate-heading{top:4%}.event-list{display:grid;grid-template-columns:1fr 1fr;max-width:none;gap:18px}.event-card,.event-detail{min-height:325px}.event-detail{padding:42px 15px 36px}.event-title{font-size:26px}.event-detail h3{font-size:27px}.event-detail .event-note{font-size:14px}.event-hindi{font-size:17px}.event-open-label{font-size:12px}.event-number{font-size:12px}.event-time{font-size:12px}.dress-code{font-size:12px}.hero-content{padding-bottom:60px}}
@media(max-width:360px){.section{padding-left:23px;padding-right:23px}.hero{min-height:670px}.hero-content{padding-bottom:55px}h1{font-size:4.25rem}.hero-top{padding-top:22px}.gate-action{bottom:12%}.countdown span{font-size:12px}.countdown{gap:5px}.gate-action>.hindi{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.motion-ready .reveal{opacity:1;transform:none}.gold-dust{display:none}}

/* Four carved windows: the architecture stays still, only the doors move. */
.jharokha-gallery{padding:0;background:#cf943e;text-align:center;position:relative}
.gallery-heading{padding:67px 26px 78px;position:relative;background-image:linear-gradient(to bottom,transparent 72%,#cf943e),radial-gradient(#8a6b4614 .65px,transparent .65px);background-size:100% 100%,5px 5px}
.gallery-heading h2{margin-top:10px;font-size:2.55rem;color:#573522}
.gallery-heading .eyebrow{font-size:12px;color:#8b682f}
.gallery-heading .section-caption{font-size:16px;line-height:1.7;margin-top:19px;color:#785735}
.gallery-heading-rule{display:flex;justify-content:center;align-items:center;gap:12px;color:#bc8d39;font-size:13px;margin:17px auto 0}
.gallery-heading-rule:before,.gallery-heading-rule:after{content:'';width:65px;height:1px;background:linear-gradient(90deg,transparent,#c19a53)}
.gallery-heading-rule:after{transform:rotate(180deg)}
.jharokha-gallery .photo-gallery{padding:0 8px 10px;margin:0;display:flex;flex-direction:column;gap:45px;background:radial-gradient(ellipse at 15% 12%,#f2c77b66,transparent 35%),radial-gradient(ellipse at 95% 70%,#f9cd7738,transparent 40%)}
.gallery-moment{margin:0 auto;width:100%;max-width:560px;position:relative}
.gallery-moment:nth-child(even){margin-left:auto;margin-right:auto}
.jharokha-stage{--window-left:21.6797%;--window-right:21.6797%;--window-top:17.7083%;--window-bottom:20.7682%;position:relative;width:100%;aspect-ratio:2/3;isolation:isolate}
.jharokha-aperture{position:absolute;inset:0;z-index:1;mask:url('assets/gallery/aperture-mask.webp') center/100% 100% no-repeat;-webkit-mask:url('assets/gallery/aperture-mask.webp') center/100% 100% no-repeat;}
.jharokha-photo,.jharokha-shutters{position:absolute;inset:var(--window-top) var(--window-right) var(--window-bottom) var(--window-left)}
.jharokha-photo{padding:0;border:0;background:#392316;overflow:hidden;width:auto;height:auto;box-shadow:inset 0 0 30px #170b0877}
.jharokha-photo img{width:100%;height:100%;object-fit:cover;object-position:center 45%;transform:scale(1.06);transition:transform 1.9s ease}
.doors-open .jharokha-photo img{transform:scale(1)}
.jharokha-photo:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 11px #24100755;pointer-events:none}
.jharokha-shutters{perspective:900px;pointer-events:none;z-index:2;}
.jharokha-shutter{position:absolute;top:0;bottom:0;width:50%;background-image:var(--jali-image,url('assets/gallery/jali-shutters.webp'));background-size:200% 100%;background-position:0 50%;backface-visibility:hidden;transition:transform 1.75s cubic-bezier(.38,.01,.19,1),filter 1.75s;transform-origin:0 50%;box-shadow:inset -1px 0 2px #16070199}
.jharokha-shutter.left{left:0}.jharokha-shutter.right{right:0;background-position:100% 50%;transform-origin:100% 50%;box-shadow:inset 1px 0 2px #16070199}
.doors-open .jharokha-shutter.left{transform:rotateY(-108deg);filter:brightness(.55)}
.doors-open .jharokha-shutter.right{transform:rotateY(108deg);filter:brightness(.55)}
.jharokha-carving{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:3;pointer-events:none;filter:drop-shadow(0 7px 6px #764b2730)}
.jharokha-open{position:absolute;inset:var(--window-top) var(--window-right) var(--window-bottom) var(--window-left);z-index:4;width:auto;height:auto;padding:0;display:flex;justify-content:center;align-items:center;background:transparent;border-radius:45% 45% 0 0;color:#f7e1b8;transition:opacity .35s}
.jharokha-door-label{margin-top:67%;display:flex;align-items:center;gap:6px;font:12px/1.4 var(--sans);padding:8px 12px;border:1px solid #e5c28c7d;background:#321b0ecf;border-radius:22px;white-space:nowrap;box-shadow:0 1px 8px #14080440}
.jharokha-door-label>span{font:18px/1 var(--serif);color:#f6d493}
.doors-open .jharokha-open{opacity:0;pointer-events:none}
.gallery-moment figcaption{padding:8px 22px 0;color:#4c2c16}
.moment-counter{display:block;font:12px/1.7 var(--sans);letter-spacing:.035em;color:#65411f}
.moment-counter i{font-style:normal;margin:0 4px;color:#805826}
.gallery-moment blockquote{font:italic 22px/1.5 var(--serif);margin:12px auto 0;max-width:420px;color:#4c2a13;text-wrap:pretty}
.jharokha-replay{padding:10px 3px 5px;margin-top:4px;border-bottom:1px solid #76511e4d;background:transparent;color:#67411d;font:12px/1.5 var(--sans);opacity:0;pointer-events:none;transition:opacity .35s}
.doors-open .jharokha-replay{opacity:1;pointer-events:auto}
.gallery-demo-note{font:12px/1.8 var(--sans);color:#674321;padding:24px 25px 47px;margin:0}
.jharokha-gallery button:focus-visible{outline:2px solid #fff8e7;outline-offset:3px}
@media(min-width:601px){.jharokha-gallery .photo-gallery{padding-left:12px;padding-right:12px;gap:45px}.gallery-heading{padding-top:75px}.gallery-moment{width:100%}.gallery-moment blockquote{font-size:24px}}
@media(max-width:360px){.jharokha-gallery .photo-gallery{padding-left:6px;padding-right:6px}.gallery-moment{width:100%}.gallery-moment blockquote{font-size:20px}}
@media(prefers-reduced-motion:reduce){.jharokha-shutter,.jharokha-photo img,.jharokha-open,.jharokha-replay{transition:none}}

/* Both video layers share one viewport crop, so the six-second handoff is aligned. */
.hero{min-height:640px;max-height:none}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay,.hero-top,.hero-content,.scroll-cue,.gold-dust{z-index:3;opacity:var(--intro-reveal,0)}
@media(min-width:601px){.hero{height:calc(100svh - 48px);min-height:640px}}
@media(max-height:780px){.hero-top{padding-top:18px;gap:8px}.small-monogram{width:42px;height:42px;font-size:22px}.hero-content{padding:18px 24px 74px}.hero-content>.hindi{font-size:20px;margin-bottom:12px}.hero h1{font-size:clamp(3.8rem,16vw,5rem);margin:18px 0 12px}.hero h1 em{font-size:29px;margin:7px 0 5px}.hero .fine-rule{margin:18px auto 15px}.scroll-cue{bottom:16px;gap:10px}}

/* Soft ivory stationery, carried through every section and the function cards. */
:root{--paper:#f7f2e8;--ink:#3f3531;--muted:#72665e}
body{background:var(--paper) url('assets/theme/ivory-paper.webp') center top/736px auto repeat}
.invitation-shell{background:var(--paper) url('assets/theme/ivory-paper.webp') center top/100% auto repeat-y}
.paper,.families,.venue,footer,.jharokha-gallery,.gallery-heading,.jharokha-gallery .photo-gallery{background:transparent;background-image:none}
.invitation-shell{box-shadow:none}
.families{color:var(--ink)}
.families .eyebrow,.family-label,.family-grid p,.family-bottom{color:var(--muted)}
.family-amp{color:#aa8340}
.families:before,.families:after{border-color:#c4a77630}
.date-card{background:#fff}
.gallery-moment figcaption,.gallery-moment blockquote{color:var(--ink)}
.gallery-demo-note,.moment-counter,.jharokha-replay{color:var(--muted)}
footer{border-top:1px solid #eee7de}
.celebrations{padding:50px 0 24px}
.celebrations-heading{padding:0 26px 26px}
.function-list{display:flex;flex-direction:column;gap:28px;width:100%;margin:0 auto}
.function-card{margin:0;width:100%;background:transparent;overflow:hidden}
.function-art{position:relative;width:100%;aspect-ratio:941/1672;overflow:hidden;background:#fff;isolation:isolate;mix-blend-mode:multiply;--corner-left:polygon(0 0,28% 0,28% 7%,20% 10%,14% 16%,9% 22%,0 22%);--corner-right:polygon(100% 0,72% 0,72% 7%,80% 10%,86% 16%,91% 22%,100% 22%)}
.function-image{display:block;width:100%;height:auto;position:relative;z-index:0}
.flower-cover,.flower-layer{display:none;position:absolute;inset:0;pointer-events:none}
.flowers-ready .flower-cover,.flowers-ready .flower-layer{display:block}
.flower-cover{background:#fff;z-index:1}
.flower-cover.left,.flower-layer.left{clip-path:var(--corner-left)}
.flower-cover.right,.flower-layer.right{clip-path:var(--corner-right)}
.flower-layer{z-index:2;animation-play-state:paused!important}
.flower-layer img{width:100%;height:100%;max-width:none;object-fit:fill;display:block}
.flower-layer.left{transform-origin:0 0;animation:flowers-left 8.5s ease-in-out infinite}
.flower-layer.right{transform-origin:100% 0;animation:flowers-right 10s ease-in-out infinite;animation-delay:-3s}
.flowers-visible .flower-layer{animation-play-state:running!important}
.media-paused .flower-layer{animation-play-state:paused!important}
@keyframes flowers-left{0%,100%{transform:rotate(.25deg)}50%{transform:rotate(1.65deg)}}
@keyframes flowers-right{0%,100%{transform:rotate(-.25deg)}50%{transform:rotate(-1.65deg)}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(min-width:601px){.invitation-shell{border-color:#eee}.celebrations{padding-left:0;padding-right:0}}
@media(prefers-reduced-motion:reduce){.flower-cover,.flower-layer{display:none!important}}

/* Nikunj & Neha: the floral monogram and live calligraphic names. */
.couple-logo{display:block;object-fit:contain}
.logo-on-dark{filter:brightness(0) invert(1) drop-shadow(0 2px 5px #20100788)}
.gate-couple-logo{width:clamp(155px,42vw,190px);height:auto;max-height:242px;margin:10px auto 0}
.hero,.gate{min-height:700px}
.hero-top{padding-top:34px;gap:18px;line-height:1.5}
.family-banner{display:block;max-width:calc(100% - 10px);padding:8px 14px;border:1px solid #f3dfb875;box-shadow:inset 0 0 0 3px #fff2ce0b;background:#3928122e;font-size:12px;letter-spacing:.13em;line-height:1.6}
.hero-couple-logo{width:104px;height:130px;margin:0 auto}
.hero-content{padding:10px 16px 76px}
#couple-heading{font-family:WeddingHand,Signature,cursive;font-size:clamp(3.6rem,18.5vw,5.8rem);font-weight:400;line-height:1.14;letter-spacing:0;margin:19px 0 12px;color:#fff3d8;text-shadow:0 2px 5px #1c100e80,0 4px 22px #25130e66;-webkit-text-stroke:0}
#couple-heading:focus{outline:none}
#couple-heading span{padding:0 .045em;white-space:nowrap}
#couple-heading em{font-family:WeddingHand,cursive;font-size:.42em;font-style:normal;line-height:1.1;margin:0;color:#f0d09b;-webkit-text-stroke:0}
.hero-content>.hindi{font-size:21px;margin-bottom:7px;line-height:1.4}
.hero .fine-rule{margin:12px auto 10px}
.hero-date{font-size:21px;line-height:1.4}
.hero-location{line-height:1.6}
@media(min-width:601px){.hero,.gate{min-height:740px}.hero-couple-logo{width:115px;height:144px}}

/* A glittering heart, framed by independently swaying watercolor stems. */
.date-section{position:relative;padding:50px 20px 65px;overflow:hidden;border-top:0}
.date-stage{position:relative;width:calc(100% + 40px);max-width:600px;margin:24px -20px 0;isolation:isolate}
.date-floral{position:absolute;z-index:3;width:31%;bottom:5%;pointer-events:none;transform-origin:50% 100%;animation:botanical-sway 9s ease-in-out infinite;animation-play-state:paused}
.date-floral img{display:block;width:100%;height:auto}
.date-floral-left{left:-5%;transform:rotate(-9deg);--lean:-9deg}
.date-floral-right{right:-5%;--lean:9deg;animation-duration:11s;animation-delay:-4s}
.date-floral-right img{transform:scaleX(-1)}
.date-section.in-view .date-floral{animation-play-state:running}
.heart-card{position:relative;z-index:2;width:84%;max-width:410px;margin:0 auto;aspect-ratio:1;overflow:visible;border:0;box-shadow:none;background:none;container-type:inline-size;filter:drop-shadow(0 9px 12px #ab813424)}
.heart-underlay{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.2;pointer-events:none}
.heart-card .date-content{position:absolute;inset:30% 14% auto;height:auto;margin:0;padding:0;border:0;outline:none;opacity:0;line-height:1.4}
.heart-card.is-ready .date-content,.heart-card.uncovered .date-content{opacity:1}
.heart-card .date-content>.eyebrow{font-size:12px;letter-spacing:.12em;color:#7d6241}
.heart-card .date-content>strong{font-size:clamp(25px,8.8cqw,36px);margin:9px 0 5px;white-space:nowrap;color:#654639}
.heart-card .date-content>span:not(.eyebrow):not(.date-initials){font:14px/1.5 var(--sans);white-space:nowrap;color:#655341}
.heart-card .date-initials{font:27px/1 Signature,var(--serif);margin-top:13px;letter-spacing:.02em;color:#8b6739}
.heart-card canvas{z-index:2;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.heart-shimmer,.heart-sparkles{position:absolute;inset:0;z-index:3;pointer-events:none;mask:url('assets/theme/gold-heart.webp') center/contain no-repeat;-webkit-mask:url('assets/theme/gold-heart.webp') center/contain no-repeat;opacity:0;transition:opacity .6s}
.heart-card.is-ready:not(.uncovered) .heart-shimmer,.heart-card.is-ready:not(.uncovered) .heart-sparkles{opacity:1}
.heart-shimmer{overflow:hidden}
.heart-shimmer:after{content:'';position:absolute;inset:-25% -60%;background:linear-gradient(110deg,transparent 35%,#fff9d200 42%,#fff8d673 49%,#fff6c400 56%,transparent 65%);transform:translateX(-50%);animation:foil-shimmer 6.5s ease-in-out infinite;animation-play-state:paused;mix-blend-mode:screen}
.heart-sparkles i{position:absolute;left:var(--x);top:var(--y);width:9px;height:9px;background:#fff9dc;clip-path:polygon(50% 0,59% 39%,100% 50%,60% 59%,50% 100%,40% 59%,0 50%,40% 40%);opacity:.2;transform:scale(.6);animation:heart-twinkle 4.7s ease-in-out infinite;animation-delay:var(--delay);animation-play-state:paused}
.date-section.in-view .heart-shimmer:after,.date-section.in-view .heart-sparkles i{animation-play-state:running}
.media-paused .date-floral,.media-paused .heart-shimmer:after,.media-paused .heart-sparkles i{animation-play-state:paused!important}
.heart-card.uncovered .heart-shimmer:after,.heart-card.uncovered .heart-sparkles i{animation:none}
.date-section #reveal-date{margin-top:8px}
.date-section .countdown{margin-top:32px}
@keyframes botanical-sway{0%,100%{transform:rotate(calc(var(--lean) - 1deg))}50%{transform:rotate(calc(var(--lean) + 1.5deg))}}
@keyframes foil-shimmer{0%,18%{transform:translateX(-50%)}70%,100%{transform:translateX(50%)}}
@keyframes heart-twinkle{0%,35%,100%{opacity:.12;transform:scale(.45)}50%{opacity:1;transform:scale(1.35)}65%{opacity:.25;transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){.date-floral{animation:none}.heart-shimmer,.heart-sparkles{display:none}}

/* Countdown space stays stable while it waits for the scratch reveal. */
.date-section .date-title{font-size:clamp(1.65rem,6.8vw,2.15rem);color:var(--ink);line-height:1.35;margin-top:15px}
.countdown-reveal{opacity:0;visibility:hidden;transition:opacity .8s ease}
.countdown-reveal.started{opacity:1;visibility:visible}

/* Botanical edges frame the family copy without covering its central column. */
.families{overflow:hidden;isolation:isolate;padding-left:46px;padding-right:46px}
.families>.reveal{position:relative;z-index:2}
.families h2{font-size:clamp(1.8rem,7.2vw,2.2rem)}
.family-floral{position:absolute;z-index:1;width:clamp(130px,35vw,195px);top:32%;pointer-events:none;transform-origin:50% 100%;animation:botanical-sway 10s ease-in-out infinite;animation-play-state:paused;opacity:.9}
.family-floral img{width:100%;height:auto}
.family-floral-left{left:-20%;--lean:5deg}
.family-floral-right{right:-20%;--lean:-5deg;animation-duration:12s;animation-delay:-4s}
.family-floral-right img{transform:scaleX(-1)}
.families.in-view .family-floral{animation-play-state:running}
.media-paused .family-floral{animation-play-state:paused!important}
.family-grid p{max-width:225px}
@media(min-width:601px){.family-floral{top:29%;width:190px}.family-floral-left{left:-17%}.family-floral-right{right:-17%}.families{padding-left:65px;padding-right:65px}}

/* Small transparent sprites float across the invitation after the gate opens. */
.ambient-life{position:fixed;inset:0 auto 0 50%;transform:translateX(-50%);width:min(100%,var(--shell));height:100svh;z-index:12;overflow:hidden;pointer-events:none;contain:layout paint}
.butterfly-field,.petal-field{position:absolute;inset:0;pointer-events:none}
.flying-butterfly{position:absolute;left:var(--x);top:var(--y);width:var(--size);opacity:.7;animation:butterfly-flight var(--duration) ease-in-out infinite;animation-delay:var(--delay)}
.flying-butterfly:nth-child(even){animation-direction:reverse}
.flying-butterfly img{width:100%;height:auto;transform-origin:50% 50%;animation:butterfly-flutter var(--flutter) ease-in-out infinite alternate;filter:drop-shadow(0 1px 1px #4b376f25)}
.falling-petal{position:absolute;left:var(--x);top:-30px;width:var(--size);opacity:0;animation:petal-fall var(--duration) linear infinite;animation-delay:var(--delay)}
.falling-petal img{width:100%;height:auto;animation:petal-turn 5s ease-in-out infinite;animation-delay:var(--delay)}
.ambient-life[hidden] *,.media-paused .ambient-life *{animation-play-state:paused!important}
@keyframes butterfly-flight{0%,100%{transform:translate(-30px,40px) rotate(-24deg)}25%{transform:translate(30px,-70px) rotate(22deg)}50%{transform:translate(-40px,-20px) rotate(-14deg)}75%{transform:translate(22px,80px) rotate(28deg)}}
@keyframes butterfly-flutter{from{transform:scaleX(.45) rotate(-3deg)}to{transform:scaleX(1) rotate(3deg)}}
@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}8%,85%{opacity:.42}100%{opacity:0;transform:translate3d(var(--drift),calc(100svh + 60px),0) rotate(var(--turn))}}
@keyframes petal-turn{0%,100%{transform:rotateY(0) rotate(-15deg)}50%{transform:rotateY(60deg) rotate(20deg)}}
@media(prefers-reduced-motion:reduce){.family-floral{animation:none}.ambient-life{display:none!important}.countdown-reveal{transition:none}}

.family-grid h3,.sign-off{font-family:WeddingHand,Signature,cursive}
.family-grid h3{font-size:46px}
.sign-off{font-size:clamp(2rem,9.8vw,2.875rem)}
.scratch-instruction{cursor:default}
.music-toggle.sound-needed:after{content:"Tap for sound";position:absolute;right:54px;white-space:nowrap;border-radius:20px;padding:6px 10px;background:#42272aee;color:#fff3d8;font:12px/1.4 var(--sans)}

.scratch-instruction{font:14px/1.7 var(--sans);padding:12px 4px 5px;margin:8px auto 0;color:var(--ink)}
.scratch-alternative:focus{position:relative!important;width:auto!important;height:auto!important;margin:8px!important;padding:10px 14px!important;clip:auto!important;overflow:visible!important;background:var(--paper);border:1px solid var(--gold)!important}

/* Confirmed families use an airy, single-column wedding layout on every screen. */
.families{padding:64px 34px 58px}
.families>.reveal>.eyebrow{max-width:290px;margin:0 auto;line-height:1.8}
.family-grid{display:flex;flex-direction:column;align-items:center;gap:25px;margin:38px auto 34px}
.family-person{width:100%;max-width:385px}
.family-grid h3{font:400 clamp(3.4rem,17vw,5rem)/1.2 WeddingHand,Signature,cursive;color:#765444;margin:6px 0 22px}
.family-label{font-size:12px;letter-spacing:.2em}
.family-grid .family-detail{font:17px/1.65 var(--serif);color:#625549;max-width:345px;margin:20px auto 0;text-wrap:pretty}
.family-detail>span{display:block}
.family-detail .kinship{font:14px/1.6 var(--serif);letter-spacing:0;color:#8c7353;margin-bottom:5px}
.family-grid .family-residence{font-size:17px;margin-top:19px}
.family-grid .family-amp{display:flex;align-items:center;gap:19px;font:400 44px/1.2 WeddingHand,cursive;color:#aa8340;margin:1px 0}
.family-amp:before,.family-amp:after{content:'';display:block;width:44px;height:1px;background:linear-gradient(90deg,transparent,#bea478)}
.family-amp:after{transform:rotate(180deg)}
.family-bottom{max-width:320px;font-size:16px}
.venue-map{width:100%;max-width:460px;margin:0 auto;overflow:hidden;border:1px solid #d5c3a7;border-radius:12px;background:#eee7dc;box-shadow:0 8px 24px #7a604018}
.venue-map iframe{display:block;width:100%;height:340px;border:0}
@media(min-width:601px){.families{padding-left:65px;padding-right:65px}.venue-map iframe{height:360px}}

.sign-off{font-size:clamp(2rem,8.3vw,2.8rem);line-height:1.45}
@media(max-width:360px){.families{padding-left:27px;padding-right:27px}.family-grid .family-detail{font-size:16px}.family-grid h3{font-size:3.7rem}}

/* Ornate wedding calligraphy with space for its sweeping capital letters. */
#couple-heading{font-size:clamp(4.5rem,24vw,7.2rem);line-height:1.15;letter-spacing:0;margin-top:22px;-webkit-text-stroke:.12px currentColor}
#couple-heading span{padding:0 .14em}
#couple-heading em{font-size:.35em;line-height:1.3;margin:2px 0 5px}
.family-grid h3{font-family:WeddingHand,Signature,cursive;font-size:clamp(4.25rem,22vw,6.6rem);line-height:1.18;margin:12px 0 23px;padding:0 .12em;-webkit-text-stroke:.1px currentColor}
.family-grid .family-amp{font-size:46px;line-height:1.35}
.sign-off{font-family:WeddingHand,Signature,cursive;font-size:clamp(2.7rem,11vw,4rem);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:0 .1em;line-height:1.4}
.sign-off>span{white-space:nowrap}
.venue .outline-button{font-size:14px}

/* A full-width map with the actual venue as its heading. */
.venue.section{padding:62px 18px 56px}
.venue .eyebrow{color:#967441;letter-spacing:.16em}
.venue h2#venue-name{font:400 clamp(1.9rem,8vw,2.6rem)/1.22 var(--serif);letter-spacing:0;margin:14px auto 12px;color:#604130}
.venue #venue-address{max-width:365px;font:17px/1.6 var(--serif);margin:0 auto 26px;padding:0 10px}
.venue .venue-map{width:100%;max-width:560px;margin:0 auto;border:1px solid #bea27a;padding:6px;background:#fffaf2;border-radius:12px;box-shadow:0 7px 24px #72563715}
.venue .venue-map iframe{width:100%;height:360px;display:block;border:0;border-radius:7px}
.venue .outline-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;font:14px/1.5 var(--sans);padding:13px 24px;margin-top:22px;background:#76543b;color:#fff9e9;border-color:#76543b;border-radius:6px}
@media(min-width:601px){.venue.section{padding-left:24px;padding-right:24px}.venue .venue-map iframe{height:410px}}


/* The two calligraphic names retain their transparent silhouettes. */
.name-art{display:none;background:var(--name-ink,currentColor);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:contain;-webkit-mask-size:contain;mask-position:center;-webkit-mask-position:center;flex-shrink:0}
.name-art-groom{mask-image:url('assets/nikunj-name.png');-webkit-mask-image:url('assets/nikunj-name.png');aspect-ratio:3/1}
.name-art-bride{mask-image:url('assets/neha-name.png');-webkit-mask-image:url('assets/neha-name.png');aspect-ratio:3/1}
.name-art-ready .name-art{display:block}
.name-art-ready .name-copy{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.name-art-ready #couple-heading{line-height:1;margin:20px 0 15px;-webkit-text-stroke:0;text-shadow:none;--name-ink:#fff0cd}
#couple-heading>.name-art{padding:0;width:100%;max-width:340px;margin:auto;filter:drop-shadow(0 2px 4px #24120aaa)}
#couple-heading .couple-and{font:40px/1.1 WeddingHand,cursive;margin:0 0 3px;color:#e9c88d}
.name-art-ready .family-grid h3{font-size:inherit;line-height:1;padding:0;margin:14px 0 20px;-webkit-text-stroke:0;--name-ink:#795338}
.family-grid h3>.name-art{width:100%;max-width:320px;margin:auto}
.name-art-ready .sign-off{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;--name-ink:#795338;margin:26px auto 0;max-width:500px}
.sign-off>.name-art{width:43%;max-width:220px}
.sign-off i{font:36px/1 WeddingHand,cursive;padding:0}
.hero-couple-logo{width:114px;height:114px;object-fit:contain}
.gate-couple-logo{width:170px;height:170px;object-fit:contain;margin:12px auto 0}
/* Reuse original decorative illustrations; schedule labels remain editable and accessible. */
.live-function{position:relative;isolation:isolate;background:#fff;mix-blend-mode:multiply;text-align:center;padding-top:92px}
.function-corners{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:-1}
.corner-image{position:absolute;top:0;left:0;width:100%;height:auto;max-width:none;transform-origin:top center}
.corner-left{clip-path:polygon(0 0,28% 0,28% 7%,20% 10%,14% 16%,9% 22%,0 22%)}
.corner-right{clip-path:polygon(100% 0,72% 0,72% 7%,80% 10%,86% 16%,91% 22%,100% 22%)}
.function-copy{position:relative;padding:0 28px 12px;z-index:1}
.function-copy>.eyebrow{font-size:13px;line-height:1.7;letter-spacing:.16em;color:var(--event-ink);max-width:75%;margin:0 auto 16px}
.function-copy h3{font:400 clamp(3.4rem,13vw,4.9rem)/1.04 WeddingHand,Signature,cursive;color:var(--event-ink);letter-spacing:0;max-width:510px;margin:auto;text-wrap:balance}
.function-copy h3.floral-function-title{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:var(--title-ratio,3 / 1);font-family:var(--serif);font-size:clamp(2.7rem,11vw,4.1rem);line-height:1.15;width:100%;max-width:470px}
.function-title-art{display:block;position:absolute;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}
.floral-function-title.has-title-art{position:relative;aspect-ratio:var(--title-ratio);overflow:hidden}
.floral-function-title.has-title-art .function-title-art{display:block;position:absolute;opacity:1;width:var(--title-image-width,100%);height:var(--title-image-height,100%);max-width:none;left:var(--title-image-left,0);top:var(--title-image-top,0)}
.has-title-art .function-title-fallback{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.floral-function-title.has-title-art + .function-rule{margin-top:18px}
.function-rule{display:block;font-size:13px;color:#ba9550;margin:22px auto 16px}
.function-copy time{display:block;font:400 20px/1.6 var(--serif);color:#493e35}
.function-copy time strong{display:block;font-size:25px;font-weight:400;letter-spacing:.045em;margin-top:1px}
.function-venue{font:18px/1.45 var(--serif);max-width:360px;margin:16px auto 0;color:#5c4e43}
.function-venue span{display:block;font-size:15px;line-height:1.5;margin-top:4px}
.function-illustration{position:relative;overflow:hidden;width:100%;margin-top:10px}
.function-illustration img{position:absolute;bottom:0;left:0;width:100%;max-width:none;height:auto}
.reception-illustration{padding:0 10px 14px;aspect-ratio:4 / 3}
.reception-illustration img{position:static;width:100%;height:auto}
.venue h2{font:400 clamp(1.9rem,8vw,2.6rem)/1.22 var(--serif);letter-spacing:0;margin:14px auto 12px;color:#604130}
.venue .venue-event-date{font:15px/1.6 var(--sans);letter-spacing:.03em;color:#997648;margin:14px auto}
.venue .venue-address{max-width:390px;font:17px/1.6 var(--serif);margin:0 auto 26px;padding:0 10px}
#venue-reception{border-top:1px solid #cdbb9e80}
@media(max-width:360px){.live-function{padding-top:76px}.function-copy{padding-left:20px;padding-right:20px}.function-copy h3{font-size:3.2rem}.function-copy time{font-size:18px}.function-copy .eyebrow{font-size:12px}.hero-couple-logo{width:96px;height:96px}}
@media(min-width:601px){.live-function{padding-top:115px}.function-copy{padding-left:45px;padding-right:45px}}

.name-art-groom{aspect-ratio:1719/654;mask-size:103.199535% 135.626911%;-webkit-mask-size:103.199535% 135.626911%;mask-position:52.727273% 75.107296%;-webkit-mask-position:52.727273% 75.107296%;}

.name-art-bride{aspect-ratio:1988/601;mask-size:103.018109% 127.787022%;-webkit-mask-size:103.018109% 127.787022%;mask-position:50.000000% 53.293413%;-webkit-mask-position:50.000000% 53.293413%;}

.map-area-label{font:13px/1.6 var(--sans);color:#846e54;margin:18px 0 10px;letter-spacing:.035em}
/* Guest information extends the invitation's ivory and antique-gold palette. */
.guest-nav{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:1fr 1.8fr;min-height:66px;padding:8px 12px;background:#fbf6ebf5;border-bottom:1px solid #c4a36d80;backdrop-filter:blur(12px)}
.guest-nav button{background:none;color:#60432f;padding:9px 12px;font:14px/1.5 var(--sans);letter-spacing:.045em}
.guest-nav button+button{border-left:1px solid #c4a36d70}
.guest-nav button span{display:block;letter-spacing:.075em}
.guest-nav button:hover{background:#ac834b0c}
body.locked .guest-nav{visibility:hidden}
body.guest-guide-open{overflow:hidden}
.guest-guide{position:fixed;inset:0;width:min(100%,600px);height:100dvh;max-width:600px;max-height:100dvh;margin:0 auto;padding:0;border:0;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);color:var(--ink);scroll-behavior:auto}
.guest-guide::backdrop{background:#2b1a16ba;backdrop-filter:blur(4px)}
.guest-guide p{padding:0;font-size:17px;line-height:1.7;text-align:inherit}
.guest-guide img{max-height:none;object-fit:contain}
.guest-guide-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:10px 22px;background:#fbf6ebf7;backdrop-filter:blur(12px);border-bottom:1px solid #c4a36d75}
.guest-guide .guest-guide-bar button{position:static;width:auto;height:auto;border-radius:0;background:none;color:#654b35;font:14px/1.5 var(--sans);padding:12px 0;border-bottom:1px solid #bca47c}
.guest-guide-bar>span{font:24px/1.3 var(--serif);color:#926d3b;white-space:nowrap}
.guest-guide-bar i{font:20px/1.3 WeddingHand,cursive}
.wardrobe-document{width:100%;background:#fff;color:#535b3d;container-type:inline-size}
.wardrobe-intro{padding:38px 28px 36px;text-align:center}
.guest-guide .wardrobe-intro .eyebrow{font:12px/1.7 var(--sans);letter-spacing:.16em}
.wardrobe-intro h2{font:42px/1.25 var(--serif);letter-spacing:0;margin:12px 0 6px}
.guest-guide .wardrobe-names{font:46px/1.35 WeddingHand,Signature,cursive;margin:2px 0 13px}
.guest-guide .wardrobe-dates{font:14px/1.7 var(--sans);letter-spacing:.025em}
.guest-guide .wardrobe-welcome{font-size:21px;line-height:1.5;margin:23px auto 12px;max-width:420px}
.wardrobe-intro>p:last-child{max-width:420px;margin:auto}
/* Each existing wardrobe design is grouped with its actual event date. */
.wardrobe-event{background:#fff;padding:16px 0 30px}
.wardrobe-event+.wardrobe-event{border-top:1px solid #d5d8ca}
.wardrobe-event-heading{padding:24px 24px 22px;text-align:center}
.wardrobe-event-heading time{display:block;font:1rem/1.7 var(--serif);color:#535b3d}
.wardrobe-event-heading h3{font:clamp(1.7rem,6cqw,2.3rem)/1.25 var(--serif);margin:12px auto 8px;max-width:480px}
.guest-guide .wardrobe-event-heading p{font:clamp(1.7rem,6cqw,2.4rem)/1.35 WeddingHand,Signature,cursive;margin:0}
.wardrobe-crop{position:relative;width:100%;overflow:hidden}
.wardrobe-crop img{position:absolute;left:0;width:100%;max-width:none;height:auto;display:block}
.guest-guide .wardrobe-closing{margin:0;padding:30px 28px 20px;background:#535b3d;color:#fff;text-align:center;font-size:1.1rem;line-height:1.8}
.wardrobe-signature{display:flex;flex-direction:column;align-items:center;padding:8px 25px 38px;background:#535b3d;color:#f9e7be}
.wardrobe-signature img{width:140px;height:140px;object-fit:contain;filter:brightness(0) saturate(100%) invert(93%) sepia(12%) saturate(734%) hue-rotate(348deg) brightness(99%) contrast(94%)}
.guest-guide .wardrobe-signature p{font:34px/1.3 WeddingHand,Signature,cursive;margin-top:8px;text-align:center}
.explore-content{padding:44px 28px 48px;background:var(--paper) url('assets/theme/ivory-paper.webp') center top/100% auto repeat-y}
.explore-heading{text-align:center}
.guest-guide .explore-heading .eyebrow{font:12px/1.8 var(--sans);letter-spacing:.17em;color:#8a683d}
.explore-heading h2{font-size:clamp(30px,7.8vw,43px);line-height:1.25;letter-spacing:-.015em;margin:18px 0;color:#65462f}
.explore-heading h2 em{font-weight:400}
.explore-ornament{display:block;color:#ad8545;margin:23px 0 19px}
.explore-heading>p:last-child{max-width:430px;margin:auto;color:#736354;font-size:18px}
.explore-places{margin-top:36px;border-top:1px solid #b3915847}
.explore-place{display:grid;grid-template-columns:43px minmax(0,1fr);gap:14px;padding:25px 0;border-bottom:1px solid #b3915847}
.place-icon{font-size:27px;padding-top:2px;text-align:center}
.explore-place h3{font:400 26px/1.25 var(--serif);color:#61412e;margin-bottom:8px;text-wrap:balance}
.guest-guide .explore-place p{font-size:17px;color:#756557;line-height:1.6}
.guest-guide .explore-place .place-location{font:14px/1.5 var(--sans);color:#897047;margin:12px 0 8px}
.place-map-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border:1px solid #a6814c;border-radius:4px;background:#f8f0e1;color:#654326;font:14px/1.5 var(--sans);text-decoration:none;transition:background .2s,color .2s}
.place-map-link:hover{background:#795737;color:#fff9eb}
.place-map-link:focus-visible{outline:3px solid #a16b3c;outline-offset:4px}
.explore-closing{text-align:center;padding:34px 6px 0;color:#795c3f}
.explore-closing>span{display:block;color:#a8844d;margin-bottom:20px}
.guest-guide .explore-closing>p{font-size:19px;font-style:italic;line-height:1.7}
.guest-guide .explore-closing .explore-signature{font:32px/1.5 WeddingHand,Signature,cursive;margin-top:23px}
@media(min-width:601px){.guest-guide{height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);margin:16px auto;border-radius:8px}.explore-content{padding-left:42px;padding-right:42px}.guest-nav{border-radius:7px 7px 0 0}}
@media(max-width:360px){.guest-nav{padding:7px 4px}.guest-nav button{padding:8px 7px;letter-spacing:0}.explore-content{padding-left:21px;padding-right:21px}.explore-place{gap:9px;grid-template-columns:34px minmax(0,1fr)}.explore-place h3{font-size:24px}}

/* Balance the cover around the centred couple names, with a larger monogram. */
.hero{display:grid;grid-template-rows:1fr auto 1fr;height:auto;min-height:100svh;max-height:none}
.hero-top{align-self:start}
.hero-couple-logo{width:clamp(150px,40vw,180px);height:auto;aspect-ratio:1;object-fit:contain}
.hero-content{align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;margin:0;padding:22px 16px;text-align:center}
#couple-heading,.name-art-ready #couple-heading{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px;margin:18px auto 0}
.hero>.scroll-cue{position:relative;left:auto;right:auto;bottom:auto;align-self:end;margin:0;padding:8px 16px 28px;gap:12px}
.family-grid .family-detail{max-width:100%;text-wrap:initial}
.family-names .family-name{display:block;white-space:normal;font-size:inherit;line-height:1.65}
.family-names .family-join{display:block;font-size:14px;line-height:1.5;margin:3px 0;color:#8c7353}
@media(min-width:601px){.hero{min-height:calc(100svh - 48px)}}
@media(max-width:360px){.family-grid .family-detail{font-size:16px}}

.ceremony-illustration{padding:12px 10px 18px;aspect-ratio:auto}
.ceremony-illustration img{position:static;width:100%;height:auto}

/* Personalized names retain the supplied calligraphy and original scene. */
.personal-name{display:block;font-family:WeddingHand,Signature,cursive;font-weight:400;line-height:1.3}.hero .personal-name{font-size:clamp(66px,17vw,100px);padding:0!important}.family-grid h3 .personal-name{font-size:64px}.family-grid h3:after{display:block;font:18px var(--serif);letter-spacing:.08em}.family-person:first-child h3:after{content:"NAGPURIA"}.family-person:last-child h3:after{content:"MANDHANIYA"}.sign-off .personal-name{font-size:50px}.wedding-schedule{max-width:360px;margin:20px auto 10px;font-size:18px;line-height:1.8}.rsvp-families{margin-top:25px}.floral-function-title{min-height:100px}

/* Wedding proceedings stay aligned and readable on small screens. */
.wedding-schedule{max-width:350px;margin:28px auto 0;padding:23px 0 0;border-top:1px solid #b3915847;font-size:19px;line-height:1.6}
.wedding-timings{margin:0;padding:0}.wedding-timings>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0}.wedding-timings dt{text-align:left}.wedding-timings dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.wedding-dinner{margin:17px 0 0;font-style:italic}.wedding-muhurat{margin-top:24px;padding-top:20px;border-top:1px solid #b3915847}.wedding-muhurat p{margin:0}.wedding-muhurat span{display:block;margin-top:5px;font-size:16px;font-style:italic;color:#796750}.jharokha-photo{cursor:default}

/* Personalized calligraphy and a single, balanced guest navigation item. */
.guest-nav{grid-template-columns:1fr;min-height:54px;padding:5px 12px}.guest-nav button{justify-self:center;min-width:160px;font-size:13px;letter-spacing:.12em}
.personal-name{font-family:CelebrationScript,cursive;font-weight:400;font-style:normal;letter-spacing:0;font-kerning:normal;font-variant-ligatures:common-ligatures;-webkit-text-stroke:0;line-height:1.28}
.hero .personal-name{font-family:CelebrationScript,cursive;font-size:clamp(67px,17.5vw,96px);color:#fff4dc;text-shadow:0 2px 12px #321c17aa;line-height:1.22}
#couple-heading{gap:5px;max-width:100%;margin-top:18px;-webkit-text-stroke:0}
#couple-heading .couple-and{display:flex;align-items:center;gap:17px;font:italic 30px/1.25 Haveli,serif;color:#ebcc93;margin:4px 0}
#couple-heading .couple-and:before,#couple-heading .couple-and:after{content:"";display:block;width:39px;height:1px;background:linear-gradient(90deg,transparent,#e9c891)}
#couple-heading .couple-and:after{transform:scaleX(-1)}
.family-grid h3{padding:0;margin:15px 0 28px;-webkit-text-stroke:0}.family-grid h3 .personal-name{font-family:CelebrationScript,cursive;font-size:clamp(55px,14vw,76px);line-height:1.35;color:#79503d}
.family-grid h3:after{font-size:15px;letter-spacing:.24em;line-height:1.7;margin-top:3px;color:#947344}.family-person:last-child h3:before{display:block;font:italic 17px/1.5 Haveli,serif;margin:0 0 -3px;color:#947344}
.sign-off .personal-name{font-family:CelebrationScript,cursive;font-size:clamp(40px,10vw,56px);line-height:1.4}.wardrobe-signature p{font-family:CelebrationScript,cursive;font-size:38px}
#venue-name{font-size:clamp(30px,8vw,42px);line-height:1.25;text-wrap:balance}.function-venue{line-height:1.5}

/* Devotional blessing and bride's professional title. */
.family-ganesha{display:block;width:124px;height:124px;object-fit:contain;margin:0 auto 20px}
.family-grid h3 .family-honorific{display:block;font:italic 19px/1.5 Haveli,serif;letter-spacing:.01em;color:#947344;margin:0 0 -3px}
@media(max-width:420px){.family-ganesha{width:112px;height:112px;margin-bottom:18px}}

/* Additional wedding and reception details. */
.baraat-destination{font-size:16px;line-height:1.6;margin:20px 0;color:#796750}.baraat-destination strong{font-weight:400;color:#604130}.reception-subtitle{font:italic 20px/1.6 var(--serif);color:var(--event-ink);margin:8px 0 0}.wardrobe-event-heading .wardrobe-schedule{font:14px/1.7 var(--sans);margin:12px auto;color:#796750}.wedding-timings{font-size:18px}

/* The supplied monogram is blended directly so its exact lettering is preserved. */
.couple-logo.logo-on-dark,.wardrobe-signature img{filter:drop-shadow(0 2px 5px #20100755);mix-blend-mode:normal;object-fit:contain}
.gate{min-height:0}
.function-subtitle{font-family:var(--serif);font-size:clamp(22px,6vw,30px);font-style:italic;letter-spacing:.02em;line-height:1.2;color:var(--event-ink);margin:-2px auto 12px}
.function-subtitle + .function-rule{margin-top:8px}
