/* An iridescent peony on still water, with stationery concealed inside its bloom. */
.sfp-blossom{display:none}
.ecard-player.sf-soul-reveal[data-sf-delivery=flower]{--sf-arrival:11s;--sf-story:19s}
.ecard-player.sf-soul-reveal[data-sf-delivery=flower] .sf-soul-stage{container-type:size;background:radial-gradient(ellipse at 50% 35%,#fffdf6 0%,#f0e8f2 50%,#dce9ef 100%)!important}
.ecard-player.sf-soul-reveal[data-sf-delivery=flower] .sfp-blossom{display:contents}
.ecard-player.sf-soul-reveal[data-sf-delivery=flower] :is(.sf-soul-water,.sf-soul-halo,.sf-soul-dust){display:none!important}
.sfp-petals{position:absolute;inset:0;pointer-events:none}
.sfp-back{z-index:20}.sfp-inner{z-index:24}.sfp-front{z-index:40}
.sfp-petal{position:absolute;left:50%;top:64%;width:min(38cqw,28cqh);height:34cqh;overflow:visible;transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(var(--closed)) scale(.63,1);filter:drop-shadow(0 3px 3px #9f7ca525)}
.sfp-petal>path:first-child{stroke:#bca4c2;stroke-width:.65}
.sfp-vein{fill:none;stroke:#fffdf3;stroke-opacity:.35;stroke-width:1.3}
.ecard-player[data-sf-delivery=flower] .is-running .sfp-back .sfp-petal{animation:sfp-unfurl-back 11s cubic-bezier(.3,0,.2,1) both}
.ecard-player[data-sf-delivery=flower] .is-running .sfp-inner .sfp-petal{animation:sfp-unfurl-inner 11s cubic-bezier(.3,0,.2,1) both}
.ecard-player[data-sf-delivery=flower] .is-running .sfp-front .sfp-petal{animation:sfp-unfurl-front 11s cubic-bezier(.3,0,.2,1) both}
@keyframes sfp-unfurl-back{0%,12%{transform:translate(-50%,-100%) rotate(var(--closed)) scale(.63,1)}68%,100%{transform:translate(-50%,-100%) rotate(var(--a)) scale(.95,.65)}}
@keyframes sfp-unfurl-inner{0%,22%{transform:translate(-50%,-100%) rotate(var(--closed)) scale(.5,.88)}76%,100%{transform:translate(-50%,-100%) rotate(var(--a)) scale(.8,.45)}}
@keyframes sfp-unfurl-front{0%,18%{transform:translate(-50%,-100%) rotate(var(--closed)) scale(.67,.97)}72%,100%{transform:translate(-50%,-100%) rotate(var(--a)) scale(.97,.5)}}
.sfp-cup{position:absolute;z-index:41;left:50%;top:63.3%;width:22cqw;height:4cqh;transform:translateX(-50%);border-radius:20% 20% 75% 75%;background:linear-gradient(120deg,#e2d0e6,#fff3e9,#d8e3ed);border-bottom:1px solid #aeb5bd55;box-shadow:0 8px 16px #798f9d14}
.sfp-heart-glow{position:absolute;left:50%;top:61%;width:30cqw;height:10cqh;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#fff9dc,transparent 70%);z-index:25;opacity:0}
.ecard-player[data-sf-delivery=flower] .is-running .sfp-heart-glow{animation:sfp-glow 11s ease both}
@keyframes sfp-glow{0%,25%{opacity:0}50%,75%{opacity:.9}100%{opacity:.25}}
.sfp-water{position:absolute;inset:58% -15% 3%;z-index:10;background:radial-gradient(ellipse at 50% 48%,#e3eaf144,transparent 65%);pointer-events:none}
.sfp-water i{position:absolute;left:50%;top:49%;width:55cqw;height:12cqh;border-radius:50%;border:1px solid #a3bacb66;box-shadow:0 1px #fff9;opacity:0;transform:translate(-50%,-50%)}
.ecard-player[data-sf-delivery=flower] .is-running .sfp-water i{animation:sfp-ripple 11s ease-out both;animation-delay:calc(var(--ring)*.65s)}
@keyframes sfp-ripple{0%,12%{opacity:0;transform:translate(-50%,-50%) scale(.25)}38%{opacity:.55}100%{opacity:0;transform:translate(-50%,-50%) scale(2.2)}}
.sfp-sparks{position:absolute;inset:0;z-index:42;pointer-events:none}
.sfp-sparks i{position:absolute;left:var(--x);top:var(--y);font-size:clamp(8px,2cqw,15px);color:#b4a2c4;opacity:0;text-shadow:0 0 7px #fff9d4}
.ecard-player[data-sf-delivery=flower] .is-running .sfp-sparks i{animation:sfp-spark 11s ease both;animation-delay:calc(var(--i)*.035s)}
@keyframes sfp-spark{0%,25%{opacity:0;translate:0 10cqh;scale:.2}52%{opacity:.8;scale:1}100%{opacity:0;translate:0 -12cqh;scale:.3}}
.ecard-player.sf-soul-reveal[data-sf-delivery=flower] .journey-object.sf-emerging-envelope:not(.is-opening){z-index:30;opacity:0;clip-path:inset(0);animation:sfp-envelope 11s cubic-bezier(.35,0,.22,1) both!important}
.ecard-player.sf-soul-reveal[data-sf-delivery=flower] .journey-object.is-opening{z-index:30}
@keyframes sfp-envelope{0%,55%{opacity:0;transform:translate(-50%,calc(-50% + 23cqh)) scale(.45)}56%{opacity:1;transform:translate(-50%,calc(-50% + 23cqh)) scale(.45)}75%{opacity:1;transform:translate(-50%,calc(-50% + 9cqh)) scale(.7)}94%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
/* Lower the opened flower gently while the card leaves its envelope. */
.ecard-player[data-sf-delivery=flower] .is-revealing :is(.sfp-petals,.sfp-cup){animation:sfp-rest 8s ease both}
@keyframes sfp-rest{0%,20%{translate:0 0;opacity:1}85%,100%{translate:0 14cqh;opacity:.3}}
