@font-face{font-family:Wedding;src:url('assets/serif.ttf');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5eddf;color:#493e2e;font-family:Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #9b4b2b;outline-offset:6px}header{position:fixed;inset:0 0 auto;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:24px 5%;background:linear-gradient(#f5eddfaa,transparent)}header button{border:0;background:none;font-size:10px;letter-spacing:1px;min-height:44px}header #home{font:28px Wedding,serif}header i{font-size:20px}header>span{font-size:8px;letter-spacing:3px}#journey{height:560vh}.stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:#f2e3c9}#world{position:absolute;inset:0;will-change:transform}.layer,.object{position:absolute;will-change:transform,opacity}.layer{pointer-events:none}.mountains{width:120%;height:115%;object-fit:cover;left:-10%;top:-5%;z-index:0}.ridge{width:115%;height:70%;object-fit:cover;bottom:-20%;left:-8%;z-index:2}.pavilion{width:85%;height:95%;object-fit:contain;object-position:right bottom;right:-5%;bottom:-2%;z-index:3;opacity:0}.veil{position:absolute;inset:0;pointer-events:none;z-index:7;background:linear-gradient(180deg,#fff6e29e,transparent 65%)}.object{padding:0;border:0;background:none;z-index:5;transform-origin:50% 85%}.object img{width:100%;display:block;pointer-events:none}.object-hint{display:block;position:absolute;bottom:0;left:5%;font-size:9px;letter-spacing:1px;white-space:nowrap;background:#fff5dfdf;padding:10px 14px;border-radius:20px;opacity:0;transition:opacity .3s}.object:hover .object-hint,.object:focus-visible .object-hint{opacity:1}.gondola{width:260px;left:65%;top:42%;filter:drop-shadow(8px 14px 10px #4c35252b)}.kite{width:140px;left:78%;top:12%;z-index:12}.kite-far{width:65px;left:19%;top:22%;z-index:1}.guests{width:31%;bottom:10%;left:35%;z-index:5;opacity:0}.vendor{width:19%;bottom:1%;right:8%;z-index:6;opacity:0}.flowers{width:43%;bottom:-12%;z-index:8}.flowers-left{left:-13%}.flowers-right{right:-18%;transform:scaleX(-1)}.copy{position:absolute;z-index:10;text-align:center;left:50%;top:15%;width:80%;max-width:800px;transform:translateX(-50%);pointer-events:none}.copy button{pointer-events:auto}.copy:not(.names){opacity:0}.eyebrow{font-size:9px;letter-spacing:3px;font-weight:500;margin:0 0 20px;line-height:1.7}h1,h2{font-family:Wedding,Georgia,serif;font-weight:400;letter-spacing:-3px;margin:0;line-height:.88}h1{font-size:clamp(85px,9.4vw,145px)}h1 span{display:block}h1 i{display:block;font-size:.34em;line-height:1.15;color:#b07342;font-weight:400;margin:4px}h2{font-size:clamp(50px,6vw,88px);line-height:1}em{font-weight:400;color:#a05b35}.date{font-size:10px;letter-spacing:3px;margin:28px 0 10px}.place{font-family:Wedding,serif;font-size:20px;margin:0}.text-button{background:none;border:0;border-bottom:1px solid #b79169;padding:14px 0;font-size:10px;letter-spacing:1px;margin-top:15px;min-height:44px}.text-button span{margin-left:22px}.hosts{top:24%}.hosts p:not(.eyebrow){font:20px/1.5 Wedding,serif}.ascent{left:8%;top:20%;width:50%;text-align:left;transform:none}.carnival{top:16%;left:7%;transform:none;text-align:left;width:42%;max-width:600px}.carnival h2{font-size:clamp(60px,6.5vw,100px)}.event-time{font-size:12px;letter-spacing:1px;line-height:1.7;margin:20px 0}.discovery{font:19px/1.4 Wedding,serif}.chapters{position:absolute;z-index:20;bottom:25px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;background:#fff5e4d9;backdrop-filter:blur(15px);padding:3px 20px;border:1px solid #f7ead3;border-radius:30px;white-space:nowrap}.chapters button{font-size:9px;min-height:44px;background:none;border:0;opacity:.55;padding:0}.chapters button.active{opacity:1;color:#a35731}.chapters span{height:1px;width:16px;background:#b69770}.progress{position:absolute;bottom:0;width:100%;height:2px;z-index:30;background:#b58c5e33}.progress b{display:block;height:100%;background:#a15c31;transform-origin:left;transform:scaleX(0)}#found{position:absolute;right:25px;bottom:28px;z-index:21;border:0;background:#fff3dfbb;border-radius:25px;font-size:9px;letter-spacing:1px;padding:12px 16px;min-height:44px}.toast{position:absolute;z-index:40;left:50%;bottom:100px;transform:translate(-50%,15px);background:#414c36ed;color:#fff7e7;border-radius:8px;padding:16px 24px;text-align:center;font:19px/1.3 Wedding,serif;max-width:90%;width:max-content;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}.toast.visible{opacity:1;transform:translate(-50%,0)}#petals{position:absolute;inset:0;pointer-events:none;z-index:25;overflow:hidden}.petal{position:absolute;width:35px;height:30px;background:url('assets/flowers.webp') left bottom/140px auto no-repeat;pointer-events:none}footer{padding:35px 6%;display:flex;align-items:center;justify-content:space-between;background:#f5eddf;font:23px Wedding,serif}footer button{border:0;border-bottom:1px solid #b69770;background:none;font-size:10px;padding:14px}body.ready .names h1 span{animation:reveal 1.7s both}body.ready .names h1 span:last-child{animation-delay:.25s}@keyframes reveal{from{opacity:0;transform:translateY(20px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}@media(max-width:650px){header{padding:13px 5%}header>span{display:none}#journey{height:530vh}.mountains{width:190%;left:-48%;height:110%;object-position:center}.ridge{width:185%;height:60%;left:-55%;bottom:-15%;object-fit:fill}.copy{top:17%;width:94%}.eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:22px}h1{font-size:clamp(70px,21vw,103px);letter-spacing:-2.5px}h1 i{font-size:.33em;line-height:1.05}.date{font-size:9px;letter-spacing:2px;margin-top:23px}.place{font-size:18px}.names .text-button{margin-top:8px}.gondola{width:180px;left:52%;top:56%}.kite{width:90px;top:11%;left:79%}.kite-far{width:40px;left:5%;top:46%}.flowers-left{width:82%;left:-30%;bottom:-5%}.flowers-right{width:70%;right:-38%;bottom:-4%}.hosts{top:23%;width:90%;left:50%;transform:translateX(-50%)}.hosts h2{font-size:58px}.hosts p:not(.eyebrow){font-size:20px}.ascent{left:8%;top:20%;width:85%;transform:none}.ascent h2{font-size:53px}.carnival{left:7%;top:12%;width:86%;transform:none}.carnival .eyebrow{margin-bottom:12px}.carnival h2{font-size:59px;line-height:.91}.event-time{font-size:10px;margin:15px 0 9px}.discovery{font-size:16px;margin:0}.carnival .text-button{padding:10px 0;margin-top:4px}.pavilion{width:155%;height:68%;right:-20%;bottom:0;object-fit:contain;object-position:right bottom}.guests{width:48%;bottom:12%;left:7%}.vendor{width:40%;right:0%;bottom:5%}.chapters{gap:10px;bottom:16px;padding:0 13px}.chapters button{font-size:8px}.chapters span{width:10px}#found{right:10px;bottom:72px;font-size:8px;padding:9px 12px;min-height:36px}.toast{bottom:120px;font-size:18px}.veil{background:linear-gradient(180deg,#fff4e1c9,transparent 55%)}footer{font-size:18px;padding:25px 6%;gap:20px}.object-hint{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#journey{height:auto}.stage{position:relative;height:auto;min-height:100svh;padding:100px 6% 140px}#world{opacity:.14}.copy{position:relative!important;inset:auto!important;transform:none!important;width:100%;opacity:1!important;text-align:center;margin:45px 0;pointer-events:auto}.copy h1 span{animation:none!important}.gondola,.kite,.kite-far,.flowers,.chapters,.progress,#found{display:none}.veil{background:#fff5e270}.carnival{padding-bottom:20px}header{background:#f5eddf}.toast{position:fixed}.object{pointer-events:none}.names h1{font-size:70px}}
@media(max-width:650px){.guests{bottom:6%}}
.petal{background:none;object-fit:contain;width:32px;height:32px}
/* Evening extension: the same world, relit. */
#journey{height:860vh}.night-tint{position:absolute;inset:0;z-index:1;background:linear-gradient(#13182ee8 0%,#26304da0 55%,#111e3330);opacity:0;pointer-events:none}.moon,.sun-disc{width:140px;left:70%;top:12%;z-index:1;opacity:0;pointer-events:none}.sun-disc{left:15%;top:20%;filter:sepia(1) saturate(4) hue-rotate(345deg)}.moon{filter:drop-shadow(0 0 20px #ffe5ae25)}.evening-pavilion{width:85%;height:95%;object-fit:contain;object-position:right bottom;right:-5%;bottom:-2%;z-index:3;opacity:0}.evening-guests{width:37%;bottom:4%;left:44%;z-index:6;opacity:0}.sunset{top:23%;left:7%;width:65%;text-align:left;transform:none}.cocktails{top:17%;left:7%;width:48%;text-align:left;transform:none}.cocktails h2{font-size:clamp(70px,7.5vw,110px)}.night{color:#f6e6cc}.night header{background:linear-gradient(#121b30b0,transparent)}.night em{color:#eeb77c}.night .chapters,.night #found{background:#172237dc;color:#f7e2bc;border-color:#9e805a55}.night .chapters button.active{color:#ffd093}.night footer{background:#152035;color:#f6e6cc}.night .text-button{border-color:#dfb67c}.night .toast{background:#f7e4c8ed;color:#41352a}.night .object-hint{color:#41352a}.cocktails,.sunset{color:#fff0d7}.evening-guests img{transform-origin:50% 100%}.night .progress b{background:#dbaa68}@media(max-width:650px){#journey{height:800vh}.moon,.sun-disc{width:100px;left:75%;top:10%}.sun-disc{left:8%;top:27%}.sunset{left:7%;top:22%;width:86%}.sunset h2{font-size:53px}.cocktails{left:7%;top:14%;width:87%}.cocktails h2{font-size:70px}.cocktails .eyebrow{margin-bottom:14px}.evening-pavilion{width:155%;height:68%;right:-20%;bottom:0;object-fit:contain;object-position:right bottom}.evening-guests{width:78%;left:16%;bottom:5%}.chapters{gap:7px;padding:0 12px}.chapters span{width:7px}.chapters button{font-size:7.5px}.cocktails .text-button{margin-top:4px}.cocktails .discovery{font-size:18px}}@media(prefers-reduced-motion:reduce){#journey{height:auto}.night-tint,.moon,.sun-disc,.evening-pavilion,.evening-guests{display:none}.cocktails,.sunset{color:#493e2e}.cocktails em,.sunset em{color:#a05b35}}
.sun-disc{filter:sepia(1) saturate(1.6) brightness(1.1) blur(1px)}
.sunset em{color:#ffcf91}

/* Day two: shared landscape, third ascent and two illustrated foregrounds. */
#journey{height:1320vh}.dawn,.baraat,.varmala{left:7%;top:20%;width:45%;text-align:left;transform:none}.dawn{width:75%}.baraat h2,.varmala h2{font-size:clamp(64px,7vw,100px)}.baraat-guests{width:61%;right:0;bottom:8%;z-index:6;opacity:0}.varmala-couple{height:82%;width:48%;right:1%;bottom:3%;z-index:6;opacity:0}.varmala-couple img{height:100%;width:100%;object-fit:contain}.baraat-guests img{transform-origin:50% 100%}.varmala .discovery{margin-top:22px}.dawn{color:#493e2e}.chapters{gap:11px}.chapters span{width:8px}
@media(max-width:650px){#journey{height:1250vh}.dawn,.baraat,.varmala{left:7%;top:14%;width:87%}.dawn h2{font-size:49px}.baraat h2,.varmala h2{font-size:59px}.baraat .eyebrow,.varmala .eyebrow{margin-bottom:12px}.baraat-guests{width:112%;right:-6%;bottom:12%}.varmala-couple{height:50%;width:90%;right:5%;bottom:9%}.varmala .discovery{margin-top:12px}.varmala .event-time{margin:8px 0}.varmala .text-button{margin-top:0;padding:7px 0}.chapters{gap:7px;padding:0 11px}.chapters span{width:4px}.chapters button{font-size:7.5px}.baraat .text-button{margin-top:3px}}
@media(prefers-reduced-motion:reduce){#journey{height:auto}.baraat-guests,.varmala-couple{display:none}.dawn,.baraat,.varmala{color:#493e2e}}
@media(max-width:650px){.varmala-couple{height:46%}}

/* Reception and unified type hierarchy. */
#journey{height:1820vh}.last-ascent,.reception,.dance-finale{left:7%;top:20%;width:45%;text-align:left;transform:none;color:#fff0d7}.last-ascent em{color:#edbd83}.reception-arrival,.first-dance{height:75%;width:45%;right:6%;bottom:5%;z-index:6;opacity:0;object-fit:contain}.first-dance img{width:100%;height:100%;object-fit:contain;transform-origin:50% 90%}.dancing .first-dance img{animation:first-sway 5s ease-in-out infinite alternate}@keyframes first-sway{from{transform:translateX(-7px) rotate(-2deg)}to{transform:translateX(7px) rotate(2deg)}}
.copy h2,.carnival h2,.cocktails h2,.baraat h2,.varmala h2{font-size:clamp(54px,6.4vw,92px);line-height:1;letter-spacing:-2px}.eyebrow{font-size:12px;letter-spacing:1.5px;margin-bottom:20px}.event-time,.place{font:14px/1.65 Arial,sans-serif;letter-spacing:.3px;margin:20px 0}.text-button{font-size:13px;letter-spacing:.2px;margin-top:8px}.names .place{margin-top:26px}.chapters{gap:18px;max-width:96%;padding:0 18px}.chapters button{font-size:11px;min-height:46px}#found{display:none}header #sound{font-size:12px}.copy .eyebrow{max-width:100%}
@media(max-width:650px){#journey{height:1700vh}.last-ascent,.reception,.dance-finale{left:7%;top:15%;width:86%}.copy h2,.carnival h2,.cocktails h2,.baraat h2,.varmala h2{font-size:54px;line-height:1;letter-spacing:-1.5px}.eyebrow{font-size:11px;letter-spacing:1px;margin-bottom:16px}.event-time,.place{font-size:13px;margin:16px 0}.text-button{font-size:13px}.reception-arrival,.first-dance{height:53%;width:88%;right:6%;bottom:9%}.chapters{gap:0;justify-content:space-between;width:94%;padding:0 10px}.chapters button{font-size:10px;padding:0 3px}.varmala-couple{height:49%}.names h1{margin-top:14px}.names .place{margin-top:22px}}
@media(prefers-reduced-motion:reduce){#journey{height:auto}.reception-arrival,.first-dance{display:none}.last-ascent,.reception,.dance-finale{color:#493e2e}.dancing .first-dance img{animation:none}}

/* Final mobile continuity and reserved text / illustration regions. */
body,em,header,.chapters{transition:color .5s,background-color .5s}img{user-select:none;-webkit-user-drag:none}.copy{padding-bottom:0}.toast{font:14px/1.5 Arial,sans-serif;bottom:84px}.stage{height:100svh}.chapters{bottom:max(16px,env(safe-area-inset-bottom))}
@media(max-width:650px){
 #journey{height:1700svh}.copy,.hosts,.ascent,.carnival,.sunset,.cocktails,.dawn,.baraat,.varmala,.last-ascent,.reception,.dance-finale{top:clamp(88px,13svh,110px)}
 .copy h2,.carnival h2,.cocktails h2,.baraat h2,.varmala h2{font-size:clamp(43px,12.8vw,54px)}
 .guests,.vendor,.evening-guests,.baraat-guests,.varmala-couple,.reception-arrival,.first-dance{height:min(46svh,var(--art-height,40svh));bottom:10%;}
 .guests img,.vendor img,.evening-guests img,.baraat-guests img{width:100%;height:100%;object-fit:contain;object-position:bottom}
 .guests{width:49%;left:1%}.vendor{width:42%;right:0}.evening-guests{width:92%;left:4%}.baraat-guests{width:100%;right:0}.varmala-couple{width:94%;right:3%}
 .gondola{width:150px;left:61%;transform-origin:50% 100%}.kite{width:58px;left:auto;right:3%;top:auto;bottom:40%;}.kite-far{display:none}
 .moon,.sun-disc{width:60px;top:9%}.sun-disc{top:31%}
 .names h1{font-size:clamp(68px,20vw,88px);margin-top:0}.names .eyebrow{margin-bottom:14px}.names .place{margin-top:18px}.hosts p:not(.eyebrow){font:15px/1.5 Arial,sans-serif}
 .text-button{min-height:44px}.event-time{margin:14px 0}.chapters button{font-size:10px;min-height:46px}.flowers{pointer-events:none}
}
@media(max-width:650px) and (max-height:650px){.copy,.hosts,.ascent,.carnival,.sunset,.cocktails,.dawn,.baraat,.varmala,.last-ascent,.reception,.dance-finale{top:82px}.copy h2,.carnival h2,.cocktails h2,.baraat h2,.varmala h2{font-size:42px}.names h1{font-size:62px}.eyebrow{margin-bottom:10px!important;font-size:10px}.event-time{margin:10px 0}.names .place{margin-top:12px}.names .text-button{margin-top:0}.text-button{margin-top:0;padding:10px 0}.gondola{width:125px}}
@media(prefers-reduced-motion:reduce){#journey{height:auto}.stage{height:auto}.copy{margin:50px 0}body,em,header,.chapters{transition:none}}
/* Keep text contrast tied to the current sky, including reverse navigation. */
body,em,header,.chapters{transition:none}.sunset,.dawn,.last-ascent{color:inherit}.sunset em,.last-ascent em{color:#a05b35}.night .sunset em,.night .last-ascent em{color:#eeb77c}
