@font-face{font-family:Vazirmatn;src:url('../fonts/vazirmatn-arabic-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url('../fonts/vazirmatn-arabic-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:WeddingScript;src:url('../fonts/candlescript.otf') format('opentype');font-display:swap}
@font-face{font-family:Miremad;src:url('../fonts/Miremad.ttf') format('truetype');font-display:swap}
:root{--fa:Vazirmatn,Tahoma,Arial,sans-serif;--ink:#514957;--muted:#766c7c;--wine:#766081;--wine-soft:#9a859f;--paper:#f8f2e9;--ivory:#f7f1e8;--cream:#eee6df;--champagne:#af9b78;--line:#d8cdbf;--rose:#ad98b6;--rose-deep:#796687;--sage:#969c8c;--shadow:0 14px 44px #63556b12}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;color:var(--ink);background:#e9e1e8;font:400 15px/2.05 var(--fa);text-align:center;overflow-x:hidden;-webkit-font-smoothing:antialiased}body.intro-locked{overflow:hidden}button,input,textarea,select{font:inherit;max-width:100%}button,a,input,textarea{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img,video,svg,iframe{max-width:100%}img{height:auto}a{color:inherit}h1,h2,h3,p{margin:0 0 16px}h2,h3{font-weight:600}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #78678b;outline-offset:4px}[hidden]{display:none!important}
#main-bg-video{position:fixed;inset:0;z-index:-2;opacity:.055;pointer-events:none}#main-bg-video video{width:100%;height:100%;object-fit:cover}body:before{content:'';position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 5% 20%,#dad0e066,transparent 50%),radial-gradient(ellipse at 100% 75%,#bacbd238,transparent 40%);pointer-events:none}
#invitation{position:relative;isolation:isolate;max-width:760px;margin:0 auto;background:linear-gradient(115deg,#fffaf075,#f0e8e166),#f4ede5;box-shadow:0 0 90px #51405b0f;overflow:hidden}#invitation:before{content:'';position:absolute;inset:10px;z-index:0;border-inline:1px solid #bbae9530;pointer-events:none}#invitation>section{position:relative;isolation:isolate}.section-pad{padding:66px 28px}.section-heading{position:relative;z-index:2;margin:0 auto 30px;max-width:530px}.section-heading:before{content:'';display:block;width:165px;height:30px;margin:0 auto 13px;background:url('../img/lilac/flourish.svg') center/contain no-repeat}.section-heading h2,.dress-code-heading h2,.venue-card h2{font:400 clamp(32px,7vw,43px)/2.05 Miremad,var(--fa);color:var(--wine);padding:4px 0 10px;margin:0 0 4px}.section-heading p,.section-kicker,.media-kicker{font-size:13px;line-height:2.1;color:var(--muted);letter-spacing:0}.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(20px);transition:opacity 1s ease,transform 1.2s cubic-bezier(.2,.65,.2,1);transition-delay:var(--delay,0ms)}.motion-ready .reveal.visible{opacity:1;transform:none}
/* Original opening movie and its existing event handlers. */
.wedding-intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#f2eae6;overflow:hidden;cursor:pointer;transition:opacity .9s,visibility .9s}.intro-backdrop{position:absolute;inset:-5%;background-position:center;background-size:cover;filter:blur(24px);opacity:.23}.intro-stage{position:relative;width:100%;height:100vh;height:100svh;overflow:hidden}.intro-video{width:100%;height:100%;object-fit:contain;display:block}.intro-vignette{position:absolute;inset:0;background:linear-gradient(transparent 74%,#48394c42);pointer-events:none}.intro-hint{position:absolute;bottom:7%;left:16px;right:16px;font-size:14px;color:#fff;text-shadow:0 1px 9px #443448}.intro-hint i{display:block;width:26px;height:26px;border:1px solid #fff9;border-radius:50%;margin:12px auto;animation:hintPulse 2s infinite}.intro-personal{position:absolute;top:16%;left:10%;right:10%;color:#5c465e;font-size:15px;display:grid;gap:10px;text-shadow:0 1px 6px #fff}.intro-personal strong{font-size:21px}.wedding-intro.playing .intro-hint,.wedding-intro.playing .intro-personal{opacity:0;transition:opacity .5s}.wedding-intro.finishing{opacity:0;pointer-events:none}.wedding-intro.done{visibility:hidden;display:none}.music-toggle{position:fixed;bottom:18px;left:18px;width:46px;height:46px;border:1px solid #d9ccdc;border-radius:50%;z-index:30;background:#faf5edeb;color:var(--wine);font-size:22px;box-shadow:var(--shadow)}
/* Names above a replaceable portrait, airy botanical margins. */
.hero{padding:28px 30px 76px;min-height:720px;min-height:100svh}.hero-content{position:relative;display:flex;flex-direction:column;align-items:center;max-width:560px;margin:auto;outline:0}.hero-crest{order:0;width:72px;height:84px;margin-bottom:12px}.hero-kicker{order:1;color:#9c8b80;font:10px/1.8 Georgia,serif;letter-spacing:.28em;margin:0 0 8px}.hero-content h1,.footer-couple{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.18em;width:100%;font:400 clamp(39px,10vw,70px)/1.4 WeddingScript,Georgia,serif;color:#78677d;white-space:nowrap}.hero-content h1{order:2;margin:0 0 9px}.hero-content h1 span:first-child,.footer-couple span:first-child{justify-self:end}.hero-content h1 span:last-child,.footer-couple span:last-child{justify-self:start}.hero-content h1 b,.footer-couple b{font:400 .45em/1.2 Georgia,serif;color:#a3988e}.hero-date{order:3;font:13px/2 Georgia,serif;letter-spacing:.2em;color:#8b7c84;margin:7px 0 30px}.framed-photo-container{position:relative;order:4;width:100%;max-width:440px;aspect-ratio:4/5;height:auto;border:1px solid #b5a08380;border-radius:48% 48% 3px 3px;padding:8px;background:#fbf7ee;box-shadow:0 15px 40px #5f4c6d13;overflow:visible}.couple-photo{display:block;position:relative;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;border-radius:48% 48% 1px 1px;filter:saturate(.75)}.portrait-outline{position:absolute;inset:-6px;border:1px solid #b8a7865e;border-radius:48% 48% 3px 3px;pointer-events:none}.butterfly-companion{position:absolute;top:24%;right:-18px;width:42px;transform:rotate(-20deg);z-index:4;pointer-events:none}.butterfly-companion svg{overflow:visible}.butterfly-wing{fill:#d1c6df;stroke:#988aa6;stroke-width:.65;transform-origin:32px 25px;animation:wingFlutter 3.6s ease-in-out infinite}.butterfly-wing-right{animation-delay:-1.8s}.butterfly-body{fill:none;stroke:#998568;stroke-width:1.1}.scroll-cue{display:grid;place-items:center;width:48px;height:48px;position:absolute;bottom:13px;left:calc(50% - 24px);z-index:4}.scroll-cue i{position:relative;width:22px;height:35px;border:1px solid #aa96b2;border-radius:20px}.scroll-cue i:before{content:'';position:absolute;left:9px;top:7px;width:2px;height:6px;background:#95809c;border-radius:2px;animation:scrollDot 2s infinite}.scroll-cue b{display:none}
/* Real paper framing; content height follows custom text. */
#invitationText{padding:25px 28px 58px}.message-card{position:relative;margin:0 auto;padding:58px 29px 40px;max-width:580px;min-height:0;border:1px solid #b6a38380;border-radius:90px 90px 5px 5px;background:linear-gradient(110deg,#fffaf3,#f5ebdf);box-shadow:inset 0 0 0 6px #fff8, var(--shadow);z-index:2}.message-card:before{content:'';position:absolute;top:-29px;left:calc(50% - 31px);width:62px;height:62px;background:url('../img/lilac/seal.svg') center/contain no-repeat;filter:drop-shadow(0 4px 3px #7d698526)}.message-card:after{content:'';position:absolute;inset:10px;border:1px solid #c2af9160;border-radius:80px 80px 2px 2px;pointer-events:none}.message-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:17px}.message-content>*{margin:0;max-width:100%}.message-monogram{display:flex;align-items:center;gap:9px;color:#9c8b9f;font:18px/1.5 Georgia,serif}.message-monogram .monogram-amp{font-size:12px;color:#b09f8b}.message-content h2{font:400 clamp(26px,6.5vw,35px)/2.2 Miremad,var(--fa);color:var(--wine);padding:4px 0}.families-name{font:400 15px/2.1 var(--fa);color:var(--wine)}.family-pair{display:flex;align-items:center;justify-content:center;gap:14px;font-size:var(--family-size,15px);white-space:nowrap;width:100%;min-width:0}.family-pair i{font-size:9px;color:var(--champagne);font-style:normal}.ornament{font:12px/2 Georgia,serif;color:var(--champagne)}.invitation-copy{font-size:14px;line-height:2.5;overflow-wrap:anywhere}.message-content strong{font-weight:400;font-size:13px;line-height:2.3;color:var(--muted);overflow-wrap:anywhere}
.calendar-section{padding-block:42px 58px}.calendar-card{max-width:590px;margin:auto;padding:35px 23px;border-block:1px solid #bbaa8b6b;position:relative;z-index:2;background:#f9f3e9d9}.calendar-card .section-heading{margin-bottom:20px}.simple-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));direction:ltr;margin:22px 0 27px}.countdown-unit{padding:3px;border-right:1px solid #c8bba44d}.countdown-unit:last-child{border:0}.simple-countdown strong{display:block;font:400 clamp(28px,8vw,42px)/1.5 var(--fa);color:var(--wine)}.calendar-label{display:block;font-size:11px;color:var(--muted);margin-top:8px}.calendar-divider{display:flex;align-items:center;gap:16px;color:var(--champagne);margin:22px auto}.calendar-divider span{height:1px;background:#baaa8966;flex:1}.calendar-divider b{font-size:12px;font-weight:400}.ceremony-start{font-size:14px;font-weight:600}.calendar-date{display:block;font-size:15px;color:var(--wine)}.ceremony-note{margin:22px 0 0;padding-top:22px;border-top:1px dashed #c6b6a355;font-size:13px;line-height:2.4}
/* Keep the existing winding itinerary, calendar, items and scroll-following flower. */
.program-section{padding:40px 26px 58px}.program-paper{position:relative;z-index:2;padding:32px 18px 22px;max-width:620px;margin:auto;background:#f9f3e9bd;border:1px solid #c6b69b70;border-radius:100px 100px 4px 4px;box-shadow:inset 0 0 0 6px #fffcf538}.program-heading{margin-bottom:24px}.program-heading:before{display:none}.program-bow{width:55px;height:auto;display:block;margin:0 auto 15px;filter:hue-rotate(270deg) saturate(.28) brightness(1.25)}.program-heading p{font-size:12px}.program-week{border-bottom:1px solid #c4b99f66;padding-bottom:20px;margin-bottom:6px}.program-month{font-size:14px;color:var(--wine)}.program-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}.program-day>span{font-size:9px;white-space:nowrap;color:var(--muted)}.program-day time{display:grid;place-items:center;width:30px;height:34px;margin:5px auto 0;font-size:12px;position:relative}.ceremony-day time{color:#fff;background:#9885a8;border-radius:50% 50% 46% 46%;box-shadow:0 2px 4px #75627f20}.program-timeline{position:relative;padding:12px 0 70px;direction:ltr}.program-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.route-base{stroke:#b7a594;stroke-width:1;vector-effect:non-scaling-stroke}.route-progress{stroke:#8e769f;stroke-width:1.8;vector-effect:non-scaling-stroke}.program-item{position:relative;display:flex;align-items:center;min-height:172px;margin:0;padding:15px 0;direction:ltr}.program-copy{position:relative;width:41%;padding:0 4px;text-align:center;direction:rtl}.event-right .program-copy{margin-left:auto}.program-copy time{font-size:12px;font-weight:600;color:#9c83a1}.program-copy h3{font:600 14px/2 var(--fa);color:var(--wine);margin:4px 0 5px;overflow-wrap:anywhere}.program-copy p{font-size:11px;line-height:2.1;color:var(--muted);margin:0;overflow-wrap:anywhere}.program-icon{display:block;color:#b0a18d;line-height:1;margin:7px auto}.program-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.2}.program-marker{position:absolute;left:43%;top:50%;width:6px;height:6px;background:#a38bad;border:1px solid #f8f1e7;border-radius:50%;transform:translate(-50%,-50%)}.event-right .program-marker{left:57%}.program-item.passed .program-marker{background:#725d85}.timeline-runner{position:absolute;left:50%;top:0;width:52px;height:52px;z-index:4;transform:translate(-50%,-50%) rotate(var(--timeline-rotation,0deg));pointer-events:none;filter:drop-shadow(0 3px 4px #79618030)}.timeline-runner-flower{width:100%;height:100%;object-fit:contain;filter:hue-rotate(255deg) saturate(.35)}.program-end-heart{position:absolute;width:34px;height:34px;bottom:15px;left:calc(50% - 17px);stroke:#a693a4;stroke-width:1.1;fill:none}.program-timeline:not(.route-ready) .program-route,.program-timeline:not(.route-ready) .timeline-runner{visibility:hidden}
/* Fashion illustration belongs to the existing editable dress-code section. */
.dress-code-section{padding-block:48px 56px}.dress-code-paper{position:relative;z-index:2;max-width:580px;margin:auto;padding:25px 15px 22px}.dress-code-rule{display:flex;align-items:center;gap:15px;margin:0 auto 24px;color:#ae9c82}.dress-code-rule span{height:1px;background:#bead9170;flex:1}.dress-code-rule b{font-size:17px;font-weight:400}.dress-code-heading p{font-size:14px;line-height:2.3;max-width:400px;margin:0 auto}.fashion-scene{position:relative;margin:16px auto 22px;max-width:365px;display:flex;align-items:center;flex-direction:column}.fashion-chandelier{width:106px;height:138px;object-fit:contain;margin-bottom:0;transform-origin:top;animation:chandelierSway 9s ease-in-out infinite}.fashion-couple{width:min(100%,320px);height:auto;object-fit:contain;filter:drop-shadow(0 9px 8px #9e8eae10);animation:coupleBreathe 8s ease-in-out infinite;transform-origin:50% 90%}.dress-palette{margin:25px auto 28px;max-width:450px}.dress-palette-row{display:grid;grid-template-columns:repeat(var(--bow-count),minmax(0,1fr));gap:7px;justify-content:center;margin-bottom:18px}.dress-swatch{margin:0;min-width:0}.dress-bow{display:block;width:100%;max-width:64px;margin:0 auto 7px;overflow:visible;filter:drop-shadow(0 4px 3px #8d80901a)}.dress-swatch figcaption{font-size:11px;line-height:1.8;overflow-wrap:anywhere}.dress-code-rule-bottom{margin-bottom:0}
.venue-card{position:relative;z-index:2;max-width:570px;margin:auto;padding:38px 24px;background:#fffaf087;border:1px solid #bba58373;box-shadow:inset 0 0 0 7px #fff9;outline:1px solid #d5c7b055;outline-offset:5px}.venue-card:before{content:'';display:block;width:155px;height:30px;background:url('../img/lilac/flourish.svg') center/contain no-repeat;margin:0 auto 15px}.venue-pin{font:34px/1 Georgia,serif;color:#a69780}.venue-card h2{margin-bottom:9px}.venue-card address{font-size:14px;font-style:normal;line-height:2.3;margin-bottom:24px}.map-preview{position:relative;width:100%;height:225px;border:5px solid #f8f2e8;outline:1px solid #bba88880;margin:24px auto;overflow:hidden}.map-preview iframe{width:100%;height:100%;border:0;filter:saturate(.45)}.map-click-layer{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;text-decoration:none}.map-click-layer span{background:#faf5efee;font-size:11px;padding:7px 14px;width:100%}.neshan-route{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 18px;max-width:320px;margin:auto;border-radius:30px;background:#8c799d;color:#fff;text-decoration:none;font-size:14px;box-shadow:0 5px 18px #7d638d1f}.neshan-route svg{width:22px;height:25px;fill:none;stroke:currentColor;stroke-width:1.4}.neshan-route span{display:flex;flex-direction:column}.neshan-route b{font-weight:400}.neshan-route small{font-size:10px;opacity:.85}.neshan-route i{font-style:normal}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;position:relative;z-index:2}.gallery-card{border:1px solid #c5b69c;background:#fffbf2;padding:7px 7px 21px;box-shadow:0 8px 23px #65517414;transform:rotate(-2deg)}.gallery-card:nth-child(even){transform:rotate(2deg)}.gallery-card img{width:100%;height:220px;object-fit:cover;display:block}.empty-album{position:relative;z-index:2;padding:35px 20px;border:1px solid #c7b9a181;background:#fff9f177;color:var(--muted)}.empty-album span{display:block;font:36px/1.5 Georgia,serif;color:#ac97b3}.empty-album p{font-size:13px;margin:10px 0}.lightbox{border:1px solid #cabbad;padding:32px 12px 12px;max-width:94vw;max-height:94vh;background:#faf4ec}.lightbox::backdrop{background:#332839c9}.lightbox img{max-height:80vh;object-fit:contain;display:block}.lightbox button{position:absolute;top:0;right:5px;border:0;background:none;font-size:28px;color:var(--wine)}
.participation{padding-block:62px 46px}.rsvp-notice{font-size:13px;line-height:2.4;padding:0 10px}.participation-forms{display:flex;flex-direction:column;gap:46px;position:relative;z-index:2}.wedding-form{position:relative;padding:32px 24px;background:#fffaf1a8;border:1px solid #c6b49885;border-radius:5px;box-shadow:inset 0 0 0 6px #fff5;max-width:560px;margin:0 auto;width:100%;display:grid;gap:17px;min-width:0}.wedding-form h3{font:400 30px/2 Miremad,var(--fa);color:var(--wine);margin:0 0 4px}.wedding-form label{display:grid;gap:7px;font-size:13px}.wedding-form input:not([type=radio]):not([type=checkbox]),.wedding-form textarea{width:100%;min-width:0;border:1px solid #c9bdcf;border-radius:5px;background:#fffcf78c;color:var(--ink);padding:11px 12px;font-size:16px;line-height:1.9;text-align:center}.wedding-form textarea{resize:vertical;min-height:120px}.wedding-form fieldset{border:0;padding:0;margin:0;min-width:0}.wedding-form legend{width:100%;font-size:13px;margin-bottom:10px}.wedding-form .choice{display:flex;align-items:center;justify-content:center;gap:9px;padding:8px 3px;line-height:2}.wedding-form input[type=radio]{width:17px;height:17px;accent-color:#877195;flex-shrink:0}.wedding-form button[type=submit]{min-height:48px;border:1px solid #897595;border-radius:30px;background:#8c789b;color:#fff;padding:10px 16px;box-shadow:0 4px 13px #8b789a19}.wedding-form button:disabled{opacity:.6;cursor:wait}.form-result{font-size:13px;line-height:2;margin:0;overflow-wrap:anywhere}.form-result:empty{display:none}.form-result.success{color:#526d58}.form-result.error{color:#a2435c}#guestbookForm:before{content:'';position:absolute;width:51px;height:51px;left:calc(50% - 25px);top:-25px;background:url('../img/lilac/seal.svg') center/contain no-repeat}#guestbookForm{padding-top:40px}.guestbook-wall{position:relative;z-index:2;max-width:560px;margin:44px auto 0;padding:25px 17px;background:#faf4ea94;border-block:1px solid #cdbd9f77}.guestbook-wall header{display:flex;justify-content:center;align-items:center;gap:10px}.guestbook-wall header>span{color:#ad99b6}.guestbook-wall header p{font-size:11px;color:var(--muted);margin:0}.guestbook-wall header h3{font-size:16px;color:var(--wine);margin:6px 0 20px}.guest-notes blockquote{margin:16px 0;padding:20px 12px;background:#fffaf291;border:1px solid #d4c8b767}.guest-notes blockquote p{font-size:14px;overflow-wrap:anywhere}.guest-notes cite{font-size:12px;font-style:normal;color:#9b83a4}.guestbook-empty{font-size:13px;margin:10px 0}
/* Upload uses the exact existing form, endpoint and consent controls. */
.guest-media-section{padding-top:36px;padding-bottom:60px}.guest-media-paper{position:relative;z-index:2;max-width:620px;margin:auto;padding:36px 20px;background:#fffaf0b3;border:1px solid #c1ae9180;box-shadow:inset 0 0 0 6px #fff6}.guest-media-paper .section-heading{margin-bottom:25px}.guest-media-paper .section-heading p{font-size:14px;line-height:2.3}.guest-media-form{padding:0;border:0;background:none;box-shadow:none}.media-picker{padding:22px 10px;border:1px dashed #b39dbc;border-radius:6px;background:#f2eaf04f;display:grid;gap:12px}.wedding-form input[type=file]{font-size:12px!important;padding:9px 4px!important;border:0!important;background:none!important}.media-picker input::file-selector-button{font:inherit;border:0;border-radius:18px;background:#8b759b;color:white;padding:9px;margin-inline-end:5px}.media-picker small,.media-privacy-note,.media-closed,.shared-media-empty{font-size:12px;line-height:2.2;color:var(--muted);margin:0}.media-consent{margin:10px 0!important;display:grid;gap:8px}.media-consent .choice{padding:12px 8px;border:1px solid #d5c7dc;border-radius:5px;font-size:12px}.media-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px;overflow:hidden}.media-queue{list-style:none;padding:0;margin:12px 0;font-size:12px;line-height:2;overflow-wrap:anywhere}.media-queue li{padding:8px;border-bottom:1px solid #d5c8bc}.guest-media-form progress{width:100%;accent-color:#9581a4}.shared-moments{margin-top:34px;padding-top:26px;border-top:1px solid #c9bba477}.shared-moments h3{font-size:16px;color:var(--wine)}.shared-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shared-media-grid figure{margin:0;background:#fff9f2;border:1px solid #d6c8bd;padding:6px}.shared-media-grid img,.shared-media-grid video{display:block;width:100%;height:200px;object-fit:contain;background:#eee5eb}.shared-media-grid figcaption{font-size:12px;padding:12px 4px;overflow-wrap:anywhere}.shared-media-grid figcaption p{margin:7px 0}.shared-video-download{display:block;margin:8px 0;color:var(--wine)}.media-pagination{display:flex;justify-content:center;gap:18px;margin-top:24px;font-size:13px}.media-file-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;padding:18px;gap:8px;background:#efe7ef;text-decoration:none;overflow-wrap:anywhere}.media-file-card>span{font-size:30px}.media-file-card b,.media-file-card small{max-width:100%;font-size:12px}.back-to-invitation{position:relative;z-index:2;display:inline-block;margin:30px auto 10px;padding:9px 22px;border:1px solid #c0b0c8;border-radius:25px;font-size:13px;background:#faf4eb;text-underline-offset:5px}.moments-page #invitation{min-height:100vh}.media-unavailable{margin:25px}.moments-page h1{font-size:26px}.moments-page .guest-media-section{padding-top:22px}
.site-footer{position:relative;max-width:760px;margin:0 auto;padding:50px 24px 35px;background:#f4ede5;border-top:1px solid #baaa8d4a}.site-footer:before{content:'';display:block;width:180px;height:35px;background:url('../img/lilac/flourish.svg') center/contain no-repeat;margin:0 auto 20px}.footer-couple{font-size:38px;max-width:400px;margin:0 auto 16px}.footer-stars{font-size:11px;letter-spacing:.7em;color:#b0a088;margin-bottom:22px}.footer-logo-link{display:block;margin:0 auto 12px;width:55px;height:55px;border-radius:50%;overflow:hidden;background:#faf7f1;border:1px solid #d0c2b4}.footer-logo-link img{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}.footer-instagram{font:11px/1.8 Georgia,serif;letter-spacing:.13em;color:#968599;text-decoration:none}
/* Botanical growth is clipped from the stem upward; supports static fallback. */
.botanical-growth{position:absolute;width:112px;height:275px;pointer-events:none;z-index:1;bottom:20px;left:-53px;transform:rotate(-8deg);transform-origin:bottom center}.botanical-growth.branch-right{left:auto;right:-53px;bottom:auto;top:35px;transform:scaleX(-1) rotate(-8deg)}.botanical-growth .branch-reveal{height:100%;width:100%;transform-origin:bottom;display:block}.botanical-growth img{width:100%;height:100%;object-fit:contain;object-position:bottom;display:block;transform-origin:bottom center}.motion-ready .botanical-growth .branch-reveal{clip-path:inset(100% -15% -10% -15%);opacity:.3;transform:scaleY(.88);transition:clip-path 3.8s cubic-bezier(.33,.05,.31,1),transform 4.1s ease,opacity 1.4s ease}.motion-ready .botanical-growth.grown .branch-reveal{clip-path:inset(-10% -15% -10% -15%);transform:scaleY(1);opacity:1}.botanical-growth.grown img{animation:branchSway 10s ease-in-out 4s infinite}.hero>.botanical-growth{width:165px;height:420px;left:-59px;bottom:40px;z-index:3}.hero>.branch-right{right:-60px;left:auto;top:auto;bottom:75px}.program-section>.botanical-growth{z-index:3;opacity:.85}.petal-rain{position:fixed;inset:0;pointer-events:none;z-index:7;overflow:hidden}.petal-rain i{position:absolute;top:-25px;width:7px;height:11px;border-radius:70% 5% 70% 30%;background:#b6a0c15e;animation:petalFall 21s linear infinite;left:8%}.petal-rain i:nth-child(2){left:86%;animation-delay:-7s;animation-duration:28s}.petal-rain i:nth-child(3){left:23%;animation-delay:-15s;animation-duration:25s}.petal-rain i:nth-child(4){left:73%;animation-delay:-19s;animation-duration:32s}.petal-rain i:nth-child(n+5){display:none}
@keyframes branchSway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}}@keyframes petalFall{0%{transform:translate(0,-30px) rotate(0deg);opacity:0}10%{opacity:.45}45%{transform:translate(28px,45vh) rotate(160deg)}90%{opacity:.3}100%{transform:translate(-10px,105vh) rotate(320deg);opacity:0}}@keyframes wingFlutter{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.3)}}@keyframes scrollDot{0%,100%{transform:translateY(0);opacity:.4}55%{transform:translateY(9px);opacity:1}}@keyframes hintPulse{50%{transform:scale(1.15);opacity:.4}}@keyframes chandelierSway{0%,100%{transform:rotate(-1.3deg)}50%{transform:rotate(1.3deg)}}@keyframes coupleBreathe{0%,100%{transform:translateY(0) rotate(-.25deg)}50%{transform:translateY(-3px) rotate(.25deg)}}
@media(min-width:600px){.section-pad{padding-inline:64px}.hero{padding-top:40px;padding-inline:65px}.hero-crest{width:86px;height:100px}.hero>.botanical-growth{width:230px;height:535px;left:-55px}.hero>.branch-right{right:-55px;left:auto}.botanical-growth{width:150px;height:370px;left:-48px}.botanical-growth.branch-right{right:-48px;left:auto}.program-copy h3{font-size:17px}.program-copy p{font-size:13px}.program-copy time{font-size:14px}.program-item{min-height:190px}.program-paper{padding:38px 28px 25px}.program-day>span{font-size:11px}.program-day time{font-size:14px}.timeline-runner{width:61px;height:61px}.message-card{padding:66px 45px 48px}.invitation-copy{font-size:16px}.message-content strong{font-size:14px}.dress-swatch figcaption{font-size:13px}.guest-media-paper{padding:42px 32px}.gallery-card img{height:300px}}
@media(max-width:359px){.section-pad{padding-inline:20px}.hero{padding-inline:29px}.hero-crest{width:61px;height:72px}.hero-content h1{font-size:36px}.hero-date{font-size:12px}.message-card{padding:52px 21px 32px}.message-content h2{font-size:26px}.invitation-copy{font-size:13px}.message-content strong{font-size:12px}.program-paper{padding-inline:11px}.program-copy h3{font-size:12px}.program-copy p{font-size:10px}.program-item{min-height:170px}.program-day>span{font-size:8px}.program-day time{width:26px;font-size:11px}.wedding-form{padding-inline:18px}.guest-media-paper{padding-inline:16px}.shared-media-grid{grid-template-columns:1fr}.dress-palette-row{gap:4px}.dress-swatch figcaption{font-size:10px}.section-heading h2{font-size:29px}.hero>.botanical-growth{width:138px;left:-51px}.hero>.branch-right{right:-51px;left:auto}}
@supports not (aspect-ratio:4/5){.framed-photo-container{height:440px}.couple-photo{height:100%}@media(max-width:500px){.framed-photo-container{height:390px}}@media(max-width:359px){.framed-photo-container{height:320px}}}
@supports not (clip-path:inset(0)){.motion-ready .botanical-growth .branch-reveal{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.motion-ready .botanical-growth .branch-reveal{clip-path:none;opacity:1;transform:none}.petal-rain{display:none}.timeline-runner{transition:none}}
@media print{.wedding-intro,.music-toggle,.petal-rain,.scroll-cue,#main-bg-video{display:none!important}.reveal{opacity:1!important;transform:none!important}.botanical-growth .branch-reveal{clip-path:none!important;opacity:1!important}#invitation{max-width:none;box-shadow:none}.section-pad{break-inside:avoid}}

.dialog-fallback:not([open]){display:none}.dialog-fallback[open]{display:block;position:fixed;inset:5vh 3vw;z-index:80;margin:auto;width:max-content;height:max-content;max-width:94vw;box-shadow:0 0 0 100vmax #332839c9}
