/* Photograph space is 3:2. One coordinate system removes the floating gap. */
.faithful-ui #live-scene{width:167px;height:auto;aspect-ratio:3/2}
.basket-scene{width:100%;height:auto!important;aspect-ratio:3/2;max-width:390px!important;margin:0 auto!important;transform:none!important}
#live-foods,#basket-foods{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;clip-path:polygon(18% 29%,82% 29%,86% 44%,80% 59%,20% 59%,14% 44%)!important;z-index:2!important;pointer-events:none;overflow:hidden}
.front-food{position:absolute;transform:translate(-50%,-50%) rotate(var(--front-turn));filter:drop-shadow(0 1.5px 1px #37291888);pointer-events:auto;touch-action:none}
.front-food>svg,.front-food .photographic-bag,.front-food .photographic-bag>svg{display:block;width:100%;height:100%}
.front-food .bag-receipt,.front-food .bag-weight-label{display:none}
.live-basket-front,.basket-front{clip-path:polygon(0 43%,13% 43%,20% 48%,35% 52%,50% 54%,65% 52%,80% 48%,87% 43%,100% 43%,100% 100%,0 100%)!important;z-index:3!important}
.faithful-ui[data-app-screen="basket"] .market-layout>.basket{display:block!important;width:100%;border:0;background:transparent;padding:16px 14px}
.faithful-ui[data-app-screen="basket"] #basket-page-surface{display:none!important}
.branded-weighed-pack svg{filter:drop-shadow(1px 2px 1px #32281955)!important}
.grain-bowl-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.cooking-target{touch-action:manipulation;cursor:pointer;outline-offset:5px;overflow:visible!important}
.cooking-target:focus-visible{outline:2px solid #567448}.cooking-target.needs-choices{outline:2px solid #b4783b}
.cooking-board .cooking-reveal{inset:0!important;display:flex;align-items:center;justify-content:center;overflow:visible}
.cooking-board .cooking-reveal .isolated-meal-plate{position:relative!important;inset:auto!important;width:90%!important;height:90%!important;object-fit:contain}
.cooking-board:not(.meal-served) .cooking-reveal{opacity:0;animation:none!important}
.cooking-board .cooking-gathered{animation:none;opacity:1}
.cook-now-button{display:block;margin:12px auto 10px;padding:12px 22px;border:0;border-radius:24px;background:#30563b;color:#fff;font-size:13px;min-height:44px}
.cooking-pot{position:absolute;inset:9%;opacity:0;pointer-events:none;z-index:3;transform:scale(.65)}
.pot-body{position:absolute;inset:9%;border-radius:50%;border:7px solid #9fa6a0;background:radial-gradient(ellipse at 38% 30%,#d8ded3,#6c7770 75%);box-shadow:inset 0 2px 4px #fff8,0 4px 6px #24352655}
.pot-sauce{position:absolute;inset:7%;border-radius:50%;background:radial-gradient(ellipse at 40% 25%,#b47c45,#815334 65%,#5c462e);box-shadow:inset 0 2px 6px #30271966}
.pot-handle{position:absolute;top:40%;width:24%;height:22%;border:6px solid #707d74;border-radius:35%;background:transparent}.pot-handle.left{left:-7%}.pot-handle.right{right:-7%}
.wooden-paddle{position:absolute;left:49%;top:-18%;width:8%;height:91%;border-radius:40%;background:linear-gradient(90deg,#8f663b,#d1a66d 40%,#9f743f);transform-origin:50% 76%;box-shadow:1px 2px 2px #30201055;z-index:5}
.wooden-paddle i{position:absolute;bottom:-1%;left:-52%;width:200%;height:30%;border-radius:45%;background:linear-gradient(90deg,#956c3c,#d0a570 45%,#a17a49)}
.pot-steam{position:absolute;top:-6%;width:12%;height:30%;border-left:2px solid #fff9;border-radius:50%;opacity:0}.steam-one{left:35%}.steam-two{left:63%}
.is-cooking .cooking-gathered>span{animation:ingredientsMerge .85s cubic-bezier(.4,0,.4,1) forwards}
.is-cooking .cooking-ingredient{pointer-events:none}
.is-cooking .cooking-pot{animation:potArrive .5s .6s both}
.stirring .wooden-paddle{animation:paddleStir .9s ease-in-out infinite}.stirring .pot-sauce{animation:sauceStir 1.8s linear infinite}.stirring .pot-steam{animation:cookingSteam 1.3s ease-out infinite}.stirring .steam-two{animation-delay:.5s}
.meal-served .cooking-gathered,.meal-served .cooking-pot{opacity:0!important}.meal-served .cooking-reveal{opacity:1;animation:serveDish .65s cubic-bezier(.2,.7,.2,1) both!important}
@keyframes ingredientsMerge{to{transform:rotate(calc(var(--gather-angle) + 100deg)) translateY(0) scale(.12);opacity:0}}
@keyframes potArrive{to{opacity:1;transform:scale(1)}}
@keyframes paddleStir{0%,100%{transform:rotate(-25deg) translateX(-8px)}50%{transform:rotate(24deg) translateX(8px)}}
@keyframes sauceStir{to{transform:rotate(360deg)}}
@keyframes cookingSteam{0%{transform:translateY(4px);opacity:0}40%{opacity:.7}100%{transform:translateY(-15px);opacity:0}}
@keyframes serveDish{from{opacity:0;transform:translateY(8px) scale(.82)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.is-cooking *,.meal-served .cooking-reveal{animation:none!important}.is-cooking .cooking-pot{opacity:1;transform:none}}

/* Units rest on the lining, with tight contact shadows rather than hovering. */
.faithful-ui .overhead-world{width:min(100%,370px);max-width:370px;margin:12px auto}
.faithful-ui .overhead-lining{inset:16% 12% 12%}
.faithful-ui .exact-basket-unit{padding:0;border:0;background:none;border-radius:0;transform:translate(-50%,-50%) rotate(var(--pack-angle));animation:none!important;box-shadow:none!important}
.exact-basket-unit>svg{width:100%;height:100%;display:block}
.faithful-ui .exact-basket-unit svg{filter:drop-shadow(1px 1px .7px #35291c66)!important}
.unit-measure{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%) rotate(calc(-1 * var(--pack-angle)));white-space:nowrap;background:#fbf8eced;color:#284633;padding:2px 4px;border-radius:3px;font:8px Arial;box-shadow:0 1px 2px #342b1920}
.front-food svg{filter:none!important}.front-food .bag-receipt{display:none!important}
.recipe-extra-picker{padding:16px 0;font-size:12px}.recipe-extra-picker summary{cursor:pointer;font-weight:600;min-height:32px}.recipe-extra-picker label{display:block;margin:12px 0 6px}.recipe-extra-picker select{max-width:100%;padding:10px;background:#f8f8ef;border:1px solid #ccd4be;border-radius:8px;color:#294b35}.recipe-extra-picker p{font-size:11px;color:#77856c}
.cooking-target{overflow:hidden!important}.cooking-target .cooking-reveal{inset:0!important;overflow:hidden;border-radius:50%}.cooking-gathered{pointer-events:none}
.cooking-ingredient.is-gathered{opacity:.7}.cooking-board.is-cooking .cooking-ingredient{opacity:.25;transition:opacity .4s}
.ticket-slot{position:relative;padding-top:26px;overflow:hidden;isolation:isolate}
.ticket-slot:before{content:'';position:absolute;top:23px;left:12%;right:12%;height:7px;background:#253d31;border-radius:4px;box-shadow:0 2px 0 #a3ac98;z-index:3}
.weigh-ticket{opacity:0!important;transform:translateY(-110%);max-height:none!important;transition:none!important;visibility:hidden}
.is-packing .weigh-ticket{opacity:1!important;visibility:visible;animation:realReceiptFeed 2s steps(40,end) both!important}
.ticket-printed .weigh-ticket{opacity:1!important;visibility:visible;transform:translateY(0)!important}
@keyframes realReceiptFeed{from{transform:translateY(-105%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.is-packing .weigh-ticket{animation:none!important;transform:translateY(0)!important}}

.weighing-studio.is-packing .weighed-food{animation:portionPack 2.3s ease-in-out}

.ticket-slot{height:32px;box-sizing:border-box;transition:height .35s ease;margin-bottom:12px}
.is-packing .ticket-slot,.ticket-printed .ticket-slot{height:270px}
@media(prefers-reduced-motion:reduce){.ticket-slot{transition:none}}
