.fishing-entry{position:relative;isolation:isolate;overflow:hidden;border:1px solid #3b7381;border-radius:15px;background:#082b3a;margin:24px 0;display:flex;align-items:center;gap:24px;padding:30px 32px;min-height:218px}.fishing-entry>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.fishing-entry:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#061f2bef 15%,#0a2636b8 60%,#06273955)}.fishing-entry .eyebrow{color:#98dce0}.fishing-entry h2{font-size:34px;margin:12px 0 8px;color:#f7e8bc}.fishing-entry p{max-width:460px;color:#cee2e4;line-height:1.65;font-size:14px;margin:0}.fishing-entry .button{margin-left:auto;white-space:nowrap}.fishing-entry .pill{position:absolute;right:24px;top:18px;background:#173d44;color:#b6fff1;border-color:#5c9e98}
.fishing-dialog{width:min(960px,96vw);max-width:960px;background:#081f2c;color:#e3f0ee;border-color:#48777f;padding:0;overflow:auto}.fishing-dialog .game-header{background:#112e3b;padding:18px 24px;gap:12px}.fishing-dialog .game-header h2{font-size:28px;color:#f1deb5}.fishing-dialog .game-header .eyebrow{color:#9dccce}.fishing-dialog .game-header-right{margin-left:auto}.fishing-hud{display:flex;justify-content:space-around;gap:10px;padding:13px 16px;background:#08212b;border-bottom:1px solid #3e777966}.fishing-hud>div{display:flex;align-items:center;gap:12px}.fishing-hud span{color:#a9c6c9;font-size:12px}.fishing-hud strong{font-size:22px;font-variant-numeric:tabular-nums;color:#fae4a9}.fishing-stage{height:440px;position:relative;background:#092c43 url('/fishing-ocean.webp') center/cover}.fishing-stage canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.fishing-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#07253566;backdrop-filter:blur(3px)}.fishing-overlay[hidden]{display:none}.fishing-overlay>div{max-width:420px;width:100%;padding:26px 22px;text-align:center;border:1px solid #91cac388;border-radius:18px;background:#092937ec;box-shadow:0 12px 50px #0005}.fishing-overlay h3{font-size:30px;color:#f8dfa4;margin:4px 0 15px}.fishing-overlay p{color:#c3dedd;font-size:14px;line-height:1.7}.fishing-overlay .button{min-width:170px;margin-top:10px}.fishing-controls{padding:14px 22px 12px;background:#102d39}.fishing-control-row{display:flex;gap:12px;align-items:center}.fish-power{display:flex;align-items:center;gap:8px;flex:1;font-size:13px;color:#c9dada}.fish-power button{width:44px;min-height:44px;border:1px solid #63858a;border-radius:50%;background:#193c4b;color:#b6d2d6}.fish-power button.active{background:#ecd198;color:#1a3840;border-color:#fff0b4;box-shadow:0 0 0 3px #e7c27620}.fishing-controls p{font-size:12px;color:#a8c3c7;line-height:1.5;margin:10px 0 0}.fishing-controls .fish-hint{color:#e5ebd5}.fishing-note{text-align:center;font-size:11px;color:#9ababc;padding:10px 14px;border-top:1px solid #43657055;margin:0}.fishing-dialog button:focus-visible,.fishing-dialog canvas:focus-visible{outline:2px solid #fff0b4}
@media(max-width:760px){.fishing-entry{padding:24px 19px;display:block;min-height:245px}.fishing-entry h2{font-size:29px}.fishing-entry .button{margin-top:19px}.fishing-entry .pill{top:14px;right:14px;font-size:9px}.fishing-entry p{max-width:90%;font-size:13px}.fishing-dialog{width:100%;height:100dvh;max-height:100dvh;max-width:100%;margin:0;border-radius:0;display:flex;flex-direction:column}.fishing-dialog:not([open]){display:none}.fishing-dialog .game-header{padding:13px 14px;flex-shrink:0}.fishing-dialog .game-header h2{font-size:23px;margin-bottom:0}.fishing-dialog .game-header .eyebrow{font-size:8px}.fishing-dialog .game-header-right{gap:5px}.fishing-dialog .game-header [data-sound-toggle]{font-size:11px}.fishing-hud{padding:10px 12px;flex-shrink:0}.fishing-hud>div{display:block;text-align:center}.fishing-hud span{display:block;font-size:10px;margin-bottom:4px}.fishing-hud strong{font-size:22px}.fishing-stage{flex:1;min-height:180px;height:auto}.fishing-overlay h3{font-size:26px}.fishing-controls{flex-shrink:0;padding:10px 14px}.fishing-controls p{font-size:11px;margin-top:6px}.fishing-note{flex-shrink:0;font-size:10px;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.fishing-control-row{gap:8px}.fish-power{gap:6px}.fish-power button{width:42px;min-height:42px}.fishing-control-row .button{padding:8px 13px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.fishing-overlay{backdrop-filter:none}}
.fishing-dialog{max-height:96dvh;display:flex;flex-direction:column;overflow:hidden}.fishing-dialog:not([open]){display:none}.fishing-dialog .game-header,.fishing-hud,.fishing-controls,.fishing-note{flex-shrink:0}.fishing-stage{flex:1;min-height:260px;height:440px}.fishing-controls{position:relative;z-index:3}.fish-bank-dock{display:flex;gap:10px;margin-top:10px}.fish-bank-dock .button{flex:1;min-height:44px;font-size:14px}.fishing-overlay{z-index:5}.fishing-overlay>form{width:min(400px,100%);background:#0a2b3bf5;border:1px solid #ab9769;border-radius:18px;padding:24px;box-shadow:0 20px 90px #0008;text-align:center}.fishing-overlay form h3{margin:8px 0 18px}.fishing-overlay form label{display:block;text-align:left;color:#c8dedf;font-size:12px;margin-bottom:8px}.fishing-overlay input{width:100%;background:#061c29;color:#ffe4a8;border:1px solid #66818a;border-radius:9px;padding:12px 14px;font-size:22px;font-variant-numeric:tabular-nums;box-sizing:border-box}.fish-load-presets{display:flex;gap:8px;margin-top:10px}.fish-load-presets button{flex:1;min-height:40px;border:1px solid #69775f;border-radius:22px;background:#183b43;color:#f1dca6}.fish-bank-actions{display:flex;gap:10px}.fish-bank-actions .button{min-width:0;flex:1;font-size:13px}.fish-bank-actions .button:disabled{opacity:.5}#fish-bank-error{color:#ffb8a8;min-height:0;margin:0}#fish-status{min-height:18px}.fish-guide{margin-top:8px;color:#b9d2d1;font-size:11px}.fish-guide summary{cursor:pointer;width:max-content;padding:4px 0}.fish-guide[open]{position:absolute;bottom:100%;left:12px;right:12px;background:#092c3af5;border:1px solid #496977;border-radius:12px;padding:14px;box-shadow:0 -10px 40px #0007}.fish-guide[open] summary{color:#f3d99a;margin-bottom:8px}#fish-guide-list{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-height:260px;overflow:auto}#fish-guide-list>div{display:grid;grid-template-columns:48px 1fr;align-items:center;column-gap:5px;padding:5px;background:#153744;border-radius:8px}#fish-guide-list i{grid-row:span 3;width:48px;height:48px;background-image:url('/fishing-fish-v17.webp');background-size:300% 300%}#fish-guide-list span{font-size:11px}#fish-guide-list b{color:#ffe2a0;font-size:12px}#fish-guide-list small{color:#98b4c0;font-size:9px}.fish-boss-victory{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;background:radial-gradient(ellipse,#dab23544 0%,#021b3700 68%);text-shadow:0 4px 6px #331c09,0 0 28px #ffaf00}.fish-boss-victory[hidden]{display:none}.fish-boss-victory>span{font-weight:900;font-size:clamp(18px,4vw,30px);letter-spacing:.26em;color:#fff8d0}.fish-boss-victory>strong{font-size:clamp(30px,6vw,64px);font-weight:900;color:#ffda72;line-height:1.5}.fish-boss-victory>b{font-size:clamp(23px,5vw,46px);color:#fff6cd}.fish-boss-victory:before,.fish-boss-victory:after{content:'';position:absolute;left:50%;top:50%;width:220px;height:220px;border:3px solid #ffe9a6;border-radius:50%;transform:translate(-50%,-50%);opacity:0}.fish-boss-victory.celebrate:before{animation:fish-shock 1.6s ease-out}.fish-boss-victory.celebrate:after{animation:fish-shock 1.6s .2s ease-out}.fish-boss-victory.celebrate>strong,.fish-boss-victory.celebrate>b{animation:fish-prize .6s cubic-bezier(.2,.8,.25,1.2) both}.fish-boss-sparks{position:absolute;left:50%;top:50%}.fish-boss-sparks i{position:absolute;width:8px;height:16px;border-radius:3px;background:linear-gradient(#fff2b9,#e2a738);box-shadow:0 0 14px #ffcc49;animation:fish-spark 2.5s var(--delay) ease-out both}@keyframes fish-shock{0%{opacity:.85;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(3)}}@keyframes fish-prize{from{opacity:0;transform:translateY(22px) scale(.72)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fish-spark{0%{opacity:0;transform:rotate(var(--a)) translateY(0)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d) * 2)) rotate(230deg)}}
@media(max-width:760px){.fishing-dialog{max-height:100dvh}.fishing-stage{min-height:150px;height:auto}.fishing-controls{padding:9px 12px 6px}.fish-bank-dock{gap:8px;margin-top:8px}.fish-bank-dock .button{font-size:12px;padding:9px 8px}.fishing-note{font-size:9px;line-height:1.5}.fishing-overlay>form{padding:18px;max-height:100%;overflow:auto}.fishing-overlay form h3{font-size:24px;margin:4px 0 12px}.fishing-overlay p{font-size:12px;margin:9px 0}.fishing-overlay input{padding:8px 12px}.fish-bank-actions .button{margin-top:0}.fish-guide{margin-top:3px}.fish-guide[open]{padding:10px}#fish-guide-list{grid-template-columns:repeat(3,minmax(0,1fr));max-height:220px}#fish-guide-list>div{display:flex;flex-direction:column;text-align:center;padding:5px 2px;gap:2px}#fish-guide-list span{font-size:9px}#fish-guide-list i{width:48px;height:48px}.fishing-hud strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.fish-boss-victory.celebrate:before,.fish-boss-victory.celebrate:after,.fish-boss-victory.celebrate>strong,.fish-boss-victory.celebrate>b,.fish-boss-sparks i{animation:none}.fish-boss-sparks{display:none}}
@media(max-width:760px) and (max-height:600px){.fishing-dialog .game-header{padding:7px 12px}.fishing-dialog .game-header h2{font-size:19px}.fishing-hud{padding:6px 12px}.fishing-hud strong{font-size:17px}.fishing-note,.fishing-controls .fish-hint,.fish-guide{display:none}.fishing-controls{padding:7px 12px}.fish-bank-dock{margin-top:5px}.fishing-stage{min-height:110px}.fishing-overlay{padding:8px}.fishing-overlay>form{padding:12px}}

/* Cashout summary and explicit exit confirmation. */
.fish-guide{font-size:13px}.fish-guide[open]{max-height:64dvh;overflow:auto}.fish-guide p{font-size:14px;line-height:1.65}#fish-guide-list span{font-size:12px}#fish-guide-list b{font-size:14px}#fish-guide-list small{font-size:12px}
@media(max-width:360px){#fish-guide-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fish-result-actions{display:flex;gap:10px}.fish-result-actions .button{flex:1;min-width:0;margin-top:12px;font-size:14px;padding:10px 12px}.fish-result-actions [hidden]{display:none}
.fishing-overlay>div{max-height:100%;overflow:auto}
#fish-settlement{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0;text-align:left}#fish-settlement[hidden]{display:none}#fish-settlement>div{padding:10px;background:#143a46;border-radius:10px}#fish-settlement dt{font-size:12px;color:#b3ced0}#fish-settlement dd{margin:6px 0 0;font-size:20px;font-weight:700;color:#f9e6b3}#fish-settlement .positive dd{color:#9aefd5}#fish-settlement .negative dd{color:#ffb7a2}
.fish-exit-confirm{width:min(430px,calc(100vw - 32px));padding:26px;background:#0b2937;color:#e0efed;border:1px solid #b99b60;border-radius:18px}.fish-exit-confirm h2{font-size:27px;color:#f1d797;margin:14px 0}.fish-exit-confirm p{font-size:15px;line-height:1.7;color:#c1d9d9}.fish-exit-confirm .eyebrow{color:#a9ced0}.fish-exit-actions{display:flex;gap:10px;margin-top:22px}.fish-exit-actions .button{flex:1;min-width:0;min-height:46px;padding:10px 12px;font-size:14px}.fish-exit-confirm::backdrop{background:#02121fc9;backdrop-filter:blur(4px)}
@media(max-width:360px){.fish-result-actions{gap:6px}.fish-result-actions .button{font-size:13px;padding:10px 8px}#fish-settlement{gap:6px;margin:10px 0}#fish-settlement>div{padding:8px}#fish-settlement dd{font-size:18px}.fish-exit-confirm{padding:20px}}

/* Arcade weapons and whole-table boss celebration. */
.fishing-hud span{font-size:12px}.fishing-hud strong{font-size:24px}
#fish-score{color:#ffe899}#fish-value{color:#a6ecdc}
#fish-weapon{font-weight:600;font-size:14px;max-width:92px;line-height:1.3;color:#d9f9ff}
.fish-power{gap:9px}.fish-power button{position:relative;width:51px;min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:#082531;border-color:#346674;padding:2px 4px}
.fish-power button i{display:block;width:36px;height:36px;background:url('/fishing-weapons-v19.webp') 0 0/300% 200% no-repeat}
.fish-power button[data-fish-power="2"] i{background-position:50% 0}.fish-power button[data-fish-power="3"] i{background-position:100% 0}
.fish-power button b{font-size:13px;line-height:1.25;font-weight:600}
.fish-power button.active{color:#d4ffff;background:#124350;border-color:#6ceaff;box-shadow:0 0 18px #64efff25}
.fish-power button.active[data-fish-power="2"]{color:#edd8ff;background:#3b2655;border-color:#c794ff;box-shadow:0 0 18px #bc6cff33}
.fish-power button.active[data-fish-power="3"]{color:#fff0b2;background:#493722;border-color:#ffcb58;box-shadow:0 0 18px #ffc44b33}
.fishing-stage{overflow:hidden}.fishing-controls{box-shadow:0 -8px 28px #07192260}.fishing-controls #fish-status{font-size:12px;line-height:1.5;min-height:18px}
.fishing-note{font-size:12px;line-height:1.45}
.fish-boss-victory{z-index:9;overflow:hidden;gap:5px;background:radial-gradient(ellipse at center,#071722dd 0%,#062330aa 45%,#16374a55 100%);border:2px solid #f5d883;box-shadow:inset 0 0 90px #ddaf3040;text-shadow:0 3px 8px #03111d,0 0 20px #fdbc5350}
.fish-boss-victory .fish-boss-art{position:relative;display:block;width:220px;height:220px;background:url('/fishing-fish-v17.webp') 100% 100%/300% 300% no-repeat;filter:drop-shadow(0 0 30px #edb84988)}
.fish-boss-victory>span{position:relative;font-size:clamp(20px,4vw,30px);letter-spacing:.18em;color:#ffecb1}
.fish-boss-victory>strong{position:relative;font-size:clamp(32px,5vw,56px);line-height:1.3}
.fish-boss-victory>b{position:relative;font-size:clamp(29px,5vw,49px)}
.fish-boss-victory>small{position:relative;font-size:14px;margin-top:9px;color:#cce9e8;text-shadow:0 2px 4px #001f2b}
.fish-boss-rays{position:absolute;width:180%;height:180%;background:repeating-conic-gradient(from 0deg,#efc05030 0deg 7deg,transparent 7deg 24deg);mask-image:radial-gradient(ellipse,#000 10%,transparent 65%);animation:fish-rays 16s linear infinite}
.fish-boss-victory.celebrate .fish-boss-art{animation:fish-trophy .9s cubic-bezier(.18,.85,.22,1.1) both}
.fish-boss-victory.celebrate:before,.fish-boss-victory.celebrate:after{border-width:5px;animation-duration:2.1s}
.fish-boss-sparks{inset:0;position:absolute;overflow:hidden}
.fish-boss-sparks i{left:var(--x);top:-10%;width:7px;height:17px;box-shadow:0 0 10px #ffdc6270;animation:fish-confetti 3.6s var(--delay) cubic-bezier(.13,.55,.37,1) both}
.fish-boss-sparks i:nth-child(3n){background:#a7f8ff}.fish-boss-sparks i:nth-child(4n){background:#dabbff;width:5px;height:12px}
@keyframes fish-rays{to{transform:rotate(360deg)}}
@keyframes fish-trophy{from{opacity:0;transform:translateY(55px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes fish-confetti{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate(calc(var(--turn) * 90px),110vh) rotate(calc(var(--turn) * 650deg))}}
@media(max-width:760px){.fishing-hud span{font-size:12px}.fishing-hud strong{font-size:22px}.fish-power{gap:6px}#fish-weapon{font-size:13px;max-width:72px}.fish-power button{width:47px;min-height:57px}.fishing-note{font-size:11px}.fish-boss-victory .fish-boss-art{width:210px;height:210px}.fish-boss-victory>strong{font-size:34px}.fish-boss-victory>span{font-size:20px}.fish-boss-victory>b{font-size:34px}}
@media(max-width:360px){#fish-weapon{max-width:48px;font-size:12px}.fish-power button{width:43px}.fishing-control-row .button{padding:8px 10px}.fishing-hud span{font-size:11px}}
@media(max-height:600px){.fish-boss-victory .fish-boss-art{width:140px;height:140px}.fish-boss-victory>strong{font-size:28px}.fish-boss-victory>span,.fish-boss-victory>b{font-size:24px}.fish-boss-victory>small{margin-top:0}}
@media(prefers-reduced-motion:reduce){.fish-boss-rays,.fish-boss-victory.celebrate .fish-boss-art{animation:none}.fish-boss-sparks{display:none}}

/* Give the desktop pool most of the screen; controls remain below it. */
@media(min-width:761px){
 .fishing-dialog{width:min(1440px,96vw);max-width:1440px;height:94vh;height:94dvh;max-height:94dvh}
 .fishing-dialog .game-header{padding:12px 22px}
 .fishing-stage{height:auto;min-height:180px;flex:1 1 auto}
 .fishing-controls{padding:10px 22px 8px}
 .fish-bank-dock{margin-top:6px}
 .fishing-note{padding:6px 14px}
}

/* Weapon choice and stake are independent; the pool remains the primary surface. */
.fishing-controls .fishing-control-row{display:grid;grid-template-columns:minmax(340px,1fr) auto auto;gap:18px}
.fish-weapon-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fish-weapon-picker button{--weapon-color:#61eaff;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:58px;padding:5px 9px;color:#bcdae0;background:#082632;border:1px solid #3c606c;border-radius:10px;text-align:left;cursor:pointer}
.fish-weapon-picker button[data-fish-weapon="pierce"]{--weapon-color:#c78bff}
.fish-weapon-picker button[data-fish-weapon="net"]{--weapon-color:#ffcc55}
.fish-weapon-picker button.active{border-color:var(--weapon-color);background:#123c49;box-shadow:inset 0 -2px var(--weapon-color);color:#fff}
.fish-weapon-picker button:disabled{opacity:.5;cursor:default}
.fish-weapon-picker i{flex:0 0 44px;width:44px;height:44px;background:url('/fishing-weapons-v19.webp') 0 0/300% 200% no-repeat}
.fish-weapon-picker [data-fish-weapon="pierce"] i{background-position:50% 0}
.fish-weapon-picker [data-fish-weapon="net"] i{background-position:100% 0}
.fish-weapon-picker b{display:block;font-size:14px;line-height:1.4;font-weight:650}
.fish-weapon-picker small{display:block;font-size:12px;color:#b1c8cf;line-height:1.4}
.fishing-controls .fish-power{gap:6px;flex:none}
.fishing-controls .fish-power button{width:43px;min-height:44px;border-radius:9px;padding:5px}
.fishing-controls .fish-power button b{font-size:16px}
.fishing-controls .fish-power button.active{color:#fff0b2;background:#493722;border-color:#ffcb58;box-shadow:none}
#fish-weapon{font-size:14px;font-weight:400;max-width:65px;color:#c1d7d8}
.fish-wave-banner{position:absolute;left:18px;top:16px;z-index:2;display:grid;gap:3px;max-width:calc(100% - 36px);padding:10px 15px;border-left:3px solid #f4ce7c;border-radius:0 9px 9px 0;background:linear-gradient(90deg,#061f31e8,#082734b8);pointer-events:none;box-shadow:0 5px 22px #02132133}
.fish-wave-banner[hidden]{display:none}
.fish-wave-banner span{color:#e3c480;font-size:12px;letter-spacing:.08em}
.fish-wave-banner strong{font-size:21px;color:#fff1c9;font-weight:600}
.fish-wave-banner small{font-size:13px;color:#bedcdd;line-height:1.4}
.fish-wave-banner[data-phase="incoming"]{border-color:#a6eeff}
.fish-wave-banner[data-phase="incoming"] span{color:#a6eeff}
.fish-guide summary{font-size:14px;min-height:24px}
@media(min-width:761px) and (max-width:1100px){.fishing-controls .fishing-control-row{grid-template-columns:minmax(290px,1fr) auto auto;gap:10px}.fish-weapon-picker i{display:none}}
@media(max-width:760px){
 .fishing-controls .fishing-control-row{grid-template-columns:1fr auto;gap:7px 10px}
 .fish-weapon-picker{grid-column:1/-1;gap:6px}
 .fish-weapon-picker button{gap:3px;padding:5px;min-height:53px}
 .fish-weapon-picker i{flex-basis:34px;width:34px;height:34px}
 .fish-weapon-picker b{font-size:14px}.fish-weapon-picker small{font-size:12px}
 .fishing-controls .fish-power button{min-height:40px;width:43px}
 .fishing-controls #fish-pause{min-height:40px;font-size:14px}
 #fish-weapon{max-width:none;font-size:14px;margin-right:5px}
 .fish-wave-banner{left:10px;top:10px;max-width:calc(100% - 20px);padding:7px 11px}
 .fish-wave-banner strong{font-size:18px}.fish-wave-banner small{font-size:12px}
 .fishing-controls .fish-guide{display:block}.fishing-controls .fish-guide[open]{max-height:65dvh}
}
@media(max-width:380px){.fish-weapon-picker i{display:none}.fish-weapon-picker button{text-align:center}.fish-weapon-picker small{font-size:12px}}
@media(max-height:600px){.fish-wave-banner small{display:none}.fish-wave-banner{padding:5px 10px}.fish-wave-banner strong{font-size:16px}}
@media(max-height:460px){.fishing-dialog{overflow-y:auto}.fishing-stage{flex:1 0 150px}.fishing-controls{flex-shrink:0}}
