.orderTracker{--ot-ink:#203d31;--ot-muted:#617466;--ot-paper:#f5f8f1;--ot-line:#d9e3d7;--ot-green:#2c6b4e;color:var(--ot-ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;padding:6px 0}
.orderTracker button{font:inherit;cursor:pointer}.orderTracker button:disabled{opacity:.65;cursor:wait}
.orderTracker .sheetTitle h2,.orderTracker .sheetTitle p{color:var(--ot-ink)}
.otTop{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:48px;flex-wrap:wrap}
.orderTracker .otLink{border:0;background:transparent;color:var(--ot-ink);font-weight:700;padding:9px 0;text-align:left}
.otLive{font-size:11px;color:var(--ot-muted);display:flex;gap:6px;align-items:center}.otLive:before{content:"";width:6px;height:6px;border-radius:50%;background:#59b57d}
.otArt{max-width:390px;width:100%;margin:0 auto;background:radial-gradient(ellipse at center,#fffdf6 0%,#eff5e7 72%);border-radius:34px;overflow:hidden}
.otArt svg{display:block;width:100%;height:auto}
.otHeading{text-align:center;padding:21px 8px 12px}.otHeading h2{font-size:clamp(24px,4.5vw,34px)!important;line-height:1.15;margin:8px 0 12px!important;color:var(--ot-ink)!important}
.otHeading p{font-size:14px;line-height:1.6;margin:0;color:var(--ot-muted)}.otEyebrow{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:800;color:var(--ot-muted)}
.otSteps{display:flex;list-style:none;margin:12px 0 24px;padding:0}.otSteps li{position:relative;flex:1;text-align:center;font-size:11px;color:var(--ot-muted);min-width:0}
.otSteps li:before{content:"";position:absolute;left:-50%;right:50%;top:14px;height:2px;background:var(--ot-line)}.otSteps li:first-child:before{display:none}
.otSteps i{position:relative;display:grid;place-items:center;font-style:normal;width:29px;height:29px;border-radius:50%;margin:0 auto 8px;background:var(--ot-paper);border:1px solid var(--ot-line)}
.otSteps .reached i{background:var(--ot-green);color:#fff;border-color:var(--ot-green)}.otSteps .reached:before{background:var(--ot-green)}.otSteps [aria-current=step] span{font-weight:800;color:var(--ot-ink)}
.otDetails,.otDishes{background:var(--ot-paper);border:1px solid var(--ot-line);padding:16px 20px;border-radius:21px;margin-top:10px}
.otDetails>div,.otDishes>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:8px 0;font-size:14px;line-height:1.5}.otDetails span{color:var(--ot-muted)}.otDetails b{text-align:right;overflow-wrap:anywhere;max-width:65%}.otDishes b{flex-shrink:0}.otDishes:empty{display:none}
.otTotal{display:flex;justify-content:space-between;gap:20px;font-size:18px;padding:20px 4px}.otTotal b{font-size:22px}
.otCode{margin:14px 0 4px;padding:14px 0;border-top:1px solid var(--ot-line);font-size:13px;color:var(--ot-muted)}.otCode summary{cursor:pointer;padding:5px 0}.otCode>b{display:block;font-size:23px;letter-spacing:3px;color:var(--ot-ink);margin-top:16px}.otCode p{line-height:1.5}
.otList{display:grid;gap:12px;margin:22px 0}.orderTracker .otSaved{display:grid;grid-template-columns:48px minmax(0,1fr) 20px;gap:14px;align-items:center;width:100%;background:var(--ot-paper);border:1px solid var(--ot-line);border-radius:22px;color:var(--ot-ink);padding:19px;text-align:left;transition:transform .2s,border-color .2s}
.otSaved:hover{transform:translateY(-2px);border-color:var(--ot-green)}.otSaved b,.otSaved small,.otSaved strong{display:block}.otSaved b{font-size:16px;overflow-wrap:anywhere}.otSaved small{color:var(--ot-muted);font-size:12px;margin:4px 0 10px}.otSaved strong{font-size:13px;font-weight:650}
.otMini{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#dcebdd;color:#2c6b4e;font-size:24px}
.orderTracker .otSecondary{display:block;width:100%;padding:16px;background:transparent;border:1px solid var(--ot-line);border-radius:17px;color:var(--ot-ink);font-weight:750}
.otEmpty{text-align:center;padding:10px}.otEmpty .otArt{max-width:220px}.otEmpty h3{font-size:22px}.otEmpty p{font-size:14px;line-height:1.5;color:var(--ot-muted)}
.otConnection,.otNotice{font-size:13px;line-height:1.5;color:var(--ot-muted);margin:8px 0}.otConnection:empty{display:none}
.orderTracker .otLookup input{background:#fff!important;color:#203d31!important;border:1px solid #a6b9ad!important;width:100%;box-sizing:border-box}
.orderTracker .otLookup .sheetBtn{background:#24513e!important;color:#fff!important}
body[data-site-theme=dark] .orderTracker{--ot-ink:#edf3eb;--ot-muted:#b4c4b8;--ot-paper:#22352c;--ot-line:#3c5144;--ot-green:#367d59}
body[data-site-theme=dark] .otArt{background:radial-gradient(ellipse at center,#f5f7e8,#d7e4cf)}
@keyframes ot-stir{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(9deg)}}.otStir{transform-origin:174px 137px;animation:ot-stir 1.8s ease-in-out infinite}
@keyframes ot-steam{0%{transform:translateY(5px);opacity:.2}50%{opacity:1}100%{transform:translateY(-10px);opacity:.1}}.otSteam{animation:ot-steam 2.6s ease-in-out infinite}
@keyframes ot-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}.otWalker,.otRider{animation:ot-bob .8s ease-in-out infinite}
@keyframes ot-leg{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}.otLegA,.otLegB{transform-origin:177px 191px;animation:ot-leg 1s ease-in-out infinite}.otLegB{animation-delay:-.5s}
@keyframes ot-wheel{to{transform:rotate(360deg)}}.otWheel{transform-origin:var(--cx) var(--cy);animation:ot-wheel 1.5s linear infinite}
.otPedal{transform-origin:182px 166px;animation:ot-leg .75s ease-in-out infinite}
@keyframes ot-road{to{transform:translateX(-24px)}}.otRoad{animation:ot-road .6s linear infinite}
@media(prefers-reduced-motion:reduce){.orderTracker *{animation:none!important;transition:none!important}}
@media(max-width:480px){.otTop{padding-right:35px;gap:2px}.otLive{font-size:10px}.otArt{max-width:300px;border-radius:26px}.otDetails,.otDishes{padding:12px 14px}.otDetails>div,.otDishes>div{font-size:13px;gap:12px}.otSaved{padding:14px!important;gap:10px!important}.otSteps li{font-size:10px}.otLookup .form{grid-template-columns:1fr}}

.otSteps i{z-index:1}
.otCode>b{font-size:17px;letter-spacing:1px;overflow-wrap:anywhere;user-select:all}
.otCode>small{display:block;margin-top:12px}
@media(max-width:480px){.otTop{flex-direction:column;align-items:flex-start;padding-right:65px}.otLive{white-space:normal;line-height:1.4;margin-bottom:10px}}

/* Illustrated restaurant scenes, second edition. */
.orderTracker .otArtPremium{max-width:520px;border-radius:27px;background:#0c2822!important;box-shadow:inset 0 0 0 1px #e4cf981a,0 14px 38px #05181120;position:relative}
.otArtPremium svg{display:block;width:100%;height:auto}
.oaCaption{display:block;padding:6px 12px 19px;text-align:center;color:#c3cbb0;font-size:8px;letter-spacing:2px;line-height:1.5;font-weight:650}
@keyframes oa-pan{0%,35%,100%{transform:rotate(0)}46%{transform:rotate(5deg)}54%{transform:rotate(-11deg)}65%{transform:rotate(-2deg)}78%{transform:rotate(0)}}
.oaPanArm{transform-origin:268px 150px;animation:oa-pan 3.6s cubic-bezier(.4,0,.25,1) infinite}
@keyframes oa-food{0%,44%,77%,100%{transform:translateY(0) rotate(0)}55%{transform:translate(4px,-57px) rotate(-12deg)}63%{transform:translate(1px,-35px) rotate(-6deg)}}
.oaFood{animation:oa-food 3.6s ease-in-out infinite;transform-origin:0 -14px}
@keyframes oa-season{0%,15%,100%{transform:rotate(0)}3%,9%{transform:rotate(-5deg)}6%,12%{transform:rotate(3deg)}}
.oaSeasonArm{transform-origin:205px 147px;animation:oa-season 3.6s ease-in-out infinite}
@keyframes oa-salt{0%,18%,100%{opacity:0;transform:translate(-15px,-14px)}4%{opacity:1}15%{opacity:.2;transform:translate(25px,22px)}}
.oaSalt{animation:oa-salt 3.6s linear infinite}
@keyframes oa-aroma{0%{opacity:0;transform:translate(0,14px) scaleX(.96)}35%{opacity:.5}100%{opacity:0;transform:translate(6px,-12px) scaleX(1.02)}}
.oaAroma{transform-origin:380px 150px;animation:oa-aroma 3.2s ease-out infinite}
@keyframes oa-flame{0%,100%{transform:scaleY(.8);opacity:.65}33%{transform:scaleY(1.05);opacity:.9}66%{transform:scaleY(.9);opacity:.75}}
.oaFlame{transform-origin:380px 247px;animation:oa-flame .65s ease-in-out infinite}
@keyframes oa-heat{0%,100%{opacity:.3}50%{opacity:.6}}
.oaHeat{animation:oa-heat 1.2s ease-in-out infinite}
@keyframes oa-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}
.oaBlink{transform-origin:0 1px;animation:oa-blink 5.7s ease-in-out infinite}
@keyframes oa-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
.oaChefBody{animation:oa-breathe 3.6s ease-in-out infinite}
@keyframes oa-server{0%,50%,100%{transform:translateY(0)}25%,75%{transform:translateY(-3px)}}
.oaServer{animation:oa-server 1.3s ease-in-out infinite}
@keyframes oa-walk-front{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(12deg)}}
@keyframes oa-walk-back{0%,100%{transform:rotate(12deg)}50%{transform:rotate(-10deg)}}
.oaWalkFront{transform-origin:243px 224px;animation:oa-walk-front 1.3s ease-in-out infinite}
.oaWalkBack{transform-origin:252px 224px;animation:oa-walk-back 1.3s ease-in-out infinite}
.oaServerArm{transform-origin:220px 141px;animation:oa-walk-back 1.3s ease-in-out infinite}
@keyframes oa-tray{0%,100%{transform:rotate(-.8deg)}50%{transform:rotate(.8deg)}}
.oaServingTray{transform-origin:350px 134px;animation:oa-tray 1.3s ease-in-out infinite}
@keyframes oa-spokes{to{transform:rotate(360deg)}}
.oaSpokes{transform-origin:0 0;animation:oa-spokes 1.7s linear infinite}
@keyframes oa-pedal-front{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes oa-pedal-back{0%,100%{transform:rotate(6deg)}50%{transform:rotate(-6deg)}}
.oaPedalFront{transform-origin:250px 176px;animation:oa-pedal-front .85s ease-in-out infinite}
.oaPedalBack{transform-origin:250px 176px;animation:oa-pedal-back .85s ease-in-out infinite}
.oaBicycle{animation:oa-breathe .85s ease-in-out infinite}
@keyframes oa-speed{0%{opacity:0;transform:translateX(12px)}35%{opacity:.65}100%{opacity:0;transform:translateX(-25px)}}
.oaSpeed{animation:oa-speed 1.2s linear infinite}
@keyframes oa-road{to{transform:translateX(-100px)}}
.oaRoadMarks{animation:oa-road 1s linear infinite}
@keyframes oa-seal{0%,100%{opacity:1}50%{opacity:.8}}
.oaSeal{animation:oa-seal 3.5s ease-in-out infinite}
@keyframes oa-sparkle{0%,100%{opacity:.4}50%{opacity:1}}
.oaSparkles{animation:oa-sparkle 3s ease-in-out infinite}
@media(max-width:480px){.orderTracker .otArtPremium{max-width:100%;border-radius:23px}.oaCaption{font-size:7px;letter-spacing:1.5px;padding-bottom:14px}}
@media(prefers-reduced-motion:reduce){.otArtPremium *{animation:none!important}}

/* Full-width, light food preparation and plating sequence. */
.orderTracker .otArt.otFoodArt,
.orderTracker .otArt.otArtPremium{
  width:100%!important;max-width:none!important;box-sizing:border-box;
  margin:0;border-radius:21px;background:#f6f0e6!important;
  border:1px solid #e5dac9;box-shadow:none;
}
.otFoodArt svg{display:block;width:100%;height:auto}
.orderTracker .otArtPremium .oaCaption{color:#75634c}
.ofCaptions{height:40px;position:relative;text-align:center;background:#f3ebdf;color:#806344;font:600 11px/1.4 system-ui,sans-serif;letter-spacing:1.1px}
.ofCaptions>span{position:absolute;inset:10px 8px 0;opacity:0}
.ofPot,.ofPlate,.ofLadle,.ofSoupFill,.ofGarnish,.ofCroutons{transform-box:view-box}
@keyframes of-pot-cycle{0%,45%{opacity:1;transform:none}51%,96%{opacity:0;transform:none}100%{opacity:1;transform:none}}
.ofPot{transform-origin:360px 220px;animation:of-pot-cycle 14s ease-in-out infinite}
@keyframes of-plate-cycle{0%,52%{opacity:0;transform:translateY(-4px)}61%,94%{opacity:1;transform:translateY(-4px)}99%,100%{opacity:0;transform:translateY(-4px)}}
.ofPlate{transform-origin:360px 250px;animation:of-plate-cycle 14s ease-in-out infinite}
@keyframes of-ladle-cycle{0%,8%{transform:translate(-14px,0) rotate(-6deg)}15%{transform:translate(14px,0) rotate(6deg)}23%{transform:translate(-14px,0) rotate(-6deg)}31%{transform:translate(14px,0) rotate(6deg)}39%{transform:translate(-14px,0) rotate(-6deg)}47%,100%{transform:translate(14px,0) rotate(6deg)}}
.ofLadle{transform-origin:355px 202px;animation:of-ladle-cycle 14s ease-in-out infinite}
@keyframes of-pour-cycle{0%,43%,55%,100%{opacity:0;transform:scaleY(.15)}46%,52%{opacity:1;transform:scaleY(1)}}
.ofPour{transform-origin:520px 177px;animation:of-pour-cycle 14s ease-in-out infinite}
@keyframes of-fill-cycle{0%,100%{opacity:1;transform:none}}
.ofSoupFill{transform-origin:360px 250px;animation:of-fill-cycle 14s ease-in-out infinite}
@keyframes of-cream-cycle{0%,64%{opacity:0;stroke-dashoffset:100}67%{opacity:1;stroke-dashoffset:100}77%,100%{opacity:1;stroke-dashoffset:0}}
.ofCream path{stroke-dasharray:100;animation:of-cream-cycle 14s ease-in-out infinite}
@keyframes of-garnish-cycle{0%,73%{opacity:0;transform:translate(0,-70px) rotate(-12deg)}77%{opacity:1;transform:translate(0,3px) rotate(2deg)}81%,100%{opacity:1;transform:translate(0,0) rotate(0)}}
.ofGarnish{transform-origin:360px 245px;animation:of-garnish-cycle 14s ease-in-out infinite}
.ofCroutons{transform-origin:360px 250px;animation:of-garnish-cycle 14s ease-in-out infinite}
@keyframes of-pepper-cycle{0%,76%{opacity:0}82%,100%{opacity:1}}
.ofPepper{animation:of-pepper-cycle 14s ease-in-out infinite}
@keyframes of-bubble{0%{opacity:0;transform:translateY(2px) scale(.6)}35%{opacity:.8}70%{opacity:.3;transform:translateY(-10px) scale(1.3)}100%{opacity:0;transform:translateY(-15px) scale(.6)}}
.ofBubble{transform-box:fill-box;transform-origin:center;animation:of-bubble 1.9s ease-out infinite}.ofBubble2{animation-delay:-.65s}.ofBubble3{animation-delay:-1.3s}
@keyframes of-simmer{0%,100%{opacity:.3}50%{opacity:.85}}
.ofSimmer,.ofHeat{animation:of-simmer 1.8s ease-in-out infinite}
@keyframes of-steam{0%{opacity:0;transform:translateY(10px)}40%{opacity:.7}100%{opacity:0;transform:translateY(-20px)}}
.ofSteamLine{animation:of-steam 3.8s ease-out infinite}.ofSteamLine.s2{animation-delay:-1.2s}.ofSteamLine.s3{animation-delay:-2.5s}
@keyframes of-dish-steam{0%,57%{opacity:0}65%,100%{opacity:1}}
.ofDishSteam{animation:of-dish-steam 14s ease-in-out infinite}
@keyframes of-text-boil{0%,24%{opacity:1}30%,96%{opacity:0}100%{opacity:1}}
@keyframes of-text-plate{0%,29%,62%,100%{opacity:0}35%,56%{opacity:1}}
@keyframes of-text-finish{0%,64%,97%,100%{opacity:0}70%,92%{opacity:1}}
.ofTextBoil{animation:of-text-boil 14s ease-in-out infinite}.ofTextPlate{animation:of-text-plate 14s ease-in-out infinite}.ofTextFinish{animation:of-text-finish 14s ease-in-out infinite}
.ofStatusMark{display:none}
.otFoodArt[data-food-stage=served] .ofPot,
.otFoodArt[data-food-stage=served] .ofLadle,
.otFoodArt[data-food-stage=served] .ofPour{display:none}
.otFoodArt[data-food-stage=served] .ofPlate,
.otFoodArt[data-food-stage=served] .ofSoupFill,
.otFoodArt[data-food-stage=served] .ofCream path,
.otFoodArt[data-food-stage=served] .ofGarnish,
.otFoodArt[data-food-stage=served] .ofCroutons,
.otFoodArt[data-food-stage=served] .ofPepper,
.otFoodArt[data-food-stage=served] .ofDishSteam{animation:none;opacity:1;transform:none;stroke-dashoffset:0}
.otFoodArt[data-food-stage=served] .ofPlate{transform:translateY(-15px)}
.otFoodArt[data-food-stage=served] .ofTextServed{opacity:1}
.otFoodArt[data-scene=complete] .ofStatusMark,
.otFoodArt[data-scene=cancelled] .ofStatusMark{display:block}
@media(max-width:480px){.ofCaptions{font-size:10px;letter-spacing:.7px;height:34px}.ofCaptions>span{top:8px}}
@media(prefers-reduced-motion:reduce){
 .otFoodArt *{animation:none!important}
 .otFoodArt .ofLadle,.otFoodArt .ofPour{display:none}
 .otFoodArt[data-food-stage=preparing] .ofPlate{display:none}
 .otFoodArt .ofTextBoil{opacity:1}
 .otFoodArt .ofTextPlate,.otFoodArt .ofTextFinish{opacity:0}
 .otFoodArt .ofSteamLine{opacity:.6}
}

/* Keep order navigation on the same row as the sheet close control. */
.modalSheet:has(.orderTracker .otTop) .modalClose{position:absolute;top:37px;float:none;margin:0}
.orderTracker:has(.otTop){padding-top:0}
.orderTracker .otTop{height:46px;min-height:46px;flex-direction:row;align-items:center;flex-wrap:nowrap;justify-content:flex-start;padding-right:64px;margin-bottom:12px;gap:0}
.orderTracker .otTop .otLink{display:flex;align-items:center;min-height:46px;padding:0}

/* Ingredients land in the simmering pot; serving begins only after it fades out. */
.ofIngredient{transform-box:view-box;animation:of-ingredient-drop 14s ease-in infinite}
.ofIngredient2{animation-name:of-ingredient-drop-two}.ofIngredient3{animation-name:of-ingredient-drop-three}
@keyframes of-ingredient-drop{0%,5%{opacity:0;transform:translateY(-105px) rotate(-8deg)}7%{opacity:1;transform:translateY(-105px) rotate(-8deg)}15%,43%{opacity:1;transform:none}48%,100%{opacity:0;transform:none}}
@keyframes of-ingredient-drop-two{0%,14%{opacity:0;transform:translateY(-100px)}16%{opacity:1;transform:translateY(-100px)}24%,43%{opacity:1;transform:none}48%,100%{opacity:0;transform:none}}
@keyframes of-ingredient-drop-three{0%,23%{opacity:0;transform:translateY(-105px)}25%{opacity:1;transform:translateY(-105px)}33%,43%{opacity:1;transform:none}48%,100%{opacity:0;transform:none}}
.ofFlames{transform-box:fill-box;transform-origin:center bottom;animation:of-fire .7s ease-in-out infinite alternate}
@keyframes of-fire{from{transform:scaleY(.8);opacity:.8}to{transform:scaleY(1.08);opacity:1}}
.ofPotSteam{animation:of-boil-build 14s ease-in-out infinite}
@keyframes of-boil-build{0%,8%{opacity:.15}22%{opacity:.45}37%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.ofAddedIngredients{display:none}}

/* Both controls share the same grid row, independent of screen width. */
.modalSheet:has(.orderTracker .otTop){display:grid;grid-template-columns:minmax(0,1fr)}
.modalSheet:has(.orderTracker .otTop) .grab{position:absolute;top:18px;left:50%;transform:translateX(-50%);margin:0;pointer-events:none}
.modalSheet:has(.orderTracker .otTop) #modalBody{grid-area:1/1;min-width:0}
.modalSheet:has(.orderTracker .otTop) .modalClose{grid-area:1/1;position:relative;top:auto;right:auto;float:none;margin:0;align-self:start;justify-self:end;width:46px;height:46px}
.orderTracker .otTop .otLink{gap:8px;height:46px;line-height:1.2}
.orderTracker .otBackIcon{display:block;flex:0 0 22px;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}

/* Stirring follows the elliptical surface of the broth. */
.ofLadle{animation:of-stir-orbit 3.5s linear infinite;transform-origin:360px 189px}
@keyframes of-stir-orbit{0%,100%{transform:translate(24px,0)}25%{transform:translate(0,6px)}50%{transform:translate(-24px,0)}75%{transform:translate(0,-6px)}}
.ofOrbit{transform-box:view-box;animation-duration:3.5s;animation-timing-function:linear;animation-iteration-count:infinite}
.ofOrbit0{animation-name:of-food-orbit-0}
@keyframes of-food-orbit-0{0%{transform:translate(127.00px,2.00px)}6.25%{transform:translate(122.05px,7.22px)}12.5%{transform:translate(107.96px,11.65px)}18.75%{transform:translate(86.87px,14.61px)}25%{transform:translate(62.00px,15.65px)}31.25%{transform:translate(37.13px,14.61px)}37.5%{transform:translate(16.04px,11.65px)}43.75%{transform:translate(1.95px,7.22px)}50%{transform:translate(-3.00px,2.00px)}56.25%{transform:translate(1.95px,-3.22px)}62.5%{transform:translate(16.04px,-7.65px)}68.75%{transform:translate(37.13px,-10.61px)}75%{transform:translate(62.00px,-11.65px)}81.25%{transform:translate(86.87px,-10.61px)}87.5%{transform:translate(107.96px,-7.65px)}93.75%{transform:translate(122.05px,-3.22px)}100%{transform:translate(127.00px,2.00px)}}
.ofOrbit1{animation-name:of-food-orbit-1}
@keyframes of-food-orbit-1{0%{transform:translate(-55.50px,2.64px)}6.25%{transform:translate(-71.05px,-0.22px)}12.5%{transform:translate(-80.19px,-4.12px)}18.75%{transform:translate(-81.55px,-8.45px)}25%{transform:translate(-74.90px,-12.56px)}31.25%{transform:translate(-61.26px,-15.83px)}37.5%{transform:translate(-42.72px,-17.75px)}43.75%{transform:translate(-22.08px,-18.03px)}50%{transform:translate(-2.50px,-16.64px)}56.25%{transform:translate(13.05px,-13.78px)}62.5%{transform:translate(22.19px,-9.88px)}68.75%{transform:translate(23.55px,-5.55px)}75%{transform:translate(16.90px,-1.44px)}81.25%{transform:translate(3.26px,1.83px)}87.5%{transform:translate(-15.28px,3.75px)}93.75%{transform:translate(-35.92px,4.03px)}100%{transform:translate(-55.50px,2.64px)}}
.ofOrbit2{animation-name:of-food-orbit-2}
@keyframes of-food-orbit-2{0%{transform:translate(-1.53px,3.74px)}6.25%{transform:translate(15.61px,2.16px)}12.5%{transform:translate(34.34px,2.07px)}18.75%{transform:translate(51.79px,3.50px)}25%{transform:translate(65.32px,6.22px)}31.25%{transform:translate(72.86px,9.82px)}37.5%{transform:translate(73.27px,13.75px)}43.75%{transform:translate(66.48px,17.42px)}50%{transform:translate(53.53px,20.26px)}56.25%{transform:translate(36.39px,21.84px)}62.5%{transform:translate(17.66px,21.93px)}68.75%{transform:translate(0.21px,20.50px)}75%{transform:translate(-13.32px,17.78px)}81.25%{transform:translate(-20.86px,14.18px)}87.5%{transform:translate(-21.27px,10.25px)}93.75%{transform:translate(-14.48px,6.58px)}100%{transform:translate(-1.53px,3.74px)}}
.ofOrbit3{animation-name:of-food-orbit-3}
@keyframes of-food-orbit-3{0%{transform:translate(-8.72px,-5.58px)}6.25%{transform:translate(8.86px,-0.98px)}12.5%{transform:translate(16.73px,4.68px)}18.75%{transform:translate(13.67px,10.55px)}25%{transform:translate(0.16px,15.72px)}31.25%{transform:translate(-21.75px,19.41px)}37.5%{transform:translate(-48.72px,21.06px)}43.75%{transform:translate(-76.65px,20.42px)}50%{transform:translate(-101.28px,17.58px)}56.25%{transform:translate(-118.86px,12.98px)}62.5%{transform:translate(-126.73px,7.32px)}68.75%{transform:translate(-123.67px,1.45px)}75%{transform:translate(-110.16px,-3.72px)}81.25%{transform:translate(-88.25px,-7.41px)}87.5%{transform:translate(-61.28px,-9.06px)}93.75%{transform:translate(-33.35px,-8.42px)}100%{transform:translate(-8.72px,-5.58px)}}
.ofOrbit4{animation-name:of-food-orbit-4}
@keyframes of-food-orbit-4{0%{transform:translate(-9.38px,8.31px)}6.25%{transform:translate(-12.94px,3.45px)}12.5%{transform:translate(-7.38px,-1.32px)}18.75%{transform:translate(6.46px,-5.29px)}25%{transform:translate(26.48px,-7.84px)}31.25%{transform:translate(49.62px,-8.59px)}37.5%{transform:translate(72.36px,-7.42px)}43.75%{transform:translate(91.24px,-4.51px)}50%{transform:translate(103.38px,-0.31px)}56.25%{transform:translate(106.94px,4.55px)}62.5%{transform:translate(101.38px,9.32px)}68.75%{transform:translate(87.54px,13.29px)}75%{transform:translate(67.52px,15.84px)}81.25%{transform:translate(44.38px,16.59px)}87.5%{transform:translate(21.64px,15.42px)}93.75%{transform:translate(2.76px,12.51px)}100%{transform:translate(-9.38px,8.31px)}}
.ofOrbit5{animation-name:of-food-orbit-5}
@keyframes of-food-orbit-5{0%{transform:translate(3.79px,18.66px)}6.25%{transform:translate(-9.47px,19.34px)}12.5%{transform:translate(-22.97px,18.91px)}18.75%{transform:translate(-34.65px,17.42px)}25%{transform:translate(-42.72px,15.11px)}31.25%{transform:translate(-45.97px,12.32px)}37.5%{transform:translate(-43.89px,9.49px)}43.75%{transform:translate(-36.80px,7.03px)}50%{transform:translate(-25.79px,5.34px)}56.25%{transform:translate(-12.53px,4.66px)}62.5%{transform:translate(0.97px,5.09px)}68.75%{transform:translate(12.65px,6.58px)}75%{transform:translate(20.72px,8.89px)}81.25%{transform:translate(23.97px,11.68px)}87.5%{transform:translate(21.89px,14.51px)}93.75%{transform:translate(14.80px,16.97px)}100%{transform:translate(3.79px,18.66px)}}
.ofOrbit6{animation-name:of-food-orbit-6}
@keyframes of-food-orbit-6{0%{transform:translate(-50.07px,-14.99px)}6.25%{transform:translate(-27.45px,-14.89px)}12.5%{transform:translate(-6.73px,-12.98px)}18.75%{transform:translate(8.92px,-9.54px)}25%{transform:translate(17.12px,-5.12px)}31.25%{transform:translate(16.63px,-0.36px)}37.5%{transform:translate(7.51px,3.99px)}43.75%{transform:translate(-8.84px,7.27px)}50%{transform:translate(-29.93px,8.99px)}56.25%{transform:translate(-52.55px,8.89px)}62.5%{transform:translate(-73.27px,6.98px)}68.75%{transform:translate(-88.92px,3.54px)}75%{transform:translate(-97.12px,-0.88px)}81.25%{transform:translate(-96.63px,-5.64px)}87.5%{transform:translate(-87.51px,-9.99px)}93.75%{transform:translate(-71.16px,-13.27px)}100%{transform:translate(-50.07px,-14.99px)}}

/* Transparent artwork belongs to the order sheet in either theme. */
.orderTracker .otArt.otFoodArt{background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important}
.otFoodArt .ofSteamLine{stroke:#82938c}
body[data-site-theme=dark] .otFoodArt .ofSteamLine{stroke:#e4ece5}

/* Only the scene background dissolves; the food remains crisp. */
.otFoodArt .ofSceneBackdrop{mask:url(#of-scene-fade);-webkit-mask:url(#of-scene-fade)}

body[data-site-theme=dark] .otFoodArt .ofSceneBackdrop{opacity:.3}

/* Reference scene: dark wall, warm ambient light, and a visible tabletop. */
body[data-site-theme=dark] .otFoodArt .ofSceneBackdrop{opacity:1}
body[data-site-theme=dark] .otFoodArt .ofSceneWall{fill:#0c1511}
body[data-site-theme=dark] .otFoodArt .ofSceneGlow{opacity:.2}
body[data-site-theme=dark] .otFoodArt .ofSceneTable{fill:#51584e}

/* The ready dish is picked up, carried off, then returned from the other side. */
.otFoodArt[data-scene=waiter] .ofPlate{animation:of-waiter-dish 14s ease-in-out infinite}
.ofServer{transform-box:view-box;pointer-events:none}
.ofServerOut{animation:of-server-out 14s ease-in-out infinite}
.ofServerIn{animation:of-server-in 14s ease-in-out infinite}
@keyframes of-waiter-dish{
 0%,15%{opacity:1;transform:translate(0,-15px)}
 23%{opacity:1;transform:translate(0,-40px)}
 39%{opacity:1;transform:translate(550px,-40px)}
 40%{opacity:0;transform:translate(550px,-40px)}
 47%{opacity:0;transform:translate(-550px,-40px)}
 48%{opacity:1;transform:translate(-550px,-40px)}
 65%{opacity:1;transform:translate(0,-40px)}
 74%,100%{opacity:1;transform:translate(0,-15px)}
}
@keyframes of-server-out{0%,5%{opacity:0;transform:translate(0,-15px)}12%,15%{opacity:1;transform:translate(0,-15px)}23%{opacity:1;transform:translate(0,-40px)}39%{opacity:1;transform:translate(550px,-40px)}40%,100%{opacity:0;transform:translate(550px,-40px)}}
@keyframes of-server-in{0%,47%{opacity:0;transform:translate(-550px,-40px)}48%{opacity:1;transform:translate(-550px,-40px)}65%{opacity:1;transform:translate(0,-40px)}74%,77%{opacity:1;transform:translate(0,-15px)}84%,100%{opacity:0;transform:translate(0,-15px)}}
@media(prefers-reduced-motion:reduce){.otFoodArt .ofServer{display:none}.otFoodArt[data-scene=waiter] .ofPlate{transform:translateY(-15px)}}

/* Subtle alternating steps under a steady serving arm. */
.ofWaiterLeg{transform-box:view-box;transform-origin:638px 215px;animation:of-waiter-step 1.4s ease-in-out infinite alternate}
.ofWaiterLegBack{animation-delay:-1.4s}
@keyframes of-waiter-step{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@media(prefers-reduced-motion:reduce){.ofWaiterLeg{animation:none}}

/* A small grip closes under the plate, then relaxes after setting it down. */
.ofFinger,.ofThumb{transform-box:view-box;transform-origin:406px 332px}
.ofFinger{--grip:2deg}.ofFingerRing{--grip:3deg}.ofFingerLittle{--grip:4deg}
.ofServerOut .ofFinger{animation:of-fingers-pickup 14s ease-in-out infinite}
.ofServerIn .ofFinger{animation:of-fingers-release 14s ease-in-out infinite}
.ofThumb{transform-origin:437px 313px;--grip:-3deg}
.ofServerOut .ofThumb{animation:of-fingers-pickup 14s ease-in-out infinite}
.ofServerIn .ofThumb{animation:of-fingers-release 14s ease-in-out infinite}
@keyframes of-fingers-pickup{0%,13%,100%{transform:rotate(0)}20%,40%{transform:rotate(var(--grip))}45%{transform:rotate(0)}}
@keyframes of-fingers-release{0%,68%{transform:rotate(var(--grip))}77%,100%{transform:rotate(0)}}
@media(prefers-reduced-motion:reduce){.ofFinger,.ofThumb{animation:none!important}}

/* The hand releases only after the plate is resting on the table. */
@keyframes of-fingers-release{0%,74%{transform:rotate(var(--grip))}78%{transform:rotate(-5deg)}81%{transform:rotate(2deg)}84%,100%{transform:rotate(0)}}

.ofSideFingers{transform-box:view-box;transform-origin:537px 299px;--grip:3deg}
.ofServerOut .ofSideFingers{animation:of-fingers-pickup 14s ease-in-out infinite}
.ofServerIn .ofSideFingers{animation:of-fingers-release 14s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.ofSideFingers{animation:none!important}}

/* The hand appears in its holding pose and fades away after serving. */
.otFoodArt .ofServer .ofSideFingers{animation:none;transform:none}

.orderTracker .otList{overflow-y:auto;overscroll-behavior:contain;align-content:start;scrollbar-width:thin;scrollbar-color:var(--ot-green) transparent}
.orderTracker .otList .otSaved{min-height:0;transform:none}
.orderTracker [data-ot-more]{margin-bottom:10px}

.orderTracker .otList{grid-auto-rows:max-content}

.otCourierScene{color:var(--ot-ink);width:100%;max-width:760px;margin:0 auto;overflow:hidden}
.otCourierScene svg{display:block;width:100%;height:auto}
.otCourierRide{animation:otCourierFloat 1.6s ease-in-out infinite;transform-origin:center}
.otCourierRoad{animation:otCourierRoadMove 1.2s linear infinite}
.otVanWheel{animation:otVanWheelTurn 1.2s linear infinite;transform-origin:0 0}
@keyframes otVanWheelTurn{to{transform:rotate(360deg)}}
@keyframes otCourierFloat{50%{transform:translateY(-2px)}}
@keyframes otCourierRoadMove{from{transform:translateX(12px);opacity:0}40%{opacity:.18}to{transform:translateX(-24px);opacity:0}}
@media(prefers-reduced-motion:reduce){.otCourierRide,.otCourierRoad,.otVanWheel{animation:none}}
