:root {
    --ink: #2d1720;
    --wine: #7b2537;
    --gold: #d9a844;
    --ivory: #fff9ed;
    --green: #315b4b;
    --teal: #0d5560;
    --scene-progress: 0;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #191319; }
body.tsw-body { margin: 0; overflow-x: hidden; color: var(--ink); background: #191319; font-family: "DM Sans", sans-serif; letter-spacing: 0; }
body.tsw-body.admin-bar { margin-top: -32px; }
body.tsw-body.admin-bar #wpadminbar { display: none; }
.tsw-body img, .tsw-body video { display: block; max-width: 100%; }
.tsw-body h1, .tsw-body h2, .tsw-body h3, .tsw-body p { margin-top: 0; }
.tsw-body button, .tsw-body input, .tsw-body select, .tsw-body textarea { font: inherit; }
.tsw-body a:focus-visible, .tsw-body button:focus-visible, .tsw-body input:focus-visible, .tsw-body select:focus-visible, .tsw-body textarea:focus-visible { outline: 2px solid #ffd477; outline-offset: 3px; }
.story-world { position: relative; overflow: clip; }
.tracked-section { --scene-progress: 0; position: relative; }
.sticky-scene { position: sticky; top: 0; width: 100%; height: 100svh; min-height: 620px; overflow: hidden; isolation: isolate; }
.scene-video, .scene-photo { position: absolute; inset: 0; z-index: -6; width: 100%; height: 100%; object-fit: cover; }
.eyebrow, .chapter-label { margin-bottom: 14px; font: 600 12px/1.4 "DM Sans", sans-serif; letter-spacing: 0; text-transform: uppercase; }
.reveal { opacity: 0; transform: translateY(38px); transition: opacity 1s ease, transform 1.2s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.tsw-progress { position: fixed; z-index: 100; top: 0; right: 0; width: 3px; height: 100%; background: rgba(255,255,255,.12); pointer-events: none; }
.tsw-progress span { display: block; width: 100%; height: 0; background: #ffd477; box-shadow: 0 0 12px #ffd477; }
.story-dots { position: fixed; z-index: 90; top: 50%; right: 18px; display: grid; gap: 12px; transform: translateY(-50%); }
.story-dots a { display: grid; place-items: center; width: 18px; height: 18px; }
.story-dots span { display: block; width: 5px; height: 5px; border: 1px solid #fff6d6; border-radius: 50%; background: transparent; box-shadow: 0 1px 6px rgba(0,0,0,.45); transition: .3s; }
.story-dots a.is-active span { width: 11px; height: 11px; background: #ffd477; border-color: #ffd477; }
.petal-sky { position: fixed; z-index: 70; inset: 0; overflow: hidden; pointer-events: none; }
.petal-sky i { position: absolute; top: -6vh; left: var(--x); width: var(--size); height: calc(var(--size) * .65); border-radius: 80% 10% 80% 10%; background: linear-gradient(135deg,#ffbdc6,#a62c4f 72%); opacity: .72; animation: petalFall var(--duration) linear var(--delay) infinite; }
@keyframes petalFall { to { transform: translate3d(var(--drift),112vh,0) rotate(680deg); } }

/* Banaras opening */
.cinema-hero { --hero-intro:1; --hero-rise:0; --hero-threshold:0; --hero-blessing:0; --hero-invite:0; --hero-finale:0; height: 410vh; background: #193a50; }
.cinema-hero .scene-video { filter: saturate(.92) contrast(1.06); transform: scale(1.08); }
.hero-wash { position: absolute; z-index: -5; inset: 0; background: linear-gradient(180deg,rgba(18,41,59,.2),rgba(32,22,27,.06) 42%,rgba(19,35,49,.66)),rgba(29,22,30,calc(var(--hero-invite)*.34)); }
.hero-sun-disc { position:absolute; z-index:0; top:14%; right:16%; width:clamp(110px,15vw,220px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,#ffe29a 0 23%,#e88f51 54%,rgba(216,101,72,.08) 70%); box-shadow:0 0 70px rgba(255,191,105,.46); opacity:calc(.28 + var(--hero-rise)*.62); transform:translate3d(calc(var(--hero-rise)*-7vw),calc(var(--hero-rise)*9vh),0) scale(calc(.72 + var(--hero-rise)*.28)); }
.hero-ghat-crown { position:absolute; z-index:2; left:-3%; right:-3%; bottom:19vh; height:34vh; opacity:var(--hero-rise); transform:translate3d(0,calc((1 - var(--hero-rise))*24vh),0); }
.hero-ghat-crown i { position:absolute; bottom:0; left:calc(var(--n)*11.5%); width:15%; height:calc(48% + var(--h)*7%); background:linear-gradient(90deg,#572d28,#9b5d44 45%,#68382e); clip-path:polygon(0 28%,12% 28%,12% 9%,30% 9%,30% 20%,44% 20%,44% 0,60% 0,60% 16%,76% 16%,76% 6%,90% 6%,90% 28%,100% 28%,100% 100%,0 100%); box-shadow:0 -8px 18px rgba(25,12,19,.15); }
.hero-ghat-crown i:nth-child(1){--n:0;--h:1}.hero-ghat-crown i:nth-child(2){--n:1;--h:3}.hero-ghat-crown i:nth-child(3){--n:2;--h:0}.hero-ghat-crown i:nth-child(4){--n:3;--h:4}.hero-ghat-crown i:nth-child(5){--n:4;--h:2}.hero-ghat-crown i:nth-child(6){--n:5;--h:5}.hero-ghat-crown i:nth-child(7){--n:6;--h:1}.hero-ghat-crown i:nth-child(8){--n:7;--h:3}.hero-ghat-crown i:nth-child(9){--n:8;--h:0}
.pichwai-canopy { position: absolute; z-index: 12; top: -2vh; left: -2%; width: 104%; height: 33vh; object-fit: cover; object-position: top; mix-blend-mode: multiply; filter: saturate(1.12) drop-shadow(0 8px 12px rgba(13,32,23,.22)); }
.hero-pavilion { position: absolute; z-index: 7; bottom: -1vh; width: 37vw; height: 74vh; object-fit: cover; mix-blend-mode: multiply; filter: saturate(1.15) drop-shadow(0 20px 24px rgba(0,0,0,.22)); }
.pavilion-left { left: -4vw; object-position: left bottom; transform: translate3d(calc(var(--scene-progress) * -12vw),calc(var(--scene-progress) * 7vh),0); }
.pavilion-right { right: -4vw; object-position: right bottom; transform: translate3d(calc(var(--scene-progress) * 12vw),calc(var(--scene-progress) * 7vh),0); }
.hanging-lamps { position: absolute; z-index: 15; top: 0; left: 10%; right: 10%; display: flex; justify-content: space-between; }
.hanging-lamps i { position: relative; width: 2px; height: 12vh; background: #8a5a29; transform-origin: top; animation: lampSway 4s ease-in-out infinite alternate; }
.hanging-lamps i::after { content: ""; position: absolute; left: 50%; bottom: -15px; width: 18px; height: 24px; border-radius: 50% 50% 42% 42%; background: radial-gradient(circle at 50% 58%,#fff7ba 0 15%,#d78823 17% 46%,#5c2b1d 49%); box-shadow: 0 0 24px #ffd765; transform: translateX(-50%); }
.hanging-lamps i:nth-child(2n) { height: 17vh; animation-delay: -1.3s; }
.hanging-lamps i:nth-child(3n) { height: 9vh; animation-delay: -2.2s; }
@keyframes lampSway { to { transform: rotate(2.2deg); } }
.hero-title { position: absolute; z-index: 20; top: 20%; left: 50%; width: min(700px,64vw); color: #fff8e8; text-align: center; text-shadow: 0 3px 22px rgba(12,23,34,.65); opacity:var(--hero-intro); transform:translate3d(-50%,calc((1 - var(--hero-intro))*-11vh),0) scale(calc(.94 + var(--hero-intro)*.06)); transition:none; }
.hero-title.is-visible { opacity:var(--hero-intro); transform:translate3d(-50%,calc((1 - var(--hero-intro))*-11vh),0) scale(calc(.94 + var(--hero-intro)*.06)); }
.hero-title h1 { margin: 0; font: 400 94px/.75 "Italiana", serif; }
.hero-title h1 span { display: block; }
.hero-title h1 i { display: block; margin: 12px 0 16px; color: #ffd477; font: italic 30px/1 "Marcellus", serif; }
.hero-line { margin: 28px auto 24px; font: 400 18px/1.7 "Marcellus", serif; }
.date-ribbon { display: inline-flex; align-items: center; gap: 18px; padding: 9px 15px; border-top: 1px solid rgba(255,238,189,.72); border-bottom: 1px solid rgba(255,238,189,.72); }
.date-ribbon span { color: #ffd477; font: 400 26px/1 "Italiana",serif; }
.date-ribbon b { font: 500 11px/1 "DM Sans",sans-serif; text-transform: uppercase; }
.river-foreground { position: absolute; z-index: 9; left: 0; right: 0; bottom: 0; height: 25vh; overflow: hidden; background: linear-gradient(180deg,rgba(25,102,123,.1),#164e62 70%); }
.river-foreground i { position: absolute; left: -10%; width: 120%; height: 35%; border: 1px solid rgba(208,244,244,.3); border-radius: 50%; animation: waterMove 5s ease-in-out infinite alternate; }
.river-foreground i:nth-child(2) { top: 30%; animation-delay: -2s; }
.river-foreground i:nth-child(3) { top: 60%; animation-delay: -3s; }
@keyframes waterMove { to { transform: translateX(5%) scaleY(1.25); } }
.hero-boat, .journey-boat { position: absolute; z-index: 18; bottom: 13vh; width: 150px; height: 35px; border-radius: 0 0 70% 70%; background: #572d21; box-shadow: 0 10px 18px rgba(0,0,0,.35); }
.hero-boat { left: 12%; animation: boatDrift 8s ease-in-out infinite alternate; }
.hero-boat::before, .journey-boat::before { content: ""; position: absolute; left: 18px; bottom: 31px; width: 2px; height: 68px; background: #5b3728; transform: rotate(-5deg); }
.hero-boat span, .journey-boat span { position: absolute; left: 20px; bottom: 34px; width: 74px; height: 54px; clip-path: polygon(0 0,100% 42%,12% 100%); background: #ddac46; }
@keyframes boatDrift { to { transform: translate(40px,-6px) rotate(1deg); } }
.begin-story { position: absolute; z-index: 24; bottom: 3vh; left: 50%; color: #fff4d6; font-size: 11px; text-decoration: none; text-transform: uppercase; transform: translateX(-50%); }
.begin-story span { display: block; margin-top: 5px; color: #ffd477; font-size: 20px; animation: cue 1.5s ease-in-out infinite; }
@keyframes cue { 50% { transform: translateY(7px); } }

/* Deep-scroll ceremonial overture */
.hero-threshold { position:absolute; z-index:11; left:50%; bottom:-2vh; width:min(920px,82vw); height:91vh; opacity:var(--hero-threshold); transform:translate3d(-50%,calc((1 - var(--hero-rise))*48vh - var(--hero-invite)*14vh),0) scale(calc(.86 + var(--hero-rise)*.14)); transform-origin:center bottom; }
.threshold-column { position:absolute; bottom:0; width:8.5%; min-width:58px; height:66%; border:7px solid #9a3f3e; border-bottom:0; background:repeating-linear-gradient(0deg,#e7af5c 0 26px,#f7d78f 27px 36px,#87333b 37px 44px); box-shadow:inset 0 0 0 5px #f8d58e,0 12px 25px rgba(41,19,25,.32); }
.threshold-column::before,.threshold-column::after { content:""; position:absolute; left:-18%; width:136%; height:32px; border:5px solid #8d3439; background:#eab15f; }
.threshold-column::before{top:-25px}.threshold-column::after{bottom:4%}.threshold-column.left{left:4%}.threshold-column.right{right:4%}
.threshold-arch { position:absolute; left:12%; right:12%; top:8%; height:68%; border:16px double #e8b55b; border-bottom:0; border-radius:50% 50% 0 0 / 34% 34% 0 0; box-shadow:inset 0 0 0 6px #8a3440,0 -8px 30px rgba(48,20,27,.2); }
.threshold-arch::before { content:""; position:absolute; inset:9% 7% 0; border:5px solid rgba(255,225,157,.9); border-bottom:0; border-radius:50% 50% 0 0 / 34% 34% 0 0; }
.threshold-crown { position:absolute; z-index:2; top:0; left:17%; right:17%; height:20%; display:flex; align-items:flex-end; justify-content:space-around; }
.threshold-crown i { width:10%; height:calc(38% + var(--n)*7%); background:linear-gradient(90deg,#8c3340,#edb45e 50%,#8c3340); clip-path:polygon(42% 0,58% 0,66% 18%,78% 18%,83% 55%,100% 55%,100% 100%,0 100%,0 55%,17% 55%,22% 18%,34% 18%); }
.threshold-crown i:nth-child(1){--n:0}.threshold-crown i:nth-child(2){--n:2}.threshold-crown i:nth-child(3){--n:4}.threshold-crown i:nth-child(4){--n:6}.threshold-crown i:nth-child(5){--n:4}.threshold-crown i:nth-child(6){--n:2}.threshold-crown i:nth-child(7){--n:0}
.threshold-bells { position:absolute; z-index:4; top:22%; left:25%; right:25%; display:flex; justify-content:space-between; }
.threshold-bells i { position:relative; width:2px; height:clamp(45px,8vh,82px); background:#8d562c; transform-origin:top; animation:lampSway 3.6s ease-in-out infinite alternate; }
.threshold-bells i::after { content:""; position:absolute; bottom:-13px; left:50%; width:20px; height:19px; border-radius:55% 55% 35% 35%; background:linear-gradient(90deg,#8f5025,#ffd67d,#9b5727); box-shadow:0 0 15px rgba(255,204,105,.72); transform:translateX(-50%); }
.threshold-bells i:nth-child(2n){height:11vh;animation-delay:-1.4s}.threshold-bells i:nth-child(3){height:13vh;animation-delay:-2.2s}
.threshold-medallion { position:absolute; z-index:5; top:13%; left:50%; display:grid; place-items:center; width:78px; aspect-ratio:1; color:#702d38; border:4px double #84343e; border-radius:50%; background:radial-gradient(circle,#ffe4a7 0 35%,#dba047 36% 48%,#f6d48e 49% 65%,#8a3440 66% 69%,#edbd6d 70%); font:600 12px/1 "Marcellus",serif; transform:translateX(-50%); }
.hero-blessing { position:absolute; z-index:17; top:31%; left:50%; width:min(590px,72vw); color:#fff4d9; text-align:center; text-shadow:0 3px 20px rgba(31,15,21,.52); opacity:var(--hero-blessing); transform:translate3d(-50%,calc((1 - var(--hero-rise))*12vh - var(--hero-invite)*8vh),0); }
.hero-blessing span { display:block; margin-bottom:15px; font:600 11px/1.4 "DM Sans",sans-serif; text-transform:uppercase; }
.hero-blessing b { display:block; font:400 clamp(48px,6vw,82px)/.9 "Italiana",serif; }
.hero-blessing i { display:block; width:80px; height:1px; margin:26px auto 0; background:#ffd477; box-shadow:28px 0 #ffd477,-28px 0 #ffd477; }
.hero-invite-plane { position:absolute; z-index:22; top:23%; left:50%; display:flex; flex-direction:column; justify-content:center; width:min(760px,66vw); min-height:66vh; padding:clamp(58px,9vh,92px) clamp(40px,7vw,88px) 50px; color:#fff1cf; text-align:center; background-color:#25665e; background-image:radial-gradient(circle at 20% 25%,rgba(255,220,153,.12) 0 2px,transparent 3px),radial-gradient(circle at 80% 72%,rgba(255,220,153,.11) 0 2px,transparent 3px); background-size:34px 34px,29px 29px; border:1px solid rgba(255,225,164,.78); box-shadow:0 30px 80px rgba(24,14,25,.38),inset 0 0 0 9px rgba(255,232,176,.09); clip-path:polygon(12% 0,88% 0,100% 100%,0 100%); opacity:var(--hero-invite); transform:translate3d(-50%,calc((1 - var(--hero-invite))*54vh - var(--hero-finale)*4vh),0) scale(calc(.92 + var(--hero-invite)*.08)); }
.hero-invite-plane::before { content:""; position:absolute; top:19px; left:15%; right:15%; height:8px; background:repeating-linear-gradient(90deg,#e5b25a 0 18px,#8c3340 19px 34px); }
.hero-invite-plane h2 { margin:0 0 22px; font:400 clamp(52px,6vw,82px)/.9 "Italiana",serif; }
.hero-invite-plane>p:not(.eyebrow) { max-width:510px; margin:0 auto; font:400 16px/1.7 "Marcellus",serif; }
.hero-invite-date { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:34px; padding-top:22px; border-top:1px solid rgba(255,226,169,.55); }
.hero-invite-date span { font:400 42px/1 "Italiana",serif; }.hero-invite-date b{font:600 10px/1.4 "DM Sans",sans-serif;text-transform:uppercase}
.hero-diyas i { position:absolute; z-index:24; bottom:calc(7vh + var(--n)*1.2vh); left:calc(9% + var(--n)*13%); width:25px; height:10px; border-radius:50%; background:#a84d27; box-shadow:0 5px 12px rgba(15,23,31,.35); opacity:var(--hero-invite); transform:translateY(calc((1 - var(--hero-invite))*12vh)); }
.hero-diyas i::after { content:""; position:absolute; left:9px; bottom:8px; width:7px; height:16px; border-radius:85% 15% 70% 30%; background:#ffd875; box-shadow:0 0 18px #ffc95c; }
.hero-diyas i:nth-child(1){--n:0}.hero-diyas i:nth-child(2){--n:1}.hero-diyas i:nth-child(3){--n:2}.hero-diyas i:nth-child(4){--n:3}.hero-diyas i:nth-child(5){--n:4}.hero-diyas i:nth-child(6){--n:5}.hero-diyas i:nth-child(7){--n:6}
.hero-lotus-field i { position:absolute; z-index:19; bottom:calc(5vh + var(--n)*2.5vh); left:calc(14% + var(--n)*17%); width:32px; height:17px; border-radius:50% 5% 50% 5%; background:#e7a9a8; opacity:var(--hero-invite); transform:rotate(calc(-18deg + var(--n)*9deg)) scale(calc(.7 + var(--n)*.06)); }
.hero-lotus-field i::after { content:""; position:absolute; left:12px; top:-10px; width:17px; height:18px; border-radius:50% 5% 50% 5%; background:#f6c0bd; transform:rotate(35deg); }
.hero-lotus-field i:nth-child(1){--n:0}.hero-lotus-field i:nth-child(2){--n:1}.hero-lotus-field i:nth-child(3){--n:2}.hero-lotus-field i:nth-child(4){--n:3}.hero-lotus-field i:nth-child(5){--n:4}
.hero-boat { left:calc(7% + var(--scene-progress)*62%); animation:none; transform:translateY(calc(var(--hero-rise)*-5px)) scale(calc(.76 + var(--hero-rise)*.18)); }
.begin-story { opacity:var(--hero-finale); transform:translate3d(-50%,calc((1 - var(--hero-finale))*18px),0); transition:opacity .2s linear; }

/* Ganga chapter */
.river-journey { height: 230vh; margin-top: -8vh; background: #153646; }
.river-film { transform: scale(1.12); filter: saturate(1.05) contrast(1.05); }
.river-grade { position: absolute; z-index: -4; inset: 0; background: linear-gradient(90deg,rgba(45,16,18,.82),rgba(35,24,30,.24) 45%,rgba(13,52,68,.08)),linear-gradient(0deg,rgba(13,53,71,.74),transparent 50%); }
.ghat-silhouette { position: absolute; z-index: 1; left: 0; right: 0; bottom: 20vh; height: 24vh; opacity: .84; transform: translateY(calc(var(--scene-progress) * 8vh)); }
.ghat-silhouette i { position: absolute; bottom: 0; width: 18%; height: 62%; background: #4d271f; clip-path: polygon(0 35%,12% 35%,12% 12%,24% 12%,24% 26%,38% 26%,38% 0,51% 0,51% 20%,67% 20%,67% 8%,79% 8%,79% 35%,100% 35%,100% 100%,0 100%); }
.ghat-silhouette i:nth-child(1) { left: -2%; height: 70%; }
.ghat-silhouette i:nth-child(2) { left: 15%; transform: scaleX(-1); }
.ghat-silhouette i:nth-child(3) { left: 32%; height: 92%; }
.ghat-silhouette i:nth-child(4) { left: 49%; transform: scaleX(-1); }
.ghat-silhouette i:nth-child(5) { left: 66%; height: 80%; }
.ghat-silhouette i:nth-child(6) { left: 83%; transform: scaleX(-1); }
.story-copy { position: absolute; z-index: 12; width: 430px; color: #fff5df; text-shadow: 0 3px 20px rgba(0,0,0,.45); }
.story-copy h2 { margin-bottom: 20px; font: 400 92px/.9 "Italiana",serif; }
.story-copy p:last-child { font: 400 18px/1.7 "Marcellus",serif; }
.banaras-copy { top: 19%; left: 10%; }
.silk-banner, .coast-banner { position: absolute; z-index: 13; right: 8%; bottom: 19%; width: 320px; padding: 20px 24px; color: #401c21; background: #edbd78; box-shadow: 10px 12px 0 rgba(101,32,47,.6); transform: rotate(-2deg); }
.silk-banner span, .coast-banner span { display: block; margin-bottom: 7px; font: 400 25px/1 "Italiana",serif; }
.silk-banner b, .coast-banner b { font-size: 10px; text-transform: uppercase; }
.floating-diyas i { position: absolute; z-index: 9; bottom: calc(5vh + var(--n,0) * 1vh); left: calc(8% + var(--n,0) * 11%); width: 22px; height: 9px; border-radius: 50%; background: #b55325; box-shadow: 0 4px 12px rgba(0,0,0,.25); animation: diyaFloat 5s ease-in-out infinite alternate; }
.floating-diyas i::after { content: ""; position: absolute; left: 8px; bottom: 7px; width: 7px; height: 15px; border-radius: 90% 10% 70% 30%; background: #ffd25c; box-shadow: 0 0 16px #ffca42; }
.floating-diyas i:nth-child(2) { --n:1; animation-delay:-1s; }.floating-diyas i:nth-child(3) { --n:2; animation-delay:-3s; }.floating-diyas i:nth-child(4) { --n:3; }.floating-diyas i:nth-child(5) { --n:4; animation-delay:-2s; }.floating-diyas i:nth-child(6) { --n:5; }.floating-diyas i:nth-child(7) { --n:6; animation-delay:-1.5s; }.floating-diyas i:nth-child(8) { --n:7; animation-delay:-4s; }
@keyframes diyaFloat { to { transform: translate(22px,-7px) rotate(3deg); } }
.journey-boat { left: calc(12% + var(--scene-progress) * 58%); bottom: 12vh; transform: scale(.82); }
.journey-boat b { position: absolute; top: 45px; left: 30px; color: #fce5b1; font: 400 15px/1 "Italiana",serif; }
.river-mist { position: absolute; z-index: 10; left: -10%; right: -10%; bottom: -8vh; height: 30vh; background: rgba(234,238,226,.42); filter: blur(30px); }

/* Illustrated passage */
.garden-passage { height: 200vh; background: #e9efe0; }
.paper-sky { position: absolute; inset: 0; background-color:#e7eddf; background-image: radial-gradient(circle at 20% 20%,rgba(255,255,255,.65),transparent 30%),radial-gradient(circle at 80% 70%,rgba(185,209,179,.8),transparent 35%); }
.garden-canopy { position: absolute; z-index: 6; top: -1%; left: -2%; width: 104%; height: 38vh; object-fit: cover; mix-blend-mode: multiply; }
.garden-left, .garden-right { position: absolute; z-index: 7; bottom: 7vh; width: 36vw; max-height: 75vh; object-fit: contain; mix-blend-mode: multiply; filter: drop-shadow(0 16px 15px rgba(35,68,46,.14)); }
.garden-left { left: -2vw; transform: translateX(calc(var(--scene-progress) * -6vw)); }.garden-right { right: -2vw; transform: translateX(calc(var(--scene-progress) * 6vw)); }
.garden-rail { position: absolute; z-index: 10; left: -2%; bottom: -2vh; width: 104%; height: 28vh; object-fit: cover; mix-blend-mode: multiply; }
.passage-copy { position: absolute; z-index: 12; top: 24%; left: 50%; width: 620px; max-width: 60vw; text-align: center; transform: translateX(-50%); }
.passage-copy.is-visible { transform: translateX(-50%); }
.passage-copy h2 { margin-bottom: 20px; color: #274b3d; font: 400 72px/.9 "Italiana",serif; }
.passage-copy p:last-child { max-width: 500px; margin: 0 auto; font: 400 17px/1.7 "Marcellus",serif; }
.route-thread { position: absolute; z-index: 14; left: 50%; bottom: 25vh; display: grid; grid-template-columns: auto 300px auto; align-items: center; gap: 16px; color: #315b4b; font: 400 18px/1 "Italiana",serif; transform: translateX(-50%); }
.route-thread i { position: relative; height: 2px; background: #c1823c; }
.route-thread i::before, .route-thread i::after { content:""; position:absolute; top:50%; width:9px; height:9px; border-radius:50%; background:#8b3244; transform:translateY(-50%); }
.route-thread i::after { right:0; }
.route-thread b { position:absolute; top:-7px; left:calc(var(--scene-progress) * 92%); width:16px; height:16px; border-radius:50% 50% 50% 0; background:#dba242; transform:rotate(-45deg); }
.passage-peacock { position: absolute; z-index: 15; right: 10%; bottom: 7vh; width: 270px; mix-blend-mode: multiply; transform: translateY(calc((1 - var(--scene-progress)) * 80px)); }
.paper-birds i { position:absolute; z-index:9; top:30%; left:calc(25% + var(--n,0)*14%); width:22px; height:10px; border-top:2px solid #315b4b; border-radius:50%; transform:rotate(calc(-18deg + var(--n,0)*7deg)); }
.paper-birds i:nth-child(2){--n:1}.paper-birds i:nth-child(3){--n:2}.paper-birds i:nth-child(4){--n:3}

/* Udupi temple portal */
.temple-arrival { height: 230vh; background: #b9653d; }
.temple-sky { position:absolute; z-index:0; inset:0; background:linear-gradient(#7fc7cf 0 46%,#edc57c 75%,#9d4f34); }
.chariot-world { position:absolute; z-index:1; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; filter:saturate(1.05) contrast(.95); opacity:.58; transform:scale(1.12) translateY(calc(var(--scene-progress)*-5vh)); }
.gopuram { position:absolute; z-index:8; left:50%; bottom:-4vh; width:48vw; height:94vh; min-width:540px; background:linear-gradient(90deg,#a74537,#e39a63 14%,#f4bf79 50%,#e39a63 86%,#a74537); clip-path:polygon(42% 0,58% 0,61% 9%,66% 9%,69% 20%,75% 20%,78% 34%,84% 34%,88% 50%,94% 50%,100% 100%,0 100%,6% 50%,12% 50%,16% 34%,22% 34%,25% 20%,31% 20%,34% 9%,39% 9%); box-shadow:0 0 80px rgba(56,20,14,.42); transform:translateX(-50%) scale(calc(.84 + var(--scene-progress)*.18)); transform-origin:bottom; }
.gopuram::before { content:""; position:absolute; inset:4% 5% 0; opacity:.5; background-image:radial-gradient(circle,#6d2831 0 3px,transparent 4px); background-size:42px 42px; }
.gopuram i { position:absolute; width:11%; aspect-ratio:1; border:3px solid #7a2a34; border-radius:50% 50% 42% 42%; background:#e6a35e; box-shadow:inset 0 0 0 7px #f5c985; }
.gopuram i:nth-child(1){left:20%;top:42%}.gopuram i:nth-child(2){right:20%;top:42%}.gopuram i:nth-child(3){left:33%;top:26%}.gopuram i:nth-child(4){right:33%;top:26%}.gopuram i:nth-child(5){left:12%;top:62%}.gopuram i:nth-child(6){right:12%;top:62%}.gopuram i:nth-child(7){left:29%;top:58%}.gopuram i:nth-child(8){right:29%;top:58%}
.gopuram-door { position:absolute; z-index:3; bottom:0; width:25%; height:37%; background:repeating-linear-gradient(90deg,#3b1d20 0 7px,#6a3330 8px 15px); border:8px solid #d59c57; transition:transform .2s linear; }
.gopuram-door.left { left:25%; transform-origin:left; transform:perspective(600px) rotateY(calc(var(--scene-progress)*-78deg)); }.gopuram-door.right { right:25%; transform-origin:right; transform:perspective(600px) rotateY(calc(var(--scene-progress)*78deg)); }
.udupi-copy { z-index:14; top:17%; right:8%; text-align:right; }
.coast-banner { z-index:14; left:7%; right:auto; bottom:20%; color:#173f41; background:#f2d7a0; box-shadow:-10px 12px 0 rgba(18,78,83,.55); transform:rotate(2deg); }
.jasmine-curtain { position:absolute; z-index:16; top:0; left:4%; right:4%; display:flex; justify-content:space-between; }
.jasmine-curtain i { width:9px; height:25vh; background:repeating-radial-gradient(circle at 50% 6px,#fff9da 0 5px,#d9a844 6px 7px,transparent 8px 15px); transform-origin:top; animation:jasmine 4s ease-in-out infinite alternate; }
.jasmine-curtain i:nth-child(2n){height:17vh;animation-delay:-2s}.jasmine-curtain i:nth-child(3n){height:32vh;animation-delay:-1s}
@keyframes jasmine { to { transform:rotate(2deg); } }
.portal-glow { position:absolute; z-index:7; left:50%; bottom:0; width:34vw; height:48vh; background:radial-gradient(ellipse at bottom,#ffe7a6,rgba(255,214,122,.2) 48%,transparent 70%); transform:translateX(-50%); opacity:var(--scene-progress); }

/* Invitation interlude */
.family-invite { min-height:105vh; display:grid; place-items:center; overflow:hidden; background:#f8efe1; border-top:14px solid #315b4b; border-bottom:14px solid #8e3148; }
.family-invite::before { content:""; position:absolute; inset:0; opacity:.34; background-image:radial-gradient(circle,#c88f8d 0 2px,transparent 3px); background-size:24px 24px; }
.invite-flower { position:absolute; z-index:2; top:0; height:100%; width:35%; object-fit:cover; mix-blend-mode:multiply; }
.invite-flower.left { left:0; object-position:left }.invite-flower.right { right:0; object-position:right }
.invite-copy { position:relative; z-index:4; width:min(690px,72vw); padding:75px 70px; text-align:center; background:rgba(255,249,237,.91); border:1px solid #b88545; box-shadow:0 0 0 9px rgba(255,249,237,.75),0 0 0 10px rgba(123,37,55,.35); }
.invite-copy h2 { margin-bottom:18px; color:#7b2537; font:400 72px/.95 "Italiana",serif; }.invite-copy h2 i{color:#c58c3a;font-size:38px}.invite-copy>p:not(.eyebrow){font:400 17px/1.7 "Marcellus",serif}.invite-copy small{display:block;margin-top:28px;text-transform:uppercase;font-size:10px}
.invite-seal { display:flex; align-items:center; justify-content:center; gap:22px; margin:32px auto 0; }.invite-seal span{font:400 45px/1 "Italiana",serif}.invite-seal b{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;color:#fff9ed;background:#315b4b;font:600 12px/1.2 "DM Sans",sans-serif}

/* Ceremony worlds */
.celebrations { background:#f6eddf; }
.celebrations-title { position:relative; min-height:82vh; display:grid; align-content:center; justify-items:center; overflow:hidden; isolation:isolate; text-align:center; color:#652235; background-color:#f1d4cc; background-image:url('flowers-left.png'),url('flowers-right.png'),linear-gradient(90deg,rgba(255,255,255,.32) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.32) 1px,transparent 1px); background-repeat:no-repeat,no-repeat,repeat,repeat; background-position:left bottom,right bottom,0 0,0 0; background-size:min(32vw,480px) 100%,min(32vw,480px) 100%,30px 30px,30px 30px; }
.celebrations-title::before { content:""; position:absolute; z-index:-1; left:50%; bottom:-20%; width:min(700px,64vw); height:88%; border:11px double rgba(123,37,55,.42); border-bottom:0; border-radius:50% 50% 0 0 / 35% 35% 0 0; background:rgba(255,240,226,.82); box-shadow:0 0 60px rgba(95,35,49,.08); transform:translateX(-50%); }
.celebrations-title::after { content:""; position:absolute; top:0; left:4%; right:4%; height:28px; background:radial-gradient(circle at 14px -1px,#f2c762 0 10px,#9b3748 11px 13px,transparent 14px); background-size:28px 28px; }
.celebrations-title h2 { position:relative; z-index:2; margin:0; font:400 78px/.9 "Italiana",serif; }
.event-world { height:180vh; }
.event-world .sticky-scene { color:#fffaf0; }
.event-backdrop { position:absolute; z-index:-4; inset:0; }
.event-halidi{} /* Prevent aggressive CSS optimizers from merging chapter boundaries. */
.event-haldi .event-backdrop { background:linear-gradient(150deg,#f6bd33,#e5842e 64%,#2e744d); }
.event-sangeet .event-backdrop { background:linear-gradient(135deg,rgba(23,14,49,.64),rgba(86,13,70,.72)); }
.event-wedding .event-backdrop { background:linear-gradient(150deg,#fff0d2,#e9b87f 60%,#8d293c); }
.event-reception .event-backdrop { background:linear-gradient(160deg,rgba(9,68,77,.2),rgba(93,23,48,.78)); }
.event-world .scene-video, .event-world .scene-photo { filter:saturate(.9) contrast(1.05); transform:scale(1.08); }
.event-architecture { position:absolute; z-index:2; inset:0; pointer-events:none; }
.event-architecture i { position:absolute; top:0; bottom:0; width:6vw; min-width:58px; border-left:8px solid rgba(255,236,185,.85); border-right:8px solid rgba(104,39,39,.35); background:repeating-linear-gradient(0deg,rgba(255,236,185,.86) 0 28px,rgba(179,95,48,.88) 29px 36px); box-shadow:0 0 25px rgba(60,22,22,.2); }
.event-architecture i:nth-child(1){left:0}.event-architecture i:nth-child(2){right:0}.event-architecture i:nth-child(3){left:12%;height:22vh;bottom:auto;transform:rotate(45deg);transform-origin:top}.event-architecture i:nth-child(4){right:12%;height:22vh;bottom:auto;transform:rotate(-45deg);transform-origin:top}.event-architecture i:nth-child(5){left:28%;height:4vh;width:44%;min-width:0;border:0;background:repeating-linear-gradient(90deg,#f8d874 0 17px,#a52f44 18px 34px)}.event-architecture i:nth-child(6){left:34%;top:4vh;height:14vh;width:32%;min-width:0;border:0;background:radial-gradient(circle,#fff3c7 0 6px,transparent 7px);background-size:30px 30px}
.event-props i { position:absolute; z-index:5; }
.event-haldi .event-props i { bottom:7vh; width:70px; height:42px; border-radius:50% 50% 12% 12%; background:#9c4d29; box-shadow:inset 0 8px #f4c934,0 9px 16px rgba(81,35,16,.24); }
.event-haldi .event-props i:nth-child(1){left:9%}.event-haldi .event-props i:nth-child(2){left:20%;transform:scale(.72)}.event-haldi .event-props i:nth-child(3){right:38%;transform:scale(.82)}.event-haldi .event-props i:nth-child(4){right:7%}.event-haldi .event-props i:nth-child(n+5){top:22%;bottom:auto;width:20px;height:20px;border-radius:50%;background:#f8cf37;animation:propFloat 4s ease-in-out infinite alternate}
.event-haldi .event-props i:nth-child(5){left:18%}.event-haldi .event-props i:nth-child(6){left:38%;top:14%}.event-haldi .event-props i:nth-child(7){right:31%;top:26%}.event-haldi .event-props i:nth-child(8){right:13%;top:17%}
.event-sangeet .event-props i { top:8%; left:calc(10% + var(--n,0)*12%); width:4px; height:72vh; background:linear-gradient(#ffd96b,transparent); transform-origin:top; animation:spotlight 4s ease-in-out infinite alternate; }
.event-sangeet .event-props i:nth-child(2){--n:1;animation-delay:-2s}.event-sangeet .event-props i:nth-child(3){--n:2}.event-sangeet .event-props i:nth-child(4){--n:3;animation-delay:-1s}.event-sangeet .event-props i:nth-child(5){--n:4}.event-sangeet .event-props i:nth-child(6){--n:5;animation-delay:-3s}.event-sangeet .event-props i:nth-child(7){--n:6}.event-sangeet .event-props i:nth-child(8){--n:7}
.event-wedding .event-props i { bottom:0; width:11vw; height:44vh; background:linear-gradient(90deg,#b52d3d,#f2bd6f,#b52d3d); clip-path:polygon(35% 0,65% 0,72% 25%,84% 25%,100% 100%,0 100%,16% 25%,28% 25%); }.event-wedding .event-props i:nth-child(1){left:3%}.event-wedding .event-props i:nth-child(2){right:3%}.event-wedding .event-props i:nth-child(n+3){bottom:12vh;width:18px;height:45px;border-radius:50% 50% 35% 35%;background:radial-gradient(circle at 50% 70%,#ffe8a4,#b75a2d 48%,#5c2828 52%);clip-path:none;box-shadow:0 0 25px #ffd77a}.event-wedding .event-props i:nth-child(3){left:18%}.event-wedding .event-props i:nth-child(4){left:28%}.event-wedding .event-props i:nth-child(5){right:32%}.event-wedding .event-props i:nth-child(6){right:20%}
.event-reception .event-props i { top:0; left:calc(9% + var(--n,0)*12%); width:2px; height:calc(15vh + var(--n,0)*2vh); background:#523129; }.event-reception .event-props i::after{content:"";position:absolute;bottom:-14px;left:-10px;width:22px;height:28px;border-radius:50%;background:#ffd482;box-shadow:0 0 24px #ffc55c}.event-reception .event-props i:nth-child(2){--n:1}.event-reception .event-props i:nth-child(3){--n:2}.event-reception .event-props i:nth-child(4){--n:3}.event-reception .event-props i:nth-child(5){--n:4}.event-reception .event-props i:nth-child(6){--n:5}.event-reception .event-props i:nth-child(7){--n:6}.event-reception .event-props i:nth-child(8){--n:7}
@keyframes propFloat { to{transform:translateY(30px) rotate(80deg)} }@keyframes spotlight{to{transform:rotate(7deg)}}
.couple-cutout-wrap { position:absolute; z-index:9; left:13%; bottom:0; width:47vw; height:83vh; display:flex; align-items:flex-end; justify-content:center; transform:translateY(calc((1 - var(--scene-progress))*12vh)); }
.couple-cutout-wrap::after { content:""; position:absolute; z-index:-1; left:13%; right:13%; bottom:1vh; height:6vh; border-radius:50%; background:rgba(51,24,18,.38); filter:blur(15px); }
.couple-cutout { width:100%; height:100%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 22px 16px rgba(43,19,18,.32)) saturate(1.06); }
.event-wedding .couple-cutout { filter:drop-shadow(0 22px 16px rgba(43,19,18,.28)) saturate(.9) sepia(.08); }
.couple-stage-photo { position:absolute; z-index:8; left:8%; bottom:0; width:50vw; height:76vh; margin:0; padding:14px 14px 0; background:#e7b668; clip-path:polygon(0 20%,10% 20%,10% 8%,22% 8%,22% 0,78% 0,78% 8%,90% 8%,90% 20%,100% 20%,100% 100%,0 100%); box-shadow:0 0 40px rgba(0,0,0,.28); transform:translateY(calc((1 - var(--scene-progress))*10vh)); }
.couple-stage-photo img { width:100%; height:100%; object-fit:cover; object-position:center; clip-path:polygon(0 18%,10% 18%,10% 7%,22% 7%,22% 0,78% 0,78% 7%,90% 7%,90% 18%,100% 18%,100% 100%,0 100%); }
.event-reception .couple-stage-photo { left:10%; width:46vw; height:72vh; background:#f6d49a; }.event-reception .couple-stage-photo img{object-position:45% center}
.event-heading { position:absolute; z-index:16; top:15%; left:7%; width:360px; text-shadow:0 3px 20px rgba(0,0,0,.35); }
.event-heading>span { display:block; font:500 12px/1 "DM Sans",sans-serif; }.event-heading h3 { margin:8px 0 15px; font:400 76px/.9 "Italiana",serif; }.event-heading p { font:400 16px/1.6 "Marcellus",serif; }
.event-haldi .event-heading, .event-wedding .event-heading { color:#512128; }.event-haldi .event-heading { top:12%; }.event-wedding .event-heading { left:auto; right:7%; text-align:right; }
.event-sangeet .event-heading, .event-reception .event-heading { left:auto; right:7%; text-align:right; }
.event-card { position:absolute; z-index:18; right:6%; bottom:7vh; width:430px; padding:24px; color:#2f1a20; background:rgba(255,249,232,.94); border:1px solid rgba(115,54,41,.55); box-shadow:12px 14px 0 rgba(65,28,31,.42); backdrop-filter:blur(8px); }
.event-sangeet .event-card, .event-reception .event-card { background:#feeedb; }
.event-card-title { display:flex; align-items:baseline; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid #c99457; }.event-card-title span{font-size:11px}.event-card-title b{font:400 30px/1 "Italiana",serif}
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:16px 0; background:#d9bd94; }.detail-grid>div{min-height:80px;padding:12px;background:#fff9ed}.detail-grid>div:nth-child(3){grid-column:1/-1}.detail-grid small{display:block;margin-bottom:5px;color:#8b4350;font-size:9px;text-transform:uppercase}.detail-grid strong{display:block;font:600 12px/1.35 "DM Sans",sans-serif}.detail-grid p{margin:3px 0 0;font-size:11px}.event-card>a{display:flex;justify-content:space-between;color:#61273a;font-size:11px;font-weight:600;text-decoration:none;text-transform:uppercase}
.event-flower { position:absolute; z-index:14; bottom:-10%; width:24vw; height:66vh; object-fit:cover; mix-blend-mode:multiply; pointer-events:none; }.event-flower.flower-left{left:-5%}.event-flower.flower-right{right:-5%}
.event-sangeet .event-flower, .event-reception .event-flower { mix-blend-mode:screen; opacity:.35; }

/* Countdown and coast */
.countdown-world { min-height:100vh; display:grid; place-items:center; overflow:hidden; background:#2b2424; }
.countdown-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.76); }
.countdown-veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(39,17,24,.86),rgba(39,17,24,.28) 55%,rgba(13,47,51,.34)); }
.countdown-copy { position:relative; z-index:2; width:min(800px,86vw); color:#fff5df; text-align:center; }.countdown-copy h2{font:400 78px/.9 "Italiana",serif}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:44px;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.28)}.countdown div{padding:25px 10px;background:rgba(51,26,33,.66);backdrop-filter:blur(9px)}.countdown b{display:block;font:400 43px/1 "Italiana",serif}.countdown span{font-size:9px;text-transform:uppercase}
.rsvp-world { min-height:112vh; display:grid; place-items:center; overflow:hidden; color:#fff7e8; background:#1d4b50; }
.rsvp-coast { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.rsvp-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(14,53,60,.86),rgba(24,54,58,.22) 55%,rgba(84,37,38,.56)); }
.coastal-palms i { position:absolute; z-index:2; bottom:-10vh; width:9px; height:72vh; border-radius:70% 20% 0 0; background:#182f2b; transform-origin:bottom; }.coastal-palms i::before{content:"";position:absolute;top:-35px;left:-95px;width:190px;height:100px;background:repeating-conic-gradient(from -20deg at 50% 100%,#19362e 0 9deg,transparent 10deg 21deg);clip-path:ellipse(50% 50% at 50% 50%)}.coastal-palms i:nth-child(1){left:5%;transform:rotate(7deg)}.coastal-palms i:nth-child(2){left:18%;height:48vh;transform:rotate(-8deg)}.coastal-palms i:nth-child(3){right:8%;height:82vh;transform:rotate(-6deg)}.coastal-palms i:nth-child(4){right:21%;height:48vh;transform:rotate(9deg)}
.rsvp-lanterns i { position:absolute; z-index:4; top:-5vh; left:calc(10% + var(--n,0)*15%); width:3px; height:calc(15vh + var(--n,0)*2vh); background:rgba(48,33,22,.8); }.rsvp-lanterns i::after{content:"";position:absolute;bottom:-22px;left:-14px;width:29px;height:39px;border-radius:8px 8px 50% 50%;background:radial-gradient(circle,#fff1a9,#d17c30 45%,#6d322b 50%);box-shadow:0 0 30px #ffc65c}.rsvp-lanterns i:nth-child(2){--n:1}.rsvp-lanterns i:nth-child(3){--n:2}.rsvp-lanterns i:nth-child(4){--n:3}.rsvp-lanterns i:nth-child(5){--n:4}.rsvp-lanterns i:nth-child(6){--n:5}
.rsvp-copy { position:relative; z-index:6; text-align:center; text-shadow:0 3px 20px rgba(0,0,0,.45); }.rsvp-copy h2{margin-bottom:20px;font:400 88px/.82 "Italiana",serif}.rsvp-copy>p:not(.eyebrow){font:400 17px/1.6 "Marcellus",serif}.rsvp-button,.submit-rsvp{margin-top:20px;padding:14px 19px;border:1px solid #ffe1a1;border-radius:0;color:#fff9ed;background:#792a3f;font-size:11px;font-weight:600;text-transform:uppercase;cursor:pointer}.rsvp-button span,.submit-rsvp span{margin-left:20px}.closing-line{position:absolute;z-index:6;bottom:3vh;left:50%;margin:0;color:rgba(255,255,255,.8);font:400 13px/1 "Marcellus",serif;transform:translateX(-50%)}

/* RSVP dialog */
.rsvp-dialog { width:min(560px,calc(100vw - 30px)); max-height:92vh; padding:0; color:#301b22; background:#fff9ed; border:1px solid #b88646; border-radius:4px; box-shadow:0 30px 100px rgba(0,0,0,.48); }.rsvp-dialog::backdrop{background:rgba(24,18,20,.72);backdrop-filter:blur(7px)}.dialog-close{position:absolute;z-index:2;top:12px;right:14px;width:36px;height:36px;border:0;background:transparent;color:#fff8e8;font-size:26px;cursor:pointer}.dialog-head{padding:38px 38px 28px;color:#fff8e8;background:#713047;text-align:center}.dialog-head h2{margin:0;font:400 45px/1 "Italiana",serif}.rsvp-dialog form{display:grid;gap:15px;padding:26px 34px 30px}.rsvp-dialog label,.rsvp-dialog legend{font-size:10px;font-weight:600;text-transform:uppercase}.rsvp-dialog input[type=text],.rsvp-dialog select,.rsvp-dialog textarea{width:100%;margin-top:6px;padding:11px;border:1px solid #d5bd9b;border-radius:0;background:#fffdf8}.rsvp-dialog fieldset{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0;padding:0;border:0}.rsvp-dialog legend{grid-column:1/-1;margin-bottom:3px}.radio span{display:block;padding:11px;border:1px solid #d5bd9b;text-align:center}.radio input{position:absolute;opacity:0}.radio input:checked+span{color:#fff;background:#713047;border-color:#713047}.submit-rsvp{margin:0;background:#315b4b}.form-status{min-height:18px;margin:0;text-align:center;font-size:11px}.hp-field{position:absolute!important;left:-9999px!important}

@media (max-width: 900px) {
    .sticky-scene { min-height:560px; }
    .story-dots { right:6px; }
    .hero-pavilion { width:48vw; height:65vh; }
    .hero-title { top:21%; width:78vw; }.hero-title h1{font-size:70px}.hero-line{font-size:16px}
    .story-copy{width:340px}.story-copy h2{font-size:72px}.banaras-copy{left:7%}.udupi-copy{right:6%}
    .passage-copy h2{font-size:58px}.route-thread{grid-template-columns:auto 180px auto}.passage-peacock{width:210px;right:4%}
    .gopuram{width:64vw}.silk-banner,.coast-banner{width:280px}
    .event-card{right:4%;width:390px}.couple-cutout-wrap{left:4%;width:52vw}.couple-stage-photo{left:3%;width:53vw}
    .event-heading{left:5%;width:300px}.event-sangeet .event-heading,.event-reception .event-heading,.event-wedding .event-heading{right:5%}.event-heading h3{font-size:62px}
}

@media (max-width: 680px) {
    body.tsw-body.admin-bar{margin-top:-46px}.story-dots{display:none}.tsw-progress{width:2px}
    .cinema-hero{height:360vh}.pichwai-canopy{height:25vh}.hero-pavilion{bottom:13vh;width:65vw;height:52vh}.pavilion-left{left:-30vw}.pavilion-right{right:-30vw}.hanging-lamps{left:6%;right:6%}.hanging-lamps i:nth-child(even){display:none}
    .hero-title{top:18%;width:90vw}.hero-title h1{font-size:54px;line-height:.82}.hero-title h1 i{font-size:22px}.hero-line{font-size:14px;line-height:1.5}.date-ribbon{gap:12px}.date-ribbon span{font-size:21px}.river-foreground{height:20vh}.hero-boat{left:8%;bottom:10vh;transform:scale(.7)}
    .hero-sun-disc{top:17%;right:-4%;width:130px}.hero-ghat-crown{bottom:17vh;height:25vh}.hero-threshold{width:118vw;height:78vh}.threshold-column{min-width:42px;border-width:5px}.threshold-arch{left:13%;right:13%;border-width:11px}.threshold-bells{left:31%;right:31%}.threshold-bells i:nth-child(even){display:none}.threshold-medallion{top:16%;width:62px}.hero-blessing{top:28%;width:88vw}.hero-blessing b{font-size:47px}.hero-invite-plane{top:20%;width:92vw;min-height:65vh;padding:62px 34px 38px;clip-path:polygon(7% 0,93% 0,100% 100%,0 100%)}.hero-invite-plane h2{font-size:47px}.hero-invite-plane>p:not(.eyebrow){font-size:14px}.hero-invite-date span{font-size:34px}.hero-diyas i:nth-child(even),.hero-lotus-field i:nth-child(even){display:none}
    .river-journey{height:205vh}.river-grade{background:linear-gradient(180deg,rgba(38,20,27,.65),rgba(12,47,61,.24) 50%,rgba(11,45,59,.75))}.story-copy{top:14%;left:7%;right:auto;width:86vw;text-align:left}.story-copy h2{font-size:61px}.story-copy p:last-child{font-size:15px}.silk-banner{right:6%;bottom:22%;width:250px}.journey-boat{left:calc(5% + var(--scene-progress)*52%)}.ghat-silhouette{bottom:18vh;height:20vh}
    .garden-passage{height:180vh}.garden-canopy{height:26vh}.garden-left,.garden-right{bottom:15vh;width:58vw;height:54vh}.garden-left{left:-25vw}.garden-right{right:-25vw}.garden-rail{height:20vh}.passage-copy{top:23%;max-width:none;width:88vw}.passage-copy h2{font-size:46px}.passage-copy p:last-child{font-size:14px}.route-thread{bottom:25vh;grid-template-columns:auto 90px auto;font-size:14px}.passage-peacock{right:2%;bottom:8vh;width:155px}
    .temple-arrival{height:205vh}.gopuram{min-width:410px;width:100vw;height:78vh}.chariot-world{object-position:42% center}.udupi-copy{top:11%;left:7%;right:auto;text-align:left}.coast-banner{left:6%;bottom:19%;width:250px}.jasmine-curtain i:nth-child(odd){display:none}
    .family-invite{min-height:100vh}.invite-flower{width:58%;opacity:.6}.invite-copy{width:84vw;padding:48px 22px}.invite-copy h2{font-size:48px}.invite-seal span{font-size:34px}
    .celebrations-title{min-height:68vh;background-position:left -10vw bottom,right -10vw bottom,0 0,0 0;background-size:45vw 78%,45vw 78%,30px 30px,30px 30px}.celebrations-title::before{width:84vw;height:78%}.celebrations-title h2{font-size:48px}
    .event-world{height:195vh}.event-architecture i{width:42px;min-width:42px}.event-heading,.event-sangeet .event-heading,.event-reception .event-heading,.event-wedding .event-heading{top:9%;left:8%;right:auto;width:84%;text-align:left}.event-heading h3{font-size:55px}.event-heading p{font-size:14px}.couple-cutout-wrap{left:-5%;bottom:20vh;width:75vw;height:57vh}.couple-stage-photo,.event-reception .couple-stage-photo{left:4%;bottom:22vh;width:72vw;height:53vh}.event-card{right:4%;bottom:3vh;width:92vw;padding:17px;box-shadow:7px 8px 0 rgba(65,28,31,.42)}.detail-grid>div{min-height:70px;padding:10px}.event-flower{width:45vw;height:45vh;opacity:.65}.event-flower.flower-right{right:-18%}.event-flower.flower-left{left:-18%}.event-wedding .event-props i{width:19vw}
    .countdown-copy h2{font-size:54px}.countdown{margin-top:30px}.countdown div{padding:19px 4px}.countdown b{font-size:29px}
    .rsvp-world{min-height:100vh}.rsvp-copy h2{font-size:60px}.rsvp-copy{width:88vw}.closing-line{width:88vw;text-align:center}.coastal-palms i:nth-child(2),.coastal-palms i:nth-child(4){display:none}.rsvp-dialog form{padding:22px}.dialog-head{padding:36px 25px 24px}.dialog-head h2{font-size:38px}.rsvp-dialog fieldset{grid-template-columns:1fr}
}

@media (prefers-reduced-motion: reduce) {
    html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.petal-sky,.floating-diyas,.hero-ghat-crown,.hero-threshold,.hero-blessing,.hero-invite-plane,.hero-diyas,.hero-lotus-field{display:none}.cinema-hero{height:100svh}.hero-title,.hero-title.is-visible{opacity:1;transform:translateX(-50%)}.begin-story{opacity:1;transform:translateX(-50%)}.tsw-body *{animation:none!important;transition-duration:.01ms!important}.depth-layer,.couple-cutout-wrap,.couple-stage-photo{transform:none!important}
}
