/* Reflective foil hearts stay at the edges. The clear centre protects every note. */
:where([data-love-garden]){position:relative;isolation:isolate}
.love-air{position:absolute;inset:0;overflow:clip;pointer-events:none!important;user-select:none;z-index:0;contain:layout paint}
.love-air *{pointer-events:none!important}
.love-air:before,.love-air:after{content:'';position:absolute;z-index:1;width:17px;height:17px;pointer-events:none!important;background:radial-gradient(circle,#fff 0 23%,#fff8ec 45%,#ffdbeb 100%);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 4px #fff8);opacity:.32;animation:love-glint-shimmer 6.8s -1.7s ease-in-out infinite;animation-play-state:paused}
.love-air:before{left:3.1%;top:30%}
.love-air:after{right:3.4%;top:71%;width:13px;height:13px;animation-duration:8.3s;animation-delay:-5.2s}
.love-in-view>.love-air:before,.love-in-view>.love-air:after{animation-play-state:running}
.love-paused .love-air:before,.love-paused .love-air:after{animation-play-state:paused!important}
.love-balloon{--drift-scale:1;--sway-scale:.5;position:absolute;top:clamp(92px,var(--float-top,35%),calc(100% - 230px));width:min(var(--float-width,78px),clamp(34px,calc(7vw - 26px),83px));height:auto;opacity:1;transform-origin:50% 20%;animation:love-balloon-wander var(--float-time,11s) var(--float-delay,0s) ease-in-out infinite;animation-play-state:paused;filter:drop-shadow(0 8px 7px #ab648219);backface-visibility:hidden}
.love-balloon.is-left{left:var(--float-edge,12px)}
.love-balloon.is-right{right:var(--float-edge,12px)}
.love-in-view .love-balloon{animation-play-state:running}
.love-paused .love-balloon{animation-play-state:paused!important}
.love-hug-active .love-balloon{visibility:hidden}
.film-hero>.love-air{display:none}
.delivery>.love-air{left:calc((100vw - 100%)/-2);right:calc((100vw - 100%)/-2)}
.delivery>.section-intro,.delivery>.letter-layout,.memory-reel-copy,.memory-reel-footer{position:relative;z-index:2}
.tea-pour-sticky>.love-air{z-index:0}
.teddy-moment{position:relative;margin:2px auto 10px;width:min(440px,100%);isolation:isolate}
.teddy-stage{position:relative;aspect-ratio:4/3;margin:-14px -15px -23px;pointer-events:none;mask-image:radial-gradient(ellipse 50% 47% at 50% 47%,#000 55%,#000d 71%,transparent 99%);-webkit-mask-image:radial-gradient(ellipse 50% 47% at 50% 47%,#000 55%,#000d 71%,transparent 99%)}
.teddy-stage>img,.teddy-stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.teddy-stage>video{opacity:0;transition:opacity .5s}
.teddy-moment.has-motion .teddy-stage>video{opacity:1}
.teddy-moment.is-still .teddy-stage>video{opacity:0}
.teddy-moment figcaption{position:relative;z-index:1;min-height:33px;font-family:var(--hand);font-size:29px;font-weight:600;line-height:1.2;color:#965c49;transform:rotate(-2deg);text-wrap:balance}
.teddy-controls{position:relative;z-index:4;display:flex;align-items:center;justify-content:center;gap:15px;margin:12px 0 15px}
.teddy-controls button{border:0;background:transparent;font:600 12px var(--sans);color:#586247;min-height:44px;padding:6px 10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;border-radius:30px;transition:background .25s,transform .25s}
.teddy-controls .teddy-hug{border:1px solid #bbad9366;background:#f9f4e85c;padding-inline:17px}
.teddy-controls button:hover{background:#fff8eab3;transform:translateY(-1px)}
.teddy-controls button:focus-visible{outline:3px solid #a44630;outline-offset:3px}
.teddy-controls svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.teddy-controls .teddy-motion{font-weight:500;font-size:11px;gap:6px}
.teddy-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hug-air{position:absolute;inset:0;z-index:3;pointer-events:none!important;overflow:visible}
.hug-balloon{position:absolute;left:var(--hug-x,50%);bottom:12%;width:var(--hug-size,42px);height:auto;opacity:1;animation:love-hug-lift 3.3s var(--hug-delay,0s) cubic-bezier(.2,.55,.4,1) both;pointer-events:none!important}
.closing .closing-message{margin-top:19px}
@keyframes love-balloon-wander{
  0%,100%{transform:perspective(480px) translate3d(calc(var(--x0,0px) * var(--sway-scale)),calc(var(--y0,0px) * var(--drift-scale)),0) rotate(var(--r0,-6deg)) rotateY(-8deg)}
  21%{transform:perspective(480px) translate3d(calc(var(--x1,10px) * var(--sway-scale)),calc(var(--y1,-58px) * var(--drift-scale)),4px) rotate(var(--r1,8deg)) rotateY(10deg)}
  43%{transform:perspective(480px) translate3d(calc(var(--x2,-7px) * var(--sway-scale)),calc(var(--y2,49px) * var(--drift-scale)),0) rotate(var(--r2,-9deg)) rotateY(-5deg)}
  68%{transform:perspective(480px) translate3d(calc(var(--x3,13px) * var(--sway-scale)),calc(var(--y3,-38px) * var(--drift-scale)),3px) rotate(var(--r3,10deg)) rotateY(8deg)}
  84%{transform:perspective(480px) translate3d(calc(var(--x4,-5px) * var(--sway-scale)),calc(var(--y4,55px) * var(--drift-scale)),0) rotate(var(--r4,-7deg)) rotateY(-6deg)}
}
@keyframes love-glint-shimmer{0%,100%{opacity:.24;transform:scale(.72) rotate(-7deg)}48%{opacity:.85;transform:scale(1.12) rotate(8deg)}}
@keyframes love-hug-lift{0%{transform:translate(0,15px) rotate(-9deg) scale(.35)}90%{transform:translate(var(--hug-drift,30px),-210px) rotate(13deg) scale(1)}100%{transform:translate(var(--hug-drift,30px),-240px) rotate(15deg) scale(.01)}}
@media(max-width:740px){
  .love-air:before{left:17px;width:12px;height:12px}.love-air:after{right:15px;width:10px;height:10px}
  .love-balloon{--drift-scale:.72;top:clamp(75px,var(--float-top,35%),calc(100% - 135px));width:var(--float-mobile-width,40px);opacity:1;filter:drop-shadow(0 5px 5px #b45e8c17)}
  .love-balloon.is-left{left:8px}.love-balloon.is-right{right:8px}
  .love-balloon:nth-child(n+4){display:none}
  .teddy-moment{width:min(340px,100%);margin-top:10px}.teddy-stage{margin:-15px -10px -18px}.teddy-moment figcaption{font-size:27px}.teddy-controls{gap:5px;margin-top:8px}.teddy-controls button{font-size:11px;padding-inline:12px}.teddy-controls .teddy-motion{font-size:10px;padding-inline:6px}
}
/* On very narrow phones, full-size hearts peek from the edge instead of
   crossing the 22px text gutter or being reduced to tiny decorations. */
@media(max-width:374px){
  .love-balloon{width:44px;--sway-scale:.12;--r0:0deg!important;--r1:0deg!important;--r2:0deg!important;--r3:0deg!important;--r4:0deg!important}
  .love-balloon.is-left{left:-24px}.love-balloon.is-right{right:-24px}
}
@media(prefers-reduced-motion:reduce){.love-air:before,.love-air:after{animation:none;opacity:.4;transform:none}.love-balloon{animation:none;transform:rotate(-4deg);opacity:1}.love-balloon:nth-child(2n){transform:rotate(5deg)}.hug-air{display:none}.teddy-stage>video{display:none}.teddy-controls .teddy-motion{display:none}.teddy-controls button{transition:none}.teddy-controls button:hover{transform:none}}
