/* Scoped designer-pack integration; existing activity panels keep their contracts. */
.room[data-furniture-mode="designer"] { background:#ddc6a9; }
.designer-room-background { position:absolute; left:var(--art-left,0); top:var(--art-top,0); width:var(--art-width,100%); height:var(--art-height,100%); background:url('/assets/designer-v1/room-wide-empty-v3.webp') center/100% 100% no-repeat; pointer-events:none; }
.room[data-art="portrait"] .designer-room-background { background-image:url('/assets/designer-v1/room-portrait-empty-v3.webp'); }
.room[data-furniture-mode="designer"]:not([data-panel]) :is(.furniture,.amigo-stage,.room-tarot-desk,.room-bath-basket,.room-led,.room-wardrobe) { left:var(--slot-left); top:var(--slot-top); width:var(--slot-width); height:var(--slot-height); right:auto; bottom:auto; transform:none; }
.room[data-furniture-mode="designer"] .furniture-art { display:block; object-fit:contain; inset:0; width:100%; height:100%; }
.room[data-furniture-mode="designer"] .plant-art,.room[data-furniture-mode="designer"] .outfit { display:none; }
.room[data-furniture-mode="designer"] .ball > span:first-of-type { display:none; }
.designer-ball { width:100%; height:100%; object-fit:contain; pointer-events:none; }
.room-led { position:absolute; z-index:3; pointer-events:none; object-fit:contain; }
.room-tarot-desk .tarot-desk-legs,.room-tarot-desk .tarot-desk-top { display:none; }
.room-tarot-desk > img { width:60%; height:90%; object-fit:contain; left:20%; top:0; }
.room-wardrobe { position:absolute; z-index:3; border:0; padding:0; border-radius:10px 10px 3px 3px; background:linear-gradient(100deg,#b57b4b,#d8ae7b 45%,#c28b56); box-shadow:inset 0 4px #eac898,inset 0 -6px #aa7447,3px 6px 9px #60442d35; cursor:pointer; min-width:44px; min-height:44px; }
.wardrobe-doors { position:absolute; inset:8% 7% 12%; display:flex; gap:2px; }
.wardrobe-doors > i { position:relative; flex:1; border:1px solid #a8784980; border-radius:5px; box-shadow:inset 0 1px 4px #f4d9b655; }
.wardrobe-doors > i::after { content:''; position:absolute; right:12%; top:50%; width:5px; height:7px; border-radius:4px; background:#735138; }
.wardrobe-doors > i:last-child::after { left:12%; right:auto; }
.room-wardrobe:focus-visible,.room-wardrobe:hover { filter:brightness(1.08); }
.room[data-panel] :is(.room-led,.room-wardrobe) { visibility:hidden; }
.room[data-panel="chair"][data-room-motion="chair"] .chair { visibility:visible; opacity:1; right:6%; left:auto; top:12%; bottom:auto; width:34%; height:70%; pointer-events:none; }
.room[data-room-motion="chair"] #amigoStage { visibility:hidden; pointer-events:none; }
.room[data-room-motion="catch"] .ball { opacity:0; }
.room[data-panel="ball"] .amigo-stage { left:73%; bottom:15%; width:34%; animation:none; }
.room[data-panel="ball"] .ball { opacity:1; visibility:visible; left:73%; bottom:2%; width:80px; height:80px; }
.ball-play button { background:none; box-shadow:none; animation:none; }
.ball-play button::before { content:''; display:block; width:100%; height:100%; background:url('/assets/designer-v1/ball-interactive-v1.webp') center/contain no-repeat; animation:ball-idle 1.7s ease-in-out infinite; pointer-events:none; }
.room[data-panel="ball"]:not([data-room-motion="throw"]) .ball { opacity:0; pointer-events:none; }
.room[data-panel="ball"][data-room-motion] .ball-play button::before { opacity:0; }
.designer-watering-can { position:absolute; width:80%; height:60%; object-fit:contain; left:35%; top:-35%; opacity:0; pointer-events:none; }
.designer-water { position:absolute; width:4px; height:25%; left:45%; top:5%; border-radius:50%; background:#b6e3e5; opacity:0; }
.plant.is-watering .designer-watering-can { opacity:1; animation:designer-pour 2.3s ease both; }
.plant.is-watering .designer-water { animation:designer-stream 2.3s ease both; }
@keyframes designer-pour { 0%,100% {opacity:0;transform:rotate(0)} 25%,75%{opacity:1;transform:rotate(-14deg)} }
@keyframes designer-stream { 0%,20%,85%,100%{opacity:0} 30%,75%{opacity:.9} }
.room[data-panel="outfit"] .activity-panel { width:min(680px,calc(100% - 24px)); max-height:calc(100% - 24px); left:12px; bottom:12px; }
.collection-summary { display:flex; justify-content:space-between; gap:8px; font-size:12px; font-weight:700; }
.collection-hint { font-size:12px; margin:8px 0 14px !important; }
.collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.collection-card { padding:6px; border:1px solid #d5c5a6; border-radius:15px; background:#fff8ec; cursor:pointer; overflow:hidden; min-width:0; text-align:left; }
.collection-picture { position:relative; display:block; width:100%; aspect-ratio:2/3; overflow:hidden; border-radius:10px; background:#fff; }
.collection-picture img { display:block; width:300%; max-width:none; height:100%; object-fit:fill; }
.collection-card b,.collection-card small { display:block; margin:6px 2px 0; font-size:12px; line-height:1.3; }
.collection-card small { font-size:10px; color:#6c775c; }
.collection-card.collected { border-color:#c1a35d; box-shadow:0 0 0 1px #f0dd99; }
.collection-card.locked .collection-picture { background:radial-gradient(ellipse at 50% 40%,#394540,#14201c); display:grid; place-items:center; }
.collection-card.locked .collection-picture i { color:#a9b2a4; font:normal 50px Georgia,serif; }
.collection-classic { margin-top:15px; width:100%; }
.collection-inspect { width:min(850px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); padding:16px; border:1px solid #d9bc83; border-radius:20px; background:#fff8eb; overflow:auto; }
.collection-inspect::backdrop { background:#172b28bf; }
.collection-inspect .close-panel { float:right; }
.collection-inspect h2 { font-size:24px; padding-right:50px; }
.collection-inspect img { display:block; width:100%; margin-top:16px; object-fit:contain; }
.collection-inspect p { text-align:center; font-size:12px; }
/* Prevent native page/image drag and blue selection without breaking text entry. */
.room,.action-dock,.care-drag-ghost,.collection-inspect { -webkit-user-select:none; user-select:none; -webkit-tap-highlight-color:transparent; }
.room input,.room textarea { -webkit-user-select:text; user-select:text; }
.room img,.collection-inspect img { -webkit-user-drag:none; -webkit-touch-callout:none; }
.room :is(.furniture,.room-wardrobe,.room-tarot-desk) { touch-action:manipulation; }
.care-designer .care-amigo { width:72%; left:53%; bottom:10%; aspect-ratio:1; height:auto; }
.care-sprite { position:absolute; inset:0; background-size:600% 100%; background-repeat:no-repeat; pointer-events:none; }
.care-sprite[data-clip]:not([data-clip="unavailable"]) ~ .care-amigo-fallback { visibility:hidden; }
.care-designer .care-zone { transform:none; min-width:28px; min-height:28px; }
.care-designer .care-zone-head { left:39%; top:21%; width:21%; height:14%; right:auto; bottom:auto; }
.care-designer .care-zone-gills { left:12%; top:30%; width:18%; height:17%; right:auto; bottom:auto; }
.care-designer .care-zone-hands { left:29%; top:60%; width:16%; height:20%; right:auto; bottom:auto; }
.care-designer .care-zone-body { left:44%; top:62%; width:21%; height:21%; right:auto; bottom:auto; }
.care-designer .care-zone-tail { left:66%; top:78%; width:22%; height:15%; right:auto; bottom:auto; }
.care-designer .care-zone-feet { left:36%; top:87%; width:29%; height:12%; right:auto; bottom:auto; }
.care-designer .care-zone > i { display:none; }
.care-designer .designer-soil { position:absolute; inset:8%; width:84%; height:84%; object-fit:contain; opacity:var(--soil,1); transition:opacity .2s ease; pointer-events:none; }
.care-designer .care-zone.done .designer-soil { opacity:0; }
.care-designer .care-zone[data-last-tool="soap"] .designer-soil { filter:brightness(1.8) saturate(.15); }
.care-designer .care-zone[data-needed-tool="towel"] .designer-soil { opacity:.32; filter:brightness(1.5) saturate(.2); }
.care-designer .care-zone.care-scrubbing .designer-soil { opacity:calc(var(--soil,1)*(1 - var(--scrub-progress,0))); }
.care-designer .care-amigo:has(.care-sprite[data-art="provided"][data-clip="tail_turn"]) .care-zone { visibility:hidden; }
.care-designer .care-high-five { top:54%; right:55%; width:18%; height:24%; }
.care-designer .care-event-bubble::before { inset:0; border:0; box-shadow:none; background:url('/assets/designer-v1/fx-bubble_idle.webp') 0 0/600% 100% no-repeat; }
.care-drag-ghost[data-tool="water"] .care-motion-fx { background:url('/assets/designer-v1/fx_water_stream.webp') center/contain no-repeat; }
.care-drag-ghost[data-tool="brush"] .care-contact-fx,.care-drag-ghost[data-tool="soap"] .care-contact-fx { background:url('/assets/designer-v1/fx-foam_idle.webp') 0 0/600% 100% no-repeat; }
.care-drag-ghost[data-tool="towel"] .care-contact-fx { background:url('/assets/designer-v1/fx-foam_wipe.webp') 80% 0/600% 100% no-repeat; }
.care-designer .care-amigo[data-reaction="look_tool"] .care-sprite { transform:rotate(-2deg); transition:transform .25s; }
.care-designer .care-amigo[data-reaction="gill_tickle"] .care-sprite { animation:designer-care-tickle .35s ease 2; }
@keyframes designer-care-tickle { 25%{transform:rotate(-3deg)} 75%{transform:rotate(3deg)} }
.room[data-furniture-mode="designer"]:not([data-panel]) .amigo-stage { transition:none; }
.room[data-furniture-mode="designer"] :is(.furniture,.room-tarot-desk,.room-bath-basket) { min-width:44px; min-height:44px; }
.room[data-furniture-mode="designer"] .ball .object-label { bottom:0; }
.room[data-panel="chair"] .designer-room-background { inset:0; width:100%; height:100%; background-size:auto 140%; background-position:center bottom; }
.room[data-panel="care"] .designer-room-background { visibility:hidden; }
.care-three-stage.ready ~ .care-sprite { visibility:hidden; }
.care-sprite[data-clip$="_contact"] { animation:designer-contact .72s ease-in-out; }
@keyframes designer-contact { 40%{transform:rotate(2deg) translateY(-2px)} 75%{transform:rotate(-1deg)} }
@media(max-width:760px) {
  .room[data-panel="chair"] .designer-room-background { background-size:auto 175%; }
  .room[data-panel="outfit"] .activity-panel { inset:8px; width:calc(100% - 16px); height:calc(100% - 16px); max-height:none; }
  .room[data-panel="outfit"] .amigo-stage { visibility:hidden; pointer-events:none; }
  .collection-grid { gap:7px; }
  .collection-card b { font-size:10px; }
  .room[data-panel="chair"][data-room-motion="chair"] .chair { right:25%; top:2%; width:50%; height:45%; }
  .room[data-panel="ball"] .amigo-stage { left:50%; bottom:calc(44% + 24px); width:min(65vw,30svh); }
  .room[data-panel="ball"] .ball { left:75%; bottom:calc(44% + 5px); width:50px; height:50px; }
}
@media(max-height:500px) and (orientation:landscape) {
  .room[data-furniture-mode="designer"] .object-label { display:none; }
  .collection-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .room[data-panel="chair"][data-room-motion="chair"] .chair { right:2%; top:3%; width:30%; height:85%; }
}
@media(prefers-reduced-motion:reduce) { .designer-watering-can,.designer-water,.care-sprite { animation:none!important; } }

/* Scene graph: backdrop 0, furnishings 2, character 4, ball 7, controls 20.
   The bath artwork already contains furniture: its hit areas never repaint it. */
.room[data-furniture-mode="designer"] { isolation:isolate; }
.designer-room-background { z-index:0; }
.room[data-furniture-mode="designer"] .amigo-stage { z-index:4; }
.room[data-furniture-mode="designer"] :is(.plant,.chair,.room-wardrobe,.room-bath-basket) { z-index:2; }
.room[data-furniture-mode="designer"] .ball { z-index:7; }
.room[data-furniture-mode="designer"]:not([data-panel]):not([data-ball-state]) #ballHotspot { width:var(--rest-ball-size); height:var(--rest-ball-size); min-width:0; min-height:0; }
#ballHotspot::after { content:''; position:absolute; left:50%; top:50%; width:max(100%,44px); height:max(100%,44px); transform:translate(-50%,-50%); }
.room[data-ball-state]:not([data-panel]) #amigoStage { animation:none; transition:none; }
.room[data-ball-state]:not([data-panel]) #ballHotspot { left:var(--ball-x); top:var(--ball-y); width:var(--ball-size); height:var(--ball-size); min-width:0; min-height:0; transform:translate(-50%,-50%); animation:none; transition:none; opacity:1; }
.room[data-ball-state] #ballHotspot .object-label { display:none; }
.room[data-ball-state="held"] #ballHotspot { visibility:hidden; pointer-events:none; }
.room[data-ball-state="air"] #ballHotspot,.room[data-ball-state="pickup"] #ballHotspot { pointer-events:none; }
.room[data-ball-state] .pet-hand { left:30%; right:auto; top:44%; width:42%; height:35%; }
.room[data-ball-catchable="true"] .pet-hand::after { content:''; position:absolute; inset:24%; border:2px solid #fff3c5; border-radius:50%; box-shadow:0 0 14px #fff1b9; pointer-events:none; }
.room[data-ball-state="ground"] #amigoStage::after { content:''; position:absolute; width:30px; height:30px; left:45%; top:-12%; border:7px solid #fff6e6; border-radius:50%; background:#fff6e6 url('/assets/designer-v1/ball-interactive-v1.webp') center/contain no-repeat; pointer-events:none; }
.care-designer .care-stage-column,.care-designer:has(.care-control-deck:not([hidden])) .care-stage-column { background:#d9e4d3; padding-top:56px; align-items:flex-end; }
.care-designer .care-scene { isolation:isolate; background:none; overflow:hidden; }
.care-designer .care-background { z-index:0; mask-image:linear-gradient(to bottom,transparent,black 7%); }
.care-designer .care-mat { z-index:1; }
.care-designer .care-amigo { z-index:4; width:68%; left:51%; bottom:10%; }
.care-designer .care-physical,.care-designer .care-rack-return { z-index:3; }
.care-designer .care-guidance { z-index:6; }
.care-designer .care-physical img { visibility:hidden; }
.care-designer .care-duck,.care-designer .care-duck-keepsake { z-index:5; }
.care-designer .care-control-deck { z-index:20; background:#fff8ec; }
.care-designer .care-amigo-fallback { display:none; }
.care-sprite[data-clip="unavailable"] ~ .care-amigo-fallback { display:block; }
