/* A cinematic reveal, followed by portraits with their own city backdrops. */
.hero{background:#251720;min-height:100svh}
.hero-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3;opacity:.74;transform:scale(1.2);filter:saturate(.8)}
.hero:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#190d1ee0 0%,#29122ca0 40%,#4b182278 65%,#160e21ed 100%)}
.hero:after{background:radial-gradient(ellipse at center,transparent 25%,#1609178a 100%)}
.hero-glow{position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 30%,#ffc97428 48%,transparent 62%);opacity:0;pointer-events:none}
.entered .hero-backdrop{animation:cinema-arrive 4s cubic-bezier(.16,1,.3,1) both}
.entered .hero-glow{animation:golden-reveal 3.6s .2s both}
.hero-border{border-color:#efcc8855;inset:92px 5% 60px;border-radius:0}
.hero-border:before,.hero-border:after{content:'';position:absolute;width:45px;height:45px;border:1px solid #e6c28b;top:-1px;left:-1px;border-right:0;border-bottom:0}
.hero-border:after{inset:auto -1px -1px auto;transform:rotate(180deg)}
.hero h1{text-shadow:0 5px 35px #0007}
.hero h1>em{color:#f3d494}
.hero .eyebrow{font-size:.875rem;letter-spacing:.2em}
.hero .prelude{margin:25px 0 24px}
.hero-bottom .occasion{font-size:.875rem;letter-spacing:.18em}
.hero-bottom p{color:#f6e5d6}
.hero .scroll-cue{font-size:.875rem;letter-spacing:.06em;color:#f0ddc5}
.portrait-journey{position:relative;background:#151a20;color:#fff4df}
.portrait-stage{position:relative}
.portrait-scene{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:#17282a}
.scene-background{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;object-position:center;z-index:-3;filter:saturate(.8);transform:translateY(var(--scene-pan,0px)) scale(1.05)}
.scene-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#10242bdd 0%,#152c3980 45%,#1e283338 75%),linear-gradient(0deg,#101f2beb,transparent 55%,#111b2445);pointer-events:none}
.scene-prakrati{background:#303831}
.scene-prakrati .scene-shade{background:linear-gradient(270deg,#153b32e8,#203c2f90 50%,#372e3030),linear-gradient(0deg,#14251feb,transparent 70%)}
.scene-together{background:#3c2036}
.scene-together .scene-shade{background:linear-gradient(#22112a9c,#501d3168 40%,#211227ec 100%)}
.scene-together .scene-background{object-position:center 65%;filter:saturate(.9)}
.scene-outline{position:absolute;inset:40px;border:1px solid #efcd893d;pointer-events:none;z-index:-1}
.scene-content{width:min(1180px,100%);margin:auto;padding:70px 70px 95px;min-height:100svh;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.scene-copy{transform:translateY(var(--copy-y,0px));opacity:var(--copy-opacity,1)}
.scene-kicker{font-size:.875rem;letter-spacing:.18em;color:#efd2a3;margin-bottom:22px}
.scene-copy h2{font-size:clamp(5rem,9vw,9.5rem);color:#fff3df;line-height:.95;letter-spacing:-.03em;text-shadow:0 5px 35px #0005}
.scene-location{margin-top:24px;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:2rem;color:#f1d5b2;display:flex;align-items:center;gap:18px}
.scene-location:before{content:'';width:40px;height:1px;background:#e8c289}
.portrait-frame{position:relative;align-self:center;margin:0 auto;width:min(100%,360px);aspect-ratio:2/3;border-radius:180px 180px 5px 5px;padding:9px;border:1px solid #efd6a09c;background:#dcb77c15;box-shadow:0 35px 75px #020c1678;transform:translateY(var(--portrait-y,0px)) rotate(-3deg)}
.portrait-frame:after{content:'';position:absolute;inset:-11px;border:1px solid #efd6a035;border-radius:inherit;pointer-events:none}
.portrait-frame img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;border-radius:inherit}
.portrait-frame figcaption{position:absolute;bottom:17px;left:18px;right:18px;font-size:.75rem;text-align:center;color:#f4e2c7;text-shadow:0 2px 4px #000;background:#16211c85;border-radius:20px;line-height:1.7;padding:4px}
.scene-prakrati .scene-copy{grid-column:2;grid-row:1}
.scene-prakrati .portrait-frame{grid-column:1;grid-row:1;transform:translateY(var(--portrait-y,0px)) rotate(3deg)}
.scene-together .scene-content{display:flex;flex-direction:column-reverse;gap:28px;justify-content:center;text-align:center;padding-top:55px;padding-bottom:85px}
.scene-together .scene-kicker{margin-bottom:15px}
.scene-together h2{font-size:clamp(3.4rem,6vw,6.5rem);line-height:1.05}
.scene-together h2 em{color:#f5d494}
.scene-together .scene-location{justify-content:center;margin-top:16px;font-size:1.6rem}
.scene-together .scene-location:after{content:'';width:40px;height:1px;background:#e8c289}
.joined-portraits{width:min(550px,70vw);display:grid;grid-template-columns:1fr 1fr;gap:26px;position:relative;padding-bottom:20px}
.joined-portraits .portrait-frame{width:100%;max-height:45svh;aspect-ratio:2/3}
.joined-portraits .portrait-ronak{transform:translateX(var(--join-left,0px)) rotate(-5deg)}
.joined-portraits .portrait-prakrati{transform:translateX(var(--join-right,0px)) rotate(5deg)}
.portrait-ampersand{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);z-index:3;color:#f2d69c;text-shadow:0 2px 12px #211025;font:italic 5rem 'Cormorant Garamond',Georgia,serif}
.standin-note{position:absolute;bottom:-7px;left:0;right:0;font-size:.75rem;letter-spacing:.04em;color:#e9d6c8;text-align:center}
.scene-progress,.scene-scroll-hint{display:none}
.cinematic .portrait-journey{height:350svh}
.cinematic .portrait-stage{position:sticky;top:0;height:100svh;overflow:hidden}
.cinematic .portrait-scene{position:absolute;inset:0;opacity:var(--scene-opacity,0);pointer-events:none;will-change:opacity}
.cinematic .portrait-scene.is-active{z-index:1}
.cinematic .scene-progress{display:flex;align-items:center;gap:18px;position:absolute;bottom:30px;left:70px;font-size:.875rem;letter-spacing:.08em;color:#eed7b7;z-index:4;pointer-events:none}
.scene-track{display:block;width:100px;height:1px;background:#e9c58b50;overflow:hidden}
.scene-track i{display:block;height:100%;background:#f5d494;transform:scaleX(var(--journey-progress,0));transform-origin:left}
.cinematic .scene-scroll-hint{display:block;position:absolute;bottom:27px;right:70px;z-index:4;color:#ecd5b4;font-size:.75rem;letter-spacing:.15em;pointer-events:none}
.blessing{max-width:none;position:relative;isolation:isolate;padding-left:max(6%,calc((100vw - 1080px)/2));padding-right:max(6%,calc((100vw - 1080px)/2));background:#faf0dc}
.blessing:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#faf0dce8,#faf0dcf2),url('assets/celebration.jpg') center/cover;opacity:.7}
.blessing-image{background:#be874716;max-width:430px}
.blessing-copy .eyebrow{font-size:.875rem}
.promise{background:radial-gradient(ellipse at 50% 15%,#674235,#321b2c 65%,#211627)}
.promise-rings{margin:0 auto 45px;width:180px;height:180px;border-radius:50%;overflow:hidden;border:7px solid #f8e9cc;box-shadow:0 0 0 1px #d1a765,0 20px 50px #0005}
.promise-rings img{width:100%;height:100%;object-fit:cover;transform:scale(2.4);transform-origin:78% 43%}
.promise:before{width:min(95vw,900px)}
.celebration{background:linear-gradient(#faf0dc,#f9f1e4)}
.details-card{background:#fffaf1b3;box-shadow:0 25px 65px #6e422410}
@keyframes cinema-arrive{from{transform:scale(1.2);filter:saturate(.5) blur(6px);opacity:.4}to{transform:scale(1.04);filter:saturate(.85) blur(0);opacity:.8}}
@keyframes golden-reveal{0%{opacity:0;transform:translateX(-55%)}35%{opacity:1}100%{opacity:0;transform:translateX(55%)}}
@media(min-width:1500px){.portrait-frame{width:400px}.joined-portraits{width:610px}}
@media(max-width:800px){
 .hero h1{font-size:clamp(2.6rem,18vw,7.2rem)}.hero-border{inset:90px 20px 65px}.hero .eyebrow{font-size:.75rem;letter-spacing:.16em}.hero .prelude{margin:22px 0}.hero-bottom{margin-top:30px}.hero-backdrop{object-position:30% center}
 .scene-outline{inset:18px 16px}.scene-content{padding:60px 30px 100px;gap:35px}.scene-copy h2{font-size:clamp(4.5rem,11vw,6.5rem)}.scene-kicker{font-size:.75rem;letter-spacing:.14em}.scene-location{font-size:1.7rem}.portrait-frame{max-width:300px}
 .scene-together .scene-content{padding:65px 35px 100px;gap:30px}.joined-portraits{width:min(500px,75vw)}.scene-together h2{font-size:clamp(3rem,7vw,5rem)}
 .cinematic .scene-progress{left:35px}.cinematic .scene-scroll-hint{right:35px;font-size:.75rem;letter-spacing:.07em}
}
@media(max-width:600px){
 .scene-content,.scene-prakrati .scene-content{display:flex;flex-direction:column;justify-content:center;gap:30px;padding:52px 30px 95px;text-align:center}
 .scene-copy h2{font-size:clamp(2.5rem,19vw,6.2rem)}.scene-kicker{margin-bottom:12px}.scene-location{margin-top:14px;justify-content:center;font-size:1.5rem}.scene-location:before{width:26px}.scene-location:after{content:'';width:26px;height:1px;background:#e8c289}
 .portrait-frame{height:43svh;width:auto;max-width:65vw;min-height:230px;aspect-ratio:2/3;padding:7px}.scene-shade{background:linear-gradient(#112f37c9,#18293e6b 45%,#132230eb)}.scene-prakrati .scene-shade{background:linear-gradient(#183b32d9,#203a3278 45%,#12231fed)}
 .scene-ronak .scene-background{object-position:65% center}.scene-prakrati .scene-background{object-position:68% center}
 .scene-together .scene-content{display:flex;flex-direction:column;justify-content:center;gap:40px;padding:55px 25px 95px}.scene-together .scene-copy h2{font-size:clamp(2.9rem,11vw,4rem);max-width:350px;margin:auto}.scene-together .scene-kicker{font-size:.75rem}.scene-together .scene-location{margin-top:18px}
 .joined-portraits{width:85vw;max-width:350px;gap:18px}.joined-portraits .portrait-frame{height:auto;width:100%;min-height:0;max-height:none}.portrait-ampersand{font-size:3.6rem}.standin-note{bottom:-15px}
 .cinematic .portrait-journey{height:330svh}.cinematic .scene-progress{left:28px;bottom:30px;gap:12px}.scene-track{width:60px}.cinematic .scene-scroll-hint{right:27px;bottom:28px;font-size:.75rem;letter-spacing:.03em}
 .blessing{padding:80px 24px 85px}.blessing-image{max-width:290px}.blessing-image img{height:320px}.blessing-copy .eyebrow{font-size:.75rem}.promise-rings{width:140px;height:140px;margin-bottom:35px}
}
@media(max-height:700px) and (min-width:601px){.portrait-frame{width:260px}.scene-content{padding:45px 60px 75px}.scene-together .joined-portraits{width:370px}.scene-together .scene-content{gap:20px;padding-top:35px}.scene-together h2{font-size:3.8rem}}
@media(prefers-reduced-motion:reduce){.hero-backdrop{transform:none;filter:none;opacity:.8}.scene-copy,.portrait-frame,.scene-prakrati .portrait-frame,.joined-portraits .portrait-frame{transform:none;opacity:1}.scene-background{transform:none}.scene-outline{border-color:#efcd8955}}
.portrait-journey.is-visible .portrait-scene.is-active .portrait-frame{animation:portrait-arrive 1.4s cubic-bezier(.16,1,.3,1) both}
.portrait-journey.is-visible .portrait-scene.is-active h2{animation:portrait-title-arrive 1.25s .1s cubic-bezier(.16,1,.3,1) both}
@keyframes portrait-arrive{from{opacity:0;filter:blur(9px)}to{opacity:1;filter:blur(0)}}
@keyframes portrait-title-arrive{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){.portrait-journey .portrait-frame,.portrait-journey h2{animation:none;filter:none;clip-path:none}}
@media(max-height:500px) and (min-width:601px) and (max-width:1000px){.scene-content{padding:30px 60px 65px;gap:35px}.portrait-frame{height:65svh;width:auto;max-width:none;min-height:0}.scene-copy h2{font-size:4.5rem}.scene-kicker{font-size:.75rem;margin-bottom:12px}.scene-location{font-size:1.5rem;margin-top:16px}.scene-together .scene-content{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:35px 55px 65px}.scene-together .joined-portraits{width:100%;max-width:310px}.scene-together .portrait-frame{height:58svh;max-height:none;width:100%}.scene-together h2{font-size:3.3rem}.scene-together .scene-kicker{font-size:.75rem}}
html:not(.cinematic) .scene-copy{opacity:1;transform:none}
html:not(.cinematic) .portrait-frame,html:not(.cinematic) .scene-prakrati .portrait-frame,html:not(.cinematic) .joined-portraits .portrait-frame{transform:none}
html:not(.cinematic) .scene-background{transform:none}
