@font-face{font-family:Cormorant;src:url('assets/fonts/CormorantGaramond[wght].ttf') format('truetype');font-weight:300 700;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/fonts/CormorantGaramond-Italic[wght].ttf') format('truetype');font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:GreatVibes;src:url('assets/fonts/GreatVibes-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Jost;src:url('assets/fonts/Jost[wght].ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Amiri;src:url('assets/fonts/Amiri-Regular.ttf') format('truetype');font-display:swap}
:root{--ink:#39362f;--muted:#706c61;--gold:#8a7c5e;--line:#c8beac;--paper:#f5efe6;--sans:Jost,Arial,sans-serif;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:#d9d2c6;font:400 19px/1.7 var(--sans);overflow-x:hidden}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #514c3b;outline-offset:5px}button:disabled{cursor:default}button svg,a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}p,h1,h2,h3{margin:0}button{touch-action:manipulation}svg.svg-defs{position:absolute;width:0;height:0;overflow:hidden}main{max-width:760px;margin:auto;box-shadow:0 0 100px #5e513724;background:#eae1d1}h2{font-family:var(--serif);font-weight:400;font-size:clamp(42px,7vw,66px);line-height:1.08}h3{font-family:var(--serif);font-weight:400}p{font-weight:400}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.28em;line-height:1.6;font-weight:500;color:var(--gold)}.visually-hidden,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link:focus{position:fixed;top:15px;left:15px;z-index:20;background:var(--paper);padding:12px}
.hero{height:max(740px,100svh);max-height:1180px;position:relative;isolation:isolate;overflow:hidden;container-type:inline-size;background:#c9baa2}.hero-art{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 50%;z-index:-1;filter:saturate(.65) brightness(1.08)}.hero-copy{position:absolute;top:15%;left:0;right:0;text-align:center;padding:0 12%;opacity:0;transform:translateY(13px);transition:opacity 1.4s .75s,transform 1.4s .75s}.bismillah{font-family:Amiri,serif;font-size:clamp(26px,6cqw,43px);color:#81724e;line-height:1.9;white-space:nowrap}.hero-eyebrow{margin:13px 0 22px;letter-spacing:.26em;font-size:clamp(10px,2.3cqw,15px)}h1{font-family:GreatVibes,cursive;font-size:clamp(60px,17cqw,108px);font-weight:400;line-height:1.05;display:flex;flex-direction:column;gap:8px}h1 em{font-family:var(--serif);color:var(--gold);font-style:italic;font-size:.42em;line-height:1.1;margin:0 0 4px}.hero-date{margin-top:28px}.hero-date .eyebrow{color:var(--ink);font-size:clamp(11px,2.7cqw,17px);letter-spacing:.22em}.date-line{font-family:var(--serif);font-size:clamp(24px,6cqw,39px);line-height:1.5;white-space:nowrap}.hero-date .hero-time{margin-top:3px}.hero-venue{font-family:var(--serif);font-style:italic;font-size:clamp(23px,5.4cqw,34px);margin-top:10px;white-space:nowrap}.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:9px;text-decoration:none;text-transform:uppercase;letter-spacing:.32em;font-size:10px;opacity:0;transition:opacity 1s 1.8s}.scroll-cue i{height:30px;width:1px;background:var(--ink);transform-origin:top;animation:scrollLine 2s ease-in-out infinite}.opened .hero-copy{opacity:1;transform:none}.opened .scroll-cue{opacity:1}
.doorway{position:absolute;inset:4% 14% 21%;display:flex;perspective:1000px;clip-path:path('M 0 900 L 0 270 Q 0 100 270 0 Q 540 100 540 270 L 540 900 Z');clip-path:polygon(0 100%,0 32%,2% 26%,5% 22%,10% 17%,17% 12%,25% 9%,37% 4%,50% 0,63% 4%,75% 9%,83% 12%,90% 17%,95% 22%,98% 26%,100% 32%,100% 100%);transition:opacity .5s 1.4s;filter:drop-shadow(0 6px 14px #433c3c60)}.door{width:50%;height:100%;background:linear-gradient(100deg,#d9d0c1,#bfb5a6 60%,#eee6d8);position:relative;color:#ece5d9;backface-visibility:hidden;transition:transform 2.2s cubic-bezier(.3,.05,.2,1);box-shadow:inset 0 0 0 4px #a99e8d,inset 0 0 0 12px #e4dac9}.door svg{position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);filter:drop-shadow(2px 2px 2px #60574a80)}.door-left{transform-origin:left center;border-right:3px solid #c1b6a2}.door-right{transform-origin:right center;border-left:2px solid #eee8db}.door-handle{position:absolute;top:58%;width:12px;height:38px;border:3px solid #776a4b;border-radius:50%;box-shadow:1px 1px 3px #483b2c50}.door-left .door-handle{right:15px}.door-right .door-handle{left:15px}.opened .door-left{transform:rotateY(-105deg)}.opened .door-right{transform:rotateY(105deg)}.opened .doorway{opacity:0;pointer-events:none}.open-invitation{position:absolute;inset:0;border:0;background:transparent;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-top:60px;gap:20px;transition:opacity .4s;z-index:2}.seal{display:grid;place-content:center;position:relative;width:87px;height:87px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b4a178,#887550);border:4px double #c7b58f;box-shadow:2px 4px 10px #51432855;font-family:var(--serif);font-size:24px;letter-spacing:.05em;color:#fff4d5}.seal>span{font-style:italic;font-size:15px;margin:0 2px}.open-label{font-size:11px;letter-spacing:.17em;text-transform:uppercase;background:#f5eee1e6;padding:10px 16px;border-radius:3px;color:#635a45}.opened .open-invitation{opacity:0;pointer-events:none}.floating-tools{position:fixed;right:max(12px,calc((100vw - 760px)/2 + 14px));top:max(18px,env(safe-area-inset-top));display:flex;flex-direction:column;gap:9px;z-index:10}.floating-tools[hidden]{display:none}.round-button{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;border:1px solid var(--line);background:#f5f0e5de;backdrop-filter:blur(8px);box-shadow:0 3px 12px #685c3b0a}.round-button svg{width:19px;height:19px}.round-button:hover{background:#fffaf1}.round-button[aria-pressed=true]{background:var(--gold);color:#fff8e9}
.invitation-body{position:relative;padding:75px 18px 30px;background:linear-gradient(#eee6d280,#eae2d480),url('assets/arch.webp') center top / 100% auto repeat-y;visibility:hidden}.opened .invitation-body{visibility:visible}.paper{padding:64px 38px;text-align:center;background:#f7f1e8f7;box-shadow:0 10px 26px #514a3526;border-radius:4px;position:relative;margin:0 auto 110px;isolation:isolate}.paper:before{content:'';position:absolute;inset:12px;border:1px solid var(--line);pointer-events:none;z-index:-1}.paper h2{color:var(--ink)}.ornament{width:110px;height:1px;background:var(--line);position:relative;margin:20px auto 37px}.ornament:after{content:'';height:9px;width:9px;position:absolute;left:calc(50% - 4.5px);top:-4px;transform:rotate(45deg);background:var(--gold)}.amp{font-family:var(--serif);font-style:italic;font-size:27px;line-height:1;color:var(--gold)}.salam{font-family:Amiri,serif;font-size:clamp(25px,5.2vw,39px);line-height:2;color:var(--gold);margin-bottom:35px}.hosts{font-family:var(--serif);font-size:clamp(26px,4.5vw,37px);line-height:1.3}.hosts .amp{display:block;margin:14px 0}.invitation-line{margin:30px auto 36px;color:#696358;font-size:19px;line-height:1.8}.person h3{font-size:clamp(34px,5.7vw,49px);line-height:1.2}.person p{font-size:15px;color:var(--muted);line-height:1.7;margin-top:10px}.couple-amp{display:block;margin:22px 0}.family-blessing{margin:36px 0 5px;font-size:19px;line-height:1.9}.countdown-section>.eyebrow{margin-bottom:8px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:36px}.countdown>div{background:#eae4d7b0;border:1px solid #c5b9a3;border-radius:6px;padding:16px 4px 13px;min-width:0}.countdown span{display:block;font-family:var(--serif);font-weight:400;font-variant-numeric:tabular-nums;color:var(--gold);font-size:clamp(34px,7vw,55px);line-height:1.1}.countdown small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.14em;margin-top:12px;color:var(--muted)}.event-section>.eyebrow{margin-bottom:8px}.weekday{color:var(--ink);margin-top:8px}.day-number{font-family:var(--serif);font-size:110px;line-height:1.05;color:var(--gold);margin:12px 0 1px;font-weight:400}.month{font-size:15px;color:var(--ink);letter-spacing:.22em}.year{font-size:17px;letter-spacing:.18em;color:var(--muted);line-height:1.2}.event-time{margin:30px 0 28px;font-size:22px;font-weight:500}.event-time span{display:block;font-size:12px;letter-spacing:.15em;font-weight:400;color:var(--muted);margin-top:3px}.venue-name{font-size:clamp(32px,5.7vw,44px);line-height:1.2}.venue-address{font-size:18px;color:var(--muted);margin-top:10px}.venue-card{display:flex;align-items:center;flex-direction:column;justify-content:center;height:235px;border:1px solid var(--line);border-radius:140px 140px 8px 8px;overflow:hidden;position:relative;text-decoration:none;isolation:isolate;background:#e6e4d9;margin-top:32px;transition:box-shadow .2s}.venue-card:hover{box-shadow:0 6px 18px #5e573330}.map-pattern{position:absolute;inset:0;z-index:-1;opacity:.55;background:repeating-linear-gradient(18deg,transparent 0 44px,#f8f6f1 45px 52px,transparent 53px 100px),repeating-linear-gradient(103deg,transparent 0 64px,#f8f6f1 65px 71px,transparent 72px 110px)}.map-park{position:absolute;background:#aabc9f;border-radius:30%}.park-one{width:120px;height:80px;left:8%;top:20%;transform:rotate(-16deg)}.park-two{width:80px;height:130px;right:6%;bottom:10%;transform:rotate(21deg)}.map-road{position:absolute;width:160%;height:12px;background:#fffdf5;border:1px solid #d0c7ae;left:-20%;top:57%;transform:rotate(-27deg)}.road-two{transform:rotate(31deg);top:64%}.road-three{transform:rotate(85deg);top:30%}.location-mark{color:var(--gold);background:var(--paper);padding:10px;border-radius:50%;display:grid;place-items:center;box-shadow:0 5px 15px #50462b20}.location-mark svg{height:29px;width:29px}.map-venue{font-family:var(--serif);font-size:27px;line-height:1.2;margin-top:9px;background:#f7f1e8ef;padding:3px 12px}.map-city{font-size:12px;letter-spacing:.2em;text-transform:uppercase;background:#f7f1e8ef;padding:1px 12px}.map-caption{display:flex;gap:9px;align-items:center;background:#f5efe6eb;padding:7px 14px;margin-top:11px;font-size:12px}.map-caption svg{height:14px;width:14px}.button-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:24px}.button{padding:12px 24px;border-radius:50px;border:1px solid #b4a88f;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;text-transform:uppercase;font-size:13px;letter-spacing:.1em;line-height:1.5;min-height:47px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--gold);border-color:var(--gold);color:#fff9ef}.button.primary:hover{background:#776a50}.button.secondary{background:#f7f2e9}.button.secondary:hover{background:#e8dfcf}.button svg{width:19px;height:19px}.calendar-button{margin-top:24px}.dress-section .eyebrow{margin-bottom:9px}.dress-section p:not(.eyebrow){max-width:440px;margin:auto;font-size:21px;line-height:1.8}.swatches{display:flex;justify-content:center;gap:12px;margin-top:30px}.swatches span{width:49px;height:49px;border-radius:50%;border:4px solid var(--paper);outline:1px solid var(--line)}.ivory{background:#eee6d8}.gold{background:#c3ad79}.sage{background:#82917d}.contact{margin:0 0 32px}.contact:last-child{margin-bottom:0}.contact h3{font-size:34px;line-height:1.3}.contact .button-row{margin-top:14px;gap:10px}.prayer-section .dua{font-family:Amiri,serif;color:var(--gold);font-size:clamp(29px,5.4vw,42px);line-height:2.2;margin:28px 0 20px}.translation{font-style:italic;font-size:20px;line-height:1.9}.gifts-section p{font-size:20px;line-height:1.9}.gifts-section{margin-bottom:55px}footer{text-align:center;padding:10px 20px 40px;color:#4f493d}.footer-names{font-family:GreatVibes,cursive;font-size:38px}.footer-names .amp{font-size:23px;margin:0 5px}footer .eyebrow{margin-top:13px;color:#62573e}footer>a{display:inline-block;margin-top:24px;text-underline-offset:6px;font-size:12px;letter-spacing:.05em}.reveal{transition:opacity .75s ease,transform .75s ease}.js-reveal{opacity:0;transform:translateY(24px)}.js-reveal.visible{opacity:1;transform:none}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;background:#494232;color:#fff8ea;padding:12px 24px;border-radius:30px;z-index:20;pointer-events:none;font-size:14px;transition:opacity .25s,transform .25s;text-align:center;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}.no-script-note{padding:15px;text-align:center;background:var(--paper)}
@keyframes scrollLine{0%,100%{transform:scaleY(.65);opacity:.5}50%{transform:scaleY(1);opacity:1}}
@media(min-width:620px){.hero{height:1040px}.hero-copy{top:17%;padding:0 16%}.hero-date{margin-top:35px}.hero-eyebrow{margin-bottom:30px}.invitation-body{padding:100px 36px 30px}.paper{padding:76px 45px;margin-bottom:125px}.person p{font-size:18px}.family-blessing{font-size:22px}.salam{font-size:40px}.invitation-line{font-size:22px}.countdown small{font-size:12px}.venue-card{height:275px}}
@media(max-width:400px){body{font-size:17px}.hero{height:max(740px,100svh)}.hero-copy{top:15.5%;padding:0 10%}.hero-eyebrow{margin:9px 0 18px}h1{font-size:17.5cqw}.hero-date{margin-top:23px}.hero-venue{font-size:25px}.invitation-body{padding:60px 12px 25px}.paper{padding:52px 26px;margin-bottom:85px}.paper:before{inset:9px}.countdown{gap:8px}.countdown>div{padding:14px 2px 12px}.countdown small{font-size:8px;letter-spacing:.09em}.countdown-section{padding-left:22px;padding-right:22px}.salam{font-size:26px}.hosts{font-size:28px}.invitation-line{font-size:18px}.person h3{font-size:36px}.family-blessing{font-size:18px}.button{padding:11px 18px;font-size:11px}.button svg{width:17px;height:17px}.contact h3{font-size:30px}.contact .button-row{gap:8px}.day-number{font-size:100px}.event-time{font-size:20px}.dress-section p:not(.eyebrow),.translation,.gifts-section p{font-size:18px}.map-caption{font-size:11px}.venue-card{height:220px}.gifts-section{margin-bottom:45px}}
@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{body{background:white;font-size:12pt;overflow:visible}main{max-width:none;box-shadow:none}.hero{height:240mm;break-after:page}.hero-copy{opacity:1;transform:none}.doorway,.open-invitation,.floating-tools,.scroll-cue,.toast,.skip-link{display:none!important}.invitation-body{visibility:visible;padding:0;background:none}.paper{break-inside:avoid;box-shadow:none;margin:20mm 0;padding:15mm;background:#fff}.js-reveal{opacity:1;transform:none}.countdown-section,footer{display:none}.button{font-size:9pt}.hero-art{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.scroll-cue{visibility:hidden}.opened .scroll-cue{visibility:visible}.seal{display:flex;align-items:center;justify-content:center}
[hidden]{display:none!important}
