:root{font-family:DM Sans,sans-serif;color:#1e3b31;background:#f8f3e6;--gold:#a77d36;--green:#1e3b31}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #b18b43;outline-offset:6px}p,h1,h2{margin:0}.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}.wedding-experience{min-height:100svh;position:relative}.invitation{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#fffdf5,#f2e8d1);padding:55px 80px 35px;visibility:hidden}.opened .invitation{visibility:visible}.invitation-frame{position:absolute;inset:15px;border:1px solid #b38a42;outline:1px solid #dac491;outline-offset:5px;pointer-events:none}.pattern-strip{position:absolute;top:21px;bottom:21px;width:38px;height:calc(100% - 42px);color:#a7803c;opacity:.35}.left-strip{left:21px}.right-strip{right:21px}.flowers{position:absolute;bottom:0;width:210px;height:315px;z-index:1;pointer-events:none}.flowers-left{left:15px}.flowers-right{right:15px;transform:scaleX(-1)}.frame-corners{position:absolute;inset:0;z-index:1;pointer-events:none}.frame-corner{position:absolute;width:clamp(150px,30vw,280px);height:auto;display:block;filter:drop-shadow(0 1px 2px #8a652425)}.frame-corner.corner-tl{top:2px;left:2px}.frame-corner.corner-tr{top:2px;right:2px}.frame-corner.corner-bl{bottom:2px;left:2px}.frame-corner.corner-br{bottom:2px;right:2px}.invitation-content{position:relative;text-align:center;z-index:2;max-width:800px;margin:auto}.bismillah{font-family:Amiri,serif;font-size:17px;color:#706644}.flourish{width:185px;height:35px;display:block;margin:15px auto}.invitation-title{font-family:Amiri,serif;font-size:clamp(38px,4.5vw,62px);color:#a27a30;line-height:1.5;margin:10px 0}.arabic-intro{font-family:Amiri,serif;font-size:19px;margin-top:8px}h1{font-family:Amiri,serif;font-size:clamp(48px,6.5vw,86px);font-weight:500;line-height:1.5;background:linear-gradient(115deg,#8c5c1e,#c39b4b 35%,#8b5f20 70%,#d5ac59);-webkit-background-clip:text;background-clip:text;color:transparent}h1 span{font-size:.65em}.latin-names{font-family:Parisienne,serif;font-size:30px;color:#ae8d50;margin-top:-8px}.latin-names i{font-size:23px}.arabic-invite{font-family:Amiri,serif;font-size:25px;margin-top:22px}.french-invite{font-size:11px;color:#82785f;margin-top:6px;line-height:1.7}.middle-flourish{width:230px;margin:23px auto}.event-information{display:flex;justify-content:center;align-items:center;gap:44px;margin:12px auto 24px}.date-block{padding-right:20px;border-right:1px solid #d5bc83}.small-label{font-family:Amiri,serif;font-size:19px;color:#9b7a3d}.date-numbers{font-family:Cormorant Garamond,serif;font-size:39px;line-height:1.3;white-space:nowrap}.date-numbers span{padding:0 12px;margin:0 6px;border-left:1px solid #cfba8d;border-right:1px solid #cfba8d}.event-subtitle{font-size:8px;letter-spacing:1.5px;color:#8a7c60;margin-top:7px}h2{font-family:Amiri,serif;font-size:29px;font-weight:500;line-height:1.7}.closing{font-family:Amiri,serif;font-size:25px;margin-top:25px;color:#9c7936}.countdown{display:flex;justify-content:center;gap:24px;margin:22px 0 23px}.countdown strong{font-family:Cormorant Garamond,serif;font-size:29px;font-weight:400}.countdown span{display:block;font-size:6px;letter-spacing:1.5px;color:#9e9074;margin-top:4px}.replay{border:0;background:none;font-size:16px;color:#a3906c;padding:8px}.replay span{font-size:8px;margin-left:7px}.directions{display:flex;flex-direction:column;align-items:center;color:var(--green);text-decoration:none;margin:24px auto;max-width:350px}.directions>span:not(.qr-frame){font-family:Amiri,serif;font-size:17px}.directions small{font-size:9px;color:#8a7c60;margin-top:5px}.envelope{position:fixed;inset:0;z-index:5;overflow:hidden;isolation:isolate;transition:visibility 0s 1.6s}.envelope-back{position:absolute;inset:0;background:#f1e5cb;transition:opacity .45s}.envelope-paper{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 20%,#fff9e9,#e5d7b6);clip-path:polygon(0 0,100% 0,100% 5%,50% 50%,100% 95%,100% 100%,0 100%);transition:transform 1.6s cubic-bezier(.7,0,.2,1)}.envelope-paper:after{content:"";position:absolute;inset:16px;border:1px solid #b58c44;outline:1px solid #d1b574;outline-offset:5px;pointer-events:none}.envelope-pattern{position:absolute;inset:0;width:100%;height:100%;color:#a48140;opacity:.12}.envelope-flowers{position:absolute;left:2%;bottom:0;width:230px;height:345px;pointer-events:none}.envelope-flap{position:absolute;inset:0;background:linear-gradient(130deg,#305240,#142e25);clip-path:polygon(100% 5%,50% 50%,100% 95%);transition:transform 1.6s cubic-bezier(.7,0,.2,1)}.envelope-flap:after{content:"";position:absolute;inset:0;clip-path:polygon(100% 5%,50% 50%,100% 95%,100% 94%,51% 50%,100% 6%);background:linear-gradient(45deg,#8e6b2f,#ecd292,#a98135)}.envelope-flap svg{width:100%;height:100%;color:#c0a365;opacity:.13}.envelope-heading{position:absolute;top:12%;left:50%;transform:translate(-50%);width:min(48%,520px);padding:0 2%;text-align:center;transition:opacity .4s;pointer-events:none}.envelope-heading p{font-family:Amiri,serif;font-size:clamp(35px,6vw,65px);color:#9d772e}.envelope-heading span{display:block;font-family:Parisienne,serif;font-size:clamp(26px,3.5vw,38px);margin-top:7px;color:#7a724e}.seal{position:absolute;left:calc(50% - 53px);top:calc(50% - 53px);width:106px;height:106px;border-radius:49% 46% 48%;border:3px solid #ad8e4d;background:radial-gradient(circle at 30% 20%,#dfc98d,#b89b58 50%,#967235 80%,#d4b779);box-shadow:0 7px 20px #25302350,inset 0 0 0 3px #dfc78a,inset 0 0 0 5px #8e7037;transform:rotate(-12deg);transition:transform .6s,opacity .5s}.seal:hover{transform:rotate(-4deg) scale(1.06)}.seal svg{width:70px;height:70px;fill:none;stroke:#f7ebc8;stroke-width:1.2;filter:drop-shadow(0 1px #80652a)}.opening-hint{position:absolute;bottom:12%;left:0;right:0;text-align:center;color:#7e704b;transition:opacity .4s}.opening-hint p{font-family:Amiri,serif;font-size:21px}.opening-hint span{display:block;font-size:7px;letter-spacing:2px;margin-top:8px}.opening-hint small{display:block;font-size:10px;letter-spacing:3px;margin-top:22px}.opened .envelope{visibility:hidden;pointer-events:none}.opened .envelope-back{opacity:0}.opened .envelope-paper{transform:translate(-105%)}.opened .envelope-flap{transform:translate(105%)}.opened .seal{transform:translate(160px) rotate(25deg);opacity:0}.opened .envelope-heading,.opened .opening-hint{opacity:0}@media(min-width:1100px){.invitation-content{max-width:850px}.flowers{width:270px;height:405px}.frame-corner{width:300px}.envelope-flowers{width:320px;height:480px}.invitation{padding-top:38px}.top-flourish{margin:10px auto}.arabic-intro{margin-top:0}h1{font-size:75px}.envelope-heading{width:min(44%,560px)}.envelope-heading .envelope-title-gold{width:min(86%,300px)}.envelope-heading .envelope-names-gold{width:min(92%,360px)}}@media(max-width:600px){.invitation{padding:40px 36px 30px}.invitation-frame{inset:9px;outline-offset:3px}.pattern-strip{width:14px;top:14px;bottom:14px;height:calc(100% - 28px)}.left-strip{left:14px}.right-strip{right:14px}.frame-corner{width:132px}.frame-corner.corner-tl,.frame-corner.corner-tr{top:0}.frame-corner.corner-bl,.frame-corner.corner-br{bottom:0}.frame-corner.corner-tl,.frame-corner.corner-bl{left:0}.frame-corner.corner-tr,.frame-corner.corner-br{right:0}.bismillah{font-size:14px}.top-flourish{width:145px;height:28px;margin:10px auto}.invitation-title{font-size:43px;margin:8px 0}.arabic-intro{font-size:16px}h1{font-size:48px;white-space:nowrap}.latin-names{font-size:24px;margin-top:0}.arabic-invite{font-size:21px;margin-top:23px}.french-invite{font-size:9px;max-width:250px;margin:6px auto}.middle-flourish{width:180px;height:29px;margin:21px auto}.event-information{flex-direction:column;gap:22px;margin-bottom:20px}.date-block{border-right:0;padding-right:0}.small-label{font-size:16px}.date-numbers{font-size:34px}h2{font-size:26px}.event-subtitle{font-size:7px}.closing{font-size:21px;margin-top:24px}.countdown{gap:21px}.countdown strong{font-size:26px}.flowers{width:105px;height:158px;opacity:.85}.flowers-left{left:0}.flowers-right{right:0}.envelope-heading{top:14%;left:18%;transform:none;width:min(58%,260px)}.envelope-flowers{width:145px;height:218px;left:0}.seal{width:94px;height:94px;left:calc(50% - 47px);top:calc(50% - 47px)}.seal svg{width:65px;height:65px}.opening-hint{bottom:16%}.opening-hint p{font-size:18px}.opening-hint span{font-size:6px;letter-spacing:1.4px}.envelope-paper:after{inset:10px;outline-offset:3px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.wedding-experience:not(.opened){height:100svh;overflow:hidden}.gold-calligraphy{margin:6px auto 0;line-height:0;filter:drop-shadow(0 1px 0 #e8d08a66) drop-shadow(0 2px 6px #8a652418)}.gold-calligraphy img{display:block;width:min(100%,420px);height:auto;margin:0 auto}.names-calligraphy{margin:4px auto 2px}.names-calligraphy img{width:min(92%,440px)}.invitation-title.gold-calligraphy{margin:8px auto 4px}.gold-text{background:linear-gradient(112deg,#744305,#c08a21 16%,#f3d27b 23%,#a56c0d 31%,#d7a438 44%,#fff0ac,#aa700f 54%,#80500b,#d6a337 82%,#f1cd72 89%,#976210);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #e4c57955)}.arabic-intro,.arabic-invite{font-weight:400}.latin-names{font-family:Cormorant Garamond,serif;font-size:25px;letter-spacing:1px;font-style:italic;margin-top:2px}.bismillah{font-size:18px}.directions{margin-top:20px}.envelope-heading .envelope-title-gold,.envelope-heading .envelope-names-gold{display:block;height:auto;margin:0 auto;filter:drop-shadow(0 1px 0 #e8d08a66) drop-shadow(0 2px 6px #8a652420)}.envelope-heading .envelope-title-gold{width:min(88%,280px)}.envelope-heading .envelope-names-gold{width:min(94%,320px);margin-top:4px}.directions .qr-frame{position:relative;display:inline-flex;align-items:center;justify-content:center;width:188px;height:188px;margin:10px 0 18px;line-height:0}.directions .qr-frame img{position:relative;z-index:1;display:block;width:122px;height:122px;margin:0;padding:8px;background:#fffdf8;border:1px solid #c9a356;box-shadow:inset 0 0 0 3px #f4e8c8,0 0 0 1px #e6d3a0}.directions .qr-ornament{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 1px 0 #f0d78a80)}.heart-snow{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}.heart-snow>span{position:absolute;top:-40px;color:#b58c44;opacity:0;animation:heart-fall linear infinite;will-change:transform;text-shadow:0 0 6px #d4b56a40}.heart-snow>span:nth-child(3n){color:#c9a27b}.heart-snow>span:nth-child(5n){color:#a6783a}.heart-snow.paused>span{animation-play-state:paused}@keyframes heart-fall{0%{transform:translate3d(0,-30px,0) rotate(-18deg);opacity:0}10%{opacity:.55}75%{opacity:.35}to{transform:translate3d(var(--drift),calc(100dvh + 70px),0) rotate(48deg);opacity:0}}.ambient-controls{position:fixed;bottom:18px;right:20px;z-index:6;display:flex;gap:7px}.ambient-controls button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:38px;min-height:38px;padding:8px 12px;border:1px solid #c7b383;border-radius:24px;background:#fbf6e9ed;box-shadow:0 2px 12px #66522e14;color:#8b6d32;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ambient-controls button[aria-pressed=false]{opacity:.72}.ambient-controls button>span:first-child{font-size:17px;line-height:1}.ambient-controls button>span+span{font-size:9px;letter-spacing:.4px}.ambient-controls .hearts-toggle{padding:8px;min-width:38px}@media(max-width:600px){.gold-calligraphy img{width:min(100%,300px)}.names-calligraphy img{width:min(100%,340px)}.latin-names{font-size:21px}.bismillah{font-size:16px}.envelope-heading .envelope-title-gold{width:min(92%,200px)}.envelope-heading .envelope-names-gold{width:min(100%,220px);margin-top:2px}.names-calligraphy img{width:min(100%,300px)}.arabic-invite{font-size:24px}.arabic-intro{font-size:19px}.closing{font-size:23px}.directions .qr-frame{width:168px;height:168px}.directions .qr-frame img{width:108px;height:108px}.ambient-controls{right:12px;bottom:12px}.ambient-controls button{min-height:36px;min-width:36px;padding:7px 10px}.ambient-controls button>span+span{display:none}.invitation{padding-bottom:65px}}@media(prefers-reduced-motion:reduce){.heart-snow,.hearts-toggle{display:none!important}}.opened .invitation-content>*{animation:invitation-reveal .85s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--reveal-delay,1.15s)}.invitation-content>.bismillah{--reveal-delay:.65s}.invitation-content>.top-flourish{--reveal-delay:.8s}.invitation-content>.invitation-title{--reveal-delay:.95s}.invitation-content>.arabic-intro{--reveal-delay:1.1s}.invitation-content>.names-calligraphy{--reveal-delay:1.25s}.invitation-content>.latin-names{--reveal-delay:1.4s}.invitation-content>.arabic-invite{--reveal-delay:1.55s}.invitation-content>.french-invite{--reveal-delay:1.65s}.invitation-content>.middle-flourish{--reveal-delay:1.75s}.invitation-content>.event-information{--reveal-delay:1.85s}.invitation-content>.directions{--reveal-delay:2s}.invitation-content>.closing{--reveal-delay:2.15s}.invitation-content>.countdown{--reveal-delay:2.25s}.invitation-content>.replay{--reveal-delay:2.35s}.opened .invitation-frame,.opened .pattern-strip,.opened .frame-corners{animation:invitation-frame-reveal 1.4s .4s ease-out both}@keyframes invitation-reveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes invitation-frame-reveal{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.opened .invitation-content>*,.opened .invitation-frame,.opened .pattern-strip,.opened .frame-corners{animation:none!important;transform:none}}
