/* Separate translate/scale preserve the photograph, stockist and form rotations. */
.motion-ready main{overflow-x:clip}
.scroll-progress{display:none;position:fixed;inset:0 0 auto;height:3px;z-index:60;pointer-events:none;background:transparent}
.motion-ready .scroll-progress{display:block}
.scroll-progress>span{display:block;height:100%;background:var(--ink);box-shadow:0 1px 0 #f9dd4980;transform:scaleX(0);transform-origin:left}
.motion-item{
 --enter-x:0px;--enter-y:54px;
 --overshoot-x:0px;--overshoot-y:-8px;
 --rebound-x:0px;--rebound-y:3px;
 --motion-delay:0ms;
}
.motion-from-left{--enter-x:clamp(-140px,-9vw,-75px);--enter-y:16px;--overshoot-x:12px;--overshoot-y:-2px;--rebound-x:-4px;--rebound-y:1px}
.motion-from-right{--enter-x:clamp(75px,9vw,140px);--enter-y:16px;--overshoot-x:-12px;--overshoot-y:-2px;--rebound-x:4px;--rebound-y:1px}
.motion-delay-1{--motion-delay:90ms}
.motion-delay-2{--motion-delay:180ms}
.motion-delay-3{--motion-delay:270ms}
.motion-delay-4{--motion-delay:360ms}
.motion-pending{opacity:0;translate:var(--enter-x) var(--enter-y);scale:.975}
.motion-enter{animation:frsca-spring-in 1020ms var(--motion-delay) both;will-change:translate,scale,opacity}
@keyframes frsca-spring-in{
 0%{opacity:0;translate:var(--enter-x) var(--enter-y);scale:.975;animation-timing-function:cubic-bezier(.18,.72,.2,1)}
 55%{opacity:1;translate:var(--overshoot-x) var(--overshoot-y);scale:1.008;animation-timing-function:cubic-bezier(.36,0,.36,1)}
 77%{opacity:1;translate:var(--rebound-x) var(--rebound-y);scale:.999;animation-timing-function:cubic-bezier(.3,0,.25,1)}
 100%{opacity:1;translate:0 0;scale:1}
}
.hero-photo.motion-enter .fruit-stamp{animation:frsca-stamp-in 700ms 140ms both}
.hero-photo.motion-enter .hero-image{animation:frsca-photo-in 1000ms cubic-bezier(.16,1,.3,1) both}
.heading-aside.motion-enter .sun-icon,.stockist-copy.motion-enter h2>svg{animation:frsca-sun-in 850ms 90ms cubic-bezier(.16,1,.3,1) both}
.stockist-card.motion-enter .location-pin{transform-box:fill-box;transform-origin:50% 100%;animation:frsca-pin-in 650ms 220ms both}
@keyframes frsca-stamp-in{
 0%{scale:.65;rotate:-24deg;opacity:0;animation-timing-function:cubic-bezier(.15,.7,.24,1)}
 65%{scale:1.09;rotate:5deg;opacity:1;animation-timing-function:ease-in-out}
 100%{scale:1;rotate:0deg;opacity:1}
}
@keyframes frsca-photo-in{from{scale:1.08}to{scale:1}}
@keyframes frsca-sun-in{from{rotate:-115deg}to{rotate:0deg}}
@keyframes frsca-pin-in{
 0%{translate:0 -24px;scale:.9;animation-timing-function:cubic-bezier(.25,.65,.3,1)}
 55%{translate:0 4px;scale:1.035;animation-timing-function:ease-in-out}
 78%{translate:0 -3px;scale:.99;animation-timing-function:ease-in-out}
 100%{translate:0 0;scale:1}
}
/* Inline letters retain word wrapping and kerning. Relative top makes a small
   traveling wave without changing line boxes or the heading's measured height. */
.headline-ready{--letter-step:22ms;--letter-duration:420ms;--letter-lead:140ms}
.headline-ready .headline-letter{position:relative;color:inherit;top:0}
.headline-pending .headline-letter{opacity:0}
.headline-playing .headline-letter{
 animation:frsca-letter-in var(--letter-duration) cubic-bezier(.2,.8,.2,1) both;
 animation-delay:calc(var(--letter-lead) + var(--motion-delay,0ms) + var(--letter-order) * var(--letter-step));
}
.headline-playing .outline-text .headline-letter{animation-name:frsca-letter-in,frsca-outline-fill}
@keyframes frsca-letter-in{
 0%{opacity:0;top:.13em;text-shadow:none}
 22%{opacity:1;top:-.085em;text-shadow:0 .018em 0 currentColor}
 55%{opacity:1;top:-.035em;text-shadow:0 .012em 0 currentColor}
 78%{opacity:1;top:.012em;text-shadow:none}
 100%{opacity:1;top:0;text-shadow:none}
}
@keyframes frsca-outline-fill{
 0%,100%{color:transparent}
 22%,45%{color:var(--ink)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .stockist-card{transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s cubic-bezier(.2,.8,.2,1)}
 .stockist-card:hover{transform:rotate(-.35deg) translateY(-4px);box-shadow:12px 14px 0 var(--ink)}
 .photo-caption a,.footer-social,.photo-zoom{transition:transform .45s cubic-bezier(.2,.9,.3,1.35),background .2s,color .2s}
 .photo-caption a:hover,.footer-social:hover{transform:rotate(-8deg) scale(1.07)}
 .flavor-photo:hover .photo-zoom{transform:rotate(90deg)}
}
@media(max-width:760px){
 .motion-item{--enter-y:32px;--overshoot-y:-5px;--rebound-y:2px}
 .motion-from-left{--enter-x:-48px;--enter-y:10px;--overshoot-x:6px;--overshoot-y:-1px;--rebound-x:-2px}
 .motion-from-right{--enter-x:48px;--enter-y:10px;--overshoot-x:-6px;--overshoot-y:-1px;--rebound-x:2px}
 .motion-delay-1{--motion-delay:55ms}.motion-delay-2{--motion-delay:110ms}
 .motion-delay-3{--motion-delay:165ms}.motion-delay-4{--motion-delay:220ms}
 .motion-enter{animation-duration:850ms}
 .hero-photo.motion-enter .fruit-stamp{animation-duration:580ms;animation-delay:90ms}
 .hero-photo.motion-enter .hero-image{animation-duration:800ms}
 .stockist-card.motion-enter .location-pin{animation-duration:550ms;animation-delay:140ms}
 .heading-aside.motion-enter .sun-icon,.stockist-copy.motion-enter h2>svg{animation-duration:700ms;animation-delay:70ms}
 .headline-ready{--letter-step:18ms;--letter-duration:360ms;--letter-lead:100ms}
}
@media(prefers-reduced-motion:reduce){
 .motion-pending,.motion-enter{opacity:1;translate:none;scale:none;animation:none!important;will-change:auto}
 .motion-ready .scroll-progress{display:none}
 .headline-ready .headline-letter{opacity:1;top:0;text-shadow:none;animation:none!important}
}
@media print{
 .scroll-progress{display:none!important}
 .motion-pending,.motion-enter{opacity:1;translate:none;scale:none;animation:none!important;will-change:auto}
 .motion-ready main{overflow:visible}
 .headline-ready .headline-letter{opacity:1;top:0;text-shadow:none;animation:none!important}
}
