@font-face{font-family:Girassol;src:url('assets/fonts/Girassol.ttf') format('truetype');font-display:swap;font-weight:400}@font-face{font-family:'Capitaly Script';src:url('assets/fonts/CapitalyScript.ttf') format('truetype');font-display:swap;font-weight:400}
:root{--paper:#faf6ec;--ink:#573e2c;--red:#a84644;--gold:#ae8849;font-family:Girassol;color:var(--ink);background:var(--paper);scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer;color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{border:0;background:none}a:hover{color:var(--red)}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}p{line-height:1.6}h1,h2,h3,p{margin:0;font-weight:400}h1,h2,h3{line-height:1.2}em{font-style:normal}main{max-width:680px;margin:auto}header{height:54px;max-width:680px;margin:auto;padding:0 18px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:21px;letter-spacing:2px}.brand span{color:var(--gold)}.header-right{display:flex;align-items:center;gap:14px}.bell{width:40px;height:40px;display:grid;place-items:center;border:1px solid #ae884955;border-radius:50%}.bell svg{width:20px;height:20px}.menu-toggle{font-size:14px;min-height:44px}.menu-toggle span{padding-left:5px}.skip{position:fixed;left:10px;top:-100px;z-index:99;background:var(--paper);padding:10px}.skip:focus{top:10px}.hero{position:relative;aspect-ratio:419.25/595.5;isolation:isolate}.cover-art{width:100%;height:100%;display:block;object-fit:contain}.invocations{position:absolute;top:4.87%;left:23.61%;width:54.86%;height:auto}.hero h1{position:absolute;top:31.8%;left:21%;width:47%;display:flex;justify-content:space-between;gap:24%;font:clamp(27px,7.5vw,51px)/1.25 'Capitaly Script';color:#2d6073}.hero h1 span:last-child{color:#a43950}.hero-date{position:absolute;top:41.5%;left:14%;width:72%;text-align:center;font-size:clamp(19px,5.2vw,33px);line-height:1.16}.hero-venue{position:absolute;top:53.3%;left:15%;width:70%;text-align:center;font-size:clamp(20px,5.2vw,33px);line-height:1.18}.invitation-copy{text-align:center;padding:30px 20px 34px;background:linear-gradient(#faf6ec,#f7f1e5,#faf6ec)}.invitation-copy p{font-size:clamp(16px,4.25vw,21px);margin-bottom:15px}.invitation-copy h2{font:36px/1.4 'Capitaly Script';color:#ad4257;margin:5px 0}.invitation-copy .weds{margin:15px 0 2px}.river-journey{position:relative;overflow:hidden}.programme{position:relative;aspect-ratio:419.25/595.5;scroll-margin-top:12px}.programme-art{width:100%;height:100%;object-fit:contain;display:block}.programme-date{position:absolute;top:17%;left:24%;width:49%;text-align:center;font:clamp(23px,6.1vw,37px)/1.18 'Capitaly Script';color:#725333}.programme-date sup{font-size:50%;vertical-align:super}.programme-date span{display:block;font-size:.83em}.events{position:absolute;top:29.2%;left:19%;width:66%;height:37%;display:flex;flex-direction:column;justify-content:space-around;text-align:center}.event{font-size:clamp(16px,4.4vw,27px);line-height:1.3;scroll-margin-top:40px;color:var(--red)}.event-time{color:var(--ink);white-space:nowrap}.day-26 .programme-date{top:18.4%}.day-26 .events{top:31%;height:36%;left:20%;width:65%}.river-strip{position:absolute;top:0;bottom:0;left:-8px;width:75px;background:url('assets/river-vector.svg') 0 0/75px 1100px repeat-y;z-index:2;pointer-events:none;opacity:.8}.travelling-lotus{position:absolute;z-index:4;width:38px;height:38px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 4px 3px #2b585955)}.flower{width:38px;height:38px;background:url('assets/vector-atlas.png') 100% 100%/300% 300% no-repeat}
.temple-journey{height:265svh;position:relative}.temple-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#202521}.temple-exterior{position:absolute;inset:0;overflow:hidden;background:var(--paper) url('assets/kailash-ganga.webp') center/cover}.temple-exterior:before{content:'';position:absolute;inset:0;background:#faf6ecbf}.temple-exterior img{position:absolute;bottom:0;left:-22.5%;width:145%;height:72%;object-fit:contain;object-position:center bottom;transform-origin:50% 70%;will-change:transform}.temple-intro{position:absolute;z-index:3;top:8%;left:4%;right:4%;text-align:center}.eyebrow{font-size:15px;letter-spacing:.025em}.temple-intro h2{font-size:clamp(34px,8vw,47px);margin:18px 0 22px}.temple-intro h2 em{font-family:Girassol}.primary,.outline{font-size:15px;padding:13px 23px;background:#294b50;color:#fff4df;border:1px solid #294b50;min-height:44px}.temple-interior{position:absolute;inset:0;opacity:0;pointer-events:none;will-change:filter,transform}.temple-interior img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}.interior-cue{position:absolute;z-index:6;left:50%;bottom:5%;transform:translateX(-50%);padding:13px 18px;white-space:nowrap;background:#202521e8;color:#fff1d8;border:1px solid #d5bd87;opacity:0;font-size:15px;min-height:44px}.temple-details{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff1d8;padding:30px 20px;opacity:0;visibility:hidden;overflow-y:auto}.temple-details h2{font-size:clamp(36px,8vw,52px);line-height:1.25;margin:12px 0}.gold-rule{height:1px;width:65px;background:#cbb17c;margin:20px auto}.temple-details .date{font-size:28px;margin:5px 0}.temple-details p{font-size:21px}.temple-replay{color:#ead8ba;font-size:14px;margin-top:25px}.text-link{text-decoration:underline;text-underline-offset:5px;display:inline-block;padding:10px 3px;font-size:15px;min-height:44px}.closing{position:relative;isolation:isolate;background:#faf6ec;text-align:center;padding:0 0 35px}.closing:before{content:'';position:sticky;top:0;height:100svh;display:block;margin-bottom:-100svh;z-index:-2;background:#faf6ec url('assets/pushkar-watercolor.png') center bottom/auto 100% no-repeat}.family-wash{position:absolute;inset:0;z-index:-1;background:#faf6ecbb}.family-content{padding:45px 24px 55px}.family-content section{margin-bottom:24px}.family-content h2{font:27px/1.4 'Capitaly Script';color:#356075;margin-bottom:10px}.family-content .roman{font:21px/1.3 Girassol}.family-content p{font-size:17px;line-height:1.65;overflow-wrap:anywhere;color:#763c2f}.family-pair{display:grid;gap:22px;grid-template-columns:1fr}.family-pair section{margin-bottom:4px}.family-pair{margin-bottom:28px}.family-content .contact-block{margin-top:32px;padding-top:25px;border-top:1px solid #ae884955}.contact-block a{display:inline-block;min-height:35px}.back-top{display:inline-block;min-height:44px;padding:12px 0;font-size:14px}footer{max-width:680px;margin:auto;border-top:1px solid #ae88494d;padding:20px;display:flex;justify-content:space-between;font-size:14px;gap:15px}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:30}.reading-progress i{display:block;height:100%;background:var(--gold)}dialog{border:1px solid #ae884955;background:var(--paper);color:var(--ink);padding:24px;width:min(480px,92vw);max-height:85svh}dialog::backdrop{background:#173a4099;backdrop-filter:blur(5px)}.menu-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px}.menu-close{min-width:44px;min-height:44px;font-size:24px}dialog nav{display:flex;flex-direction:column}dialog nav a{padding:17px 0;border-top:1px solid #ae884940;font-size:19px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#294b50;color:#fff4df;padding:13px 18px;z-index:40;opacity:0;pointer-events:none;text-align:center;max-width:90vw;width:max-content;font-size:15px}.toast.visible{opacity:1}.bell.ringing svg{animation:ring .8s}@keyframes ring{25%,75%{transform:rotate(18deg)}50%{transform:rotate(-18deg)}}
@media(min-width:550px){.family-pair{grid-template-columns:1fr 1fr;gap:24px}.family-content p{font-size:19px}.family-content{padding-left:38px;padding-right:38px}.river-strip{width:100px;background-size:100px 1100px;left:-8px}.travelling-lotus,.flower{width:46px;height:46px}.hero h1{font-size:48px}}
@media(max-width:360px){.events{left:17%;width:69%}.event{font-size:16px}.family-content{padding-left:19px;padding-right:19px}.invitation-copy{padding-left:14px;padding-right:14px}.hero h1{font-size:26px}.family-content h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Open river layout: no printed invitation page backgrounds. */
.hero{aspect-ratio:auto;min-height:440px;padding:44px 22px 40px 72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;text-align:center}
.invocations{position:static;width:min(100%,310px);height:auto}
.hero h1{position:static;width:auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:10px;font-size:clamp(32px,8vw,48px)}
.hero h1 .name-and{font-family:Girassol;font-size:.65em;color:var(--gold)}
.hero-date,.hero-venue{position:static;width:auto;font-size:clamp(22px,5.2vw,33px)}
.invitation-copy{background:none;padding-left:72px;padding-right:22px}
.programme{aspect-ratio:auto;min-height:550px;padding:46px 20px 52px 72px}
.programme-date,.day-26 .programme-date{position:static;width:auto;font-size:clamp(29px,6.1vw,37px);margin-bottom:32px}
.events,.day-26 .events{position:static;width:auto;height:auto;gap:28px}
.event{font-size:clamp(17px,4.4vw,27px);line-height:1.5}
@media(min-width:550px){.hero,.invitation-copy,.programme{padding-left:110px;padding-right:32px}}

/* Supplied portrait artwork: preserve the complete frame and embedded typography. */
.artwork-sequence{background:#fff}.artwork-page{position:relative;margin:0;padding:0;line-height:0;scroll-margin-top:0}.artwork-page>img{display:block;width:100%;height:auto;aspect-ratio:9/16}.page-anchor{position:absolute;left:0;width:1px;height:1px;pointer-events:none}

/* The river artwork is a backdrop; a single independent lotus follows scroll. */
.artwork-sequence{position:relative}
.scroll-lotus{position:absolute;width:clamp(58px,18%,110px);aspect-ratio:1;z-index:4;pointer-events:none;opacity:0;transform:translate(-50%,-50%);will-change:top,left;filter:drop-shadow(0 5px 5px #315c6633)}
.scroll-lotus .flower{width:100%;height:100%;background-image:url('assets/vector-atlas.png');background-size:300% 300%;background-position:100% 100%}
.river-current{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.river-current path{fill:none;stroke:#effffa;stroke-width:2;stroke-linecap:round;stroke-dasharray:22 80;opacity:.28;animation:ganga-current 8s linear infinite}
@keyframes ganga-current{to{stroke-dashoffset:-204}}
@media(prefers-reduced-motion:reduce){.river-current path{animation:none}.scroll-lotus{display:none}}

/* Match river endpoints and blend the illustrated page boundaries. */
#day-25>img,#evening-25>img,#day-26>img{mask-image:linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent)}
.river-connected .river-join path{fill:none;opacity:1;stroke-dasharray:none;animation:none;stroke-linecap:butt}
.river-connected .water-highlight{stroke:#effffa;stroke-width:2}
.temple-details{isolation:isolate;padding-left:18%;padding-right:18%}
.phera-frame{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:fill;pointer-events:none}
.temple-details h2{font-size:clamp(28px,7vw,46px)}
.temple-details .date{font-size:clamp(24px,6vw,28px)}
.temple-details p{font-size:clamp(17px,4.8vw,21px)}

/* Isolate the blossom from the adjacent sprite; preserve its scroll path. */
.scroll-lotus .flower{clip-path:inset(0 0 0 8.5%)}
/* The supplied white wash bridges the artwork and the temple scene. */
.temple-transition{position:absolute;left:-10%;top:-100px;width:120%;height:155px;z-index:7;pointer-events:none;object-fit:fill}
main{overflow-x:clip}
.temple-exterior{background-color:#fff}
.temple-exterior:after{content:'';position:absolute;inset:0 0 auto;height:110px;background:linear-gradient(#fff,transparent);pointer-events:none}
.family-wash{background:linear-gradient(#faf6ec88,#faf6ec66 70%,#faf6ec99)}
.family-content{position:relative;text-shadow:0 1px 5px #fff,0 0 12px #faf6ec}
.family-content section{background:#fff9ef33;border-radius:16px;padding:6px 4px}
.family-pair{grid-template-columns:1fr}
.closing{padding-bottom:0}
.closing-shiv-shakti{width:100%;aspect-ratio:1152/650;background:url('assets/family-reference.png') center bottom/100% auto no-repeat;mask-image:linear-gradient(transparent,#000 14%);-webkit-mask-image:linear-gradient(transparent,#000 14%)}
