.lp-festival{--festival-bg:#291b36;--festival-fg:#fff8ed;--festival-accent:#e2bf78;background:var(--festival-bg);color:var(--festival-fg);border-radius:14px;overflow:hidden}.lp-theme-light{--festival-bg:#fff9ef;--festival-fg:#291b36;--festival-accent:#7e568f}.lp-theme-gold{--festival-bg:#e2bf78;--festival-fg:#291b36;--festival-accent:#563163}.lp-greeting-card{margin:0;position:relative}.lp-greeting-card img{width:100%;max-height:48vh;object-fit:cover;display:block}.lp-greeting-copy{padding:clamp(20px,4vw,42px);text-align:center}.lp-greeting-copy span{font:10px/1.5 sans-serif;letter-spacing:.18em;color:var(--festival-accent)}.lp-greeting-copy h2{font:clamp(28px,5vw,54px)/1.15 Georgia,serif;margin:16px 0}.lp-greeting-copy p{font:16px/1.65 sans-serif;white-space:normal;margin:0}.lp-festival-dialog{border:0;background:transparent;padding:0;width:min(92vw,680px);max-height:90vh;overflow-y:auto;border-radius:14px;color:inherit;box-shadow:0 20px 80px #0005}.lp-festival-dialog::backdrop{background:#160d24b8}.lp-greeting-close{position:absolute;z-index:1;right:12px;top:12px;border:0;width:40px;height:40px;border-radius:50%;background:#fff;color:#291b36;font-size:28px;cursor:pointer}.lp-greeting-banner{margin:20px auto;max-width:1200px}.lp-greeting-banner .lp-greeting-card{display:grid;grid-template-columns:1fr 1fr;align-items:center}.lp-greeting-accent{margin:12px auto;max-width:1200px}.lp-greeting-accent picture{display:none}.lp-greeting-accent .lp-greeting-copy{padding:16px}.lp-greeting-accent h2{font-size:24px;margin:8px}.lp-festival-effect{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.lp-festival-effect i{position:absolute;top:-20px;width:6px;height:6px;border-radius:50%;background:#d6b16c;animation:lp-festival-fall 8s linear 2;opacity:0}.lp-effect-petals i{border-radius:60% 0;background:#b383c7}.lp-effect-confetti i{border-radius:0;background:#9167a2}.lp-effect-sparkles i{box-shadow:0 0 12px #e2bf78}@keyframes lp-festival-fall{5%{opacity:.6}90%{opacity:.3}100%{transform:translateY(100vh) rotate(180deg);opacity:0}}@media(prefers-reduced-motion:reduce){.lp-festival-effect{display:none}}@media(max-width:650px){.lp-greeting-banner .lp-greeting-card{grid-template-columns:1fr}.lp-greeting-card img{max-height:36vh}.lp-greeting-copy p{font-size:14px}}
.lp-greeting-poster{background:transparent}.lp-greeting-poster img{height:auto;max-height:76vh;object-fit:contain}.lp-greeting-banner .lp-greeting-poster{display:block}.lp-greeting-banner .lp-greeting-poster img{max-height:none;width:auto;max-width:100%;margin:auto}.lp-greeting-cta{display:inline-block;padding:12px 22px;margin-top:18px;background:var(--festival-accent);color:var(--festival-bg);border-radius:24px;font:600 15px/1.4 sans-serif;text-decoration:none}.lp-effect-soft i{width:18px;height:18px;opacity:0;background:#c6a9d5}.lp-effect-fireworks i{top:20%;animation:lp-festival-fireworks 3s ease-out 4;animation-delay:inherit;box-shadow:0 0 8px #e2bf78}@keyframes lp-festival-fireworks{0%{opacity:0;transform:scale(.2)}30%{opacity:.8;transform:translateY(-40px) scale(1.4)}100%{opacity:0;transform:translateY(100px) scale(.2)}}
.lp-festival-dialog>.lp-festival-effect{z-index:0}.lp-festival-dialog>.lp-festival{position:relative;z-index:1}.lp-festival-dialog>.lp-greeting-close{z-index:2}

/* v3.38: greeting-only popup; no surrounding panel, backdrop or banner. */
.lp-festival-dialog{width:fit-content;max-width:92vw;min-width:0;height:auto;max-height:90vh;max-height:90svh;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible;border-radius:0}
.lp-festival-dialog::backdrop{background:transparent!important;backdrop-filter:none!important}
.lp-festival-dialog>.lp-festival{background:transparent!important;border-radius:0;width:fit-content;max-width:92vw}
.lp-festival-dialog.lp-image-only picture{display:block;width:fit-content;max-width:92vw}
.lp-festival-dialog.lp-image-only img{display:block;width:auto;height:auto;max-width:92vw;max-height:88vh;max-height:88svh;object-fit:contain;margin:0}
.lp-festival-dialog>.lp-greeting-close{right:8px;top:8px;width:36px;height:36px;min-height:0;padding:0;display:grid;place-items:center;line-height:1;border:0;border-radius:50%;box-shadow:0 1px 6px #0003}

/* Transparent celebration layer above the artwork, without a backdrop or panel. */
.lp-festival-dialog>.lp-festival-effect{position:fixed;inset:0;z-index:2;pointer-events:none;background:transparent}
.lp-festival-dialog>.lp-greeting-close{z-index:3}
/* v3.40: layered, seamless celebrations; run until dismissed. */
.lp-festival-effect i{position:absolute;left:var(--x);top:-24px;width:var(--size);height:calc(var(--size)*.55);background:var(--color);border-radius:1px;opacity:0;animation:lp-celebrate-fall var(--duration) linear var(--delay) infinite;will-change:transform,opacity}
.lp-effect-confetti i:nth-child(3n){border-radius:50%;height:var(--size)}
.lp-effect-confetti i:nth-child(4n){width:3px;height:14px}
.lp-effect-petals i{border-radius:80% 0 75% 25%;background:linear-gradient(135deg,#ffe0ec,#bd79a5);width:calc(var(--size)*1.25);height:var(--size);box-shadow:inset 1px 1px 2px #fff7;animation-duration:calc(var(--duration)*1.4)}
.lp-effect-sparkles i{left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:#ffe5a0;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 5px #e8bb52);box-shadow:none;animation:lp-celebrate-twinkle 3.5s ease-in-out var(--delay) infinite}
.lp-effect-soft i{left:var(--x);top:var(--y);width:calc(var(--size)*2);height:calc(var(--size)*2);border-radius:50%;background:radial-gradient(circle,#e6c68080,transparent 70%);animation:lp-celebrate-glow 7s ease-in-out var(--delay) infinite}
.lp-effect-fireworks i{left:var(--burst-x);top:var(--burst-y);width:4px;height:4px;border-radius:50%;background:var(--color);box-shadow:0 0 6px var(--color);animation:lp-celebrate-burst 4.5s ease-out var(--burst-delay) infinite}
@keyframes lp-celebrate-fall{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0)}5%{opacity:.85}85%{opacity:.85}100%{opacity:0;transform:translate3d(var(--drift),calc(100dvh + 50px),0) rotate(var(--spin))}}
@keyframes lp-celebrate-twinkle{0%,100%{opacity:0;transform:scale(.3) rotate(0)}45%{opacity:.9;transform:scale(1.25) rotate(60deg)}70%{opacity:.3;transform:scale(.65) rotate(100deg)}}
@keyframes lp-celebrate-glow{0%,100%{opacity:0;transform:translateY(20px) scale(.6)}50%{opacity:.7;transform:translateY(-35px) scale(1.3)}}
@keyframes lp-celebrate-burst{0%,12%{opacity:0;transform:translate(0,0) scale(.2)}15%{opacity:1}75%{opacity:.7}95%,100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}
.lp-workflow-demo{z-index:100000}.lp-effect-preview-close{position:fixed;right:16px;top:16px;pointer-events:auto;background:#fff;color:#291b36;border:1px solid #b99bc9;border-radius:8px;padding:12px 16px;font:600 14px Arial,sans-serif;box-shadow:0 3px 15px #0002}
@media(prefers-reduced-motion:reduce){.lp-festival-effect{display:none!important}.lp-festival-effect i{animation:none!important}}
