/* Landing-only motion: visible by default, no loading overlay or layout shifts. */
.landing-motion .top{transition:box-shadow .25s ease,background-color .25s ease}
.landing-motion.is-scrolled .top{box-shadow:0 4px 22px #202b2710}
@media(prefers-reduced-motion:no-preference){
 .landing-motion .hero>.wrap>div:first-child,.landing-motion .hero .phone,.landing-motion .hero .card-stack{animation:none}
 .landing-motion .hero h1 em,.landing-motion .hero h1 .hl{display:inline;background-image:linear-gradient(transparent 85%,var(--choplah-yellow-soft,#d7e5a2) 85%);background-repeat:no-repeat;background-size:100% 100%;animation:landing-underline .85s cubic-bezier(.22,1,.36,1) .2s both}
 .landing-motion .hero .phone,.landing-motion .hero .card-stack{animation:landing-float 6s ease-in-out .7s infinite}
 .landing-motion .receipt{animation:landing-receipt .6s cubic-bezier(.16,1,.3,1) .5s both}
 .landing-motion .plan,.landing-motion .fee,.landing-motion .place,.landing-motion .step,.landing-motion .tier,.landing-motion .box{transition:translate .25s cubic-bezier(.22,1,.36,1),border-color .25s ease,box-shadow .25s ease}
 .landing-motion .btn,.landing-motion .chop-btn{transition:translate .2s ease,scale .2s ease,box-shadow .2s ease,background-color .2s ease}
 .landing-motion .btn:active,.landing-motion .chop-btn:active{scale:.97;translate:0 1px}
 .landing-motion .btn:focus-visible,.landing-motion .chop-btn:focus-visible{outline:3px solid var(--choplah-primary,#315e4a);outline-offset:5px}
 .landing-motion .slot.gift{animation:landing-gift 5s ease-in-out .8s infinite}
 @media(hover:hover) and (pointer:fine){
  .landing-motion .plan:hover,.landing-motion .place:hover,.landing-motion .tier:hover,.landing-motion .box:hover{translate:0 -5px;box-shadow:0 12px 28px #202b2710;border-color:var(--choplah-primary,#315e4a)}
  .landing-motion .fee:hover,.landing-motion .step:hover{translate:0 -3px}
  .landing-motion .btn:hover,.landing-motion .chop-btn:hover{translate:0 -2px;box-shadow:0 6px 18px #202b2714}
 }
 @supports(animation-timeline:scroll()){
  .landing-motion::before{content:"";position:fixed;inset:0 0 auto;height:3px;background:var(--choplah-primary,#315e4a);transform-origin:left;z-index:1001;pointer-events:none;animation:landing-progress linear both;animation-timeline:scroll(root)}
 }
 @keyframes landing-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
 @keyframes landing-receipt{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
 @keyframes landing-underline{from{background-size:0% 100%}to{background-size:100% 100%}}
 @keyframes landing-gift{0%,100%{box-shadow:0 0 0 0 #cfaa6100}45%{box-shadow:0 0 0 9px #cfaa6125}}
 @keyframes landing-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}
@media(prefers-reduced-motion:reduce){
 .landing-motion *,.landing-motion::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Scroll-linked movement uses transforms, so card sizes and tap targets stay fixed. */
.landing-motion-control{position:fixed;right:16px;bottom:18px;z-index:900;min-height:44px;padding:10px 16px;border:1px solid var(--choplah-line,#dbe2d7);border-radius:999px;background:var(--choplah-surface,#fff);color:var(--choplah-ink,#202b27);box-shadow:0 4px 20px #202b2710;font:600 13px/1.4 var(--body,system-ui);cursor:pointer}
.landing-motion-control[hidden]{display:none}
.landing-motion-control:focus-visible{outline:3px solid #315e4a;outline-offset:4px}
@media(prefers-reduced-motion:no-preference){
 .landing-motion [data-scroll-motion]{transform:translate3d(0,var(--landing-parallax,0px),0)}
 .landing-motion .hero .receipt{animation:landing-receipt .6s cubic-bezier(.16,1,.3,1) .5s both,landing-receipt-drift 6s ease-in-out 1.1s infinite}
 .landing-motion.motion-paused *,.landing-motion.motion-background *,.landing-motion.motion-paused::before,.landing-motion.motion-background::before{animation-play-state:paused!important}
 .landing-motion .hero.is-out-of-view .phone,.landing-motion .hero.is-out-of-view .card-stack,.landing-motion .hero.is-out-of-view .receipt,.landing-motion .hero.is-out-of-view .slot.gift{animation-play-state:paused}
 @keyframes landing-receipt-drift{0%,100%{translate:0 0}50%{translate:0 -5px}}
 @media(max-width:640px){@keyframes landing-float{0%,100%{translate:0 0}50%{translate:0 -5px}}}
}
