@font-face{font-family:Tiny5;src:url('/fonts/tiny5.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--pixel-font:Tiny5,monospace;--cream:#ffe6b1;--muted:#b4ced1}
body,button,input,a,.control-copy p,.catch p,.empty-catch,.empty-catch strong{font-family:var(--pixel-font);font-weight:400;font-synthesis:none}
body{font-size:20px}button,a,summary{-webkit-tap-highlight-color:transparent}button{font-weight:400;font-size:20px;border:3px solid;border-color:#c9d6be #496069 #263a49 #8cafa8;box-shadow:inset 0 0 0 2px #172d3e,0 3px 0 #081521;text-shadow:1px 1px #071729;background:#345365;transition:none}
button:hover{background:#416679;border-color:#fff0bb #93b6ac #547b80 #dfedc9}button:active{translate:0 2px;box-shadow:inset 0 0 0 2px #172d3e,0 1px #081521}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px dashed #fff0bc;outline-offset:3px}
.game{border:8px solid transparent;border-image:url('/assets/pixel-frame.svg') 8 fill / 8px / 0 stretch;box-shadow:0 8px 0 #030c15;background:#1d3f5a}
.game-title,.score-chip,.fight-meters,.control,.card{border:8px solid transparent;border-image:url('/assets/pixel-frame.svg') 8 / 8px / 0 stretch;background:#10283bf5;box-shadow:4px 4px 0 #081521a8;image-rendering:pixelated}
.game-title{padding:5px 12px}.game-title strong{font-size:40px;line-height:1;letter-spacing:0;color:#ffe6b1;text-shadow:2px 2px #8d654e,4px 4px #071727}.game-title small{font-size:14px;letter-spacing:0;margin-top:5px;color:#aacbcc}.score-chip{padding:3px 10px;min-width:88px}.score-chip small{font-size:12px}.score-chip strong{font-size:30px;line-height:1.1}.icon-button{width:50px;height:50px;display:grid;place-items:center}.icon-button svg,.close-screen svg{width:24px;height:24px;display:block}
.fight-meters{top:102px;padding:10px 12px;width:min(420px,48%)}.meter-heading,.progress-heading{font-size:14px;letter-spacing:0}.zone-labels{font-size:12px;margin-top:6px}.progress-heading{margin-top:8px;font-size:12px}.tension-track{height:18px;border:2px solid #061925;box-shadow:0 2px #4e6a71;margin-top:8px}.slack-zone{background:repeating-linear-gradient(90deg,#516c95 0 5px,#354b71 5px 7px)}.snap-zone{background:repeating-linear-gradient(90deg,#d06969 0 5px,#934750 5px 7px)}.good-zone{background:repeating-linear-gradient(90deg,#469b80 0 7px,#397b70 7px 9px);box-shadow:inset 0 3px #79bf91}.caution-zone{box-shadow:inset 0 3px #f1c270}.catch-progress{height:8px;background:repeating-linear-gradient(90deg,#294151 0 8px,#12283c 8px 10px);box-shadow:0 2px #557175}.catch-progress i{background:repeating-linear-gradient(90deg,#a1ebc3 0 8px,#5faa98 8px 10px)}
.control{padding:8px;gap:14px;grid-template-columns:128px minmax(0,1fr) 166px}.control-copy b{font-size:20px;line-height:1.15}.control-copy p{font-size:16px;line-height:1.25;margin-top:6px}.action,.result-continue,.menu-actions .resume{background:#dba96a;border-color:#ffe9b2 #9f7049 #73513e #f4d196;box-shadow:inset 0 0 0 2px #b77f50,0 3px #071624;color:#152d3c;text-shadow:1px 1px #f0cb91;font-size:20px}.action{min-height:68px}.action:hover,.result-continue:hover,.menu-actions .resume:hover{background:#efc489}.tackle-button{font-size:16px;line-height:1.1;min-height:68px;padding:5px 8px;background:#45574d;border-color:#bba47a #6e694e #3d4139 #d6be8b}.tackle-button small{font-size:14px;margin-top:4px;color:#e3d7ae}.tackle-button svg{width:40px;height:34px}
.signal b{font-size:20px;border-width:3px;border-color:#fff0bc #a27850 #75513e #ffe0a0;box-shadow:4px 4px #081521}.signal span{font-size:14px;padding:5px 9px}.signal{top:40%}
.card{width:min(480px,100%);padding:22px;background-color:#173143;background-image:linear-gradient(90deg,#213e4930 50%,transparent 50%);background-size:8px 8px;scrollbar-color:#c7ab7e #102336;scrollbar-width:thin}.card header{padding-bottom:14px;border-bottom:4px double #5b7374;margin-bottom:16px;align-items:center}.card h2,.catch h2{font-size:32px;line-height:1.15;letter-spacing:0;text-shadow:2px 2px #071727}.card header p{font-size:16px;line-height:1.3;color:#a9cdcf}.close-screen{width:44px;min-width:44px;height:44px;min-height:44px;display:grid;place-items:center;padding:5px}.menu-actions button{font-size:20px}.menu-actions #menu-tackle:before{content:'▣';color:#e5bb7e;margin-right:10px}.settings{margin-top:18px;border-top:4px double #5b7374;padding-top:14px}.settings h3,.tackle-total{font-size:16px;letter-spacing:0}.setting-row{gap:10px}.setting-row button{font-size:18px;text-align:left;padding:8px 12px}.setting-row button[aria-pressed]:before{content:'';display:inline-block;width:8px;height:8px;margin-right:8px;background:#162f3f;box-shadow:0 0 0 2px #789092;vertical-align:1px}.setting-row button[aria-pressed=true]:before{background:#b2f0b1;box-shadow:0 0 0 2px #132e3b}.volume-row{font-size:18px}.volume-row input{appearance:none;-webkit-appearance:none;height:12px;border:2px solid #071a29;background:repeating-linear-gradient(90deg,#597b79 0 8px,#244354 8px 10px);border-radius:0;min-width:0}.volume-row input::-webkit-slider-thumb{appearance:none;width:18px;height:26px;border:3px solid;border-color:#ffe8b0 #9d794f #73563e #edd198;background:#c5a174;border-radius:0;box-shadow:2px 2px #091925}.volume-row input::-moz-range-thumb{width:14px;height:22px;border:3px solid #e9c58c;border-radius:0;background:#a8855d}.audio-status{font-size:14px;line-height:1.3}details{font-size:16px;line-height:1.4;border-top:4px double #5b7374;padding-top:12px;margin-top:16px}summary{font-size:18px;list-style:none;min-height:44px;display:flex;align-items:center;gap:10px}summary:before{content:'';width:8px;height:12px;background:#e6c18c;clip-path:polygon(0 0,50% 0,50% 25%,100% 25%,100% 75%,50% 75%,50% 100%,0 100%)}details[open] summary:before{rotate:90deg}summary::-webkit-details-marker{display:none}.owtex-link{font-size:18px;border:3px solid;border-color:#728e90 #304c5b #203b4c #728e90;background:#1a3447;box-shadow:inset 0 0 0 2px #0d2434;margin-top:14px}
.eyebrow{font-size:16px;letter-spacing:1px}.catch svg{width:160px;height:80px;background:#193c4b;border:4px double #638f8b;padding:8px;margin:18px auto 12px}.catch h2{margin:4px 0}.catch p{font-size:18px;line-height:1.4}.catch strong{font-size:26px;margin-top:14px}.result-continue{font-size:20px;padding:10px 16px}.tackle-total{border-bottom:4px double #5b7374}.tackle-total strong{font-size:36px}.empty-catch{font-size:18px;line-height:1.4;padding:10px 0 22px}.empty-catch>svg{display:block;width:96px;height:78px;margin:8px auto 16px}.empty-catch strong{font-size:24px}.catch-list{gap:10px}.catch-list li{padding:10px;border:4px solid;border-color:#0a2232 #42616a #42616a #0a2232;background:#203c49;gap:12px}.inventory-fish{width:64px;height:40px;flex-shrink:0;image-rendering:pixelated}.catch-list li>div{flex:1;min-width:0}.catch-list b{font-size:20px;font-weight:400;line-height:1}.catch-list small{font-size:14px;line-height:1.3}.catch-list em{font-size:26px}.tackle-foot{font-size:16px;line-height:1.3}
@media(max-width:650px){.game{border-width:6px;border-image-width:6px}.hud{inset:7px;gap:4px}.game-title{padding:4px 6px;border-width:6px;border-image-width:6px}.game-title strong{font-size:28px}.game-title small{font-size:10px;letter-spacing:0}.hud-right{gap:5px}.score-chip{min-width:55px;padding:4px;border-width:6px;border-image-width:6px}.score-chip small{font-size:10px}.score-chip strong{font-size:22px}.icon-button{min-width:44px;width:44px;height:44px;min-height:44px}.fight-meters{top:82px;width:calc(100% - 18px);padding:7px 9px}.meter-heading{font-size:12px}.zone-labels,.progress-heading{font-size:10px}.control{left:7px;right:7px;bottom:7px;padding:6px;grid-template-columns:44px minmax(0,1fr) 82px;gap:7px}.control-copy b{font-size:16px}.control-copy p{font-size:14px;line-height:1.15}.action{font-size:16px;min-height:66px;padding:6px 2px}.tackle-button{min-height:66px;padding:3px}.tackle-button svg{width:28px;height:28px}.tackle-button small{font-size:12px}.signal b{font-size:16px;padding:7px}.signal span{font-size:12px}.card{padding:14px 12px;border-width:8px}.card h2,.catch h2{font-size:28px}.card header p{font-size:14px}.menu-actions button{font-size:18px}.setting-row button{font-size:16px;padding:8px}.settings h3{font-size:16px}.catch p{font-size:16px}.catch strong{font-size:24px}.catch svg{width:128px;height:64px}.result-continue{font-size:18px}.catch,.screen{padding:10px}.tackle-total strong{font-size:30px}.catch-list li{gap:8px;padding:8px}.inventory-fish{width:44px;height:32px}.catch-list b{font-size:18px}.catch-list small{font-size:12px}.catch-list em{font-size:22px}}
@media(max-height:520px) and (min-width:651px){.game-title strong{font-size:28px}.game-title small{font-size:10px}.fight-meters{top:8px;width:36%;padding:6px}.meter-heading{font-size:12px}.progress-heading,.zone-labels{font-size:10px}.control{padding:5px;grid-template-columns:96px minmax(0,1fr) 120px;gap:10px}.control-copy b{font-size:16px}.control-copy p{font-size:14px}.action{font-size:18px;min-height:50px}.tackle-button{font-size:14px;min-height:50px}.tackle-button svg{width:26px}.tackle-button small{font-size:12px}.signal b{font-size:16px}.card{padding:14px 18px}}
@media(max-width:650px){#game-menu .card{padding:10px 12px}#game-menu .card header{padding-bottom:8px;margin-bottom:10px}#game-menu .settings{margin-top:12px;padding-top:10px}#game-menu .settings h3{margin-bottom:8px}#game-menu .setting-row{gap:7px}#game-menu .volume-row{margin-top:12px}#game-menu .audio-status{margin-top:8px}#game-menu details{margin-top:10px;padding-top:5px}#game-menu .owtex-link{margin-top:8px;padding:9px}}

/* Shared tackle sprite on the dock, menu and empty inventory. */
.tackle-button svg{width:40px;height:40px}.empty-catch>.tackle-sprite{width:96px;height:96px}.menu-actions #menu-tackle{display:flex;align-items:center;gap:12px}.menu-actions #menu-tackle:before{content:none}#menu-tackle .tackle-sprite{width:32px;height:32px;flex-shrink:0;image-rendering:pixelated}
@media(max-width:650px){.tackle-button svg{width:32px;height:32px}.menu-actions #menu-tackle{gap:10px;padding-top:5px;padding-bottom:5px}#menu-tackle .tackle-sprite{width:28px;height:28px}}
@media(max-height:520px) and (min-width:651px){.tackle-button svg{width:32px;height:32px}}
/* Release screens share the original pixel card treatment. */
.release-card h1{font-size:42px;letter-spacing:3px;margin:10px 0;color:#ffe0a3}.release-card p{line-height:1.5;font-size:16px}.release-card .rules{font-size:14px;color:#bad2d9}.release-card #daily-status{color:#a1ebc3}.release-card #refresh-time{font-size:13px;color:#bad2d9}.release-card .menu-actions{margin-top:14px}.release-card input{display:block;width:100%;padding:10px;background:#0d2035;color:#ffe6b1;border:2px solid #9eaa9d;min-height:44px;margin:8px 0}.release-card form small{display:block;margin-bottom:10px;color:#bad2d9}.release-card form button{width:100%}.board-list{list-style:none;padding:0;display:grid;gap:9px}.board-list li{display:flex;justify-content:space-between;gap:10px;background:#213d51;padding:10px;border:1px solid #4a6a7d}.board-list span{overflow-wrap:anywhere}.board-list strong{white-space:nowrap;color:#ffe0a3}#clock{white-space:nowrap}#submit-status{color:#a1ebc3}.release-card label{font-size:14px}#title-screen .card{max-height:100%}@media(max-width:650px){.release-card h1{font-size:32px}.release-card p{font-size:14px}.release-card .rules{font-size:13px}.release-card .menu-actions button{min-height:44px}}
