/* A finite decorative moment. All page controls remain clickable underneath. */
.bm-moment{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden;contain:layout style;font-family:'Be Vietnam Pro',Arial,sans-serif;--bm-ease:cubic-bezier(.22,1,.36,1)}
.bm-moment__sky{position:absolute;inset:0;overflow:hidden}
.bm-moment__anchor{position:absolute;left:max(24px,env(safe-area-inset-left));bottom:max(32px,env(safe-area-inset-bottom));width:min(370px,calc(100vw - 48px));animation:bm-arrive 1.2s var(--bm-ease) both}
.bm-moment__card{position:relative;padding:30px 36px 28px 28px;border:1px solid rgba(255,255,255,.95);border-radius:28px;background:linear-gradient(130deg,#fffdf6 0%,#fff7ed 55%,#fbe2e8 100%);box-shadow:0 14px 50px -18px #73495b55, inset 0 0 0 5px #ffffff60;color:#694555;isolation:isolate}
.bm-moment__quote{position:relative;margin:0;font-size:clamp(16px,1.35vw,19px);font-weight:600;line-height:1.65;text-wrap:pretty;animation:bm-text .65s ease .75s both}
.bm-moment__close{pointer-events:auto;position:absolute;right:6px;top:6px;border:0;background:transparent;color:#886b79;font:24px/1 Arial,sans-serif;width:36px;height:36px;border-radius:50%;cursor:pointer;opacity:.65}
.bm-moment__close:hover,.bm-moment__close:focus-visible{background:#f3d8e0;opacity:1;outline:2px solid #bc788e;outline-offset:1px}
.bm-moment__ornament{position:absolute;left:22px;top:-31px;width:64px;height:55px;display:grid;place-items:center;transform:rotate(-12deg);animation:bm-ornament 1.1s var(--bm-ease) .2s both}
.bm-moment__bread{font-size:42px;filter:drop-shadow(0 5px 5px #80552d22)}
.bm-moment__particle{position:absolute;left:var(--x);bottom:-100px;width:var(--size);height:var(--size);border-radius:50%;opacity:0;animation:bm-rise var(--flight) ease-in-out var(--delay) both;background:radial-gradient(circle at 28% 24%,#ffffffdf 0 5%,#fff8 6%,#ffffff00 22%),radial-gradient(circle at 70% 75%,#ecc1de80,transparent 60%),linear-gradient(145deg,#d3eff260,#fff4);border:1px solid #fff9;box-shadow:inset -3px -4px 9px #aabfdc50,inset 2px 2px 6px #ffffffd0,0 0 1px #84a6b870}
.bm-moment__particle:nth-child(3n){background-color:#f6b8c833}.bm-moment__particle:nth-child(3n + 1){background-color:#bce2d733}
.bm-moment--bubbles .bm-moment__card{border-radius:45% 45% 35% 35% / 35% 35% 30% 30%;padding:36px 40px 32px;background:linear-gradient(135deg,#ffffff,#f3fcfa 45%,#fbe4f0);box-shadow:inset 4px 4px 12px #fff, inset -6px -6px 15px #d8e7ee,0 16px 48px -18px #446d8055}
.bm-moment--balloons .bm-moment__particle{border-radius:50% 50% 46% 46%;background:radial-gradient(ellipse at 30% 25%,#fff9,transparent 35%),#eab0c7;border:0;box-shadow:inset -8px -8px 18px #ab6f9630;animation-name:bm-balloon}
.bm-moment--balloons .bm-moment__particle:nth-child(3n){background-color:#b2d9d4}.bm-moment--balloons .bm-moment__particle:nth-child(3n + 1){background-color:#ead7a6}
.bm-moment--balloons .bm-moment__particle::after{content:'';position:absolute;left:50%;top:100%;height:70px;width:20px;border-left:1px solid #9d859080;border-radius:50%;transform:rotate(10deg)}
.bm-moment--balloons .bm-moment__card{border-radius:7px 24px 24px 24px;transform:rotate(-2deg);background:linear-gradient(130deg,#fffefa,#fff3df)}
.bm-moment--balloons .bm-moment__anchor{animation-name:bm-card-flight}
.bm-moment--cloud .bm-moment__card::before{content:'';position:absolute;z-index:-1;inset:-14px -8px;background:#fff9ec;border:1px solid #fff;border-radius:44% 56% 61% 39% / 49% 38% 62% 51%;animation:bm-cloud 4s ease-in-out 2 alternate}
.bm-moment--cloud .bm-moment__card{background:#fff9ec;border-radius:50px;box-shadow:0 16px 45px -18px #84667455}
.bm-moment--cloud .bm-moment__particle{border:0;background:#fffaf0d9;box-shadow:0 10px 20px -12px #b7ad9c60;border-radius:60% 40% 50% 50%;animation-name:bm-cloud-rise}
.bm-moment--pop .bm-moment__anchor{animation-name:bm-pop-card}
.bm-moment--pop .bm-moment__particle{left:180px;bottom:100px;width:12px;height:12px;border:0;background:#e8a4b6;box-shadow:none;animation:bm-scatter 1.6s var(--bm-ease) calc(.3s + var(--delay) * .25) both}
.bm-moment--pop .bm-moment__particle:nth-child(3n){background:#a2d0c5}.bm-moment--pop .bm-moment__particle:nth-child(3n + 1){background:#e3c27b}
.bm-moment--pop .bm-moment__card::before{content:'';position:absolute;inset:-8px;border:2px solid #e6b0c3;border-radius:inherit;animation:bm-ring 1.1s ease-out .25s both;z-index:-1}
.bm-moment--steam .bm-moment__particle{width:var(--size);height:calc(var(--size) * 2);background:linear-gradient(0deg,transparent,#fff9,transparent);border:0;box-shadow:none;border-radius:50%;animation-name:bm-steam-rise}
.bm-moment--steam .bm-moment__ornament i{position:absolute;bottom:46px;width:9px;height:35px;border-left:2px solid #ba928580;border-radius:50%;animation:bm-steam 2s ease-in-out 3 both}
.bm-moment--steam .bm-moment__ornament i:nth-of-type(1){left:18px}.bm-moment--steam .bm-moment__ornament i:nth-of-type(2){left:31px;animation-delay:.3s}.bm-moment--steam .bm-moment__ornament i:nth-of-type(3){left:44px;animation-delay:.6s}
.bm-moment--steam .bm-moment__card{background:linear-gradient(130deg,#fffdf4,#ffedda);border-radius:32px 32px 32px 8px}
.bm-moment--petals .bm-moment__particle{border-radius:80% 0 80% 0;width:calc(var(--size) * .55);height:var(--size);background:linear-gradient(140deg,#fff1f5,#e8a6bc);border:1px solid #fff8;box-shadow:inset 2px 2px 8px #fff8;animation-name:bm-petal}
.bm-moment--petals .bm-moment__particle:nth-child(3n){background:linear-gradient(140deg,#f1fffa,#acd2bf)}
.bm-moment--petals .bm-moment__card{background:linear-gradient(145deg,#fffdf9,#fbe7ef);border-radius:32px 8px 32px 8px}
.bm-moment--leaving .bm-moment__anchor{animation:bm-depart .85s cubic-bezier(.55,0,1,.45) both}
.bm-moment--leaving .bm-moment__sky{transition:opacity .6s;opacity:0}
@keyframes bm-arrive{0%{opacity:0;transform:translateY(75px) scale(.65) rotate(-7deg)}65%{opacity:1;transform:translateY(-5px) scale(1.02) rotate(1deg)}100%{opacity:1;transform:none}}
@keyframes bm-text{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes bm-ornament{from{opacity:0;transform:translateY(15px) rotate(-30deg) scale(.5)}to{opacity:1;transform:rotate(-12deg)}}
@keyframes bm-rise{0%{opacity:0;transform:translateY(0) scale(.5)}15%{opacity:.85}80%{opacity:.7}100%{opacity:0;transform:translate(var(--drift),-105vh) scale(1.15)}}
@keyframes bm-balloon{0%{opacity:0;transform:translateY(0) rotate(-10deg)}12%{opacity:.85}50%{transform:translate(calc(var(--drift) * -.5),-50vh) rotate(10deg)}85%{opacity:.8}100%{opacity:0;transform:translate(var(--drift),-115vh) rotate(-8deg)}}
@keyframes bm-card-flight{0%{opacity:0;transform:translateY(150px) rotate(8deg)}65%{opacity:1;transform:translateY(-8px) rotate(-3deg)}100%{transform:none}}
@keyframes bm-cloud{from{border-radius:44% 56% 61% 39% / 49% 38% 62% 51%;transform:scale(1)}to{border-radius:55% 45% 42% 58% / 42% 57% 43% 58%;transform:scale(1.03,1.06)}}
@keyframes bm-cloud-rise{0%{opacity:0;transform:translateY(0) scale(.4)}25%{opacity:.8}100%{opacity:0;transform:translate(var(--drift),-85vh) scale(1.8)}}
@keyframes bm-pop-card{0%,20%{opacity:0;transform:scale(.2)}50%{opacity:1;transform:scale(1.08) rotate(-3deg)}75%{transform:scale(.98) rotate(1deg)}100%{transform:none}}
@keyframes bm-scatter{0%{opacity:0;transform:translate(0,0) scale(.2)}15%{opacity:1}100%{opacity:0;transform:translate(var(--scatter-x),var(--scatter-y)) rotate(180deg) scale(.5)}}
@keyframes bm-ring{from{opacity:.8;transform:scale(.75)}to{opacity:0;transform:scale(1.35)}}
@keyframes bm-steam{0%{opacity:0;transform:translateY(5px) scale(.7)}40%{opacity:.7}100%{opacity:0;transform:translate(6px,-25px) scale(1.2)}}
@keyframes bm-steam-rise{0%{opacity:0;transform:translateY(0) scale(.5)}30%{opacity:.65}100%{opacity:0;transform:translate(var(--drift),-75vh) scale(2)}}
@keyframes bm-petal{0%{opacity:0;transform:translateY(-110vh) rotate(0)}20%{opacity:.85}70%{opacity:.7;transform:translate(calc(var(--drift) * -1),-35vh) rotate(140deg)}100%{opacity:0;transform:translate(var(--drift),0) rotate(240deg)}}
@keyframes bm-depart{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-35px) scale(.92) rotate(3deg)}}
.bm-moment--still .bm-moment__sky,.bm-moment--still .bm-moment__ornament{display:none}
.bm-moment--still .bm-moment__anchor,.bm-moment--still .bm-moment__quote{animation:bm-text .2s ease both}
.bm-moment--still .bm-moment__card::before{animation:none}
.bm-moment--still.bm-moment--leaving .bm-moment__anchor{animation:none;opacity:0;transition:opacity .15s}
@media(max-width:600px){.bm-moment__anchor{left:max(16px,env(safe-area-inset-left));bottom:max(94px,calc(env(safe-area-inset-bottom) + 74px));width:calc(100vw - 32px);max-width:370px}.bm-moment__card{padding:25px 38px 24px 24px}.bm-moment--bubbles .bm-moment__card{padding:30px 36px 27px}.bm-moment__particle{max-width:55px;max-height:65px}.bm-moment--pop .bm-moment__particle{left:50%;bottom:160px}}
@media(prefers-reduced-motion:reduce){.bm-moment__sky,.bm-moment__ornament{display:none}.bm-moment *, .bm-moment *::before{animation:none!important}.bm-moment__anchor{opacity:1}.bm-moment--leaving .bm-moment__anchor{opacity:0}}
