.up-btn{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:60;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:#fff8ecc0;color:#7a5a30;font-size:14px;line-height:26px;opacity:.55;cursor:pointer}
.up-btn:hover,.up-btn:focus-visible{opacity:1}.up-btn.spin{animation:upspin 1s linear infinite}@keyframes upspin{to{transform:translateX(-50%) rotate(360deg)}}
.up-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(46px + env(safe-area-inset-bottom,0px));z-index:61;padding:10px 16px;min-height:40px;border:0;border-radius:999px;background:#3a2412;color:#fff;font:inherit;font-size:14px;box-shadow:0 4px 14px #0006;opacity:0;transition:opacity .4s ease;cursor:pointer}
.up-toast.on{opacity:1}
@media (prefers-reduced-motion:reduce){.up-btn.spin{animation:none}.up-toast{transition:none}}
/* 10/31: sit in the bottom-right corner, not bottom-centre where it covered the "Swipe up" hint and centred card buttons. */
.up-btn{left:auto;right:calc(10px + env(safe-area-inset-right,0px));transform:none}
@media (max-width:1099px){body:has(.dock) .up-btn{right:220px}}
