.cat-bed{position:absolute;box-sizing:border-box;border-radius:50%;pointer-events:none;touch-action:none;
  transition:opacity .18s ease;z-index:auto;}
.cat-bed[hidden]{display:none}
/* Display the supplied PNG's cushion region (14,318,1420,506), leaving the
   original transparent image untouched. Keep the front seam below the cat's paws. */
.cat-bed-art{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url("assets/toys/cat-bed-cream.png?v=20260914") 50% 54.827586% / 101.971831% 214.624506% no-repeat;
  filter:drop-shadow(0 2px 3px #17180824);}
.cat-bed-label{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%,-12px);padding:7px 10px;border-radius:10px;background:#243724;color:#fff;font:600 12px/1.4 system-ui;white-space:normal;text-align:center;width:210px;max-width:calc(100vw - 28px);box-sizing:border-box;overflow-wrap:anywhere;pointer-events:none}
.cat-bed.editing{pointer-events:auto;cursor:grab;z-index:100050;outline:2px solid #4f762c;outline-offset:5px}.cat-bed.editing:active{cursor:grabbing}.cat-bed.editing .cat-bed-label{display:block}
.cat-bed.work-peek{opacity:.06}.cat{z-index:1}
.cat-bed-grip{position:absolute;left:15%;bottom:2px;width:70%;height:24px;padding:0;border:0;border-radius:12px;background:transparent;appearance:none;pointer-events:auto;touch-action:none;cursor:grab;z-index:2}
.cat-bed-grip::after{content:'';display:block;width:28px;height:4px;margin:auto;border-top:3px dotted #5b654f;opacity:.35}
.cat-bed.move-ready .cat-bed-grip::after,.cat-bed-grip:focus-visible::after{opacity:1}
.cat-bed-grip:focus-visible{outline:2px solid #4f762c;outline-offset:2px}
.cat-bed-grip:disabled{pointer-events:none}.cat-bed.editing .cat-bed-grip{pointer-events:none}
.cat-bed.holding .cat-bed-grip{background:#4f762c22;cursor:grabbing}
.cat[data-bed-phase="settle"] .loaf,.cat[data-bed-phase="rest"] .sleep,.cat[data-bed-phase="wake"] .stretch{transition-duration:.4s}
@media(prefers-reduced-motion:reduce){.cat-bed{transition:none}.cat[data-bed-phase] .f{transition-duration:.01ms}}
