:root{--ink:#5b5a6e;--ink-soft:#8a879c;--cream:#fff9f3;--peach:#f3b9a4;--coral:#ee9c8f;--mint:#9fd8c7;--teal:#5fb3b0;--gold:#e9c86e;--font:"Quicksand", "Avenir Next", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100%;font-family:var(--font);color:var(--ink);background:#f3e3d9;margin:0;overflow:hidden}#gl{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.hidden{display:none!important}.screen{position:absolute;inset:0}#start{padding:max(9vh, calc(env(safe-area-inset-top) + 40px)) 24px max(7vh, calc(env(safe-area-inset-bottom) + 32px));background:linear-gradient(#f6e8e0b8 0%,#f6e8e000 32% 70%,#f6e8e099 100%);flex-direction:column;justify-content:space-between;align-items:center;display:flex}.title-wrap{text-align:center;animation:1.4s both fadeUp}.title{letter-spacing:.14em;color:#fff;text-shadow:0 2px 22px #a0788259,0 1px #8c6e7840;margin-right:-.14em;font-size:clamp(34px,10vw,84px);font-weight:500;line-height:1}.subtitle{letter-spacing:.18em;color:#fff;text-shadow:0 1px 10px #6e5a6e8c;text-transform:lowercase;margin-top:14px;font-size:clamp(13px,3.4vw,17px);font-weight:600}.start-foot{text-align:center;animation:1.4s .3s both fadeUp}.how{letter-spacing:.06em;color:#fff;text-shadow:0 1px 10px #505a6e99;margin-bottom:14px;font-size:14px;font-weight:600}.tap{letter-spacing:.28em;text-transform:uppercase;color:#fff;background:#5fb3b0c7;border-radius:999px;padding:13px 28px 12px 32px;font-size:15px;font-weight:600;animation:2.6s ease-in-out infinite breathe;display:inline-block;box-shadow:0 8px 26px #50969647}.best{letter-spacing:.14em;color:var(--ink-soft);min-height:1em;margin-top:12px;font-size:13px}.mute{top:calc(env(safe-area-inset-top) + 14px);right:calc(env(safe-area-inset-right) + 14px);z-index:5;cursor:pointer;pointer-events:auto;touch-action:manipulation;color:#fff;opacity:.85;background:#5b5a6e38;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;transition:opacity .2s,background .2s;display:grid;position:absolute;box-shadow:0 2px 10px #50465a2e}.mute:hover{opacity:1}.mute.off{background:#5b5a6e61}.mute:focus{outline:none}#hud{position:absolute;inset:0}.hud-top{left:0;right:0;top:calc(env(safe-area-inset-top) + 18px);flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute}.score{letter-spacing:.08em;color:#fff;text-shadow:0 2px 12px #6e5a6e59;font-size:30px;font-weight:600;line-height:1}.score span{display:inline-block}.score .bump{animation:.35s bump}.hunger{-webkit-backdrop-filter:blur(4px);background:#ffffff73;border-radius:999px;width:min(46vw,220px);height:9px;overflow:hidden;box-shadow:inset 0 1px 2px #78646e2e,0 2px 10px #7864781f}.hunger-fill{transform-origin:0;background:linear-gradient(90deg,#f6b49e,#f7d39a 60%,#bfe3b4);border-radius:999px;width:100%;height:100%;transition:transform .18s linear}.hunger-fill.low{background:linear-gradient(90deg,#ee8f8a,#f3ac96);animation:.9s ease-in-out infinite lowpulse}.combo{letter-spacing:.12em;color:#fff;opacity:0;background:#e9c86ed9;border-radius:999px;padding:3px 10px;font-size:15px;font-weight:700;transition:all .2s;transform:scale(.8)}.combo.on{opacity:1;transform:scale(1)}#floaters{position:absolute;inset:0;overflow:hidden}.floater{text-align:center;white-space:nowrap;animation:1.15s cubic-bezier(.2,.8,.3,1) forwards floatUp;position:absolute;transform:translate(-50%,-100%)}.floater.sticky{animation:none;transform:translate(-50%,-100%)}.floater .pts{color:#fff;letter-spacing:.04em;-webkit-text-stroke:2px #2b2230;paint-order:stroke fill;text-shadow:0 2px #2b2230,0 0 8px #2b223099;font-size:30px;font-weight:700;line-height:1}.floater .lbl{letter-spacing:.18em;text-transform:uppercase;color:#fff;background:#34283a;border-radius:999px;margin-top:5px;padding:4px 11px 4px 13px;font-size:14px;font-weight:700;display:inline-block;box-shadow:0 2px 6px #1e142473}.floater.perfect .lbl{color:#ffe9a8;background:#3b2a2c;border:1.5px solid #e8b860}.floater.perfect .pts{color:#fff}.floater.good .lbl{color:#eaf6f2}.floater.miss .lbl{color:#fbe3df;letter-spacing:.12em;text-transform:lowercase;font-size:14px}#scorecard{background:radial-gradient(#f6e6de59,#ecdee68c);justify-content:center;align-items:center;padding:20px;animation:.5s both fade;display:flex}.card{pointer-events:auto;text-align:center;-webkit-backdrop-filter:blur(10px);background:#fffbf7d6;border-radius:28px;width:min(340px,88vw);padding:26px 24px 20px;animation:.6s cubic-bezier(.2,.9,.3,1.1) both cardIn;box-shadow:0 24px 60px #78647838,inset 0 1px #ffffffe6}.card-kicker{letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft);font-size:12px}.card-score{letter-spacing:.04em;color:var(--teal);margin-top:6px;font-size:64px;font-weight:600;line-height:1.1}.card-best{letter-spacing:.16em;color:var(--ink-soft);min-height:20px;font-size:13px}.newbest{color:#9b7a2c;letter-spacing:.2em;text-transform:uppercase;background:#f9e3a6;border-radius:999px;padding:3px 12px;font-size:11px;font-weight:700;display:inline-block}.card-fish{flex-direction:column;gap:7px;margin:16px 0 10px;display:flex}.fishrow{background:#f0e8e499;border-radius:14px;align-items:center;gap:12px;padding:7px 14px;display:flex}.fname{text-align:left;letter-spacing:.06em;flex:1;font-size:15px;font-weight:600}.fcount{color:var(--ink);font-size:18px;font-weight:700}.card-stats{justify-content:space-around;margin:8px 0 18px;display:flex}.card-stats span{color:var(--ink);font-size:26px;font-weight:600;display:block}.card-stats label{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);font-size:11px}.card-actions{gap:10px;display:flex}.btn{font-family:var(--font);letter-spacing:.1em;color:#fff;background:var(--teal);cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;flex:1;padding:14px 10px;font-size:15px;font-weight:700;box-shadow:0 8px 20px #5096964d}.btn.ghost{color:var(--teal);background:#fff;box-shadow:inset 0 0 0 2px #5fb3b080}.btn:active{transform:scale(.97)}.card-toast{letter-spacing:.08em;min-height:18px;color:var(--ink-soft);margin-top:10px;font-size:12px}#landscapeHint{z-index:10;pointer-events:auto;-webkit-backdrop-filter:blur(6px);background:#f3e3d9eb;flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex;position:absolute;inset:0}.rot-phone{border:3px solid var(--teal);border-radius:9px;width:38px;height:64px;animation:2.4s ease-in-out infinite rotPhone}.rot-text{letter-spacing:.22em;text-transform:uppercase;color:var(--ink);font-size:15px;font-weight:600}@keyframes rotPhone{0%,20%{transform:rotate(-90deg)}55%,to{transform:rotate(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes breathe{0%,to{opacity:.92;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes lowpulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-80%)scale(.7)}15%{opacity:1;transform:translate(-50%,-105%)scale(1.08)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-200%)scale(1)}}@keyframes cardIn{0%{opacity:0;transform:translateY(30px)scale(.96)}to{opacity:1;transform:none}}
