@font-face{font-family:Cormorant;src:url('assets/cormorant.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:GreatVibes;src:url('assets/great-vibes.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:InvitationDevanagari;src:url('assets/noto-serif-devanagari.woff') format('woff');font-weight:400;font-display:swap}
:root{--paper:#fcf6ee;--blush:#ecd8df;--rose:#a76b80;--ink:#532e3d;--muted:#795965;--gold:#ac9171;--line:#cbb39b;--serif:Cormorant,Georgia,serif;--script:GreatVibes,'Palatino Linotype',serif;--page-width:540px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#e9d5dc;font-family:var(--serif);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased}body.is-sealed,body.is-slideshow{overflow:hidden}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #864e6a;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1:focus,h2:focus{outline:none}button,svg{flex-shrink:0}svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.surround{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;z-index:-1;background:radial-gradient(ellipse at 15% 12%,#faf2f4 0,transparent 50%),radial-gradient(ellipse at 95% 80%,#d7b7c4,transparent 70%),#e9d5dc}.invitation-shell{position:relative;width:100%;max-width:var(--page-width);margin:auto;box-shadow:0 15px 100px #71495925;background:var(--paper)}
.slide{position:relative;isolation:isolate;text-align:center;min-height:100vh;min-height:100svh;padding:50px 38px 38px;overflow:hidden;touch-action:pan-y pinch-zoom;background:var(--paper)}.slide-content{position:relative;z-index:1;width:100%;max-width:400px;margin:auto;flex-shrink:0}.is-slideshow .invitation-shell{height:100vh;height:var(--app-height,100vh);height:100dvh;display:flex;flex-direction:column;overflow:hidden}.is-slideshow main{flex:1;min-height:0;position:relative;overflow:hidden}.is-slideshow .slide{min-height:0;height:100%;padding:45px 38px 34px;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}
.paper-border{position:absolute;pointer-events:none;top:18px;right:18px;bottom:18px;left:18px;inset:18px;border:1px solid #b8996f88;z-index:0}.paper-border:after{content:'';position:absolute;top:5px;right:5px;bottom:5px;left:5px;inset:5px;border:1px solid #b8996f44}.garden-page .paper-border{top:13px;right:13px;bottom:13px;left:13px;inset:13px;border-color:#b8996f66}.floral-corner{position:absolute;left:0;right:0;height:35%;overflow:hidden;pointer-events:none;z-index:0;opacity:.77}.floral-top{top:0}.floral-bottom{bottom:0}.floral-corner img{position:absolute;display:block;width:72%;height:auto;max-width:none}.floral-top img{top:0;left:0}.floral-bottom img{right:0;bottom:0}.garden-art{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transform-origin:50% 55%}.garden-page{background:#fcf4eb}.family-page{background:linear-gradient(160deg,#fcf8f0,#faeeee)}.save-date-page{background:linear-gradient(150deg,#fffaf1,#faf0ed)}.celebration-page{background:linear-gradient(150deg,#fcf6ee,#f9eef0)}
.eyebrow{font-size:12px;letter-spacing:.19em;line-height:1.7;color:#795565}h2{font-family:var(--serif);font-style:italic;font-size:37px;line-height:1.15;margin:10px 0 22px;color:var(--ink)}.ornament{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px auto;color:var(--gold);width:116px}.ornament span{height:1px;width:36px;background:#b8996f88}.ornament i{font:normal 10px Georgia,serif}.divine-blessing{margin:0 auto 22px}.ganesh-crest{display:block;width:156px;max-width:80%;height:auto;margin:0 auto 5px}.invocation{font-family:InvitationDevanagari,serif;font-size:15px;line-height:1.8;color:#813c45}.compact-blessing{margin-bottom:20px}.compact-blessing .ganesh-crest{width:120px}.compact-blessing .invocation{font-size:14px}
.invitation-copy{max-width:335px}.invitation-copy>.eyebrow{margin-bottom:16px}h1{font-family:var(--serif);line-height:1.05;font-weight:400}h1 span{display:block}.given-name{font-family:var(--serif);font-size:72px;font-style:italic;letter-spacing:-.035em;text-transform:none;line-height:1.01;color:#653343}.name-detail{font-size:20px;line-height:1.4;letter-spacing:.07em;margin-top:5px}.name-detail small{font-size:13px;letter-spacing:.035em}h1 i{display:block;font-family:var(--script);font-size:31px;line-height:1.05;color:#a17671;font-style:normal;margin:12px 0 7px}.family-line{font-size:18px;line-height:1.4;margin-top:25px;color:#684652}.invitation-copy>.ornament{margin:22px auto 0}
.family-copy{max-width:360px}.family-copy h2{font-size:34px;margin-bottom:20px}.family-role{font-size:14px;font-style:italic;color:var(--muted);line-height:1.45}.family-names{font-size:27px;line-height:1.23;margin-top:9px;color:#4e2838}.family-names span{display:block}.family-copy>.ornament{margin:14px auto}.sister-welcome{font-size:14px;font-style:italic;color:var(--muted)}.sister-name{font-size:28px;line-height:1.3;margin-top:2px;color:#4e2838}.couple-illustration{display:block;object-fit:contain;width:260px;max-width:100%;height:265px;margin:16px auto 0}
.save-date-copy{max-width:350px}.save-date-copy h2{font-size:42px;margin-bottom:29px}.wedding-calendar{width:100%;max-width:322px;border-collapse:collapse;table-layout:fixed;margin:0 auto;font-variant-numeric:lining-nums tabular-nums}.wedding-calendar caption{font-size:26px;line-height:1.4;padding-bottom:17px;color:#633847}.wedding-calendar caption span{color:var(--muted);margin-left:7px}.wedding-calendar th{font-weight:400;font-size:13px;letter-spacing:.08em;color:#69725c;height:32px;border-bottom:1px solid #bda98855}.wedding-calendar td{position:relative;height:43px;text-align:center;font-size:18px;line-height:1;padding:0;color:#886d74}.wedding-calendar .wedding-day{color:#fff8ef}.wedding-day time{position:relative;z-index:1;font-size:23px;display:inline-block;transform:translateY(-1px);color:#fff8ef}.wedding-day svg{position:absolute;top:50%;left:50%;width:56px;height:54px;transform:translate(-50%,-50%);overflow:visible;filter:drop-shadow(0 3px 6px #994e6b2b)}.wedding-day svg path{fill:#994e6b;fill-opacity:1;stroke:#78334e;stroke-width:1.7}.date-keepsake{font-size:18px;font-style:italic;color:var(--muted);margin-bottom:10px}
.guest-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 20px;border:1px solid #b899a1;border-radius:3px;background:#fffaf5;color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.4;text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s;box-shadow:0 3px 10px #73485907}.guest-button:hover{background:#f7e7ed;border-color:#85566c}.calendar-actions{max-width:250px;margin:28px auto 0;text-align:center}.calendar-actions summary{list-style:none;display:flex}.calendar-actions summary::-webkit-details-marker{display:none}.calendar-chevron{font:18px Georgia,serif;margin-left:7px;line-height:1;transition:transform .2s}.calendar-actions[open] .calendar-chevron{transform:rotate(180deg)}.calendar-actions[open] summary{border-bottom-left-radius:0;border-bottom-right-radius:0;background:#f7e7ed}.calendar-options{padding:7px 12px 12px;background:#fffaf6;border:1px solid #c7a2b0;border-top:0;border-radius:0 0 3px 3px}.calendar-options a{display:block;padding:10px 0;color:var(--ink);font-size:16px;text-underline-offset:4px;line-height:1.4}.calendar-options a+a{border-top:1px solid #e7d6dd}.calendar-options p{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.celebration-copy{max-width:360px}.celebration-copy h2{font-size:37px;margin:10px 0 27px}.celebration-schedule{border-top:1px solid #bfa18c88;border-bottom:1px solid #bfa18c88;margin:0 auto 24px;padding:20px 0 21px;max-width:310px}.occasion{text-align:center}.occasion h3{font-size:23px;line-height:1.2}.baraat p{font-size:38px;line-height:1.15;margin-top:5px;color:#71364b}.baraat time{font-variant-numeric:lining-nums}.occasion+.occasion{margin-top:19px}.dinner h3{font-size:23px}.dinner p{margin-top:7px;font-size:19px;font-style:italic;color:#795565}.venue-section h3{font-family:var(--serif);font-size:29px;line-height:1.12;margin:8px 0 6px;color:#4f2939}.venue-section>p:not(.eyebrow){font-size:17px;letter-spacing:.025em}.directions-button{margin-top:18px}.closing-message{font-size:17px;font-style:italic;line-height:1.4;margin:16px 0 4px;color:var(--muted)}
.slide-navigation{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-shrink:0;min-height:73px;padding:9px 27px;padding:9px 27px max(9px,env(safe-area-inset-bottom));border-top:1px solid #c6a7b15c;background:#fcf5f2;z-index:26}.nav-arrow{width:42px;height:42px;border:1px solid #c2a0ae;border-radius:50%;background:transparent;font-family:Georgia,serif;font-size:28px;line-height:1}.nav-arrow:disabled{opacity:.3;cursor:default}.slide-progress{text-align:center}.slide-dots{display:flex;justify-content:center;gap:2px}.slide-dots button{width:30px;height:22px;padding:0;border:0;background:transparent;position:relative}.slide-dots button:after{content:'';position:absolute;top:8px;left:11px;width:6px;height:6px;border-radius:50%;background:#d9bbc7;transition:transform .2s,background .2s}.slide-dots button[aria-current]:after{background:#86516a;transform:scale(1.25)}#slide-status{font-size:13px;line-height:1.4;letter-spacing:.015em}.audio-controls{position:fixed;top:10px;right:10px;top:max(10px,env(safe-area-inset-top));right:max(10px,calc((100vw - var(--page-width))/2 + 12px));z-index:27}.music-toggle{display:flex;align-items:center;gap:6px;border:1px solid #b694a180;border-radius:30px;background:#fff7f9f2;padding:8px 11px;font-size:12px;line-height:1.4;box-shadow:0 3px 12px #69415212}.music-toggle[aria-pressed=true]{background:#785367;color:#fff7fa;border-color:#785367}
.petal-shower{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--page-width);height:100vh;height:var(--app-height,100vh);height:100dvh;overflow:hidden;pointer-events:none;z-index:22;contain:layout paint}.flower-petal{position:absolute;top:-45px;left:var(--x);width:var(--size);height:auto;opacity:0;will-change:transform;animation:petal-fall 10s linear var(--delay) infinite}.petal-shower.is-paused .flower-petal{animation-play-state:paused}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--angle))}12%{opacity:.58}80%{opacity:.48}100%{opacity:0;transform:translate3d(var(--drift),calc(100vh + 85px),0) rotate(calc(var(--angle) + 210deg))}}
/* Layered entrances start only after the envelope has fully opened. */
body.is-open .slide.is-current [data-motion-group]{animation:content-arrive 1s cubic-bezier(.2,.55,.25,1) both}body.is-open .slide.is-current [data-motion-group="blessing"]{animation-delay:.05s}body.is-open .slide.is-current [data-motion-group="headline"]{animation-delay:.16s}body.is-open .slide.is-current [data-motion-group="main"]{animation-delay:.32s}body.is-open .slide.is-current [data-motion-group="footer"]{animation-delay:.48s}body.is-open .garden-page.is-current .garden-art{animation:garden-drift 18s ease-in-out infinite alternate}body.is-open .save-date-page.is-current .heart-stroke{animation:heart-draw 1.3s ease .9s both}body.is-open .save-date-page.is-current .wedding-day svg{animation:heart-glow 3s ease-in-out 2.2s infinite}@keyframes content-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes garden-drift{from{transform:scale(1)}to{transform:scale(1.045)}}@keyframes heart-draw{0%{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0}70%{stroke-dasharray:1;stroke-dashoffset:0;fill-opacity:.25}100%{stroke-dasharray:1;stroke-dashoffset:0;fill-opacity:1}}@keyframes heart-glow{0%,100%{filter:drop-shadow(0 2px 5px #994e6b22)}50%{filter:drop-shadow(0 2px 8px #994e6b70)}}
/* Envelope and the two illustrated gate panels */
.opening-stage{position:fixed;top:0;bottom:0;left:50%;width:100%;max-width:var(--page-width);transform:translateX(-50%);z-index:20;overflow:hidden;isolation:isolate;perspective:1400px}.envelope-cover{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;z-index:3;background:#ecd5de;transform-origin:50% 75%;will-change:transform,opacity}.envelope-button{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;overflow:hidden;isolation:isolate;color:#6c4658}.envelope-art{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:filter .6s ease,transform .7s ease}.envelope-heading,.envelope-addressee{position:absolute;left:22px;right:22px;display:flex;flex-direction:column;align-items:center;pointer-events:none}.envelope-heading{top:18%;gap:19px}.envelope-heading .script{font-family:var(--script);font-size:4.4rem;line-height:1.2}.envelope-heading .eyebrow{font-size:.8125rem;letter-spacing:.22em}.envelope-addressee{bottom:11.5%;gap:25px}.envelope-date{font-size:1rem;letter-spacing:.08em;line-height:1.5;margin-top:-18px}.envelope-names{font-size:2.25rem;letter-spacing:.045em;line-height:1.5}.envelope-names i{font-family:var(--script);font-size:2rem;font-style:normal;letter-spacing:0;margin:0 8px}.open-instruction{font-size:.8125rem;letter-spacing:.18em;line-height:1.6;animation:quiet-pulse 3.5s ease-in-out infinite}.seal-halo{position:absolute;top:54.5%;left:50%;width:110px;height:110px;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #fff9ee00;border-radius:50%;pointer-events:none;transition:box-shadow .45s ease,border-color .45s ease}.envelope-button:hover .seal-halo,.envelope-button:focus-visible .seal-halo{border-color:#fffcf5b0;box-shadow:0 0 30px 10px #fff2e46b}.envelope-button:hover .envelope-art{filter:brightness(1.018)}.gate-scene{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;z-index:2;perspective:1300px;transform-style:preserve-3d}.gate-panel{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;will-change:transform,opacity;backface-visibility:hidden}.gate-panel img{position:absolute;top:0;width:200%;height:100%;object-fit:cover;max-width:none}.gate-left{left:0;transform-origin:0 50%}.gate-left img{left:0}.gate-right{right:0;transform-origin:100% 50%}.gate-right img{right:0}.skip-opening{position:absolute;z-index:8;bottom:28px;left:50%;transform:translateX(-50%);font-size:.875rem;letter-spacing:.02em;padding:8px 17px;border:1px solid #ab8e9570;border-radius:25px;background:#fff5f8d9;color:var(--ink)}.is-opening .envelope-cover{animation:envelope-away 1.45s cubic-bezier(.6,.01,.28,1) .22s both}.is-opening .gate-left{animation:gate-left-open 2.35s cubic-bezier(.42,0,.15,1) 1.35s both}.is-opening .gate-right{animation:gate-right-open 2.35s cubic-bezier(.42,0,.15,1) 1.35s both}.is-opening .open-instruction{animation:none}.is-opening .seal-halo{box-shadow:0 0 40px 15px #fff8edc9;border-color:#fffcf5;animation:seal-touch .65s ease both}.is-open .invitation-copy{opacity:1;transform:none}.is-open .garden-art{transform:none}@keyframes envelope-away{0%{transform:translateY(0) scale(1);opacity:1}35%{transform:translateY(5%) scale(.985);opacity:1}100%{transform:translateY(104%) scale(.96);opacity:0}}@keyframes gate-left-open{0%,8%{transform:rotateY(0);opacity:1}82%{opacity:1}100%{transform:rotateY(-104deg);opacity:0}}@keyframes gate-right-open{0%,8%{transform:rotateY(0);opacity:1}82%{opacity:1}100%{transform:rotateY(104deg);opacity:0}}@keyframes garden-arrival{0%,25%{transform:scale(1.075)}100%{transform:scale(1)}}@keyframes words-arrival{0%,48%{opacity:0;transform:translateY(22px)}100%{opacity:1;transform:translateY(0)}}@keyframes quiet-pulse{50%{opacity:.55}}@keyframes seal-touch{100%{opacity:0;transform:translate(-50%,-50%) scale(1.35)}}

.envelope-heading{top:11%;gap:8px}.envelope-ganesh{width:320px;max-width:90%;height:auto;display:block}.envelope-heading .invocation{font-size:1.15rem}.envelope-heading .eyebrow{font-size:.75rem;letter-spacing:.16em;margin-top:3px}.envelope-names{font-family:var(--serif);font-size:2.2rem;letter-spacing:.04em;text-transform:uppercase}.envelope-names i{font-size:1.7rem;text-transform:none;margin:0 4px}.envelope-addressee{bottom:10%;gap:22px}.envelope-date{margin-top:-15px}
/* Responsive scale keeps the copy readable; short screens scroll naturally. */
@media(min-width:800px){.is-slideshow .invitation-shell{margin:18px auto;height:calc(100vh - 36px);height:calc(var(--app-height,100vh) - 36px);height:calc(100dvh - 36px)}.opening-stage{top:18px;bottom:18px}.audio-controls{top:28px}}
@media(max-width:430px){.slide,.is-slideshow .slide{padding-left:34px;padding-right:34px}.given-name{font-size:65px}.name-detail{font-size:18px}.family-copy h2{font-size:31px}.family-names{font-size:25px}.sister-name{font-size:26px}.couple-illustration{height:245px;width:245px}.celebration-copy h2{font-size:33px}.venue-section h3{font-size:27px}.floral-corner{opacity:.72}.envelope-ganesh{width:260px}.envelope-names{font-size:28px}}
@media(max-width:359px){.slide,.is-slideshow .slide{padding-left:27px;padding-right:27px}.given-name{font-size:58px}.name-detail{font-size:17px}.family-names{font-size:23px}.family-copy h2{font-size:28px}.sister-name{font-size:24px}.venue-section h3{font-size:25px}.wedding-day svg{width:46px;height:46px}.wedding-calendar td{height:39px}.celebration-copy h2{font-size:30px}.eyebrow{font-size:11px;letter-spacing:.15em}.envelope-names{font-size:25px}.slide-navigation{padding-inline:20px}}
@media(max-height:760px){.is-slideshow .slide{padding-top:36px;padding-bottom:30px}.divine-blessing{margin-bottom:16px}.ganesh-crest{width:136px}.compact-blessing .ganesh-crest{width:106px}.compact-blessing{margin-bottom:16px}.given-name{font-size:60px}.family-line{margin-top:20px}.family-copy h2{margin-bottom:15px}.couple-illustration{height:215px;margin-top:12px}.celebration-copy h2{margin-bottom:20px}.celebration-schedule{padding:15px 0 16px;margin-bottom:20px}.closing-message{margin-top:18px}.envelope-heading{top:7%}.envelope-ganesh{width:220px}.envelope-addressee{bottom:9%;gap:18px}}
@media(max-height:640px){.is-slideshow .slide{padding-top:32px;padding-bottom:30px}.given-name{font-size:55px}.ganesh-crest{width:120px}.compact-blessing .ganesh-crest{width:96px}.invocation{font-size:13px}.compact-blessing .invocation{font-size:13px}.divine-blessing{margin-bottom:14px}.family-line{font-size:17px;margin-top:18px}.couple-illustration{height:190px}.save-date-copy h2{font-size:35px;margin-bottom:18px}.calendar-actions{margin-top:20px}.envelope-heading .invocation{font-size:16px}.envelope-heading .eyebrow{font-size:11px}.envelope-addressee{bottom:8%;gap:13px}.envelope-names{font-size:25px}.open-instruction{font-size:11px}.slide-navigation{min-height:67px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.petal-shower{display:none!important}}
@media print{.opening-stage,.audio-controls,.slide-navigation,.petal-shower,.calendar-actions,.directions-button{display:none!important}body{overflow:auto!important}.invitation-shell{height:auto!important;margin:0!important;display:block!important;box-shadow:none}main{overflow:visible!important}.slide{display:block!important;height:auto!important;min-height:250mm!important;page-break-after:always}.slide[hidden]{display:block!important}}
/* The family page balances larger lettering with a full couple illustration. */
.family-copy .compact-blessing{margin-bottom:12px}.family-copy .compact-blessing .ganesh-crest{width:106px}.family-copy h2{margin-top:8px;margin-bottom:16px}.family-copy>.ornament{margin-top:9px;margin-bottom:9px}.family-copy .couple-illustration{height:228px;margin-top:12px}
@media(max-width:430px){.family-copy .couple-illustration{height:220px}}
@media(max-height:760px){.family-copy .compact-blessing .ganesh-crest{width:100px}.family-copy .couple-illustration{height:205px}}
@media(max-height:640px){.family-copy .compact-blessing .ganesh-crest{width:96px}.family-copy .couple-illustration{height:190px}}
/* Keep the blessing at the same position on the three detail slides. */
.family-copy,.save-date-copy,.celebration-copy{margin:0 auto}
/* Optional slideshow controls stay inside the existing navigation. */
.slide-controls-row{display:flex;align-items:center;justify-content:center;gap:4px}.slideshow-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid #c2a0ae88;border-radius:50%;background:transparent;color:#795165}.slideshow-toggle .play-shape{fill:currentColor;stroke:none}.slideshow-toggle .pause-shape{stroke:currentColor;stroke-width:2.5}.slideshow-toggle[aria-pressed="false"] .pause-shape,.slideshow-toggle[aria-pressed="true"] .play-shape{display:none}.slideshow-toggle:disabled{opacity:.25;cursor:default}.slide-navigation{min-height:79px}
@media(max-width:359px){.slide-controls-row{gap:0}.slide-dots button{width:27px}.slide-dots button:after{left:10px}.slideshow-toggle{width:44px;height:44px}}

/* Native image alternatives and layouts for older iPhones and small screens. */
picture{display:block}
.envelope-heading picture{width:320px;max-width:90%}
.envelope-heading .envelope-ganesh{width:100%;max-width:100%}
.slide-content,.slide-progress{min-width:0}
.guest-button{max-width:100%}
.is-slideshow .slide{-webkit-overflow-scrolling:touch;scroll-padding-top:12px;padding-top:64px;padding-top:calc(64px + env(safe-area-inset-top,0px))}
.slide-content{overflow-wrap:break-word}
.audio-controls{top:10px;top:calc(10px + env(safe-area-inset-top,0px));right:10px;right:calc(10px + env(safe-area-inset-right,0px))}
.music-toggle,.skip-opening{min-height:44px}
.nav-arrow{width:44px;height:44px}
.slide-navigation{gap:8px;padding-bottom:9px;padding-bottom:calc(9px + env(safe-area-inset-bottom,0px))}
.slide-dots button{height:44px}
.slide-dots button:after{top:19px}
.envelope-heading{top:calc(11% + env(safe-area-inset-top,0px))}
.envelope-addressee{bottom:calc(10% + env(safe-area-inset-bottom,0px))}
@supports(aspect-ratio:1){.seal-halo{width:clamp(82px,24%,155px);height:auto}}
@media(min-width:540px){.audio-controls{right:calc((100vw - var(--page-width))/2 + 12px);right:calc((100vw - var(--page-width))/2 + 12px + env(safe-area-inset-right,0px))}}
@media(min-width:800px) and (min-height:541px){.audio-controls{top:28px;top:calc(28px + env(safe-area-inset-top,0px))}}
@media(max-width:430px){.envelope-heading picture{width:260px}}
@media(max-width:359px){.slide-navigation{padding-left:12px;padding-right:12px;gap:6px}.slide-dots button{width:24px}.slide-dots button:after{left:9px}}
@media(max-height:760px){.envelope-heading{top:calc(7% + env(safe-area-inset-top,0px))}.envelope-heading picture{width:220px}.envelope-addressee{bottom:calc(9% + env(safe-area-inset-bottom,0px))}}
@media(max-height:640px){.envelope-addressee{bottom:calc(8% + env(safe-area-inset-bottom,0px))}}
@media(max-height:540px){.is-slideshow .invitation-shell{margin:0 auto;height:100vh;height:var(--app-height,100vh);height:100dvh}.opening-stage{top:0;bottom:0}.envelope-heading{top:12px;top:calc(12px + env(safe-area-inset-top,0px));gap:5px}.envelope-heading picture{width:116px}.envelope-heading .invocation{font-size:13px}.envelope-heading .eyebrow{font-size:10px}.envelope-addressee{bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:6px}.envelope-names{font-size:20px}.open-instruction{font-size:10px}.seal-halo{width:82px;height:82px}.slide-navigation{min-height:75px;padding-top:5px;padding-bottom:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}}
@media(orientation:landscape){.is-slideshow .slide{padding-left:38px;padding-right:38px;padding-left:calc(38px + env(safe-area-inset-left,0px));padding-right:calc(38px + env(safe-area-inset-right,0px))}}

@media(max-width:359px) and (max-height:540px){.music-toggle{width:44px;justify-content:center;padding:8px}.music-toggle svg{margin:0}#music-label{display:none}}

/* A single entrance, with stable slide height while the gates open. */
body.is-sealed .slide-navigation{visibility:hidden;pointer-events:none}
body.is-sealed .invitation-copy{opacity:0}
.garden-page>picture{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1;pointer-events:none}
.garden-art{z-index:auto}
.sister-name .qualification{display:inline-block;font-size:.65em;white-space:nowrap}
.dinner p[lang="hi"]{font-family:InvitationDevanagari,serif;font-style:normal;font-size:18px;line-height:1.7}
.venue-section h3{max-width:320px;margin-left:auto;margin-right:auto;text-wrap:balance}
@media(max-height:700px) and (orientation:portrait){
 .is-slideshow .slide{padding-top:56px;padding-top:calc(56px + env(safe-area-inset-top,0px));padding-bottom:18px}
 .garden-page .ganesh-crest{width:104px}
 .garden-page .divine-blessing{margin-bottom:10px}
 .invitation-copy>.eyebrow{margin-bottom:9px}
 .given-name{font-size:54px}
 .name-detail{font-size:17px;margin-top:3px}
 h1 i{font-size:26px;margin:7px 0 5px}
 .family-line{font-size:17px;line-height:1.35;margin-top:15px}
 .invitation-copy>.ornament{display:none}
 .family-copy .couple-illustration{height:150px;margin-top:10px}
 .family-copy h2{font-size:29px;margin-bottom:12px}
 .family-copy .compact-blessing{margin-bottom:8px}
 .sister-name{font-size:25px}
 .celebration-copy h2{font-size:31px;margin-bottom:15px}
 .celebration-schedule{padding:12px 0;margin-bottom:16px}
 .occasion+.occasion{margin-top:12px}
 .venue-section h3{font-size:25px}
 .closing-message{margin-top:16px}
}
@media(max-height:600px) and (orientation:portrait){
 .garden-page .ganesh-crest{width:96px}
 .given-name{font-size:51px}
 .family-copy .couple-illustration{height:116px}
 .family-copy .family-names{font-size:23px}
 .family-copy h2{font-size:27px}
 .family-copy .sister-name{font-size:24px}
 .family-copy .compact-blessing .ganesh-crest{width:88px}
}

.garden-page>picture:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 3%,rgba(252,246,238,.38)22%,rgba(252,246,238,.38)78%,transparent 97%)}
body.is-open .garden-page.is-current .garden-art{animation-duration:26s}
@keyframes garden-drift{from{transform:scale(1)}to{transform:scale(1.025)}}
@media(max-height:600px) and (orientation:portrait){
 .family-copy .compact-blessing .ganesh-crest{width:76px}
 .family-copy .compact-blessing{margin-bottom:6px}
 .family-copy h2{margin-bottom:8px}
 .family-copy>.ornament{margin-top:5px;margin-bottom:5px}
 .family-copy .couple-illustration{height:104px}
}
/* Keep the date and venue readable without oversized decorative spacing. */
.save-date-copy .compact-blessing,.celebration-copy .compact-blessing{margin-bottom:14px}
.save-date-copy h2{margin-bottom:22px}
.celebration-copy h2{margin-bottom:14px}
@media(max-height:760px) and (orientation:portrait){
 .save-date-copy>.eyebrow,.celebration-copy>.eyebrow,.venue-section>.eyebrow{display:none}
 .save-date-copy .compact-blessing,.celebration-copy .compact-blessing{margin-bottom:7px}
 .save-date-copy .compact-blessing .ganesh-crest,.celebration-copy .compact-blessing .ganesh-crest{width:84px}
 .save-date-copy h2,.celebration-copy h2{font-size:30px;margin-top:5px;margin-bottom:12px}
 .wedding-calendar caption{font-size:23px;line-height:1.3;padding-bottom:8px}
 .wedding-calendar th{height:27px}
 .wedding-calendar td{height:34px;font-size:17px}
 .wedding-day svg{width:44px;height:42px}
 .wedding-day time{font-size:21px}
 .calendar-actions{margin-top:16px}
 .save-date-copy>.ornament{margin-top:10px;margin-bottom:10px}
 .date-keepsake{font-size:16px;margin-bottom:0}
 .celebration-schedule{padding:9px 0;margin-bottom:12px}
 .occasion h3,.dinner h3{font-size:21px}
 .baraat p{font-size:32px;margin-top:3px}
 .occasion+.occasion{margin-top:9px}
 .dinner p[lang="hi"]{font-size:17px;line-height:1.5;margin-top:5px}
 .venue-section h3{font-size:25px;margin-top:5px;margin-bottom:4px}
 .venue-section>p:not(.eyebrow){font-size:16px}
 .directions-button{margin-top:12px}
 .closing-message{font-size:15px;line-height:1.3;margin-top:12px}
}
@media(max-height:700px) and (orientation:portrait){
 .save-date-copy>.ornament,.save-date-copy>.date-keepsake{display:none}
 .calendar-actions{margin-top:12px}
}
@media(max-height:600px) and (orientation:portrait){
 .save-date-copy .compact-blessing .ganesh-crest,.celebration-copy .compact-blessing .ganesh-crest{width:76px}
 .save-date-copy h2,.celebration-copy h2{font-size:28px;margin-bottom:10px}
 .celebration-copy .closing-message{display:none}
 .venue-section h3{font-size:24px}
 .celebration-schedule{padding:8px 0;margin-bottom:10px}
}
/* This optional contact action has no layout footprint until configured. */
.rsvp-actions{margin-top:10px;text-align:center}
.rsvp-button{min-height:44px;padding:8px 16px;border-color:#c6afb2;background:transparent;font-size:15px}
.rsvp-button:hover{background:#f7e7ed;border-color:#a77489}
@media print{.rsvp-actions{display:none!important}}

/* Clear opening cue and more legible supporting text. */
.open-instruction{font-size:17px;font-weight:600;letter-spacing:.035em;line-height:1.4;color:#543042;background:#fff8f0e8;border:1px solid #b997a5;border-radius:24px;padding:10px 18px;animation:none}
.family-role,.sister-welcome{font-size:16px;color:#654350;line-height:1.4}
.closing-message{font-size:18px;color:#654350;line-height:1.4}
@media(max-height:700px){.family-copy h2{margin-bottom:10px}.family-copy>.ornament{margin:9px auto}.couple-illustration{margin-top:10px}.closing-message{font-size:16px}.open-instruction{font-size:15px;padding:8px 14px}}
@media(max-height:540px){.open-instruction{font-size:14px;padding:6px 12px}}
@media(max-height:600px) and (orientation:portrait){.family-copy .couple-illustration{height:100px;margin-top:6px}}

/* Let the artwork use the remaining space instead of forcing the family slide to scroll. */
.is-slideshow .family-copy{display:flex;flex-direction:column;height:100%;min-height:0}
.is-slideshow .family-copy>*{flex-shrink:0}
.is-slideshow .family-copy>picture:last-child{flex:1 1 228px;min-height:0;margin-top:12px}
.is-slideshow .family-copy .couple-illustration{height:100%;max-height:228px;width:100%;margin:0 auto;object-fit:contain}
.family-copy h2{max-width:340px;margin-left:auto;margin-right:auto;text-wrap:balance}
.family-copy .sister-welcome{max-width:290px;margin-left:auto;margin-right:auto;text-wrap:balance}
@media(max-height:700px){.family-copy h2{font-size:27px}.family-copy .sister-welcome{line-height:1.25}.is-slideshow .family-copy>picture:last-child{margin-top:6px}}
@media(max-height:540px){.is-slideshow .family-copy{height:auto;min-height:100%}.is-slideshow .family-copy>picture:last-child{display:none}}
