@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/J7aRnpd8CGxBHpUrtLMA7w.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/J7aRnpd8CGxBHpUutLM.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtImSo.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtImSo.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/co3bmX5slCNuHLi8bLeY9MK7whWMhyjYqXtK.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/co3bmX5slCNuHLi8bLeY9MK7whWMhyjYqXtK.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/co3bmX5slCNuHLi8bLeY9MK7whWMhyjYqXtK.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/RWmMoKWR9v4ksMfaWd_JN9XFiaQ.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/xn7gYHE41ni1AdIRggexSg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/xn7gYHE41ni1AdIRggexSg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/xn7gYHE41ni1AdIRggexSg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--paper:#fffaf0;--ink:#4d4130;--gold:#876a37;--line:#cbb58b;--serif:"Cormorant Garamond",Georgia,serif;--script:"Great Vibes",cursive;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;background:#e9dfd1}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}button,a{-webkit-tap-highlight-color:transparent}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.invitation-room{isolation:isolate;background:radial-gradient(at 42% 33%,#fffaf0 0%,#f0e7db 43%,#d7c5b3 100%);width:100%;height:100dvh;position:relative;overflow:hidden}.invitation-room:before{content:"";z-index:-1;pointer-events:none;filter:blur(22px);background:linear-gradient(118deg,#0000 18%,#ffffff48 24%,#ba9d8020 29%,#0000 35%,#ffffff42 47%,#b4998120 53%,#0000 60%,#fff5e92b 68%,#0000 74%);position:absolute;inset:-25%;transform:rotate(-13deg)}.invitation-room:after{content:"";pointer-events:none;z-index:10;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.5' d='M0 0h150v150H0z'/%3E%3C/svg%3E");position:absolute;inset:0}.experience{place-items:center;width:100%;height:100%;display:grid;position:relative}.quiet-heading{top:max(24px,env(safe-area-inset-top));text-align:center;font:9px var(--sans);letter-spacing:3px;color:#826f55;z-index:3;position:absolute;left:16px;right:16px}.quiet-footer{bottom:max(19px,env(safe-area-inset-bottom));text-align:center;font:8px var(--sans);letter-spacing:2px;color:#826f55;position:absolute;left:10px;right:10px}.quiet-footer i{padding:0 8px;font-style:normal}.envelope-stage{max-width:820px;margin:auto;position:absolute;inset:65px 0 105px}.scene-host{opacity:0;transition:opacity .6s;position:absolute;inset:0}.scene-host.ready{opacity:1}.scene-host canvas{width:100%;height:100%;display:block}.envelope-hit{-webkit-user-select:none;user-select:none;background:0 0;border:0;width:min(85%,480px);height:min(100%,520px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.opened .scene-host{opacity:0;transition:opacity .7s}.opening-caption{text-align:center;color:#786044;flex-direction:column;align-items:center;gap:13px;height:39px;display:flex;position:absolute;bottom:67px;left:12px;right:12px}.opening-caption p{font:italic 19px var(--serif)}.touch-mark{outline-offset:4px;border:1px solid #a38353;border-radius:50%;outline:1px solid #b99b6e5e;width:10px;height:10px}.accessible-open{clip-path:inset(50%);width:1px;height:1px;position:absolute;bottom:40px;overflow:hidden}.accessible-open:focus{clip-path:none;background:var(--paper);border:1px solid var(--gold);z-index:20;width:auto;height:44px;padding:8px 20px}.paper-envelope{aspect-ratio:4/4.5;perspective:1200px;background:#d3a793;width:min(70%,400px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-3deg);box-shadow:12px 28px 35px #75583a30,inset 0 0 0 1px #ba8c7444}.emboss{color:#f2d0b8;filter:drop-shadow(1px 1px #ac78677a);width:45%;height:100%;position:absolute}.emboss.left{left:0}.emboss.right{right:0;transform:scaleX(-1)}.envelope-arch{border:2px solid #edc8ad;border-radius:50% 50% 0 0;position:absolute;inset:8% 29% 0;box-shadow:1px 1px #ac786755}.cover{clip-path:polygon(0 0,100% 0,100% 25%,50% 61%,0 25%);transform-origin:top;filter:drop-shadow(0 3px 3px #75442f70);background:linear-gradient(145deg,#e7c3ae,#c59881);position:absolute;inset:0}.cover svg{color:#98713d;position:absolute;top:17%;left:47%}.pocket{clip-path:polygon(0 26%,50% 65%,100% 26%,100% 100%,0 100%);background:linear-gradient(40deg,#d2a38a,#e6bda5);position:absolute;inset:0}.wax-seal{color:#755018;background:linear-gradient(130deg,#a97d32,#f6d78e 45%,#c0913a);border:6px double #b48637;border-radius:44% 48% 43% 47%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:85px;height:85px;font-size:24px;display:flex;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%);box-shadow:2px 6px 8px #70442570,inset 0 0 0 3px #e9c775}.wax-seal i{font-size:18px}.wax-seal small{font:6px var(--sans);letter-spacing:1.4px}.fallback-letter{background:var(--paper);opacity:0;position:absolute;inset:6%}.opening .paper-envelope .cover{transition:transform 1s .2s;transform:rotateX(-180deg)}.opening .wax-seal{opacity:0;transition:all .4s;transform:translate(-50%,-50%)scale(.6)}.opening .fallback-letter{opacity:1;transition:transform 1s .4s,opacity .3s;transform:translateY(-25%)}.letter-wrap{z-index:4;width:min(440px,100vw - 36px);animation:.8s cubic-bezier(.19,1,.22,1) both letter-arrives;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.letter{isolation:isolate;text-align:center;background:linear-gradient(115deg,#fffaf0,#f7efdf);border:1px solid #d2ba90;outline:none;flex-direction:column;justify-content:center;gap:12px;height:min(680px,100dvh - 135px);padding:26px 33px;display:flex;position:relative;box-shadow:0 25px 70px #6d4e2b30,0 3px 10px #6d4e2b15}.letter:before{content:"";pointer-events:none;z-index:-1;border:1px solid #baa06e7a;position:absolute;inset:8px}.letter:after{content:"";pointer-events:none;z-index:-1;border:1px solid #baa06e35;position:absolute;inset:12px}.letter-flower{color:#a2834b;opacity:.3;pointer-events:none;z-index:-1;width:88px;position:absolute}.flower-left{bottom:15px;left:-7px;transform:rotate(10deg)}.flower-right{top:14px;right:-6px;transform:rotate(190deg)}.arabic{color:var(--gold);font:28px/1.5 Amiri,serif}.invocation{font:14px/1.3 var(--serif);color:#76634a;margin-top:4px}.ornament{color:var(--gold);justify-content:center;align-items:center;gap:9px;margin:13px auto;display:flex}.ornament span{background:#c5ae80;width:48px;height:1px}.ornament svg{width:21px;height:18px}.invite-line{font:14px/1.4 var(--serif);max-width:255px;margin:auto}.letter h2{font:43px/1.05 var(--script);color:#896932;margin:17px 0}.letter h2>span{font:23px/.9 var(--serif);margin:4px;display:block}.wedding-label{font:8px var(--sans);letter-spacing:2px;color:var(--gold);margin:15px 0 9px}.letter-events{border-block:1px solid #cdbb9766}.letter-event{text-align:left;grid-template-columns:34px 1fr 51px;align-items:center;gap:12px;padding:12px 0;display:grid}.letter-event+.letter-event{border-top:1px solid #cdbb9744}.event-day{font:29px/.8 var(--serif);color:var(--gold);text-align:center}.event-day small{font:7px var(--sans);letter-spacing:1px;margin-top:6px;display:block}.letter-event h3{font:18px/1.1 var(--serif);font-weight:500}.letter-event p{font:12px/1.3 var(--serif);color:#786348;margin-top:4px}.event-time{font:10px var(--sans);text-align:right;white-space:nowrap;color:#715c3b}.parents{font:14px var(--serif);justify-content:space-between;align-items:center;gap:10px;margin-top:19px;display:flex}.parents small{font:6px var(--sans);letter-spacing:1.1px;color:#7d684a;margin-bottom:6px;display:block}.parents>span{color:var(--gold)}.blessing{font:italic 16px/1.3 var(--serif);color:#7d633d}.letter-actions{justify-content:space-between;gap:6px;margin:7px -3px -44px;display:flex}.letter-actions button{min-height:44px;font:9px var(--sans);color:#6f5838;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:4px 6px;display:flex}.letter-actions button:hover{color:#372b1c}.show-original{background:#f7eddb;padding:0}.original-card{object-fit:contain}.show-original:before,.show-original:after{display:none}@keyframes letter-arrives{0%{opacity:0;transform:translate(-50%,-53%)scale(.91)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (max-height:780px){.letter{gap:8px;padding:22px 29px}.arabic{font-size:25px}.letter h2{margin:11px 0;font-size:37px}.letter h2>span{font-size:20px}.ornament{margin:9px auto}.wedding-label{margin:11px 0 6px}.letter-event{padding:9px 0}.parents{margin-top:13px}.letter-details>.ornament{margin:8px 0}.blessing{font-size:15px}}@media (max-width:480px){.quiet-heading{letter-spacing:2.2px;top:max(23px,env(safe-area-inset-top));font-size:7px}.quiet-footer{letter-spacing:1.5px;bottom:max(17px,env(safe-area-inset-bottom));font-size:6px}.envelope-stage{inset:60px -30px 100px}.opening-caption p{font-size:18px}.letter-wrap{width:calc(100vw - 30px);max-width:410px}.letter{padding-inline:25px}.letter h2{font-size:39px}.letter-event{gap:9px}.letter-event h3{font-size:17px}.letter-event p{font-size:12px}.parents{font-size:13px}.parents small{letter-spacing:.8px;font-size:5.5px}.letter-actions button{gap:5px;font-size:8px}.letter-flower{opacity:.25;width:73px}}@media (max-height:690px) and (orientation:portrait){.letter{gap:5px;height:calc(100dvh - 112px);padding:17px 23px}.arabic{font-size:22px}.invocation,.invite-line{font-size:12px}.letter h2{margin:8px 0;font-size:33px}.letter h2>span{margin:3px;font-size:17px}.wedding-label{margin:8px 0 4px;font-size:7px}.letter-event{padding:7px 0}.letter-event h3{font-size:15px}.letter-event p{font-size:11px}.event-day{font-size:25px}.event-time{font-size:9px}.parents{margin-top:10px;font-size:12px}.blessing{font-size:14px}.ornament{margin:6px auto}.letter-details>.ornament{margin:6px 0}.quiet-heading{top:13px}.quiet-footer{bottom:10px}.letter-actions{margin-top:3px}}@media (orientation:landscape) and (max-height:600px){.quiet-heading{font-size:7px;top:12px}.quiet-footer{font-size:6px;bottom:10px}.envelope-stage{max-width:600px;inset:25px 0 65px}.opening-caption{gap:8px;bottom:35px}.opening-caption p{font-size:15px}.letter-wrap{width:min(740px,100vw - 46px);top:47%}.letter{grid-template-columns:1fr 1fr;align-items:center;gap:30px;height:calc(100dvh - 90px);padding:20px 25px;display:grid}.letter-intro{padding-right:12px}.letter h2{margin:10px 0;font-size:34px}.letter h2>span{font-size:18px}.arabic{font-size:24px}.invocation,.invite-line{font-size:12px}.wedding-label{letter-spacing:1px;font-size:6px}.letter-event{gap:8px;padding:8px 0}.letter-event h3{font-size:15px}.letter-event p{font-size:11px}.event-time{font-size:8px}.parents{gap:4px;margin-top:10px;font-size:11px}.parents small{letter-spacing:.5px;font-size:5px}.blessing{font-size:13px}.letter-details>.ornament{margin:6px 0}.letter-actions{margin-top:1px}.show-original{display:block}.original-card{object-fit:contain}.ornament{margin:8px auto}}.letter-intro,.letter-details{flex-shrink:0}.arabic{font-size:25px}.invocation{font-size:12px}.ornament{margin:9px auto}.invite-line{font-size:13px}.letter h2{margin:11px 0;font-size:37px}.wedding-label{margin:11px 0 6px}.letter-event{padding:9px 0}.letter-event h3{font-size:17px}.letter-event p{font-size:11px}.parents{margin-top:13px}.letter-details>.ornament{margin:8px 0}.blessing{font-size:15px}@media (max-height:690px) and (orientation:portrait){.letter{gap:4px;height:calc(100dvh - 100px);padding:16px 22px}.arabic{font-size:21px}.invocation{font-size:11px}.invite-line{max-width:230px;font-size:11px}.letter h2{margin:7px 0;font-size:30px}.letter h2>span{margin:3px;font-size:17px}.ornament{margin:5px auto}.wedding-label{margin:8px 0 5px;font-size:7px}.letter-event{padding:7px 0}.letter-event h3{font-size:15px}.letter-event p{font-size:11px}.parents{margin-top:10px;font-size:12px}.blessing{font-size:13px}.letter-details>.ornament{margin:5px 0}.letter-actions button{min-height:37px}}@media (max-height:600px) and (orientation:portrait){.letter{padding:14px 20px}.arabic{font-size:19px}.invocation,.invite-line{font-size:10px}.letter h2{margin:6px 0;font-size:27px}.letter h2>span{font-size:15px}.ornament{margin:4px auto}.ornament svg{height:14px}.wedding-label{margin:7px 0 3px;font-size:6px}.letter-event{grid-template-columns:30px 1fr 43px;gap:7px;padding:6px 0}.letter-event h3{font-size:14px}.letter-event p{font-size:10px}.parents{margin-top:8px;font-size:11px}.parents small{font-size:5px}.blessing{font-size:12px}.letter-details>.ornament{margin:4px 0}}@media (orientation:landscape) and (max-height:600px){.letter{gap:24px;padding:17px 24px}.arabic{font-size:21px}.invocation,.invite-line{font-size:11px}.letter h2{margin:8px 0;font-size:30px}.letter h2>span{margin:3px;font-size:17px}.wedding-label{letter-spacing:1px;margin:9px 0 3px;font-size:6px}.ornament{margin:6px auto}.ornament svg{height:14px}.letter-event{gap:8px;padding:6px 0}.letter-event h3{font-size:14px}.letter-event p{font-size:10px}.event-day{font-size:24px}.event-time{font-size:8px}.parents{margin-top:8px;font-size:11px}.parents small{letter-spacing:.5px;font-size:5px}.blessing{font-size:12px}.letter-details>.ornament{margin:5px 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.paper-envelope{background:#d4aea5 url(/textures/blush-embossed-paper.webp) 50%/100% 100%}.paper-envelope .emboss,.paper-envelope .envelope-arch{display:none}.paper-envelope .cover{background:#d4aea5 url(/textures/blush-embossed-paper.webp) 50%/100% 100%}.paper-envelope .pocket{filter:brightness(.96);background:#d4aea5 url(/textures/blush-embossed-paper.webp) 50%/100% 100%}.cover-loading{color:#92764c;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.cover-loading>span{font-size:32px}.cover-loading>p{font:italic 17px var(--serif)}
