#fangst-gjedde-overlay{position:fixed;inset:0;pointer-events:none;z-index:2147483000;overflow:hidden;visibility:hidden}#fangst-gjedde-overlay.is-active{visibility:visible}#fangst-gjedde-fish{position:absolute;width:min(72vw,430px);max-height:38vh;object-fit:contain;left:0;bottom:14%;transform:translateX(-115%) rotate(-5deg);filter:drop-shadow(0 8px 14px #0008)}#fangst-gjedde-overlay.is-active #fangst-gjedde-fish{animation:fangst-gjedde-swim 11s ease-in-out both}#fangst-gjedde-speech{position:absolute;left:5%;bottom:calc(14% + min(29vw,155px));max-width:min(82vw,370px);padding:12px 16px;border:2px solid #8ad6ff;border-radius:18px;background:#08263eea;color:white;font:700 clamp(14px,3.6vw,19px)/1.35 system-ui,sans-serif;box-shadow:0 5px 22px #0008;opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s;text-align:center}#fangst-gjedde-speech.show{opacity:1;transform:translateY(0)}@keyframes fangst-gjedde-swim{0%{transform:translateX(-115%) rotate(-7deg)}20%{transform:translateX(6vw) rotate(3deg)}40%{transform:translateX(12vw) rotate(-2deg)}65%{transform:translateX(13vw) rotate(2deg)}82%{transform:translateX(32vw) rotate(-3deg)}100%{transform:translateX(115vw) rotate(4deg)}}@media(max-width:600px){#fangst-gjedde-fish{width:72vw;bottom:18%}#fangst-gjedde-speech{bottom:calc(18% + 24vw)}}@media(prefers-reduced-motion:reduce){#fangst-gjedde-overlay.is-active #fangst-gjedde-fish{animation-duration:11s}}
/* Match Finn's speech bubble while keeping the pike's own dialogue. */
#fangst-gjedde-overlay{inset:auto;left:max(12px,env(safe-area-inset-left));right:auto;bottom:calc(95px + env(safe-area-inset-bottom));width:min(290px,75vw);overflow:visible}
#fangst-gjedde-fish{position:relative;display:block;width:100%;max-height:none;left:auto;bottom:auto;margin:0;object-fit:contain}
#fangst-gjedde-speech{position:relative;left:auto;bottom:auto;max-width:100%;margin:0 0 10px;padding:12px 15px;border:3px solid #17618b!important;border-radius:20px;background:#fff!important;color:#152b3e!important;font:750 14px/1.35 system-ui,Arial,sans-serif;box-shadow:0 4px 14px #0003;text-align:left;box-sizing:border-box}
#fangst-gjedde-speech::after{content:'';position:absolute;left:24px;bottom:-14px;border-left:13px solid transparent;border-right:13px solid transparent;border-top:15px solid #fff}
#fangst-gjedde-overlay.is-active{display:flex;flex-direction:column-reverse}
@media(max-width:600px){#fangst-gjedde-fish{width:100%;bottom:auto}#fangst-gjedde-speech{bottom:auto}}
/* Move the bubble and fish together so they never collide during the swim. */
#fangst-gjedde-overlay.is-active{animation:fangst-gjedde-swim 11s ease-in-out both}
#fangst-gjedde-overlay.is-active #fangst-gjedde-fish{animation:none;transform:none}
/* v184: shared six-second lifecycle; enter and exit to the left. */
#fangst-gjedde-overlay{opacity:0;transform:translateX(-120vw);transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .35s;z-index:90}
#fangst-gjedde-overlay.is-active{animation:none;opacity:1;transform:translateX(0)}
#fangst-gjedde-overlay.exit{opacity:0;transform:translateX(-120vw)}
#fangst-gjedde-overlay.is-active #fangst-gjedde-fish{animation:fangst-finn-swim 1.2s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){#fangst-gjedde-overlay{transition:none}#fangst-gjedde-overlay.is-active #fangst-gjedde-fish{animation:none}}

#fangst-gjedde-overlay.laugh #fangst-gjedde-fish{animation:fangst-finn-laugh .17s ease-in-out 7 alternate}
#fangst-gjedde-overlay.shake #fangst-gjedde-fish{animation:fangst-finn-shake .13s ease-in-out 6 alternate}

/* Preserve the original PNG aspect ratio before and after image loading. */
#fangst-gjedde-fish{height:auto}
