@font-face{font-family:Cormorant;src:url('fonts/cormorant-regular.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Cormorant;src:url('fonts/cormorant-italic.ttf') format('truetype');font-display:swap;font-weight:400;font-style:italic}
@font-face{font-family:Manrope;src:url('fonts/manrope-regular.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Allura;src:url('fonts/allura-regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:NotoSerifDevanagari;src:url('fonts/noto-serif-devanagari-regular.ttf') format('truetype');font-display:swap;font-weight:400;unicode-range:U+0900-097F,U+A8E0-A8FF}
:root{--cream:#f7f0e4;--paper:#fff9ed;--green:#254b3d;--deep:#203d33;--gold:#a27d40;--ink:#293e32;--muted:#696650;--line:#baa57f66;--serif:Cormorant,Georgia,serif;--sans:Manrope,Arial,sans-serif;--script:Allura,cursive;--header:80px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:var(--header)}body{margin:0;background:var(--cream);color:var(--ink);font:1rem/1.7 var(--sans)}body.modal-open{overflow:hidden}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.04}h2{overflow-wrap:anywhere;font-size:clamp(3.25rem,5.2vw,5.25rem);letter-spacing:-.035em}h2 em{color:#6e7350;font-weight:400}p{overflow-wrap:break-word}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit}button:disabled{cursor:default}svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.25;flex:none}img{display:block;max-width:100%}button:focus-visible,a:focus-visible{outline:2px solid #b88a43;outline-offset:5px}[tabindex="-1"]:focus{outline:none}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:10px 18px;background:var(--paper);transform:translateY(-200%)}.skip-link:focus{transform:none}.script{font-family:var(--script);font-weight:400}.eyebrow,.chapter-label{font-family:var(--sans);font-size:.875rem;line-height:1.6;letter-spacing:.17em}.chapter-label{display:flex;align-items:center;gap:18px;margin-bottom:45px}.chapter-label>span{color:#806032;letter-spacing:.06em}.section-pad{padding:100px 7%}.section-inner{max-width:1240px;margin:auto;min-width:0}.flourish{display:flex;align-items:center;justify-content:center;gap:13px;color:var(--gold);font-family:var(--serif);font-size:1.4375rem}.flourish i{display:block;height:1px;width:36px;background:currentColor;opacity:.55}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:52px;padding:14px 26px;font-family:var(--sans);font-size:.875rem;line-height:1.5;border:1px solid transparent;border-radius:2px;transition:background .2s,transform .2s}.button:hover{filter:brightness(1.035)}.primary{background:#f7e9cc;color:#533d28;border-color:#f4d8a1}.primary:hover{background:#fff7e9}.outline{border-color:#897b59;background:transparent}.outline:hover{background:#e8ddc7}.text-link{font-size:.875rem;display:inline-flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid currentColor;width:fit-content;background:transparent;padding:6px 0}.text-link svg{width:18px}.enhanced-only{display:none}.js .enhanced-only{display:flex}.js:not(.site-entered) .site-shell{visibility:hidden}#invitation-audio{display:none}
/* A typographic ligature: the italic S weaves across the T. */
.monogram{position:relative;display:block;flex:none;width:3.5rem;height:3.6rem;color:var(--green);font-family:var(--serif);line-height:1}
.monogram .initial-t{position:absolute;left:.04em;top:0;font-size:3.45rem;line-height:1;font-style:normal}
.monogram .initial-s{position:absolute;left:.30em;top:.19em;font-size:3.1rem;line-height:1;font-style:italic;text-shadow:-1px 0 var(--cream),0 1px var(--cream)}
/* Two fixed scene panels avoid changing the layout during the opening. */
.opening{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;overflow:hidden;color:var(--green);background:radial-gradient(ellipse at 50% 42%,#fffbf3 0,#f7f0e4 57%,#e8ddc9 100%)}
.opening::backdrop{background:var(--cream)}
.sealed-view,.letter-view{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.sealed-view{display:flex;flex-direction:column;align-items:center;padding:max(22px,env(safe-area-inset-top)) 32px max(30px,env(safe-area-inset-bottom))}
.opening-intro{flex:none;text-align:center;margin:16px 0 0;max-width:100%;z-index:1}
.opening-kicker{font:italic 1.25rem/1.5 var(--serif);color:#7b6443;margin-bottom:10px}
.opening-intro h1{font-size:clamp(2.7rem,4.7vw,4.3rem);letter-spacing:-.025em;margin:0 0 20px;line-height:1.08}
.opening-couple{font:1.8rem/1.4 var(--serif)}
.envelope-stage{position:relative;flex:none;display:grid;place-items:center;width:min(650px,100%);min-height:340px;aspect-ratio:1.5;margin:12px auto 0;isolation:isolate}
.envelope{position:relative;width:100%;aspect-ratio:1.5;perspective:1100px;isolation:isolate}
.envelope-interior{position:absolute;inset:10% 4% 12%;background:linear-gradient(180deg,#f4e6c8,#e2c88a);border-radius:4px;z-index:0;box-shadow:inset 0 8px 16px #6b4a2214}
.envelope-pocket,.envelope-flap{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.envelope-pocket{z-index:3;clip-path:polygon(0 0,3.8% 0,3.8% 9.5%,5% 18.6%,50.1% 67.7%,95% 18.6%,96.3% 9.5%,96.3% 0,100% 0,100% 100%,0 100%)}
.envelope-flap{z-index:1;transform-origin:50% 9.5%;clip-path:polygon(3.8% 9.5%,96.3% 9.5%,95% 18.6%,50.1% 67.7%,5% 18.6%)}
.envelope-flap img{width:100%;height:100%;object-fit:contain}
.letter-mini{position:absolute;left:12%;top:15%;width:76%;height:66%;background:#fff9e9 url('/assets/invitation-paper.webp') center/100% 100%;box-shadow:0 1px 8px #422e2b22;z-index:2}
.seal{position:absolute;left:50%;top:58%;width:116px;height:116px;transform:translate(-50%,-50%);z-index:5;background:transparent;padding:0;border-radius:50%;filter:drop-shadow(1px 5px 4px #4926143b)}
.seal>img{width:100%;height:100%;object-fit:contain}.seal>.monogram{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.72);color:#f4d092}
.seal .monogram .initial-s{text-shadow:-1px 0 #972526,0 1px #5e141c}.seal .monogram .initial-t{text-shadow:0 1px #6b1b1b}.seal:hover:not(:disabled)>img{filter:brightness(1.07)}
.seal:focus-visible{outline:2px solid #ad7136;outline-offset:5px}.seal:not(.keyboard-focus):focus{outline:none}
.opening-bottom{flex:none;text-align:center;min-height:95px;padding-top:36px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px}
.opening-bottom p:not(.opening-cue){font:1.3125rem/1.4 var(--serif);color:#796b50}
.letter-backdrop{position:absolute;inset:0;background:#b63732 url('/assets/letter-backdrop-red.webp') center/100% 100%;opacity:0;pointer-events:none}
.letter-view{display:flex;flex-direction:column;align-items:center;visibility:hidden;opacity:0;padding:34px 24px;pointer-events:none}
.letter-content{margin:auto 0;display:flex;flex-direction:column;align-items:center;gap:30px;width:100%;padding:12px 0}
.letter{width:min(420px,100%);min-height:640px;padding:51px 39px 120px;text-align:center;color:#344b3b;background:#fff8e9 url('/assets/invitation-paper.webp') center/100% 100%;box-shadow:0 17px 48px #42181338}
.letter-greeting{font-size:1.9375rem;line-height:1.2;margin-bottom:15px}.letter-invitation{font:1.125rem/1.4 var(--serif)}
.letter h2{font-size:2.9rem;line-height:1;letter-spacing:0;margin:24px 0 19px}.letter h2 small{display:block;font:.875rem/1.5 var(--sans);letter-spacing:.14em;margin-top:6px}.letter h2 i{display:block;font:2rem/1.1 var(--script);color:#8e7046;margin:10px 0 12px}.letter .flourish{font-size:1.25rem;margin-bottom:12px}.letter-date{font:.875rem/1.5 var(--sans);letter-spacing:.015em;margin-bottom:9px}.letter-venue{font:1.1875rem/1.35 var(--serif)}
.opening.letter-visible .letter-view{visibility:visible}.opening[data-state="reading"] .sealed-view,.opening[data-state="entering"] .sealed-view{visibility:hidden;pointer-events:none}
.opening[data-state="reading"] .letter-view,.opening[data-state="entering"] .letter-view{visibility:visible;opacity:1;pointer-events:auto}.opening[data-state="reading"] .letter-backdrop,.opening[data-state="entering"] .letter-backdrop{opacity:1}
/* Main invitation */
.site-header{position:sticky;top:0;z-index:20;min-height:var(--header);padding:8px 5%;display:flex;gap:28px;align-items:center;background:#fff9ef;border-bottom:1px solid #baa57f45}
.brand{display:flex;align-items:center;min-height:44px;flex:none}.header-location{font:italic 1.2rem/1.4 var(--serif);letter-spacing:.03em;color:#726847;min-width:0}.site-header nav{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:29px;font-size:.875rem}.site-header nav a{min-height:44px;display:flex;align-items:center}.site-header nav a:hover{color:#997343}.menu-toggle{display:none}
.scenic{position:relative;isolation:isolate;overflow:hidden}.scene-art{position:absolute;inset:0;z-index:-2}.scene-art img{width:100%;height:100%;object-fit:cover}
.welcome{min-height:max(760px,calc(100svh - var(--header)));text-align:center;display:flex;align-items:flex-start;justify-content:center;padding:80px 20px 120px}.welcome .scene-art img{object-position:center 62%}.welcome-wash{position:absolute;inset:0;z-index:-1;background:linear-gradient(#fcf1db40,transparent 60%,#203d3340)}.welcome-copy{width:100%;max-width:1260px}.welcome-copy>.eyebrow{color:#595e44;font-size:.875rem}
.welcome-copy h1{font-size:clamp(5.2rem,8.2vw,8.5rem);letter-spacing:-.04em;margin:16px auto 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;line-height:1.1;color:#244334;text-shadow:0 2px 20px #fff4e560;overflow-wrap:anywhere}
.welcome-copy h1>.welcome-weds{font-size:.37em;letter-spacing:0;color:#82704a;line-height:1;padding-top:15px}.welcome-script{font-size:2.65rem;line-height:1.15;color:#44533b;margin:12px 0 25px}.welcome-date{font-size:.875rem;letter-spacing:.13em;color:#394735;line-height:1.8}.welcome-date>.date-dot{padding:0 17px}.welcome-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:6px;color:#fff9ed;font-size:.875rem;text-shadow:0 1px 6px #173026;padding:12px;white-space:nowrap}.welcome-scroll svg{width:20px;height:25px}
.dates{background:#f9f2e6}.dates-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8%;align-items:center}.dates-intro>p{font:1.5625rem/1.45 var(--serif);margin:25px 0 23px;color:#68674e}.dates-intro h2 em{color:#917346}.date-stationery{padding:12px;background:#fff9ef;border:1px solid #c3a875;box-shadow:0 10px 28px #5f452c09;min-width:0}.date-border{padding:37px 25px 28px;text-align:center;border:1px solid #c3a875;position:relative}.date-border:before,.date-border:after{content:'';position:absolute;width:9px;height:9px;background:#fff9ef;border:1px solid #c3a875;transform:rotate(45deg);left:calc(50% - 5px)}.date-border:before{top:-5px}.date-border:after{bottom:-5px}.date-numerals{font:clamp(5.5rem,8vw,8rem)/1.1 var(--serif);letter-spacing:-.045em;margin-top:12px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px}.date-numerals i{font-family:var(--script);font-size:.55em;padding:0 14px;color:#a0824b}.date-month{font-size:.875rem;letter-spacing:.18em}.date-border>.flourish{margin:25px 0 16px}.countdown{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px;min-height:70px}.count-unit{display:flex;flex-direction:column;align-items:center;flex:1 0 3rem;min-width:0}.count-unit strong{font:2.25rem/1.2 var(--serif);font-variant-numeric:tabular-nums}.count-unit span{font-size:.875rem;letter-spacing:.03em;color:#6e6b51}.countdown-caption{font-size:.875rem;letter-spacing:.08em;margin-top:19px;color:#796b4e}.countdown-message{font:1.875rem/1.2 var(--serif)}
.venue{display:grid;grid-template-columns:1.08fr 1fr;background:#e9eddf}.venue-art-wrap{position:relative;min-height:800px;overflow:hidden}.venue-art{position:absolute;inset:0}.venue-art img{width:100%;height:100%;object-fit:cover;object-position:48% center}.art-caption{position:absolute;bottom:30px;left:35px;font-size:.875rem;letter-spacing:.14em;background:#fff7e8ee;color:#475039;padding:10px 18px}.venue-copy{padding:78px 13% 78px 12%;display:flex;flex-direction:column;justify-content:center;min-width:0}.venue-copy .chapter-label{margin-bottom:30px;gap:14px}.venue-script{font-size:2rem;margin-bottom:12px;color:#7c7048;line-height:1.25}.venue-copy h2{font-size:clamp(3.5rem,5vw,5rem)}.venue-copy h2 em{color:#626d45}.venue-description{margin:24px 0;max-width:360px;color:#5c6550}.venue-address{padding:23px 0 0;margin-bottom:27px;border-top:1px solid #a6ad925c}.venue-address .eyebrow{font-size:.875rem;color:#6d7059;margin-bottom:10px}.venue-address h3{font-size:1.875rem;line-height:1.2}.venue-address>p:last-child{font-size:.875rem;margin-top:7px}.venue-copy>.button{align-self:flex-start}
.celebrations{background:#fff8ec;padding-top:95px;padding-bottom:90px}.celebrations .chapter-label{margin-bottom:30px}.celebrations-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:54px}.celebrations-top h2{font-size:clamp(3rem,4.9vw,4.65rem)}.celebrations-top h2 em{color:#a57d43}.celebrations-top>p{font:1.5625rem/1.4 var(--serif);color:#6b6b54;padding-bottom:7px}.celebrations-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:7%;align-items:stretch}.schedule{min-width:0}.day-row{display:grid;grid-template-columns:minmax(125px,max-content) minmax(0,1fr);gap:34px;padding:32px 0;border-top:1px solid var(--line)}.day-label>.eyebrow{font-size:.875rem;letter-spacing:.08em}.day-label h3{font-size:3.875rem;margin:12px 0 9px;line-height:.9}.day-label h3>span{display:block;font-size:1.4375rem;margin-top:9px;letter-spacing:0;white-space:nowrap;word-break:normal;overflow-wrap:normal}.day-caption{font-size:.875rem;letter-spacing:.12em;color:#70654b}.event-list{border-left:1px solid #bf9d5e78;padding-left:27px;padding-top:3px;min-width:0}.event{position:relative;padding-bottom:24px}.event:last-child{padding-bottom:0}.event-node{position:absolute;left:-31px;top:14px;width:7px;height:7px;transform:rotate(45deg);background:#b5904f}.event h4{font-size:1.875rem;line-height:1.2;margin-bottom:5px;overflow-wrap:break-word}.event>p{font-size:1rem;line-height:1.65;color:#6a6953}.event time{display:block;font-size:.875rem;margin-top:6px;color:#6c5127}.schedule-note{border-top:1px solid var(--line);padding-top:20px;font-size:1rem;color:#716a52;line-height:1.7}.celebration-art{position:relative;overflow:hidden;border:1px solid #ceb57c55;border-radius:180px 180px 3px 3px;max-height:610px;background:#fff9ee;min-width:0}.celebration-art>img{width:100%;height:100%;object-fit:cover}.celebration-art>div{position:absolute;top:47%;left:10%;right:10%;text-align:center;padding:15px 2px}.celebration-art .script{font-size:2rem;line-height:1.3}.celebration-art>div>p:last-child{font:1rem/1.5 var(--serif);letter-spacing:.05em;margin-top:10px}
.compliments{position:relative;background:#f1e5da;text-align:center;color:#593e32}.compliments:before,.compliments:after{content:'';position:absolute;inset:24px;border:1px solid #bfa17966;pointer-events:none}.compliments:after{inset:30px;border-color:#bfa17940}.compliments-inner{padding:12px 0 18px;max-width:1000px}.compliments .chapter-label{justify-content:center;color:#775c42;margin-bottom:35px}.compliments h2{font-size:clamp(3.5rem,5vw,4.875rem)}.compliments h2 em{color:#9a7058}.compliments .flourish{margin:30px 0;color:#a9844d}.family-list{min-height:100px;display:flex;align-items:center;justify-content:center}.family-label{font:2.3rem/1.4 var(--serif);color:#6a4e3a}.family-names{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:18px 40px}.family-names li{font:1.8rem/1.45 var(--serif);max-width:100%;overflow-wrap:break-word}
.closing{min-height:750px;display:grid;place-items:start center;text-align:center;padding:80px 20px 160px;color:#3c4332}.closing .scene-art img{object-position:center 56%}.closing-wash{position:absolute;inset:0;z-index:-1;background:linear-gradient(#f8e5d36b,transparent 55%)}.closing-kicker{font:italic 1.5625rem/1.4 var(--serif);color:#68533c}.closing h2{font-size:5.5rem;margin:24px 0 20px;line-height:.88;letter-spacing:-.035em}.closing h2>.script{font-size:1.03em;line-height:1.2;color:#785a3b;letter-spacing:0}.closing-signoff{display:flex;flex-direction:column;align-items:center;font:1.5rem/1.45 var(--serif);color:#4c4c39;gap:3px}.signoff-label{font-style:italic}.signoff-names{display:block;white-space:nowrap;background:#fae7d7a8;padding:2px 12px;border-radius:2px}.site-footer{padding:26px 5%;display:flex;align-items:center;gap:35px;justify-content:space-between;background:#f5eddf}.site-footer>.enhanced-only{font-size:.875rem;min-height:44px}.site-footer>span{font:italic 1.25rem/1.5 var(--serif);color:#72624d;text-align:right}.js .reveal{opacity:1;transform:none}
@media(min-width:1600px){.section-pad{padding-left:max(7%,calc((100vw - 1240px)/2));padding-right:max(7%,calc((100vw - 1240px)/2))}.venue-copy{padding:80px 16% 80px 12%}}
@media(max-width:1100px){.header-location{display:none}.site-header nav{gap:22px}.section-pad{padding:80px 6%}.dates-layout{gap:6%}.date-border{padding-left:18px;padding-right:18px}.venue-art-wrap{min-height:770px}.venue-copy{padding:65px 10%}.venue-copy h2{font-size:3.625rem}.venue-script{font-size:1.875rem}.celebrations-layout{grid-template-columns:minmax(0,1fr) minmax(0,235px);gap:5%}.celebrations-top>p{font-size:1.375rem}.day-row{grid-template-columns:minmax(115px,max-content) minmax(0,1fr);gap:25px}.site-footer>span{max-width:270px}}
@media(max-width:800px){
 :root{--header:76px}.section-pad{padding:68px 26px}.chapter-label{margin-bottom:30px;gap:15px}
 .sealed-view{padding:max(16px,env(safe-area-inset-top)) 24px 25px}.opening-intro{margin-top:25px}.opening-kicker{font-size:1.2rem;max-width:290px;margin:0 auto 13px}.opening-intro h1{font-size:3.3rem;max-width:400px;margin-bottom:20px}.opening-couple{font-size:1.875rem}.envelope-stage{width:min(560px,100%);min-height:300px}.seal{width:100px;height:100px}.seal>.monogram{transform:translate(-50%,-50%) scale(.62)}.opening-bottom{min-height:110px}.opening-bottom p:not(.opening-cue){font-size:1.25rem}
 .letter-view{padding:24px 22px}.letter-content{gap:26px}.letter{width:min(390px,100%);min-height:610px;padding:46px 34px 108px}.letter-greeting{font-size:1.8rem}.letter-invitation{font-size:1.1rem}.letter h2{font-size:2.7rem;margin:22px 0 17px}.letter h2 i{font-size:1.9rem}.letter-venue{font-size:1.125rem}.letter-backdrop{background-image:url('/assets/letter-backdrop-red-mobile.webp');background-size:100% 100%}
 .site-header{padding:7px 24px;gap:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto}.brand .monogram{width:3rem;height:3.2rem}.brand .initial-t{font-size:3rem}.brand .initial-s{font-size:2.8rem}.header-location{display:block;text-align:center;font-size:1.125rem;letter-spacing:.025em;overflow-wrap:break-word}.menu-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;background:transparent}.menu-toggle svg{width:22px;height:22px}.site-header nav{position:absolute;top:100%;left:0;right:0;background:#fbf5ea;padding:15px 24px 22px;border-bottom:1px solid #c6b78f;box-shadow:0 16px 20px #203a2f0b;flex-direction:column;gap:0;align-items:stretch;visibility:hidden;pointer-events:none}.site-header nav a{min-height:48px;padding:8px 9px;font-size:1rem}.site-header.menu-open nav{visibility:visible;pointer-events:auto}
 .welcome{min-height:max(750px,calc(100svh - var(--header)));padding:58px 20px 115px}.welcome .scene-art img{object-position:center center}.welcome-copy>.eyebrow{max-width:285px;margin:auto;letter-spacing:.13em;line-height:1.8}.welcome-copy h1{flex-direction:column;font-size:5.5rem;gap:0;line-height:.92;margin-top:28px}.welcome-copy h1>.welcome-weds{font-size:2.5rem;line-height:1;padding:12px 0 14px}.welcome-script{font-size:2.125rem;margin:21px 0 24px}.welcome-date{font-size:.875rem;letter-spacing:.08em;max-width:290px;margin:auto}.welcome-date>.date-dot{display:none}.welcome-city{display:block;margin-top:3px}.welcome-scroll{bottom:25px}
 .dates-layout{grid-template-columns:minmax(0,1fr);gap:38px}.dates-intro h2{font-size:3.625rem}.dates-intro>p{font-size:1.5rem;margin:23px 0 17px}.date-stationery{max-width:500px;width:100%;margin:auto}.date-border{padding:29px 15px 25px}.date-numerals{font-size:6.3rem;margin:14px 0 1px}.date-month{letter-spacing:.15em}.countdown{gap:16px}.countdown-caption{letter-spacing:.055em}
 .venue{display:flex;flex-direction:column}.venue-art-wrap{min-height:0;height:510px;order:2}.venue-art img{object-position:center 65%}.venue-copy{padding:65px 26px 55px;order:1}.venue-script{font-size:2rem}.venue-copy h2{font-size:3.875rem}.venue-description{max-width:420px}.venue-address{max-width:420px;width:100%;margin-bottom:25px}.venue-address h3{font-size:1.875rem}.art-caption{bottom:22px;left:22px;padding:8px 12px;letter-spacing:.09em}
 .celebrations-top{display:block;margin-bottom:36px}.celebrations-top h2{font-size:3.375rem}.celebrations-top>p{font-size:1.5rem;margin-top:25px}.celebrations-layout{grid-template-columns:minmax(0,1fr);gap:35px}.day-row{grid-template-columns:minmax(108px,max-content) minmax(0,1fr);gap:25px;padding:29px 0}.day-label>.eyebrow{letter-spacing:.035em}.day-label h3{font-size:3.625rem}.day-label h3>span{font-size:1.375rem}.event-list{padding-left:23px}.event-node{left:-27px}.event h4{font-size:1.875rem}.celebration-art{height:390px;max-width:340px;width:100%;margin:auto}.celebration-art>img{object-position:center 31%}.celebration-art>div{top:49%;left:17%;right:17%}.celebration-art .script{font-size:2.1rem}
 .compliments:before{inset:14px}.compliments:after{inset:20px}.compliments-inner{padding:8px 0 16px}.compliments h2{font-size:3.4rem}.family-label{font-size:2rem}.family-names{gap:16px;flex-direction:column}.family-names li{font-size:1.6rem}
 .closing{min-height:750px;padding:66px 20px 160px}.closing .scene-art img{object-position:center center}.closing-kicker{font-size:1.5rem;max-width:300px;margin:auto}.closing h2{font-size:4.7rem;margin-top:29px}.closing-signoff{font-size:1.5rem;gap:4px}.signoff-names{font-size:1.45rem;padding:2px 8px;background:transparent}.site-footer{padding:27px 24px 32px;flex-wrap:wrap;gap:14px 28px;justify-content:space-between}.site-footer>.enhanced-only{font-size:.875rem}.site-footer>span{font-size:1.1875rem;max-width:none;width:100%;text-align:center;margin-top:10px}
}
@media(max-width:420px){
 .sealed-view{padding-left:18px;padding-right:18px}.opening-intro{margin-top:32px}.opening-intro h1{font-size:2.875rem;max-width:280px}.opening-couple{font-size:1.55rem}.opening-kicker{font-size:1.125rem}.envelope-stage{min-height:280px}.seal{width:88px;height:88px}.seal>.monogram{transform:translate(-50%,-50%) scale(.54)}.opening-bottom{min-height:105px}
 .letter-view{padding:22px 17px}.letter{padding:39px 27px 100px;min-height:575px}.letter-greeting{font-size:1.65rem}.letter-invitation{font-size:1.0625rem;line-height:1.35}.letter h2{font-size:2.45rem;margin:21px 0 16px}.letter h2 i{font-size:1.8rem;margin:8px 0 10px}.letter h2 small{letter-spacing:.09em}.letter-date{font-size:.875rem}.letter-venue{font-size:1.1rem}
 .section-pad{padding-left:24px;padding-right:24px}.site-header{padding-left:20px;padding-right:20px;gap:12px}.header-location{font-size:1.1rem}.welcome-copy h1{font-size:5.1rem}.welcome-copy h1>.welcome-weds{font-size:2.3rem}.welcome-script{font-size:2rem}.day-row{grid-template-columns:minmax(0,1fr);gap:24px}.day-label{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px}.day-label>.eyebrow{grid-column:1}.day-label h3{grid-column:1/-1;display:flex;gap:12px;align-items:baseline;font-size:3.1rem;line-height:1;margin:0}.day-label h3>span{font-size:1.4rem;margin:0}.day-caption{grid-column:2;grid-row:1}.event-list{margin-left:4px;padding-left:25px}.event-node{left:-29px}.date-numerals{font-size:5.7rem}.countdown{gap:12px}.compliments h2{font-size:3.15rem}.closing-signoff{font-size:1.4rem}.signoff-names{font-size:min(1.4rem,7vw)}
}
@media(max-width:350px){
 .opening-intro{margin-top:20px}.opening-intro h1{font-size:2.5rem;max-width:260px}.opening-couple{font-size:1.4rem}.envelope-stage{min-height:250px}.seal{width:80px;height:80px}.seal>.monogram{transform:translate(-50%,-50%) scale(.48)}.opening-bottom p:not(.opening-cue){font-size:1.1rem}
 .letter-view{padding-left:14px;padding-right:14px}.letter{padding:34px 25px 91px;min-height:550px}.letter-greeting{font-size:1.5rem}.letter-invitation{font-size:1rem;line-height:1.32}.letter h2{font-size:2.2rem}.letter-date{font-size:.875rem}.letter-venue{font-size:1.0625rem}.letter-content>.button{font-size:.875rem;padding:13px 17px;gap:12px}
 .header-location{font-size:1rem}.section-pad{padding-left:21px;padding-right:21px}.welcome-copy h1{font-size:4.65rem}.welcome-copy h1>.welcome-weds{font-size:2.2rem}.welcome-script{font-size:1.85rem}.dates-intro h2{font-size:3.3rem}.dates-intro>p{font-size:1.4rem}.date-numerals{font-size:5.1rem}.date-numerals i{padding:0 9px}.date-month{font-size:.875rem}.countdown-caption{letter-spacing:0}.countdown{gap:10px}.count-unit{flex-basis:2.5rem}.count-unit strong{font-size:2rem}.count-unit span{font-size:.875rem}.celebrations-top h2{font-size:2.9rem}.compliments h2{font-size:2.9rem}.family-label{font-size:1.85rem}.closing h2{font-size:4.25rem}.closing-kicker{font-size:1.35rem}.signoff-names{font-size:min(1.3rem,7vw)}.site-footer{padding-left:20px;padding-right:20px;gap:12px}
}
@media(max-height:700px) and (min-width:801px){.opening-intro{margin:0}.opening-intro h1{font-size:2.6rem;margin-bottom:12px}.opening-kicker{font-size:1.125rem;margin-bottom:6px}.opening-couple{font-size:1.5rem}.envelope-stage{width:480px;min-height:285px}.seal{width:92px;height:92px}.seal>.monogram{transform:translate(-50%,-50%) scale(.56)}.opening-bottom{min-height:75px}.letter-view{padding:24px}.letter{width:355px;padding:38px 29px 99px;min-height:555px}.letter-greeting{font-size:1.6rem}.letter-invitation{font-size:1rem}.letter h2{font-size:2.4rem;margin:18px 0 15px}.letter h2 i{font-size:1.7rem;margin:7px 0 9px}.letter-venue{font-size:1.125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
@media print{.opening,.site-header,.welcome-scroll,.site-footer,#invitation-audio{display:none!important}.site-shell{visibility:visible!important}.section-pad{padding:30px}.js .reveal{opacity:1;transform:none}section{break-inside:avoid}.welcome,.closing{min-height:600px}}

html:not(.js) .site-header nav{visibility:visible;pointer-events:auto;position:static;grid-column:1/-1;flex-wrap:wrap;flex-direction:row;box-shadow:none}html:not(.js) .menu-toggle{display:none}

.closing-copy{width:100%;max-width:700px;min-width:0}.day-label{min-width:0}

/* Family invitation revision: saturated accents, readable paper, quiet motion. */
:root{--berry:#812c3c;--saffron:#b45f19;--green:#245342;--deep:#173e32;--ink:#253e32;--gold:#966326}
.opening{background:radial-gradient(ellipse at 50% 42%,#fffaf0 0,#f9ecd8 60%,#eecf9c 100%)}
.opening-intro h1{color:var(--berry)}
.opening-kicker{color:#775329}
.weds,.opening-couple .weds,.welcome-copy h1>.welcome-weds,.letter-weds{font:italic 400 1.25rem/1.3 var(--serif);letter-spacing:.02em;text-transform:none;color:var(--berry)}
.opening-couple .weds{padding:0 9px;vertical-align:baseline}
.welcome-copy h1>.welcome-weds{padding:12px 3px;margin:0 3px}
.letter-weds{margin:22px 0;display:flex;align-items:center;justify-content:center;gap:15px}
.letter-weds:before,.letter-weds:after{content:'';width:30px;height:1px;background:#b48746}
.envelope:after{content:'';position:absolute;inset:12% 4% 12%;box-shadow:0 16px 26px #6b41242b;z-index:-1;pointer-events:none}
.letter-mini{opacity:0;display:grid;place-items:center}
.letter-mini-mark{display:flex;flex-direction:column;align-items:center;gap:6px;transform:translateY(-12%)}
.letter-mini-ganesha{height:clamp(36px,6.2vw,50px);width:auto;object-fit:contain}
.letter-mini-mark>span{display:flex;flex-direction:column;align-items:center;font:clamp(18px,3vw,28px)/1.2 var(--serif);color:var(--berry)}
.letter-mini small{font:italic 14px/1.3 var(--serif);letter-spacing:.02em;margin:4px 0;text-transform:none}
.opening[data-state="opening"] .envelope-flap,.opening[data-state="opening"] .letter-mini{will-change:transform,opacity}
.letter-view{padding:32px 24px;scroll-padding-block:24px}
.letter-content{width:100%;gap:24px;padding:0 0 8px}
.letter{width:min(520px,100%);min-height:0;padding:46px 45px 150px;color:#293d31;background-image:url('/assets/invitation-paper.webp');background-origin:border-box;background-clip:border-box;background-size:100% 100%;background-repeat:no-repeat;box-shadow:0 12px 30px #4f182733}
.letter-greeting{font-size:2rem;line-height:1.3;margin:0 0 24px;color:var(--deep)}
.letter-blessings{font:1.125rem/1.4 var(--serif)}
.letter-blessings .blessings-label{font:italic 1.125rem/1.4 var(--serif);margin-bottom:12px;color:#714329}
.grandparents{display:grid;gap:10px}
.grandparents p{margin:0;white-space:nowrap;font-size:min(1.125rem,4.4cqw)}
.letter-invitation{font:min(1.125rem,6.2cqw)/1.4 var(--serif);margin:22px 0 26px}
.letter-invitation>span{white-space:nowrap}
.letter-couple{margin-bottom:24px}
.letter-person h2{font:3.1rem/1 var(--serif);letter-spacing:-.015em;margin:0;color:var(--berry)}
.letter-person h2 small{font:400 .875rem/1.5 var(--sans);display:block;text-transform:uppercase;letter-spacing:.12em;margin-top:6px;color:var(--deep)}
.letter-relationship{font:italic 1.0625rem/1.4 var(--serif);margin:12px 0 3px;color:#6c4a31}
.letter-parents{font:min(1.125rem,4.4cqw)/1.4 var(--serif);white-space:nowrap}
.letter-date{font:italic 1.375rem/1.3 var(--serif);letter-spacing:.03em;color:var(--berry);margin:18px 0 8px}
.letter-venue{font:1.55rem/1.25 var(--serif);color:var(--deep);margin:0}
.letter-city{font:2rem/1.15 var(--script);color:#8a6840;margin:6px 0 0}
.letter-content>.primary{background:#fff5dd;border-color:#e8c287;color:#55212a;min-height:54px}
.site-header{border-bottom-color:#c8986a60}
.monogram{color:var(--berry)}
.welcome-wash{background:linear-gradient(#fff2dbe8 0%,#fff2dbc7 35%,#fff2db40 63%,#173e324a 100%)}
.welcome-copy h1{color:#752b3a;text-shadow:none}
.welcome-script{color:#284c35}
.welcome-copy>.eyebrow{color:#574329}
.welcome-date{display:flex;flex-direction:column;align-items:center;gap:0;margin:0 auto;max-width:none;color:inherit;letter-spacing:0;line-height:1.15}
.welcome-when{font:italic min(1.7rem,6.6vw)/1.25 var(--serif);letter-spacing:.03em;color:var(--berry);white-space:nowrap}
.welcome-city{display:block;margin-top:2px;font:min(2.45rem,9vw)/1.1 var(--script);font-style:normal;letter-spacing:0;color:#8a6840;text-transform:none}
.welcome-scroll{background:#153d32eb;border:1px solid #f7d2968c;border-radius:30px;padding:10px 22px;text-shadow:none}
.dates{background:#fce8c9}
.dates-intro h2 em{color:var(--berry)}
.dates-intro>p{color:#5e4933}
.date-stationery{border-color:#bd743e;background:#fffaf0;box-shadow:0 10px 30px #93482310}
.date-numerals{color:var(--berry)}
.date-numerals i{color:#9b5f20}
.count-unit strong{color:var(--berry)}
.venue{background:#dfeeda}
.venue-copy h2 em{color:#21614a}
.venue-script{color:#8b4b27}
.venue-description{color:#3d533c}
.outline{border-color:#3b654b;background:#fbf5df}
.celebrations{background:#fff6e6}
.celebrations-top h2 em{color:#943b45}
.celebrations-top>p{color:#5d4d35}
.celebrations-layout{align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,300px)}
.day-row{border-color:#b7744850}
.day-label h3{color:var(--berry)}
.event{padding-bottom:28px}
.event-list{border-left-color:#be762b80}
.event-node{background:#b36526;top:13px}
.event .event-title{font:400 .875rem/1.5 var(--sans);color:#8a412b;margin-bottom:4px;letter-spacing:.025em}
.event h4{font-size:2rem;color:#224d3b;margin:0 0 9px;line-height:1.15}
.event .event-time{font:400 1rem/1.6 var(--sans);color:#443728}
.event-time time{display:inline;font:inherit;color:inherit;margin:0}
.event .event-meal{font:400 1rem/1.6 var(--sans);color:#665135;margin-top:2px}
.celebration-art{height:570px;max-height:none;align-self:center}
.celebration-art>div{background:#fff8eaeF;border-radius:4px;padding:16px 8px;top:44%;left:10%;right:10%}
.celebration-art .script{color:#25523c}
.compliments{background:radial-gradient(ellipse at top,#933b45,#722a38 75%);color:#fff5df}
.compliments:before{border-color:#e6bd7e99}.compliments:after{border-color:#e6bd7e55}
.compliments .chapter-label,.compliments .chapter-label>span{color:#f2d5a2}
.compliments h2{color:#fff6e8}
.compliments h2 em{color:#f2c683}
.compliments .flourish{color:#e8be77;margin:25px 0}
.family-label{font:italic 1.625rem/1.4 var(--serif);color:#fff2d6;margin-top:25px}
.family-list{min-height:0}
.family-names{display:grid;gap:0;width:min(660px,100%)}
.family-names li{font:1.625rem/1.45 var(--serif);color:#fff8eb;padding:15px 6px;text-wrap:balance}
.family-names li+li{border-top:1px solid #e5b57a4d}
.closing{color:#503328}
.closing-wash{background:linear-gradient(#ffe8d0e8 0%,#ffe8d0d9 42%,#ffe8d012 72%)}
.closing-kicker{color:#69342d}
.closing h2{color:#6e2f3b}
.closing h2>.script{color:#7b4524}
.closing-signoff{color:#463d2b}
.signoff-names{background:transparent}
.site-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;padding:28px 5%;align-items:center;background:#fff1db;border-top:1px solid #c78b5155}
.letter-replay{grid-column:2;grid-row:1;display:none;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 22px;border:1px solid #b47c49;border-radius:3px;background:#fffaf0;color:#592d32;font:400 1rem/1.4 var(--sans);text-align:center}
.letter-replay:hover{background:#f9e0b8}
.footer-brand{grid-column:1;grid-row:1;justify-self:start;min-width:44px;min-height:58px;display:flex;align-items:center;justify-content:center}
.footer-note{grid-column:3;grid-row:1;text-align:right;font:italic 1.25rem/1.4 var(--serif);color:#6a4a30;max-width:280px;justify-self:end}
@media(max-width:1100px){.celebrations-layout{grid-template-columns:minmax(0,1fr) minmax(0,240px)}}
@media(max-width:800px){
 .letter-view{padding:26px 18px}
 .letter{width:min(480px,100%);padding:40px 32px 125px}
 .letter-person h2{font-size:2.8rem}
 .letter-greeting{font-size:1.9rem}
 .welcome-copy h1>.welcome-weds{font-size:1.25rem;padding:20px 0}
 .welcome-wash{background:linear-gradient(#fff2dbe8 0%,#fff2dbbf 48%,#fff2db10 75%,#173e323d)}
 .celebrations-layout{grid-template-columns:minmax(0,1fr)}
 .celebration-art{height:390px;align-self:auto}
 .family-names li{font-size:1.5rem;padding:16px 2px}
 .family-label{font-size:1.5rem}
 .site-footer{display:flex;flex-direction:column;gap:22px;padding:30px 24px max(30px,env(safe-area-inset-bottom));text-align:center}
 .site-footer .letter-replay{width:min(360px,100%);min-height:56px;order:0;font-size:1rem}
 .footer-brand{order:1}
 .footer-note{order:2;text-align:center;max-width:290px;margin:0;font-size:1.25rem}
}
@media(max-width:420px){
 .letter-view{padding:22px 14px}
 .letter{padding:36px 28px 106px}
 .letter-greeting{font-size:1.75rem;margin-bottom:20px}
 .letter-blessings,.letter-blessings .blessings-label{font-size:1.0625rem}
 .letter-invitation{font-size:min(1.125rem,6.2cqw);margin:20px 0 24px}
 .letter-person h2{font-size:2.65rem}
 .letter-person h2 small{font-size:.875rem;letter-spacing:.09em}
 .letter-parents{font-size:min(1.125rem,4.4cqw)}
 .letter-weds{margin:20px 0}
 .letter-date{font-size:1.25rem}
 .letter-venue{font-size:1.4rem}
 .letter-city{font-size:1.85rem}
 .letter-content>.primary{max-width:100%;font-size:1rem;padding:14px 18px;gap:12px}
 .compliments h2{font-size:3.1rem}
 .family-names li{font-size:1.4375rem}
}
@media(prefers-reduced-motion:reduce){.envelope-flap,.letter-mini{will-change:auto!important}}

.named-relative{display:inline}
.letter{container-type:inline-size}

/* Keep illustration outside the reading area, even when text is enlarged. */
.letter{position:relative;isolation:isolate;background:#f8f3e7;padding-top:100px;padding-bottom:190px;border:1px solid #d4bc86}
.letter:before{content:'';position:absolute;inset:8px;border:1px solid #b58b4c;outline:1px solid #d4bd88;outline-offset:3px;pointer-events:none;z-index:2}
.letter-ornament{position:absolute;left:1px;right:1px;pointer-events:none;z-index:0;background-image:url('/assets/invitation-paper.webp');background-repeat:no-repeat;background-size:100% auto}
.letter-ornament-top{top:1px;height:94px;background-position:center top;mask-image:linear-gradient(#000 48%,transparent)}
.letter-ornament-bottom{bottom:1px;height:185px;background-position:center bottom;mask-image:linear-gradient(transparent,#000 32%)}
.letter>:not(.letter-ornament){position:relative;z-index:1}
@media(max-width:420px){.letter{padding-top:88px;padding-bottom:155px}.letter-ornament-top{height:82px}.letter-ornament-bottom{height:150px}}

/* Festive details: color stays on the page, motion stays in the margins. */
.welcome-copy>.eyebrow{font:italic 1.5rem/1.35 var(--serif);letter-spacing:.01em;text-transform:none;max-width:480px;margin:auto;color:#5b422b;text-wrap:balance}
.dates{background:radial-gradient(ellipse at 8% 12%,#fff5ae,transparent 65%),linear-gradient(125deg,#ffe9a1 5%,#ffdab0 55%,#f8c4b7 100%)}
.dates .chapter-label{color:#654020}
.dates-intro>p{color:#573c2c}
.date-stationery{background:#fffcf1;border-color:#b97631;box-shadow:0 14px 35px #a15b231a}
.date-border{border-color:#c58b41}
.date-numerals{color:#922d45}
.celebrations.section-pad{padding-left:0;padding-right:0;padding-bottom:0;background:#fff8e9}
.celebrations>.section-inner{width:86%;padding-bottom:55px}
.celebrations-layout{display:block}
.day-row{display:block;padding:32px 0;border-top:1px solid #c4925266}
.day-label{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.day-label>.eyebrow{color:#634b2b;font-size:.875rem;letter-spacing:.035em;order:1}
.day-label h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:0;font-size:3.5rem;line-height:1;order:0}
.day-label h3>span{font-size:1.65rem;margin:0;display:inline;white-space:nowrap}
.day-caption{margin-left:auto;order:2;color:#86532c;letter-spacing:.1em;font-size:.75rem}
.event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0;margin:0;border:0}
.event,.event:last-child{isolation:isolate;overflow:hidden;min-width:0;padding:30px 34px;border-radius:8px;border:1px solid var(--event-line);border-top:3px solid var(--event-accent);background:var(--event-paper)}
.event-haldi-mehendi{--event-paper:#fff0b2;--event-line:#e7c766;--event-accent:#c38617}
.event-sangeet{--event-paper:#f3e2f4;--event-line:#d4add4;--event-accent:#97629a}
.event-baraat{--event-paper:#ffe2bf;--event-line:#e7b785;--event-accent:#c76e36}
.event-varmala{--event-paper:#ffdfde;--event-line:#e7abae;--event-accent:#bd586e}
.event-phere{--event-paper:#e0efd6;--event-line:#b9d09f;--event-accent:#65864c}
.event-reception{--event-paper:#fbeac4;--event-line:#dfc187;--event-accent:#b08338}
.event-content{position:relative;z-index:1}
.event .event-title{font:italic 1.125rem/1.35 var(--serif);letter-spacing:0;color:#754634;margin-bottom:9px}
.event h4{font-size:2.5rem;color:#244834;line-height:1.1;margin-bottom:15px}
.event .event-time{color:#41372c}
.event .event-meal{color:#614b32}
.event-decor{position:absolute;inset:0;pointer-events:none;z-index:0}
.event-decor i{position:absolute;left:var(--x);top:var(--y);opacity:0;background:var(--tone)}
.petal{width:9px;height:15px;border-radius:70% 15% 65% 20%;transform:rotate(var(--turn))}
.sparkle{width:14px;height:14px;clip-path:polygon(50% 0,62% 36%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.is-celebrating .petal{animation:petal-drift 1800ms var(--delay) cubic-bezier(.2,.5,.35,1) both}
.is-celebrating .sparkle{animation:gentle-sparkle 1800ms var(--delay) ease-in-out both}
@keyframes petal-drift{0%{opacity:0;transform:translateY(-24px) rotate(var(--turn))}25%{opacity:.85}65%{opacity:.85}100%{opacity:0;transform:translateY(42px) rotate(calc(var(--turn) + 95deg))}}
@keyframes gentle-sparkle{0%{opacity:0;transform:scale(.35) rotate(-15deg)}45%{opacity:.85;transform:scale(1.15) rotate(0)}100%{opacity:0;transform:scale(.5) rotate(15deg)}}
.celebration-art{width:100%;max-width:none;height:clamp(520px,52vw,780px);max-height:none;margin:0;border:0;border-radius:0;background:#fff8e9}
.celebration-art picture{display:block;width:100%;height:100%}
.celebration-art img{width:100%;height:100%;object-fit:cover;object-position:top}
.celebration-art>.celebration-art-copy{top:58%;left:20%;right:20%;transform:translateY(-50%);background:transparent;border-radius:0;padding:0;text-wrap:balance}
.celebration-art .script{font-size:clamp(2.7rem,5.8vw,5.6rem);color:#214b36;line-height:1.1}
.celebration-art .celebration-art-copy>p:last-child{font:1rem/1.5 var(--sans);letter-spacing:.12em;color:#795337;margin-top:19px}
.closing{display:grid;align-content:start;justify-items:start;min-height:850px;padding:70px 7%;background:#f6bc79;text-align:center}
.closing-copy{max-width:480px;width:100%;padding:36px 24px 32px;margin:0;background:#fff4e1f5;border:1px solid #e5bb85;border-radius:4px}
.closing h2{font-size:clamp(4.3rem,5.5vw,5.6rem)}
.closing-landscape{display:block;position:absolute;inset:0;z-index:-1;width:100%;height:100%;overflow:hidden}
.closing-landscape img{width:100%;height:100%;object-fit:cover;object-position:center}
.site-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:28px;padding:34px max(7%,65px) 40px;background:#fff4dc}
.footer-identity{display:flex;flex-wrap:wrap;align-items:center;gap:18px;min-width:0;max-width:100%}
.footer-brand{min-width:44px;min-height:58px;order:0}
.footer-note{font:italic 1.2rem/1.35 var(--serif);text-align:left;max-width:min(250px,100%);margin:0;color:#674c2d}
.footer-actions{align-items:center;gap:16px;min-width:0;flex-wrap:wrap;justify-content:flex-end}
.replay-action{min-width:0;flex:none;gap:10px}
.replay-action svg{width:18px;height:18px}
.music-toggle{position:fixed;align-items:center;justify-content:center;width:44px;height:44px;padding:11px;border-radius:50%;background:#fff9eaf5;border:1px solid #b68d6266;box-shadow:0 3px 12px #55301912;color:#644735;z-index:30}
.music-toggle svg{width:20px;height:20px;stroke-width:1.5}
.music-floating{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
.section-scroll{position:fixed;z-index:25;display:flex;right:max(14px,env(safe-area-inset-right));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 54px);width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;background:#fff8e6d6;border:1px solid #c4a06a73;box-shadow:0 2px 10px #5530190d;color:#8a6840}
.section-scroll svg{width:16px;height:18px;stroke-width:1.4}
.section-scroll:hover{background:#fff4dc;border-color:#b68d62;color:#6c4e2c}
.music-opening{position:absolute;right:max(14px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:10}
.letter-continue{position:absolute;z-index:10;display:flex;right:max(14px,env(safe-area-inset-right));top:calc(max(12px,env(safe-area-inset-top)) + 54px);width:44px;height:44px;align-items:center;justify-content:center;padding:0;border-radius:50%;background:#fff8e6d6;border:1px solid #c4a06a73;box-shadow:0 2px 10px #5530190d;color:#8a6840}
.letter-continue svg{width:16px;height:18px;stroke-width:1.4}
.letter-continue:hover{background:#fff4dc;border-color:#b68d62;color:#6c4e2c}
.music-toggle[aria-pressed="true"] .music-slash{display:none}
@media(max-width:1100px){.celebrations>.section-inner{width:88%}.site-footer{padding-left:6%;padding-right:70px}.footer-actions{gap:12px}}
@media(max-width:800px){
 .welcome-copy>.eyebrow{font-size:1.4rem;line-height:1.35;max-width:320px;letter-spacing:0}
 .celebrations>.section-inner{width:calc(100% - 52px);padding-bottom:40px}
 .event,.event:last-child{padding:26px 26px}
 .event h4{font-size:2.15rem}
 .event .event-time,.event .event-meal{font-size:.9375rem}
 .day-label{gap:14px}
 .day-label h3{font-size:3.2rem}
 .day-label h3>span{font-size:1.5rem}
 .closing{padding:44px 24px 430px;min-height:1000px;justify-items:center}
 .closing-copy{padding:30px 20px;max-width:440px}
 .closing-landscape img{object-position:center top}
 .site-footer{flex-direction:column;padding:30px 24px 76px;gap:26px}
 .footer-identity{justify-content:center;gap:18px}
 .footer-note{font-size:1.25rem;text-align:left}
 .footer-actions{width:min(520px,100%);display:none;gap:12px;justify-content:center}
 .js .footer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-actions .button{width:100%;padding:14px 16px;gap:10px}
 .celebration-art{height:550px}
}
@media(max-width:600px){
 .event-list{grid-template-columns:minmax(0,1fr);gap:16px}
 .event,.event:last-child{padding:28px 30px}
 .event h4{font-size:2.3rem}
 .day-row{padding:26px 0}
 .day-label{gap:8px 16px}
 .day-label h3{flex-basis:100%;font-size:3.3rem}
 .day-label h3>span{font-size:1.6rem}
 .day-caption{margin-left:auto}
 .celebration-art{height:560px}
 .celebration-art>.celebration-art-copy{left:17%;right:17%;top:52%}
 .celebration-art .script{font-size:clamp(2.8rem,9vw,3.6rem)}
 .celebration-art .celebration-art-copy>p:last-child{font:1rem/1.5 var(--serif);letter-spacing:.06em;margin-top:18px}
 .closing{min-height:900px;padding-bottom:460px}
}
@media(max-width:420px){.celebrations>.section-inner{width:calc(100% - 48px)}.js .footer-actions{grid-template-columns:minmax(0,1fr);width:min(360px,100%)}.site-footer{gap:24px}.closing-copy{padding-left:20px;padding-right:20px}}
@media(max-width:350px){.celebrations>.section-inner{width:calc(100% - 42px)}.event,.event:last-child{padding:25px}.event h4{font-size:2rem}.celebration-art{height:480px}.closing{min-height:850px;padding-left:20px;padding-right:20px}.site-footer{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){.event-decor{display:none}}
@media print{.music-toggle,.section-scroll,.letter-continue,.event-decor{display:none!important}}

/* Scenic letter setting, open schedule, warmer colour. */
:root{--cream:#f8ead4;--paper:#fff6e4}
.opening{background:radial-gradient(ellipse at 50% 18%,#fff8ee 0%,transparent 46%),radial-gradient(ellipse at 50% 100%,#e8904a40,transparent 52%),radial-gradient(ellipse at 50% 42%,#fff3d8 0%,#f6d49a 62%,#e8b15c 100%)}
.envelope-interior{background:linear-gradient(180deg,#f4e6c8,#e2c88a)}
.letter-backdrop{inset:0;background:#e8c989 url('/assets/letter-backdrop-hills.webp') center 72%/cover}
.letter-view{padding:40px 52px}
.letter{box-shadow:0 22px 55px #1c2a1848,0 6px 18px #3a24182a}
.site-header{background:#fff4dc;border-bottom:2px solid #d4a05a66}
.welcome-wash{background:linear-gradient(#fff1d6d0 0%,#ffe8c086 32%,#ffd9a030 62%,#173e3255 100%)}
.welcome-copy>.eyebrow{color:#6a3a24}
.welcome-script{color:#1f5a3c}
.dates{background:radial-gradient(ellipse at 8% 12%,#fff5ae,transparent 65%),linear-gradient(125deg,#ffd56a 5%,#ffc48a 48%,#f5a8b0 100%)}
.venue{background:linear-gradient(165deg,#d8f0d2 0%,#c5e0b8 48%,#ead889 100%)}
.venue-copy h2 em{color:#1b6b4a}
.primary{background:#f3d089;border-color:#d9a84e;color:#5a241c}
.primary:hover{background:#ffe7a8}
.outline{border-color:#2f6a48;background:#fff7d8}
.celebrations.section-pad{background:radial-gradient(ellipse at 92% 8%,#ffd0c4b8,transparent 48%),radial-gradient(ellipse at 4% 70%,#ffe38ab0,transparent 42%),#fff4dc}
.celebrations-top h2 em{color:#c43b4a}
.day-label h3{color:#8f2d3d}
.event-list{gap:10px 52px}
.event,.event:last-child{isolation:isolate;overflow:hidden;min-width:0;position:relative;padding:6px 8px 26px 22px;border:0;border-radius:0;border-top:0;background:transparent;-webkit-tap-highlight-color:transparent}
.event:before{content:'';position:absolute;left:0;top:1.15em;width:9px;height:9px;background:var(--event-accent);transform:rotate(45deg);box-shadow:0 0 0 3px color-mix(in srgb,var(--event-accent) 22%,transparent);z-index:1}
.event:after{content:'';position:absolute;left:22px;right:8%;bottom:8px;height:1px;background:linear-gradient(90deg,var(--event-accent),transparent);opacity:.42;pointer-events:none}
.event-haldi-mehendi{--event-accent:#c38617}
.event-sangeet{--event-accent:#97629a}
.event-baraat{--event-accent:#c76e36}
.event-varmala{--event-accent:#bd586e}
.event-phere{--event-accent:#65864c}
.event-reception{--event-accent:#b08338}
.event-haldi-mehendi h4{color:#9a5410}
.event-sangeet h4{color:#6d3d72}
.event-baraat h4{color:#a44e1c}
.event-varmala h4{color:#9a3650}
.event-phere h4{color:#3d6a38}
.event-reception h4{color:#8a5c18}
.event .event-title{color:var(--event-accent)}
.event-content{position:relative;z-index:1}
.event-decor{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.event-decor i{position:absolute;left:var(--x);top:var(--y);opacity:0;background:var(--tone);margin:0}
.petal{width:12px;height:18px;border-radius:70% 15% 65% 20%;box-shadow:0 1px 6px #7a3a1433}
.sparkle{width:var(--size,16px);height:var(--size,16px);clip-path:polygon(50% 0,61% 35%,100% 50%,61% 65%,50% 100%,39% 65%,0 50%,39% 35%);filter:drop-shadow(0 0 4px var(--tone)) drop-shadow(0 0 9px #ffe9a8)}
.sparkle-sm{filter:drop-shadow(0 0 3px var(--tone))}
.sparkle-lg{filter:drop-shadow(0 0 8px var(--tone)) drop-shadow(0 0 14px #fff3c4)}
.is-celebrating .petal{animation:petal-drift 2000ms var(--delay) cubic-bezier(.2,.55,.3,1) both}
.is-celebrating .sparkle{animation:festive-sparkle 2000ms var(--delay) ease-in-out both}
.is-celebrating .event-content h4{animation:name-shimmer 2000ms ease-in-out both}
@keyframes petal-drift{0%{opacity:0;transform:translate(-50%,-22px) rotate(var(--turn)) scale(.7)}16%{opacity:1}55%{opacity:.92;transform:translate(calc(-50% + 14px),18px) rotate(calc(var(--turn) + 55deg)) scale(1)}100%{opacity:0;transform:translate(calc(-50% - 10px),52px) rotate(calc(var(--turn) + 125deg)) scale(.82)}}
@keyframes festive-sparkle{0%{opacity:0;transform:translate(-50%,-50%) scale(.15) rotate(-18deg)}18%{opacity:1;transform:translate(-50%,-16px) scale(1.25) rotate(8deg)}46%{opacity:.75;transform:translate(calc(-50% + 5px),-28px) scale(.78) rotate(-8deg)}70%{opacity:1;transform:translate(-50%,-44px) scale(1.4) rotate(16deg)}100%{opacity:0;transform:translate(-50%,-62px) scale(.2) rotate(32deg)}}
@keyframes name-shimmer{0%,100%{text-shadow:none}40%{text-shadow:0 0 18px var(--event-accent),0 0 6px #fff6d8}}
.compliments{background:radial-gradient(ellipse at top,#a34450,#722a38 72%)}
.site-footer{background:#ffe9c4;border-top:1px solid #d4924a66}
@media(max-width:1100px){
 .letter-backdrop{inset:0;background-image:url('/assets/letter-backdrop-hills-mobile.webp');background-size:cover;background-position:center 80%}
 .letter-view{padding:32px 24px}
}
@media(max-width:800px){
 .letter-backdrop{inset:0;background-image:url('/assets/letter-backdrop-hills-mobile.webp');background-size:cover;background-position:center 80%}
 .letter-view{padding:28px 18px}
 .welcome-wash{background:linear-gradient(#fff1d6d4 0%,#ffe8c0a8 46%,#ffd9a022 74%,#173e3240)}
 .event,.event:last-child{padding:8px 4px 24px 22px}
 .event h4{font-size:2.15rem}
}
@media(max-width:600px){
 .event-list{gap:6px}
 .event,.event:last-child{padding:10px 2px 22px 22px}
 .event h4{font-size:2.3rem}
}
@media(max-width:350px){
 .event,.event:last-child{padding:8px 0 20px 20px}
 .event h4{font-size:2rem}
 .event:before{width:8px;height:8px;top:1.05em}
}
@media(prefers-reduced-motion:reduce){.event-decor{display:none}.event-content h4{animation:none!important;text-shadow:none}}

.opening-blessing{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;margin:2px 0 12px;z-index:1;text-align:center;max-width:100%}
.ganesha-icon{height:72px;width:auto;object-fit:contain}
.opening-sanskrit{font:1.2rem/1.45 NotoSerifDevanagari,"Kohinoor Devanagari","Nirmala UI","ITF Devanagari",serif;color:#8a6840;white-space:nowrap}
.opening-sanskrit-latin{font:italic .75rem/1.3 var(--serif);letter-spacing:.05em;color:#9a7a4a}
.opening-intro{margin-top:8px}
@media(max-width:800px){
 .opening-blessing{margin:2px 0 10px}
 .ganesha-icon{height:56px}
 .opening-sanskrit{font-size:1.08rem}
 .opening-intro{margin-top:8px}
 .opening-bottom{padding-top:28px}
}
@media(max-width:420px){
 .opening-intro{margin-top:4px}
 .opening-intro h1{margin-bottom:12px}
 .ganesha-icon{height:50px}
 .opening-sanskrit{font-size:1rem}
}
@media(max-height:700px){
 .opening-blessing{margin:0 0 8px}
 .ganesha-icon{height:44px}
 .opening-sanskrit{font-size:.95rem}
 .opening-sanskrit-latin{font-size:.65rem}
 .opening-intro{margin-top:4px}
 .opening-bottom{padding-top:20px}
}

.opening[data-state="sealed"] .sealed-view{cursor:pointer}
.opening[data-state="sealed"] .seal:not(:disabled):before,
.opening[data-state="sealed"] .seal:not(:disabled):after{content:'';position:absolute;inset:-11px;border-radius:50%;box-shadow:0 0 0 1.5px #c9a258;pointer-events:none;animation:seal-pulse 2.6s ease-out infinite}
.opening[data-state="sealed"] .seal:not(:disabled):after{animation-delay:1.3s}
@keyframes seal-pulse{0%{transform:scale(.82);opacity:.7}70%,100%{transform:scale(1.28);opacity:0}}
.opening-bottom .opening-cue{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0;max-width:22rem;font:1rem/1.45 var(--sans);letter-spacing:.02em;color:#6b421c}
.opening-cue svg{width:18px;height:18px;stroke-width:1.7;color:#8a5a28}
.opening-cue-mouse{display:none}
.opening[data-state="sealed"] .opening-cue svg{animation:opening-cue-nudge 1.7s ease-in-out infinite}
@keyframes opening-cue-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(hover:hover) and (pointer:fine){.opening-cue-touch{display:none}.opening-cue-mouse{display:inline}}
@media(max-width:420px){.opening-cue{font-size:.9375rem}}
.opening-couple{font:clamp(1.7rem,2.4vw + 1.05rem,2.65rem)/1.15 var(--serif);letter-spacing:.04em;color:var(--deep)}
.opening-couple .weds{display:inline-block;font:italic clamp(1.2rem,1.1vw + .75rem,1.5rem)/1 var(--serif);letter-spacing:.06em;padding:0 .42em;color:var(--berry);vertical-align:.12em}

.letter{padding-top:78px}
.letter-ganesha{display:block;height:50px;width:auto;margin:0 auto 14px;object-fit:contain}
@media(max-width:420px){
 .letter{padding-top:68px}
 .letter-ganesha{height:42px;margin-bottom:10px}
}

#enter-site{position:relative;border-radius:999px;background:linear-gradient(#ffe9b4,#efc56a);border-color:#c7923c;color:#5a241c;min-height:56px;padding:14px 28px 14px 26px;letter-spacing:.03em;box-shadow:0 8px 20px #1c2a1828,0 1px 0 #fff6d8 inset}
#enter-site svg{width:18px;height:18px;stroke-width:1.7}
#enter-site:hover{filter:none;background:linear-gradient(#fff3c8,#f4d27a)}
#enter-site:not(:disabled){animation:enter-glow 2.8s ease-in-out infinite}
#enter-site:not(:disabled) svg{animation:enter-arrow 1.7s ease-in-out infinite}
#enter-site.enter-cue:not(:disabled){border-color:#8a5414;box-shadow:0 10px 26px #c7923c33,0 1px 0 #fff6d8 inset;animation:enter-cue-lift 2s ease-out}
#enter-site.enter-cue:not(:disabled):before,
#enter-site.enter-cue:not(:disabled):after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 2px #9a6418,0 0 0 6px #e8c56a33;pointer-events:none;animation:enter-cue-ring 1.9s ease-out both}
#enter-site.enter-cue:not(:disabled):after{animation-delay:.5s}
@keyframes enter-glow{0%,100%{box-shadow:0 8px 20px #1c2a1828,0 1px 0 #fff6d8 inset,0 0 0 0 #e0b45a00}50%{box-shadow:0 10px 24px #1c2a1833,0 1px 0 #fff6d8 inset,0 0 0 7px #e0b45a26}}
@keyframes enter-arrow{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
@keyframes enter-cue-lift{0%{border-color:#e2b65a}30%{border-color:#6f3f10}100%{border-color:#c7923c}}
@keyframes enter-cue-ring{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.14);opacity:0}}
#enter-site:disabled{animation:none;box-shadow:0 4px 12px #1c2a1814,0 1px 0 #fff6d8 inset}
