@font-face{font-family:WisalAmiri;src:url('/fonts/amiri.ttf') format('truetype');font-display:swap}@font-face{font-family:WisalRuqaa;src:url('/fonts/ruqaa.ttf') format('truetype');font-display:swap}
body[data-font-style=naskh]{--inv-heading-font:WisalNaskh}body[data-font-style=amiri]{--inv-heading-font:WisalAmiri}body[data-font-style=ruqaa]{--inv-heading-font:WisalRuqaa}body[data-font-style=sans]{--inv-heading-font:Wisal}
.cinematic-invitation .cinematic-names h1,.cinematic-invitation .invitation-chapter h2,.cinematic-invitation .venue-copy h2,.cinematic-invitation .invitation-message,.cinematic-invitation .chapter-date,.cinematic-invitation .invitation-signoff>p,.cinematic-invitation .rsvp-dialog h2,.guest-receipt h2,.receipt-letter h3{font-family:var(--inv-heading-font,WisalNaskh),serif}
.font-choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.font-option{position:relative;align-items:center;border:1px solid #ddccbb;padding:13px 5px;border-radius:5px;cursor:pointer;background:#faf5eb}.font-option input{position:absolute;top:6px;right:6px;width:12px;min-height:12px;height:12px;accent-color:#834b59}.font-option>span{font-size:9px;color:#9a7c64}.font-option>small{font-size:20px;color:#85555c;margin-top:8px}.font-option:has(input:checked){border-color:#a5727c;background:#f2e6e1;box-shadow:inset 0 0 0 1px #a5727c33}.font-option-naskh>small{font-family:WisalNaskh}.font-option-amiri>small{font-family:WisalAmiri}.font-option-ruqaa>small{font-family:WisalRuqaa}.font-option-sans>small{font-family:Wisal;font-size:16px}.gallery-upload-previews{display:flex;gap:8px;flex-wrap:wrap}.gallery-upload-previews[hidden],.custom-music-preview[hidden]{display:none}.gallery-upload-previews>img{width:70px;height:85px;object-fit:cover;border-radius:4px}.gallery-upload-previews>button{flex-basis:100%}.custom-music-preview audio{display:block;width:100%;height:38px}.custom-music-preview .text-button{font-size:10px}
.living-scene{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.8s 1.4s}.experience-open .living-scene{opacity:1}.living-scene *{animation-play-state:paused!important}.experience-open .living-scene *{animation-play-state:running!important}.motion-offscreen .living-scene *{animation-play-state:paused!important}.has-custom-photo .living-scene{display:none}.living-swans{position:absolute;left:18%;width:64%;bottom:6%;aspect-ratio:3/2;filter:drop-shadow(0 4px 3px #5b594b1a)}.swan-bird{position:absolute;inset:0}.swan-bird img{display:block;width:100%;height:100%;object-fit:contain}.swan-left{clip-path:inset(0 50% 0 0);animation:swan-left-float 7.2s ease-in-out infinite alternate}.swan-right{clip-path:inset(0 0 0 50%);animation:swan-right-float 8.3s -2s ease-in-out infinite alternate}.swan-wake{position:absolute;left:10%;right:10%;bottom:8%;height:20%;border:1px solid #fff5d5bb;border-radius:50%;animation:swan-water-wake 8s ease-out infinite}.wake-two{animation-delay:-4s}.sea-surface{position:absolute;left:-25%;bottom:8%;width:150%;height:24%;animation:sea-story-tide 11s ease-in-out infinite alternate}.sea-surface>path:first-child{animation:sea-story-tide 9s -3s ease-in-out infinite alternate;transform-origin:center}.sea-floating-note{position:absolute;left:12%;top:58%;width:75px;height:52px;background:#fff9e7;border:1px solid #c7c5a6;box-shadow:0 4px 8px #466c6b22;transform:rotate(-9deg);display:flex;align-items:center;justify-content:center;gap:5px;color:#759e9f;font-family:WisalNaskh;font-size:11px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);animation:floating-love-letter 14s 2s ease-in-out infinite alternate}.sea-floating-note:after{content:'';position:absolute;inset:0;background:linear-gradient(33deg,transparent 49%,#bfbc9b88 50%,transparent 51%),linear-gradient(-33deg,transparent 49%,#bfbc9b88 50%,transparent 51%);opacity:.5}.sea-floating-note>i{position:relative;z-index:1;background:#fff9e7;border-radius:50%;font-size:16px}
.constellation-story,.flowering-canopy,.deco-light-drawing,.minimal-ink-frame{position:absolute;inset:0;width:100%;height:100%;color:#e0c080}.constellation-trace{stroke-dasharray:1000;stroke-dashoffset:1000;animation:story-line-draw 6s 1.8s ease-out both}.celestial-orbit{transform-origin:200px 400px;animation:celestial-dial 80s linear infinite;opacity:.4}.constellation-star{animation:constellation-glimmer 3s var(--star-delay) ease-in-out infinite alternate}.story-meteor{position:absolute;left:55%;top:15%;width:60px;height:1px;background:linear-gradient(90deg,transparent,#fff4c1);transform:rotate(-35deg);opacity:0;animation:story-shooting-star 13s 4s linear infinite}.meteor-two{left:16%;top:35%;width:40px;animation-delay:10s;animation-duration:17s}.story-blossom{transform-box:view-box;animation:wisteria-story-bloom 4s calc(1.5s + var(--flower-delay)) cubic-bezier(.2,.8,.2,1) both}.living-lemon-branch{position:absolute;left:-15px;top:8%;width:100px;height:65%;transform-origin:20% 90%;animation:lemon-branch-story 10s ease-in-out infinite alternate}.living-dunes{position:absolute;left:-20%;bottom:0;width:140%;height:29%;animation:desert-story-breath 14s ease-in-out infinite alternate}.desert-heat-haze{position:absolute;inset:45% -20% 15%;background:linear-gradient(0deg,transparent,#f5d0991a,transparent);filter:blur(12px);animation:desert-story-breath 12s ease-in-out infinite alternate}.deco-light-drawing{opacity:.6;stroke-dasharray:2200;stroke-dashoffset:2200;animation:story-line-draw 7s 1.7s ease-out both}.ballroom-light-sweep{position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,#f8dda32a 49%,transparent 62%);translate:-100% 0;animation:ballroom-gold-sweep 14s 3s ease-in-out infinite}.velvet-spotlight{position:absolute;inset:-20%;background:conic-gradient(from 160deg at 15% 0,#f5cc941a,transparent 20deg);mix-blend-mode:screen;animation:velvet-spotlight-story 15s ease-in-out infinite alternate}.spotlight-right{transform:scaleX(-1);animation-delay:-7s}.minimal-ink-frame{stroke-dasharray:2000;stroke-dashoffset:2000;animation:story-line-draw 5s 1.8s ease-out both;opacity:.6}.story-traveller{position:fixed;z-index:6;width:15px;height:18px;pointer-events:none;color:var(--inv-accent,#b48680);opacity:.6;transition:top .35s,left .35s,rotate .4s;filter:drop-shadow(0 2px 3px #5e3d2b22)}.story-traveller[hidden]{display:none}.story-traveller svg{display:block;width:100%;height:100%}.traveller-stars,.traveller-emerald,.traveller-moon{color:#d4b46f}.traveller-sea{color:#6fadb9}.traveller-wisteria{color:#b39ac7}
.chapter-gallery{background:#f9f2e7}.gallery-example-note{font-size:10px;color:#ad9579;margin-bottom:22px}.invitation-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;margin-top:35px}.gallery-photo{padding:7px 7px 9px;background:#fffaf1;border:1px solid #e0d0b7;box-shadow:0 8px 18px #5f443415;transform:rotate(-3deg);transition:transform .6s,box-shadow .6s;min-width:0;color:#a78b64}.gallery-photo:nth-child(2n){transform:rotate(3deg);margin-top:28px}.gallery-photo:hover{transform:rotate(0) translateY(-5px);box-shadow:0 12px 20px #5f443426}.gallery-photo img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}.gallery-photo>span{display:flex;justify-content:space-between;align-items:center;padding:9px 3px 0;font-family:Georgia;font-size:10px}.gallery-photo i{font-style:normal;font-size:16px}.gallery-lightbox{border:0;background:transparent;color:#f9ebcd;width:min(95vw,980px);max-height:94svh;padding:35px 40px 15px;text-align:center;overflow:auto}.gallery-lightbox::backdrop{background:#141820eb;backdrop-filter:blur(9px)}.gallery-lightbox figure{margin:0}.gallery-lightbox figure>img{max-width:100%;max-height:72svh;object-fit:contain;border:7px solid #fff8ec;box-shadow:0 10px 50px #0004}.gallery-lightbox figcaption{font-family:WisalNaskh;font-size:17px;margin-top:12px}.gallery-lightbox-close{position:absolute;right:8px;top:0;border:0;background:none;color:#fff4db;font-family:Arial;font-size:29px;line-height:1;padding:6px 10px}.gallery-lightbox-controls{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:10px;font-family:Georgia;font-size:13px}.gallery-lightbox-controls button{border:1px solid #e9d3a766;width:40px;height:35px;background:none;color:#f9ebcd;border-radius:4px}.media-dialog-visible{overflow:hidden}.invitation-theme-stars .chapter-gallery{background:#16273d}.invitation-theme-emerald .chapter-gallery{background:#1c3e34}.invitation-theme-sea .chapter-gallery{background:#f0f5ef}.invitation-theme-wisteria .chapter-gallery{background:#f5eef8}.invitation-theme-desert .chapter-gallery{background:#f4e3cf}.invitation-theme-rose .chapter-gallery{background:#f8eae4}
.guest-receipt{text-align:center;padding:45px 25px 30px;background:radial-gradient(ellipse at 50% 20%,#fffaf1,#f0e1d4);color:#8e6659;position:relative;z-index:7}.guest-receipt h2{font-size:32px;line-height:1.6;font-weight:400;margin:12px 0 22px}.guest-receipt h2 em{color:#98616b}.receipt-envelope{position:relative;max-width:340px;height:235px;margin:15px auto 20px;background:#d8bba6;box-shadow:0 9px 25px #6c44352a;border-radius:3px}.receipt-letter{position:absolute;inset:12px 15px;background:#fff8e8;border:1px solid #cfb68d;padding:24px 18px;z-index:1;transform:translateY(25px);transition:transform 1.3s cubic-bezier(.2,.8,.2,1);box-shadow:inset 0 0 0 5px #fff8e8,inset 0 0 0 6px #d6c19d88}.receipt-letter>span{font-size:10px;color:#b59b75}.receipt-letter h3{font-size:23px;margin:12px 0 7px;font-weight:400}.receipt-letter p{font-family:WisalNaskh;font-size:17px;line-height:1.8;margin-bottom:8px}.receipt-letter>b{font-family:WisalNaskh;font-size:21px;font-weight:400;color:#a07b5f}.receipt-letter>b i{font-family:Georgia;margin:0 5px;font-size:16px}.receipt-envelope-front{position:absolute;inset:0;z-index:2;background:linear-gradient(32deg,#ebd1bd 49.5%,transparent 50%),linear-gradient(-32deg,#e3c4ab 49.5%,transparent 50%);pointer-events:none}.receipt-envelope:after{content:'';position:absolute;inset:0;z-index:3;background:#e5c6b0;clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:50% 0;transition:transform 1s,opacity .8s .2s;pointer-events:none}.receipt-seal{position:absolute;z-index:4;top:53%;left:50%;translate:-50% -50%;border-radius:46%;background:#8c4b59;color:#eacaa0;border:2px solid #ba7e7f;width:58px;height:58px;font-size:26px;box-shadow:0 4px 7px #65334333,inset 2px 2px 3px #d29c8b88;transition:opacity .4s,scale .4s}.receipt-open .receipt-letter{transform:translateY(-32px);z-index:5;transition-delay:.35s}.receipt-open .receipt-envelope:after{transform:rotateX(150deg);opacity:0}.receipt-open .receipt-seal{opacity:0;scale:.8;pointer-events:none}.receipt-open .receipt-envelope{margin-top:48px}.receipt-hint{font-family:WisalNaskh;font-size:16px;color:#aa8871}.demo-thankyou{text-align:center;padding:23px 20px;margin-top:23px;background:#fff8ea;border:1px solid #d4bb98;box-shadow:0 5px 12px #8b675b12;animation:thankyou-letter-arrive .8s ease-out both}.demo-thankyou[hidden]{display:none}.demo-thankyou>span{font-size:9px;color:#b19473}.demo-thankyou h3{font-family:var(--inv-heading-font,WisalNaskh);font-size:23px;color:#99646b;font-weight:400;margin:15px 0 10px}.demo-thankyou p{font-family:WisalNaskh;font-size:18px;color:#a28a6a}.demo-thankyou>b{font-size:30px;color:#a7787b}
@keyframes swan-left-float{from{transform:translate(-2px,1px) rotate(-.45deg)}to{transform:translate(2px,-3px) rotate(.45deg)}}@keyframes swan-right-float{from{transform:translate(1px,-1px) rotate(.35deg)}to{transform:translate(-2px,2px) rotate(-.35deg)}}@keyframes swan-water-wake{from{scale:.6;opacity:.6}to{scale:1.45;opacity:0}}@keyframes sea-story-tide{from{transform:translateX(-18px) translateY(2px)}to{transform:translateX(18px) translateY(-5px)}}@keyframes floating-love-letter{0%,100%{translate:0 0;rotate:-8deg}50%{translate:28px -12px;rotate:5deg}}@keyframes story-line-draw{to{stroke-dashoffset:0}}@keyframes celestial-dial{to{rotate:360deg}}@keyframes constellation-glimmer{from{opacity:.15}to{opacity:1}}@keyframes story-shooting-star{0%,70%,100%{translate:0 0;opacity:0}74%{opacity:.8}84%{translate:-160px 110px;opacity:0}}@keyframes wisteria-story-bloom{from{transform:scale(.05) rotate(-25deg);opacity:0}to{transform:scale(1) rotate(0);opacity:.85}}@keyframes lemon-branch-story{from{transform:rotate(-2deg)}to{transform:rotate(3deg)}}@keyframes desert-story-breath{from{translate:-8px 0}to{translate:8px -3px}}@keyframes ballroom-gold-sweep{0%,40%{translate:-100% 0}75%,100%{translate:100% 0}}@keyframes velvet-spotlight-story{from{rotate:-7deg;opacity:.3}to{rotate:8deg;opacity:.65}}@keyframes thankyou-letter-arrive{from{transform:translateY(12px) rotate(-2deg);opacity:0}to{transform:none;opacity:1}}
@media(max-width:540px){.font-choice-grid{grid-template-columns:1fr 1fr;gap:12px}.font-option{padding-block:14px}.font-option>small{font-size:24px}.gallery-upload-previews>img{width:60px;height:75px}.living-swans{left:16%;width:68%;bottom:6%}.sea-floating-note{width:62px;height:44px;font-size:9px}.living-lemon-branch{width:75px;left:-15px}.invitation-photo-grid{gap:13px;margin-inline:4px}.gallery-photo{padding:5px 5px 7px}.gallery-lightbox{padding:40px 10px 15px}.gallery-lightbox figure>img{border-width:5px;max-height:69svh}.guest-receipt{padding-inline:24px}.guest-receipt h2{font-size:28px}.receipt-envelope{height:245px}.receipt-letter h3{font-size:21px}.receipt-letter p{font-size:16px}.story-traveller{width:12px;height:15px}}
.invitation-embedded .living-swans{left:15%;width:70%;bottom:5%}.invitation-embedded .receipt-letter{padding:18px 14px}.invitation-embedded .receipt-letter h3{font-size:20px}
@media(prefers-reduced-motion:reduce){.living-scene,.living-scene *,.gallery-photo,.receipt-letter,.receipt-envelope:after,.receipt-seal,.demo-thankyou{animation:none!important;transition:none!important}.constellation-trace,.deco-light-drawing,.minimal-ink-frame{stroke-dashoffset:0}.story-traveller{display:none!important}.story-meteor,.sea-floating-note{display:none}.story-blossom{transform:none;opacity:.85}}
.guest-receipt h2,.demo-thankyou h3{overflow-wrap:anywhere}
.gallery-lightbox figure>img{display:block;width:100%;height:70svh;max-height:70svh;object-fit:contain;border:0;box-shadow:none;transition:opacity .3s}.gallery-lightbox figure>img.photo-loading{opacity:.2;background:radial-gradient(ellipse,#e6d4ae18,transparent)}
