*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:#F7F3E9;color:#435345;font-family:Jost,sans-serif;font-weight:300;font-size:16px}.locked{overflow:hidden}h1,h2,h3,h4,p{margin-top:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:400}h2{font-size:clamp(36px,5vw,58px);line-height:1.1;margin:18px 0 30px}h3{font-size:34px}.eyebrow{font-size:11px;font-weight:500;letter-spacing:3px;line-height:1.9}.lotus{width:120px;height:90px}nav{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 7%;background:#F7F3E9ed;position:absolute;top:0;width:100%;z-index:4;border-bottom:1px solid #C9B58A50}nav div{display:flex;gap:30px;font-size:13px}.monogram{font-family:'Cormorant Garamond',serif;font-size:30px}.monogram i{color:#a38e61} .hero{min-height:900px;height:100svh;position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 15% 70%,#B5C8A260,transparent 40%),radial-gradient(ellipse at 85% 20%,#E4EDEB,transparent 45%),#F7F3E9}.arch{position:absolute;width:min(75%,740px);height:90%;top:13%;border:1px solid #C9B58A80;border-radius:370px 370px 0 0;box-shadow:0 0 0 14px #F7F3E960,0 0 0 15px #B5C8A260}.hero-content{position:relative;padding-top:65px}.hero h1{font-family:'Great Vibes',cursive;font-size:clamp(70px,10vw,112px);line-height:.75;margin:35px 0}.hero h1 i{font-family:'Cormorant Garamond',serif;font-size:40px;font-style:italic;line-height:1.5;color:#a38e61}.rule{width:65px;height:1px;background:#C9B58A;margin:30px auto}.date{letter-spacing:6px;font-size:18px}.begin{display:inline-block;border-bottom:1px solid #C9B58A;padding:14px;font-size:13px;letter-spacing:1px}.botanical{position:absolute;bottom:-100px;font-size:450px;line-height:1;color:#B5C8A270;pointer-events:none}.botanical-left{left:-100px;transform:rotate(-30deg)}.botanical-right{right:-100px;transform:scaleX(-1) rotate(-30deg)}section{padding:95px 24px;text-align:center}.invitation{max-width:1000px;margin:auto}.couple{display:flex;align-items:center;justify-content:center;gap:35px;margin:45px 0}.couple h3{font-size:31px;margin-bottom:14px}.couple p{line-height:1.9}.with{font-family:'Great Vibes',cursive;font-size:32px;color:#a38e61}.blessing{max-width:680px;margin:35px auto;line-height:2}.reveal{background:#EBD7D450}.scratch{background:#B5C8A2;border:1px solid #C9B58A;border-radius:140px 140px 25px 25px;min-height:230px;width:310px;max-width:100%;font-family:'Cormorant Garamond',serif;font-size:30px;line-height:1.5;box-shadow:0 10px 35px #43534510}.scratch small{font:12px Jost,sans-serif;letter-spacing:1px}.scratch.revealed{background:#F7F3E9}.countdown-section{background:#E4EDEB80}.countdown{display:flex;justify-content:center;gap:40px}.countdown b{display:block;font-family:'Cormorant Garamond',serif;font-size:60px;font-weight:400}.countdown span{font-size:11px;text-transform:uppercase;letter-spacing:2px}.section-intro{margin-bottom:50px}.event-list{max-width:980px;margin:auto;display:grid;gap:35px}.event{display:grid;grid-template-columns:42% 58%;text-align:left;background:#ffffff55;border:1px solid #C9B58A50}.event-art{min-height:310px;background:#E4EDEB;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;overflow:hidden;padding:30px}.event-1 .event-art{background:#B5C8A260}.event-2 .event-art{background:#EBD7D470}.event-3 .event-art{background:#E4EDEB}.date-badge{text-align:center;z-index:1}.date-badge span{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase}.date-badge b{font-family:'Cormorant Garamond',serif;font-size:65px;font-weight:400;line-height:1.2}.event-art .lotus{width:135px;height:100px;margin-top:18px}.art-caption{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;text-align:center;margin-top:12px}.event-copy{padding:38px}.event-copy h3{font-family:'Great Vibes',cursive;font-size:49px;margin-bottom:15px}.event-copy .eyebrow{font-size:10px;letter-spacing:1.5px}.event-copy h4{font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:500;margin:22px 0 8px}.event-copy p{line-height:1.7}.time{font-weight:400}.map,.calendar{font-size:11px;font-weight:400;letter-spacing:1px;border-bottom:1px solid #C9B58A;display:inline-block;padding:8px 0;margin-right:20px}.calendar{border:0;border-bottom:1px solid #C9B58A;background:transparent}.venue{background:#E4EDEB80}.venue h3{margin:20px 0}.venue p{line-height:1.9}.primary{display:inline-block;border:1px solid #71876c;background:#71876c;color:#fff;padding:17px 30px;font-size:11px;text-transform:uppercase;letter-spacing:2px}.closing h3{font-family:'Great Vibes',cursive;font-size:52px;margin:30px 0}.closing{background:radial-gradient(ellipse at bottom,#B5C8A245,transparent 70%)}footer{text-align:center;padding:25px;border-top:1px solid #C9B58A40;font-size:11px;letter-spacing:1px}.opening{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#E4EDEB;overflow:hidden;transition:opacity .7s}.opening-card{position:relative;text-align:center;padding:55px 25px;max-width:650px;border:1px solid #C9B58A;background:#F7F3E9ef;box-shadow:0 20px 90px #43534515;transition:opacity .6s}.opening h1{font-family:'Great Vibes',cursive;font-size:70px;line-height:1.3}.opening h1 i{font-family:'Cormorant Garamond',serif;color:#a38e61;font-size:40px}.opening small{display:block;margin-top:24px;font-size:12px}.gate{position:absolute;top:0;bottom:0;width:50%;background:repeating-linear-gradient(90deg,transparent 0 70px,#C9B58A40 71px 72px),#B5C8A245;border:6px double #C9B58A80;transition:transform 1.5s ease}.gate.left{left:0}.gate.right{right:0}.opening.opened .left{transform:translateX(-100%)}.opening.opened .right{transform:translateX(100%)}.opening.opened .opening-card{opacity:0;pointer-events:none}.opening.finished{opacity:0;pointer-events:none}@media(max-width:650px){nav{padding:0 22px;height:65px}nav div{gap:16px;font-size:11px}.hero{min-height:800px}.hero .eyebrow{font-size:9px;letter-spacing:2px}.arch{width:88%}.couple{flex-direction:column;gap:12px}.couple h3{font-size:29px}.couple p{margin-bottom:10px}section{padding:65px 22px}.event{grid-template-columns:1fr}.event-art{min-height:260px}.event-copy{padding:30px}.countdown{gap:22px}.countdown b{font-size:46px}.opening-card{width:88%;padding:40px 20px}.opening h1{font-size:54px}.botanical{font-size:300px}.blessing{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.opening-video,.intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.opening-video{z-index:0}.opening-card{z-index:2;background:#F7F3E9d9;backdrop-filter:blur(3px)}.intro-video{z-index:3;visibility:hidden;object-fit:contain;background:#F7F3E9}.opening.playing .intro-video{visibility:visible}.opening.playing .opening-card{opacity:0;pointer-events:none}.opening.playing .opening-video{visibility:hidden}

