*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow-x:clip;overscroll-behavior:none}body{font-family:var(--font-body);background:var(--color-paper);color:var(--color-ink);font-size:16px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--color-coral);outline-offset:5px}button{color:inherit}button:disabled{cursor:wait;opacity:.65}button,select{-webkit-tap-highlight-color:transparent}button svg{pointer-events:none}button span{pointer-events:none}button[hidden],[hidden]{display:none!important}h1,h2,p{margin:0}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#game,#scene,.vignette{position:fixed;inset:0;width:100%;height:100%;height:100dvh}#scene{display:block;touch-action:none;outline:none}.vignette{pointer-events:none;box-shadow:inset 0 0 130px 15px var(--color-shadow);z-index:1}.topbar{position:fixed;left:0;right:0;top:0;padding:30px 42px;display:flex;align-items:center;justify-content:space-between;z-index:20;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;padding:0;background:none;border:none;font-weight:800;font-size:24px;letter-spacing:-1px}.brand>svg{width:32px;height:32px;fill:var(--color-ink);stroke:none}.brand .eyes{stroke:var(--color-paper);stroke-width:2.2}.brand-dot{color:var(--color-coral)}.top-actions{display:flex;gap:10px;align-items:center}.icon-button{display:grid;place-items:center;border:1px solid var(--color-border);background:var(--color-paper);border-radius:50%;width:44px;height:44px;font-size:28px;box-shadow:0 3px 0 var(--color-shadow);transition:transform .15s,background .15s}.icon-button:hover{transform:translateY(-2px);background:var(--color-white)}.icon-button:active{transform:translateY(2px)}.icon-button span{display:flex}.icon-button svg{width:20px;height:20px}.best-chip{font-size:12px;letter-spacing:1.5px;display:flex;align-items:center;gap:10px;margin-right:13px}.best-chip strong{font-size:18px;letter-spacing:0}.screen{position:fixed;inset:0;z-index:5}.menu{pointer-events:none}.menu:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--color-paper) 0%,var(--color-paper) 12%,var(--color-clear) 70%);opacity:.94;z-index:-1}.menu-copy{position:absolute;left:7.2%;top:27%;max-width:640px;pointer-events:auto}.edition{font-size:12px;font-weight:700;letter-spacing:2.4px;display:flex;align-items:center;gap:12px;line-height:1.5}.small-rule{width:28px;height:2px;background:var(--color-coral)}h1{font-family:var(--font-display);font-weight:800;font-size:clamp(46px,6.7vw,103px);line-height:1.02;letter-spacing:-.055em;margin:22px 0 22px;min-width:0;overflow-wrap:anywhere}h1>span{color:var(--color-coral)}.tagline{font-size:clamp(16px,1.6vw,23px);font-weight:500;letter-spacing:-.4px}.intro{font-size:16px;line-height:1.55;color:var(--color-ink-2);margin-top:15px;margin-bottom:28px}.btn{--btn-face:var(--color-accent);--btn-ink:var(--color-ink);--btn-edge:var(--color-accent-deep);--btn-cast:var(--color-shadow);--btn-line:var(--color-accent-deep);display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.8rem 1.4rem;font-weight:600;border:0;border-radius:999px;cursor:pointer;background:var(--btn-face);color:var(--btn-ink);box-shadow:0 4px 0 0 var(--btn-edge),0 6px 12px -3px var(--btn-cast);transition:transform 140ms var(--ease),box-shadow 140ms var(--ease);white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 0 0 var(--btn-edge),0 12px 22px -4px var(--btn-cast)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 0 var(--btn-edge);transition-duration:70ms}.btn-primary{padding:17px 33px;font-size:18px;min-height:56px;gap:12px}.btn-primary svg{width:21px;height:21px}.btn-primary>span{display:flex}.menu-links{display:flex;align-items:center;gap:17px;margin-top:22px;font-size:13px;color:var(--color-ink-2)}.text-button{border:0;background:none;padding:10px 0;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.text-button span{margin-left:5px}.separator{height:14px;width:1px;background:var(--color-border)}.cat-note{position:absolute;top:40%;right:8.5%;transform:rotate(7deg);font-size:17px;line-height:1.2;font-weight:500;letter-spacing:-.3px}.note-curve{display:block;font-size:60px;margin:0 0 0 -30px;transform:rotate(-15deg);font-weight:400}.menu-bottom{position:absolute;bottom:29px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:var(--color-ink-2)}.portrait{display:flex;gap:12px;align-items:center;line-height:1.4}.portrait img{width:49px;height:49px;border-radius:50%;object-fit:cover;object-position:55% 45%;border:3px solid var(--color-white);box-shadow:0 3px 10px var(--color-shadow)}.portrait strong{font-weight:600}.session-note{display:flex;gap:7px;align-items:center}.session-note svg{width:15px;height:15px}.version{font-size:10px;letter-spacing:1.3px}.hud{position:fixed;inset:0;pointer-events:none;z-index:6}.score-block{position:absolute;top:112px;left:43px;display:flex;flex-direction:column}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px}.score-block>strong{font-size:50px;line-height:1.15;letter-spacing:-2px;font-variant-numeric:tabular-nums}.score-block>span:last-child{font-size:15px;color:var(--color-ink-2)}.run-status{position:absolute;right:44px;top:114px;display:flex;flex-direction:column;align-items:flex-end;gap:16px}.fish-counter{display:flex;align-items:center;gap:10px;font-size:27px;font-variant-numeric:tabular-nums}.fish-counter>span{display:flex;color:var(--color-accent-deep)}.fish-counter svg{width:31px;height:31px;fill:var(--color-accent)}.lives{display:flex;gap:7px;color:var(--color-coral)}.lives svg{fill:currentColor;width:19px;height:19px}.lives .lost{opacity:.2}.power-status{position:absolute;left:42px;top:245px;display:flex;flex-direction:column;gap:9px}.power-pill{display:flex;align-items:center;gap:9px;background:var(--color-paper);padding:10px 14px;border-radius:12px;font-size:13px;box-shadow:0 3px 0 var(--color-shadow)}.power-pill i{width:6px;height:6px;background:var(--color-sky);border-radius:50%}.power-pill strong{margin-left:8px;min-width:22px}.route-marker{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);width:185px;text-align:center}.route-marker>span{font-size:10px;letter-spacing:1.8px;font-weight:600}.route-marker>div{height:3px;background:var(--color-shadow);margin-top:9px;overflow:hidden}.route-marker i{display:block;background:var(--color-ink);height:100%;width:0;transition:width .2s}.toast{position:fixed;top:116px;left:50%;transform:translate(-50%,-10px);z-index:22;padding:12px 20px;background:var(--color-ink);color:var(--color-paper);font-weight:600;font-size:15px;border-radius:40px;box-shadow:0 4px 10px var(--color-shadow);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%,0)}.tutorial-hint{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--color-paper);border-radius:15px;box-shadow:0 4px 0 var(--color-shadow);font-size:16px;font-weight:600;z-index:7;white-space:nowrap}.countdown{position:fixed;top:38%;left:50%;transform:translate(-50%,-50%);color:var(--color-ink);font-weight:800;font-size:100px;z-index:8;text-shadow:0 4px var(--color-paper);pointer-events:none}.touch-controls{position:fixed;left:20px;right:20px;bottom:calc(25px + env(safe-area-inset-bottom));display:flex;gap:9px;z-index:10;pointer-events:none}.touch-controls>div{flex:1}.touch-controls button{pointer-events:auto;width:53px;height:53px;border:1px solid var(--color-border);border-radius:16px;color:var(--color-ink);background:var(--color-paper);box-shadow:0 4px 0 var(--color-shadow);font-size:24px;font-weight:600;opacity:.9}.touch-controls button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--color-shadow)}.end-screen{display:grid;place-items:center;background:var(--color-veil);overflow:auto;padding:25px}.result-panel{background:var(--color-paper);border-radius:28px;padding:36px 44px 25px;width:420px;max-width:100%;box-shadow:0 24px 100px var(--color-dim);text-align:center}.result-panel .edition{justify-content:center;font-size:10px;letter-spacing:1.5px;color:var(--color-coral)}h2{font-size:42px;letter-spacing:-1.9px;line-height:1.03;font-weight:800;margin:15px 0}.result-panel>p{font-size:14px;color:var(--color-ink-2);line-height:1.5}.result-score{display:flex;flex-direction:column;align-items:center;margin:23px 0 20px}.result-score>span:first-child{font-size:11px;letter-spacing:2px}.result-score>strong{font-size:72px;letter-spacing:-3px;line-height:1.1}.result-score>span:last-child:not(:first-child){font-size:10px;letter-spacing:1.4px;color:var(--color-coral);font-weight:700;margin-top:6px}.result-stats{display:flex;justify-content:space-around;border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border);padding:17px 0;margin:0 0 25px}.result-stats>div{display:flex;flex-direction:column;gap:5px}.result-stats strong{font-size:19px}.result-stats span{font-size:11px;color:var(--color-ink-2)}.result-panel>.btn{width:100%}.result-panel>.text-button{margin-top:13px;color:var(--color-ink-2)}dialog{border:0;border-radius:26px;background:var(--color-paper);color:var(--color-ink);padding:36px;max-width:calc(100% - 32px);width:455px;box-shadow:0 25px 90px var(--color-dim);max-height:calc(100dvh - 30px);overflow:auto}dialog::backdrop{background:var(--color-veil);backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:14px;right:14px;width:32px;height:32px;font-size:24px;background:none;box-shadow:none}.dialog-close:hover{background:var(--color-paper-2)}dialog .edition{font-size:10px;letter-spacing:1.4px;padding-right:8px}dialog h2{font-size:34px;margin:17px 0 12px}dialog p{font-size:15px;line-height:1.5;color:var(--color-ink-2)}dialog>.btn{width:100%;font-size:16px;margin-top:25px}dialog>.text-button{display:block;margin:16px auto 0}#pause-dialog{text-align:center}#pause-dialog .edition{justify-content:center}.controls-list{margin:25px 0}.controls-list>div{display:flex;gap:23px;align-items:center;margin:17px 0}.controls-list>div>span:last-child{display:flex;flex-direction:column;gap:3px;font-size:15px}.controls-list small{color:var(--color-ink-2);font-size:12px}.key-pair{display:flex;gap:3px;min-width:79px}kbd{font:500 18px var(--font-body);padding:5px 12px;background:var(--color-paper-2);box-shadow:0 3px 0 var(--color-border);border-radius:7px;min-width:39px;text-align:center}.controls-list>div>kbd{margin-right:40px;min-width:39px}.power-guide{border-top:1px dashed var(--color-border);padding-top:15px;display:flex;flex-direction:column;gap:9px;margin-bottom:16px;font-size:13px}.power-guide>span{display:flex;align-items:center;gap:6px}.power-dot{width:10px;height:10px;border-radius:50%;margin-right:5px}.shield-dot{background:var(--color-sky)}.magnet-dot{background:var(--color-coral)}.boost-dot{background:var(--color-mint)}.small-copy{font-size:12px!important}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid var(--color-border)}.setting>span{display:flex;flex-direction:column;gap:5px}.setting strong{font-size:16px;font-weight:600}.setting small{font-size:12px;color:var(--color-ink-2)}.setting input{appearance:none;width:42px;height:25px;border-radius:30px;background:var(--color-border);position:relative;flex-shrink:0;cursor:pointer;transition:background .2s}.setting input:checked{background:var(--color-ink)}.setting input:before{content:'';position:absolute;top:4px;left:4px;width:17px;height:17px;border-radius:50%;background:var(--color-paper);transition:transform .2s}.setting input:checked:before{transform:translateX(17px)}.setting select{background:var(--color-paper-2);border:0;padding:9px;border-radius:8px;color:var(--color-ink);font-size:13px;max-width:132px}.loading{position:fixed;inset:0;background:var(--color-paper);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;font-size:14px;transition:opacity .5s;pointer-events:none}.loading.done{opacity:0}.loading-paw svg{width:40px;height:40px;animation:breathe 1s infinite alternate}.error-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:var(--color-paper);z-index:101}.error-screen>span svg{width:60px;height:60px}.error-screen p{max-width:460px;line-height:1.6;margin-bottom:25px}body.running .menu,body.running #settings-button,body.running .best-chip{display:none}body.running .brand{font-size:20px}body.running .brand svg{width:26px;height:26px}body.running .topbar{padding-top:24px}.reduced-motion *, .reduced-motion *:before{animation-duration:0s!important;transition-duration:0s!important}@keyframes breathe{from{transform:translateY(3px);opacity:.6}to{transform:translateY(-3px);opacity:1}}
@media(min-width:1500px){.menu-copy{left:9%;top:28%}.cat-note{right:12%}}
@media(max-height:720px) and (min-width:701px){.menu-copy{top:23%}h1{font-size:clamp(45px,6vw,82px);margin:17px 0}.intro{margin:10px 0 20px}.topbar{padding:22px 32px}.menu-bottom{bottom:20px}.menu-links{margin-top:16px}}
@media(max-width:1000px){.cat-note{right:7%;top:43%}.menu-copy{left:6%;max-width:60%}.session-note{display:none}.topbar{padding:25px 30px}}
@media(max-width:700px){.topbar{padding:22px 21px}.brand{font-size:20px}.brand>svg{width:28px;height:28px}.top-actions{gap:8px}.best-chip{margin-right:5px;font-size:10px;gap:5px;letter-spacing:.7px}.best-chip strong{font-size:15px}.icon-button{width:38px;height:38px}.menu-copy{left:26px;right:26px;top:auto;bottom:125px;max-width:100%}.edition{font-size:10px;letter-spacing:1.8px}.small-rule{width:22px}h1{font-size:clamp(38px,9.5vw,66px);margin:13px 0 12px;line-height:1.02}.tagline{font-size:16px}.intro{display:none}.menu-copy>.btn{margin-top:23px;min-width:200px;font-size:17px;padding:15px 24px}.menu-links{margin-top:13px;gap:12px;font-size:12px}.menu-links .text-button{font-size:13px}.menu:before{background:linear-gradient(0deg,var(--color-paper) 0%,var(--color-paper) 10%,var(--color-clear) 65%);opacity:1}.cat-note{top:24%;right:9%;font-size:13px}.note-curve{font-size:37px}.menu-bottom{left:23px;right:23px;bottom:23px;font-size:11px}.portrait img{width:39px;height:39px}.version{font-size:9px;max-width:90px;text-align:right;line-height:1.6}.score-block{left:23px;top:96px}.score-block>strong{font-size:39px}.run-status{right:23px;top:100px;gap:12px}.fish-counter{font-size:23px}.fish-counter svg{width:25px;height:25px}.lives svg{width:16px;height:16px}.power-status{left:22px;top:203px}.route-marker{bottom:94px;width:155px}.toast{top:165px;font-size:13px;padding:10px 17px}.tutorial-hint{bottom:143px;font-size:13px;padding:11px 16px}.result-panel{padding:28px 26px 21px;width:370px}.result-panel h2{font-size:40px}.result-score{margin:20px 0 16px}.result-score>strong{font-size:63px}dialog{padding:32px 25px}.setting{gap:10px}body.running .topbar{padding-top:22px}.result-stats{gap:10px}.countdown{font-size:85px}}
@media(max-width:375px){.best-chip{display:none}.menu-copy{left:22px;right:22px;bottom:106px}.menu-copy>.btn{margin-top:19px}.menu-bottom{bottom:19px}.cat-note{right:7%;top:25%}.tagline{font-size:14px}.result-panel{padding:26px 22px 17px}.touch-controls{left:15px;right:15px;gap:7px}.touch-controls button{width:47px;height:47px}dialog h2{font-size:29px}}
@media(max-height:650px) and (max-width:700px){.menu-copy{bottom:94px}h1{font-size:38px}.menu-copy>.btn{margin-top:17px;padding:12px 24px;min-height:48px}.menu-links{margin-top:9px}.cat-note{display:none}.menu-bottom{bottom:17px}.portrait img{width:32px;height:32px}.result-panel h2{font-size:32px}.result-panel{padding:22px}.result-score{margin:15px 0}.result-score>strong{font-size:50px}.result-stats{padding:13px 0;margin-bottom:18px}.result-panel>p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.loading-paw svg{animation:none}button{transition:none}}

.text-button:active{transform:translateY(1px)}.setting select:hover{background:var(--color-border)}h2{overflow-wrap:anywhere;min-width:0}

@media(min-width:1100px){.menu-copy{max-width:750px}h1>span{white-space:nowrap}}
@media(max-width:850px) and (min-width:701px){.cat-note{display:none}}
@media(max-width:700px){.cat-note{display:none}}
@media(max-height:500px) and (min-width:701px){.menu-copy{top:22%;left:6%}h1{font-size:44px;margin:13px 0}.intro,.cat-note,.menu-bottom{display:none}.menu-copy>.btn{margin-top:18px;padding:11px 25px;min-height:46px;font-size:16px}.menu-links{margin-top:10px}.topbar{padding:15px 25px}.score-block{top:82px}.score-block>strong{font-size:34px}.run-status{top:85px}.power-status{top:175px}.route-marker{bottom:18px}.tutorial-hint{bottom:55px}}
