:root{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#effaf2;background:#063e54;font-synthesis:none;--gold:#ffe5a0;--muted:#b9d9db}*{box-sizing:border-box}html,body{margin:0;width:100%;min-width:320px;min-height:100%;overflow-x:hidden}button,select{font:inherit}button{color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation;min-height:44px}button:disabled{cursor:default;opacity:.48}button:focus-visible,select:focus-visible{outline:2px solid #ffe2a2;outline-offset:3px}button:active:not(:disabled){transform:translateY(1px)}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.app-shell{position:relative;isolation:isolate;width:100%;height:100dvh;min-height:320px;overflow:hidden;background:#075572}
.app-shell:before{content:"";position:absolute;inset:0;z-index:-3;background:linear-gradient(#03384d1c,#023d4b08 70%,#06384c22),url('/assets/underwater-v3.png') center/cover}
#ocean-mount,#ocean-host{position:absolute;inset:0;z-index:0;overflow:hidden}#ocean-host canvas{display:block;width:100%;height:100%;touch-action:manipulation}
.hud-top{position:absolute;top:0;left:0;right:0;z-index:4;padding:6px 18px 9px;background:linear-gradient(#032c4570,transparent);pointer-events:none}.hud-row{display:flex;align-items:center;justify-content:space-between;height:37px}.brand{font-family:"Songti SC",serif;font-size:21px;font-weight:700;letter-spacing:2px;text-shadow:0 1px 8px #063145}.hud-right{display:flex;align-items:center;gap:6px;pointer-events:auto}.icon-btn{display:grid;place-items:center;width:44px;height:44px;padding:12px;opacity:.85}.icon-btn svg{width:20px;height:20px}.pearl-track{display:flex;align-items:center;gap:6px;min-height:36px;padding:3px 8px;font-size:12px;color:#e4f5f4;background:#043d574d;border-radius:20px}.pearl-track small{font-size:9px}.pearl-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff,#dfe7ef 48%,#b4b2d1);box-shadow:0 0 7px #e9ecff55}.scorebar{display:flex;gap:14px;align-items:baseline;color:#f5faf5;padding:2px 1px;font-variant-numeric:tabular-nums}.scorebar>div{display:flex;gap:7px;align-items:baseline}.scorebar small{font-size:10px;font-weight:400;letter-spacing:1px;color:#d0e9eb}.scorebar strong{font-size:25px;line-height:1.15;font-weight:650;text-shadow:0 1px 6px #06354c77}.scorebar .remaining{padding-left:12px;border-left:1px solid #b1d5d23d}.scorebar .remaining strong{font-size:17px}.game-stage{position:absolute;inset:0;z-index:2;pointer-events:none}.zone-caption{position:absolute;top:91px;left:19px;font-size:10px;letter-spacing:1px;color:#daeeeeaa;text-shadow:0 1px 5px #00435b}.zone-caption i{font-style:normal;padding:0 5px}.catch-status{position:absolute;bottom:89px;left:20px;right:20px;display:flex;justify-content:center;gap:7px;align-items:center;flex-wrap:wrap;text-align:center;min-height:19px;text-shadow:0 1px 8px #00263d,0 0 15px #013a4e}.catch-score{font-size:22px;line-height:1;color:#ffedaf;font-weight:700}.harvest-text{font-size:11px;color:#e6f6ee;line-height:1.5}.catch-combo{font-size:10px;color:#ffe3a0;padding:2px 5px;border-left:1px solid #f7e0aa55}.action-dock{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:22px;height:57px;padding:4px 10px;z-index:5;border:1px solid #c8e3d433;border-radius:32px;background:#063e4d75;backdrop-filter:blur(12px);box-shadow:0 5px 18px #012d3b33}.dock-tool{display:flex;align-items:center;gap:5px;padding:4px 7px;font-size:11px;white-space:nowrap;min-width:48px;height:44px}.dock-tool svg{width:18px;height:18px;opacity:.85}.cast-button{height:46px;min-height:46px;min-width:101px;padding:6px 17px;border-radius:26px;background:linear-gradient(#ffe9b2,#e5bd70);color:#24494b;border:1px solid #fff2cf8c;box-shadow:inset 0 1px 0 #fff9e5,0 2px 6px #053a4666;display:flex;align-items:center;justify-content:center;gap:7px}.cast-button svg{width:22px;height:22px}.cast-button b{font-size:15px;font-weight:750;letter-spacing:2px}.cast-button:disabled{background:#93bfc0}.anchor-hint{position:absolute;top:113px;left:18px;z-index:4;font-size:10px;color:#ffe7b8}.anchor-hint button{font-size:10px;min-height:30px;text-decoration:underline;padding:2px 5px}.notice{font-size:12px;padding:10px;border:1px solid #e7d48d55;background:#264651e8;border-radius:12px;line-height:1.6;color:#ffefc4}.game-notice{position:absolute;top:142px;left:15px;right:15px;z-index:6;margin:auto;max-width:450px}.text-button{font-size:12px;text-decoration:underline;text-underline-offset:4px;padding:5px 8px}.fx-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.floating-score{position:absolute;top:42%;left:50%;font-size:39px;color:#fff0b1;font-weight:750;text-shadow:0 2px 8px #006079,0 0 16px #8b973b66;transform:translate(-50%,-50%);animation:score-float 1s ease-out forwards}.particle{position:absolute;left:50%;top:43%;width:5px;height:5px;background:#fff2c7;box-shadow:0 0 7px #fff7c7;border-radius:50%;animation:particle-burst .9s ease-out forwards}.celebration{position:absolute;top:32%;left:8%;right:8%;text-align:center;padding:14px;border-radius:25px;background:radial-gradient(ellipse,#075369aa,transparent 73%);text-shadow:0 2px 10px #034157;animation:celebrate-in .3s ease-out}.celebration h2{font-family:serif;font-size:29px;color:#ffedbb;letter-spacing:4px;margin:6px 0}.celebration strong{font-size:43px;color:#fff2c4}.celebration p{font-size:12px;color:#e4f5ee;margin:7px 0}.topbar{position:absolute;top:9px;left:18px;right:12px;z-index:4;display:flex;align-items:center;justify-content:space-between}.home{position:relative;z-index:3;height:100%;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:16vh 22px 20px;text-align:center}.home-logo small{font-size:11px;letter-spacing:4px;color:#d9efed;text-shadow:0 1px 6px #00506b}.home-logo h1{font-family:"Songti SC",serif;font-size:56px;letter-spacing:7px;color:#f3f5d9;text-shadow:0 3px 0 #255c61,0 7px 22px #03567255;margin:15px 0 12px}.home-logo p{font-size:13px;color:#daeeea;letter-spacing:3px;text-shadow:0 1px 6px #034c63}.home-actions{width:min(320px,100%);pointer-events:auto}.primary{width:100%;min-height:49px;padding:10px 15px;border-radius:26px;border:1px solid #fff2c49c;background:linear-gradient(#ffe9ae,#e4be72);color:#315158;font-size:16px;letter-spacing:2px;font-weight:750;box-shadow:0 4px 15px #023e5655}.best{font-size:10px;color:#e2f1e1;text-shadow:0 1px 6px #003d52;margin:14px 0 1px}.home-tools{display:flex;justify-content:center;gap:18px}.home-tools button{font-size:11px;color:#c9e4e3}.result-mode{min-height:100dvh;height:auto;overflow:auto}.result-mode #ocean-mount{position:fixed}.result{position:relative;z-index:3;width:min(450px,100%);min-height:100dvh;padding:65px 24px 25px;margin:auto;display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(#03445944,#06445a88)}.result-stars{font-size:37px;letter-spacing:9px;color:#729ca6;margin:10px 0}.lit{color:#ffe5a2}.result h1{font-family:serif;font-size:28px;color:#ffedc4;letter-spacing:3px;margin:6px 0 10px}.result-score{font-size:51px;font-weight:750;color:#fff2c7}.result-sub{font-size:11px;color:#c3e1df;margin:10px 0}.result-card{width:100%;padding:12px 14px;background:#0a4058ab;border-radius:16px;border:1px solid #a4d0cf33;margin:10px 0}.result-row{display:flex;justify-content:space-between;padding:5px;font-size:12px;color:#e4eeeb}.total-row{border-top:1px solid #c0d6c433;margin-top:4px;padding-top:9px;color:#ffe4a4}.catch-list{display:flex;width:100%;justify-content:space-between;padding:10px 0}.catch-list div{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:#e2ebe0}.catch-list img{width:46px;height:35px}.result-highlights{width:100%;display:flex;justify-content:space-around;padding:12px 0}.result-highlights b{display:block;font-size:20px;color:#f4e5b4}.result-highlights span{font-size:10px;color:#bdd6d0}.result-note{font-size:12px;line-height:1.8;color:#dfebe0;margin:7px 0 18px}.score-label{font-size:11px;color:#c8e0dd;letter-spacing:2px}
dialog{border:1px solid #bcd9d54d;border-radius:22px;padding:0;width:min(430px,calc(100vw - 28px));max-height:85dvh;color:#edf5ef;background:linear-gradient(#144f62,#092f45);box-shadow:0 20px 70px #001a3999}dialog::backdrop{background:#032c4177;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;position:sticky;top:0;z-index:2;background:#123f53;border-bottom:1px solid #9fc8c42a}.dialog-head h2{font-size:17px;letter-spacing:1px;margin:0}.dialog-body{padding:16px;font-size:13px;line-height:1.75}.dialog-body h3{font-size:13px;font-weight:600;color:#ffe7b2;margin:18px 0 9px}.dialog-body h3:first-child{margin-top:0}.dialog-body p{margin:0 0 13px}.dialog-body table{width:100%;border-collapse:collapse;font-size:11px;margin:8px 0}.dialog-body td,.dialog-body th{padding:5px 2px;border-bottom:1px solid #a2c6c12d;text-align:center}.dialog-body th{background:#0d354a;color:#efdfb2}.dialog-body select{min-height:44px;background:#08394e;color:inherit;border:1px solid #94bab557;border-radius:8px;padding:7px}.settings-row{display:flex;justify-content:space-between;align-items:center;min-height:57px}.switch{border-radius:22px;min-width:65px;padding:0 12px;border:1px solid #91b3ac55;background:#104054;font-size:12px}.switch.on{background:#dec284;color:#29484f}.rules-fish{display:flex;align-items:center;gap:10px;padding:7px 0}.rules-fish img{width:55px;height:42px}.rules-fish p{font-size:12px;margin:0;line-height:1.5}.drawer-zones{display:flex;gap:6px}.drawer-zones button{flex:1;min-height:54px;border-radius:12px;background:#0b3648;border:1px solid #7eb5bc44;padding:6px 2px}.drawer-zones b{display:block;font-size:13px}.drawer-zones small{display:block;font-size:10px;color:#bdd6d1}.drawer-zones .selected,.bait-option.selected,.anchor-options .selected{border-color:#e0c18b;background:#2e626e}.bait-options{display:flex;flex-direction:column;gap:7px}.bait-option{display:flex;align-items:center;gap:10px;min-height:65px;padding:8px 10px;border-radius:12px;background:#0b3648;border:1px solid #7eb5bc44;text-align:left}.bait-option img{width:35px;height:35px}.bait-option div{flex:1}.bait-option strong{font-size:13px;display:block}.bait-option small{font-size:10px;display:block;color:#bcd3cd}.bait-option>span{font-size:11px}.small-copy{font-size:11px;color:#bdd6d1}.anchor-options{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0 16px}.anchor-options button{min-width:65px;border:1px solid #7eb5bc44;border-radius:10px;background:#0b3648;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px;font-size:11px}.anchor-options img{width:46px;height:34px}.orders{display:flex;gap:8px;margin:10px 0}.order{flex:1;display:flex;align-items:center;gap:6px;padding:8px 6px;background:#103a4d;border:1px solid #b5d3bf33;border-radius:11px;min-width:0}.order img{width:35px;height:28px}.order-body{flex:1}.order-line{display:flex;justify-content:space-between;gap:4px;font-size:10px}.order-line b{font-size:10px;color:#e9d9a7}.progress{height:4px;background:#376778;border-radius:4px;overflow:hidden;margin-top:5px}.progress i{display:block;height:100%;background:#b9d99e}.progress-score{font-size:34px;color:#fff0c4}.progress-score small{font-size:12px}.goal-track{display:flex;gap:8px;align-items:center;font-size:10px;margin:8px 0}.goal-stars{display:flex;font-size:17px;color:#6e969c}.goal-bar{flex:1;height:4px;border-radius:4px;background:#16495b;overflow:hidden}.goal-bar i{display:block;height:100%;background:#e1c783}.goal-label{font-size:10px}.tip-card{font-size:12px;line-height:1.7;padding:12px;border-radius:12px;background:#0d3549;margin-bottom:10px}
.reduced *{animation:none!important;transition:none!important}.paused *{animation-play-state:paused!important}@keyframes score-float{0%{opacity:0;translate:0 15px;scale:.8}20%{opacity:1;scale:1}75%{opacity:1}100%{opacity:0;translate:0 -60px}}@keyframes particle-burst{to{translate:var(--x) var(--y);rotate:var(--r);opacity:0}}@keyframes celebrate-in{from{opacity:0;scale:.9}to{opacity:1;scale:1}}
@media(min-width:800px){.hud-top{padding:16px 28px 10px}.hud-row{height:39px}.brand{font-size:23px}.scorebar strong{font-size:29px}.zone-caption{top:107px;left:29px}.action-dock{bottom:22px;gap:30px}.catch-status{bottom:101px}.home-logo h1{font-size:68px}.home{padding-top:15vh;padding-bottom:35px}.anchor-hint{top:133px;left:29px}.game-notice{top:165px}.cast-button{min-width:115px}.result{padding-top:60px}}
@media(max-height:680px){.hud-top{padding-top:3px}.hud-row{height:32px}.scorebar strong{font-size:22px}.zone-caption{top:79px}.anchor-hint{top:98px}.action-dock{bottom:9px;height:54px;gap:16px}.catch-status{bottom:76px}.home{padding-top:13vh;padding-bottom:9px}.home-logo h1{font-size:46px}.game-notice{top:125px}}
@media(max-width:359px){.hud-top{padding-left:12px;padding-right:8px}.brand{font-size:19px}.zone-caption{left:13px}.dock-tool{font-size:10px;padding:4px}.action-dock{gap:15px}.cast-button{min-width:95px;padding:6px 12px}.harvest-text{font-size:10px}.catch-score{font-size:20px}.catch-status{left:8px;right:8px}.anchor-hint{left:13px}}
