/* Gift reveal: back wall < envelope < front wall. One continuous silent sequence. */
.ecard-player.sf-soul-reveal[data-sf-delivery=gift]{--sf-arrival:10s;--sf-story:18s}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sf-soul-stage{container-type:size;background:radial-gradient(ellipse at 50% 44%,#fffdf8,#eee6f2 60%,#dee9f0)!important}
.sfg-geometry,.sfg-sparks{display:none}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sfg-geometry{display:block;position:absolute;left:50%;top:50%;width:90cqw;height:30cqh;overflow:visible;transform:translateX(-50%);pointer-events:none}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sfg-placeholder{display:none!important}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sfg-back{z-index:20}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sfg-front{z-index:40;filter:drop-shadow(0 12px 10px #6d74712b)}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sfg-lid{z-index:42;transform-origin:45% 25%;filter:drop-shadow(0 5px 5px #6d747125)}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .is-running .sfg-lid{animation:sfg-lift-lid 10s cubic-bezier(.35,0,.2,1) both}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .journey-object.sf-emerging-envelope:not(.is-opening){z-index:30;animation:sfg-from-cavity 10s cubic-bezier(.35,0,.22,1) both!important;opacity:0;clip-path:inset(0);--sfg-origin:20cqh}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .journey-object.is-opening{z-index:30}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .sfg-sparks{display:block;position:absolute;inset:0;z-index:43;pointer-events:none}
.sfg-sparks i{position:absolute;left:var(--x);top:var(--y);color:#b99a59;font-size:clamp(6px,1.6cqw,12px);text-shadow:0 0 6px #fff2c8;opacity:0}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .is-running .sfg-sparks i{animation:sfg-twinkle 10s ease both;animation-delay:calc(var(--i)*.045s)}
.ecard-player.sf-soul-reveal[data-sf-delivery=gift] .is-revealing :is(.sfg-front,.sfg-back){animation:sfg-settle 8s ease both}
@keyframes sfg-lift-lid{0%,8%{opacity:1;transform:translateX(-50%)}37%{opacity:1;transform:translate(-58%,-48%) rotate(-10deg)}64%,100%{opacity:.12;transform:translate(-94%,-75%) rotate(-18deg)}}
@keyframes sfg-from-cavity{0%,44%{opacity:0;transform:translate(-50%,calc(-50% + var(--sfg-origin))) scale(.56)}45%{opacity:1;transform:translate(-50%,calc(-50% + var(--sfg-origin))) scale(.56)}65%{opacity:1;transform:translate(-50%,calc(-50% + 8cqh)) scale(.72)}90%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes sfg-twinkle{0%,26%{opacity:0;transform:translateY(12cqh) scale(.2)}42%{opacity:.85;transform:translateY(2cqh) scale(1)}58%{opacity:.2}72%{opacity:.65;transform:translateY(-5cqh) scale(.7)}100%{opacity:0;transform:translateY(-11cqh) scale(.2)}}
@keyframes sfg-settle{0%,28%{opacity:1;translate:0 0}75%,100%{opacity:0;translate:0 14cqh}}
