@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f2e8d5;--paper-2: #e5d8bd;--paper-3: #d9c9a8;--ink: #233047;--ink-soft: #3b4a63;--coral: #e0684b;--coral-dark: #c4523a;--mustard: #dfa93e;--sea: #2f8290;--sea-deep: #1e5f70;--r: 12px;--shadow: 3px 3px 0 rgba(35, 48, 71, .16);--border: 2px solid var(--ink);--font: "Bricolage Grotesque Variable", system-ui, sans-serif}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--font);color:var(--ink);background:var(--sea-deep);user-select:none;-webkit-user-select:none;touch-action:manipulation}#app{position:fixed;top:0;right:0;bottom:0;left:0}#game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}#ui-root{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}#ui-root>*{pointer-events:auto}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.14 0 0 0 0 0.19 0 0 0 0 0.28 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}.btn{font-family:var(--font);font-weight:700;font-size:15px;color:var(--ink);background:var(--paper);border:var(--border);border-radius:var(--r);box-shadow:var(--shadow);min-height:44px;min-width:44px;padding:8px 14px;cursor:pointer;transition:transform .09s ease,box-shadow .09s ease,background .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.15;text-align:center}.btn:active{transform:translate(2px,2px) scale(.97);box-shadow:1px 1px #23304729}.btn.primary{background:var(--coral);color:var(--paper)}.btn.primary:not(:disabled){animation:breathe 2.2s ease-in-out infinite}.btn.gold{background:var(--mustard)}.btn:disabled{background:var(--paper-2);color:#23304773;border-style:dashed;border-color:#23304773;box-shadow:none;cursor:default;animation:none}.btn .sub{display:block;font-size:11.5px;font-weight:600;opacity:.8}.btn>svg{width:20px;height:20px;flex:none}.tabbar button .ico svg{width:26px;height:26px}.zone-item .buoy svg{width:22px;height:22px}.btn.icon{border-radius:50%;width:46px;height:46px;padding:0;font-size:19px}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@media(prefers-reduced-motion:reduce){.btn.primary:not(:disabled){animation:none}}.topbar{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;z-index:20}.money-card{background:var(--paper);border:var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:8px 16px 7px;min-width:132px}.money-card .amount{font-size:27px;font-weight:800;letter-spacing:-.02em;line-height:1;display:flex;align-items:baseline;gap:5px;transition:transform .12s ease}.money-card .amount.bump{transform:scale(1.12)}.money-card .amount:before{content:"";width:15px;height:15px;border-radius:50%;background:var(--mustard);border:2px solid var(--ink);align-self:center;flex:none}.money-card .rate{font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:3px}.top-actions{display:flex;gap:8px;align-items:center}.rep-stamp{background:var(--paper);border:2px solid var(--coral-dark);color:var(--coral-dark);border-radius:var(--r);transform:rotate(3deg);padding:5px 11px;font-weight:800;font-size:14px;box-shadow:var(--shadow);line-height:1.05;text-align:center}.rep-stamp small{display:block;font-size:9px;font-weight:700;letter-spacing:.06em}.missions-btn{position:absolute;top:calc(env(safe-area-inset-top,0px) + 78px);left:12px;z-index:20}.missions-btn .badge{background:var(--coral);color:var(--paper);border:2px solid var(--ink);border-radius:50%;width:22px;height:22px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.missions-panel{position:absolute;top:calc(env(safe-area-inset-top,0px) + 132px);left:12px;width:min(320px,calc(100vw - 24px));display:flex;flex-direction:column;gap:8px;z-index:21}.mission-card{background:var(--paper);border:var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:9px 12px}.mission-card .mtext{font-size:13.5px;font-weight:700;display:flex;justify-content:space-between;gap:8px}.mission-card .reward{color:var(--coral-dark);white-space:nowrap}.mission-card .bar{margin-top:6px;height:8px;border:1.5px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--paper-2)}.mission-card .bar i{display:block;height:100%;background:var(--sea);transition:width .3s ease}.banners{position:absolute;top:calc(env(safe-area-inset-top,0px) + 78px);left:50%;transform:translate(-50%);width:min(400px,calc(100vw - 24px));display:flex;flex-direction:column;gap:8px;z-index:25;pointer-events:none}.banners>div{display:flex;flex-direction:column;gap:8px}.event-banner{pointer-events:auto;background:var(--paper);border:var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:10px 14px;text-align:center}.event-banner.order{border-style:dashed}.event-banner .bar-order{height:8px;border:1.5px solid var(--ink);border-radius:6px;background:var(--paper-2);overflow:hidden;margin-top:8px}.event-banner .bar-order i{display:block;height:100%;background:var(--sea);transition:width .25s ease}.event-banner.storm{border-color:var(--ink);background:#d7dbe4}.event-banner h3{font-size:16px;font-weight:800}.event-banner p{font-size:12.5px;color:var(--ink-soft);margin-top:2px}.event-banner .row{display:flex;gap:8px;margin-top:8px}.event-banner .row .btn{flex:1}.event-banner .timer{height:6px;border:1.5px solid var(--ink);border-radius:4px;background:var(--paper-2);margin-top:8px;overflow:hidden}.event-banner .timer i{display:block;height:100%;background:var(--coral)}.sheet{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:min(560px,100vw);background:var(--paper);border:var(--border);border-bottom:none;border-radius:18px 18px 0 0;box-shadow:0 -3px #23304724;z-index:30;transition:max-height .28s cubic-bezier(.32,.72,.25,1);max-height:64px;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.sheet.open{max-height:min(58dvh,460px)}.tabbar{display:flex;height:62px;border-bottom:2px dashed rgba(35,48,71,.25)}.tabbar button{flex:1;background:none;border:none;font-family:var(--font);font-weight:700;font-size:13.5px;color:var(--ink-soft);cursor:pointer;position:relative;padding-top:4px;transition:color .15s ease}.tabbar button .ico{display:block;font-size:17px;line-height:1.3}.tabbar button.active{color:var(--ink)}.tabbar button.active:after{content:"";position:absolute;left:22%;right:22%;bottom:7px;height:4px;border-radius:3px;background:var(--coral)}.tabbar button .dot{position:absolute;top:8px;right:18%;width:10px;height:10px;border-radius:50%;background:var(--coral);border:1.5px solid var(--ink)}.sheet-content{overflow-y:auto;max-height:calc(min(58dvh,460px) - 64px);padding:12px 14px calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;flex-direction:column;gap:10px}.section-title{font-size:13px;font-weight:800;color:var(--ink-soft);margin-top:4px}.card{background:#fbf5e8;border:var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:10px 12px;display:flex;align-items:center;gap:10px}.card.locked{opacity:.75;background:var(--paper-2)}.card .info{flex:1;min-width:0}.card .name{font-weight:800;font-size:15px}.card .desc{font-size:12px;color:var(--ink-soft);margin-top:1px}.card .thumb{width:52px;height:38px;flex:none}.boat-row{background:#fbf5e8;border:var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:9px 12px}.boat-row .head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.boat-row .status{font-size:12px;font-weight:700;color:var(--sea-deep);white-space:nowrap}.boat-row .status.ready{color:var(--coral-dark)}.boat-row .ups{display:flex;gap:8px;margin-top:8px}.boat-row .ups .btn{flex:1;font-size:13px;padding:6px 8px}.zone-map{display:flex;flex-direction:column-reverse;gap:0;padding:4px 2px}.zone-item{display:flex;align-items:center;gap:12px;padding:9px 4px;position:relative}.zone-item+.zone-item:after{content:"";position:absolute;left:21px;bottom:-14px;height:18px;border-left:2.5px dashed rgba(35,48,71,.4)}.zone-item .buoy{width:42px;height:42px;flex:none;border-radius:50%;border:var(--border);background:var(--paper-2);display:flex;align-items:center;justify-content:center;font-size:17px}.zone-item.unlocked .buoy{background:var(--sea);color:var(--paper)}.zone-item.current .buoy{background:var(--coral);color:var(--paper)}.zone-item .info{flex:1}.zone-item .name{font-weight:800;font-size:15px}.zone-item .desc{font-size:12px;color:var(--ink-soft)}.fish-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px;align-items:center}.fish-thumb{height:17px;width:auto;image-rendering:pixelated}.fish-thumb.unknown{opacity:.45}.prestige-box{text-align:center;padding:6px 2px}.prestige-box h3{font-size:19px;font-weight:800}.prestige-box p{font-size:13px;color:var(--ink-soft);margin-top:4px}.prestige-box .bar{height:12px;border:2px solid var(--ink);border-radius:8px;background:var(--paper-2);overflow:hidden;margin:12px 0}.prestige-box .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--mustard),var(--coral));transition:width .4s ease}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-grid .stat{background:#fbf5e8;border:var(--border);border-radius:var(--r);padding:8px 10px}.stat-grid .stat b{display:block;font-size:17px}.stat-grid .stat span{font-size:11.5px;color:var(--ink-soft);font-weight:600}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1820308c;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--paper);border:var(--border);border-radius:16px;box-shadow:5px 5px #141b2859;width:min(380px,100%);padding:20px 18px;text-align:center;animation:pop .28s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.modal{animation:none}.sheet{transition:none}}.modal h2{font-size:21px;font-weight:800;letter-spacing:-.01em}.modal p{font-size:14px;color:var(--ink-soft);margin-top:6px;line-height:1.4}.modal .big-earn{font-size:31px;font-weight:800;color:var(--coral-dark);margin:12px 0 2px}.modal .row{display:flex;gap:10px;margin-top:16px}.modal .row .btn{flex:1}.chest{width:92px;height:66px;margin:14px auto 4px;position:relative}.chest .lid{position:absolute;top:0;width:100%;height:30px;background:var(--coral);border:var(--border);border-radius:14px 14px 3px 3px;transform-origin:bottom center;animation:lid 1s cubic-bezier(.34,1.56,.64,1) .25s both}.chest .box{position:absolute;bottom:0;width:100%;height:38px;background:#b58a5c;border:var(--border);border-radius:3px 3px 8px 8px}.chest .lock{position:absolute;left:50%;top:26px;transform:translate(-50%);width:16px;height:18px;background:var(--mustard);border:var(--border);border-radius:4px;z-index:2}.chest .coins-glow{position:absolute;left:50%;top:8px;transform:translate(-50%);width:60px;height:22px;border-radius:50%;background:radial-gradient(ellipse,#dfa93ee6,#dfa93e00);animation:glowIn .8s ease .6s both}@keyframes lid{0%{transform:rotate(0)}to{transform:rotate(-38deg) translateY(-6px)}}@keyframes glowIn{0%{opacity:0}to{opacity:1}}.toasts{position:absolute;bottom:84px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:40;width:min(340px,calc(100vw - 32px));pointer-events:none!important}.toast{background:var(--ink);color:var(--paper);border-radius:var(--r);border:2px solid var(--paper);box-shadow:var(--shadow);padding:10px 14px;font-size:13.5px;font-weight:700;text-align:center;animation:toastIn .3s cubic-bezier(.34,1.56,.64,1),toastOut .4s ease 2.6s both}@keyframes toastIn{0%{transform:translateY(14px) scale(.9);opacity:0}to{transform:none;opacity:1}}@keyframes toastOut{to{transform:translateY(-8px);opacity:0}}.tutor-hand{position:absolute;z-index:45;pointer-events:none!important;width:54px;height:54px;filter:drop-shadow(2px 3px 0 rgba(35,48,71,.3));animation:handTap 1.1s ease-in-out infinite}@keyframes handTap{0%,to{transform:translate(0) rotate(-12deg)}50%{transform:translate(-7px,-10px) rotate(-6deg)}}@media(prefers-reduced-motion:reduce){.tutor-hand{animation:none}}.tutor-tip{position:absolute;z-index:45;pointer-events:none!important;background:var(--ink);color:var(--paper);border-radius:var(--r);padding:9px 13px;font-size:13.5px;font-weight:700;max-width:230px;text-align:center;box-shadow:var(--shadow)}.tutor-tip:after{content:"";position:absolute;bottom:-7px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background:var(--ink)}.collect-all{position:absolute;bottom:84px;right:14px;z-index:28}@media(min-width:900px){.missions-panel{width:330px}.sheet{left:auto;right:18px;transform:none;width:420px;border-radius:18px 18px 0 0}.collect-all{right:456px}.toasts{left:40%}}
