/* Starlight Embrace: one unhurried scene, with the stationery in focus. */
.sf-starlight-streams,.sf-starlight-sparks{display:none;pointer-events:none}
.sf-soul-reveal[data-sf-delivery=starlight] .sf-soul-stage{background:radial-gradient(ellipse at 50% 42%,#fffdf8 0%,#faf3ee 38%,#eee5ef 76%,#e4e2ed 100%)}
.sf-soul-reveal[data-sf-delivery=starlight] :is(.sf-soul-heart,.sf-soul-halo,.sf-soul-water,.sf-soul-dust,.sf-soul-petals,.sf-soul-veil){display:none}
.sf-soul-reveal[data-sf-delivery=starlight] .sf-starlight-streams{display:block;position:absolute;inset:0;z-index:28;overflow:hidden}
.sf-starlight-streams svg{width:100%;height:100%;overflow:visible}
.sf-starlight-ribbon{transform-box:view-box;transform-origin:center;opacity:0}
.sf-soul-reveal[data-sf-delivery=starlight] .is-running .sf-starlight-ribbon-left{animation:sf-fine-light-left 12s cubic-bezier(.22,.65,.3,1) both}
.sf-soul-reveal[data-sf-delivery=starlight] .is-running .sf-starlight-ribbon-right{animation:sf-fine-light-right 12s cubic-bezier(.22,.65,.3,1) both}
.sf-soul-reveal[data-sf-delivery=starlight] .sf-starlight-sparks{display:block;position:absolute;inset:20% 10% 30%;z-index:29}
.sf-starlight-sparks i{position:absolute;left:var(--sx);top:var(--sy);width:2px;height:2px;border-radius:50%;background:#fff8dc;box-shadow:0 0 6px 1px #c2a56c88;opacity:0}
.sf-starlight-sparks i:nth-child(n+15){display:none}
.sf-soul-reveal[data-sf-delivery=starlight] .is-running .sf-starlight-sparks i{animation:sf-fine-spark 10s ease both;animation-delay:calc(var(--spark)*.07s)}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.sf-emerging-envelope{top:46%;width:min(70vw,calc(29dvh * var(--sf-envelope-ratio,1.48)),23rem);animation:sf-focus-envelope 12s cubic-bezier(.22,.65,.3,1) both;z-index:31;filter:none;transform-style:flat}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back{border-radius:2px;box-shadow:0 2px 3px #65515a22,0 10px 22px #65515a16;background-color:transparent;overflow:visible;isolation:isolate}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening{animation:none;top:46%;width:min(70vw,calc(29dvh * var(--sf-envelope-ratio,1.48)),23rem);opacity:1;transform:translate(-50%,-50%);clip-path:none;overflow:visible;filter:none;transform-style:flat}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening .journey-envelope-back{animation:sf-focus-envelope-away 6s ease both}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back::before,.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back::after{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 58%);pointer-events:none}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back::before{background-image:var(--sf-envelope-art);background-size:100% 100%;transform-origin:50% 0;z-index:2;backface-visibility:hidden}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back::after{background:linear-gradient(175deg,#ece2dc,#fffaf0);opacity:0;z-index:1}
.sf-soul-reveal[data-sf-delivery=starlight] .is-opening .journey-envelope-back::before{animation:sf-focus-flap 6s cubic-bezier(.3,.1,.25,1) both}
.sf-soul-reveal[data-sf-delivery=starlight] .is-opening .journey-envelope-back::after{animation:sf-focus-lining 6s ease both}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening .journey-card{width:min(48dvh,80vw);height:72dvh;background:transparent;border-radius:1px;animation:sf-focus-card 6s cubic-bezier(.22,.65,.3,1) both;overflow:visible;z-index:3}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening .journey-card img{object-fit:contain;filter:drop-shadow(0 3px 6px #63536820)}
.sf-soul-reveal[data-sf-delivery=starlight] .delivery-caption{color:#695568;font-family:Georgia,serif;font-style:italic;font-size:clamp(.85rem,3vw,1.05rem);letter-spacing:.01em;bottom:12%;z-index:40}
.sf-soul-reveal[data-sf-delivery=starlight] .delivery-scene.is-revealing .sf-soul-stage{transition:opacity 6s ease;opacity:.45}
@keyframes sf-fine-light-left{0%{opacity:0;transform:translate(-15%,18%) rotate(-10deg) scale(.8)}22%{opacity:.9}55%{opacity:.75;transform:translate(0,0) rotate(0) scale(1)}78%,100%{opacity:0;transform:translate(-10%,-8%) rotate(7deg) scale(1.12)}}
@keyframes sf-fine-light-right{0%{opacity:0;transform:translate(15%,-12%) rotate(10deg) scale(.8)}22%{opacity:.75}55%{opacity:.6;transform:translate(0,0) rotate(0) scale(1)}78%,100%{opacity:0;transform:translate(10%,8%) rotate(-7deg) scale(1.12)}}
@keyframes sf-fine-spark{0%,12%{opacity:0;transform:translateY(30px) scale(.5)}40%{opacity:.75}75%,100%{opacity:0;transform:translateY(-25px) scale(.5)}}
@keyframes sf-focus-envelope{0%,16%{opacity:0;transform:translate(-50%,-30%) scale(.88);clip-path:inset(100% -10% -10%)}42%{opacity:1;clip-path:inset(0 -10% -10%)}66%,100%{opacity:1;transform:translate(-50%,-50%) scale(1);clip-path:inset(-60% -10% -10%)}}
@keyframes sf-focus-flap{0%,7%{transform:perspective(900px) rotateX(0)}35%,100%{transform:perspective(900px) rotateX(180deg)}}
@keyframes sf-focus-lining{0%,8%{opacity:0}25%,100%{opacity:1}}
@keyframes sf-focus-envelope-away{0%,60%{opacity:1;transform:translateY(0)}88%,100%{opacity:0;transform:translateY(55px)}}
@keyframes sf-focus-card{0%,24%{opacity:0;transform:translate(-50%,-3%) scale(.46);clip-path:inset(0 0 100%)}38%{opacity:1;transform:translate(-50%,-21%) scale(.46);clip-path:inset(0 0 68%)}60%{opacity:1;transform:translate(-50%,-62%) scale(.56);clip-path:inset(0 0 0)}83%,100%{opacity:1;transform:translate(-50%,-50%) scale(1);clip-path:inset(0)}}
/* Existing slow scenes also use these shared opening keyframes. */
@keyframes sf-starlight-envelope{0%,28%{opacity:0;transform:translate(-50%,12%) scale(.58);filter:blur(10px) drop-shadow(0 0 30px #fff4dc);clip-path:inset(100% -20% -30%)}43%{opacity:.5;transform:translate(-50%,-14%) scale(.75);filter:blur(3px) drop-shadow(0 0 28px #fff4dc);clip-path:inset(38% -20% -30%)}72%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0) drop-shadow(0 20px 24px #906e9133);clip-path:inset(-40%)}100%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0) drop-shadow(0 20px 24px #906e9133);clip-path:inset(-40%)}}
@keyframes sf-starlight-flap{0%,8%{transform:perspective(600px) rotateX(0)}44%,100%{transform:perspective(600px) rotateX(180deg)}}
@keyframes sf-starlight-pocket{0%,8%{opacity:0}25%,100%{opacity:1}}
@keyframes sf-starlight-envelope-release{0%,54%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(45px) scale(.93)}}
@keyframes sf-starlight-card-release{0%,30%{opacity:0;transform:translate(-50%,-15%) scale(.58)}55%{opacity:1;transform:translate(-50%,-35%) scale(.73)}90%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.sf-soul-reveal[data-sf-delivery=starlight]:not(.motion-enabled) .sf-starlight-streams,.sf-soul-reveal[data-sf-delivery=starlight]:not(.motion-enabled) .sf-starlight-sparks{display:none}.sf-soul-reveal[data-sf-delivery=starlight]:not(.motion-enabled) .journey-object,.sf-soul-reveal[data-sf-delivery=starlight]:not(.motion-enabled) .journey-object *{animation:none!important}}

/* The landscape sleeve holds the card sideways, with a foreground pocket. */
.sf-refined-pocket{display:none}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.sf-emerging-envelope,
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening{width:min(76vw,46dvh,25rem);aspect-ratio:1.6;height:auto;top:46%;transform-style:flat}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.sf-emerging-envelope{animation-duration:4.6s}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back{z-index:1;background-size:cover;background-position:center;border-radius:2px}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-envelope-back::before{background-size:cover;background-position:center}
.sf-soul-reveal[data-sf-delivery=starlight] .sf-refined-pocket{display:block;position:absolute;inset:0;z-index:4;border-radius:2px;background-image:var(--sf-envelope-art);background-size:cover;background-position:center;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);filter:drop-shadow(0 -1px 1px #67556520)}
.sf-soul-reveal[data-sf-delivery=starlight] .is-opening .sf-refined-pocket{animation:sf-sleeve-away 6s ease both}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening .journey-envelope-back{animation:sf-sleeve-away 6s ease both}
.sf-soul-reveal[data-sf-delivery=starlight] .journey-object.is-opening .journey-card{animation:sf-slide-through-opening 6s cubic-bezier(.25,.55,.3,1) both;transform-origin:50% 50%;z-index:3;clip-path:none;overflow:visible}
.sf-soul-reveal[data-sf-delivery=starlight] .is-opening .journey-envelope-back::before{animation:sf-sleeve-flap 6s ease both}
.sf-soul-reveal[data-sf-delivery=starlight] .is-opening .journey-envelope-back::after{animation:sf-sleeve-lining 6s ease both}
.sf-soul-reveal[data-sf-delivery=starlight] .is-running .sf-starlight-ribbon-left,
.sf-soul-reveal[data-sf-delivery=starlight] .is-running .sf-starlight-ribbon-right{animation-duration:4.6s}
.sf-soul-reveal[data-sf-delivery=starlight] .is-running .sf-starlight-sparks i{animation-duration:4s;animation-delay:calc(var(--spark)*.015s)}
@keyframes sf-focus-envelope{0%{opacity:0;transform:translate(-50%,-35%) scale(.93);clip-path:inset(100% -10% -10%)}25%{opacity:1;clip-path:inset(0 -10% -10%)}72%,100%{opacity:1;transform:translate(-50%,-50%) scale(1);clip-path:inset(-60% -10% -10%)}}
@keyframes sf-sleeve-flap{0%,3%{transform:perspective(900px) rotateX(0)}24%,100%{transform:perspective(900px) rotateX(180deg)}}
@keyframes sf-sleeve-lining{0%,3%{opacity:0}17%,100%{opacity:1}}
@keyframes sf-sleeve-away{0%,63%{opacity:1;transform:translateY(0)}91%,100%{opacity:0;transform:translateY(45px)}}
@keyframes sf-slide-through-opening{
 0%,15%{opacity:0;top:50%;transform:translate(-50%,-50%) rotate(90deg) scale(.48)}
 20%{opacity:1;top:50%;transform:translate(-50%,-53%) rotate(90deg) scale(.48)}
 43%{opacity:1;top:50%;transform:translate(-50%,-69%) rotate(90deg) scale(.48)}
 62%,68%{opacity:1;top:50%;transform:translate(-50%,-91%) rotate(90deg) scale(.48)}
 94%,100%{opacity:1;top:50%;transform:translate(-50%,-50%) rotate(0) scale(1)}
}

/* Original covers already carry the brand in their artwork. Keep the extra logo badge off the moving and finished cover. */
.ecard-player.sf-original-card .journey-card > .media-watermark{display:none!important}
