/* The animals share the room floor with Alfonso; only the controls have a bar. */
body.room-activity-open #hotspots{visibility:hidden;pointer-events:none}
body.room-activity-open #dock,body.room-activity-open #quest{display:none!important}
.room-activity{position:absolute;inset:0;z-index:18;pointer-events:none}
.room-animal{position:absolute;transform:translate(-50%,-100%);width:13%;height:21%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;pointer-events:auto;touch-action:manipulation;isolation:isolate}
.room-animal:disabled{opacity:1}.room-animal:hover:not(:disabled){filter:none}
.room-animal:before{content:'';position:absolute;left:14%;right:14%;height:9%;bottom:-1%;border-radius:50%;background:#463b3429;filter:blur(3px);transition:background .2s,box-shadow .2s;z-index:-1}
.room-animal-art{position:absolute;inset:0;display:block;transform-origin:50% 94%;animation:room-animal-breathe 3.1s ease-in-out infinite;animation-delay:var(--animal-delay);filter:drop-shadow(0 3px 1px #332c2522);pointer-events:none}
.room-animal-art .learning-art-wrap{width:100%;height:100%;place-items:end center}
.room-animal-art .learning-art{background-repeat:no-repeat}
.room-animal-art>.room-canvas-wrap{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;contain:size}
.room-animal-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom;pointer-events:none}
.room-animal-art .learning-symbol{font-size:clamp(40px,7vw,100px)}
.room-animal:hover .room-animal-art,.room-animal:focus-visible .room-animal-art{transform:translateY(-4%)}
.room-animal:focus-visible{outline:0}.room-animal:focus-visible:before,.room-animal.approaching:before{background:#f6d66c88;box-shadow:0 0 0 4px #ffed9a77,0 0 22px #ffe58c}
.room-animal.approaching .room-animal-art{animation:room-animal-welcome .85s ease-in-out infinite}
.room-animal.selected:before{background:#9cdeb399;box-shadow:0 0 0 4px #d1f0ba66}
.room-animal.matched .room-animal-art{animation:room-animal-happy .65s ease-out}
.room-animal-check{position:absolute;right:5%;top:14%;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f5ffe3;color:#377151;border:2px solid #fff;font-size:21px;box-shadow:0 3px 9px #28462e22;opacity:0;scale:.5;transition:opacity .2s,scale .2s;pointer-events:none}
.room-animal.matched .room-animal-check,.room-animal.chosen .room-animal-check{opacity:1;scale:1}
.room-animal.collected{opacity:0;pointer-events:none;transition:opacity .4s}
.room-fish-animal{width:10.5%;height:12.5%}
.room-fish-animal .room-animal-art{animation:room-fish-swim 3.5s ease-in-out infinite;animation-delay:var(--animal-delay);filter:var(--fish-filter) drop-shadow(0 3px 2px #243d4633)}
.room-fish-animal:before{background:color-mix(in srgb,var(--fish-color) 30%,transparent);height:8%}
.room-fish-animal.chosen .room-animal-art{opacity:.6}.room-fish-animal.chosen:before{box-shadow:0 0 0 4px #dcf7bf66}
.room-activity-controls{position:absolute;left:50%;top:15%;transform:translateX(-50%);z-index:43;display:flex;gap:14px;align-items:center;padding:8px 10px;border:1px solid #fff8dd77;border-radius:40px;background:#fff8e6e8;box-shadow:0 6px 24px #2d473125;backdrop-filter:blur(10px);pointer-events:auto}
.room-activity-controls button{width:clamp(44px,5.2vw,68px);height:clamp(44px,5.2vw,68px);display:grid;place-items:center;flex:none;padding:0;border:0;border-radius:50%;font-size:clamp(24px,2.6vw,35px);background:#e2edd6;color:#2a6351;box-shadow:0 3px 0 #bad0ae}
.room-activity-controls .room-activity-exit{background:#f3e4d3;color:#876247;box-shadow:0 3px 0 #ddc5aa;font-size:clamp(30px,3.3vw,43px)}
.room-activity-status{display:flex;align-items:center;justify-content:center;gap:13px;min-width:150px}
.room-activity-status .mini-stars{margin:0;gap:6px;font-size:clamp(21px,2.4vw,32px)}
.room-fish-swatch{width:clamp(27px,3vw,40px);height:clamp(27px,3vw,40px);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 5px #233f2822}
.room-fish-count{font-size:clamp(29px,3.3vw,42px);font-weight:bold;color:#2a6351;line-height:1}
.room-fish-found{display:flex;gap:4px}.room-fish-found i{font-style:normal;font-size:20px;line-height:1;color:#c9d7bc}.room-fish-found i.counted{color:#5c9a59}
@keyframes room-animal-breathe{0%,100%{scale:1}50%{scale:1.015 1.025}}
@keyframes room-animal-welcome{0%,100%{translate:0 0}50%{translate:0 -4%}}
@keyframes room-animal-happy{0%,100%{translate:0 0;rotate:0}30%{translate:0 -10%;rotate:-3deg}70%{translate:0 -4%;rotate:3deg}}
@keyframes room-fish-swim{0%,100%{translate:-3% 0;rotate:-1deg}50%{translate:3% -3%;rotate:1deg}}
@media(max-width:650px),(max-height:550px){.room-activity-controls{top:16%;gap:8px;padding:6px 8px}.room-activity-status{min-width:100px;gap:7px}.room-activity-status .mini-stars{gap:3px;font-size:19px}.room-animal-check{width:21px;height:21px;font-size:15px}.room-fish-found i{font-size:15px}}
@media(prefers-reduced-motion:reduce){.room-activity *{animation:none!important;transition:none!important}}
