
:root{--navy:#123f5a;--cream:#fff3d3;--gold:#ffcf58;--green:#39864f;--blue:#17769d}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#70b6bf;color:var(--navy);font:800 15px 'Nunito','Trebuchet MS',sans-serif}button{font:800 16px 'Nunito','Trebuchet MS',sans-serif;color:var(--navy);cursor:pointer;touch-action:manipulation;transition:filter .15s,transform .15s}button:hover{filter:brightness(1.07);transform:translateY(-2px)}button:active{transform:translateY(1px)}button:focus-visible{outline:3px solid white;outline-offset:4px}button:disabled{cursor:default;filter:saturate(.3);opacity:.7}#game{position:fixed;inset:0;width:100%;height:100%;outline:none;touch-action:none}.hud{position:fixed;top:22px;left:26px;display:flex;align-items:center;gap:12px;background:#164665d9;border:2px solid #f4e0a3;border-radius:45px;padding:8px 12px 8px 8px;box-shadow:0 5px 0 #17475a55,0 8px 25px #143f5633;pointer-events:auto}.avatar{width:59px;height:59px;border-radius:50%;border:3px solid #ffe9b6;background:radial-gradient(#f6d69b,#8bb2a0);position:relative;box-shadow:0 3px 0 #082e4a;font-size:34px;padding:0}.avatar b{position:absolute;font-size:11px;bottom:-5px;right:-3px;background:#e8c669;border:2px solid #fff0c8;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}.level-info{width:145px;color:#fff5de}.level-info strong{font-size:20px;text-shadow:0 2px 0 #0a354d}.level-info small{font-size:9px;display:block;margin-top:3px;color:#d7eceb}.xp-track{height:10px;background:#345e7a;border:1px solid #668da0;border-radius:20px;margin-top:4px;overflow:hidden}.xp-track i{display:block;height:100%;width:0;background:linear-gradient(#62e1ec,#23b2d3);border-radius:20px;transition:width .3s}.wallet{height:38px;border-radius:24px;background:#0d3654a8;display:flex;align-items:center;gap:7px;color:#fff6df;padding:3px 13px 3px 5px;border:1px solid #64828d55;font-size:18px;min-width:85px}.coin{background:radial-gradient(circle at 35% 30%,#ffeaa3,#f5b61e 65%);border:2px solid #fff0ad;border-radius:50%;font-size:17px;color:#ffdf79;width:27px;height:27px;display:grid;place-items:center;box-shadow:0 2px 0 #ab7919}.gems>span{font-size:29px;color:#52d5f5;text-shadow:2px 2px #1a618c,-1px -1px #c0f8ff}.round{border:2px solid #f6e1ab;border-radius:50%;background:linear-gradient(#fff8dc,#eacf91);box-shadow:0 4px 0 #b28c4d,0 5px 10px #183b5b44;display:flex;align-items:center;justify-content:center}.settings{width:41px;height:41px;font-size:26px;padding:0;color:#f9efd2;background:#224d68;border-color:#6c99a8;box-shadow:none}.place-label{position:fixed;top:116px;left:28px;display:flex;gap:12px;align-items:center;color:#fff9df;text-shadow:0 2px 5px #184c63}.place-label>span{font-size:30px;color:#e8e6ac}.place-label strong{display:block;font-size:18px}.place-label small{display:block;font-size:11px;font-weight:700;margin-top:3px;color:#ecf6dd}.parchment{border:2px solid #f5e1b0;border-radius:20px;background:linear-gradient(120deg,#fff9e7,#f8e7bd);box-shadow:0 4px 0 #b7955e33,0 6px 20px #183f5a22}#tutorial{position:fixed;top:27px;right:27px;display:flex;align-items:center;gap:12px;padding:17px 22px;max-width:330px}#tutorial>b{border:3px solid #faf7df;outline:1px solid #aec2c4;background:#24647f;color:white;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;flex-shrink:0;font-size:22px}#tutorial strong{font-size:16px}#tutorial p{font-size:11px;font-weight:700;line-height:1.5;margin:5px 0 0}#tutorial button{position:absolute;top:0;right:7px;border:0;background:none;font-size:20px;color:#82958c}#toast{position:fixed;top:145px;left:50%;transform:translate(-50%,-10px);opacity:0;pointer-events:none;background:#fff3d7;border:2px solid #edcd7d;border-radius:25px;padding:12px 23px;z-index:15;box-shadow:0 5px 15px #133f5b44;max-width:90%;text-align:center;font-size:13px;transition:.25s}#toast.show{opacity:1;transform:translate(-50%,0)}.compass{position:fixed;left:30px;bottom:155px;width:100px;height:100px;border-radius:50%;background:#faf1d8bd;border:3px solid #ecd7a4;box-shadow:0 5px 15px #10445d33;text-align:center}.compass>span{position:absolute;left:45%;top:5px;font-size:11px;color:#7c7b60}.compass>div{font-size:73px;line-height:90px;color:#558477}.compass>button{position:absolute;right:-26px;bottom:-5px;width:48px;height:48px;border-radius:50%;border:2px solid #fff0b8;background:#3f8a60;color:white;font-size:23px;line-height:22px;box-shadow:0 3px 0 #285d4d}.compass small{display:block;font-size:8px}.bottom-nav{position:fixed;bottom:35px;right:30px;display:flex;align-items:center;gap:15px}.bottom-nav .round{width:64px;height:64px;position:relative;flex-direction:column;font-size:26px}.bottom-nav .round small{position:absolute;bottom:-22px;font-size:10px;color:#fff6dc;text-shadow:0 2px 2px #164653}.cooler{height:54px;border-radius:15px;border:2px solid #f2ddb1;background:#fff3d5ed;display:grid;grid-template-columns:25px 1fr;gap:0 6px;padding:8px 13px;min-width:110px;box-shadow:0 4px 0 #a3895844}.cooler>span{font-size:24px;grid-row:1/3;color:#49899a}.cooler strong{font-size:14px}.cooler small{font-size:9px;color:#6d887d}.gold,.green,.blue{border:2px solid #ffedac;border-radius:40px;padding:15px 28px;box-shadow:inset 0 3px 0 #ffffff5e,0 5px 0 #ac812a,0 8px 20px #193b5333;background:linear-gradient(#ffdc76,#ffc23a);color:#5d4314;text-shadow:0 1px #fff2b3;font-size:21px;min-width:180px}.green{background:linear-gradient(#60a766,#32824c);border-color:#cde2a1;box-shadow:inset 0 3px 0 #ffffff35,0 5px 0 #24643e;color:#fffbe4;text-shadow:0 2px #276440}.blue{background:linear-gradient(#389abd,#176c94);color:#fff7de;border-color:#a7d6d1;box-shadow:inset 0 3px 0 #ffffff35,0 5px 0 #125678;text-shadow:0 2px #165777}.rod-icon{font-size:29px;margin-right:10px}kbd{background:#a6782629;color:#806024;border:1px solid #bf993c55;border-radius:4px;font:9px 'Nunito';padding:3px 5px;margin-left:15px}.keyboard-help{position:fixed;left:30px;bottom:24px;color:#f0f8de;font-size:10px;text-shadow:0 2px 3px #164b65;font-weight:700}.keyboard-help span{margin:0 8px}#dockPrompt{position:fixed;left:50%;bottom:130px;transform:translateX(-50%);display:none}#dockPrompt button{font-size:16px;min-width:200px;padding:12px 20px}#catchCard{position:fixed;left:50%;top:48%;transform:translate(-50%,-50%);pointer-events:none;z-index:16}#catchCard>div{animation:pop .4s both;min-width:260px;text-align:center;border:4px solid #f9db8d;border-radius:23px;background:#fff2d5ed;box-shadow:0 15px 40px #144b5d44;padding:20px 35px}#catchCard h2{margin:5px 0;font:30px 'Lilita One','Trebuchet MS';color:#1a5068}#catchCard small{color:#518874;font-size:11px}.fish-art{display:block;margin:5px auto;width:95px;height:60px;filter:drop-shadow(0 5px 0 #21454c19)}
dialog{color:var(--navy);padding:32px;border:5px solid #f4dda7;border-radius:30px;background:radial-gradient(ellipse at 25% 0,#fff9e7,#f8e8be);width:min(900px,94vw);max-height:90svh;box-shadow:0 0 0 2px #8c875b77,0 30px 80px #092f4f66;overflow:auto}dialog::backdrop{background:#103f5f6b;backdrop-filter:blur(5px)}.close{position:absolute;right:16px;top:13px;border:2px solid #c4ae78;background:#faf0d2;border-radius:50%;width:34px;height:34px;padding:0;z-index:2;font-size:26px;color:#6d795f}.dialog-title{font:38px 'Lilita One','Trebuchet MS',sans-serif;font-weight:900;margin:0 40px 5px 0;letter-spacing:.2px}.dialog-sub{font-size:13px;font-weight:700;color:#697b6b;line-height:1.6;margin:0 0 24px}.brand-title{font:76px/.88 'Lilita One','Trebuchet MS',sans-serif;font-weight:900;letter-spacing:-2px;transform:rotate(-4deg);text-shadow:0 5px 0 #14617f,3px 0 0 #14617f,-3px 0 0 #14617f,0 -3px 0 #14617f,0 8px 0 #133d55;color:#fff4c6;-webkit-text-stroke:1px #164c6b;margin:20px 0 25px}.brand-title small{display:block;font-size:48px;color:#fff8e6}.brand-title .title-fish{font-size:46px;-webkit-text-stroke:0;vertical-align:middle;margin-left:7px}.home-menu{border-color:#fff0c8;width:min(550px,94vw);text-align:center;padding:35px;background:linear-gradient(#164b6255,#0a4a6699),url('assets/lake.png') 57% center/cover;color:#fff6d9}.home-menu::backdrop{background:linear-gradient(#26728d44,#26728d55),url('assets/lake.png') center/cover;backdrop-filter:blur(2px)}.home-menu .tagline{font-size:17px;line-height:1.4;text-shadow:0 2px 3px #16475c;margin:35px auto 28px;max-width:280px}.home-menu .menu-buttons{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:280px}.menu-buttons button{width:100%;font-size:24px;padding:12px 24px}.menu-help{font-size:11px;text-shadow:0 2px 3px #164b65;line-height:1.7;margin:25px auto 0;max-width:350px}.spot-list{display:flex;flex-direction:column;gap:12px}.spot{display:grid;grid-template-columns:170px 1fr 50px;gap:22px;align-items:center;background:#fff5da;border:2px solid #ead5a6;border-radius:20px;padding:10px;position:relative;box-shadow:0 4px 0 #d9bf8d44}.spot .preview{height:105px;border-radius:13px;overflow:hidden;position:relative;background:linear-gradient(#a7dddc 40%,#56a0ad 41%,#74b0a1 66%,#3f8b9b);display:flex;align-items:end;justify-content:center;font-size:65px;border:2px solid #fff2cb}.spot .preview.river{background:linear-gradient(140deg,#89adac 15%,#5b8d9b 16%,#a2cdd6 40%,#d2e8e7 42%,#6fb6cc 55%,#718d91 56%,#b6c9bc 72%,#6da8b2 73%)}.spot .preview.cove{background:linear-gradient(#a9e3eb 42%,#6dd2ce 43%,#22a7bb 70%,#f2dba0 71%)}.spot h2{font-size:23px;margin:0 0 4px}.spot p{font-size:12px;line-height:1.5;margin:0;color:#627b70}.spot .fish-row{display:flex;gap:6px;margin-top:9px}.fish-row svg{width:29px;height:18px}.spot button{border:2px solid #e1e9b4;background:#3c8650;color:#fff4cf;border-radius:50%;width:43px;height:43px;padding:0;font-size:32px;box-shadow:0 3px 0 #29613f}.spot.locked .preview{filter:saturate(.4);opacity:.75}.spot.locked button{background:#8e9c84}.lock-note{font-size:11px;color:#957b49;margin-top:8px;font-weight:900}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fish-tile{background:#fff7e1;border:2px solid #e8d4a2;border-radius:16px;text-align:center;padding:15px 10px}.fish-tile h3{font-size:14px;margin:8px 0 4px}.fish-tile small{font-size:11px;color:#6f8779}.fish-tile .fish-art{width:85px;height:50px}.fish-tile.unknown .fish-art{filter:brightness(.5);opacity:.25}.market-hero{height:160px;border-radius:17px;background:linear-gradient(0deg,#16425955,transparent),url('assets/market.png') center 58%/cover;margin-bottom:20px;display:flex;align-items:end;padding:18px}.market-hero span{background:#fff3d8e8;padding:12px 18px;border-radius:16px;max-width:260px;font-size:13px}.trade-total{display:flex;justify-content:space-between;align-items:center;margin:20px 0;gap:20px}.trade-total strong{display:block;font-size:31px}.trade-total small{font-size:11px;color:#7a8b75}.trade-total button{font-size:22px}.tabs{display:flex;gap:10px;margin:20px 0}.tabs button{background:#f2dfb1;border:2px solid #d6bd85;border-radius:12px;padding:12px 20px}.tabs button.selected{background:#ffdc7c}.upgrade-card{display:grid;grid-template-columns:1fr 1fr;gap:20px;border:2px solid #e6d0a0;border-radius:20px;padding:20px;background:#fff6dc}.upgrade-card img{width:100%;height:190px;object-fit:contain;mix-blend-mode:multiply}.upgrade-card h2{margin:4px 0 12px;font-size:26px}.upgrade-card p{font-size:12px;line-height:1.7;color:#668171}.upgrade-card button{font-size:18px;min-width:150px;padding:12px 18px}.stat-line{display:flex;justify-content:space-between;font-size:12px;margin:10px 0}.stat-line b{color:#329270}.levelup{text-align:center}.levelup .dialog-title{font-size:50px;color:#e9b73a;-webkit-text-stroke:1px #ba8528;margin:20px 0;text-shadow:0 3px #fff6d3}.level-banner{font-size:24px;background:#ffdb7c;border-radius:12px;padding:12px;display:inline-block;margin-bottom:20px}.unlocks{display:flex;gap:14px;justify-content:center;margin:15px 0 28px}.unlock{background:#fff6db;border:2px solid #e4ce9c;border-radius:15px;padding:20px;max-width:220px;font-size:13px}.unlock b{display:block;font-size:28px;margin-bottom:8px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #e3cfa0;font-size:14px}.setting-row button{padding:8px 18px;border-radius:20px;border:2px solid #b8c99c;background:#488758;color:white}.muted{font-size:12px;color:#74856e;line-height:1.7}.joystick{display:none}
@keyframes pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes swim{50%{transform:translateY(-12px) rotate(-6deg)}}@keyframes load{50%{transform:translateX(90%)}}@media(max-width:1050px){#tutorial{top:120px;right:20px;max-width:250px;padding:13px 17px}#tutorial strong{font-size:14px}#tutorial p{font-size:10px}}@media(max-width:700px){.hud{top:12px;left:12px;right:12px;gap:8px;padding:5px 9px 5px 5px}.avatar{width:44px;height:44px;font-size:27px}.level-info{width:90px;flex:1;max-width:140px}.level-info strong{font-size:16px}.level-info small{font-size:7px}.xp-track{height:8px}.wallet{min-width:63px;font-size:14px;height:32px;padding-right:8px;gap:5px}.coin{width:23px;height:23px}.gems{min-width:50px}.gems>span{font-size:23px}.settings{width:30px;height:30px;font-size:21px}.place-label{top:84px;left:15px;gap:8px}.place-label strong{font-size:16px}.place-label small{font-size:9px}.place-label>span{font-size:25px}#tutorial{top:143px;right:14px;max-width:205px;padding:12px;gap:8px;border-radius:15px}#tutorial>b{width:29px;height:29px;font-size:16px}#tutorial strong{font-size:12px}#tutorial p{font-size:9px}.compass{left:18px;bottom:182px;width:66px;height:66px;opacity:.9}.compass>div{font-size:47px;line-height:59px}.compass>span{font-size:8px;top:2px}.compass>button{width:38px;height:38px;right:-17px;bottom:-7px;font-size:19px;line-height:18px}.bottom-nav{bottom:27px;left:15px;right:15px;gap:9px;justify-content:space-between}.bottom-nav .round{width:47px;height:47px;font-size:22px;flex-shrink:0}.bottom-nav .round small{font-size:8px;bottom:-18px}.cooler{min-width:76px;padding:6px 8px;height:45px;gap:0 3px;grid-template-columns:20px 1fr}.cooler strong{font-size:11px}.cooler small{font-size:8px}.cooler>span{font-size:19px}.bottom-nav .gold{min-width:125px;padding:12px 14px;font-size:18px;flex:1;max-width:210px}.rod-icon{font-size:23px;margin-right:7px}kbd,.keyboard-help{display:none}.joystick{display:block;position:fixed;bottom:97px;left:24px;width:90px;height:90px;background:#fff8db25;border:2px solid #fff0c775;border-radius:50%;touch-action:none;backdrop-filter:blur(2px)}#stick{position:absolute;left:25px;top:25px;width:36px;height:36px;border:2px solid #ffebaf;background:#f1e6bbad;border-radius:50%;box-shadow:0 4px 10px #20485a44;pointer-events:none}#dockPrompt{bottom:105px;left:65%;width:max-content}#dockPrompt button{font-size:12px;min-width:150px;padding:10px 13px}#toast{top:86px;font-size:11px;padding:10px 16px;width:max-content}dialog{padding:25px 17px;border-radius:23px}.dialog-title{font-size:29px;margin-right:35px}.dialog-sub{font-size:11px;margin-bottom:16px}.spot{grid-template-columns:99px 1fr 30px;gap:12px;padding:8px;border-radius:16px}.spot .preview{height:92px;font-size:40px}.spot h2{font-size:17px}.spot p{font-size:10px}.spot button{width:29px;height:29px;font-size:22px}.lock-note{font-size:9px}.fish-row svg{width:22px}.spot .fish-row{gap:2px}.brand-title{font-size:66px}.brand-title small{font-size:43px}.home-menu .tagline{font-size:15px;margin:30px auto 23px}.home-menu .menu-buttons{max-width:250px}.menu-buttons button{font-size:21px;padding:11px 20px}.menu-help{font-size:10px}.grid{grid-template-columns:repeat(2,1fr)}.fish-tile h3{font-size:12px}.trade-total{gap:10px}.trade-total strong{font-size:25px}.trade-total button{font-size:18px;padding:12px 20px;min-width:140px}.market-hero{height:140px}.upgrade-card{gap:12px;padding:13px;grid-template-columns:100px 1fr}.upgrade-card img{height:170px}.upgrade-card h2{font-size:20px}.upgrade-card p{font-size:10px}.stat-line{font-size:10px}.upgrade-card button{font-size:15px;min-width:130px;padding:10px}.tabs button{font-size:12px;padding:10px 17px}.levelup .dialog-title{font-size:43px}.level-banner{font-size:20px}.unlocks{gap:8px}.unlock{padding:13px;font-size:10px}.unlock b{font-size:23px}}
@media(max-height:540px) and (min-width:700px){.hud{top:10px;left:15px;transform:scale(.8);transform-origin:top left}.place-label{top:92px;left:20px}#tutorial{top:18px;right:20px;max-width:235px}.bottom-nav{bottom:23px}.compass{bottom:105px;transform:scale(.75);transform-origin:bottom left}.keyboard-help{bottom:10px}#dockPrompt{bottom:100px}.home-menu .brand-title{font-size:50px;margin:0}.home-menu .brand-title small{font-size:32px}.home-menu .tagline{margin:20px auto 15px}.home-menu .menu-buttons{gap:10px}.menu-buttons button{font-size:18px;padding:8px}.menu-help{margin:18px auto 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
 .avatar img{width:100%;height:100%;border-radius:50%;display:block}.brand-title img.title-fish{width:65px;height:50px;vertical-align:middle;display:inline-block;filter:drop-shadow(0 4px 0 #124e68)}
 #dockArrow{display:inline-block;font-size:22px;line-height:20px}.compass small{white-space:nowrap;font-size:7px}
.spot .preview,.spot .preview.river,.spot .preview.cove{background-image:url('assets/spots-reference.png');background-size:718% 753%;background-position:78.5% 26.7%;background-repeat:no-repeat;font-size:0}.spot .preview.river{background-position:78.5% 43.4%}.spot .preview.cove{background-position:78.5% 60%}
