:root{--fish-ease:cubic-bezier(.2,.75,.25,1);--fish-quick:180ms;--fish-enter:460ms}
[data-fish-ambient]{--fish-play-state:running}
[data-fish-ambient],[data-fish-ambient] *,[data-fish-ambient]::before,[data-fish-ambient]::after,[data-fish-ambient] *::before,[data-fish-ambient] *::after{animation-play-state:var(--fish-play-state,running)!important}
html[data-fish-page-hidden=true] *,html[data-fish-page-hidden=true] *::before,html[data-fish-page-hidden=true] *::after{animation-play-state:paused!important}
.fish-arrived{animation:fish-arrive var(--fish-enter) var(--fish-ease) both}
@keyframes fish-arrive{from{opacity:.75;translate:0 10px}to{opacity:1;translate:0 0}}
/* A small press response; controls keep their size and position in the layout. */
button,.button,a.text-link{transition:background-color var(--fish-quick),color var(--fish-quick),box-shadow var(--fish-quick),translate var(--fish-quick)}
.button:not(:disabled):active,button.text-button:not(:disabled):active{translate:0 1px}
@media(hover:hover){.button:not(:disabled):hover{box-shadow:0 4px 0 #12251c22;translate:0 -1px}a.text-link:hover{text-underline-offset:6px}}
input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6593a5;outline-offset:3px;box-shadow:0 0 0 5px #6593a512}
/* Field-station photos have a living water surface, with all text above it. */
.club-scene .scene-register,.club-scene .scene-caption,.club-scene .scene-seal{z-index:2}
.field-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.field-atmosphere::before{content:'';position:absolute;left:12%;right:-10%;top:33%;height:28%;border-radius:50%;background:radial-gradient(ellipse,#ecf6c51c,transparent 68%);animation:field-light 11s ease-in-out infinite alternate}
.field-atmosphere .field-ring{position:absolute;left:30%;top:61%;width:96px;height:16px;border:1px solid #eff7d287;border-radius:50%;animation:field-ripple 6s ease-out infinite}
.field-atmosphere .field-ring:nth-child(2){left:69%;top:54%;width:64px;animation-delay:-2.6s}
.field-atmosphere .field-ring:nth-child(3){left:45%;top:68%;width:120px;animation-delay:-4s}
.field-atmosphere .field-mote{position:absolute;left:82%;top:26%;width:3px;height:3px;background:#eaffab;border-radius:50%;box-shadow:0 0 8px #eaffab80;animation:field-mote 8s ease-in-out infinite}
.field-atmosphere .field-mote:nth-last-child(2){left:14%;top:42%;animation-delay:-3s}.field-atmosphere .field-mote:last-child{left:69%;top:37%;animation-delay:-5s}
@keyframes field-light{to{opacity:.4;translate:8px -5px}}@keyframes field-ripple{0%{scale:.3;opacity:0}15%{opacity:.6}100%{scale:1.55;opacity:0}}@keyframes field-mote{0%,100%{opacity:.2;translate:0 0}50%{opacity:.85;translate:-9px -15px}}
.pond-divider{display:flex;align-items:center;gap:20px;margin:0 auto 28px;color:#536348;overflow:hidden;min-height:44px}
.pond-divider>span{font:10px/1.5 'IBM Plex Mono',monospace;letter-spacing:.08em;white-space:nowrap}
.pond-divider svg{width:100%;min-width:0;height:40px;display:block;color:#6b8452}
.divider-fish{transform-box:fill-box;transform-origin:center;animation:divider-swim 7s ease-in-out infinite alternate}.divider-fish.second{animation-delay:-3.5s;animation-duration:9s}
.divider-water{animation:divider-wave 8s ease-in-out infinite alternate}
@keyframes divider-swim{to{translate:25px -2px;rotate:2deg}}@keyframes divider-wave{to{translate:-10px 1px}}
/* Keep bookkeeping quiet; game feedback belongs to confirmed virtual actions. */
.fish-catch-splash{position:fixed;z-index:80;width:100px;height:76px;color:#96b74e;pointer-events:none;animation:catch-lift 1.2s var(--fish-ease) both}
.fish-catch-splash svg{width:64px;height:48px;position:absolute;left:17px;top:2px;filter:drop-shadow(0 3px 1px #12251c22)}
.fish-catch-splash i{position:absolute;left:calc(14px + var(--drop)*17px);top:53px;width:5px;height:9px;border-radius:70% 30% 60% 40%;background:#6f9c98;rotate:calc(-30deg + var(--drop)*15deg);animation:catch-drop .9s ease-out both;animation-delay:calc(var(--drop)*25ms)}
@keyframes catch-lift{0%{opacity:0;translate:0 14px;rotate:-10deg}25%{opacity:1;translate:0 -10px;rotate:4deg}65%{opacity:1}100%{opacity:0;translate:12px -20px;rotate:9deg}}@keyframes catch-drop{to{translate:0 20px;opacity:0}}
.fish-tank .account-form-panel,.fish-replay .wallet-form{border-radius:14px}
.fish-tank .stats-grid .stat,.fish-profile .stats-grid .stat{border-top:3px solid #8ba16c}
.fish-tank .stats-grid .stat:first-child,.fish-profile .stats-grid .stat:first-child{border-top-color:#acc86d;background:linear-gradient(145deg,#213e2e,#14291f)}
.fish-replay .chart-view-controls button[aria-pressed=true],.fish-tank .segmented button[aria-pressed=true]{box-shadow:inset 0 -3px #9bb55e}
.fish-tank .empty-state,.fish-replay .empty-state{border-style:dashed;background:linear-gradient(160deg,#f7f7ed,#e8eedb)}
@media(max-width:500px){.pond-divider{gap:12px;margin-bottom:20px}.pond-divider>span{font-size:9px}.pond-divider svg{min-width:70px}.fish-catch-splash{scale:.85}}
@media(prefers-reduced-motion:reduce){.fish-arrived,[data-fish-ambient],[data-fish-ambient] *,[data-fish-ambient]::before,[data-fish-ambient]::after,[data-fish-ambient] *::before,[data-fish-ambient] *::after{animation:none!important}.fish-arrived{opacity:1;translate:none}.field-atmosphere .field-ring{opacity:.25;scale:1}.field-atmosphere .field-mote{opacity:.45}.fish-catch-splash{display:none}.button,button,input,select,textarea,a.text-link{transition:none!important;translate:none!important}}

.fish-profile .profile-aquarium.wrap{width:min(720px,calc(100% - 80px));padding-inline:0}
@media(max-width:1000px){.fish-profile .profile-aquarium.wrap{width:min(720px,calc(100% - 52px))}}
@media(max-width:700px){.fish-profile .profile-aquarium.wrap{width:calc(100% - 40px)}}
