/* New, isolated gift-box arrival. Existing reveal styles and legacy gift choice stay untouched. */
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"]{--sf-arrival:8s;--sf-story:14s}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sf-soul-stage{
  container-type:size;
  isolation:isolate;
  background:radial-gradient(ellipse at 50% 43%,#fffdf8 0%,#f3edf2 57%,#e4ecee 100%)!important;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sfg-geometry{
  display:block;
  position:absolute;
  left:50%;top:50%;
  width:min(88cqw,68cqh);
  height:auto;
  aspect-ratio:5/3;
  overflow:visible;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sfg-placeholder,
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sfg-sparks{display:none!important}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sfg-back{z-index:20}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sfg-front{
  z-index:40;
  filter:drop-shadow(0 14px 18px #65576c20);
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .sfg-lid{
  z-index:42;
  transform-origin:45% 25%;
  filter:drop-shadow(0 7px 8px #65576c1c);
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sfg-lid{
  animation:sfgb-lid-lift var(--sf-arrival) cubic-bezier(.35,.04,.24,1) both;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .journey-object.sf-emerging-envelope:not(.is-opening){
  top:46%;
  width:min(76cqw,calc(46cqh * var(--sf-envelope-ratio,1.48)),25rem);
  z-index:30;
  filter:drop-shadow(0 16px 24px #74677426);
  clip-path:inset(0);
  animation:sfgb-envelope-rise var(--sf-arrival) cubic-bezier(.25,.68,.24,1) both!important;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sfg-front{
  animation:sfgb-front-fade var(--sf-arrival) ease both;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sfg-back{
  animation:sfgb-back-away var(--sf-arrival) ease both;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sf-soul-stage::after{
  background:radial-gradient(ellipse at 50% 46%,#fff1c79c 0%,#fff0d83d 35%,transparent 70%);
  animation:sfgb-warm-glow var(--sf-arrival) ease both;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .journey-object.is-opening{
  top:46%;
  width:min(76cqw,calc(46cqh * var(--sf-envelope-ratio,1.48)),25rem);
  z-index:30;
  opacity:1;
  transform:translate(-50%,-50%);
  clip-path:none;
  overflow:visible;
  filter:none;
  animation:none!important;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .delivery-scene.is-revealing .sf-soul-stage{
  opacity:1;
  transition:none;
}
@keyframes sfgb-lid-lift{
  0%,14%{opacity:1;transform:translateX(-50%) translateY(0) rotate(0)}
  48%{opacity:1;transform:translate(-54%,-38%) rotate(-5deg)}
  72%{opacity:.72;transform:translate(-72%,-86%) rotate(-9deg)}
  88%,100%{opacity:0;transform:translate(-88%,-112%) rotate(-12deg)}
}
@keyframes sfgb-envelope-rise{
  0%,20%{opacity:0;transform:translate(-50%,calc(-50% + 25cqh)) scale(.64)}
  26%{opacity:1;transform:translate(-50%,calc(-50% + 24cqh)) scale(.66)}
  63%{opacity:1;transform:translate(-50%,calc(-50% + 9cqh)) scale(.8)}
  90%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes sfgb-front-fade{
  0%,78%{opacity:1;transform:translateY(0)}
  100%{opacity:0;transform:translateY(13cqh)}
}
@keyframes sfgb-back-away{
  0%,84%{opacity:1;transform:translateY(0)}
  100%{opacity:0;transform:translateY(10cqh)}
}
@keyframes sfgb-warm-glow{
  0%,18%{opacity:0;transform:scale(.88)}
  46%{opacity:.72;transform:scale(1)}
  80%{opacity:.48;transform:scale(1.08)}
  100%{opacity:0;transform:scale(1.14)}
}
@media(prefers-reduced-motion:reduce){
  .ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"]:not(.motion-enabled) .sf-soul-stage::after{animation:none!important}
}


/* Gift-box mobile fit: keep the whole reveal on a soft pearl canvas and make the envelope rise clearly from inside the box. */
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"]{
  --sf-giftbox-wash:radial-gradient(ellipse at 50% 43%,#fffdf8 0%,#f3edf2 57%,#e4ecee 100%);
  background:var(--sf-giftbox-wash)!important;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .delivery-scene,
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .card-world{
  background:var(--sf-giftbox-wash)!important;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .journey-object.sf-emerging-envelope:not(.is-opening),
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .journey-object.is-opening{
  width:min(62cqw,calc(44cqh * var(--sf-envelope-ratio,1.48)),24rem);
  top:48%;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sfg-lid{
  animation-name:sfgb-lid-lift-v4;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sfg-front{
  animation-name:sfgb-front-fade-v4;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .is-running .sfg-back{
  animation-name:sfgb-back-away-v4;
}
.ecard-player.sf-soul-reveal[data-sf-delivery="giftbox"] .journey-object.sf-emerging-envelope:not(.is-opening){
  animation-name:sfgb-envelope-rise-v4!important;
}
@keyframes sfgb-lid-lift-v4{
  0%,14%{opacity:1;transform:translate(-50%,-50%) rotate(0)}
  48%{opacity:1;transform:translate(-50%,calc(-50% - 2cqh)) rotate(-2deg)}
  74%{opacity:.9;transform:translate(-51%,calc(-50% - 10cqh)) rotate(-6deg)}
  100%{opacity:.2;transform:translate(-52%,calc(-50% - 14cqh)) rotate(-8deg)}
}
@keyframes sfgb-envelope-rise-v4{
  0%,50%{opacity:0;transform:translate(-50%,calc(-50% + 26cqh)) scale(.58)}
  60%{opacity:1;transform:translate(-50%,calc(-50% + 23cqh)) scale(.66)}
  84%{opacity:1;transform:translate(-50%,calc(-50% + 7cqh)) scale(.88)}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes sfgb-front-fade-v4{
  0%,58%{opacity:1;transform:translate(-50%,-50%)}
  82%{opacity:.82;transform:translate(-50%,calc(-50% + 3cqh))}
  100%{opacity:0;transform:translate(-50%,calc(-50% + 14cqh))}
}
@keyframes sfgb-back-away-v4{
  0%,78%{opacity:1;transform:translate(-50%,-50%)}
  100%{opacity:0;transform:translate(-50%,calc(-50% + 10cqh))}
}

/* In the creator iframe, fill the preview frame; keep the card artwork itself at its original proportions. */
.ecard-player.sf-soul-reveal[data-preview="1"][data-sf-delivery="giftbox"]{
  width:100%!important;
  height:100dvh!important;
  aspect-ratio:auto!important;
  max-width:none!important;
  max-height:100dvh!important;
}
