/* Shared, directly controlled water for care and seagrass swims. */
.care-action .object-art{background:url('objects/care-props.png') 0 50%/300% 100% no-repeat;filter:drop-shadow(0 5px 8px #00192088)}
.care-action.plankton .object-art{background-position:50% 50%}.care-action.light .object-art{background-position:100% 50%}
#care-swim{width:960px;max-width:calc(100vw - 24px);padding:0;border:1px solid #98c4b76b;border-radius:22px;background:#062831;overflow:auto;box-shadow:0 24px 100px #00151ec9}
#care-swim header{display:flex;align-items:center;justify-content:space-between;padding:24px 30px 8px;gap:20px}
#care-swim header p{font:12px Arial,sans-serif;color:#a2c5c2}#care-swim h2{font-size:34px;margin:5px 0 0;letter-spacing:-.035em}
.swim-close{font:32px Arial;width:44px;height:44px;text-align:center;border:1px solid #bed7c644;border-radius:50%}
.swim-instruction{font-size:14px;color:#c6d8cf;padding:4px 30px 20px;line-height:1.5}
.swim-water{height:min(49vh,440px);min-height:260px;position:relative;isolation:isolate;overflow:hidden;touch-action:none;cursor:crosshair;background:linear-gradient(0deg,#052b3670,transparent),url('../film/reef.jpg') center/cover;outline-offset:-4px!important}
[data-kind=garden] .swim-water{background-image:linear-gradient(0deg,#052b3650,transparent),url('environments/garden.jpg')}
.swim-water:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 0,#c4fff520,transparent 70%);z-index:-1}
.swim-fish{position:absolute;inset:0;pointer-events:none;z-index:2}.swim-fish canvas{display:block}
.swim-ring{position:absolute;transform:translate(-50%,-50%);width:60px;height:60px;display:grid;place-items:center;border:1px solid #dcf8c544;border-radius:50%;font:14px Arial;color:#e7f5d077;transition:opacity .4s,box-shadow .4s,border-color .4s}
.swim-ring.next{border:2px solid #e1efb6;color:#fffce1;box-shadow:0 0 0 7px #d4edbd0c,0 0 30px #cbffd754,inset 0 0 20px #ddffbf38}
.swim-ring.passed{opacity:.3;border-color:#baedd5;color:transparent}.swim-ring.passed:after{content:'✓';color:#ceffdf;position:absolute;font-size:19px}
.swim-lure{position:absolute;z-index:3;width:22px;height:22px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#ffffec 0 13%,#e8ffc7aa 22%,#c3ffd33b 50%,transparent 72%);box-shadow:0 0 24px #d2ffab77;pointer-events:none}
.swim-trail i{position:absolute;width:4px;height:4px;background:#c7f2dc;border-radius:50%;box-shadow:0 0 8px #bdffd1;animation:swim-trace 1.8s ease-out forwards;pointer-events:none}
@keyframes swim-trace{to{opacity:0;transform:translateY(-14px) scale(.2)}}
#care-swim footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 30px 10px;flex-wrap:wrap}.swim-status{font-size:14px;color:#c7dcd1;flex:1;min-width:150px;line-height:1.5}
.swim-assist,.swim-finish{font-size:13px;min-height:44px;border:1px solid #abcbb477;border-radius:25px;padding:10px 18px}.swim-finish{background:#dce9c9;color:#13353c;border-color:transparent}
.swim-note{font-size:11px;color:#92b4b3;line-height:1.5;padding:4px 30px 23px}.swim-water.finished{box-shadow:inset 0 0 80px #b3ecd522}
@media(max-width:600px){#care-swim{border-radius:16px;max-height:94dvh}#care-swim header{padding:17px 18px 8px}#care-swim h2{font-size:27px}.swim-instruction{padding:4px 18px 15px;font-size:13px}.swim-water{min-height:270px;height:40dvh}.swim-ring{width:42px;height:42px;font-size:12px}#care-swim footer{padding:15px 18px 8px;gap:10px}.swim-status{font-size:12px}.swim-assist,.swim-finish{font-size:12px;padding:10px 13px}.swim-note{padding:5px 18px 18px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.swim-ring{transition:none}.swim-trail{display:none}}
.swim-water:focus-visible{outline:2px solid #d9e7bd}
[data-kind=roam][data-swim-region=garden] .swim-water{background-image:url('environments/garden.jpg')}
[data-kind=roam][data-swim-region=deep] .swim-water{background-image:url('environments/deep.jpg')}
[data-kind=roam][data-swim-region=observatory] .swim-water{background-image:url('../places/observatory.png')}
[data-kind=roam][data-swim-region=atlas] .swim-water{background-image:url('../places/atlas.png')}
[data-kind=roam][data-swim-region=nursery] .swim-water{background-image:url('../places/nursery.png')}
.falling-food{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.food-piece{position:absolute;display:block;will-change:transform;box-shadow:0 1px 1px #00281833}
.food-piece.kelp{background:linear-gradient(165deg,#bdca78,#738940 42%,#344e29 75%,#8caa50);border-radius:42% 12% 35% 18%;clip-path:polygon(0 35%,15% 8%,48% 0,72% 21%,100% 10%,90% 62%,61% 100%,22% 86%);filter:hue-rotate(calc(var(--tone)*1deg))}
.food-piece.plankton{border-radius:35% 55% 25% 60%;background:linear-gradient(135deg,#e5d2a6,#bba179 55%,#899b74);filter:hue-rotate(calc(var(--tone)*1deg))}
.food-piece.eaten{opacity:0!important;transition:opacity .12s}.food-entry{position:absolute;top:-9px;width:40px;height:18px;border:1px solid #ddf9ed70;border-radius:50%;transform:translateX(-50%);animation:food-entry 1s ease-out forwards}
@keyframes food-entry{to{transform:translateX(-50%) scale(2.5);opacity:0}}
.food-crumb{position:absolute;width:2px;height:2px;border-radius:50%;background:#d5cc9d99;animation:food-crumb .5s ease-out forwards}@keyframes food-crumb{to{transform:translate(var(--dx),8px);opacity:0}}
@media(prefers-reduced-motion:reduce){.food-entry,.food-crumb{display:none}.food-piece.eaten{transition:none}}
