/* Personal gold lettering sits on the envelope, and leaves with it when the card opens. */
.sf-original-card .journey-object{container-type:inline-size}
.sf-envelope-lettering{display:none}
.sf-original-card .sf-envelope-lettering{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;inset:20% 16% 43%;gap:2.5cqw;pointer-events:none;isolation:isolate;text-align:center}
.sf-envelope-recipient,.sf-envelope-love{position:relative;display:block;max-width:100%;color:#b99546;background:linear-gradient(115deg,#9f702c 4%,#f3d998 27%,#c59c4e 45%,#fff0bc 57%,#af8137 78%,#ecd392 96%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 1px #37210835);line-height:1.05}
.sf-envelope-recipient{font-family:'Playfair Display',Georgia,serif;font-size:calc(9.5cqw * var(--sf-recipient-scale,1));font-weight:500;overflow-wrap:anywhere;letter-spacing:.01em}
.sf-envelope-love{font-family:Allura,'Brush Script MT',cursive;font-size:9cqw;font-weight:400;line-height:1.1;white-space:nowrap}
.sf-envelope-sparkle{position:absolute;color:#f6dda1;font-size:4cqw;line-height:1;text-shadow:0 0 7px #f1cd78b0;animation:sf-gold-twinkle 4.8s ease-in-out infinite;transform-origin:center}
.sf-sparkle-one{left:1%;top:28%;animation-delay:.2s}
.sf-sparkle-two{right:1%;top:8%;font-size:5cqw;animation-delay:1.6s}
.sf-sparkle-three{right:10%;bottom:-12%;font-size:2.8cqw;animation-delay:3s}
.sf-waiting .sf-envelope-sparkle{animation-play-state:paused}
@keyframes sf-gold-twinkle{0%,100%{opacity:.38;transform:scale(.78) rotate(0deg)}45%{opacity:1;transform:scale(1.12) rotate(12deg)}65%{opacity:.6;transform:scale(.9) rotate(4deg)}}
@media(prefers-reduced-motion:reduce){.sf-envelope-sparkle{animation:none;opacity:.8}}
/* The addressed face and flap face share one envelope surface. */
.sf-original-card .sf-envelope-lettering{inset:25% 16% 22%;gap:3cqw}
.ecard-player.sf-original-card .journey-envelope-back{transform-origin:50% 50%;will-change:transform;background-size:100% 100%!important;background-repeat:no-repeat!important}
/* Balloons uncover the addressed envelope before the same turn-and-open sequence. */
.ecard-player.sf-soul-reveal[data-sf-delivery=silk] .sfl-carrier .journey-object{height:auto;aspect-ratio:1.48;overflow:visible}
.ecard-player.sf-soul-reveal[data-sf-delivery=silk] .sfl-carrier .journey-envelope-back{display:block!important}
.ecard-player.sf-soul-reveal[data-sf-delivery=silk] .is-running .sfl-carrier .journey-object:not(.is-opening) .journey-envelope-back{animation:sf-balloon-envelope-arrive 12.5s ease both}
.ecard-player.sf-soul-reveal[data-sf-delivery=silk] .sfl-carrier .journey-object:not(.is-opening) .journey-card{opacity:0!important;animation:none!important}
.ecard-player.sf-soul-reveal[data-sf-delivery=silk] .sfl-carrier .journey-object.is-opening .journey-envelope-back{animation:sf-envelope-release 8s ease both}
.ecard-player.sf-soul-reveal[data-sf-delivery=silk] .sfl-carrier .journey-object.is-opening .journey-card{width:min(48dvh,80vw);height:72dvh;top:50%;left:50%;animation:sf-slide-through-opening 8s ease both}
@keyframes sf-balloon-envelope-arrive{0%,42%{opacity:0}66%,100%{opacity:1}}

.ecard-player.sf-original-card .journey-object:not(.is-opening)>:is(.journey-envelope-front,.journey-envelope-flap,.journey-name,.journey-wax,.sf-refined-pocket){display:none!important}
.ecard-player.sf-original-card .journey-object.sf-turning-envelope{clip-path:none!important;overflow:visible!important}

/* One real envelope is present for every reveal, including balloons and butterflies. */
.ecard-player.sf-original-card[data-sf-delivery] .sf-soul-stage .journey-object>.journey-envelope-back{display:block!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.ecard-player.sf-original-card[data-sf-delivery] .sf-soul-stage .journey-object:not(.is-opening)>.journey-card{opacity:0!important;visibility:hidden!important;animation:none!important}
.ecard-player.sf-original-card[data-sf-delivery] .sf-soul-stage .journey-object.sf-envelope-ready:not(.is-opening){opacity:1!important;visibility:visible!important;clip-path:none!important;animation:none!important;top:44%;transform:translate(-50%,-50%)!important}
.ecard-player.sf-original-card .sf-envelope-front-face,.ecard-player.sf-original-card .sf-envelope-reverse-face{box-shadow:0 14px 28px #31525328}
/* Fade every keepsake-heart layer, including the bottom shell, before the envelope turns. */
.ecard-player[data-sf-delivery=heart] :is(.sfh-shell,.sfh-lining,.sfh-case-front,.sfh-glow,.sfh-sparks,.sf-soul-heart){transition:opacity 450ms ease,filter 450ms ease}
.ecard-player.sf-envelope-presented[data-sf-delivery=heart] :is(.sfh-shell,.sfh-lining,.sfh-case-front,.sfh-glow,.sfh-sparks,.sf-soul-heart){opacity:0!important;filter:none!important;pointer-events:none!important}

/* The animated flap exists only on the reverse when opening begins. */
.ecard-player.sf-original-card[data-sf-delivery] .sf-soul-stage .journey-object:not(.is-opening)>.journey-envelope-back::before,
.ecard-player.sf-original-card[data-sf-delivery] .sf-soul-stage .journey-object:not(.is-opening)>.journey-envelope-back::after{display:none!important;content:none!important}