.hero{min-height:820px;padding:95px 20px 35px;background:radial-gradient(ellipse at 5% 90%,#B5C8A299,transparent 35%),radial-gradient(ellipse at 95% 10%,#E4EDEB,transparent 45%),#F7F3E9}.hero:before{content:"";position:absolute;inset:88px 18px 18px;border:4px double #C9B58A;border-radius:110px 110px 16px 16px;pointer-events:none}.hero-content{padding:30px 25px;max-width:600px;width:100%;background:#F7F3E9b8;border:1px solid #B5C8A2;border-radius:130px 130px 14px 14px;box-shadow:0 15px 70px #71876c15}.hero-content>.lotus{width:85px;height:65px}.hero-announcement,.hero-presence,.hero-wedding-date{font-family:'Cormorant Garamond',serif;font-style:italic}.hero-announcement{font-size:24px;margin:18px 0 22px}.hero h1.detail-name{font-family:'Great Vibes',cursive;font-size:clamp(58px,8vw,84px);line-height:1.15;margin:15px 0;color:#526d53}.hero-parents{font-size:13px;margin:0;line-height:1.7}.hero-ampersand{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:43px;color:#a38e61;margin:14px 0}.hero-presence{font-size:23px;line-height:1.5;margin:30px auto 22px;max-width:390px}.hero-wedding-date{font-size:26px;margin:20px 0}.hero .arch{display:none}.hero .botanical{z-index:0;font-size:280px;bottom:-65px}.hero-content{z-index:1}@media(max-width:650px){.hero{min-height:800px;height:auto;padding-top:90px}.hero-content{padding:28px 16px}.hero-parents{font-size:11px}.hero-presence{font-size:21px}.hero:before{inset:77px 10px 10px}.hero h1.detail-name{font-size:62px}}

.reveal{background:#F7F3E9}.reveal h2{margin:12px 0 16px}.reveal>p:not(.eyebrow){font-size:13px}.scratch-heart{position:relative;width:300px;height:275px;max-width:100%;margin:35px auto 12px;clip-path:path('M150 265 C125 246 0 160 0 83 C0 1 100 -20 150 48 C200 -20 300 1 300 83 C300 160 175 246 150 265 Z');background:#E4EDEB}.heart-date{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-bottom:8px;font-family:'Cormorant Garamond',serif;font-size:27px;text-align:center}.heart-date small{font:11px Jost,sans-serif;margin-top:10px}.scratch-heart canvas{position:absolute;inset:0;width:300px;height:275px;touch-action:none;transition:opacity .6s}.tap-reveal{background:transparent;border:0;border-bottom:1px solid #C9B58A;padding:10px 0;font-size:12px}

.countdown-section{background:#F7F3E9}.countdown{display:grid;grid-template-columns:120px 120px;gap:22px 25px;margin:28px auto 18px;width:max-content}.countdown>div{width:120px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:14px;background:linear-gradient(145deg,#9fb893,#71876c);color:#fff;clip-path:path('M60 110 C48 99 0 65 0 34 C0 1 40 -8 60 20 C80 -8 120 1 120 34 C120 65 72 99 60 110 Z')}.countdown b{font-size:37px;line-height:1.05}.countdown span{font-size:10px;text-transform:none;letter-spacing:0}.countdown-date{font-size:12px;margin:22px 0 0}@media(max-width:650px){.countdown b{font-size:37px}.countdown{gap:20px 25px}}

.gallery-section{background:#E4EDEB66}.couple-gallery{max-width:1000px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery-photo{border:1px solid #C9B58A66;background:#F7F3E9;padding:7px;border-radius:90px 90px 8px 8px;overflow:hidden}.gallery-photo img{display:block;width:100%;height:340px;object-fit:cover;border-radius:82px 82px 4px 4px}#photoViewer{padding:0;border:0;background:transparent;max-width:95vw;max-height:95svh;overflow:visible}#photoViewer::backdrop{background:#152219e8}#photoViewer>img{display:block;max-width:90vw;max-height:88svh;object-fit:contain}.close-photo{position:absolute;right:0;top:0;background:#F7F3E9;border:0;border-radius:50%;width:40px;height:40px;font-size:27px}@media(max-width:650px){.couple-gallery{grid-template-columns:repeat(2,1fr);gap:10px}.gallery-photo img{height:235px}.gallery-photo{padding:5px}}
/* Illustrated celebration cards */
#events{background:#E4EDEB80}.event-list{max-width:860px;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.event{display:flex;flex-direction:column;background:#fffaf0;border:1px solid #C9B58A;border-radius:0;overflow:hidden}.event-art{display:block;min-height:0;padding:0;background:transparent}.event-art img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.event-copy{padding:25px 24px 28px}.event-copy h3{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:500;line-height:1.1;color:#526d53;margin:12px 0}.event-1 h3{color:#926228}.event-2 h3{color:#875556}.event-copy .eyebrow{font-size:9px;letter-spacing:1.2px;margin-bottom:8px}.event-copy .time{font-size:14px;margin:13px 0 7px}.event-copy h4{font:400 13px Jost,sans-serif;margin:0 0 25px;line-height:1.6}.celebration-details{background:transparent;border:0;border-bottom:1px solid #C9B58A;padding:9px 0;font-size:12px;text-align:left}.event-dialog{max-width:440px;width:calc(100% - 40px);padding:40px 28px;background:#F7F3E9;color:#435345;border:1px solid #C9B58A}.event-dialog::backdrop{background:#263e3299}.event-dialog h3{margin-bottom:20px}.event-dialog p{line-height:1.8}.close-event{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:26px}
.blessings-section{padding:65px 22px;background:#E4EDEB80}.blessings-card{max-width:560px;margin:auto;padding:40px 28px 28px;border:1px solid #C9B58A55;background:#F7F3E9;text-align:left}.blessings-card .eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:8px}.blessings-card h2{font-size:42px;color:#526d53;margin:8px 0 28px}.blessings-card label{display:block;font-size:13px;margin:20px 0 8px}.blessings-card input,.blessings-card textarea{font:400 13px Jost,sans-serif;color:#435345;background:#fffaf0;border:1px solid #C9B58A88;width:100%;padding:14px;border-radius:0}.blessings-card textarea{min-height:140px;resize:vertical}.blessings-card input:focus,.blessings-card textarea:focus{outline:2px solid #71876c;outline-offset:2px}.blessings-card .primary{width:100%;margin-top:25px;text-transform:none;letter-spacing:0;font-weight:500;padding:13px}.blessings-card .primary:disabled{opacity:.6;cursor:wait}#blessingsStatus{font-size:13px;line-height:1.6;margin:16px 0 0}.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#petalLayer,#confettiLayer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:35}.floating-petal{position:absolute;top:-30px;border-radius:90% 10% 85% 15%;opacity:.55;animation:petal-drift linear infinite;will-change:transform}@keyframes petal-drift{0%{transform:translate3d(0,-30px,0) rotate(0)}50%{transform:translate3d(50px,52vh,0) rotate(160deg)}100%{transform:translate3d(-35px,110vh,0) rotate(330deg)}}.confetti-piece{position:absolute;border-radius:2px;will-change:transform}
@media(max-width:650px){#events{padding:60px 26px}.event-list{max-width:360px;grid-template-columns:1fr;gap:30px}.event-copy{padding:22px 18px 25px}.event-copy h3{font-size:30px}.blessings-card{padding:35px 17px 24px}.blessings-card h2{font-size:37px}}
@media(prefers-reduced-motion:reduce){#petalLayer,#confettiLayer{display:none}}
.gallery-section{background:#F2EADB}.gallery-section>.eyebrow{font-size:9px;letter-spacing:1.5px}.gallery-section h2{font-size:39px;margin:12px 0 14px;color:#526d53}.gallery-intro{font-size:13px;margin-bottom:32px}.couple-gallery{max-width:720px;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.gallery-column{display:flex;flex-direction:column;gap:18px;min-width:0}.gallery-photo{padding:6px 6px 0;background:#fffaf0;border:0;border-radius:0;box-shadow:0 3px 12px #43534508}.gallery-photo img{height:auto;width:100%;border-radius:0;object-fit:contain}.photo-caption{display:block;padding:10px 4px 13px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;line-height:1.4}.gallery-photo:focus-visible{outline:2px solid #71876c;outline-offset:3px}@media(max-width:650px){.gallery-section{padding:50px 18px}.couple-gallery{gap:13px}.gallery-column{gap:14px}.gallery-photo{padding:4px 4px 0}.gallery-photo img{height:auto}.photo-caption{font-size:13px;padding:7px 2px 10px}.gallery-section h2{font-size:34px}}

.event-copy h3,.event-dialog h3{font-family:'Great Vibes',cursive;font-weight:400;font-size:43px;line-height:1.3}.event-dialog h3{padding-right:10px}@media(max-width:650px){.event-copy h3{font-size:38px}}
.hero-background-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}.hero-content{background:#F7F3E945;backdrop-filter:blur(1px);box-shadow:0 10px 50px #4353450a;text-shadow:0 1px 3px #F7F3E9}.hero .botanical{display:none}.hero:before{z-index:1;border-color:#C9B58A55}#events{position:relative;isolation:isolate;overflow:hidden}#events>.eyebrow,#events>h2,#events>.section-intro,#events>.event-list,#events>.fireworks-replay{position:relative;z-index:2}.fireworks-canvas{position:absolute;top:0;left:0;width:100%;height:440px;pointer-events:none;z-index:1}.fireworks-replay{display:inline-block;background:#F7F3E9aa;border:1px solid #C9B58A88;border-radius:0;padding:12px 20px;font-size:12px;letter-spacing:.4px;margin:0 0 32px}.fireworks-replay:focus-visible{outline:2px solid #71876c;outline-offset:3px}@media(prefers-reduced-motion:reduce){.hero-background-video{display:none}.hero{background: url('assets/couple-details-poster.jpg') center/cover}.fireworks-canvas,.fireworks-replay{display:none}}
.initial-logo{display:block;width:125px;height:auto;margin:0 auto 16px}.nav-initial-logo{display:block;width:72px;height:63px;object-fit:contain}.opening-card>.initial-logo{width:140px;margin-bottom:20px}.hero-content>.initial-logo{width:108px;margin-bottom:10px}nav .monogram{display:flex;align-items:center}@media(max-width:650px){.nav-initial-logo{width:62px;height:55px}.opening-card>.initial-logo{width:125px}.hero-content>.initial-logo{width:94px}}
.hero-parents{font-size:18px;font-weight:400;line-height:1.65}@media(max-width:650px){.hero-parents{font-size:16px;line-height:1.65}}
.begin{display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:15px;padding:14px 18px}.story-arrow{display:inline-block;font-size:34px;font-family:Georgia,serif;font-weight:400;line-height:1;text-shadow:none}
.event-copy .eyebrow{font-size:13px;letter-spacing:1px;line-height:1.6}@media(max-width:650px){.event-copy .eyebrow{font-size:12px}}
.heart-date{gap:4px;padding-bottom:14px}.scratch-date-label{font:500 8px Jost,sans-serif;letter-spacing:2.4px;color:#a38e61;margin-bottom:10px}.revealed-date{font-family:'Great Vibes',cursive;font-size:33px;line-height:1.3;max-width:255px;color:#435345}.heart-date small{margin-top:5px}.heart-date small:last-child{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px}
.buddha-blessing{margin:0 auto 18px}.buddha-symbol{display:block;width:98px;height:98px;margin:0 auto 6px}.buddha-shloka{font-family:'Noto Serif Devanagari',serif;font-size:20px;font-weight:500;line-height:1.6;color:#526d53;margin:4px 0 0}.event-close-form{margin:0}.close-event{top:7px;right:7px;width:44px;height:44px;display:grid;place-items:center;font-size:28px;line-height:1;border-radius:50%;z-index:3}.close-event:focus-visible{outline:2px solid #71876c;outline-offset:2px}@media(max-width:650px){.buddha-symbol{width:88px;height:88px}.buddha-shloka{font-size:19px}}
.gallery-intro{margin-bottom:12px}.couple-hashtag{font:500 14px Jost,sans-serif;color:#526d53;letter-spacing:1px;margin:0 0 30px}
.music-toggle{position:fixed;right:16px;bottom:16px;z-index:40;width:44px;height:44px;display:grid;place-items:center;border:1px solid #C9B58A;background:#F7F3E9ed;color:#526d53;border-radius:50%;font-size:24px;box-shadow:0 3px 15px #43534515}.music-toggle[aria-pressed="true"]{background:#71876c;color:#F7F3E9}.music-toggle:focus-visible{outline:2px solid #71876c;outline-offset:3px}
.opening-card{display:flex;flex-direction:column;align-items:center;max-width:620px;padding:48px 28px}.opening-card>.initial-logo{width:130px;margin:0 0 24px}.opening-card>.eyebrow{margin:0 0 18px;font-size:10px;letter-spacing:2.3px}.opening-card h1{font-size:clamp(43px,9vw,68px);line-height:1.2;margin:0 0 32px}.opening-card>.primary{margin:0;padding:17px 28px}.opening-card>small{margin:22px 0 0;line-height:1.5}.buddha-shloka{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:25px;letter-spacing:.4px;line-height:1.4}.heart-date{gap:8px;padding-bottom:20px}.scratch-date-label{margin-bottom:8px}.heart-date small,.heart-date small:last-child{font:400 11px Jost,sans-serif;line-height:1.6;margin-top:8px}@media(max-width:650px){.opening-card{width:calc(100% - 40px);padding:40px 18px}.opening-card>.initial-logo{width:120px;margin-bottom:22px}.opening-card>.eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:17px}.opening-card h1{font-size:clamp(43px,10.5vw,54px);margin-bottom:28px}.buddha-shloka{font-size:23px}}
.hero-parents{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:22px;line-height:1.5}@media(max-width:650px){.hero-parents{font-size:20px}}
