:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#33463a;background:#e8e3d2;font-synthesis:none;font-size:15px;--ink: #344b3b;--muted: #737d66;--cream: #f7f0dd;--line: #d6ceb5;--green: #45694e;--gold: #d8ae68}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 50% 0,#f3ecd9,transparent 70%),#e5e1d0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b87644;outline-offset:4px}svg{width:24px;height:24px;flex-shrink:0}h1,h2,h3,p{margin:0}button{border:0}button,dialog{-webkit-tap-highlight-color:transparent}button:not(:disabled):hover{filter:brightness(1.045)}button:not(:disabled):active{transform:translateY(1px)}[hidden]{display:none!important}.game-shell{width:min(1320px,calc(100% - 64px));margin:0 auto}.masthead{height:96px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px}.brand>svg{width:42px;height:42px;color:#64815b;stroke-width:1.3}.brand h1{font-family:Georgia,serif;font-size:31px;letter-spacing:-1.1px;font-weight:400;line-height:1.1}.brand p{font:9px monospace;letter-spacing:2px;margin-top:8px;color:#7a816a}.version{font:10px monospace;border:1px solid #cdc9b2;border-radius:4px;padding:3px 5px;align-self:flex-start;margin-top:8px;color:#83866f}.wallet{border:1px solid #c8c8ad;background:#f3edda;box-shadow:0 3px #d4d2bd;display:flex;gap:10px;align-items:center;border-radius:7px;padding:10px 19px;min-width:117px}.wallet svg{color:#a17c39}.wallet strong{font:700 22px monospace}.wallet span{color:#8a8866;font-family:Georgia,serif}#stage{position:relative;width:100%;aspect-ratio:16/9;border:5px solid #3b5140;border-radius:9px;overflow:hidden;background:#4e8279;box-shadow:0 5px #c9c8b1,0 12px 32px #3f523621;isolation:isolate}#phaser-game{position:absolute;inset:0;touch-action:none}#phaser-game canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;width:100%!important;height:100%!important}.pond-label{position:absolute;top:25px;left:28px;color:#fff0ca;text-shadow:0 2px 2px #223d3b;pointer-events:none}.eyebrow{font:10px monospace;font-weight:700;letter-spacing:2px}.pond-label .eyebrow{font-size:10px;color:#ebd7a8}.pond-label h2{font: 30px Georgia,serif;margin:6px 0}.pond-label>span:last-child{font-size:12px;color:#f2e2bd}.afternoon{position:absolute;right:26px;top:28px;display:flex;gap:9px;align-items:center;border:1px solid #ddd2a877;background:#344e3ad9;color:#eddfb7;padding:8px 12px;border-radius:5px;font-size:11px;pointer-events:none}.sun-pixel{width:9px;height:9px;background:#efd194;box-shadow:0 -3px 0 -2px #efd194,0 3px 0 -2px #efd194,3px 0 0 -2px #efd194,-3px 0 0 -2px #efd194}.collection-peek{position:absolute;bottom:20px;left:22px;display:flex;align-items:center;gap:8px;color:#e4dfb9;font-size:11px;text-shadow:1px 2px #324a3a;pointer-events:none}.collection-peek svg{width:20px}#action-panel{position:absolute;bottom:21px;left:50%;transform:translate(-50%);width:360px;max-width:80%;text-align:center}#status{color:#fbefd0;font-size:13px;text-shadow:0 1px 3px #183c35,1px 1px #314c40;margin-bottom:10px}.primary{background:#f2d69b;border:2px solid #654e34;border-radius:5px;box-shadow:0 3px #463f2cc9,inset 0 1px #fff1c5;color:#493e2b;padding:12px 18px;font-weight:700;font-size:14px}.primary:disabled{background:#ded8c3;border-color:#c1bba6;box-shadow:none;color:#999780}#cast-button{min-width:246px;-webkit-user-select:none;user-select:none;touch-action:none}kbd{display:inline-block;border:1px solid #9d875b;border-bottom-width:2px;border-radius:3px;padding:2px 4px;font:9px monospace;margin-left:15px;vertical-align:middle;color:#766440;letter-spacing:.7px}.control-hint{font-size:10px;color:#f0e5c0;margin-top:10px;text-shadow:0 1px 3px #173b31}#stage[data-phase=fishing] #action-panel{left:34%;width:330px}#stage[data-phase=fishing] #status{font-size:12px}#stage[data-phase=casting] #cast-button,#stage[data-phase=waiting] #cast-button{background:#e4d9b6}#cast-button.bite{background:#ffe5a1;animation:nibble .6s steps(2,end) infinite}nav{display:flex;gap:12px;justify-content:center;margin:20px auto 0;max-width:800px}nav button{display:flex;align-items:center;justify-content:center;gap:11px;border:1px solid #c8c9af;background:#f2eddb;box-shadow:0 3px #d1d1ba;padding:12px 20px;border-radius:6px;min-height:49px;flex:1;font-size:13px;white-space:nowrap}nav button svg{color:#6f8260;width:21px;height:21px}nav small{font:10px monospace;color:#858d72}footer{font-size:10px;letter-spacing:.3px;color:#899078;display:flex;justify-content:space-between;margin:18px 2px 16px}.warning{color:#995938;font-weight:700}#toast{position:absolute;left:50%;top:15px;transform:translate(-50%);z-index:6;padding:12px 20px;background:#f7e4b9;color:#4b4d32;border:2px solid #9e8757;border-radius:5px;box-shadow:0 4px 12px #233b3244;text-align:center;font-size:12px;max-width:80%}.result-card{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);background:#f6ecd4;border:3px solid #947347;box-shadow:0 4px #4d5438,0 10px 35px #22392f55;padding:18px 34px 20px;text-align:center;min-width:290px;border-radius:7px;color:#3f5039}.result-card:before{content:"";position:absolute;inset:5px;border:1px solid #dbca9f;pointer-events:none}.result-card .eyebrow{color:#97713d}.catch-sprite{display:block;width:128px;height:80px;image-rendering:pixelated;margin:6px auto}.result-card h2{font: 28px Georgia,serif;margin-bottom:8px}.result-card p{font-size:12px;color:#7a7f61}.sale{display:flex;justify-content:center;align-items:center;gap:6px;font:700 21px monospace;color:#73743c;border-top:1px solid #d9ccb0;margin-top:14px;padding-top:11px}.sale svg{width:21px}.sale small{font:10px Trebuchet MS,sans-serif;color:#868368}.new-note{display:block;font-size:10px;margin-top:10px;color:#9c7448}#pause-overlay{position:absolute;inset:0;background:#183b35a1;z-index:10;display:grid;place-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pause-card{background:var(--cream);border:3px solid #9a8558;border-radius:6px;padding:32px;text-align:center;box-shadow:0 6px #263f37}.pause-card .eyebrow{color:#8f8863}.pause-card h2{font: 28px Georgia,serif;margin:12px 0}.pause-card p{font-size:13px;margin-bottom:22px;color:#7e866d}dialog{padding:0;width:min(730px,calc(100% - 32px));max-height:calc(100dvh - 48px);border:3px solid #8c8059;border-radius:9px;background:#f6efdc;color:var(--ink);box-shadow:0 7px #384c38,0 20px 80px #102d3266;overscroll-behavior:contain}dialog::backdrop{background:#1d383bb3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#dialog-content{padding:28px}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-header .eyebrow{color:#8d8561;font-size:9px}.modal-header h2{font: 28px Georgia,serif;margin-top:8px}.close{width:32px;height:32px;background:#e7dfc5;border:1px solid #d0c5a4;border-radius:4px;font-size:24px;color:#827453;flex-shrink:0;margin-left:12px}.intro{font-size:13px;line-height:1.6;color:#7c8269}.modal-bottom{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;text-align:center}.secondary{padding:10px 16px;background:#e6e6d0;border:1px solid #b9bea0;border-radius:4px;font-size:12px;color:#4b6246;box-shadow:0 2px #d6d6bc}.shop-balance{display:flex;justify-content:space-between;padding:12px 0;margin:12px 0;font-size:12px;border-bottom:1px solid var(--line);color:#858369}.shop-balance strong{color:#6e713f;font:700 16px monospace}.upgrade-list{display:grid;gap:14px}.upgrade{display:flex;gap:17px;border:1px solid #d5ccb0;background:#f9f4e5;border-radius:5px;padding:20px;align-items:center}.upgrade-symbol{width:52px;height:58px;background:#e6e4ca;display:grid;place-items:center;flex-shrink:0;border-radius:4px;color:#82905d}.upgrade-symbol svg{width:30px;height:30px}.upgrade-copy{flex:1}.upgrade-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.upgrade h3{font: 23px Georgia,serif}.upgrade-heading span{font:10px monospace;color:#8a8d71}.upgrade-copy>strong{font-size:11px;color:#828563;font-weight:400}.upgrade-copy>p{font-size:11px;color:#93917b;margin:6px 0}.upgrade-copy small{font-size:10px;color:#8c8c73}.tier-dots{display:flex;gap:4px;margin:9px 0}.tier-dots i{width:16px;height:5px;background:#dfddc8}.tier-dots i.filled{background:#82945d}.next-effect{font-size:11px;line-height:1.6;color:#84896c;margin-top:8px}.next-effect b{font-weight:400;color:#567447}.buy{min-width:98px;padding:9px 12px;font:700 15px monospace;flex-shrink:0;align-self:center}.buy small{font:10px Trebuchet MS,sans-serif;display:block;margin-top:5px}.fine-print{font-size:10px;color:#8b8d74;margin-top:17px;line-height:1.6}.guide-summary{display:flex;justify-content:space-between;font-size:12px;gap:10px;margin-bottom:20px;color:#858668}.guide-summary p{color:#5d744f}.guide-summary span{font-size:11px}.fish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fish-card{background:#faf5e7;border:1px solid #d9d1b7;border-radius:5px;overflow:hidden;text-align:center;padding:14px 12px 0}.rarity{font:8px monospace;letter-spacing:1px;text-transform:uppercase;color:#9b8e66}.fish-card img{width:96px;height:60px;image-rendering:pixelated;display:block;margin:9px auto}.fish-card h3{font: 17px Georgia,serif;min-height:22px}.fish-card p{font-size:10px;line-height:1.5;color:#92927a;min-height:46px;margin-top:5px}.fish-record{display:flex;justify-content:space-between;gap:5px;font-size:9px;border-top:1px solid #e2dac2;margin-top:9px;padding:11px 0;color:#818766}.fish-record strong{font-weight:400;color:#5c7250}.undiscovered{background:#eeebd8}.undiscovered img{filter:brightness(0) opacity(.22)}.undiscovered h3{color:#93977a}.locations{display:grid;gap:12px;margin-top:24px}.location{display:flex;align-items:center;gap:16px;text-align:left;padding:17px;border:1px solid #d7d0b6;background:#eae7d4;border-radius:5px}.location.selected{background:#eef0d9;border:2px solid #899b66}.location:disabled{opacity:.66}.location-icon{width:47px;height:48px;display:grid;place-items:center;background:#d9debf;border-radius:4px;color:#809161}.location strong{font: 20px Georgia,serif}.location small{display:block;font-size:11px;margin-top:5px;color:#899074}.location b{margin-left:auto;font:10px monospace;white-space:nowrap;color:#7f8963}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.setting-row strong{font-size:13px}.setting-row small{display:block;font-size:11px;margin-top:6px;color:#87896e;line-height:1.5}input[type=checkbox]{width:18px;height:18px;accent-color:#647f4c;flex-shrink:0}.pill{font:10px monospace;background:#e4e3cd;padding:5px 9px;border-radius:12px;color:#7b8266}.save-section{margin-top:25px}.save-section h3{font: 22px Georgia,serif}.save-section>p{font-size:12px;color:#86876d;line-height:1.6;margin-top:9px}.save-actions{display:flex;gap:10px;margin:17px 0}.reset-section{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;font-size:12px;color:#987454}.reset-section summary{cursor:pointer}.reset-section p{line-height:1.7;margin:16px 0;color:#87806b}.confirm-reset{display:flex;align-items:center;gap:8px;margin-bottom:14px}.danger{background:#aa684d;color:#fff1da;padding:10px 16px;border-radius:4px;font-size:12px}.danger:disabled{opacity:.4}.storage-warning,.import-preview{background:#eee0b7;border:1px solid #c6ad72;padding:14px;font-size:12px;line-height:1.6;border-radius:4px}.storage-warning button{display:block;margin-top:12px}.import-preview p{margin:8px 0}.import-preview .primary{font-size:12px;padding:9px}#dev-controls{font:11px monospace;border:1px dashed #acae92;padding:10px;margin-bottom:12px;color:#80876a}#dev-controls summary{cursor:pointer}#dev-controls>div{display:flex;align-items:end;gap:12px;margin:14px 0;flex-wrap:wrap}#dev-controls label{display:grid;gap:6px}#dev-controls select{background:#f6eedb;border:1px solid #bebba0;padding:5px;color:#4d6547}#dev-controls p{font-size:10px;line-height:1.5}.reduced-motion *{animation:none!important;scroll-behavior:auto!important}@keyframes nibble{50%{box-shadow:0 0 0 5px #f9e6b342,0 3px #463f2c}}@media(min-width:1000px)and (min-height:600px){.game-shell{width:min(1320px,calc(100vw - 64px),calc((100dvh - 208px) * 16 / 9))}}@media(max-width:900px){.game-shell{width:calc(100% - 28px)}.masthead{height:80px}.brand h1{font-size:27px}.pond-label{top:17px;left:18px}.pond-label h2{font-size:23px}.pond-label>span:last-child{display:none}.afternoon{top:19px;right:16px;font-size:10px}#action-panel{bottom:13px}.collection-peek{bottom:14px;left:15px;font-size:9px}#status{font-size:11px}#cast-button{min-width:210px;padding:9px 14px;font-size:12px}.control-hint{font-size:9px;margin-top:7px}.result-card{padding:12px 22px;min-width:245px;top:42%}.catch-sprite{width:96px;height:60px;margin:0 auto}.result-card h2{font-size:23px}.sale{margin-top:9px;padding-top:8px;font-size:18px}nav{margin-top:16px;gap:9px}nav button{padding:9px 13px;font-size:12px}footer{margin-top:15px}.brand p{font-size:8px;letter-spacing:1.5px}}@media(max-width:600px){.game-shell{width:calc(100% - 16px)}.masthead{height:74px}.brand{gap:8px}.brand>svg{width:29px}.brand h1{font-size:24px}.brand p{font-size:6px;letter-spacing:1.2px}.version{font-size:8px;margin-top:3px}.wallet{padding:8px 10px;gap:6px;min-width:78px}.wallet strong{font-size:18px}.wallet svg{width:19px}.wallet span{font-size:12px}#stage{aspect-ratio:4/5;border-width:3px}#phaser-game{left:-38%;right:-38%}#stage[data-phase=fishing] #phaser-game{left:-60%;right:-16%}.pond-label{left:15px;top:18px}.pond-label h2{font-size:24px}.pond-label .eyebrow{font-size:8px}.afternoon{font-size:9px;right:11px;top:17px;padding:6px}.collection-peek{bottom:128px;left:50%;transform:translate(-50%);white-space:nowrap;background:#355843b8;padding:4px 8px;border-radius:4px}.collection-peek svg{width:15px}#action-panel,#stage[data-phase=fishing] #action-panel{width:90%;max-width:94%;left:50%;bottom:22px}#status{font-size:12px;max-width:290px;margin:0 auto 11px}#cast-button{min-width:240px;padding:13px 18px;font-size:14px}.control-hint{font-size:10px;max-width:280px;margin:10px auto 0}#stage[data-phase=fishing] .collection-peek{display:none}#stage[data-phase=fishing] .pond-label>h2{font-size:18px}#stage[data-phase=fishing] .afternoon{display:none}#stage[data-phase=fishing] #status{font-size:11px}nav{gap:6px;margin-top:13px}nav button{flex-direction:column;gap:5px;font-size:10px;padding:9px 3px}nav button svg{width:20px}nav small{display:none}footer{font-size:8px;gap:12px;margin-bottom:18px}footer>span:last-child{white-space:nowrap}.result-card{top:41%;padding:18px 25px;min-width:260px}.result-card .catch-sprite{width:112px;height:70px;margin:5px auto}.result-card h2{font-size:26px}.new-note{font-size:10px}#dialog-content{padding:20px 16px}.modal-header h2{font-size:25px}.upgrade{gap:10px;padding:13px}.upgrade-symbol{display:none}.upgrade h3{font-size:22px}.upgrade-copy>p{max-width:190px;line-height:1.5}.buy{min-width:80px;font-size:13px;padding:9px 7px}.upgrade-heading span,.upgrade-copy small{font-size:9px}.fish-grid{grid-template-columns:repeat(2,1fr);gap:9px}.fish-card{padding:12px 8px 0}.fish-card h3{font-size:16px}.guide-summary{display:block;line-height:1.8}.location{gap:10px;padding:13px 10px}.location strong{font-size:18px}.location small{font-size:9px}.location-icon{width:34px;height:40px;flex-shrink:0}.location b{font-size:8px}.pause-card{padding:25px}.pause-card h2{font-size:25px}#toast{max-width:90%;width:90%;font-size:11px}#dev-controls{font-size:9px}}@media(max-height:520px)and (orientation:landscape){.game-shell{width:calc(100% - 24px)}.masthead{height:54px}.brand p,.version,footer{display:none}.brand h1{font-size:23px}#stage{aspect-ratio:2.6;max-height:none}#phaser-game{top:-20%;bottom:-20%}.pond-label{top:12px}.pond-label h2{font-size:20px}.afternoon{top:12px}#action-panel{bottom:10px}#status{margin-bottom:6px}.control-hint{display:none}nav{margin:10px auto}nav button{min-height:35px;padding:6px}#stage[data-phase=fishing] #phaser-game{top:-10%;bottom:-10%}.result-card{top:40%;padding:9px 20px}.catch-sprite{height:40px;width:64px}.result-card h2{font-size:20px}.new-note{display:none}.result-card .eyebrow{font-size:8px}}@media(max-width:600px){#phaser-game{height:100%;width:auto;aspect-ratio:16/9;left:50%;right:auto;transform:translate(-50%)}#stage[data-phase=fishing] #phaser-game{left:auto;right:-10%;transform:none}}#phaser-game canvas:focus-visible{outline:2px solid #e8cc91;outline-offset:-3px}.backup-text{font-size:11px;line-height:1.6;color:#7b8066;margin-top:12px}.backup-text summary{cursor:pointer}.backup-text textarea{width:100%;height:150px;padding:10px;background:#fffaee;border:1px solid #c6bea2;color:#526044;font:10px monospace;resize:vertical;margin-top:10px}.playtest-log{margin:20px 0;padding:16px 0;border-top:1px solid #c6bea2;border-bottom:1px solid #c6bea2;color:#445640;font-size:12px;line-height:1.6}.playtest-log summary{cursor:pointer;font-weight:700}.playtest-log pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.65 monospace}.log-summary{max-height:220px;overflow:auto;padding:10px;background:#fffaee}.log-history{max-height:280px;overflow:auto;padding:0 10px;background:#fffaee;border:1px solid #c6bea2}.log-history pre{padding:12px 0;margin:0;border-bottom:1px solid #c6bea2}.log-warning{color:#82432d;font-weight:700}.playtest-log .save-actions{margin-top:14px}
