
:root{
--ink:#173f31;--green:#245a45;--deep:#143c2f;--sage:#edf5e9;--sage2:#dce9d7;
--ivory:#fffdf7;--gold:#c7a45e;--muted:#65786e;--blush:#f7e9df;--line:#d8e4d5;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;width:100%;overflow-x:clip}
body{margin:0;width:100%;overflow-x:clip;background:#f4f8f1;color:var(--ink);font-family:Georgia,"Times New Roman",serif}
a,button{-webkit-tap-highlight-color:transparent}
.topbar{position:sticky;top:0;z-index:1000;width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 22px;background:rgba(255,253,247,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);box-shadow:0 8px 30px rgba(23,63,49,.07)}
.brand{display:flex;align-items:center;gap:12px;min-width:0;color:var(--ink);text-decoration:none}
.monogram{width:56px;height:56px;flex:0 0 56px;border:1.5px solid var(--gold);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:.78;background:var(--ivory);font-size:18px}
.monogram b{font-size:10px;color:var(--gold);margin:2px 0}
.brand-copy{min-width:0}.brand-copy strong{display:block;font-size:20px;white-space:nowrap}.brand-copy small{display:block;margin-top:4px;font:800 9px Arial,sans-serif;letter-spacing:3px;color:#809087}
.nav{display:flex;align-items:center;gap:17px;min-width:0}
.nav a,.nav button{border:0;background:none;color:#3e594f;text-decoration:none;font:800 12px Arial,sans-serif;cursor:pointer}
.nav a.active{color:#ad873d}
.menu-toggle{display:none;width:44px;height:44px;border:0;border-radius:13px;background:#edf4e9;color:var(--ink);font-size:21px;cursor:pointer}

.page{scroll-margin-top:82px}
.kicker{margin:0;color:#ad873d;font:900 11px Arial,sans-serif;letter-spacing:4px}
.kicker.light{color:#f2d99a}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:140px;padding:15px 22px;border-radius:999px;border:1px solid #bfd0bb;text-decoration:none;text-transform:uppercase;letter-spacing:1px;font:900 12px Arial,sans-serif;cursor:pointer}
.primary{background:var(--green);border-color:var(--green);color:#fff}
.secondary{background:#fff;color:var(--ink)}
.cream{background:#fffdf7;color:var(--green);border-color:#fffdf7}
.outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.62)}
.hero-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.hero-actions.left{justify-content:flex-start}
.framed{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:34px;background:#fff;box-shadow:0 22px 65px rgba(30,68,53,.08)}
.framed:after{content:"";position:absolute;inset:10px;border:1px solid rgba(199,164,94,.38);border-radius:25px;pointer-events:none}

.blessing-page{min-height:calc(100svh - 77px);display:flex;flex-direction:column;background:
radial-gradient(circle at 10% 10%,rgba(216,234,210,.88),transparent 26%),
radial-gradient(circle at 90% 85%,rgba(247,226,184,.48),transparent 25%),
linear-gradient(145deg,#f7fbf5,#fff9ef)}
.blessing-frame{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:24px 28px 0;padding:32px 20px 28px;border:1px solid rgba(199,164,94,.62);border-radius:38px;box-shadow:inset 0 0 0 10px rgba(255,255,255,.36)}
.blessing-frame:after{content:"";position:absolute;inset:10px;border:1px solid rgba(216,229,213,.95);border-radius:29px;pointer-events:none}
.ganesha{width:min(225px,46vw);height:auto;filter:drop-shadow(0 14px 28px rgba(117,76,21,.12))}
.sanskrit{margin:3px 0 11px;color:#aa843d;font-size:17px;letter-spacing:3px}
.blessing-page h1{margin:10px 0 15px;font-size:clamp(44px,6vw,78px);line-height:.96;font-weight:500}.blessing-page h1 em{color:#7d9872;font-weight:500}
.intro{max-width:610px;margin:0 auto;color:var(--muted);font-size:17px;line-height:1.7}
.couple-title{margin:20px 0 0;font-size:clamp(34px,4.5vw,52px)}.couple-title span{color:var(--gold)}
.wedding-label{margin:8px 0 18px;color:#ad873d;font:900 12px Arial,sans-serif;letter-spacing:4px}
.share-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:17px;color:#7b8981;font:12px Arial,sans-serif}
.share-row button{border:0;background:none;color:var(--green);font-weight:900;cursor:pointer}
.scroll-link{margin-top:16px;color:var(--green);text-decoration:none;font:900 12px Arial,sans-serif;letter-spacing:1px}
.date-ribbon{flex:0 0 56px;width:100%;overflow:hidden;margin-top:18px;background:linear-gradient(90deg,#173e30,#337154,#173e30);border-top:2px solid #d1b16c;border-bottom:2px solid #d1b16c}
.ribbon-track{height:100%;width:max-content;display:flex;align-items:center;animation:marquee 24s linear infinite}
.ribbon-track span{white-space:nowrap;padding-right:70px;color:#f5dfa4;font:900 12px Arial,sans-serif;letter-spacing:2.3px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-33.333%)}}

.invitation-page{max-width:1500px;margin:0 auto;padding:90px 24px 110px;display:grid;grid-template-columns:1.08fr .92fr;gap:28px;background:linear-gradient(180deg,#f4f8f1,#eef5e9)}
.photo-card{background:var(--sage2);display:grid;place-items:center;min-height:690px}.photo-card img{width:100%;height:100%;object-fit:contain;display:block}
.date-seal{position:absolute;left:28px;bottom:26px;z-index:3;width:98px;height:98px;border:1px solid var(--gold);border-radius:50%;background:rgba(255,253,247,.96);display:flex;align-items:center;justify-content:center;gap:7px}.date-seal strong{font-size:31px}.date-seal span{font:900 9px Arial,sans-serif;letter-spacing:1px}
.invite-card{padding:65px 48px;display:flex;flex-direction:column;justify-content:center;text-align:center;background:linear-gradient(145deg,#fffdf8,#edf5e9)}
.invite-card h2{font-size:clamp(58px,6vw,90px);line-height:.9;font-weight:500;margin:24px 0 10px}.invite-card h2 span{color:var(--gold)}
.flourish{color:var(--gold);font-size:28px}.message{max-width:540px;margin:16px auto;color:var(--muted);font-size:18px;line-height:1.75}
.event-details{margin:10px auto 25px;padding:20px 24px;border-top:1px solid #d9c690;border-bottom:1px solid #d9c690;line-height:1.8}.event-details strong,.event-details span{display:block}

.wedding-page{padding:110px 24px;background:#173f31;color:#fff}
.section-heading{max-width:900px;margin:0 auto 45px}.section-heading h2{margin:12px 0 18px;font-size:clamp(40px,5vw,66px);line-height:1.05;font-weight:500}.section-heading>p:last-child{color:#d9e6df;font-size:18px;line-height:1.7}
.timeline{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.timeline article{padding:34px;border:1px solid rgba(255,255,255,.16);border-radius:28px;background:rgba(255,255,255,.07);backdrop-filter:blur(8px)}.timeline article>span{color:#f0d694;font:900 11px Arial,sans-serif}.timeline h3{font-size:28px;margin:18px 0 10px}.timeline p{line-height:1.7;color:#dbe8e1}.timeline a{color:#f0d694;font-weight:800}
.countdown{max-width:1320px;margin:24px auto 0;padding:30px;border-radius:28px;background:#fffdf7;color:var(--ink);display:grid;grid-template-columns:repeat(4,1fr)}.countdown div{text-align:center;border-right:1px solid #dfe7dc}.countdown div:last-child{border:0}.countdown strong{display:block;font-size:42px}.countdown span{font:900 9px Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#7c8c83}

.story-page{max-width:1320px;margin:0 auto;padding:110px 24px;display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center;background:#fff9f1}.story-art img{width:100%;height:auto;display:block}.story-copy h2{margin:14px 0 22px;font-size:clamp(42px,5vw,64px);line-height:1.05;font-weight:500}.story-copy>p:not(.kicker){color:var(--muted);font-size:18px;line-height:1.8}.story-copy blockquote{margin:26px 0 0;padding:20px 0 20px 22px;border-left:3px solid var(--gold);color:#6c7f74;font-size:20px;font-style:italic;line-height:1.6}

.rsvp-page{padding:100px 24px;background:linear-gradient(135deg,#e8f1e4,#f8efe4)}
.rsvp-inner{max-width:1280px;margin:0 auto;padding:58px;border-radius:38px;background:linear-gradient(135deg,#214f3d,#326e55);display:grid;grid-template-columns:1fr .7fr;gap:36px;align-items:center;color:#fff;box-shadow:0 28px 80px rgba(23,63,49,.18)}
.rsvp-copy h2{margin:14px 0 18px;font-size:clamp(40px,5vw,62px);line-height:1.04;font-weight:500}.rsvp-copy p{max-width:680px;color:#dbe8e1;font-size:18px;line-height:1.75}
.qr-panel{justify-self:center;background:#fffdf7;color:var(--ink);padding:20px;border-radius:28px;text-align:center;box-shadow:0 16px 45px rgba(0,0,0,.18)}.qr-panel img{display:block;width:min(255px,55vw);height:auto;border-radius:14px}.qr-panel strong{display:block;margin-top:10px;font:900 12px Arial,sans-serif;letter-spacing:2px}.qr-panel span{display:block;margin-top:5px;color:#7b8a82;font:11px Arial,sans-serif}

.soon-page{padding:110px 24px;background:#f7fbf5}.centered{text-align:center}.centered h2{margin-left:auto;margin-right:auto}.centered>p:last-child{color:var(--muted)}
.soon-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.soon-grid article{min-height:310px;padding:34px;border-radius:30px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid var(--line);box-shadow:0 14px 40px rgba(30,68,53,.05)}.soon-one{background:#eef5e9}.soon-two{background:#fff4ea}.soon-three{background:#f1edf7}.icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.75);font-size:28px;color:#5b7367}.soon-grid h3{margin:17px 0 9px;font-size:27px}.soon-grid p{max-width:300px;color:var(--muted);line-height:1.65}.soon-grid strong{margin-top:12px;color:#a88a50;font:900 10px Arial,sans-serif;letter-spacing:2px}

.live-page{max-width:1320px;margin:0 auto;padding:110px 24px;display:grid;grid-template-columns:.85fr 1.15fr;gap:36px;align-items:center;background:#eef4f1}
.live-copy h2{margin:14px 0 18px;font-size:clamp(42px,5vw,62px);line-height:1.05;font-weight:500}.live-copy p{color:var(--muted);font-size:18px;line-height:1.7}
.video-shell{aspect-ratio:16/9;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,#ddeae1,#fff9ef)}.play{width:82px;height:82px;margin:0 auto 15px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:24px}.video-shell strong{display:block;font-size:24px}.video-shell span{display:block;margin-top:8px;color:#74857c;font:900 10px Arial,sans-serif;letter-spacing:2px;text-transform:uppercase}

.finale-page{padding:80px 24px 110px;background:#173f31}.finale-card{position:relative;max-width:900px;margin:0 auto;border-radius:34px;overflow:hidden;box-shadow:0 28px 85px rgba(0,0,0,.2)}.finale-card img{width:100%;height:auto;display:block}.finale-overlay{position:absolute;left:0;right:0;bottom:0;padding:70px 30px 34px;text-align:center;color:#fff;background:linear-gradient(transparent,rgba(18,55,43,.92))}.finale-overlay p{margin:0 0 8px}.finale-overlay h2{margin:0 0 20px;font-size:clamp(28px,4vw,46px)}

footer{text-align:center;padding:55px 20px 110px;background:#fffdf7;border-top:1px solid var(--line)}footer img{width:82px;display:block;margin:0 auto 10px}footer strong,footer span{display:block}footer strong{font-size:22px}footer span{margin-top:5px;color:#65776e}footer a{display:inline-block;margin-top:7px;color:var(--green);text-decoration:none;font:900 12px Arial,sans-serif;letter-spacing:1px}footer p{margin:14px 0 0;color:#849087;font:600 11px Arial,sans-serif}
.mobile-dock{display:none}

@media(max-width:1180px){
.menu-toggle{display:block;flex:0 0 44px}.nav{position:fixed;top:78px;left:12px;right:12px;width:auto;max-width:calc(100vw - 24px);max-height:calc(100dvh - 94px);overflow:auto;display:none;flex-direction:column;align-items:stretch;padding:15px;border:1px solid var(--line);border-radius:22px;background:#fffdf8;box-shadow:0 24px 70px rgba(28,61,48,.18)}.nav.open{display:flex}.nav a,.nav button{width:100%;text-align:left;padding:12px!important}
.invitation-page,.story-page,.rsvp-inner,.live-page{grid-template-columns:1fr}.photo-card{min-height:0}.photo-card img{height:auto}.timeline,.soon-grid{grid-template-columns:1fr}.mobile-dock{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:1100;left:10px;right:10px;bottom:9px;width:auto;max-width:calc(100vw - 20px);padding:7px;border:1px solid var(--line);border-radius:20px;background:rgba(255,253,247,.96);backdrop-filter:blur(12px);box-shadow:0 15px 50px rgba(28,61,48,.18)}.mobile-dock a,.mobile-dock button{border:0;background:none;color:var(--green);text-decoration:none;text-align:center;padding:9px;font:900 16px Arial,sans-serif;min-width:0}.mobile-dock span{display:block;margin-top:3px;font-size:9px}.mobile-dock .dock-rsvp{background:var(--green);color:#fff;border-radius:15px}
}
@media(max-width:620px){
.topbar{padding:8px 10px;gap:8px}.brand{gap:8px;flex:1 1 auto;overflow:hidden}.monogram{width:50px;height:50px;flex-basis:50px}.brand-copy{max-width:calc(100vw - 110px)}.brand-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis}.brand-copy small{font-size:8px;letter-spacing:1.5px}.nav{top:68px;left:8px;right:8px;max-width:calc(100vw - 16px)}
.blessing-frame{margin:14px 10px 0;padding:24px 12px 20px;border-radius:28px}.blessing-frame:after{border-radius:20px}.ganesha{width:min(190px,48vw)}.blessing-page h1{font-size:41px}.intro{font-size:15px}.couple-title{font-size:31px}.hero-actions .btn{width:100%}.date-ribbon{height:52px;flex-basis:52px}.ribbon-track span{font-size:10px;letter-spacing:1.5px}
.invitation-page,.wedding-page,.story-page,.rsvp-page,.soon-page,.live-page,.finale-page{padding-left:10px;padding-right:10px}.framed{border-radius:27px}.framed:after{border-radius:19px}.invite-card{padding:48px 20px}.invite-card h2{font-size:55px}.date-seal{width:78px;height:78px;left:18px;bottom:18px}.date-seal strong{font-size:24px}
.countdown{padding:20px 8px}.countdown strong{font-size:24px}.countdown span{font-size:8px}.rsvp-inner{padding:34px 18px}.qr-panel img{width:min(230px,65vw)}
.finale-overlay{position:relative;background:#173f31;padding:26px 18px}.finale-overlay h2{font-size:30px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ribbon-track{animation:none}}
