:root{color-scheme:dark;--bg:#201d32;--panel:#2b283e;--ink:#fff0d4;--muted:#b8adc3;--peach:#f3bb9b;--gold:#f4d18e;--line:#454056;--pixel:"Press Start 2P",monospace;--body:"Trebuchet MS",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5}body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,#42354c55,transparent 70%)}[hidden]{display:none!important}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.65}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:5px}::selection{background:var(--peach);color:var(--bg)}
.shell{position:relative;width:min(1180px,100%);margin:auto;padding:26px 36px max(22px,env(safe-area-inset-bottom))}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:40px}.brand{display:flex;align-items:center;gap:13px;font:18px var(--pixel);letter-spacing:-1px;text-decoration:none}.brand img{image-rendering:pixelated;flex-shrink:0}.brand span{align-self:flex-end;margin:0 0 -2px -6px;color:var(--peach);font:italic 19px Georgia,serif;letter-spacing:0}.header-note{color:#b6a5b9;font:8px var(--pixel);letter-spacing:.5px}.back-link{color:var(--muted);text-decoration:none;font-size:12px}.back-link:hover{color:var(--ink)}
.lake-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;font:9px var(--pixel);color:var(--gold)}.lake-heading>div{display:flex;align-items:center;gap:10px}.live-dot{width:6px;height:6px;background:#b5ce9f;box-shadow:0 0 10px #b5ce9f55}.lake-tag{margin-left:7px;color:var(--muted);font:12px var(--body)}.weather{color:#c2afbc}.weather span{color:var(--gold);margin-left:10px;font:20px var(--body)}
.game{position:relative;isolation:isolate;aspect-ratio:16/9;background:#746479;overflow:hidden;border:3px solid #716074;box-shadow:0 0 0 1px #171625,0 18px 65px #0e0d1d66;touch-action:manipulation}#lake{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none}.game-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 65px #26213533}.hud{position:absolute;top:22px;left:23px;right:23px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.catch-hud{display:flex;align-items:center;gap:13px;padding:10px 13px;background:#2a263cdb;border:1px solid #aa8f9070;box-shadow:3px 3px 0 #25223644}.hud-label{font:8px var(--pixel);color:#d2b5b5}#score{font:16px var(--pixel);white-space:nowrap}#score span{font-size:10px;color:#ae9caa;margin-left:5px}.progress{display:flex;gap:3px}.progress i{width:6px;height:10px;background:#54445c;border-top:2px solid #675466}.progress i.filled{background:var(--gold);border-color:#fff0c8}.sound-button{pointer-events:auto;display:flex;gap:8px;align-items:center;background:#2a263ccb;border:1px solid #aa8f9070;color:var(--ink);padding:9px 12px;min-height:38px;font-size:20px}.sound-button span{font:10px var(--body)}
.overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:20px;background:#26203768;backdrop-filter:blur(1px);overflow:auto}.intro-overlay{background:linear-gradient(#28233765,#28233720 60%,#211e3455);text-align:center}.intro-copy{width:min(750px,100%);padding:10px 0 40px;text-shadow:2px 3px 0 #32293c55}.intro-badge{display:inline-block;margin-bottom:24px;padding:8px 12px;border:1px solid #f6d7b56b;color:var(--gold);font:8px var(--pixel);background:#2f293b66}.intro-copy h1{margin:0;font:clamp(17px,2.4vw,29px)/1.75 var(--pixel);color:#fff0cf;text-shadow:3px 3px 0 #5b435b;letter-spacing:-.6px}.reveal{animation:arrive .5s ease-out}.reveal p{margin:20px 0 22px;color:#fff1df;font-size:18px;line-height:1.65}.reveal strong{color:var(--gold);letter-spacing:1.5px}.reveal small{display:block;margin-top:18px;color:#f3dccc;font-size:11px}.intro-footer{position:absolute;bottom:17px;left:10px;right:10px;font-size:11px;color:#efd8c8aa}.pixel-button{display:inline-flex;align-items:center;justify-content:center;gap:23px;min-height:50px;padding:15px 20px;border:0;border-radius:0;font:9px/1.6 var(--pixel);text-decoration:none;box-shadow:0 4px 0 #b17a76,4px 0 0 #b17a76,-4px 0 0 #b17a76,0 -3px 0 #ffe0bc;transition:filter .15s,transform .1s}.pixel-button span{font:21px/1 var(--body)}.pixel-button:hover:enabled{filter:brightness(1.09)}.pixel-button:active:enabled{transform:translateY(3px)}.pixel-button.peach{background:var(--peach);color:#37283e}.pixel-button.dark{background:#382e46;color:#fff0d4;box-shadow:0 4px 0 #211b31,4px 0 0 #211b31,-4px 0 0 #211b31,0 -3px 0 #67546a}.pixel-button.biting{background:var(--gold);animation:button-bite .5s steps(2,end) infinite}
.controls{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:96px;padding:20px 4px 18px}.state-label{font:8px/1.8 var(--pixel);color:var(--peach)}.instructions p{margin:6px 0 0;color:#d3c2cf;font-size:13px;max-width:650px}.controls .pixel-button{min-width:230px;flex-shrink:0}.bottom-bar{display:flex;align-items:center;gap:28px;border-top:1px solid var(--line);padding:21px 2px 23px;margin-top:22px}.controls:not([hidden])+.bottom-bar{margin-top:0}.tiny-label{font:7px/1.8 var(--pixel);color:#c6b5c2}.collection-copy p{margin:5px 0 0;color:#9a8ca9;font-size:11px}.collection{display:flex;gap:12px}.fish-slot{position:relative;display:flex;align-items:center;justify-content:center;width:43px;height:33px;background:#2d293f;border:1px solid #484056;opacity:.45}.fish-slot canvas{width:35px;height:23px;image-rendering:pixelated;filter:grayscale(1)}.fish-slot.discovered{opacity:1;border-color:#a18b93}.fish-slot.discovered canvas{filter:none}.fish-slot.gold{border-color:#b9955a}.tip{margin-left:auto;text-align:right;color:#a99cb5;font-size:11px}.speech{position:absolute;left:50%;bottom:15%;transform:translateX(-50%);padding:10px 15px;max-width:72%;width:max-content;background:#fff0d6;color:#504357;border:2px solid #b8919a;font-size:12px;text-align:center;box-shadow:3px 3px 0 #392c4844;pointer-events:none}.speech::after{content:"";position:absolute;bottom:-7px;left:18px;width:8px;height:8px;background:#fff0d6;border-right:2px solid #b8919a;border-bottom:2px solid #b8919a;transform:rotate(45deg)}.bobber-hit{position:absolute;z-index:2;transform:translate(-50%,-50%);width:58px;height:62px;background:transparent;border:0;border-radius:50%;touch-action:manipulation}.bobber-hit:focus-visible{outline-offset:2px}.bobber-hit.biting{border:2px dashed #ffe1a9;background:#ffdc8522;animation:bobber-glow .6s ease-in-out infinite alternate}.bite-label{display:none;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);white-space:nowrap;padding:7px 9px;background:#ffe3a7;color:#43354a;font:9px var(--pixel);box-shadow:2px 2px 0 #4c375866}.biting .bite-label{display:block}.catch-toast{position:absolute;top:24%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:#2a263ce8;border:1px solid #e9c398;color:var(--gold);padding:12px 16px;max-width:90%;font:9px/1.8 var(--pixel);animation:arrive .2s ease-out;pointer-events:none}.catch-toast canvas{image-rendering:pixelated;width:42px;height:27px;flex-shrink:0}.achievement{position:absolute;z-index:4;bottom:20px;right:20px;display:flex;gap:12px;width:min(315px,calc(100% - 36px));padding:15px 17px;background:#30283eea;border:1px solid #caac7e;box-shadow:4px 4px 0 #211b3166;animation:arrive .3s ease-out;pointer-events:none}.achievement-star{font-size:27px;color:var(--gold)}.achievement small{font:6px/1.8 var(--pixel);color:var(--gold)}.achievement strong{display:block;font-size:14px;margin-top:4px}.achievement p{margin:3px 0 0;font-size:11px;color:#c9b6c9}
.prize-overlay{align-items:flex-start;z-index:6;background:#2520368c;backdrop-filter:blur(3px);padding:24px}.prize-card{margin-block:auto;flex-shrink:0;position:relative;width:min(460px,100%);padding:25px 30px 29px;background:#fff0d9;color:#41354d;text-align:center;border:4px solid #bb8f8a;box-shadow:0 0 0 4px #ead0ac,8px 9px 0 4px #1a19264d}.modal-eyebrow{display:block;font:7px/1.8 var(--pixel);color:#926e7d}.prize-card h2{margin:14px 0 20px;font:12px/1.85 var(--pixel);letter-spacing:-.3px}.trophy{display:flex;justify-content:center;align-items:center;gap:14px;color:#c4874e;font-size:24px;margin:0 0 14px}.trophy canvas{width:72px;height:48px;image-rendering:pixelated}.prize-card label{display:block;text-align:left;font-size:14px;line-height:1.5;margin-bottom:8px}.prize-card input{display:block;width:100%;border:2px solid #c5a2a2;border-radius:0;padding:13px 12px;background:#fff9ee;color:#45374c;font-size:16px;min-height:48px}.prize-card input::placeholder{color:#9a8593;font-size:13px}.prize-privacy{margin:10px 0 22px;text-align:left;font-size:13px;line-height:1.55;color:#77606d}.prize-card .pixel-button{width:100%;font-size:8px;gap:12px}.loader-card{padding-top:45px;padding-bottom:45px}.loading-fish{font:bold 29px monospace;color:#b67c77;animation:fish-swim 1s steps(4,end) infinite alternate}.loader-card h2{margin-top:30px}.loading-track{height:13px;border:2px solid #c5a2a2;padding:2px;margin:26px 0 18px;overflow:hidden}.loading-track span{display:block;width:35%;height:100%;background:#b78788;animation:loading 1.2s steps(5,end) infinite}.loader-card p{font-size:13px;color:#8a6e7e}.empty-bucket{display:block;font:66px/1.2 Georgia,serif;color:#b58a8b;margin:0 0 12px}.final-card>p{font-size:15px;line-height:1.7;color:#7e6574;margin-bottom:28px}.final-card small{display:block;font-size:11px;margin-top:21px;color:#9a7a86}
footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:19px;color:#94869e;font-size:10px}footer>span:last-child{font-size:8px;letter-spacing:.7px}footer>span:last-child span{color:var(--peach);font-size:13px;margin-left:9px}
@keyframes arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes button-bite{to{filter:brightness(1.13)}}@keyframes bobber-glow{to{box-shadow:0 0 0 7px #ffdf8922}}@keyframes loading{from{translate:-100% 0}to{translate:400% 0}}@keyframes fish-swim{to{transform:translateX(15px) rotate(-7deg)}}
@media(max-width:760px){.shell{padding:20px 18px max(20px,env(safe-area-inset-bottom))}.site-header{margin-bottom:27px}.brand{font-size:13px;gap:9px}.brand img{width:26px;height:26px}.brand span{font-size:16px}.header-note{display:none}.back-link{font-size:11px}.lake-heading{font-size:8px;margin-bottom:11px}.lake-tag{font-size:10px;margin-left:3px}.weather{font-size:8px}.game{aspect-ratio:4/5;border-width:2px}.hud{top:14px;left:12px;right:12px}.catch-hud{padding:9px;gap:9px}.hud-label{font-size:7px}#score{font-size:13px}#score span{font-size:8px}.progress{gap:2px}.progress i{width:4px;height:8px}.sound-button{padding:7px 9px;min-width:38px;justify-content:center}.sound-button span{display:none}.intro-copy{padding-bottom:24px}.intro-copy h1{font-size:clamp(12px,3.4vw,20px);line-height:1.95;letter-spacing:-.6px}.intro-badge{font-size:6px;padding:7px 9px;margin-bottom:20px}.reveal p{font-size:15px;margin:18px 0 24px}.pixel-button{font-size:8px;padding:13px 12px;min-height:47px;gap:12px}.reveal small{font-size:10px;margin-top:19px}.intro-footer{bottom:13px;font-size:9px}.controls{flex-direction:column;align-items:stretch;gap:18px;padding:19px 3px 22px}.state-label{font-size:7px}.instructions p{font-size:12px;min-height:36px;margin-top:7px}.controls .pixel-button{width:100%;min-width:0}.bottom-bar{flex-wrap:wrap;gap:14px;padding:19px 0;margin-top:18px}.collection-copy{width:100%}.collection{gap:9px}.fish-slot{width:37px;height:31px}.fish-slot canvas{width:31px;height:21px}.tip{font-size:10px;text-align:left;flex:1;max-width:85px}.speech{font-size:11px;max-width:82%;padding:8px 11px;bottom:20%}.catch-toast{top:21%;font-size:7px;padding:10px 12px;gap:8px}.achievement{bottom:14px;right:12px;padding:11px 13px;width:min(290px,calc(100% - 24px))}.achievement small{font-size:5px}.achievement strong{font-size:12px}.achievement p{font-size:10px}.prize-overlay{padding:15px;align-items:flex-start}.prize-card{padding:20px 18px 23px;border-width:3px;box-shadow:0 0 0 3px #ead0ac,5px 6px 0 3px #1a19264d}.prize-card h2{font-size:9px;line-height:1.9;margin:12px 0 16px}.trophy{margin-bottom:11px}.trophy canvas{width:54px;height:36px}.modal-eyebrow{font-size:6px}.prize-card label{font-size:12px;margin-bottom:7px}.prize-privacy{font-size:12px;margin:9px 0 18px}.prize-card .pixel-button{font-size:7px}.final-card>p{font-size:13px}.empty-bucket{font-size:45px}.loader-card{padding-top:35px;padding-bottom:35px}footer{flex-direction:column;align-items:flex-start;gap:9px;font-size:9px}footer>span:last-child{font-size:7px}}
@media(max-width:359px){.shell{padding-left:13px;padding-right:13px}.game{aspect-ratio:3/4}.progress{display:none}.collection{gap:6px}.fish-slot{width:34px}.tip{max-width:none;flex-basis:100%}.intro-copy h1{font-size:11px}.prize-card{padding-left:13px;padding-right:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
