:root{--ivory:#f8f1e4;--cream:#f3e5cf;--gold:#9b7a3e;--ink:#655337;--olive:#74795c;--line:#b99b6559;--serif:'Cormorant Garamond',Georgia,serif;--body:'Ovo',Georgia,serif;--script:'Great Vibes',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9ddcc;color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #705b32;outline-offset:6px}button:disabled{cursor:default}.invitation{position:relative;max-width:520px;margin:auto;overflow:hidden;background:radial-gradient(ellipse at 30% 10%,#fff9eab0,transparent 45%),linear-gradient(100deg,#f5e7d5,#fdf5e8 50%,#f1e1cd);box-shadow:0 0 100px #7b5b2d24}.desktop-note{position:fixed;left:calc(25vw - 150px);top:42%;width:200px;text-align:center;color:#907a59}.desktop-note>span{font:64px var(--script)}.desktop-note i{font-size:32px}.desktop-note p{font-size:9px;letter-spacing:2px}.desktop-note small{letter-spacing:3px;font-size:11px}main{outline:none}.hero{height:auto;aspect-ratio:720/1252;position:relative;min-height:680px;background:linear-gradient(#a68c66,#f5e5be 55%,#bba47c);isolation:isolate}.hero video{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;z-index:-2}.hero-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 52%,#fff1c726,transparent 55%);mix-blend-mode:screen;pointer-events:none;animation:light-breathe 5s ease-in-out infinite alternate}.hero-copy{position:absolute;top:40%;left:4%;right:4%;text-align:center;color:#806433;text-shadow:0 1px 8px #fff5d999}.eyebrow{font:10px var(--body);letter-spacing:2.1px;text-transform:uppercase;margin:0 0 16px;line-height:1.7}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:13px}h1{margin:0;font-weight:400;line-height:1.1}h1>span{display:block;font:clamp(40px,11vw,61px)/1.1 var(--script)}h1 i{display:block;font:27px/1.3 var(--script);margin:4px 0}.qualification{font:10px var(--body);display:block;letter-spacing:1.5px;margin-top:5px}h1 .qualification:last-child{letter-spacing:1px}.hero-date{margin-top:22px;font:25px/1.5 var(--serif)}.hero-date small{display:block;font:12px/1.8 var(--body)}.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);text-decoration:none;text-align:center;white-space:nowrap;color:#fff9e9;text-shadow:0 1px 6px #38291c}.scroll-cue span{font-size:8px;letter-spacing:3px}.scroll-cue b{display:block;font:24px var(--body);animation:nudge 2s infinite}.section{text-align:center;padding:68px 34px;position:relative}h2{font:42px/1.12 var(--serif);font-weight:400;color:#90723e;margin:10px 0 25px}h3{font:30px/1.2 var(--serif);font-weight:500;margin:15px 0 10px}.divider{display:block;width:150px;height:auto;margin:26px auto;opacity:.8}.blessing{padding:52px 23px 10px}.arch-card{position:relative;padding:88px 30px 55px;background:url('assets/arch.webp') center top/100% 100% no-repeat;min-height:810px}.bismillah{width:210px;max-width:90%;margin:0 auto 20px;display:block}.invocation{font-size:14px;line-height:1.9;margin:12px 0}.invocation span{font-size:10px}.host{font:18px/1.45 var(--serif);margin:25px 0 20px}.host strong{font-weight:600;font-size:22px}.host small{display:block;font-size:12px;margin-top:4px}.invitation-copy{font-size:12px;line-height:1.9;margin:20px auto;max-width:300px}.script-name{font:44px/1.2 var(--script);margin:20px -12px 2px}.degree{font-size:10px;letter-spacing:1px;margin:0}.with{display:block;font-size:9px;letter-spacing:3px;margin:18px 0 -5px}.parentage{font-size:12px;margin:20px 0}.small-divider{width:110px;margin:20px auto}.closing-line{font:italic 20px/1.45 var(--serif);margin:20px 0 0}.countdown-section{padding-bottom:20px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:12px;margin:30px -8px 12px}.countdown div{width:62px}.countdown span{display:block;font:43px/1.1 var(--serif);font-variant-numeric:tabular-nums}.countdown small{font-size:8px;letter-spacing:1.5px}.countdown b{font:28px var(--serif);font-weight:400;opacity:.5}.countdown-caption{font-size:10px;color:#78684f}.ceremony{padding-top:40px}.date-display{display:flex;justify-content:center;align-items:center;gap:20px;margin:30px 0 10px}.date-display>span{font-size:10px;letter-spacing:1.5px;line-height:1.8;min-width:80px}.date-display strong{font:80px/1 var(--serif);border-inline:1px solid var(--line);padding:0 22px;font-weight:400}.asr-time{font:italic 26px var(--serif);margin:15px 0 25px}.ceremony-rule{height:1px;width:60px;background:var(--line);margin:25px auto}.ceremony>p:not(.eyebrow):not(.asr-time){font-size:13px}.button{border:1px solid var(--olive);border-radius:3px;color:#fffaf0;background:var(--olive);padding:14px 22px;display:inline-flex;gap:10px;align-items:center;justify-content:center;text-decoration:none;font-size:12px;min-height:48px;transition:background .2s,transform .2s;letter-spacing:.2px;margin-top:22px}.button:hover{background:#62684d;transform:translateY(-2px)}.button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}.button.outline{color:var(--ink);background:transparent;border-color:#af9661}.button.outline:hover{background:#e9dbc6}.venue-section{padding:0 24px 40px}.venue-card{padding:40px 28px;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-7px;border-radius:180px 180px 5px 5px;background:linear-gradient(#fff9ea8a,#ddcbb333);overflow:hidden}.venue-mark{display:block;font-size:30px;color:#a6874e;margin:6px 0 22px}.venue-card h2{font-size:37px}.venue-card p:not(.eyebrow){font-size:13px}.mosque-art{height:150px;color:#9a825b;margin:25px -20px 0}.mosque-art svg{width:100%;height:100%;filter:drop-shadow(0 8px 10px #94754415)}.welcome{padding-top:20px}.welcome h2{font-size:39px}.welcome .eyebrow{margin-top:28px}.family-name{font:25px/1.35 var(--serif);font-weight:500;margin:25px 0 12px}.family-name small{display:block;font:12px var(--body);margin-top:6px}.tiny-diamond{color:#ab8c50;font-size:17px}.family-others{font-size:12px;line-height:1.8;margin-top:25px}.residence{border-top:1px solid var(--line);padding-top:8px;margin-top:38px}.residence p:last-child{font-size:13px}.farewell{padding-top:20px;padding-bottom:50px;background:radial-gradient(ellipse at center,#f8ecd575,transparent 70%)}.monogram{font:70px var(--script);color:#ab8c52}.monogram i{font-size:35px}.farewell h2{font:italic 36px/1.2 var(--serif)}.farewell>p{font-size:12px}.footer-date{font-size:10px!important;letter-spacing:2px}.footer-date span{display:block;margin-top:7px;font-size:9px}.text-button{border:0;background:none;padding:12px 14px;color:var(--ink);font-size:12px;min-height:44px;text-decoration:underline;text-underline-offset:5px}.replay{display:block;margin:0 auto;font-size:10px;opacity:.7}.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
.envelope{position:fixed;z-index:20;top:0;bottom:0;left:50%;width:min(100%,520px);transform:translateX(-50%);perspective:1600px;overflow:hidden;background:#f8f3e8;transition:background 1s .5s;isolation:isolate}.envelope-paper{position:absolute;inset:0;background:radial-gradient(ellipse at 40% 25%,#fffdf4,#e8dfcb);transition:opacity 1s .6s}.envelope-flap{position:absolute;inset:-22% -15% auto;height:82%;filter:drop-shadow(0 16px 12px #544b3533);transform-origin:center 26%;transition:transform 1.5s cubic-bezier(.45,0,.2,1),opacity .6s .7s;z-index:4}.envelope-flap img{width:100%;height:100%;object-fit:fill}.envelope-side{position:absolute;top:0;bottom:0;width:52%;background:linear-gradient(90deg,#f2eddf,#fffcf0);filter:drop-shadow(0 0 15px #71664940);transition:transform 1.7s .25s cubic-bezier(.4,0,.15,1);z-index:1}.envelope-side.left{left:0;clip-path:polygon(0 0,100% 50%,0 100%)}.envelope-side.right{right:0;clip-path:polygon(100% 0,0 50%,100% 100%)}.envelope-bottom{position:absolute;inset:48% -15% -20%;background:linear-gradient(150deg,#eee7d7,#fffcf1);clip-path:polygon(50% 0,100% 60%,100% 100%,0 100%,0 60%);z-index:2;transition:transform 1.7s .25s cubic-bezier(.4,0,.15,1)}.seal-button{position:absolute;z-index:6;left:50%;top:43%;transform:translate(-50%,-10%);border:0;padding:0;background:transparent;color:#947442;width:240px;text-align:center;transition:opacity .5s,transform .7s}.seal-button>img:first-child{display:block;width:122px;height:130px;object-fit:contain;margin:auto;filter:drop-shadow(0 6px 5px #64491420);animation:seal-glow 3s ease-in-out infinite}.seal-button>span{display:block;font:17px var(--body);margin:10px auto 0}.seal-button .seal-divider{width:140px;height:auto;margin:15px auto}.envelope-caption{position:absolute;bottom:10%;left:10%;right:10%;z-index:5;text-align:center;transition:opacity .5s;color:#8e744a}.envelope-caption>span{font-size:8px;letter-spacing:3px}.envelope-caption p{font:42px var(--script);margin:13px 0 9px}.envelope-caption i{font-size:25px}.envelope-caption small{font-size:8px;letter-spacing:2px}.envelope.opening{background:transparent;pointer-events:none}.opening .envelope-flap{transform:rotateX(150deg) translateY(-40%);opacity:0}.opening .envelope-side.left{transform:translateX(-110%)}.opening .envelope-side.right{transform:translateX(110%)}.opening .envelope-bottom{transform:translateY(110%)}.opening .envelope-paper{opacity:0}.opening .seal-button{opacity:0;transform:translate(-50%,-10%) scale(1.15)}.opening .envelope-caption{opacity:0}#sparkles{position:fixed;inset:0;max-width:520px;margin:auto;pointer-events:none;z-index:3;overflow:hidden}.spark{position:absolute;left:var(--x);top:var(--y);height:var(--size);width:var(--size);border-radius:50%;background:#fffbda;box-shadow:0 0 8px 2px #fff5c955;opacity:0;animation:float var(--duration) var(--delay) infinite ease-in-out}.motion-button{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));right:max(18px,calc((100vw - 520px)/2 + 18px));width:44px;height:44px;border:1px solid #fff5d077;border-radius:50%;background:#73795cef;color:#fffbe8;z-index:10;box-shadow:0 4px 12px #5e4c2b22;font-size:17px}.paused *,.paused *::before,.paused *::after{animation-play-state:paused!important}#toast{position:fixed;z-index:30;bottom:80px;left:50%;transform:translate(-50%,15px);width:max-content;max-width:85vw;padding:12px 20px;border-radius:5px;background:#625942;color:white;font-size:12px;opacity:0;pointer-events:none;transition:.3s;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}
.hero{width:100%}.hero-date{display:table;margin:20px auto 0;padding:5px 14px 7px;background:radial-gradient(ellipse,#fff1d5d9 25%,#fff1d580 60%,transparent 75%);color:#72552c}.hero-copy h1{text-shadow:0 1px 8px #fff3cf,0 0 18px #fff3cf80}.hero-copy .eyebrow{color:#70542e}
@keyframes float{0%,100%{opacity:0;transform:translate(0,15px)}40%,60%{opacity:.7}85%{transform:translate(12px,-45px)}}@keyframes light-breathe{from{opacity:.3}to{opacity:.85}}@keyframes nudge{50%{transform:translateY(5px)}}@keyframes seal-glow{50%{filter:drop-shadow(0 2px 12px #d8af5950)}}
@media(min-width:1000px){.invitation{margin:25px auto;border-radius:3px}.envelope{top:25px;bottom:0}.hero{min-height:0}.desktop-note{display:block}}@media(max-width:999px){.desktop-note{display:none}}@media(max-width:374px){.section{padding-left:23px;padding-right:23px}.blessing{padding-left:14px;padding-right:14px}.arch-card{padding:75px 23px 45px}.script-name{font-size:39px}.hero-copy{top:39%}.hero{min-height:665px}.hero-copy .eyebrow{font-size:7px}.hero-date{margin-top:17px}.date-display{gap:10px}.date-display strong{padding:0 16px}.countdown{gap:8px}.countdown span{font-size:38px}.host strong{font-size:20px}.wide-only{display:none}.envelope-caption{bottom:8%}}
@media(max-width:374px){.date-display>span{min-width:60px;font-size:9px}.date-display strong{font-size:65px;padding:0 12px}.envelope-caption p{font-size:34px}.envelope-caption{left:5%;right:5%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
