/* Grub motion: real food cutouts, short feedback, native reduced-motion support. */
.grub-thinking{display:flex;align-items:center;gap:16px;background:linear-gradient(130deg,#edf7f0,#f8faf6);border:1px solid #dfece2;border-radius:22px;padding:16px;margin:14px 0;min-height:128px;overflow:hidden;contain:layout style}.motion-art{position:relative;flex:0 0 98px;height:98px;isolation:isolate;color:#759882}.motion-plate{position:absolute;inset:13px;border:1px solid #bfd5c6;background:#ffffffb8;box-shadow:inset 0 0 0 9px #f6faf5;border-radius:50%}.motion-food{position:absolute;width:39px;height:39px;object-fit:contain;filter:drop-shadow(0 3px 3px #18352312);will-change:transform;animation:grub-food-float 2.8s ease-in-out infinite}.motion-food-0{left:10px;top:26px;--food-y:-5px;--food-r:-9deg}.motion-food-1{left:44px;top:17px;--food-y:5px;--food-r:7deg;animation-delay:-.8s}.motion-food-2{left:39px;top:54px;--food-y:-4px;--food-r:-6deg;animation-delay:-1.6s}.motion-scan-line{position:absolute;left:8px;right:8px;top:10px;height:2px;background:linear-gradient(90deg,transparent,#7cba9a,transparent);box-shadow:0 4px 12px #98c9b433;animation:grub-scan 2.5s ease-in-out infinite;z-index:3}.motion-corner{position:absolute;width:13px;height:13px;border:solid #9abd9f}.motion-corner.c1{top:4px;left:4px;border-width:1.5px 0 0 1.5px;border-radius:7px 0 0}.motion-corner.c2{top:4px;right:4px;border-width:1.5px 1.5px 0 0;border-radius:0 7px 0 0}.motion-corner.c3{bottom:4px;left:4px;border-width:0 0 1.5px 1.5px;border-radius:0 0 0 7px}.motion-corner.c4{bottom:4px;right:4px;border-width:0 1.5px 1.5px 0;border-radius:0 0 7px}.motion-work-copy{min-width:0}.motion-work-copy strong{display:block;font-size:13px;line-height:1.5;color:#41614e;font-weight:600}.motion-work-copy small{display:block;font-size:11px;line-height:1.6;color:#859180;margin-top:7px}.motion-thinking-dots{display:inline-flex;gap:3px;margin-left:5px;vertical-align:middle}.motion-thinking-dots i{width:3px;height:3px;border-radius:50%;background:#92b29b;animation:grub-dot 1.3s ease-in-out infinite}.motion-thinking-dots i:nth-child(2){animation-delay:.16s}.motion-thinking-dots i:nth-child(3){animation-delay:.32s}.grub-is-thinking .photo-preview{opacity:.5;transition:opacity .3s}.motion-art-bag .motion-bag{position:absolute;inset:15px;width:70px;height:80px;animation:grub-bag-sway 2s ease-in-out infinite}.motion-art-bag .motion-food{width:28px;height:28px}.motion-art-bag .motion-food-0{left:14px;top:12px}.motion-art-bag .motion-food-1{left:48px;top:8px}.motion-art-bag .motion-food-2{left:34px;top:25px}.motion-art-pot .motion-pot{position:absolute;inset:0;width:98px;height:98px}.motion-art-pot .motion-food{width:25px;height:25px;animation:grub-pot-food 2.5s ease-in-out infinite}.motion-art-pot .motion-food-0{left:20px;top:5px}.motion-art-pot .motion-food-1{left:55px;top:10px;animation-delay:-1.25s}.motion-steam{animation:grub-steam 2.1s ease-in-out infinite;transform-origin:center}.steam-b{animation-delay:-.7s}.steam-c{animation-delay:-1.4s}.grub-success{position:fixed;z-index:10000;bottom:calc(110px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:13px;max-width:calc(100vw - 32px);width:320px;padding:14px 18px;background:#f3fbf5f5;border:1px solid #d3e7d9;border-radius:24px;box-shadow:0 14px 44px #163d2520;pointer-events:none;animation:grub-success-in .4s cubic-bezier(.2,.8,.2,1) both;backdrop-filter:blur(16px)}.grub-success strong{font-size:13px;color:#355744;display:block;font-weight:600}.grub-success small{font-size:10px;line-height:1.5;color:#7c917f;display:block;margin-top:5px}.motion-success-art{position:relative;flex:0 0 58px;height:65px;color:#729c7d}.motion-success-art .motion-bag{position:absolute;left:2px;top:2px;width:56px;height:62px;animation:grub-packed-bag .75s ease-out both;animation-delay:.4s}.motion-pack-food{position:absolute;width:27px;height:27px;object-fit:contain;left:16px;top:-9px;animation:grub-pack .7s cubic-bezier(.3,.7,.3,1) both}.pack-0{--pack-x:-25px;--pack-r:-24deg}.pack-1{--pack-x:18px;--pack-r:20deg;animation-delay:.13s}.pack-2{--pack-x:0px;--pack-r:-10deg;animation-delay:.26s}.motion-bag-check{stroke-dasharray:55;stroke-dashoffset:55;animation:grub-draw .4s ease-out .75s forwards}.motion-art-bag .motion-bag-check{animation:none;stroke-dashoffset:0;opacity:.3}.motion-done{width:56px;height:56px;animation:grub-check-pop .5s cubic-bezier(.2,.8,.2,1) both}.motion-done path{stroke-dasharray:45;stroke-dashoffset:45;animation:grub-draw .35s ease-out .15s forwards}.selection-sheet{animation:grub-sheet-in .24s cubic-bezier(.2,.8,.2,1)}.selection-option,.select-control,.progress-day,.focus-account{transition:background .22s ease,box-shadow .22s ease,transform .18s ease}.selection-option:active,.progress-day:active{transform:scale(.96)}.home-energy-track span,.daily-track span{transform-origin:left;animation:grub-fill .8s cubic-bezier(.2,.8,.2,1) both}.progress-trend polyline{stroke-dasharray:500;stroke-dashoffset:500;animation:grub-draw 1.15s ease-out forwards}.home-calorie strong,.home-macros strong,.progress-stats strong{animation:grub-numbers-in .45s ease-out both}.focus-camera{transition:background .3s ease,transform .3s ease}.focus-primary:hover .icon:first-child{animation:grub-camera-nod .45s ease-out}.photo-picker{transition:background .2s ease,border-color .2s ease,transform .2s ease}.photo-picker:active{transform:scale(.985)}.home-focus.hero{isolation:isolate}.home-focus.hero.meal-selected{background:radial-gradient(ellipse at 95% 0%,#743b2b 0%,#46261e 44%,#291b17 100%)}.home-focus.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 95% 0%,#365f50 0%,#203b32 44%,#101c18 100%);opacity:0;transition:opacity .5s ease;pointer-events:none}.home-focus.hero.meal-selected:after{opacity:1}.home-focus .focus-brand>span,.home-focus .focus-account,.home-focus .focus-foot{transition:color .4s ease,background .4s ease,border-color .4s ease}
@keyframes grub-food-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(var(--food-y,-5px)) rotate(var(--food-r,8deg))}}@keyframes grub-scan{0%,100%{transform:translateY(0);opacity:.25}50%{transform:translateY(74px);opacity:1}}@keyframes grub-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes grub-bag-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes grub-pot-food{0%{opacity:0;transform:translateY(-7px) rotate(-12deg)}25%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateY(31px) rotate(15deg)}}@keyframes grub-steam{0%,100%{opacity:.2;transform:translateY(2px)}50%{opacity:.8;transform:translateY(-3px)}}@keyframes grub-success-in{from{opacity:0;transform:translate(-50%,12px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}@keyframes grub-pack{0%{opacity:0;transform:translate(var(--pack-x),-12px) rotate(var(--pack-r)) scale(.8)}25%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(0,39px) rotate(0) scale(.65)}}@keyframes grub-packed-bag{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(3px) scale(1.07,.93)}65%{transform:translateY(-3px) scale(.98,1.02)}}@keyframes grub-draw{to{stroke-dashoffset:0}}@keyframes grub-check-pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes grub-sheet-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes grub-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes grub-numbers-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes grub-camera-nod{0%,100%{transform:rotate(0)}35%{transform:rotate(-8deg)}70%{transform:rotate(5deg)}}
@media(max-width:360px){.grub-thinking{padding:12px;gap:10px}.motion-art{flex-basis:86px;transform:scale(.9)}.motion-work-copy strong{font-size:12px}.grub-success{width:290px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.grub-thinking *,.grub-success,.grub-success *, .selection-sheet,.home-energy-track span,.daily-track span,.progress-trend polyline,.home-calorie strong,.home-macros strong,.progress-stats strong,.focus-primary:hover .icon:first-child{animation:none!important;will-change:auto!important}.motion-scan-line,.motion-pack-food{display:none}.motion-food{transform:none!important}.motion-bag-check,.motion-done path,.progress-trend polyline{stroke-dashoffset:0}.home-focus.hero:after,.home-focus .focus-brand>span,.home-focus .focus-account,.home-focus .focus-foot,.selection-option,.select-control,.progress-day,.photo-picker{transition:none!important}}

.grub-motion-paused .grub-thinking *{animation-play-state:paused!important}

.motion-art-bag .motion-bag-check{display:none}
:root{--grub-motion-mode:full}@media(prefers-reduced-motion:reduce){:root{--grub-motion-mode:reduced}}
/* Tactile growth on press, without affecting layout or sticky navigation centering. */
button:not(:disabled),.photo-picker,.selection-option,.select-control{transition:scale .18s cubic-bezier(.2,.8,.2,1),background .2s ease,box-shadow .2s ease;transform-origin:center}
button:not(:disabled):active,.photo-picker:active,.selection-option:active,.select-control:active{scale:1.035;transform:none}
button.nav-item:not(:disabled):active{scale:1.045}
button.close:not(:disabled):active,.selection-close:not(:disabled):active,.focus-account:not(:disabled):active{scale:1.08}
@media(hover:hover) and (pointer:fine){button:not(:disabled):hover,.photo-picker:hover{scale:1.015}button:not(:disabled):active,.photo-picker:active{scale:1.035}}
@media(prefers-reduced-motion:reduce){button:not(:disabled),.photo-picker,.selection-option,.select-control{transition:background .15s ease!important}button:not(:disabled):active,.photo-picker:active,.selection-option:active,.select-control:active,button:not(:disabled):hover,.photo-picker:hover{scale:1!important;transform:none!important}}
