@font-face{font-family:'Great Vibes';src:url('fonts/GreatVibes-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:light;--paper:#f5ecdc;--rose:#93484c;--gold:#b3995f;--ink:#554535}
*{box-sizing:border-box}body{margin:0;background:#e8ded0;color:var(--ink);font-family:system-ui,sans-serif}[hidden]{display:none!important}
.toolbar{max-width:810px;margin:auto;padding:20px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.signature{font:600 18px 'Cormorant Garamond',serif;color:#713d40}.signature small{display:block;margin-top:4px;font:10px system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#7c7163}.controls,.languages{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.controls{justify-content:flex-end}button{font:11px system-ui,sans-serif;padding:9px 12px;min-height:36px;border:1px solid #b9a78c;background:#ffffff38;color:#604b41;border-radius:24px;cursor:pointer}.languages button[aria-pressed=true]{background:#78494a;color:#fff;border-color:#78494a}button:focus-visible{outline:2px solid #8f4c4f;outline-offset:3px}button:hover{background:#ead9c3}
main{padding:0 18px 28px}.published main{padding:24px 18px}.card{position:relative;isolation:isolate;container-type:inline-size;width:min(100%,760px);aspect-ratio:3/4;margin:auto;background:var(--paper);overflow:hidden;box-shadow:0 18px 70px #5a443c30;color:var(--ink)}
.lp-paper{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 48% 37%,#fffbf2a6,transparent 68%),linear-gradient(115deg,#d2be9f14,transparent 45%,#bc9b7214)}
.lp-paper::after{content:'';position:absolute;inset:0;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23ab9474' opacity='.24' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
.lp-botanical,.lp-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.lp-botanical{z-index:1;color:#80866b;opacity:.42}.lp-frame{z-index:2}.lp-gold{fill:none;stroke:var(--gold);stroke-width:3}.lp-fine{stroke-width:1}.lp-arch-fill{fill:#f8efdf;stroke:#b97e70;stroke-width:2.8}.lp-arch-line{fill:none;stroke:#c69687;stroke-width:1.3}.lp-corner{fill:none;stroke:#a99156;stroke-width:2}
.lp-layer{position:absolute;pointer-events:none;user-select:none}.lp-layer img{display:block;width:100%;height:auto}.lp-placement,.lp-movement{width:100%;transform-origin:50% 90%;will-change:auto}.lp-palm-left{left:-8%;top:35%;width:32%;z-index:3;transform:rotate(-8deg)}.lp-palm-right{right:-8%;top:39%;width:31%;z-index:3;transform:scaleX(-1) rotate(-6deg)}.lp-pavilion-left{width:29%;left:-10%;bottom:5%;z-index:4}.lp-pavilion-right{width:29%;right:-10%;bottom:5%;z-index:4;transform:scaleX(-1)}.lp-flowers-left{left:-5%;bottom:1.5%;width:49%;z-index:7;transform:rotate(-3deg)}.lp-flowers-right{right:-5%;bottom:1.5%;width:49%;z-index:7;transform:scaleX(-1) rotate(-3deg)}.lp-couple-art{width:31%;left:34.5%;bottom:3.2%;z-index:6}.lp-flowers-top{width:21%;left:39.5%;top:5%;z-index:3;transform:rotate(-30deg)}
.lp-emblem{position:absolute;left:46.8%;top:15.4%;width:6.4%;z-index:8;color:#a46259}.lp-emblem svg{width:100%;height:auto}
.copy{position:absolute;inset:0;z-index:8;text-align:center;font:600 2.5cqw 'Cormorant Garamond',Georgia,serif}.copy p,.copy h1,.copy h2{margin:0}.lp-text{position:absolute;text-align:center}.lp-prayer{left:25%;top:20.6%;width:50%;height:3cqw;font-size:1.7cqw;line-height:1.4;color:#925852}
.lp-title{left:18%;top:22%;width:64%;height:20cqw;font:400 10cqw/1.05 'Great Vibes',cursive;color:var(--rose);white-space:pre-line;padding:.8cqw 2cqw 1cqw;overflow-wrap:anywhere}.lp-flourish{position:absolute;left:40%;top:36.8%;width:20%;height:3.4cqw;color:var(--gold)}.lp-message{top:39%;left:23%;width:54%;height:6cqw;white-space:pre-line;font-size:2.1cqw;line-height:1.25}
.lp-names{position:absolute;top:44%;left:21%;width:58%;height:9cqw;display:grid;grid-template-columns:minmax(0,1fr) 8cqw minmax(0,1fr);gap:1cqw;align-items:center;color:var(--rose)}.lp-names h2{font:400 7.6cqw/1.3 'Great Vibes',cursive;white-space:nowrap;height:10cqw;padding:.5cqw .7cqw}.lp-rings{width:7cqw;height:6cqw;color:#b29550;overflow:visible}
.lp-date{position:absolute;left:29%;top:51.7%;width:42%;height:9.5cqw;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;gap:1.4cqw;color:var(--rose)}.lp-month,.lp-year{display:block;border-top:1px solid #bda878;border-bottom:1px solid #bda878;font-size:3.6cqw;line-height:1.5;height:6cqw;white-space:nowrap;letter-spacing:.055em}.lp-day{font:500 9cqw/1 'Cormorant Garamond',serif;height:10cqw;white-space:nowrap}.lp-weekday{top:59%;left:24%;width:52%;height:4cqw;font-size:2.65cqw;line-height:1.4;letter-spacing:.25em;color:var(--rose)}.lp-rule{position:absolute;top:62.5%;left:33%;width:34%;height:1px;background:linear-gradient(90deg,transparent,#bba466 20%,#bba466 80%,transparent);color:#b3995f}.lp-rule span{position:absolute;left:calc(50% - 1cqw);top:-1.2cqw;font-size:2.4cqw;line-height:1;background:#f8efdf;padding:0 .3cqw}.lp-time{top:63.8%;left:24%;width:52%;height:3.5cqw;color:var(--rose);font-size:2.45cqw;line-height:1.4;letter-spacing:.045em}.lp-venue-label{top:66.5%;left:30%;width:40%;height:2.8cqw;font-size:2.1cqw;line-height:1.2;color:var(--rose);letter-spacing:.12em}.lp-venue-name{top:68.6%;left:24%;width:52%;height:3.2cqw;font-size:2.4cqw;line-height:1.25;white-space:nowrap}.lp-address{top:70.7%;left:26%;width:48%;height:4.3cqw;font-size:2.15cqw;line-height:1.2;white-space:pre-line}
.copy:not([lang=en]){font-family:'Noto Sans Devanagari',sans-serif;font-weight:400}.copy:not([lang=en]) .lp-title{font:400 6.5cqw/1.4 'Yatra One',serif;top:23%;height:20cqw}.copy:not([lang=en]) .lp-prayer{font-size:1.7cqw}.copy:not([lang=en]) .lp-names h2{font-family:'Yatra One',serif;font-size:5.7cqw;line-height:1.55}.copy:not([lang=en]) .lp-message{font-size:1.75cqw;line-height:1.65}.copy:not([lang=en]) .lp-month,.copy:not([lang=en]) .lp-year{font-size:3cqw;line-height:1.9}.copy:not([lang=en]) .lp-day{font:400 7cqw/1.5 'Yatra One',serif}.copy:not([lang=en]) .lp-weekday{font-size:2.3cqw;letter-spacing:.08em}.copy:not([lang=en]) .lp-time{font-size:1.95cqw}.copy:not([lang=en]) .lp-venue-label{font-size:1.8cqw;letter-spacing:0}.copy:not([lang=en]) .lp-venue-name{font-size:2.1cqw}.copy:not([lang=en]) .lp-address{font-size:1.8cqw;line-height:1.6}
.lp-petal{position:absolute;z-index:9;left:var(--x);top:var(--y);width:.9cqw;height:1.5cqw;border-radius:80% 0 80% 30%;background:#bd707663;pointer-events:none;opacity:0}
.animated:not(.is-paused) .copy:not([hidden]) .reveal{animation:lp-reveal 1s both cubic-bezier(.22,.61,.36,1);animation-delay:var(--delay,0s)}.animated:not(.is-paused) .lp-palm-left .lp-movement,.animated:not(.is-paused) .lp-palm-right .lp-movement{animation:lp-sway 7s ease-in-out infinite alternate}.animated:not(.is-paused) .lp-palm-right .lp-movement{animation-delay:-3s;animation-duration:8s}.animated:not(.is-paused) .lp-flowers-left .lp-movement,.animated:not(.is-paused) .lp-flowers-right .lp-movement,.animated:not(.is-paused) .lp-flowers-top .lp-movement{animation:lp-bloom 6s ease-in-out infinite alternate}.animated:not(.is-paused) .lp-flowers-right .lp-movement{animation-delay:-3s}.animated:not(.is-paused) .lp-couple-art .lp-movement{animation:lp-couple 7s ease-in-out infinite}.animated:not(.is-paused) .lp-pavilion-left .lp-movement,.animated:not(.is-paused) .lp-pavilion-right .lp-movement{animation:lp-palace 1.8s ease-out both}.animated:not(.is-paused) .lp-petal{animation:lp-petal 9s linear infinite;animation-delay:var(--delay)}
@keyframes lp-reveal{from{opacity:0;transform:translateY(1cqw)}to{opacity:1;transform:none}}@keyframes lp-sway{from{transform:rotate(-1.4deg)}to{transform:rotate(1.5deg)}}@keyframes lp-bloom{from{transform:translateY(.3cqw) rotate(-.6deg)}to{transform:translateY(-.3cqw) rotate(.6deg)}}@keyframes lp-couple{0%,100%{transform:translateY(0)}50%{transform:translateY(-.4cqw)}}@keyframes lp-palace{from{opacity:0;transform:translateY(2cqw)}to{opacity:1;transform:none}}@keyframes lp-petal{0%{opacity:0;transform:translate(0,-4cqw) rotate(0)}20%,65%{opacity:.6}100%{opacity:0;transform:translate(3cqw,14cqw) rotate(150deg)}}
.music-toggle{position:fixed;bottom:18px;right:18px;width:44px;height:44px;z-index:30;font-size:19px;background:#f8efdf;box-shadow:0 4px 15px #55453530}.music-toggle[aria-pressed=true]{background:#78494a;color:white}
.card-export,.card-export body{width:1080px!important;height:1440px!important;margin:0!important;padding:0!important;overflow:hidden!important}.card-export main{padding:0!important}.card-export .toolbar,.card-export .music-toggle{display:none!important}.card-export .card{width:1080px!important;height:1440px!important;max-width:none!important;margin:0!important;box-shadow:none}.export-still *{animation:none!important;transition:none!important}.export-still .lp-petal{display:none}
@media(max-width:600px){.toolbar{padding:14px 12px;flex-wrap:wrap}.signature{font-size:17px}.controls{justify-content:flex-start}.controls button{font-size:10px;padding:8px 10px}main,.published main{padding:5px 5px 16px}.card{box-shadow:0 10px 35px #5a443c20}}
@media(prefers-reduced-motion:reduce){.animated:not(.motion-enabled) *{animation:none!important}}
@page{size:A4 portrait;margin:10mm}@media print{body{background:white;print-color-adjust:exact;-webkit-print-color-adjust:exact}.toolbar,.music-toggle,.lp-petal{display:none!important}main,.published main{padding:0}.card{width:190mm;max-width:100%;box-shadow:none;break-inside:avoid}*{animation:none!important;transition:none!important}}

/* A real photo can replace just the bottom couple layer. */
.lp-couple-art.has-photo{width:32%;left:34%;bottom:3.5%}.lp-couple-art.has-photo .lp-movement{aspect-ratio:1/1;border:.45cqw solid #b49a5e;outline:.3cqw solid #f8efdf;border-radius:48% 48% 5% 5%;overflow:hidden;background:#f4e8d6;box-shadow:0 .8cqw 2cqw #75544022}.lp-couple-art.has-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
