@font-face{font-family:"Great Vibes";src:url("assets/fonts/great-vibes-400.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("assets/fonts/cormorant-garamond-400.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("assets/fonts/cormorant-garamond-600.woff") format("woff");font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url("assets/fonts/manrope-400.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url("assets/fonts/manrope-600.woff") format("woff");font-weight:600;font-display:swap}
:root{--navy:#132d46;--navy-deep:#0d2236;--paper:#fcfaf4;--canvas:#eae6dd;--gold:#c3a36b;--gold-dark:#806232;--ink:#20364a;--muted:#62675f;--line:#d8cbb0;--blue:#315978;--rose:#80525d;--green:#406557;--serif:"Cormorant Garamond",Georgia,serif;--script:"Great Vibes","Brush Script MT",cursive;--sans:Manrope,"Helvetica Neue",Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-tap-highlight-color:transparent}body.cover-active{overflow:hidden}body.sheet-open{overflow:hidden}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,[role="tabpanel"]:focus-visible{outline:3px solid var(--gold-dark);outline-offset:5px}button:active{filter:brightness(.92)}button[hidden],[hidden]{display:none!important}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.page-grain{position:fixed;inset:0;z-index:8;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.2' filter='url(%23n)'/%3E%3C/svg%3E")}
/* The opened invitation stays a single paper composition, rather than stacked cards. */
.invitation-shell{max-width:776px;margin:auto;padding:0 32px 36px;transition:opacity .7s ease,transform 1s var(--ease)}.cover-active .invitation-shell{opacity:0;transform:translateY(16px)}.invitation-paper{background:var(--paper);position:relative;box-shadow:0 10px 45px #38423710;overflow:hidden;border:1px solid #d5cbbba6}.greeting{position:relative;min-height:810px;display:grid;place-items:center;padding:74px 55px 60px;isolation:isolate}.greeting:before{content:"";position:absolute;inset:20px;border:1px solid var(--line);z-index:-1}.greeting:after{content:"";position:absolute;inset:26px;border:1px solid #d8cbb052;z-index:-1}.paper-botanical{position:absolute;width:215px;z-index:-1;opacity:.42}.paper-botanical-left{left:-88px;bottom:-8px;transform:rotate(7deg)}.paper-botanical-right{right:-88px;top:-30px;transform:rotate(188deg)}.greeting-content{text-align:center;width:100%}.bismillah{font-family:"Noto Naskh Arabic","Traditional Arabic","Times New Roman",serif;font-size:31px;line-height:1.8;margin:0 0 28px;color:var(--navy);text-wrap:balance}.salutation{font-family:var(--serif);font-size:22px;margin:0 0 20px}.invitation-message{font-size:14px;line-height:1.9;margin:0;color:var(--muted);text-wrap:balance}.couple-names{font-family:var(--script);font-weight:400;font-size:84px;line-height:1.15;margin:34px 0 20px;display:flex;flex-direction:column;align-items:center;outline:none}.couple-names>span{display:block}.couple-names .name-ampersand{font-family:var(--serif);font-size:35px;color:var(--gold-dark);line-height:1.1;margin:5px 0}.fine-ornament{display:flex;justify-content:center;align-items:center;gap:16px;margin:20px 0 25px;color:var(--gold-dark)}.fine-ornament span{height:1px;width:54px;background:var(--line)}.fine-ornament svg{width:34px;height:24px;stroke:var(--gold-dark);fill:none;stroke-width:1.15}.greeting-close{font-family:var(--serif);font-size:20px;line-height:1.45;margin:0;color:var(--ink)}.scroll-cue{display:inline-flex;flex-direction:column;align-items:center;font-size:12px;gap:7px;margin-top:36px;text-decoration:none;min-height:44px;color:var(--muted)}
.celebrations{padding:64px 54px 46px;text-align:center;scroll-margin-top:20px}.section-heading h2,.all-dates h2,.blessing h2{font-family:var(--serif);font-size:34px;line-height:1.2;font-weight:400;margin:0 0 12px;text-wrap:balance}.section-heading p{font-size:13px;color:var(--muted);margin:0 0 28px}.event-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);position:relative;gap:4px}.event-tabs button{min-height:52px;border:0;border-bottom:2px solid transparent;background:transparent;padding:12px 4px;margin-bottom:-1px;font-size:12px;color:var(--muted);transition:color .2s,border-color .2s}.event-tabs button[aria-selected="true"]{border-color:var(--navy);color:var(--navy);font-weight:600}.event-tabs button:hover{color:var(--navy)}.event-panel{--event-ink:var(--rose);position:relative;padding:30px 0 8px;scroll-margin-top:20px}.event-panel[data-theme="blue"]{--event-ink:var(--blue)}.event-panel[data-theme="green"]{--event-ink:var(--green)}.event-panel.switching{animation:event-change .45s var(--ease)}.event-art{position:relative;margin:0 auto 8px;width:min(320px,100%);color:var(--event-ink)}.venue-illustration{display:block;width:100%;height:146px}.art-ground{position:absolute;bottom:4px;left:14%;right:14%;height:14px;background:radial-gradient(ellipse,#baa98e20,transparent 68%);z-index:-1}.event-host{font-size:12px;color:var(--event-ink);margin:6px 0 5px}.event-panel h3{font-family:var(--serif);font-size:35px;font-weight:600;line-height:1.3;margin:0 0 24px}.event-date{display:flex;align-items:center;justify-content:center;gap:15px;margin:0 auto 18px;width:fit-content}.date-day{font-family:var(--serif);font-size:70px;line-height:1;letter-spacing:-.04em;font-weight:400}.date-month{font-family:var(--serif);font-size:25px;line-height:1.15;text-align:left}.date-month span{display:block;font-family:var(--sans);font-size:12px;line-height:1.8;color:var(--muted)}.date-weekday{border-left:1px solid var(--line);padding:10px 0 10px 16px;font-size:13px}.event-time{display:flex;justify-content:center;align-items:center;gap:8px;font-size:13px;margin:0}.event-time .icon{width:17px;height:17px;color:var(--event-ink)}.event-location{margin:27px 0 24px}.event-location h4{font-family:var(--serif);font-size:26px;line-height:1.3;margin:0 0 5px;font-weight:600}.event-location p{font-size:13px;color:var(--muted);margin:0}.event-location .location-note{max-width:280px;font-size:12px;line-height:1.6;margin:12px auto 0}.event-actions{display:flex;justify-content:center;gap:10px}.action{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:48px;padding:12px 17px;border-radius:4px;border:1px solid var(--navy);font-size:12px;font-weight:600;line-height:1.5;text-decoration:none;transition:background-color .2s,color .2s;white-space:nowrap}.action .icon{width:17px;height:17px}.primary{background:var(--navy);color:var(--paper)}.primary:hover{background:var(--navy-deep)}.secondary{background:transparent;color:var(--navy)}.secondary:hover{background:#132d4609}.waze-link{font-size:12px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-underline-offset:4px;color:var(--muted);margin-top:4px}.countdown-wrap{border-top:1px solid var(--line);margin-top:30px;padding-top:28px}.countdown-wrap>p{font-family:var(--serif);font-size:19px;color:var(--muted);margin:0 0 12px}.countdown{display:flex;justify-content:center;gap:21px;align-items:flex-start}.countdown>div{min-width:53px}.countdown>div span{display:block}.countdown>div span:first-child{font-family:var(--serif);font-size:39px;line-height:1.15;font-variant-numeric:tabular-nums}.countdown>div span:last-child{font-size:11px;margin-top:5px;color:var(--muted)}.countdown-colon{font-family:var(--serif);font-size:25px;margin-top:3px;color:var(--gold-dark)}
.all-dates{padding:36px 82px 48px;position:relative}.all-dates h2{font-size:27px;text-align:center;margin-bottom:26px}.date-list{list-style:none;margin:0;padding:0}.date-list li{position:relative}.date-list li:not(:last-child):after{content:"";position:absolute;left:5px;top:40px;bottom:-24px;width:1px;background:var(--line);pointer-events:none}.date-list button{width:100%;display:flex;align-items:center;gap:20px;border:0;background:transparent;text-align:left;padding:14px 0;min-height:74px}.timeline-dot{width:11px;height:11px;border:1px solid var(--gold-dark);border-radius:50%;background:var(--paper);flex:none;z-index:1}.date-list button>span:nth-child(2){display:flex;flex-direction:column;flex:1}.date-list strong{font-family:var(--serif);font-weight:600;font-size:21px}.date-list button>span:nth-child(2)>span{font-size:12px;color:var(--muted)}.date-list .icon{transform:rotate(-90deg);width:17px;height:17px;color:var(--gold-dark)}.date-list button:hover .timeline-dot{background:var(--gold)}
.blessing{background:#efeee4;text-align:center;padding:49px 32px 51px;margin:0 20px;position:relative;border:1px solid #ddd9c8}.blessing-rings{height:54px;width:85px;fill:none;stroke:var(--gold-dark);stroke-width:1.2;margin-bottom:19px}.blessing h2{font-size:31px}.blessing p{font-family:var(--serif);font-size:21px;line-height:1.7;margin:20px 0 25px;text-wrap:balance}.blessing-signature{font-family:var(--script);font-size:33px;color:var(--navy)}.paper-footer{text-align:center;padding:37px 20px 20px}.paper-footer>p:first-child{font-family:var(--serif);font-size:20px;margin:0 0 12px}.share-invitation{display:inline-flex;align-items:center;gap:9px;min-height:44px;border:0;background:transparent;font-size:12px;text-decoration:underline;text-underline-offset:5px}.share-invitation .icon{width:17px;height:17px}.footer-year{font-family:var(--serif);font-size:14px;color:var(--muted);margin:32px 0 0}.back-to-cover{margin:22px auto 0;display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:0;font-size:12px;min-height:44px;color:var(--muted)}.back-to-cover .icon{width:18px;height:18px}
.calendar-dialog{width:calc(100% - 32px);max-width:420px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 16px 70px #061b3a33;max-height:85dvh;overflow-y:auto}.calendar-dialog::backdrop{background:#0d2236a8;backdrop-filter:blur(3px)}.calendar-dialog[open]{animation:dialog-in .28s var(--ease)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-heading h2{font-family:var(--serif);font-size:30px;font-weight:400;margin:0}.icon-button{width:44px;height:44px;display:grid;place-items:center;background:transparent;border:0;flex:none;border-radius:50%}.icon-button:hover{background:#132d4609}.calendar-dialog>p{font-size:13px;line-height:1.7;color:var(--muted);margin:10px 0 24px}.calendar-option{display:flex;align-items:center;gap:14px;text-decoration:none;width:100%;padding:18px 8px;background:transparent;border:0;border-top:1px solid var(--line);text-align:left;min-height:82px}.calendar-option>span{display:flex;flex-direction:column;gap:5px}.calendar-option strong{font-size:14px;font-weight:600}.calendar-option span span{font-size:12px;color:var(--muted)}.calendar-option:hover{background:#132d4605}.calendar-dialog .calendar-note{margin:12px 0 0;font-size:12px}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:30;max-width:calc(100% - 32px);width:fit-content;display:flex;align-items:center;gap:12px;background:var(--navy);color:var(--paper);border-radius:6px;padding:8px 8px 8px 18px;box-shadow:0 8px 30px #0003;font-size:13px;animation:dialog-in .25s var(--ease)}.toast button{display:grid;place-items:center;border:0;background:transparent;color:inherit;min-width:44px;min-height:44px}.toast .icon{width:17px;height:17px}
@keyframes botanical-breeze{from{transform:rotate(-1deg)}to{transform:rotate(2deg)}}@keyframes botanical-breeze-mirrored{from{transform:scaleX(-1) rotate(-1deg)}to{transform:scaleX(-1) rotate(2deg)}}@keyframes event-change{from{opacity:.15;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(min-width:900px){.invitation-shell{padding-top:0}.greeting{min-height:850px}.paper-botanical{width:250px}.paper-botanical-left{left:-80px}.paper-botanical-right{right:-80px}.couple-names{font-size:94px}}
@media(max-width:600px){.invitation-shell{padding:0 14px calc(26px + env(safe-area-inset-bottom))}.greeting{padding:54px 32px 44px;min-height:760px}.greeting:before{inset:12px}.greeting:after{inset:17px}.paper-botanical{width:176px;opacity:.35}.paper-botanical-left{left:-84px}.paper-botanical-right{right:-84px;top:-11px}.bismillah{font-size:29px;margin-bottom:25px}.salutation{font-size:20px}.invitation-message{font-size:13px}.couple-names{font-size:76px;margin:32px 0 20px}.greeting-close{font-size:20px}.celebrations{padding:47px 24px 28px}.section-heading h2{font-size:30px}.event-tabs button{font-size:11px;padding-inline:2px}.event-panel{padding-top:22px}.event-panel h3{font-size:31px;margin-bottom:20px}.event-art{width:270px;max-width:100%}.venue-illustration{height:130px}.event-location h4{font-size:25px}.event-actions{gap:8px}.action{padding:12px 12px;font-size:11px}.countdown{gap:15px}.all-dates{padding:31px 42px 35px}.all-dates h2{font-size:26px}.blessing{margin:0 12px;padding:37px 20px 38px}.blessing p{font-size:19px;line-height:1.75}.blessing h2{font-size:29px}.paper-footer{padding-top:30px}.cover-intro{font-size:18px;margin-bottom:20px}.opening-cue{margin-top:22px}}
@media(max-width:360px){.cover-stage{padding:18px 24px}.fold-card{width:min(330px,100%)}.cover-name{font-size:67px}.cover-label{font-size:19px}.cover-footer{font-size:11px}.wax-seal{width:74px;height:74px}.greeting{padding-inline:24px}.celebrations{padding-inline:17px}.couple-names{font-size:68px}.action{padding-inline:10px;gap:6px}.section-heading p{font-size:12px}.all-dates{padding-inline:30px}}
@media(max-height:760px) and (min-width:361px){.cover-stage{padding:14px 22px}.fold-card{width:min(350px,calc((100svh - 160px)*.722))}.cover-intro{margin-bottom:16px;font-size:18px}.cover-name{font-size:72px}.opening-cue{margin-top:16px}.cover-footer{font-size:12px}}
@media(max-height:580px){.fold-card{width:min(270px,calc((100svh - 105px)*.722))}.cover-intro{font-size:15px;margin-bottom:10px}.cover-name{font-size:clamp(30px,9svh,60px)}.cover-label{font-size:15px}.cover-footer{font-size:9px}.wax-seal{width:58px;height:58px}.seal-monogram{font-size:21px}.seal-monogram span{font-size:12px}.opening-cue{margin-top:10px;font-size:11px}.opening-cue .icon,.direct-open{display:none}.cover-stage{padding:12px}.card-inside p{font-size:13px}.inside-names{font-size:42px;margin:10px 0 16px}.inside-flourish{width:26px;height:20px;margin-bottom:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.is-opening .door-left{transform:translateX(-100%)}.is-opening .door-right{transform:translateX(100%)}.is-opening .fold-card{transform:none}}
@media print{body{background:white}.cover-stage,.page-grain,.back-to-cover,.event-tabs,.event-actions,.waze-link,.scroll-cue,.countdown-wrap,.share-invitation,.toast,dialog,.date-list{display:none!important}.invitation-shell{padding:0;max-width:100%;opacity:1!important;transform:none!important}.invitation-paper{border:none;box-shadow:none}.greeting{min-height:0;padding:30px 20px}.couple-names{font-size:50px;margin:12px 0;flex-direction:row;justify-content:center;gap:15px}.couple-names .name-ampersand{font-size:24px}.greeting-close,.invitation-message{font-size:12px}.salutation{font-size:16px}.fine-ornament{margin:8px 0}.greeting:before,.greeting:after,.paper-botanical{display:none}.celebrations{padding:20px}.section-heading,.event-panel,.all-dates{display:none}.print-events{display:block!important}.print-event{break-inside:avoid;text-align:center;padding:14px;border-bottom:1px solid var(--line)}.print-event h3{font-family:var(--serif);font-size:24px;margin:0 0 6px}.print-event p{margin:3px 0;font-size:12px}.blessing{margin:20px;background:white;padding:15px;break-inside:avoid}.blessing p{font-size:14px;margin:10px 0}.blessing-rings{display:none}.paper-footer{padding:15px}.footer-year{margin:0}}
