/* Play sits on the painting; only the small objects and their handles catch taps. */
.world-play-layer{position:absolute;inset:0;overflow:clip;pointer-events:none;z-index:2;--play-moss:#526e54;--play-paper:#f6efd9;--play-gold:#c49c51}
.world-play-layer [hidden]{display:none!important}
.world-play-layer button{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;padding:0;border:0;background:transparent;color:var(--play-moss);line-height:1;box-shadow:none}
.world-play-layer button:disabled{pointer-events:none;opacity:.65}
.world-play-layer button:focus-visible{outline:2px solid #f8edc6;outline-offset:2px;box-shadow:0 0 0 4px #48664e88}
.world-play-hit{position:absolute;left:var(--play-x,50%);top:var(--play-y,85%);width:48px;height:48px;min-width:44px;min-height:44px;border-radius:50%;transform:translate(-50%,-50%)}
.world-play-layer .world-play-hit.is-offscreen{opacity:0;pointer-events:none}
.world-play-layer .world-play-hit:active{transform:translate(-50%,-50%)}
.world-play-hit::after{content:"";position:absolute;inset:4px;border-radius:50%;border:1.5px solid transparent;pointer-events:none;transition:border-color .15s,background-color .15s}
.world-play-hit:hover::after,.world-play-hit:focus-visible::after{border-color:#f8edc699;background:#f8edc60d}
.world-play-layer .world-play-hit.is-selected::after{inset:1px;border:2px solid #fff0b8;background:#f8edc61a;box-shadow:0 0 0 2px #806d3f66}
.world-play-pet{z-index:5;width:56px;height:56px}
.world-play-layer .world-play-pet svg{position:absolute;width:22px;height:22px;right:0;top:-6px;fill:#f5e6d166;stroke:#f8edc6;stroke-width:2;opacity:0;filter:drop-shadow(0 1px 2px #344a3a99);transform:translateY(3px);transition:opacity .18s,transform .18s}
.world-play-pet:hover svg,.world-play-pet:focus-visible svg,.world-play-pet.is-inviting svg{opacity:.9;transform:translateY(0)}
.world-play-toy{z-index:4}
.world-play-toy-ring{position:absolute;inset:10px;border:1px dashed #f8edc666;border-radius:50%;opacity:0}
.world-play-toy:hover .world-play-toy-ring,.world-play-toy:focus-visible .world-play-toy-ring,.world-play-toy.is-selected .world-play-toy-ring{opacity:1;border-color:#fff0b8}
.world-play-object{z-index:3;width:44px;height:44px}
.world-play-layer .world-play-object svg{width:41px;height:41px;fill:initial;stroke:initial;stroke-width:initial;overflow:visible;pointer-events:none;filter:drop-shadow(0 2px 1px #32493216);transition:transform .15s}
.world-play-object.is-selected svg{transform:translateY(-3px) rotate(-5deg)}
.world-play-position{z-index:6;width:44px;height:44px}
.world-play-footprint{position:absolute;inset:9px;border:2px dotted #fbefd2cc;border-radius:50%;box-shadow:0 1px 5px #3b4d3033;background:#8f9d6e26;transition:background-color .15s}
.world-play-position:hover .world-play-footprint,.world-play-position:focus-visible .world-play-footprint{background:#f4e3a44d;border-color:#fff4c9}
.world-play-layer[data-selection="place"] .world-play-object{z-index:1;pointer-events:none}
.world-play-toolbar{position:absolute;z-index:7;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;width:max-content;max-width:calc(100% - 32px);min-height:44px;padding:2px 4px;border:1px solid #f9edcf99;border-radius:26px;background:#f8f1dfe8;color:#48664e;box-shadow:0 3px 14px #233d2722;pointer-events:none}
.world-play-hint{display:flex;align-items:center;gap:7px;padding-left:10px;font-size:12px;line-height:1.25;min-width:0;pointer-events:none}
.world-play-layer .world-play-cancel{width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;border-radius:50%;display:grid;place-items:center}
.world-play-layer .world-play-cancel svg,.world-play-layer .world-play-small svg{height:22px;width:22px;fill:none;stroke:currentColor}
.world-play-garden-tools{position:relative;display:flex;align-items:center;gap:3px;pointer-events:none}
.world-play-layer .world-play-small{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;display:grid;place-items:center;color:#48664e}
.world-play-layer .world-play-small:hover,.world-play-layer .world-play-small:focus-visible{background:#fff5ddec}
.world-play-layer .world-play-small.is-confirming{background:#d7b66e;color:#3f472a}
.world-play-reset-label{pointer-events:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);border-radius:8px;padding:6px 9px;white-space:nowrap;background:#f8f1dfec;color:#48664e;font-size:12px;line-height:1.3}
.world-play-notice{position:absolute;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(76px + env(safe-area-inset-bottom,0px));max-width:480px;margin:0 auto;padding:9px 12px;border-radius:9px;background:#fff2d9f0;color:#78522b;font-size:12px;line-height:1.4;pointer-events:none}
.world-play-layer.is-paused button,.world-play-layer.is-busy button{pointer-events:none}
.world-play-layer.is-reduced-motion *{transition:none!important;animation:none!important}
@media(max-width:420px){.world-play-hint{font-size:11px;gap:4px}.world-play-pet{width:48px;height:48px}.world-play-layer .world-play-pet svg{right:-2px}.world-play-toolbar{bottom:calc(9px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.world-play-layer *{animation:none!important;transition:none!important}}

.world-play-toss-position .world-play-footprint{border-style:dashed;border-color:#f5e6bfc9;background:#d5b97417}
.world-play-toss-position .world-play-footprint::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#f5e6bfbb;left:50%;top:50%;transform:translate(-50%,-50%)}
