/* One intimate balloon, then a little shower of curled satin. */
.ap-opening[data-theme="pocketful"].pf-celebration-started .ap-opening-body{opacity:0;transform:translateY(22px) scale(.94);pointer-events:none;transition:opacity .4s ease,transform .65s ease}
.ap-opening[data-theme="pocketful"][data-stage="celebrating"]>.background-hearts{opacity:0;transition:opacity .65s ease}
.ap-opening[data-theme="pocketful"][data-stage="celebrating"]>.background-hearts>.background-heart{animation-play-state:paused!important}
.ap-opening[data-theme="pocketful"] .pf-balloon-transition{--bt-balloon-size:min(74vw,360px,55vh);--bt-centre:calc(46% - var(--bt-balloon-size)*.23);position:absolute;inset:0;z-index:6;overflow:hidden;pointer-events:none!important;user-select:none;isolation:isolate;background:radial-gradient(ellipse at 50% 42%,#fff8faee,transparent 72%);animation:pf-bt-arrive .45s ease both}
.pf-balloon-transition *{box-sizing:border-box;pointer-events:none!important}
.pf-bt-halo{position:absolute;left:50%;top:var(--bt-centre);width:min(110vw,650px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#f4bfd130 0%,#f9d9e830 37%,transparent 67%);animation:pf-bt-halo 3.8s ease both}
.pf-bt-balloon-wrap{position:absolute;left:50%;top:46%;width:var(--bt-balloon-size);aspect-ratio:320/430;transform:translate(-50%,-50%);filter:drop-shadow(2px 16px 15px #ae617b18)}
.pf-bt-balloon{display:block;width:100%;height:100%;overflow:visible;animation:pf-bt-sway 3.85s ease-in-out both;transform-origin:50% 64%}
.pf-bt-body{transform-box:view-box;transform-origin:160px 272px;animation:pf-bt-inflate 3.5s .25s cubic-bezier(.24,.49,.45,1) both;will-change:transform}
.pf-bt-creases{animation:pf-bt-crease 3.5s .25s ease both}
.pf-bt-string{animation:pf-bt-arrive .55s .2s ease both}
.pf-bt-gleam{animation:pf-bt-gleam 1.3s 2.45s ease both;transform-origin:78px 78px}
.pf-bt-air{opacity:0;animation:pf-bt-air-visible 3.7s ease both}
.pf-bt-air path{stroke-dasharray:11 46;animation:pf-bt-air .72s linear infinite}
.pf-bt-air path:nth-child(2){animation-delay:-.24s}.pf-bt-air path:nth-child(3){animation-delay:-.48s}
.pf-bt-captions{position:absolute;left:20px;right:20px;top:calc(46% + var(--bt-balloon-size)*.63);text-align:center;color:#985c6d;font-family:'Caveat',cursive;font-size:clamp(28px,4vw,37px);font-weight:600;line-height:1.16;letter-spacing:.005em;text-shadow:0 2px 10px #fff9}
.pf-bt-captions p{margin:0;transition:opacity .24s ease,transform .5s ease}
.pf-bt-inflate-caption{animation:pf-bt-caption .65s .35s ease both}
.pf-bt-pop-caption{position:absolute;top:0;left:0;right:0;opacity:0;transform:translateY(10px)}
.pf-bt-burst,.pf-bt-confetti{position:absolute;inset:0;overflow:visible}
.pf-bt-burst i{position:absolute;left:50%;top:var(--bt-centre);width:30px;aspect-ratio:1;border:1px solid #d493aa80;border-radius:50%;opacity:0;transform:translate(-50%,-50%)}
.pf-bt-burst i:nth-child(2){border-color:#e3c591b3}.pf-bt-burst i:nth-child(3){border-style:dashed;border-color:#dfaab680}
.pf-bt-piece{position:absolute;left:50%;top:var(--bt-centre);width:var(--bt-size);height:auto;opacity:0;transform:translate(-50%,-50%) rotate(var(--bt-angle)) scale(.2);filter:drop-shadow(0 2px 2px #774b4214)}
.pf-bt-piece svg{display:block;width:100%;height:auto;overflow:visible}
.pf-balloon-transition.is-popped .pf-bt-body{animation:pf-bt-pop .2s ease-out both}
.pf-balloon-transition.is-popped .pf-bt-string{animation:pf-bt-string-fall .62s ease-in both}
.pf-balloon-transition.is-popped .pf-bt-air{display:none}
.pf-balloon-transition.is-popped .pf-bt-burst i{animation:pf-bt-burst .7s ease-out both}
.pf-balloon-transition.is-popped .pf-bt-burst i:nth-child(2){animation-delay:.06s}.pf-balloon-transition.is-popped .pf-bt-burst i:nth-child(3){animation-delay:.12s}
.pf-balloon-transition.is-popped .pf-bt-piece{animation:pf-bt-confetti var(--bt-duration) var(--bt-delay) cubic-bezier(.13,.5,.45,1) both}
.pf-balloon-transition.is-popped .pf-bt-piece svg{animation:pf-bt-tumble .55s ease-in-out infinite alternate}
.pf-balloon-transition.is-popped .pf-bt-inflate-caption{animation:none;opacity:0;transform:translateY(-8px)}
.pf-balloon-transition.is-popped .pf-bt-pop-caption{opacity:1;transform:none;transition-delay:.15s}
@keyframes pf-bt-arrive{from{opacity:0}to{opacity:1}}
@keyframes pf-bt-inflate{0%{opacity:0;transform:scale(.22,.13)}8%{opacity:1;transform:scale(.29,.2)}27%{transform:scale(.44,.39)}50%{transform:scale(.68,.68)}72%{transform:scale(.87,.91)}89%{transform:scale(1.018,.982)}100%{opacity:1;transform:scale(1)}}
@keyframes pf-bt-sway{0%{transform:rotate(-8deg)}24%{transform:rotate(5deg)}52%{transform:rotate(-4deg)}77%{transform:rotate(2deg)}100%{transform:rotate(0)}}
@keyframes pf-bt-crease{0%,20%{opacity:1}65%{opacity:.35}100%{opacity:0}}
@keyframes pf-bt-gleam{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1.15)}100%{opacity:.8;transform:scale(.9)}}
@keyframes pf-bt-air{from{stroke-dashoffset:0}to{stroke-dashoffset:57}}
@keyframes pf-bt-air-visible{0%,8%{opacity:0}20%,78%{opacity:.65}100%{opacity:0}}
@keyframes pf-bt-halo{0%{opacity:0;scale:.6}75%,100%{opacity:1;scale:1}}
@keyframes pf-bt-caption{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes pf-bt-pop{0%{opacity:1;transform:scale(1)}28%{opacity:1;transform:scale(1.08,.96)}70%{opacity:.6;transform:scale(.17,.13)}100%{opacity:0;transform:scale(.02)}}
@keyframes pf-bt-string-fall{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(80px) rotate(12deg)}}
@keyframes pf-bt-burst{0%{opacity:.85;transform:translate(-50%,-50%) scale(.7)}100%{opacity:0;transform:translate(-50%,-50%) scale(12)}}
@keyframes pf-bt-confetti{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--bt-angle)) scale(.25)}7%{opacity:1}38%{opacity:1;transform:translate(calc(-50% + var(--bt-x)),calc(-50% + var(--bt-y))) rotate(var(--bt-angle)) scale(1)}77%{opacity:.9}100%{opacity:0;transform:translate(calc(-50% + var(--bt-end-x)),calc(-50% + var(--bt-end-y))) rotate(var(--bt-turn)) scale(.8)}}
@keyframes pf-bt-tumble{from{transform:rotateX(-35deg) rotateY(-15deg)}to{transform:rotateX(40deg) rotateY(50deg)}}
@media(max-height:520px){.ap-opening[data-theme="pocketful"] .pf-balloon-transition{--bt-balloon-size:min(45vw,45vh);--bt-centre:calc(43% - var(--bt-balloon-size)*.23)}.pf-bt-balloon-wrap{top:43%}.pf-bt-captions{top:calc(43% + var(--bt-balloon-size)*.64);font-size:25px}.pf-bt-captions br{display:none}.pf-bt-captions br:after{content:' '}}
@media(prefers-reduced-motion:reduce){.pf-balloon-transition,.pf-balloon-transition *{animation:none!important;transition:none!important}.pf-balloon-transition{display:none}}
